Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-01-10 00:13:54 +00:00 committed by GitHub
commit 85bd0922b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
229 changed files with 2040 additions and 927 deletions

View File

@ -2,7 +2,7 @@
name: Unreproducible package
about: A package that does not produce a bit-by-bit reproducible result each time it is built
title: ''
labels: '0.kind: enhancement', '6.topic: reproducible builds'
labels: [ '0.kind: enhancement', '6.topic: reproducible builds' ]
assignees: ''
---

5
.github/labeler.yml vendored
View File

@ -65,6 +65,11 @@
- pkgs/development/lua-modules/**/*
- pkgs/top-level/lua-packages.nix
"6.topic: mate":
- nixos/modules/services/x11/desktop-managers/mate.nix
- nixos/tests/mate.nix
- pkgs/desktops/mate/**/*
"6.topic: nixos":
- nixos/**/*
- pkgs/os-specific/linux/nixos-rebuild/**/*

View File

@ -24,7 +24,7 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@v1.0.0
uses: korthout/backport-action@v1.0.1
with:
# Config README: https://github.com/korthout/backport-action#backport-action
pull_description: |-

View File

@ -11,7 +11,7 @@ pandoc_commonmark_enabled_extensions = +attributes+fenced_divs+footnotes+bracket
pandoc_flags = --extract-media=$(pandoc_media_dir) \
--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
--lua-filter=build-aux/pandoc-filters/myst-reader/roles.lua \
--lua-filter=build-aux/pandoc-filters/link-unix-man-references.lua \
--lua-filter=$(PANDOC_LINK_MANPAGES_FILTER) \
--lua-filter=build-aux/pandoc-filters/docbook-writer/rst-roles.lua \
--lua-filter=build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua \
-f commonmark$(pandoc_commonmark_enabled_extensions)+smart

View File

@ -0,0 +1,28 @@
{ pkgs ? import ../../.. {} }:
let
inherit (pkgs) lib;
manpageURLs = builtins.fromJSON (builtins.readFile (pkgs.path + "/doc/manpage-urls.json"));
in pkgs.writeText "link-manpages.lua" ''
--[[
Adds links to known man pages that aren't already in a link.
]]
local manpage_urls = {
${lib.concatStringsSep "\n" (lib.mapAttrsToList (man: url:
" [${builtins.toJSON man}] = ${builtins.toJSON url},") manpageURLs)}
}
traverse = 'topdown'
-- Returning false as the second value aborts processing of child elements.
function Link(elem)
return elem, false
end
function Code(elem)
local is_man_role = elem.classes:includes('interpreted-text') and elem.attributes['role'] == 'manpage'
if is_man_role and manpage_urls[elem.text] ~= nil then
return pandoc.Link(elem, manpage_urls[elem.text]), false
end
end
''

View File

@ -1,38 +0,0 @@
--[[
Turns a manpage reference into a link, when a mapping is defined below.
]]
local man_urls = {
["nix.conf(5)"] = "https://nixos.org/manual/nix/stable/#sec-conf-file",
["journald.conf(5)"] = "https://www.freedesktop.org/software/systemd/man/journald.conf.html",
["logind.conf(5)"] = "https://www.freedesktop.org/software/systemd/man/logind.conf.html",
["networkd.conf(5)"] = "https://www.freedesktop.org/software/systemd/man/networkd.conf.html",
["systemd.automount(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.automount.html",
["systemd.exec(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.exec.html",
["systemd.link(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.link.html",
["systemd.mount(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.mount.html",
["systemd.netdev(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.netdev.html",
["systemd.network(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.network.html",
["systemd.nspawn(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.nspawn.html",
["systemd.path(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.path.html",
["systemd.resource-control(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html",
["systemd.scope(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.scope.html",
["systemd.service(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.service.html",
["systemd.slice(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.slice.html",
["systemd.socket(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.socket.html",
["systemd.timer(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.timer.html",
["systemd.unit(5)"] = "https://www.freedesktop.org/software/systemd/man/systemd.unit.html",
["timesyncd.conf(5)"] = "https://www.freedesktop.org/software/systemd/man/timesyncd.conf.html",
["tmpfiles.d(5)"] = "https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html",
["systemd.time(7)"] = "https://www.freedesktop.org/software/systemd/man/systemd.time.html",
["systemd-fstab-generator(8)"] = "https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html",
["systemd-networkd-wait-online.service(8)"] = "https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html",
}
function Code(elem)
local is_man_role = elem.classes:includes('interpreted-text') and elem.attributes['role'] == 'manpage'
if is_man_role and man_urls[elem.text] ~= nil then
return pandoc.Link(elem, man_urls[elem.text])
end
end

View File

@ -53,7 +53,7 @@ Additional syntax extensions are available, though not all extensions can be use
This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
- []{#ssec-contributing-markup-inline-roles}
If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`.
If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. The references will turn into links when a mapping exists in {file}`doc/manpage-urls.json`.
A few markups for other kinds of literals are also available:

View File

@ -36,4 +36,5 @@ in pkgs.stdenv.mkDerivation {
# Environment variables
PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
PANDOC_LINK_MANPAGES_FILTER = import build-aux/pandoc-filters/link-manpages.nix { inherit pkgs; };
}

29
doc/manpage-urls.json Normal file
View File

@ -0,0 +1,29 @@
{
"nix.conf(5)": "https://nixos.org/manual/nix/stable/#sec-conf-file",
"journald.conf(5)": "https://www.freedesktop.org/software/systemd/man/journald.conf.html",
"logind.conf(5)": "https://www.freedesktop.org/software/systemd/man/logind.conf.html",
"networkd.conf(5)": "https://www.freedesktop.org/software/systemd/man/networkd.conf.html",
"systemd.automount(5)": "https://www.freedesktop.org/software/systemd/man/systemd.automount.html",
"systemd.exec(5)": "https://www.freedesktop.org/software/systemd/man/systemd.exec.html",
"systemd.link(5)": "https://www.freedesktop.org/software/systemd/man/systemd.link.html",
"systemd.mount(5)": "https://www.freedesktop.org/software/systemd/man/systemd.mount.html",
"systemd.netdev(5)": "https://www.freedesktop.org/software/systemd/man/systemd.netdev.html",
"systemd.network(5)": "https://www.freedesktop.org/software/systemd/man/systemd.network.html",
"systemd.nspawn(5)": "https://www.freedesktop.org/software/systemd/man/systemd.nspawn.html",
"systemd.path(5)": "https://www.freedesktop.org/software/systemd/man/systemd.path.html",
"systemd.resource-control(5)": "https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html",
"systemd.scope(5)": "https://www.freedesktop.org/software/systemd/man/systemd.scope.html",
"systemd.service(5)": "https://www.freedesktop.org/software/systemd/man/systemd.service.html",
"systemd.slice(5)": "https://www.freedesktop.org/software/systemd/man/systemd.slice.html",
"systemd.socket(5)": "https://www.freedesktop.org/software/systemd/man/systemd.socket.html",
"systemd.timer(5)": "https://www.freedesktop.org/software/systemd/man/systemd.timer.html",
"systemd.unit(5)": "https://www.freedesktop.org/software/systemd/man/systemd.unit.html",
"systemd-system.conf(5)": "https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html",
"systemd-user.conf(5)": "https://www.freedesktop.org/software/systemd/man/systemd-user.conf.html",
"timesyncd.conf(5)": "https://www.freedesktop.org/software/systemd/man/timesyncd.conf.html",
"tmpfiles.d(5)": "https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html",
"systemd.time(7)": "https://www.freedesktop.org/software/systemd/man/systemd.time.html",
"systemd-fstab-generator(8)": "https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html",
"systemd-networkd-wait-online.service(8)": "https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html"
}

View File

@ -66,7 +66,7 @@ For details, see [Licenses](#sec-meta-license).
### `maintainers` {#var-meta-maintainers}
A list of the maintainers of this Nix expression. Maintainers are defined in [`nixpkgs/maintainers/maintainer-list.nix`](https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix). There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled “maintainers: add alice”, and reference maintainers with `maintainers = with lib.maintainers; [ alice bob ]`.
A list of the maintainers of this Nix expression. Maintainers are defined in [`nixpkgs/maintainers/maintainer-list.nix`](https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix). There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled “maintainers: add alice” in the same pull request, and reference maintainers with `maintainers = with lib.maintainers; [ alice bob ]`.
### `mainProgram` {#var-meta-mainProgram}

View File

@ -1113,7 +1113,6 @@ rec {
visible = true;
warn = false;
use = id;
wrapDescription = lib.id;
};
/* Transitional version of mkAliasOptionModule that uses MD docs. */
@ -1122,6 +1121,7 @@ rec {
visible = true;
warn = false;
use = id;
markdown = true;
};
/* mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b
@ -1144,7 +1144,7 @@ rec {
(opt.highestPrio or defaultOverridePriority)
(f opt.value);
doRename = { from, to, visible, warn, use, withPriority ? true, wrapDescription ? lib.mdDoc }:
doRename = { from, to, visible, warn, use, withPriority ? true, markdown ? false }:
{ config, options, ... }:
let
fromOpt = getAttrFromPath from options;
@ -1155,7 +1155,9 @@ rec {
{
options = setAttrByPath from (mkOption {
inherit visible;
description = wrapDescription "Alias of {option}`${showOption to}`.";
description = if markdown
then lib.mdDoc "Alias of {option}`${showOption to}`."
else "Alias of <option>${showOption to}</option>.";
apply = x: use (toOf config);
} // optionalAttrs (toType != null) {
type = toType;

View File

@ -41,7 +41,7 @@ pandoc_flags=(
# - diagram-generator.lua (we do not support that in NixOS manual to limit dependencies)
# - media extraction (was only required for diagram generator)
# - myst-reader/roles.lua (only relevant for MyST → DocBook)
# - link-unix-man-references.lua (links should only be added to display output)
# - link-manpages.lua (links should only be added to display output)
# - docbook-writer/rst-roles.lua (only relevant for → DocBook)
# - docbook-writer/labelless-link-is-xref.lua (only relevant for → DocBook)
"--lua-filter=$DIR/../../doc/build-aux/pandoc-filters/docbook-reader/citerefentry-to-rst-role.lua"

View File

@ -8,6 +8,8 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
pushd "$DIR"
link_manpages_filter=$(nix-build --no-out-link "$DIR/../../../doc/build-aux/pandoc-filters/link-manpages.nix")
# NOTE: Keep in sync with Nixpkgs manual (/doc/Makefile).
# TODO: Remove raw-attribute when we can get rid of DocBook altogether.
pandoc_commonmark_enabled_extensions=+attributes+fenced_divs+footnotes+bracketed_spans+definition_lists+pipe_tables+raw_attribute
@ -17,7 +19,7 @@ pandoc_flags=(
# - media extraction (was only required for diagram generator)
# - docbook-reader/citerefentry-to-rst-role.lua (only relevant for DocBook → MarkDown/rST/MyST)
"--lua-filter=$DIR/../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua"
"--lua-filter=$DIR/../../../doc/build-aux/pandoc-filters/link-unix-man-references.lua"
"--lua-filter=$link_manpages_filter"
"--lua-filter=$DIR/../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua"
"--lua-filter=$DIR/../../../doc/build-aux/pandoc-filters/docbook-writer/html-elements.lua"
"--lua-filter=$DIR/../../../doc/build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua"

View File

@ -41,6 +41,7 @@
# characteristics but (hopefully) indistinguishable output.
, allowDocBook ? true
# whether lib.mdDoc is required for descriptions to be read as markdown.
# !!! when this is eventually flipped to true, `lib.doRename` should also default to emitting Markdown
, markdownByDefault ? false
}:
@ -130,6 +131,8 @@ in rec {
if baseOptionsJSON == null
then builtins.toFile "base.json" "{}"
else baseOptionsJSON;
MANPAGE_URLS = pkgs.path + "/doc/manpage-urls.json";
}
''
# Export list of options in different format.

View File

@ -1,5 +1,6 @@
import collections
import json
import os
import sys
from typing import Any, Dict, List
@ -46,6 +47,8 @@ def unpivot(options: Dict[Key, Option]) -> Dict[str, JSON]:
result[opt.name] = opt.value
return result
manpage_urls = json.load(open(os.getenv('MANPAGE_URLS')))
admonitions = {
'.warning': 'warning',
'.important': 'important',
@ -119,9 +122,14 @@ class Renderer(mistune.renderers.BaseRenderer):
def env(self, text):
return f"<envar>{escape(text)}</envar>"
def manpage(self, page, section):
man = f"{page}({section})"
title = f"<refentrytitle>{escape(page)}</refentrytitle>"
vol = f"<manvolnum>{escape(section)}</manvolnum>"
return f"<citerefentry>{title}{vol}</citerefentry>"
ref = f"<citerefentry>{title}{vol}</citerefentry>"
if man in manpage_urls:
return self.link(manpage_urls[man], text=ref)
else:
return ref
def finalize(self, data):
return "".join(data)

View File

@ -60,7 +60,7 @@ in rec {
`asDropin` creates a drop-in file named `overrides.conf`.
Mainly needed to define instances for systemd template units (e.g. `systemd-nspawn@mycontainer.service`).
See also systemd.unit(1).
See also {manpage}`systemd.unit(5)`.
'';
};
@ -86,7 +86,7 @@ in rec {
This option creates a `.wants` symlink in the given target that exists
statelessly without the need for running `systemctl enable`.
The in systemd.unit(5) manpage described `[Install]` section however is
The `[Install]` section described in {manpage}`systemd.unit(5)` however is
not supported because it is a stateful process that does not fit well
into the NixOS design.
'';

5
nixos/modules/installer/tools/nixos-enter.sh Normal file → Executable file
View File

@ -100,8 +100,9 @@ chroot_add_resolv_conf "$mountPoint" || echo "$0: failed to set up resolv.conf"
# Run the activation script. Set $LOCALE_ARCHIVE to supress some Perl locale warnings.
LOCALE_ARCHIVE="$system/sw/lib/locale/locale-archive" IN_NIXOS_ENTER=1 chroot "$mountPoint" "$system/activate" 1>&2 || true
# Create /tmp
chroot "$mountPoint" "$system/sw/bin/systemd-tmpfiles" --create --remove --exclude-prefix=/dev 1>&2 || true
# Create /tmp. This is needed for nix-build and the NixOS activation script to work.
# Hide the unhelpful "failed to replace specifiers" errors caused by missing /etc/machine-id.
chroot "$mountPoint" "$system/sw/bin/systemd-tmpfiles" --create --remove -E 2> /dev/null || true
)
unset TMPDIR

View File

@ -1141,6 +1141,7 @@
./services/web-apps/isso.nix
./services/web-apps/jirafeau.nix
./services/web-apps/jitsi-meet.nix
./services/web-apps/kasmweb/default.nix
./services/web-apps/keycloak.nix
./services/web-apps/komga.nix
./services/web-apps/lemmy.nix

View File

@ -12,14 +12,14 @@ in {
type = types.package;
default = pkgs.steam.override {
extraLibraries = pkgs: with config.hardware.opengl;
if pkgs.hostPlatform.is64bit
if pkgs.stdenv.hostPlatform.is64bit
then [ package ] ++ extraPackages
else [ package32 ] ++ extraPackages32;
};
defaultText = literalExpression ''
pkgs.steam.override {
extraLibraries = pkgs: with config.hardware.opengl;
if pkgs.hostPlatform.is64bit
if pkgs.stdenv.hostPlatform.is64bit
then [ package ] ++ extraPackages
else [ package32 ] ++ extraPackages32;
}

View File

@ -8,7 +8,7 @@ in {
meta.maintainers = with maintainers; [ melling ];
options.programs.xastir = {
enable = mkEnableOption (mdDoc "Enable Xastir Graphical APRS client");
enable = mkEnableOption (mdDoc "Xastir Graphical APRS client");
};
config = mkIf cfg.enable {

View File

@ -132,7 +132,7 @@ in
OnCalendar = "daily";
};
description = lib.mdDoc ''
When to run the backup. See man systemd.timer for details.
When to run the backup. See {manpage}`systemd.timer(5)` for details.
'';
example = {
OnCalendar = "00:05";

View File

@ -819,10 +819,10 @@ in
system-features = mkDefault (
[ "nixos-test" "benchmark" "big-parallel" "kvm" ] ++
optionals (pkgs.hostPlatform ? gcc.arch) (
optionals (pkgs.stdenv.hostPlatform ? gcc.arch) (
# a builder can run code for `gcc.arch` and inferior architectures
[ "gccarch-${pkgs.hostPlatform.gcc.arch}" ] ++
map (x: "gccarch-${x}") (systems.architectures.inferiors.${pkgs.hostPlatform.gcc.arch} or [])
[ "gccarch-${pkgs.stdenv.hostPlatform.gcc.arch}" ] ++
map (x: "gccarch-${x}") (systems.architectures.inferiors.${pkgs.stdenv.hostPlatform.gcc.arch} or [])
)
);
}

View File

@ -56,7 +56,7 @@ let
provisionConfDir = pkgs.runCommand "grafana-provisioning" { nativeBuildInputs = [ pkgs.xorg.lndir ]; } ''
mkdir -p $out/{datasources,dashboards,notifiers,alerting}
${ln { src = datasourceFileOrDir; dir = "datasources"; filename = "datasource"; }}
${ln { src = dashboardFileOrDir; dir = "dashboards"; filename = "dashbaord"; }}
${ln { src = dashboardFileOrDir; dir = "dashboards"; filename = "dashboard"; }}
${ln { src = notifierFileOrDir; dir = "notifiers"; filename = "notifier"; }}
${ln { src = rulesFileOrDir; dir = "alerting"; filename = "rules"; }}
${ln { src = contactPointsFileOrDir; dir = "alerting"; filename = "contactPoints"; }}

View File

@ -79,7 +79,7 @@ in {
example = [ "53" ];
description = lib.mdDoc ''
What addresses and ports the server should listen on.
For detailed syntax see ListenStream in man systemd.socket.
For detailed syntax see ListenStream in {manpage}`systemd.socket(5)`.
'';
};
listenTLS = mkOption {
@ -88,7 +88,7 @@ in {
example = [ "198.51.100.1:853" "[2001:db8::1]:853" "853" ];
description = lib.mdDoc ''
Addresses and ports on which kresd should provide DNS over TLS (see RFC 7858).
For detailed syntax see ListenStream in man systemd.socket.
For detailed syntax see ListenStream in {manpage}`systemd.socket(5)`.
'';
};
listenDoH = mkOption {
@ -97,7 +97,7 @@ in {
example = [ "198.51.100.1:443" "[2001:db8::1]:443" "443" ];
description = lib.mdDoc ''
Addresses and ports on which kresd should provide DNS over HTTPS/2 (see RFC 8484).
For detailed syntax see ListenStream in man systemd.socket.
For detailed syntax see ListenStream in {manpage}`systemd.socket(5)`.
'';
};
instances = mkOption {

View File

@ -62,11 +62,10 @@ in
};
packageFirewall = mkOption {
default = pkgs.iptables;
defaultText = literalExpression "pkgs.iptables";
default = config.networking.firewall.package;
defaultText = literalExpression "config.networking.firewall.package";
type = types.package;
example = literalExpression "pkgs.nftables";
description = lib.mdDoc "The firewall package used by fail2ban service.";
description = lib.mdDoc "The firewall package used by fail2ban service. Defaults to the package for your firewall (iptables or nftables).";
};
extraPackages = mkOption {
@ -86,24 +85,24 @@ in
};
banaction = mkOption {
default = "iptables-multiport";
default = if config.networking.nftables.enable then "nftables-multiport" else "iptables-multiport";
defaultText = literalExpression '' if config.networking.nftables.enable then "nftables-multiport" else "iptables-multiport" '';
type = types.str;
example = "nftables-multiport";
description = lib.mdDoc ''
Default banning action (e.g. iptables, iptables-new, iptables-multiport,
iptables-ipset-proto6-allports, shorewall, etc) It is used to
iptables-ipset-proto6-allports, shorewall, etc). It is used to
define action_* variables. Can be overridden globally or per
section within jail.local file
'';
};
banaction-allports = mkOption {
default = "iptables-allport";
default = if config.networking.nftables.enable then "nftables-allport" else "iptables-allport";
defaultText = literalExpression '' if config.networking.nftables.enable then "nftables-allport" else "iptables-allport" '';
type = types.str;
example = "nftables-allport";
description = lib.mdDoc ''
Default banning action (e.g. iptables, iptables-new, iptables-multiport,
shorewall, etc) It is used to define action_* variables. Can be overridden
shorewall, etc) for "allports" jails. It is used to define action_* variables. Can be overridden
globally or per section within jail.local file
'';
};

View File

@ -0,0 +1,275 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.kasmweb;
in
{
options.services.kasmweb = {
enable = lib.mkEnableOption (lib.mdDoc "kasmweb");
networkSubnet = lib.mkOption {
default = "172.20.0.0/16";
type = lib.types.str;
description = lib.mdDoc ''
The network subnet to use for the containers.
'';
};
postgres = {
user = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
Username to use for the postgres database.
'';
};
password = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
password to use for the postgres database.
'';
};
};
redisPassword = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
password to use for the redis cache.
'';
};
defaultAdminPassword = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
default admin password to use.
'';
};
defaultUserPassword = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
default user password to use.
'';
};
defaultManagerToken = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
default manager token to use.
'';
};
defaultGuacToken = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
default guac token to use.
'';
};
defaultRegistrationToken = lib.mkOption {
default = "kasmweb";
type = lib.types.str;
description = lib.mdDoc ''
default registration token to use.
'';
};
datastorePath = lib.mkOption {
type = lib.types.str;
default = "/var/lib/kasmweb";
description = lib.mdDoc ''
The directory used to store all data for kasmweb.
'';
};
listenAddress = lib.mkOption {
type = lib.types.str;
default = "0.0.0.0";
description = lib.mdDoc ''
The address on which kasmweb should listen.
'';
};
listenPort = lib.mkOption {
type = lib.types.int;
default = 443;
description = lib.mdDoc ''
The port on which kasmweb should listen.
'';
};
sslCertificate = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = lib.mdDoc ''
The SSL certificate to be used for kasmweb.
'';
};
sslCertificateKey = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = lib.mdDoc ''
The SSL certificate's key to be used for kasmweb. Make sure to specify
this as a string and not a literal path, so that it is not accidentally
included in your nixstore.
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services = {
"init-kasmweb" = {
wantedBy = [
"docker-kasm_db.service"
];
before = [
"docker-kasm_db.service"
"docker-kasm_redis.service"
"docker-kasm_db_init.service"
"docker-kasm_api.service"
"docker-kasm_agent.service"
"docker-kasm_manager.service"
"docker-kasm_share.service"
"docker-kasm_guac.service"
"docker-kasm_proxy.service"
];
serviceConfig = {
Type = "oneshot";
ExecStart = pkgs.substituteAll {
src = ./initialize_kasmweb.sh;
isExecutable = true;
binPath = lib.makeBinPath [ pkgs.docker pkgs.openssl pkgs.gnused ];
runtimeShell = pkgs.runtimeShell;
kasmweb = pkgs.kasmweb;
postgresUser = cfg.postgres.user;
postgresPassword = cfg.postgres.password;
inherit (cfg)
datastorePath
sslCertificate
sslCertificateKey
redisPassword
defaultUserPassword
defaultAdminPassword
defaultManagerToken
defaultRegistrationToken
defaultGuacToken;
};
};
};
};
virtualisation = {
oci-containers.containers = {
kasm_db = {
image = "postgres:12-alpine";
environment = {
POSTGRES_PASSWORD = cfg.postgres.password;
POSTGRES_USER = cfg.postgres.user;
POSTGRES_DB = "kasm";
};
volumes = [
"${cfg.datastorePath}/conf/database/data.sql:/docker-entrypoint-initdb.d/data.sql"
"${cfg.datastorePath}/conf/database/:/tmp/"
"kasmweb_db:/var/lib/postgresql/data"
];
extraOptions = [ "--network=kasm_default_network" ];
};
kasm_db_init = {
image = "kasmweb/api:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
"kasmweb_api_data:/tmp"
];
dependsOn = [ "kasm_db" ];
entrypoint = "/bin/bash";
cmd = [ "/opt/kasm/current/init_seeds.sh" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" ];
};
kasm_redis = {
image = "redis:5-alpine";
entrypoint = "/bin/sh";
cmd = [
"-c"
"redis-server --requirepass ${cfg.redisPassword}"
];
extraOptions = [ "--network=kasm_default_network" "--userns=host" ];
};
kasm_api = {
image = "kasmweb/api:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
"kasmweb_api_data:/tmp"
];
dependsOn = [ "kasm_db_init" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" ];
};
kasm_manager = {
image = "kasmweb/manager:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
];
dependsOn = [ "kasm_db" "kasm_api" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" "--read-only"];
};
kasm_agent = {
image = "kasmweb/agent:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
"/var/run/docker.sock:/var/run/docker.sock"
"${pkgs.docker}/bin/docker:/usr/bin/docker"
"${cfg.datastorePath}/conf/nginx:/etc/nginx/conf.d"
];
dependsOn = [ "kasm_manager" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" "--read-only" ];
};
kasm_share = {
image = "kasmweb/share:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
];
dependsOn = [ "kasm_db" "kasm_redis" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" "--read-only" ];
};
kasm_guac = {
image = "kasmweb/kasm-guac:${pkgs.kasmweb.version}";
user = "root:root";
volumes = [
"${cfg.datastorePath}/:/opt/kasm/current/"
];
dependsOn = [ "kasm_db" "kasm_redis" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host" "--read-only" ];
};
kasm_proxy = {
image = "kasmweb/nginx:latest";
ports = [ "${cfg.listenAddress}:${toString cfg.listenPort}:443" ];
user = "root:root";
volumes = [
"${cfg.datastorePath}/conf/nginx:/etc/nginx/conf.d:ro"
"${cfg.datastorePath}/certs/kasm_nginx.key:/etc/ssl/private/kasm_nginx.key"
"${cfg.datastorePath}/certs/kasm_nginx.crt:/etc/ssl/certs/kasm_nginx.crt"
"${cfg.datastorePath}/www:/srv/www:ro"
"${cfg.datastorePath}/log/nginx:/var/log/external/nginx"
"${cfg.datastorePath}/log/logrotate:/var/log/external/logrotate"
];
dependsOn = [ "kasm_manager" "kasm_api" "kasm_agent" "kasm_share"
"kasm_guac" ];
extraOptions = [ "--network=kasm_default_network" "--userns=host"
"--network-alias=proxy"];
};
};
};
};
}

View File

@ -0,0 +1,114 @@
#! @runtimeShell@
export PATH=@binPath@:$PATH
mkdir -p @datastorePath@/log
chmod -R a+rw @datastorePath@
ln -sf @kasmweb@/bin @datastorePath@
rm -r @datastorePath@/conf
cp -r @kasmweb@/conf @datastorePath@
mkdir -p @datastorePath@/conf/nginx/containers.d
chmod -R a+rw @datastorePath@/conf
ln -sf @kasmweb@/www @datastorePath@
docker network inspect kasm_default_network >/dev/null || docker network create kasm_default_network --subnet @networkSubnet@
if docker volume inspect kasmweb_db >/dev/null; then
source @datastorePath@/ids.env
echo 'echo "skipping database init"' > @datastorePath@/init_seeds.sh
echo 'while true; do sleep 10 ; done' >> @datastorePath@/init_seeds.sh
else
API_SERVER_ID=$(cat /proc/sys/kernel/random/uuid)
MANAGER_ID=$(cat /proc/sys/kernel/random/uuid)
SHARE_ID=$(cat /proc/sys/kernel/random/uuid)
SERVER_ID=$(cat /proc/sys/kernel/random/uuid)
echo "export API_SERVER_ID=$API_SERVER_ID" > @datastorePath@/ids.env
echo "export MANAGER_ID=$MANAGER_ID" >> @datastorePath@/ids.env
echo "export SHARE_ID=$SHARE_ID" >> @datastorePath@/ids.env
echo "export SERVER_ID=$SERVER_ID" >> @datastorePath@/ids.env
mkdir -p @datastorePath@/certs
openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout @datastorePath@/certs/kasm_nginx.key -out @datastorePath@/certs/kasm_nginx.crt -subj "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=$(hostname)/emailAddress=none@none.none" 2> /dev/null
docker volume create kasmweb_db
rm @datastorePath@/.done_initing_data
cat >@datastorePath@/init_seeds.sh <<EOF
#!/bin/bash
if [ ! -e /opt/kasm/current/.done_initing_data ]; then
sleep 4
/usr/bin/kasm_server.so --initialize-database --cfg \
/opt/kasm/current/conf/app/api.app.config.yaml \
--populate-production \
--seed-file \
/opt/kasm/current/conf/database/seed_data/default_properties.yaml \
2>&1 | grep -v UserWarning
/usr/bin/kasm_server.so --cfg \
/opt/kasm/current/conf/app/api.app.config.yaml \
--populate-production \
--seed-file \
/opt/kasm/current/conf/database/seed_data/default_agents.yaml \
2>&1 | grep -v UserWarning
/usr/bin/kasm_server.so --cfg \
/opt/kasm/current/conf/app/api.app.config.yaml \
--populate-production \
--seed-file \
/opt/kasm/current/conf/database/seed_data/default_connection_proxies.yaml \
2>&1 | grep -v UserWarning
/usr/bin/kasm_server.so --cfg \
/opt/kasm/current/conf/app/api.app.config.yaml \
--populate-production \
--seed-file \
/opt/kasm/current/conf/database/seed_data/default_images_amd64.yaml \
2>&1 | grep -v UserWarning
touch /opt/kasm/current/.done_initing_data
while true; do sleep 10 ; done
else
echo "skipping database init"
while true; do sleep 10 ; done
fi
EOF
fi
chmod +x @datastorePath@/init_seeds.sh
chmod a+w @datastorePath@/init_seeds.sh
if [ -e @sslCertificate@ ]; then
cp @sslCertificate@ @datastorePath@/certs/kasm_nginx.crt
cp @sslCertificateKey@ @datastorePath@/certs/kasm_nginx.key
fi
sed -i -e "s/username.*/username: @postgresUser@/g" \
-e "s/password.*/password: @postgresPassword@/g" \
-e "s/host.*db/host: kasm_db/g" \
-e "s/ssl: true/ssl: false/g" \
-e "s/redisPassword.*/redisPassword: @redisPassword@/g" \
-e "s/server_hostname.*/server_hostname: kasm_api/g" \
-e "s/server_id.*/server_id: $API_SERVER_ID/g" \
-e "s/manager_id.*/manager_id: $MANAGER_ID/g" \
-e "s/share_id.*/share_id: $SHARE_ID/g" \
@datastorePath@/conf/app/api.app.config.yaml
sed -i -e "s/ token:.*/ token: \"@defaultManagerToken@\"/g" \
-e "s/hostnames: \['proxy.*/hostnames: \['kasm_proxy'\]/g" \
-e "s/server_id.*/server_id: $SERVER_ID/g" \
@datastorePath@/conf/app/agent.app.config.yaml
sed -i -e "s/password: admin.*/password: \"@defaultAdminPassword@\"/g" \
-e "s/password: user.*/password: \"@defaultUserPassword@\"/g" \
-e "s/default-manager-token/@defaultManagerToken@/g" \
-e "s/default-registration-token/@defaultRegistrationToken@/g" \
-e "s/upstream_auth_address:.*/upstream_auth_address: 'proxy'/g" \
@datastorePath@/conf/database/seed_data/default_properties.yaml
sed -i -e "s/GUACTOKEN/@defaultGuacToken@/g" \
-e "s/APIHOSTNAME/proxy/g" \
@datastorePath@/conf/app/kasmguac.app.config.yaml
sed -i -e "s/GUACTOKEN/@defaultGuacToken@/g" \
-e "s/APIHOSTNAME/proxy/g" \
@datastorePath@/conf/database/seed_data/default_connection_proxies.yaml
sed -i "s/00000000-0000-0000-0000-000000000000/$SERVER_ID/g" \
@datastorePath@/conf/database/seed_data/default_agents.yaml

View File

@ -95,7 +95,6 @@ let
) env))));
mastodonTootctl = pkgs.writeShellScriptBin "mastodon-tootctl" ''
#! ${pkgs.runtimeShell}
set -a
export RAILS_ROOT="${cfg.package}"
source "${envFile}"

View File

@ -46,7 +46,7 @@ in {
type = types.lines;
example = "DefaultCPUAccounting=yes";
description = lib.mdDoc ''
Extra config options for systemd user instances. See man systemd-user.conf for
Extra config options for systemd user instances. See {manpage}`systemd-user.conf(5)` for
available options.
'';
};

View File

@ -13,8 +13,12 @@ sub atomicSymlink {
my $tmp = "$target.tmp";
unlink $tmp;
symlink $source, $tmp or return 0;
rename $tmp, $target or return 0;
if (rename $tmp, $target) {
return 1;
} else {
unlink $tmp;
return 0;
}
}
@ -87,6 +91,12 @@ my @copied;
sub link {
my $fn = substr $File::Find::name, length($etc) + 1 or next;
# nixos-enter sets up /etc/resolv.conf as a bind mount, so skip it.
if ($fn eq "resolv.conf" and $ENV{'IN_NIXOS_ENTER'}) {
return;
}
my $target = "/etc/$fn";
File::Path::make_path(dirname $target);
$created{$fn} = 1;
@ -103,7 +113,7 @@ sub link {
if (-e "$_.mode") {
my $mode = read_file("$_.mode"); chomp $mode;
if ($mode eq "direct-symlink") {
atomicSymlink readlink("$static/$fn"), $target or warn;
atomicSymlink readlink("$static/$fn"), $target or warn "could not create symlink $target";
} else {
my $uid = read_file("$_.uid"); chomp $uid;
my $gid = read_file("$_.gid"); chomp $gid;
@ -112,12 +122,15 @@ sub link {
$gid = getgrnam $gid unless $gid =~ /^\+/;
chown int($uid), int($gid), "$target.tmp" or warn;
chmod oct($mode), "$target.tmp" or warn;
rename "$target.tmp", $target or warn;
unless (rename "$target.tmp", $target) {
warn "could not create target $target";
unlink "$target.tmp";
}
}
push @copied, $fn;
print CLEAN "$fn\n";
} elsif (-l "$_") {
atomicSymlink "$static/$fn", $target or warn;
atomicSymlink "$static/$fn", $target or warn "could not create symlink $target";
}
}

View File

@ -377,6 +377,7 @@ in {
man = handleTest ./man.nix {};
mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
mate = handleTest ./mate.nix {};
matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
matrix-conduit = handleTest ./matrix/conduit.nix {};

View File

@ -88,7 +88,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
with subtest("Check journal for errors"):
_, output = machine.execute("journalctl -o cat -u evcc.service")
assert "FATAL" not in output
assert "ERROR" not in output
with subtest("Check systemd hardening"):
_, output = machine.execute("systemd-analyze security evcc.service | grep -v ''")

View File

@ -49,6 +49,8 @@ let
boot.loader.systemd-boot.enable = true;
''}
boot.initrd.secrets."/etc/secret" = /etc/nixos/secret;
users.users.alice = {
isNormalUser = true;
home = "/home/alice";
@ -124,6 +126,7 @@ let
}",
"/mnt/etc/nixos/configuration.nix",
)
machine.copy_from_host("${pkgs.writeText "secret" "secret"}", "/mnt/etc/nixos/secret")
with subtest("Perform the installation"):
machine.succeed("nixos-install < /dev/null >&2")
@ -131,6 +134,19 @@ let
with subtest("Do it again to make sure it's idempotent"):
machine.succeed("nixos-install < /dev/null >&2")
with subtest("Check that we can build things in nixos-enter"):
machine.succeed(
"""
nixos-enter -- nix-build --option substitute false -E 'derivation {
name = "t";
builder = "/bin/sh";
args = ["-c" "echo nixos-enter build > $out"];
system = builtins.currentSystem;
preferLocalBuild = true;
}'
"""
)
with subtest("Shutdown system after installation"):
machine.succeed("umount /mnt/boot || true")
machine.succeed("umount /mnt")

View File

@ -21,7 +21,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
};
testScript = let
nixosInstallISO = (import ../release.nix {}).iso_minimal.${pkgs.hostPlatform.system};
nixosInstallISO = (import ../release.nix {}).iso_minimal.${pkgs.stdenv.hostPlatform.system};
virshShutdownCmd = if pkgs.stdenv.isx86_64 then "shutdown" else "destroy";
in ''
start_all()

58
nixos/tests/mate.nix Normal file
View File

@ -0,0 +1,58 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "mate";
meta = {
maintainers = lib.teams.mate.members;
};
nodes.machine = { ... }: {
imports = [
./common/user-account.nix
];
services.xserver.enable = true;
services.xserver.displayManager = {
lightdm.enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.mate.enable = true;
# Silence log spam due to no sound drivers loaded:
# ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
hardware.pulseaudio.enable = true;
};
testScript = { nodes, ... }:
let
user = nodes.machine.users.users.alice;
in
''
with subtest("Wait for login"):
machine.wait_for_x()
machine.wait_for_file("${user.home}/.Xauthority")
machine.succeed("xauth merge ${user.home}/.Xauthority")
with subtest("Check that logging in has given the user ownership of devices"):
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Check if MATE session components actually start"):
machine.wait_until_succeeds("pgrep marco")
machine.wait_for_window("marco")
machine.wait_until_succeeds("pgrep mate-panel")
machine.wait_for_window("Top Panel")
machine.wait_for_window("Bottom Panel")
machine.wait_until_succeeds("pgrep caja")
machine.wait_for_window("Caja")
with subtest("Open MATE terminal"):
machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 mate-terminal >&2 &'")
machine.wait_for_window("Terminal")
machine.sleep(20)
machine.screenshot("screen")
'';
})

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "timeshift";
version = "22.11.1";
version = "22.11.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "timeshift";
rev = version;
sha256 = "JYYiqJzLszaCJSl7fDb9Oz8tdIYAnqEbJoRg4zw3wbg=";
sha256 = "yZNERRoNZ1K7BRiAu7sqVQyhghsS/AeZSODMVSm46oY=";
};
patches = [

View File

@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
version = "1.7.2";
version = "1.7.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-EZ8gfpTBmTB/lGtexZYbD9x1F7rFXIEaEhhwS6gOEV4=";
sha256 = "sha256-wjtiircPPQgWg1GGQsesEEeOF+h1+tc591YI0l/JlwQ=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";

View File

@ -8,15 +8,15 @@
(fetchNuGet { pname = "AWSSDK.S3"; version = "3.3.110.10"; sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38"; })
(fetchNuGet { pname = "BIP78.Sender"; version = "0.2.2"; sha256 = "12pm2s35c0qzc06099q2z1pxwq94rq85n74yz8fs8gwvm2ksgp4p"; })
(fetchNuGet { pname = "BTCPayServer.Hwi"; version = "2.0.2"; sha256 = "0lh3n1qncqs4kbrmx65xs271f0d9c7irrs9qnsa9q51cbbqbljh9"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.All"; version = "1.4.12"; sha256 = "1n7yv6q8fbk02d334a19zyicvlammjhfrg9rf18jyb3szj8g36k7"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Charge"; version = "1.3.16"; sha256 = "050wh5gw3hgql8191z0yv7sj06wg5da6kvkbcg9hq3ildj0fdj67"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.CLightning"; version = "1.3.19"; sha256 = "1jx9233apry0kb54df7k0p7vrsp3hp27f5d0j2802gry04sihrl7"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.All"; version = "1.4.14"; sha256 = "1k5m6jc585hnkkl019diz2gycfnsv2kx4g4cfs4awlpr42k8s3ph"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Charge"; version = "1.3.18"; sha256 = "0zpqi8dpk91sqg7njxbs64m9598fmmalcc1w97v60xlhp9afjmdb"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.CLightning"; version = "1.3.21"; sha256 = "0qq6ppr5vw4k8hjnz5xp29fc82z32vh6bc389dnr439gw7hmwkp9"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Common"; version = "1.3.16"; sha256 = "1g37736b4k0ncpyy2qycbk4l85fqvgwac3k98nbdj0dvhfghp1dn"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Common"; version = "1.3.17"; sha256 = "1bb8q57lnqnp3wijw41vvbwgz8rgg4g9pw8qhd4iiqi1w94q1bkz"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Eclair"; version = "1.3.16"; sha256 = "1q109kmzj99axk35l68z3gi29ww1xd62zaxj1f39myvlcv9ncb41"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNBank"; version = "1.3.18"; sha256 = "166v6mhmy47fgny55c4mzqb2x7anqyxnd0g409vfgyg5fq4gc15v"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LND"; version = "1.4.9"; sha256 = "0ya365w3i3sjv7wafm6wmasf9mpfsh0fcbhawsv5br7m7lpppwhh"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNDhub"; version = "1.0.12"; sha256 = "1gb61a5mdmyigy7ps2c8n4iig6i32rdsif9kwn35yxx25zbnmbk2"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Common"; version = "1.3.19"; sha256 = "046vvlxlg8div4a2v6pnxz4iwji93s688jgnvav3hl6c22b9lvs0"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.Eclair"; version = "1.3.18"; sha256 = "04lp90rr61p7n39bfmia6jamgr0jjfns9987py64iazi236dl74g"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNBank"; version = "1.3.20"; sha256 = "1kwyh71zzfij07r6nvcf7k2gdpjdhh90imwh6s255ws13m1fj3sn"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LND"; version = "1.4.11"; sha256 = "0zm0b45npacknir6b6a6v717kp3yz8hxv1qy2v65g2zp3ad2wij4"; })
(fetchNuGet { pname = "BTCPayServer.Lightning.LNDhub"; version = "1.0.14"; sha256 = "1hhznv07bd1f3rn9d1rpg61ln68vqfjg7ypxif9lx4l3vfcj5j04"; })
(fetchNuGet { pname = "BTCPayServer.NETCore.Plugins"; version = "1.4.4"; sha256 = "0rk0prmb0539ji5fd33cqy3yvw51i5i8m5hb43admr5z8960dd6l"; })
(fetchNuGet { pname = "BTCPayServer.NETCore.Plugins.Mvc"; version = "1.4.4"; sha256 = "1kmmj5m7s41wc1akpqw1b1j7pp4c0vn6sqxb487980ibpj6hyisl"; })
(fetchNuGet { pname = "CsvHelper"; version = "15.0.5"; sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma"; })
@ -125,7 +125,6 @@
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "1.0.0"; sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.0.0"; sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.10"; sha256 = "1571q9iznbsmd7p87w420parmpdgi8zfjcs4kynmwv344dwdismz"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.5"; sha256 = "0lr22hlf52csrna9ly2lbz3y1agfgdlg7rvsqjg7ik488dhkmhji"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
@ -158,7 +157,7 @@
(fetchNuGet { pname = "NBitcoin"; version = "6.0.8"; sha256 = "1f90zyrd35fzx0vgvd83jhd6hczd4037h2k198xiyxj04l4m3wm5"; })
(fetchNuGet { pname = "NBitcoin"; version = "7.0.1"; sha256 = "05kqpjyp3ckb2183g9vfsdv362y5xg5j21p36zls0x3b0jgrwxw7"; })
(fetchNuGet { pname = "NBitcoin"; version = "7.0.18"; sha256 = "02kkgymdb80cidibrs6qpy1zjwcfbkwv9zqz9s0swf5zp7qvcakn"; })
(fetchNuGet { pname = "NBitcoin"; version = "7.0.20"; sha256 = "0gl39v1mvnhdrqn8dmmslsyj4w4yc4l447zp62bfnwm5ppcwda9z"; })
(fetchNuGet { pname = "NBitcoin"; version = "7.0.23"; sha256 = "10dy58gq644561svc67pm37rlb44mymbnlfz409dhclmfhmqmd5s"; })
(fetchNuGet { pname = "NBitcoin.Altcoins"; version = "3.0.17"; sha256 = "1rqcfpcs3c7zqlw3fnvnyw3d3mmplg5nsaikm50lnzpl8z3cq936"; })
(fetchNuGet { pname = "NBitpayClient"; version = "1.0.0.39"; sha256 = "1sgwradg7jnb4n3chwqfkximj1qhgl3r23p0sifmaa0kql2hlira"; })
(fetchNuGet { pname = "NBXplorer.Client"; version = "4.2.2"; sha256 = "0a8zy9iasgmr7mqhjrbxa2shnygpp97pbg5qnk7ix50y01k9blyw"; })

View File

@ -8,5 +8,4 @@ echo "Updating nbxplorer"
../nbxplorer/update.sh
echo
echo "Updating btcpayserver"
# Include Razor SDK packages in deps.nix
../nbxplorer/util/update-common.sh btcpayserver deps.nix '"/p:Configuration="Altcoins-Release" /p:RazorCompileOnBuild=false'
../nbxplorer/util/update-common.sh btcpayserver deps.nix

View File

@ -3,4 +3,4 @@ set -euo pipefail
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix ''
getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix

View File

@ -1,46 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p dotnet-sdk_6
set -euo pipefail
# Writes deps for dotnet package in $pkgSrc to $depsFile.
# Expects $pkgSrc to contain a single .sln file.
pkgSrc=$1
depsFile=$(realpath "$2")
customFlags=$3
sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
[[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }
tmpdir=$(mktemp -d /tmp/$pkgName-src.XXX)
echo "Using tmp dir: $tmpdir"
cp -rT "$pkgSrc" "$tmpdir"
chmod -R +w "$tmpdir"
pushd "$tmpdir" > /dev/null
mkdir home
echo "Running dotnet restore for $sln"
HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \
dotnet restore $customFlags -v normal --no-cache "$sln" > restore_log
echo "{ fetchNuGet }: [" > "$depsFile"
while read pkgSpec; do
{ read pname; read version; } < <(
# Ignore build version part: 1.0.0-beta2+77df2220 -> 1.0.0-beta2
sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkgSpec"
)
sha256=$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkgSpec")"/*.nupkg)
cat >> "$depsFile" <<EOF
(fetchNuGet {
pname = "$pname";
version = "$version";
sha256 = "$sha256";
})
EOF
done < <(find home/.nuget/packages -name '*.nuspec' | LC_ALL=C sort)
echo "]" >> "$depsFile"
echo "Created $depsFile"
popd > /dev/null
rm -r $tmpdir

View File

@ -10,7 +10,6 @@ trap 'echo "Error at ${BASH_SOURCE[0]}:$LINENO"' ERR
pkgName=$1
depsFile=$2
customFlags=$3
: ${getVersionFromTags:=}
: ${refetch:=}
@ -75,5 +74,4 @@ fi
echo
# Create deps file
storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
. "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile" "$customFlags"
$(nix-build "$nixpkgs" -A $pkgName.fetch-deps --no-out-link) "$depsFile"

View File

@ -1,5 +1,5 @@
{ autoreconfHook, boost180, cargo, coreutils, curl, cxx-rs, db62, fetchFromGitHub
, hexdump, hostPlatform, lib, libevent, libsodium, makeWrapper, rust, rustPlatform
, hexdump, lib, libevent, libsodium, makeWrapper, rust, rustPlatform
, pkg-config, Security, stdenv, testers, utf8cpp, util-linux, zcash, zeromq
}:
@ -82,6 +82,6 @@ rustPlatform.buildRustPackage.override { inherit stdenv; } rec {
license = licenses.mit;
# https://github.com/zcash/zcash/issues/4405
broken = hostPlatform.isAarch64 && hostPlatform.isDarwin;
broken = stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isDarwin;
};
}

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "lightdm-slick-greeter";
version = "1.6.0";
version = "1.6.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "slick-greeter";
rev = version;
sha256 = "sha256-XoGha0DyrtrGXW72Zvnk1FrvULPMYc0FvQj4JFSKxXo=";
sha256 = "sha256-k/E3bR63kesHQ/we+ctC0UEYE5YdZ6Lv5lYuXqCOvKA=";
};
nativeBuildInputs = [
@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
substituteInPlace src/slick-greeter.vala \
--replace "/usr/bin/numlockx" "${numlockx}/bin/numlockx" \
--replace "/usr/share/xsessions/" "/run/current-system/sw/share/xsessions/" \
--replace "/usr/share/wayland-sessions/" "/run/current-system/sw/share/wayland-sessions/" \
--replace "/usr/bin/slick-greeter" "${placeholder "out"}/bin/slick-greeter"
substituteInPlace src/session-list.vala \

View File

@ -13,7 +13,7 @@
, alsa-lib, cairo, acl, gpm, m17n_lib, libotf
, sigtool, jansson, harfbuzz, sqlite, nixosTests
, recurseIntoAttrs, emacsPackagesFor
, libgccjit, targetPlatform, makeWrapper # native-comp params
, libgccjit, makeWrapper # native-comp params
, fetchFromSavannah, fetchFromBitbucket
# macOS dependencies for NS and macPort

View File

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem
, unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook, makeWrapper
, unzip, libsecret, libXScrnSaver, libxshmfence, buildPackages
, atomEnv, at-spi2-atk, autoPatchelfHook
, systemd, fontconfig, libdbusmenu, glib, buildFHSUserEnvBubblewrap, wayland
@ -72,7 +72,8 @@ let
++ lib.optionals stdenv.isLinux [
autoPatchelfHook
nodePackages.asar
(wrapGAppsHook.override { inherit makeWrapper; })
# override doesn't preserve splicing https://github.com/NixOS/nixpkgs/issues/132651
(buildPackages.wrapGAppsHook.override { inherit (buildPackages) makeWrapper; })
];
dontBuild = true;

View File

@ -36,19 +36,13 @@
stdenv.mkDerivation rec {
pname = "hugin";
version = "2021.0.0";
version = "2022.0.0";
src = fetchurl {
url = "mirror://sourceforge/hugin/hugin-${version}.tar.bz2";
sha256 = "sha256-BHrqin+keESzTvJ8GdO2l+hJOdyx/bvrLCBGIbZu6tk=";
sha256 = "sha256-l8hWKgupp0PguVWkPf3gSLHGDNnl8u4rad4agWRuBac=";
};
patches = [
# committed upstream but unreleased:
# https://sourceforge.net/p/hugin/hugin/ci/edfddc6070ca6d4223d359fb4b38273a5aed2f2d
./dont-crash-if-XDG_DATA_DIRS-not-set-edfddc6070ca6d4223d359fb4b38273a5aed2f2d.patch
];
buildInputs = [
boost
cairo

View File

@ -1,14 +0,0 @@
--- a/src/hugin_base/hugin_utils/utils.cpp 2022-12-05 22:19:26.873574924 -0800
+++ b/src/hugin_base/hugin_utils/utils.cpp 2022-12-05 22:19:09.069575641 -0800
@@ -472,9 +472,9 @@
#else
#ifdef USE_XDG_DIRS
char *xdgDataDir = getenv("XDG_DATA_HOME");
- if (strlen(xdgDataDir) == 0)
+ if (xdgDataDir == NULL || strlen(xdgDataDir) == 0)
{
- // no XDG_DATA_HOME enviroment variable set
+ // no XDG_DATA_HOME enviroment variable set or empty variable
// use $HOME/.local/share instead
const std::string homeDir = GetHomeDir();
if (homeDir.empty())

View File

@ -1,5 +1,4 @@
{ buildPackages
, buildPlatform
, fetchzip
, javaOpts ? "-XX:+UseZGC"
, jdk
@ -23,7 +22,7 @@ stdenvNoCC.mkDerivation rec {
nativeBuildInputs = [ jdk makeWrapper ];
LANG = "en_US.UTF-8";
LOCALE_ARCHIVE = lib.optionalString (buildPlatform.libc == "glibc")
LOCALE_ARCHIVE = lib.optionalString (stdenvNoCC.buildPlatform.libc == "glibc")
"${buildPackages.glibcLocales}/lib/locale/locale-archive";
buildPhase = ''

View File

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "AusweisApp2";
version = "1.24.4";
version = "1.26.1";
src = fetchFromGitHub {
owner = "Governikus";
repo = "AusweisApp2";
rev = version;
sha256 = "sha256-YO0K8L03n/KQcINRKwls8BxG8nv5k3Myd95AU8agigI=";
sha256 = "sha256-Q+ZWnbYH80FMazKB1iSTh9cuYvuPom+qDjMZvC1gUoY=";
};
nativeBuildInputs = [ cmake pkg-config ];

View File

@ -12,7 +12,7 @@
let
inherit (stdenv.hostPlatform) system;
pname = "obsidian";
version = "1.0.3";
version = "1.1.9";
appname = "Obsidian";
meta = with lib; {
description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
@ -25,7 +25,7 @@ let
filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
src = fetchurl {
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
sha256 = if stdenv.isDarwin then "sha256-DYF9fEpZaP4tD/eeZAegDahR7UZyroqNB9bn2U7sgXs=" else "sha256-MpQk5g4184ZkCAjLU5Ug0ReWgVADskS1QuMcnPdNofs=";
sha256 = if stdenv.isDarwin then "sha256-x+9WG938YQFP/HF7B9xENOXFSdOrPFOJ1ufxXj3kXps=" else "sha256-dFR7LaDRJwpxrNyPNseGi66gIAHOKf5Au2VXl7SBGSE=";
};
icon = fetchurl {

View File

@ -2,14 +2,14 @@
rustPlatform.buildRustPackage rec {
pname = "oxker";
version = "0.1.10";
version = "0.1.11";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-2NX2iW3cT9027j2gUsDTtdIFDmJKIGPfSzrGGwvK/VA=";
sha256 = "sha256-O4fVEYstDkVHn7fBVOGu1ok9K9xiO9uLx0+vb6qMZoA=";
};
cargoSha256 = "sha256-//GI+roOsCLkKgMDUDK0YhJWmeIaYCMBt9r14+Rz8UQ=";
cargoHash = "sha256-LSMAE24E8Is/ejUE/2vogP0GmpF+9oO2pJoQOZ8OfU8=";
meta = with lib; {
description = "A simple tui to view & control docker containers";

View File

@ -1,18 +0,0 @@
From http://seclists.org/oss-sec/2014/q3/495 (with whitespace corrected).
--- a/src/formisc.c 2013-08-04 00:13:33.000000000 -0700
+++ b/src/formisc.c 2014-09-03 11:42:25.986002396 -0700
@@ -84,12 +84,11 @@
case '"':*target++=delim='"';start++;
}
;{ int i;
- do
+ while(*start)
if((i= *target++= *start++)==delim) /* corresponding delimiter? */
break;
else if(i=='\\'&&*start) /* skip quoted character */
*target++= *start++;
- while(*start); /* anything? */
}
hitspc=2;
}

View File

@ -2,22 +2,13 @@
stdenv.mkDerivation rec {
pname = "procmail";
version = "3.22";
version = "3.24";
src = fetchurl {
url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-${version}.tar.gz";
sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
url = "https://github.com/BuGlessRB/procmail/archive/refs/tags/v${version}.tar.gz";
sha256 = "UU6kMzOXg+ld+TIeeUdx5Ih7mCOsVf2yRpcCz2m9OYk=";
};
patches = [
./CVE-2014-3618.patch
(fetchurl {
url = "https://sources.debian.org/data/main/p/procmail/3.22-26/debian/patches/30";
sha256 = "11zmz1bj0v9pay3ldmyyg7473b80h89gycrhndsgg9q50yhcqaaq";
name = "CVE-2017-16844";
})
];
# getline is defined differently in glibc now. So rename it.
# Without the .PHONY target "make install" won't install anything on Darwin.
postPatch = ''
@ -33,7 +24,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Mail processing and filtering utility";
homepage = "http://www.procmail.org/";
homepage = "https://github.com/BuGlessRB/procmail/";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ gebner ];

View File

@ -1,12 +1,21 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
{
lib,
stdenvNoCC,
fetchFromGitHub,
makeWrapper,
curl,
feh,
file,
jq,
util-linux,
wget,
}:
stdenvNoCC.mkDerivation rec {
pname = "stylish";
version = "unstable-2022-12-05";
nativeBuildInputs = [ makeWrapper ];
src = fetchFromGitHub {
owner = "thevinter";
repo = "styli.sh";
@ -22,6 +31,17 @@ stdenvNoCC.mkDerivation rec {
runHook postInstall
'';
postInstall = ''
wrapProgram $out/bin/styli.sh --prefix PATH : ${lib.makeBinPath [
curl
feh
file
jq
util-linux
wget
]}
'';
meta = with lib; {
homepage = "https://github.com/thevinter/styli.sh";
description = "A shell script to manage wallpapers";

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "tut";
version = "1.0.30";
version = "1.0.34";
src = fetchFromGitHub {
owner = "RasmusLindroth";
repo = pname;
rev = version;
sha256 = "sha256-Cr9aDfreTDeFV5mws29pYRUkUjHVcLGEZyUvZYAp3B8=";
sha256 = "sha256-AnuPTv9W+2yDcM803DZaNIn4S7A78JEv6S8pA18whVA=";
};
vendorSha256 = "sha256-ECaePGmSaf0vuKbvgdUMOF8oCpc14srFFMmPJPFFqw4=";
vendorHash = "sha256-go7eZHhrQ1ZcLOn56a3Azn3eRyAesAkgLabPbwzKtds=";
meta = with lib; {
description = "A TUI for Mastodon with vim inspired keys";

View File

@ -1,24 +1,23 @@
{
lib,
stdenv,
fetchFromGitHub,
zig,
wayland,
pkg-config,
scdoc,
wayland-protocols,
libxkbcommon,
pam,
{ lib
, stdenv
, fetchFromGitHub
, zig
, wayland
, pkg-config
, scdoc
, wayland-protocols
, libxkbcommon
, pam
}:
stdenv.mkDerivation rec {
pname = "waylock";
version = "0.4.2";
version = "0.6.0";
src = fetchFromGitHub {
owner = "ifreund";
repo = pname;
rev = "v${version}";
sha256 = "sha256-yWjWcnGa4a+Dpc82H65yr8H7v88g/tDq0FSguubhbEI=";
hash = "sha256-AujBvDy10e5HhezCQcXpBUVlktRKNseLxRKdI+gtH6w=";
fetchSubmodules = true;
};
@ -38,7 +37,7 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
zig build -Drelease-safe -Dman-pages --prefix $out install
zig build -Drelease-safe -Dman-pages -Dcpu=baseline --prefix $out install
runHook postInstall
'';

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "roxctl";
version = "3.72.2";
version = "3.73.1";
src = fetchFromGitHub {
owner = "stackrox";
repo = "stackrox";
rev = version;
sha256 = "sha256-qw45Ifp8JcJyKaKL1St0HAQGS7JiUestiPGyZcV3gx8=";
sha256 = "sha256-A/jEw29c2WbBlPZZACjI3NjM7a0JxCEob8GOoGx13Hs=";
};
vendorSha256 = "sha256-FmpnRgU3w2zthgUJuAG5AqLl2UxMb0yywN5Sk9WoWBI=";
vendorHash = "sha256-YRNOOn/Ei0rHLZrTtQxlBBn48pePDHllnI65Iil160k=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -10,13 +10,13 @@
buildGoModule rec {
pname = "werf";
version = "1.2.193";
version = "1.2.195";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
hash = "sha256-4q+LtPwJa3gioOY90gUfCL4F/8jmtfkBKxBShg2xQas=";
hash = "sha256-rNhCZO4Axeuc5jEAndjma7/jnst1kDNdtb/h/jD2rtE=";
};
vendorHash = "sha256-GjcmpHyjhjCWE5gQR/oTHfhHYg5WRu8uhgAuWhdxlYk=";

View File

@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
++ lib.optionals stdenv.isDarwin [ Security Foundation libiconv gettext ];
postBuild = ''
make prefix="$out"
make -j $NIX_BUILD_CORES prefix="$out"
'';
# https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set
@ -44,11 +44,11 @@ rustPlatform.buildRustPackage rec {
doCheck = true;
preCheck = ''
make test
make -j $NIX_BUILD_CORES test
'';
postInstall = ''
make prefix="$out" install
make -j $NIX_BUILD_CORES prefix="$out" install
'' + lib.optionalString stdenv.isDarwin ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib"

View File

@ -43,7 +43,7 @@ let
rev = "v${version}";
hash = "sha256-qCtpy69ROCspRgPKmCV0YY/EOSWiNU/xwDblU0bQp4w=";
};
vendorSha256 = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
});
};
in buildNpmPackage rec {

View File

@ -22,11 +22,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "gajim";
version = "1.5.4";
version = "1.6.0";
src = fetchurl {
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
sha256 = "sha256-uIzOKiCbHiSVRlXcpE0B/+Ats3cfw4u7eA+KyPriwhk=";
hash = "sha256-gHRB3thDH+CKRXTgrD37e2zf0rVDIVl4Zhxf5lsLjyc=";
};
buildInputs = [

View File

@ -6,7 +6,6 @@
let
pname = "zulip";
version = "5.9.4";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
@ -15,14 +14,14 @@ let
};
appimageContents = appimageTools.extractType2 {
inherit name src;
inherit pname version src;
};
in appimageTools.wrapType2 {
inherit name src;
inherit pname version src;
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
mv "$out/bin/${pname}-${version}" "$out/bin/${pname}"
install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \
$out/share/icons/hicolor/512x512/apps/zulip.png

View File

@ -36,14 +36,14 @@ let
in
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
stdenv.mkDerivation rec {
version = "3.7.1";
version = "3.8";
pname = "weechat";
hardeningEnable = [ "pie" ];
src = fetchurl {
url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
hash = "sha256-ZtJi1NhE1agZWnAv6FCUeO1GDtuQnLTraA5nkwWiCqs=";
hash = "sha256-objxAUGvBhTkbQl4GshDP3RsCkAW4z917L9WyaVoYj4=";
};
outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;

View File

@ -1,4 +1,12 @@
{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }:
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, openssl
, libsamplerate
, alsa-lib
, AppKit
}:
stdenv.mkDerivation rec {
pname = "pjsip";
@ -13,6 +21,16 @@ stdenv.mkDerivation rec {
patches = [
./fix-aarch64.patch
(fetchpatch {
name = "CVE-2022-23537.patch";
url = "https://github.com/pjsip/pjproject/commit/d8440f4d711a654b511f50f79c0445b26f9dd1e1.patch";
sha256 = "sha256-7ueQCHIiJ7MLaWtR4+GmBc/oKaP+jmEajVnEYqiwLRA=";
})
(fetchpatch {
name = "CVE-2022-23547.patch";
url = "https://github.com/pjsip/pjproject/commit/bc4812d31a67d5e2f973fbfaf950d6118226cf36.patch";
sha256 = "sha256-bpc8e8VAQpfyl5PX96G++6fzkFpw3Or1PJKNPKl7N5k=";
})
];
buildInputs = [ openssl libsamplerate ]

View File

@ -7,13 +7,13 @@
buildGoModule rec {
pname = "seaweedfs";
version = "3.38";
version = "3.39";
src = fetchFromGitHub {
owner = "seaweedfs";
repo = "seaweedfs";
rev = version;
hash = "sha256-LYMGkv1rgUtA/TwulBhgw0w+8kbICtEgr7/K6exalxM=";
hash = "sha256-mbeTdrKptPaMw1OA3jFftjJPOmUnJcjbv81yDSlFeaU=";
};
vendorHash = "sha256-mwfs/tdq1Qq2auEwz24emf7pjpIJAncI78oxhAn2WkI=";

View File

@ -0,0 +1,23 @@
diff --git a/gnucash/price-quotes.scm b/gnucash/price-quotes.scm
index 8e3ff255f..a6b805fa5 100644
--- a/gnucash/price-quotes.scm
+++ b/gnucash/price-quotes.scm
@@ -44,7 +44,7 @@
(define (start-program)
(set! program
(gnc-spawn-process-async
- (list "perl" "-w" gnc:*finance-quote-check*) #t)))
+ (list gnc:*finance-quote-check*) #t)))
(define (get-sources)
(when program
@@ -119,7 +119,7 @@
(define (start-quoter)
(set! quoter
- (gnc-spawn-process-async (list "perl" "-w" gnc:*finance-quote-helper*) #t)))
+ (gnc-spawn-process-async (list gnc:*finance-quote-helper*) #t)))
(define (get-quotes)
(when quoter

View File

@ -72,6 +72,8 @@ stdenv.mkDerivation rec {
./0002-disable-gnc-fq-update.patch
# this patch prevents the building of gnucash-valgrind
./0003-remove-valgrind.patch
# this patch makes gnucash exec the Finance::Quote helpers directly
./0004-exec-fq-helpers.patch
];
# this needs to be an environment variable and not a cmake flag to suppress

View File

@ -1,29 +1,66 @@
{ mkDerivation, lib, stdenv, fetchurl
, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwebsockets
, qtx11extras, qtwayland
{ lib
, stdenv
, fetchurl
, qmake
, qttools
, qtbase
, qtdeclarative
, qtsvg
, qtwayland
, qtwebsockets
, qtx11extras
, qtxmlpatterns
, makeWrapper
, wrapQtAppsHook
}:
mkDerivation rec {
let
pname = "qownnotes";
version = "22.12.3";
appname = "QOwnNotes";
version = "23.1.0";
in
stdenv.mkDerivation {
inherit pname appname version;
src = fetchurl {
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
# Fetch the checksum of current version with curl:
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
sha256 = "sha256-fpI7RYOGmWwmau6tF8FPmY2/FtN9foWRX8/WgrNU6E8=";
sha256 = "sha256-HMs8DTL2BDSDmchadpVvbShjJMPP6W587F38uiixCuQ=";
};
nativeBuildInputs = [ qmake qttools ];
nativeBuildInputs = [
qmake
qttools
wrapQtAppsHook
] ++ lib.optionals stdenv.isDarwin [ makeWrapper ];
buildInputs = [ qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets qtx11extras ]
++ lib.optionals stdenv.isLinux [ qtwayland ];
buildInputs = [
qtbase
qtdeclarative
qtsvg
qtwebsockets
qtx11extras
qtxmlpatterns
] ++ lib.optionals stdenv.isLinux [ qtwayland ];
postInstall =
# Create a lowercase symlink for Linux
lib.optionalString stdenv.isLinux ''
ln -s $out/bin/${appname} $out/bin/${pname}
''
# Wrap application for macOS as lowercase binary
+ lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv $out/bin/${appname}.app $out/Applications
makeWrapper $out/Applications/${appname}.app/Contents/MacOS/${appname} $out/bin/${pname}
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [ totoroot ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "ANTs";
version = "2.4.2";
version = "2.4.3";
src = fetchFromGitHub {
owner = "ANTsX";
repo = "ANTs";
rev = "v${version}";
sha256 = "sha256-edkvTkgBNaC87Q0N/Fsebr9nRLMhDo4mrSGoMICdnwU=";
sha256 = "sha256-S4HYhsqof27UXEYjKvbod8N7PkZDmwLdwcEAvJD0W5g=";
};
nativeBuildInputs = [ cmake makeWrapper ];

View File

@ -4,7 +4,6 @@
, alex
, happy
, Agda
, buildPlatform
, buildPackages
, ghcWithPackages
}:
@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
LANG = "en_US.UTF-8";
LOCALE_ARCHIVE =
lib.optionalString (buildPlatform.libc == "glibc")
lib.optionalString (stdenv.buildPlatform.libc == "glibc")
"${buildPackages.glibcLocales}/lib/locale/locale-archive";
postPatch = ''

View File

@ -1,18 +1,40 @@
{ lib, stdenv, fetchurl, ocamlPackages }:
{ lib
, stdenv
, fetchurl
, autoreconfHook
, which
, ocamlPackages
}:
stdenv.mkDerivation rec {
pname = "cubicle";
version = "1.1.2";
version = "1.2.0";
src = fetchurl {
url = "http://cubicle.lri.fr/cubicle-${version}.tar.gz";
sha256 = "10kk80jdmpdvql88sdjsh7vqzlpaphd8vip2lp47aarxjkwjlz1q";
url = "https://github.com/cubicle-model-checker/cubicle/archive/refs/tags/${version}.tar.gz";
hash = "sha256-/EtbXpyXqRm0jGcMfGLAEwdr92061edjFys1V7/w6/Y=";
};
# https://github.com/cubicle-model-checker/cubicle/issues/1
postPatch = ''
substituteInPlace Makefile.in --replace "\\n" ""
substituteInPlace Makefile.in \
--replace "@OCAMLC@" "ocamlfind ocamlc -package num" \
--replace "@OCAMLOPT@" "ocamlfind ocamlopt -package num"
'';
buildInputs = with ocamlPackages; [ ocaml findlib functory ];
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
which
] ++ (with ocamlPackages; [
findlib
ocaml
]);
buildInputs = with ocamlPackages; [
functory
num
];
meta = with lib; {
description = "An open source model checker for verifying safety properties of array-based systems";

View File

@ -1,15 +1,17 @@
{ lib, stdenv, fetchurl, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
, zlib, libGL, libGLU, xorg, opencascade-occt }:
, zlib, libGL, libGLU, xorg, opencascade-occt
, python ? null, enablePython ? false }:
assert (!blas.isILP64) && (!lapack.isILP64);
assert enablePython -> (python != null);
stdenv.mkDerivation rec {
pname = "gmsh";
version = "4.11.0";
version = "4.11.1";
src = fetchurl {
url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
sha256 = "sha256-PPLyRFXuCSUsmeZNTmRilW5o8P8fN7rKC3jICdbMVXo=";
sha256 = "sha256-xf4bfL1AOIioFJKfL9D11p4nYAIioYx4bbW3boAFs2U=";
};
buildInputs = [
@ -18,10 +20,31 @@ stdenv.mkDerivation rec {
libGL libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes
xorg.libXext xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM
xorg.libICE
] ++ lib.optional enablePython python;
enableParallelBuilding = true;
patches = [ ./fix-python.patch ];
postPatch = ''
substituteInPlace api/gmsh.py --subst-var-by LIBPATH ${placeholder "out"}/lib/libgmsh.so
'';
# N.B. the shared object is used by bindings
cmakeFlags = [
"-DENABLE_BUILD_SHARED=ON"
"-DENABLE_BUILD_DYNAMIC=ON"
"-DENABLE_OPENMP=ON"
];
nativeBuildInputs = [ cmake gfortran ];
postFixup = lib.optionalString enablePython ''
mkdir -p $out/lib/python${python.pythonVersion}/site-packages
mv $out/lib/gmsh.py $out/lib/python${python.pythonVersion}/site-packages
mv $out/lib/*.dist-info $out/lib/python${python.pythonVersion}/site-packages
'';
doCheck = true;
meta = {

View File

@ -0,0 +1,50 @@
diff --git a/api/gmsh.py b/api/gmsh.py
index 747acb203..02004da5d 100644
--- a/api/gmsh.py
+++ b/api/gmsh.py
@@ -44,44 +44,7 @@ moduledir = os.path.dirname(os.path.realpath(__file__))
parentdir1 = os.path.dirname(moduledir)
parentdir2 = os.path.dirname(parentdir1)
-if platform.system() == "Windows":
- libname = "gmsh-4.11.dll"
-elif platform.system() == "Darwin":
- libname = "libgmsh.4.11.dylib"
-else:
- libname = "libgmsh.so.4.11"
-
-# check if the library is in the same directory as the module...
-libpath = os.path.join(moduledir, libname)
-
-# ... or in the parent directory or its lib or Lib subdirectory
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir1, libname)
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir1, "lib", libname)
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir1, "Lib", libname)
-
-# ... or in the parent of the parent directory or its lib or Lib subdirectory
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir2, libname)
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir2, "lib", libname)
-if not os.path.exists(libpath):
- libpath = os.path.join(parentdir2, "Lib", libname)
-
-# if we couldn't find it, use ctype's find_library utility...
-if not os.path.exists(libpath):
- if platform.system() == "Windows":
- libpath = find_library("gmsh-4.11")
- if not libpath:
- libpath = find_library("gmsh")
- else:
- libpath = find_library("gmsh")
-
-# ... and print a warning if everything failed
-if not os.path.exists(libpath):
- print("Warning: could not find Gmsh shared library " + libname)
+libpath = "@LIBPATH@"
lib = CDLL(libpath)

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, intltool, pkg-config, qmake, wrapQtAppsHook, libqalculate, qtbase, qttools }:
{ lib, stdenv, fetchFromGitHub, intltool, pkg-config, qmake, wrapQtAppsHook, libqalculate, qtbase, qttools, qtsvg, qtwayland }:
stdenv.mkDerivation rec {
pname = "qalculate-qt";
@ -8,11 +8,16 @@ stdenv.mkDerivation rec {
owner = "qalculate";
repo = "qalculate-qt";
rev = "v${version}";
sha256 = "sha256-1MU/Wici+NQWbjoNpE9q6jKx8aKt85OAfb+ZsN/oK5w=";
hash = "sha256-1MU/Wici+NQWbjoNpE9q6jKx8aKt85OAfb+ZsN/oK5w=";
};
nativeBuildInputs = [ qmake intltool pkg-config wrapQtAppsHook ];
buildInputs = [ libqalculate qtbase qttools ];
buildInputs = [ libqalculate qtbase qttools qtsvg qtwayland ];
postPatch = ''
substituteInPlace qalculate-qt.pro\
--replace "LRELEASE" "${qttools.dev}/bin/lrelease"
'';
meta = with lib; {
description = "The ultimate desktop calculator";

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "subgit";
version = "3.3.15";
version = "3.3.16";
meta = {
description = "A tool for a smooth, stress-free SVN to Git migration";
@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://subgit.com/download/subgit-${version}.zip";
sha256 = "sha256-2/J/d4GrlLXR/7QBxgIMepzP+xxkeLvrCBwLl7Ke8wI=";
sha256 = "sha256-p7uBEG43N4Hed+8HYf3I9lQEvmYLV61oIyRrPHuGmUA=";
};
}

View File

@ -3,7 +3,6 @@
, cacert
, curl
, runCommandLocal
, targetPlatform
, unzip
, appimage-run
, addOpenGLRunpath
@ -49,7 +48,7 @@ let
SITEURL = "https://www.blackmagicdesign.com/api/register/us/download/${DOWNLOADID}";
USERAGENT = builtins.concatStringsSep " " [
"User-Agent: Mozilla/5.0 (X11; Linux ${targetPlatform.linuxArch})"
"User-Agent: Mozilla/5.0 (X11; Linux ${stdenv.targetPlatform.linuxArch})"
"AppleWebKit/537.36 (KHTML, like Gecko)"
"Chrome/77.0.3865.75"
"Safari/537.36"

View File

@ -0,0 +1,81 @@
{ lib
, stdenv
, fetchFromGitLab
, cmake
, zlib
, potrace
, ffmpeg
, libarchive
, python3
, qtbase
, qttools
, wrapQtAppsHook
, testers
, qtsvg
, qtimageformats
# For the tests
, glaxnimate # Call itself, for the tests
, xvfb-run
}:
let
# TODO: try to add a python library, see toPythonModule in doc/languages-frameworks/python.section.md
python3WithLibs = python3.withPackages (ps: with ps; [
# In data/lib/python-lottie/requirements.txt
numpy
pillow
cairosvg
fonttools
grapheme
opencv4
pyqt5
qscintilla
# Not sure if needed, but appears in some files
pyyaml
requests
pybind11
]);
in
stdenv.mkDerivation rec {
pname = "glaxnimate";
version = "0.5.1";
src = fetchFromGitLab {
owner = "mattbas";
repo = "${pname}";
rev = "${version}";
sha256 = "G4ykcOvXXnVIQZUYpRIrALtDSsGqxMvDtcmobjjtlKw=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
wrapQtAppsHook
];
buildInputs = [
zlib
potrace
# Upstream asks for libav dependency, which is fulfilled by ffmpeg
ffmpeg
libarchive
qtbase
qttools
qtsvg
qtimageformats
python3WithLibs
];
qtWrapperArgs = [ ''--prefix PATH : ${python3WithLibs}/bin'' ];
passthru.tests.version = testers.testVersion {
package = glaxnimate;
command = "${xvfb-run}/bin/xvfb-run glaxnimate --version";
};
meta = with lib; {
homepage = "https://gitlab.com/mattbas/glaxnimate";
description = "Simple vector animation program.";
license = licenses.gpl3;
maintainers = with maintainers; [ tobiasBora ];
};
}

View File

@ -1,7 +1,7 @@
{ lib
, stdenv
, callPackage
, buildPackages
, hostPlatform
}:
let
@ -34,9 +34,9 @@ let
};
in
(
if hostPlatform.system == "aarch64-darwin" then aarch64-dmg
else if hostPlatform.isDarwin then x86_64-dmg
else if hostPlatform.isCygwin then x86_64-windows
if stdenv.hostPlatform.system == "aarch64-darwin" then aarch64-dmg
else if stdenv.hostPlatform.isDarwin then x86_64-dmg
else if stdenv.hostPlatform.isCygwin then x86_64-windows
else x86_64-appimage
).overrideAttrs
(oldAttrs: {

View File

@ -17,19 +17,19 @@
stdenv.mkDerivation rec {
pname = "pods";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitHub {
owner = "marhkb";
repo = pname;
rev = "v${version}";
sha256 = "sha256-oa7A0RMF7kPQXydysGpzAICgGoIRLWUMRibXdiftYyk=";
sha256 = "sha256-Kjonyd0xL0QLjPS+U3xDC6AhOOxQmVAZ3STLXaa8eXc=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
sha256 = "sha256-RMxk7e/z+YneNWI/xsZDmXr7DqB7qHEY8HPvTCeSLjg=";
sha256 = "sha256-K5oOpo3xJiNg7F549JLGs83658MYcoGfuIcNoF88Njc=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,48 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, installShellFiles
, dbus
, libseccomp
, systemd
}:
rustPlatform.buildRustPackage rec {
pname = "youki";
version = "0.0.4";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = "v${version}";
sha256 = "sha256-XwapCfu6Me0xSe+qFz9BFRYpQvG+ztb6QyhGejYRPb4=";
};
nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ dbus libseccomp systemd ];
postInstall = ''
installShellCompletion --cmd youki \
--bash <($out/bin/youki completion -s bash) \
--fish <($out/bin/youki completion -s fish) \
--zsh <($out/bin/youki completion -s zsh)
'';
cargoBuildFlags = [ "-p" "youki" ];
cargoTestFlags = [ "-p" "youki" ];
cargoSha256 = "sha256-PT1kVo4gQFH9sIprEoAioNvDL/soMHcA2utEiQJPS/0=";
doCheck = false; # test failed
meta = with lib; {
description = "A container runtime written in Rust";
homepage = "https://containers.github.io/youki/";
changelog = "https://github.com/containers/youki/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ candyc1oud ];
platforms = platforms.linux;
};
}

View File

@ -190,7 +190,13 @@ stdenvNoCC.mkDerivation (args // {
esac
done
export tmp=$(mktemp -td "${pname}-tmp-XXXXXX")
if [[ ''${TMPDIR:-} == /run/user/* ]]; then
# /run/user is usually a tmpfs in RAM, which may be too small
# to store all downloaded dotnet packages
TMPDIR=
fi
export tmp=$(mktemp -td "deps-${pname}-XXXXXX")
HOME=$tmp/home
exitTrap() {

View File

@ -26,7 +26,6 @@
, git
, dart
, nukeReferences
, targetPlatform
, bash
, curl
, unzip
@ -57,7 +56,7 @@ let
self =
(self: llvmPackages_13.stdenv.mkDerivation (args // {
deps = stdenvNoCC.mkDerivation (lib.recursiveUpdate (getAttrsOrNull fetchAttrs args) {
name = "${self.name}-deps-flutter-v${flutter.unwrapped.version}-${targetPlatform.system}.tar.gz";
name = "${self.name}-deps-flutter-v${flutter.unwrapped.version}-${stdenvNoCC.targetPlatform.system}.tar.gz";
nativeBuildInputs = flutterDeps ++ [
nukeReferences

View File

@ -1,6 +1,6 @@
{ lib, buildPlatform, buildRustCrate, fetchgit }:
let kernel = buildPlatform.parsed.kernel.name;
abi = buildPlatform.parsed.abi.name;
{ lib, stdenv, buildRustCrate, fetchgit }:
let kernel = stdenv.buildPlatform.parsed.kernel.name;
abi = stdenv.buildPlatform.parsed.abi.name;
include = includedFiles: src: builtins.filterSource (path: type:
lib.lists.any (f:
let p = toString (src + ("/" + f)); in

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, unzip
{ lib, stdenv, fetchzip, fontforge
, bdftopcf, xorg
}:
@ -8,25 +8,24 @@ stdenv.mkDerivation {
outputs = [ "out" "bdf" ];
src = fetchurl {
url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
src = fetchzip {
url = "https://www.dcmembers.com/jibsen/download/61/?wpdmdl=61";
hash = "sha256-JK+vnOyhAbwT825S+WKbQuWgRrfZZHfyhaMQ/6ljO8s=";
extension = "zip";
stripRoot = false;
};
nativeBuildInputs =
[ unzip bdftopcf xorg.mkfontscale xorg.fonttosfnt ];
postPatch = ''
sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf
'';
[ fontforge bdftopcf xorg.mkfontscale xorg.fonttosfnt ];
buildPhase = ''
runHook preBuild
newName() {
test "''${1:5:1}" = i && _it=Italic || _it=
case ''${1:6:3} in
400) test -z $it && _weight=Medium ;;
local name=''${1##*/}
test "''${name:5:1}" = i && _it=Italic || _it=
case ''${name:6:3} in
400) _weight=Medium ;;
700) _weight=Bold ;;
esac
_pt=''${1%.bdf}
@ -34,6 +33,16 @@ stdenv.mkDerivation {
echo "Dina$_weight$_it$_pt"
}
# Re-encode the provided BDF files from CP1252 to Unicode as fonttosfnt does
# not support the former.
# We could generate the PCF and OTB files with fontforge directly, but that
# results in incorrect spacing in various places.
for f in BDF/*.bdf; do
basename=''${f##*/} basename=''${basename%.*}
fontforge -lang=ff -c "Open(\"$f\"); Reencode(\"win\", 1); Reencode(\"unicode\"); Generate(\"$basename.bdf\")"
mv "$basename"-*.bdf "$basename".bdf # remove the superfluous added size suffix
done
for f in *.bdf; do
name=$(newName "$f")
bdftopcf -t -o "$name.pcf" "$f"
@ -62,9 +71,8 @@ stdenv.mkDerivation {
relatively compact to allow a lot of code on screen, while (hopefully)
clear enough to remain readable even at high resolutions.
'';
homepage = "https://www.donationcoder.com/Software/Jibz/Dina/";
downloadPage = "https://www.donationcoder.com/Software/Jibz/Dina/";
homepage = "https://www.dcmembers.com/jibsen/download/61/";
license = licenses.free;
maintainers = [ maintainers.prikhi ];
maintainers = with maintainers; [ prikhi ncfavier ];
};
}

View File

@ -18,13 +18,13 @@ lib.checkListOfEnum "${pname}: color variants" [ "default" "purple" "pink" "red"
stdenvNoCC.mkDerivation rec {
inherit pname;
version = "2022-10-26";
version = "2023-01-08";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
hash = "sha256-eHLfWrtY69S37OPvQdLwI/PRvoKCheF2MRsHG5+5BR0=";
hash = "sha256-n4kMOIp7AD5Ue4qY4G3ja/VTyYF7cqhdI0uuk9b6o5c=";
};
nativeBuildInputs = [

View File

@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20221223102220";
version = "20230106031328";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
sha256 = "sha256-bvTNxJcogF3KxZbC8jW0PMIiJJZnzubWybDcNK7id8s=";
sha256 = "sha256-17yAIJQdxZAsNZ8W3HaW+EVKcPYy9fBOsSxU/0GEJuU=";
};
vendorSha256 = "sha256-CCY3CgjA1w4svzmkaI2Jt272Rrt5UOt5sbVDAWRRfzk=";
meta = with lib; {

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "v2ray-geoip";
version = "202212220043";
version = "202301050046";
src = fetchFromGitHub {
owner = "v2fly";
repo = "geoip";
rev = "4a54320369805321b90c7c5ca4cdda4f12bdd295";
sha256 = "sha256-PFbjzzjeCKL9aak45B+R5Y+H3fTBzdXpyEvvEEdInbQ=";
rev = "6bb07558ac223b3decdff985d5737f4384b34238";
sha256 = "sha256-KXLIIs1W+8TC2GtW3m/YA5WQ13Pq5kxC5Zc9jDzW/tU=";
};
installPhase = ''

View File

@ -35,13 +35,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-control-center";
version = "5.6.0";
version = "5.6.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-WK35uDckIYU4HwuYtLj+CFVJD8O78LTQcnOvjp/et2s=";
hash = "sha256-rp3K7SqGw8da2U61VjKiqUyT5vCUVk4XZdRYtLwRtfQ=";
};
buildInputs = [

View File

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-desktop";
version = "5.6.0";
version = "5.6.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-ajtKvy9CMr+Vsmdn49ZWYtbniZV1dqWJGTou3QY4oPc=";
hash = "sha256-h2Jl/4SreniZtxziDwM0iwHXgGBrnHu8NLkIX7VGP18=";
};
outputs = [ "out" "dev" ];

View File

@ -29,13 +29,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-screensaver";
version = "5.6.2";
version = "5.6.3";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-xsxNGDFiBzVtoCV94iUuia45FRJGyGO522u6p1AIR6g=";
hash = "sha256-S4+9ZTpDwwvYTc3gz0YQBYjgygp8KP94azkiJcH6xCk=";
};
nativeBuildInputs = [

View File

@ -32,13 +32,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-settings-daemon";
version = "5.6.0";
version = "5.6.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-VUGOBvMInruX1JVk9ECP8++FUrBQwDJhkZT/1pPg2wU=";
hash = "sha256-QR77O3rFfY0+6cKoS75xoFRplNo4nvTMtR2rNKZERYE=";
};
patches = [

View File

@ -5,13 +5,14 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-cursor-themes";
version = "unstable-2022-11-29";
version = "1.0.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = "aa6bb767831ac43d1768c2e639de713a4a1eba8d";
hash = "sha256-UQnRrylUo9zuDiAwQ1COtXMtq4XTbxtMle41p+pzxJc=";
# They don't really do tags, this is just a named commit.
rev = "e17f8a4620827235dabbe5221bd0ee8c44dad0d5";
hash = "sha256-yLUmIVh884uDVkNil7qxf6t/gykipzBvPgzwmY3zvQk=";
};
installPhase = ''

View File

@ -1,7 +1,6 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, substituteAll
, cairo
, cinnamon-desktop
@ -36,7 +35,7 @@
stdenv.mkDerivation rec {
pname = "muffin";
version = "5.6.2";
version = "5.6.3";
outputs = [ "out" "dev" "man" ];
@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-bHEBzl0aBXsHOhSWJUz428pG5M6L0s/Q6acKO+2oMXo=";
hash = "sha256-qcm1CRUMKFx4KDXBnaIVLHuZTzSMEWEBFTWMe85pJDE=";
};
patches = [
@ -52,13 +51,6 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
zenity = gnome.zenity;
})
# compositor: Fix crash when restarting Cinnamon
# https://github.com/linuxmint/muffin/pull/655
(fetchpatch {
url = "https://github.com/linuxmint/muffin/commit/1a941ec603a1565dbd2f943f7da6e877d1541bcb.patch";
sha256 = "sha256-6x64rWQ20ZjM9z79Pg6QMDPeFN5VNdDHBueRvy2kA6c=";
})
];
nativeBuildInputs = [

View File

@ -23,24 +23,19 @@
stdenv.mkDerivation rec {
pname = "nemo";
version = "5.6.1";
version = "5.6.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-ztx3Y+n9Bpzuz06mbkis3kdlM/0JrOaMDbRF5glzkDE=";
sha256 = "sha256-JwwSeY+TsbYc2ZXoxR9aja0Hb8AmrWK79cv1ApAgcpQ=";
};
patches = [
# Load extensions from NEMO_EXTENSION_DIR environment variable
# https://github.com/NixOS/nixpkgs/issues/78327
./load-extensions-from-env.patch
# Don't populate nemo actions from /run/current-system/sw/share
# They should only be loaded exactly once from $out/share
# https://github.com/NixOS/nixpkgs/issues/190781
./fix-nemo-actions-duplicate-menu-items.patch
];
outputs = [ "out" "dev" ];

View File

@ -1,48 +0,0 @@
diff --git a/libnemo-private/nemo-action-manager.c b/libnemo-private/nemo-action-manager.c
index 4dac198..b671421 100644
--- a/libnemo-private/nemo-action-manager.c
+++ b/libnemo-private/nemo-action-manager.c
@@ -146,6 +146,8 @@ set_up_actions_directories (NemoActionManager *action_manager)
data_dirs = (gchar **) g_get_system_data_dirs ();
for (i = 0; i < g_strv_length (data_dirs); i++) {
+ if (g_strcmp0 (data_dirs[i], "/run/current-system/sw/share") == 0)
+ continue;
path = g_build_filename (data_dirs[i], "nemo", "actions", NULL);
uri = g_filename_to_uri (path, NULL, NULL);
diff --git a/src/nemo-action-config-widget.c b/src/nemo-action-config-widget.c
index fc4075e..6e1c837 100644
--- a/src/nemo-action-config-widget.c
+++ b/src/nemo-action-config-widget.c
@@ -221,6 +221,8 @@ refresh_widget (NemoActionConfigWidget *widget)
data_dirs = (gchar **) g_get_system_data_dirs ();
for (i = 0; i < g_strv_length (data_dirs); i++) {
+ if (g_strcmp0 (data_dirs[i], "/run/current-system/sw/share") == 0)
+ continue;
path = g_build_filename (data_dirs[i], "nemo", "actions", NULL);
populate_from_directory (widget, path);
g_clear_pointer (&path, g_free);
@@ -390,6 +392,8 @@ static void setup_dir_monitors (NemoActionConfigWidget *widget)
guint i;
for (i = 0; i < g_strv_length (data_dirs); i++) {
+ if (g_strcmp0 (data_dirs[i], "/run/current-system/sw/share") == 0)
+ continue;
gchar *path = g_build_filename (data_dirs[i], "nemo", "actions", NULL);
try_monitor_path (widget, path);
g_free (path);
diff --git a/src/nemo-script-config-widget.c b/src/nemo-script-config-widget.c
index 3a2d349..b8a85b4 100644
--- a/src/nemo-script-config-widget.c
+++ b/src/nemo-script-config-widget.c
@@ -288,6 +288,8 @@ static void setup_dir_monitors (NemoScriptConfigWidget *widget)
guint i;
for (i = 0; i < g_strv_length (data_dirs); i++) {
+ if (g_strcmp0 (data_dirs[i], "/run/current-system/sw/share") == 0)
+ continue;
gchar *path = g_build_filename (data_dirs[i], "nemo", "actions", NULL);
try_monitor_path (widget, path);
g_free (path);

View File

@ -24,6 +24,10 @@ symlinkJoin {
--set "NEMO_PYTHON_EXTENSION_DIR" "$out/share/nemo-python/extensions"
done
# Don't populate the same nemo actions twice when having this globally installed
# https://github.com/NixOS/nixpkgs/issues/190781#issuecomment-1365601853
rm -r $out/share/nemo/actions
# Point to wrapped binary in all service files
for file in "share/dbus-1/services/nemo.FileManager1.service" \
"share/dbus-1/services/nemo.service"

View File

@ -27,13 +27,13 @@
stdenv.mkDerivation rec {
pname = "xviewer";
version = "3.2.11";
version = "3.2.12";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-EyrK4mnAHt/Lypuz7XX7+GFGfkfC5VDIit2WYZawI04=";
sha256 = "sha256-tiZeC862gHbZt76sbxseUu9vWN+1huftXpE7lQLkGKU=";
};
nativeBuildInputs = [

View File

@ -20,7 +20,7 @@ args@
, makeWrapper
, ncurses5
, perl
, python27
, python3
, requireFile
, stdenv
, unixODBC
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ perl makeWrapper addOpenGLRunpath ];
buildInputs = [ gdk-pixbuf ]; # To get $GDK_PIXBUF_MODULE_FILE via setup-hook
runtimeDependencies = [
ncurses5 expat python27 zlib glibc
ncurses5 expat python3 zlib glibc
xorg.libX11 xorg.libXext xorg.libXrender xorg.libXt xorg.libXtst xorg.libXi xorg.libXext
gtk2 glib fontconfig freetype unixODBC alsa-lib
];

View File

@ -448,7 +448,7 @@ self: super: {
#
# # Depends on itself for testing
# doctest-discover = addBuildTool super.doctest-discover
# (if pkgs.buildPlatform != pkgs.hostPlatform
# (if pkgs.stdenv.buildPlatform != pkgs.stdenv.hostPlatform
# then self.buildHaskellPackages.doctest-discover
# else dontCheck super.doctest-discover);
doctest-discover = dontCheck super.doctest-discover;

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