Merge remote-tracking branch 'origin/master' into staging-next

Conflicts:
  pkgs/applications/graphics/emulsion/default.nix
  pkgs/development/tools/misc/texlab/default.nix
  pkgs/development/tools/rust/bindgen/default.nix
  pkgs/development/tools/rust/cargo-udeps/default.nix
  pkgs/misc/emulators/ruffle/default.nix
  pkgs/tools/misc/code-minimap/default.nix
This commit is contained in:
Jonathan Ringer 2021-05-18 08:57:04 -07:00
commit f7a112f6c4
No known key found for this signature in database
GPG key ID: 5C841D3CFDFEC4E0
264 changed files with 3781 additions and 1606 deletions

View file

@ -4139,6 +4139,12 @@
githubId = 12491746;
name = "Masato Yonekawa";
};
hyzual = {
email = "hyzual@gmail.com";
github = "Hyzual";
githubId = 2051507;
name = "Joris Masson";
};
hzeller = {
email = "h.zeller@acm.org";
github = "hzeller";
@ -5874,6 +5880,12 @@
githubId = 10626;
name = "Andreas Wagner";
};
lromor = {
email = "leonardo.romor@gmail.com";
github = "lromor";
githubId = 1597330;
name = "Leonardo Romor";
};
lrworth = {
email = "luke@worth.id.au";
name = "Luke Worth";
@ -7317,6 +7329,12 @@
githubId = 1839979;
name = "Niklas Thörne";
};
nullx76 = {
email = "nix@xirion.net";
github = "NULLx76";
githubId = 1809198;
name = "Victor Roest";
};
numinit = {
email = "me@numin.it";
github = "numinit";

View file

@ -895,6 +895,7 @@
./services/system/kerberos/default.nix
./services/system/nscd.nix
./services/system/saslauthd.nix
./services/system/self-deploy.nix
./services/system/uptimed.nix
./services/torrent/deluge.nix
./services/torrent/flexget.nix

View file

@ -1,6 +1,6 @@
# Global configuration for atop.
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
with lib;
@ -12,11 +12,83 @@ in
options = {
programs.atop = {
programs.atop = rec {
enable = mkEnableOption "Atop";
package = mkOption {
type = types.package;
default = pkgs.atop;
description = ''
Which package to use for Atop.
'';
};
netatop = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install and enable the netatop kernel module.
Note: this sets the kernel taint flag "O" for loading out-of-tree modules.
'';
};
package = mkOption {
type = types.package;
default = config.boot.kernelPackages.netatop;
description = ''
Which package to use for netatop.
'';
};
};
atopgpu.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install and enable the atopgpud daemon to get information about
NVIDIA gpus.
'';
};
setuidWrapper.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install a setuid wrapper for Atop. This is required to use some of
the features as non-root user (e.g.: ipc information, netatop, atopgpu).
Atop tries to drop the root privileges shortly after starting.
'';
};
atopService.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable the atop service responsible for storing statistics for
long-term analysis.
'';
};
atopRotateTimer.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable the atop-rotate timer, which restarts the atop service
daily to make sure the data files are rotate.
'';
};
atopacctService.enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable the atopacct service which manages process accounting.
This allows Atop to gather data about processes that disappeared in between
two refresh intervals.
'';
};
settings = mkOption {
type = types.attrs;
default = {};
default = { };
example = {
flags = "a1f";
interval = 5;
@ -25,12 +97,50 @@ in
Parameters to be written to <filename>/etc/atoprc</filename>.
'';
};
};
};
config = mkIf (cfg.settings != {}) {
environment.etc.atoprc.text =
concatStrings (mapAttrsToList (n: v: "${n} ${toString v}\n") cfg.settings);
};
config = mkIf cfg.enable (
let
atop =
if cfg.atopgpu.enable then
(cfg.package.override { withAtopgpu = true; })
else
cfg.package;
in
{
environment.etc = mkIf (cfg.settings != { }) {
atoprc.text = concatStrings
(mapAttrsToList
(n: v: ''
${n} ${toString v}
'')
cfg.settings);
};
environment.systemPackages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
boot.extraModulePackages = [ (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
systemd =
let
mkSystemd = type: cond: name: restartTriggers: {
${name} = lib.mkIf cond {
inherit restartTriggers;
wantedBy = [ (if type == "services" then "multi-user.target" else if type == "timers" then "timers.target" else null) ];
};
};
mkService = mkSystemd "services";
mkTimer = mkSystemd "timers";
in
{
packages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
services =
mkService cfg.atopService.enable "atop" [ atop ]
// mkService cfg.atopacctService.enable "atopacct" [ atop ]
// mkService cfg.netatop.enable "netatop" [ cfg.netatop.package ]
// mkService cfg.atopgpu.enable "atopgpu" [ atop ];
timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ];
};
security.wrappers =
lib.mkIf cfg.setuidWrapper.enable { atop = { source = "${atop}/bin/atop"; }; };
}
);
}

View file

@ -145,15 +145,7 @@ in {
programs.feedbackd.enable = true;
# https://source.puri.sm/Librem5/phosh/-/issues/303
security.pam.services.phosh = {
text = ''
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
auth required pam_securetty.so
auth requisite pam_nologin.so
'';
};
security.pam.services.phosh = {};
services.gnome.core-shell.enable = true;
services.gnome.core-os-services.enable = true;

View file

@ -133,7 +133,7 @@ in
parser = ${pkgs.apparmor-parser}/bin/apparmor_parser
ldd = ${pkgs.glibc.bin}/bin/ldd
logger = ${pkgs.utillinux}/bin/logger
logger = ${pkgs.util-linux}/bin/logger
# customize how file ownership permissions are presented
# 0 - off

View file

@ -103,8 +103,8 @@ in
};
dataDir = mkOption {
default = "/var/lib/znc/";
example = "/home/john/.znc/";
default = "/var/lib/znc";
example = "/home/john/.znc";
type = types.path;
description = ''
The state directory for ZNC. The config and the modules will be linked
@ -258,6 +258,34 @@ in
ExecStart = "${pkgs.znc}/bin/znc --foreground --datadir ${cfg.dataDir} ${escapeShellArgs cfg.extraFlags}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
# Hardening
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
ReadWritePaths = [ cfg.dataDir ];
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
UMask = "0027";
};
preStart = ''
mkdir -p ${cfg.dataDir}/configs

View file

@ -44,7 +44,7 @@ let
modules = mkOption {
type = types.listOf types.str;
default = [ "simple_away" ];
example = literalExample "[ simple_away sasl ]";
example = literalExample ''[ "simple_away" "sasl" ]'';
description = ''
ZNC network modules to load.
'';

View file

@ -0,0 +1,170 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.self-deploy;
workingDirectory = "/var/lib/nixos-self-deploy";
repositoryDirectory = "${workingDirectory}/repo";
outPath = "${workingDirectory}/system";
gitWithRepo = "git -C ${repositoryDirectory}";
renderNixArgs = args:
let
toArg = key: value:
if builtins.isString value
then " --argstr ${lib.escapeShellArg key} ${lib.escapeShellArg value}"
else " --arg ${lib.escapeShellArg key} ${lib.escapeShellArg (toString value)}";
in
lib.concatStrings (lib.mapAttrsToList toArg args);
isPathType = x: lib.strings.isCoercibleToString x && builtins.substring 0 1 (toString x) == "/";
in
{
options.services.self-deploy = {
enable = lib.mkEnableOption "self-deploy";
nixFile = lib.mkOption {
type = lib.types.path;
default = "/default.nix";
description = ''
Path to nix file in repository. Leading '/' refers to root of
git repository.
'';
};
nixAttribute = lib.mkOption {
type = lib.types.str;
description = ''
Attribute of `nixFile` that builds the current system.
'';
};
nixArgs = lib.mkOption {
type = lib.types.attrs;
default = { };
description = ''
Arguments to `nix-build` passed as `--argstr` or `--arg` depending on
the type.
'';
};
switchCommand = lib.mkOption {
type = lib.types.enum [ "boot" "switch" "dry-activate" "test" ];
default = "switch";
description = ''
The `switch-to-configuration` subcommand used.
'';
};
repository = lib.mkOption {
type = with lib.types; oneOf [ path str ];
description = ''
The repository to fetch from. Must be properly formatted for git.
If this value is set to a path (must begin with `/`) then it's
assumed that the repository is local and the resulting service
won't wait for the network to be up.
If the repository will be fetched over SSH, you must add an
entry to `programs.ssh.knownHosts` for the SSH host for the fetch
to be successful.
'';
};
sshKeyFile = lib.mkOption {
type = with lib.types; nullOr path;
default = null;
description = ''
Path to SSH private key used to fetch private repositories over
SSH.
'';
};
branch = lib.mkOption {
type = lib.types.str;
default = "master";
description = ''
Branch to track
Technically speaking any ref can be specified here, as this is
passed directly to a `git fetch`, but for the use-case of
continuous deployment you're likely to want to specify a branch.
'';
};
startAt = lib.mkOption {
type = with lib.types; either str (listOf str);
default = "hourly";
description = ''
The schedule on which to run the `self-deploy` service. Format
specified by `systemd.time 7`.
This value can also be a list of `systemd.time 7` formatted
strings, in which case the service will be started on multiple
schedules.
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services.self-deploy = {
wantedBy = [ "multi-user.target" ];
requires = lib.mkIf (!(isPathType cfg.repository)) [ "network-online.target" ];
environment.GIT_SSH_COMMAND = lib.mkIf (!(isNull cfg.sshKeyFile))
"${pkgs.openssh}/bin/ssh -i ${lib.escapeShellArg cfg.sshKeyFile}";
restartIfChanged = false;
path = with pkgs; [
git
nix
systemd
];
script = ''
if [ ! -e ${repositoryDirectory} ]; then
mkdir --parents ${repositoryDirectory}
git init ${repositoryDirectory}
fi
${gitWithRepo} fetch ${lib.escapeShellArg cfg.repository} ${lib.escapeShellArg cfg.branch}
${gitWithRepo} checkout FETCH_HEAD
nix-build${renderNixArgs cfg.nixArgs} ${lib.cli.toGNUCommandLineShell { } {
attr = cfg.nixAttribute;
out-link = outPath;
}} ${lib.escapeShellArg "${repositoryDirectory}${cfg.nixFile}"}
${lib.optionalString (cfg.switchCommand != "test")
"nix-env --profile /nix/var/nix/profiles/system --set ${outPath}"}
${outPath}/bin/switch-to-configuration ${cfg.switchCommand}
rm ${outPath}
${gitWithRepo} gc --prune=all
${lib.optionalString (cfg.switchCommand == "boot") "systemctl reboot"}
'';
};
};
}

View file

@ -64,6 +64,7 @@ in
{
meta = {
doc = ./gnome.xml;
maintainers = teams.gnome.members;
};
@ -553,7 +554,7 @@ in
/* gnome-boxes */
] config.environment.gnome.excludePackages);
services.sysprof.enable = true;
services.sysprof.enable = notExcluded pkgs.sysprof;
})
];

View file

@ -0,0 +1,276 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-gnome">
<title>GNOME Desktop</title>
<para>
GNOME provides a simple, yet full-featured desktop environment with a focus on productivity. Its Mutter compositor supports both Wayland and X server, and the GNOME Shell user interface is fully customizable by extensions.
</para>
<section xml:id="sec-gnome-enable">
<title>Enabling GNOME</title>
<para>
All of the core apps, optional apps, games, and core developer tools from GNOME are available.
</para>
<para>
To enable the GNOME desktop use:
</para>
<programlisting>
<xref linkend="opt-services.xserver.desktopManager.gnome.enable"/> = true;
<xref linkend="opt-services.xserver.displayManager.gdm.enable"/> = true;
</programlisting>
<note>
<para>
While it is not strictly necessary to use GDM as the display manager with GNOME, it is recommended, as some features such as screen lock <link xlink:href="#sec-gnome-faq-can-i-use-lightdm-with-gnome">might not work</link> without it.
</para>
</note>
<para>
The default applications used in NixOS are very minimal, inspired by the defaults used in <link xlink:href="https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/40.0/elements/core/meta-gnome-core-utilities.bst">gnome-build-meta</link>.
</para>
<section xml:id="sec-gnome-without-the-apps">
<title>GNOME without the apps</title>
<para>
If youd like to only use the GNOME desktop and not the apps, you can disable them with:
</para>
<programlisting>
<xref linkend="opt-services.gnome.core-utilities.enable"/> = false;
</programlisting>
<para>
and none of them will be installed.
</para>
<para>
If youd only like to omit a subset of the core utilities, you can use <xref linkend="opt-environment.gnome.excludePackages"/>.
Note that this mechanism can only exclude core utilities, games and core developer tools.
</para>
</section>
<section xml:id="sec-gnome-disabling-services">
<title>Disabling GNOME services</title>
<para>
It is also possible to disable many of the <link xlink:href="https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348">core services</link>. For example, if you do not need indexing files, you can disable Tracker with:
</para>
<programlisting>
<xref linkend="opt-services.gnome.tracker-miners.enable"/> = false;
<xref linkend="opt-services.gnome.tracker.enable"/> = false;
</programlisting>
<para>
Note, however, that doing so is not supported and might break some applications. Notably, GNOME Music cannot work without Tracker.
</para>
</section>
<section xml:id="sec-gnome-games">
<title>GNOME games</title>
<para>
You can install all of the GNOME games with:
</para>
<programlisting>
<xref linkend="opt-services.gnome.games.enable"/> = true;
</programlisting>
</section>
<section xml:id="sec-gnome-core-developer-tools">
<title>GNOME core developer tools</title>
<para>
You can install GNOME core developer tools with:
</para>
<programlisting>
<xref linkend="opt-services.gnome.core-developer-tools.enable"/> = true;
</programlisting>
</section>
</section>
<section xml:id="sec-gnome-enable-flashback">
<title>Enabling GNOME Flashback</title>
<para>
GNOME Flashback provides a desktop environment based on the classic GNOME 2 architecture. You can enable the default GNOME Flashback session, which uses the Metacity window manager, with:
</para>
<programlisting>
<xref linkend="opt-services.xserver.desktopManager.gnome.flashback.enableMetacity"/> = true;
</programlisting>
<para>
It is also possible to create custom sessions that replace Metacity with a different window manager using <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"/>.
</para>
<para>
The following example uses <literal>xmonad</literal> window manager:
</para>
<programlisting>
<xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"/> = [
{
wmName = "xmonad";
wmLabel = "XMonad";
wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad";
}
];
</programlisting>
</section>
<section xml:id="sec-gnome-gdm">
<title>GDM</title>
<para>
If you want to use GNOME Wayland session on Nvidia hardware, you need to enable:
</para>
<programlisting>
<xref linkend="opt-services.xserver.displayManager.gdm.nvidiaWayland"/> = true;
</programlisting>
<para>
as the default configuration will forbid this.
</para>
</section>
<section xml:id="sec-gnome-icons-and-gtk-themes">
<title>Icons and GTK Themes</title>
<para>
Icon themes and GTK themes dont require any special option to install in NixOS.
</para>
<para>
You can add them to <xref linkend="opt-environment.systemPackages"/> and switch to them with GNOME Tweaks.
If youd like to do this manually in dconf, change the values of the following keys:
</para>
<programlisting>
/org/gnome/desktop/interface/gtk-theme
/org/gnome/desktop/interface/icon-theme
</programlisting>
<para>
in <literal>dconf-editor</literal>
</para>
</section>
<section xml:id="sec-gnome-shell-extensions">
<title>Shell Extensions</title>
<para>
Most Shell extensions are packaged under the <literal>gnomeExtensions</literal> attribute.
Some packages that include Shell extensions, like <literal>gnome.gpaste</literal>, dont have their extension decoupled under this attribute.
</para>
<para>
You can install them like any other package:
</para>
<programlisting>
<xref linkend="opt-environment.systemPackages"/> = [
gnomeExtensions.dash-to-dock
gnomeExtensions.gsconnect
gnomeExtensions.mpris-indicator-button
];
</programlisting>
<para>
Unfortunately, we lack a way for these to be managed in a completely declarative way.
So you have to enable them manually with an Extensions application.
It is possible to use a <link xlink:href="#sec-gnome-gsettings-overrides">GSettings override</link> for this on <literal>org.gnome.shell.enabled-extensions</literal>, but that will only influence the default value.
</para>
</section>
<section xml:id="sec-gnome-gsettings-overrides">
<title>GSettings Overrides</title>
<para>
Majority of software building on the GNOME platform use GLibs <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html">GSettings</link> system to manage runtime configuration. For our purposes, the system consists of XML schemas describing the individual configuration options, stored in the package, and a settings backend, where the values of the settings are stored. On NixOS, like on most Linux distributions, dconf database is used as the backend.
</para>
<para>
<link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html#id-1.4.19.2.9.25">GSettings vendor overrides</link> can be used to adjust the default values for settings of the GNOME desktop and apps by replacing the default values specified in the XML schemas. Using overrides will allow you to pre-seed user settings before you even start the session.
</para>
<warning>
<para>
Overrides really only change the default values for GSettings keys so if you or an application changes the setting value, the value set by the override will be ignored. Until <link xlink:href="https://github.com/NixOS/nixpkgs/issues/54150">NixOSs dconf module implements changing values</link>, you will either need to keep that in mind and clear the setting from the backend using <literal>dconf reset</literal> command when that happens, or use the <link xlink:href="https://nix-community.github.io/home-manager/options.html#opt-dconf.settings">module from home-manager</link>.
</para>
</warning>
<para>
You can override the default GSettings values using the <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides"/> option.
</para>
<para>
Take note that whatever packages you want to override GSettings for, you need to add them to
<xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages"/>.
</para>
<para>
You can use <literal>dconf-editor</literal> tool to explore which GSettings you can set.
</para>
<section xml:id="sec-gnome-gsettings-overrides-example">
<title>Example</title>
<programlisting>
services.xserver.desktopManager.gnome = {
<link xlink:href="#opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides">extraGSettingsOverrides</link> = ''
# Change default background
[org.gnome.desktop.background]
picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}'
# Favorite apps in gnome-shell
[org.gnome.shell]
favorite-apps=['org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop']
'';
<link xlink:href="#opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages">extraGSettingsOverridePackages</link> = [
pkgs.gsettings-desktop-schemas # for org.gnome.desktop
pkgs.gnome.gnome-shell # for org.gnome.shell
];
};
</programlisting>
</section>
</section>
<section xml:id="sec-gnome-faq">
<title>Frequently Asked Questions</title>
<section xml:id="sec-gnome-faq-can-i-use-lightdm-with-gnome">
<title>Can I use LightDM with GNOME?</title>
<para>
Yes you can, and any other display-manager in NixOS.
</para>
<para>
However, it doesnt work correctly for the Wayland session of GNOME Shell yet, and
wont be able to lock your screen.
</para>
<para>
See <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56342">this issue.</link>
</para>
</section>
<section xml:id="sec-gnome-faq-nixos-rebuild-switch-kills-session">
<title>Why does <literal>nixos-rebuild switch</literal> sometimes kill my session?</title>
<para>
This is a known <link xlink:href="https://github.com/NixOS/nixpkgs/issues/44344">issue</link> without any workarounds.
If you are doing a fairly large upgrade, it is probably safer to use <literal>nixos-rebuild boot</literal>.
</para>
</section>
</section>
</chapter>

View file

@ -716,10 +716,17 @@ let
"NTP"
"EmitSIP"
"SIP"
"EmitPOP3"
"POP3"
"EmitSMTP"
"SMTP"
"EmitLPR"
"LPR"
"EmitRouter"
"EmitTimezone"
"Timezone"
"SendOption"
"SendVendorOption"
])
(assertInt "PoolOffset")
(assertMinimum "PoolOffset" 0)
@ -728,6 +735,9 @@ let
(assertValueOneOf "EmitDNS" boolValues)
(assertValueOneOf "EmitNTP" boolValues)
(assertValueOneOf "EmitSIP" boolValues)
(assertValueOneOf "EmitPOP3" boolValues)
(assertValueOneOf "EmitSMTP" boolValues)
(assertValueOneOf "EmitLPR" boolValues)
(assertValueOneOf "EmitRouter" boolValues)
(assertValueOneOf "EmitTimezone" boolValues)
];

View file

@ -90,7 +90,7 @@ in rec {
(onFullSupported "nixos.tests.keymap.azerty")
(onFullSupported "nixos.tests.keymap.colemak")
(onFullSupported "nixos.tests.keymap.dvorak")
(onFullSupported "nixos.tests.keymap.dvp")
(onFullSupported "nixos.tests.keymap.dvorak-programmer")
(onFullSupported "nixos.tests.keymap.neo")
(onFullSupported "nixos.tests.keymap.qwertz")
(onFullSupported "nixos.tests.latestKernel.login")

View file

@ -29,6 +29,7 @@ in
ammonite = handleTest ./ammonite.nix {};
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
awscli = handleTest ./awscli.nix { };

213
nixos/tests/atop.nix Normal file
View file

@ -0,0 +1,213 @@
{ system ? builtins.currentSystem
, config ? { }
, pkgs ? import ../.. { inherit system config; }
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib;
let assertions = rec {
path = program: path: ''
with subtest("The path of ${program} should be ${path}"):
p = machine.succeed("type -p \"${program}\" | head -c -1")
assert p == "${path}", f"${program} is {p}, expected ${path}"
'';
unit = name: state: ''
with subtest("Unit ${name} should be ${state}"):
machine.require_unit_state("${name}", "${state}")
'';
version = ''
import re
with subtest("binary should report the correct version"):
pkgver = "${pkgs.atop.version}"
ver = re.sub(r'(?s)^Version: (\d\.\d\.\d).*', r'\1', machine.succeed("atop -V"))
assert ver == pkgver, f"Version is `{ver}`, expected `{pkgver}`"
'';
atoprc = contents:
if builtins.stringLength contents > 0 then ''
with subtest("/etc/atoprc should have the correct contents"):
f = machine.succeed("cat /etc/atoprc")
assert f == "${contents}", f"/etc/atoprc contents: '{f}', expected '${contents}'"
'' else ''
with subtest("/etc/atoprc should not be present"):
machine.succeed("test ! -e /etc/atoprc")
'';
wrapper = present:
if present then path "atop" "/run/wrappers/bin/atop" + ''
with subtest("Wrapper should be setuid root"):
stat = machine.succeed("stat --printf '%a %u' /run/wrappers/bin/atop")
assert stat == "4511 0", f"Wrapper stat is {stat}, expected '4511 0'"
''
else path "atop" "/run/current-system/sw/bin/atop";
atopService = present:
if present then
unit "atop.service" "active"
+ ''
with subtest("atop.service should have written some data to /var/log/atop"):
files = int(machine.succeed("ls -1 /var/log/atop | wc -l"))
assert files > 0, "Expected at least 1 data file"
'' else unit "atop.service" "inactive";
atopRotateTimer = present:
unit "atop-rotate.timer" (if present then "active" else "inactive");
atopacctService = present:
if present then
unit "atopacct.service" "active"
+ ''
with subtest("atopacct.service should enable process accounting"):
machine.succeed("test -f /run/pacct_source")
with subtest("atopacct.service should write data to /run/pacct_shadow.d"):
files = int(machine.succeed("ls -1 /run/pacct_shadow.d | wc -l"))
assert files >= 1, "Expected at least 1 pacct_shadow.d file"
'' else unit "atopacct.service" "inactive";
netatop = present:
if present then
unit "netatop.service" "active"
+ ''
with subtest("The netatop kernel module should be loaded"):
out = machine.succeed("modprobe -n -v netatop")
assert out == "", f"Module should be loaded already, but modprobe would have done {out}."
'' else ''
with subtest("The netatop kernel module should be absent"):
machine.fail("modprobe -n -v netatop")
'';
atopgpu = present:
if present then
(unit "atopgpu.service" "active") + (path "atopgpud" "/run/current-system/sw/bin/atopgpud")
else (unit "atopgpu.service" "inactive") + ''
with subtest("atopgpud should not be present"):
machine.fail("type -p atopgpud")
'';
};
in
{
name = "atop";
justThePackage = makeTest {
name = "atop-justThePackage";
machine = {
environment.systemPackages = [ pkgs.atop ];
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "")
(wrapper false)
(atopService false)
(atopRotateTimer false)
(atopacctService false)
(netatop false)
(atopgpu false)
];
};
defaults = makeTest {
name = "atop-defaults";
machine = {
programs.atop = {
enable = true;
};
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "")
(wrapper false)
(atopService true)
(atopRotateTimer true)
(atopacctService true)
(netatop false)
(atopgpu false)
];
};
minimal = makeTest {
name = "atop-minimal";
machine = {
programs.atop = {
enable = true;
atopService.enable = false;
atopRotateTimer.enable = false;
atopacctService.enable = false;
};
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "")
(wrapper false)
(atopService false)
(atopRotateTimer false)
(atopacctService false)
(netatop false)
(atopgpu false)
];
};
netatop = makeTest {
name = "atop-netatop";
machine = {
programs.atop = {
enable = true;
netatop.enable = true;
};
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "")
(wrapper false)
(atopService true)
(atopRotateTimer true)
(atopacctService true)
(netatop true)
(atopgpu false)
];
};
atopgpu = makeTest {
name = "atop-atopgpu";
machine = {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
"cudatoolkit"
];
programs.atop = {
enable = true;
atopgpu.enable = true;
};
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "")
(wrapper false)
(atopService true)
(atopRotateTimer true)
(atopacctService true)
(netatop false)
(atopgpu true)
];
};
everything = makeTest {
name = "atop-everthing";
machine = {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
"cudatoolkit"
];
programs.atop = {
enable = true;
settings = {
flags = "faf1";
interval = 2;
};
setuidWrapper.enable = true;
netatop.enable = true;
atopgpu.enable = true;
};
};
testScript = with assertions; builtins.concatStringsSep "\n" [
version
(atoprc "flags faf1\\ninterval 2\\n")
(wrapper true)
(atopService true)
(atopRotateTimer true)
(atopacctService true)
(netatop true)
(atopgpu true)
];
};
}

View file

@ -17,56 +17,27 @@ in
let
alice = config.users.users.alice;
in {
# Automatically login on tty1 as a normal user:
imports = [ ./common/user-account.nix ];
services.getty.autologinUser = "alice";
programs.bash.loginShellInit = ''
if [ "$(tty)" = "/dev/tty1" ]; then
set -e
mkdir -p ~/.config/cagebreak
cp -f ${cagebreakConfigfile} ~/.config/cagebreak/config
cagebreak
fi
'';
hardware.opengl.enable = true;
programs.xwayland.enable = true;
environment.systemPackages = [ pkgs.cagebreak pkgs.wallutils ];
services.xserver = {
enable = true;
displayManager.autoLogin = {
enable = true;
user = alice.name;
};
};
services.xserver.windowManager.session = lib.singleton {
manage = "desktop";
name = "cagebreak";
start = ''
export XDG_RUNTIME_DIR="/run/user/${toString alice.uid}"
${pkgs.cagebreak}/bin/cagebreak &
waitPID=$!
'';
};
systemd.services.setupCagebreakConfig = {
wantedBy = [ "multi-user.target" ];
before = [ "multi-user.target" ];
environment = {
HOME = alice.home;
};
unitConfig = {
type = "oneshot";
RemainAfterExit = true;
user = alice.name;
};
script = ''
cd $HOME
CONFFILE=$HOME/.config/cagebreak/config
mkdir -p $(dirname $CONFFILE)
cp ${cagebreakConfigfile} $CONFFILE
'';
};
# Copied from cage:
# this needs a fairly recent kernel, otherwise:
# [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
# [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
# [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
# [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
# [backend/drm/drm.c:618] Failed to initialize renderer on connector 'Virtual-1': initial page-flip failed
# [backend/drm/drm.c:701] Failed to initialize renderer for plane
boot.kernelPackages = pkgs.linuxPackages_latest;
virtualisation.memorySize = 1024;
# Need to switch to a different VGA card / GPU driver than the default one (std) so that Cagebreak can launch:
virtualisation.qemu.options = [ "-vga virtio" ];
};
enableOCR = true;
@ -80,14 +51,15 @@ in
machine.wait_for_file("${XDG_RUNTIME_DIR}/wayland-0")
with subtest("ensure wayland works with wayinfo from wallutils"):
machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayinfo")
print(machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayinfo"))
with subtest("ensure xwayland works with xterm"):
machine.send_key("ctrl-t")
machine.send_key("t")
machine.wait_until_succeeds("pgrep xterm")
machine.wait_for_text("${user.name}@machine")
machine.screenshot("screen")
machine.send_key("ctrl-d")
# TODO: Fix the XWayland test (log the cagebreak output to debug):
# with subtest("ensure xwayland works with xterm"):
# machine.send_key("ctrl-t")
# machine.send_key("t")
# machine.wait_until_succeeds("pgrep xterm")
# machine.wait_for_text("${user.name}@machine")
# machine.screenshot("screen")
# machine.send_key("ctrl-d")
'';
})

View file

@ -44,12 +44,11 @@ import ./make-test-python.nix ({ pkgs, ...} :
# - https://github.com/NixOS/nixpkgs/issues/108772
# - https://github.com/NixOS/nixpkgs/pull/117555
print(machine.succeed("su - alice -c 'file ~/.config/Signal/sql/db.sqlite'"))
# TODO: The DB should be encrypted and the following should be machine.fail
# instead of machine.succeed but the DB is currently unencrypted and we
# want to notice if this isn't the case anymore as the transition to a
# encrypted DB can cause data loss!:
machine.succeed(
"su - alice -c 'file ~/.config/Signal/sql/db.sqlite' | grep -i sqlite"
"su - alice -c 'file ~/.config/Signal/sql/db.sqlite' | grep 'db.sqlite: data'"
)
machine.fail(
"su - alice -c 'file ~/.config/Signal/sql/db.sqlite' | grep -e SQLite -e database"
)
'';
})

View file

@ -3,7 +3,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: let
v2rayUser = {
# A random UUID.
id = "a6a46834-2150-45f8-8364-0f6f6ab32384";
alterId = 4;
alterId = 0; # Non-zero support will be disabled in the future.
};
# 1080 [http proxy] -> 1081 [vmess] -> direct

View file

@ -18,14 +18,14 @@
stdenv.mkDerivation rec {
pname = "squeekboard";
version = "unstable-2021-03-09";
version = "1.13.0";
src = fetchFromGitLab {
domain = "source.puri.sm";
owner = "Librem5";
repo = pname;
rev = "bffd212e102bf71a94c599aac0359a8d30d19008";
sha256 = "1j10zhyb8wyrcbryfj6f3drn9b0l9x0l7hnhy2imnjbfbnwwm4w7";
rev = "v${version}";
sha256 = "0xyd6ickbaqvrr8a7ak6j1ziqjk05jlnganjrdv43p74nnjyqr8y";
};
cargoDeps = rustPlatform.fetchCargoTarball {
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
cat Cargo.toml.in Cargo.deps > Cargo.toml
'';
name = "${pname}-${version}";
sha256 = "1qaqiaxqc4x2x5bd31na4c49vbjwrmz5clmgli7733dv55rxxias";
sha256 = "096skk7vmr93axcf0qj7kyr8hm1faj0nkmd349g8mnzwd68a9npz";
};
nativeBuildInputs = [

View file

@ -54,12 +54,26 @@ let
fstat = x: fn:
"-DENABLE_${fn}=${if x then "ON" else "OFF"}";
fstats = x:
map (fstat x);
withUdisks = (withTaglib && withDevices);
perl' = perl.withPackages (ppkgs: with ppkgs; [ URI ]);
options = [
{ names = [ "CDDB" ]; enable = withCddb; pkgs = [ libcddb ]; }
{ names = [ "CDPARANOIA" ]; enable = withCdda; pkgs = [ cdparanoia ]; }
{ names = [ "DEVICES_SUPPORT" ]; enable = withDevices; pkgs = [ ]; }
{ names = [ "DYNAMIC" ]; enable = withDynamic; pkgs = [ ]; }
{ names = [ "FFMPEG" "MPG123" "SPEEXDSP" ]; enable = withReplaygain; pkgs = [ ffmpeg speex mpg123 ]; }
{ names = [ "HTTPS_SUPPORT" ]; enable = true; pkgs = [ ]; }
{ names = [ "HTTP_SERVER" ]; enable = withHttpServer; pkgs = [ ]; }
{ names = [ "HTTP_STREAM_PLAYBACK" ]; enable = withHttpStream; pkgs = [ qtmultimedia ]; }
{ names = [ "LAME" ]; enable = withLame; pkgs = [ lame ]; }
{ names = [ "LIBVLC" ]; enable = withLibVlc; pkgs = [ libvlc ]; }
{ names = [ "MTP" ]; enable = withMtp; pkgs = [ libmtp ]; }
{ names = [ "MUSICBRAINZ" ]; enable = withMusicbrainz; pkgs = [ libmusicbrainz5 ]; }
{ names = [ "ONLINE_SERVICES" ]; enable = withOnlineServices; pkgs = [ ]; }
{ names = [ "STREAMS" ]; enable = withStreams; pkgs = [ ]; }
{ names = [ "TAGLIB" "TAGLIB_EXTRAS" ]; enable = withTaglib; pkgs = [ taglib taglib_extras ]; }
{ names = [ "UDISKS2" ]; enable = withUdisks; pkgs = [ udisks2 ]; }
];
in
mkDerivation rec {
@ -84,38 +98,16 @@ mkDerivation rec {
patchShebangs playlists
'';
buildInputs = [ qtbase qtsvg perl' ]
++ lib.optionals withTaglib [ taglib taglib_extras ]
++ lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
++ lib.optional withHttpStream qtmultimedia
++ lib.optional withCdda cdparanoia
++ lib.optional withCddb libcddb
++ lib.optional withLame lame
++ lib.optional withMtp libmtp
++ lib.optional withMusicbrainz libmusicbrainz5
++ lib.optional withUdisks udisks2
++ lib.optional withLibVlc libvlc;
buildInputs = [
qtbase
qtsvg
(perl.withPackages (ppkgs: with ppkgs; [ URI ]))
]
++ lib.flatten (builtins.catAttrs "pkgs" (builtins.filter (e: e.enable) options));
nativeBuildInputs = [ cmake pkg-config qttools ];
cmakeFlags = lib.flatten [
(fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
(fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
(fstat withHttpStream "HTTP_STREAM_PLAYBACK")
(fstat withCdda "CDPARANOIA")
(fstat withCddb "CDDB")
(fstat withLame "LAME")
(fstat withMtp "MTP")
(fstat withMusicbrainz "MUSICBRAINZ")
(fstat withOnlineServices "ONLINE_SERVICES")
(fstat withDynamic "DYNAMIC")
(fstat withDevices "DEVICES_SUPPORT")
(fstat withHttpServer "HTTP_SERVER")
(fstat withLibVlc "LIBVLC")
(fstat withStreams "STREAMS")
(fstat withUdisks "UDISKS2")
"-DENABLE_HTTPS_SUPPORT=ON"
];
cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
meta = with lib; {
description = "A graphical client for MPD";

View file

@ -17,7 +17,7 @@
, aacSupport ? true, faad2 ? null
, opusSupport ? true, opusfile ? null
, wavpackSupport ? false, wavpack ? null
, ffmpegSupport ? false, ffmpeg_3 ? null
, ffmpegSupport ? false, ffmpeg ? null
, apeSupport ? true, yasm ? null
# misc plugins
, zipSupport ? true, libzip ? null
@ -45,7 +45,7 @@ assert cdaSupport -> (libcdio != null && libcddb != null);
assert aacSupport -> faad2 != null;
assert opusSupport -> opusfile != null;
assert zipSupport -> libzip != null;
assert ffmpegSupport -> ffmpeg_3 != null;
assert ffmpegSupport -> ffmpeg != null;
assert apeSupport -> yasm != null;
assert artworkSupport -> imlib2 != null;
assert hotkeysSupport -> libX11 != null;
@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
++ optional aacSupport faad2
++ optional opusSupport opusfile
++ optional zipSupport libzip
++ optional ffmpegSupport ffmpeg_3
++ optional ffmpegSupport ffmpeg
++ optional apeSupport yasm
++ optional artworkSupport imlib2
++ optional hotkeysSupport libX11

View file

@ -8,8 +8,11 @@
, python3
, pkg-config
, glib
, libhandy_0
, cmake
, libhandy
, gtk3
, appstream-glib
, desktop-file-utils
, dbus
, openssl
, sqlite
@ -19,20 +22,20 @@
stdenv.mkDerivation rec {
pname = "gnome-podcasts";
version = "0.4.8";
version = "0.4.9";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "podcasts";
rev = version;
sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
sha256 = "1ah59ac3xm3sqai8zhil8ar30pviw83cm8in1n4id77rv24xkvgm";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-GInRA/V61r42spb/JYlM8+mATSkmOxdm2zHPRWaKcck=";
sha256 = "1iihpfvkli09ysn46cnif53xizkwzk0m91bljmlzsygp3ip5i5yw";
};
nativeBuildInputs = [
@ -49,9 +52,12 @@ stdenv.mkDerivation rec {
];
buildInputs = [
appstream-glib
cmake
desktop-file-utils
glib
gtk3
libhandy_0
libhandy
dbus
openssl
sqlite

View file

@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, rustPlatform
, pkg-config, wrapGAppsHook
{ lib, stdenv, fetchFromGitHub, rustPlatform
, pkg-config, wrapGAppsHook, CoreServices
}:
rustPlatform.buildRustPackage rec {
@ -14,6 +14,7 @@ rustPlatform.buildRustPackage rec {
};
nativeBuildInputs = [ pkg-config wrapGAppsHook ];
buildInputs = lib.optional stdenv.isDarwin CoreServices;
preConfigure = ''
substituteInPlace lib/utils.rs \

View file

@ -2,14 +2,14 @@
, usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
let
version = "0.5.6";
version = "0.5.8";
in stdenv.mkDerivation {
pname = "openmpt123";
inherit version;
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "sha256-F96ngrM0wUb0rNlIx8Mf/dKvyJnrNH6+Ab4WBup59Lg=";
sha256 = "sha256-KeLCEXS3P2fyul7naAjWLxgrEw5PcE7i2a6Cg5gtis0=";
};
enableParallelBuilding = true;

View file

@ -15,13 +15,13 @@ in
stdenv.mkDerivation rec {
pname = "btcpayserver";
version = "1.0.7.2";
version = "1.1.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "1hxpbzc4l1zxrcvmdm93vvphhksfwd0mw2dv6h8vi4451p77dhd9";
sha256 = "sha256-cCm4CZdVtjO2nj69CgRCrcwO0lAbiQVD6KocOj4CSdY=";
};
nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];

View file

@ -94,6 +94,21 @@
version = "0.6.3";
sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
})
(fetchNuGet {
name = "Fido2.AspNet";
version = "2.0.1";
sha256 = "1d6bjyck3mlhb9b4c75xhzr2pcs47vdqg2ayi5wnjh1aszyam3nq";
})
(fetchNuGet {
name = "Fido2.Models";
version = "2.0.1";
sha256 = "0llpzkik82n5gpgjawx181j85d2lizimkbdkxj1wyrjvxb2xbg3q";
})
(fetchNuGet {
name = "Fido2";
version = "2.0.1";
sha256 = "1s829n970lxngbhac9lvarwa9n9hqxr79kwv8i12amnmg6ir8ny5";
})
(fetchNuGet {
name = "Google.Api.Gax.Rest";
version = "2.5.0";
@ -149,6 +164,11 @@
version = "5.0.372";
sha256 = "1gllp58vdbql2ybwf05i2178x7p4g8zyyk64317d1pyss5217g7r";
})
(fetchNuGet {
name = "libsodium";
version = "1.0.18";
sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
})
(fetchNuGet {
name = "McMaster.NETCore.Plugins.Mvc";
version = "1.3.1";
@ -359,6 +379,11 @@
version = "3.1.4";
sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
version = "2.2.0";
sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
})
(fetchNuGet {
name = "Microsoft.Extensions.Caching.Abstractions";
version = "3.1.4";
@ -389,6 +414,11 @@
version = "3.1.4";
sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Abstractions";
version = "3.1.5";
sha256 = "03jwqjrfyx11ax19bq84c28qzaiyj4whrx7vayy4hr7sv0p28h8k";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
version = "2.0.0";
@ -399,6 +429,11 @@
version = "3.1.4";
sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.Binder";
version = "3.1.5";
sha256 = "0310pvrwbbqak7k4s32syryqxlkwli8w8bwlpnqmz42svh2302wv";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
version = "2.1.0";
@ -429,6 +464,11 @@
version = "3.1.4";
sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
})
(fetchNuGet {
name = "Microsoft.Extensions.Configuration";
version = "3.1.5";
sha256 = "1i7zm8ghgxwp655anyfm910qm7rcpvrz48fxjyzw9w63hj4sv6bk";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
version = "2.0.0";
@ -444,6 +484,11 @@
version = "3.1.4";
sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection.Abstractions";
version = "3.1.5";
sha256 = "1wkf8ajh4pj6g3wwd18g3hjc3lqqny8052rl373ddcardxrs2gvn";
})
(fetchNuGet {
name = "Microsoft.Extensions.DependencyInjection";
version = "2.0.0";
@ -539,6 +584,11 @@
version = "3.1.4";
sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Abstractions";
version = "3.1.5";
sha256 = "0lr22hlf52csrna9ly2lbz3y1agfgdlg7rvsqjg7ik488dhkmhji";
})
(fetchNuGet {
name = "Microsoft.Extensions.Logging.Filter";
version = "1.1.2";
@ -559,6 +609,11 @@
version = "2.0.0";
sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options.ConfigurationExtensions";
version = "3.1.5";
sha256 = "10w78fj2jpmghvprz6b046xcr68zzp6x550a7m1iivn0h7a3l7pi";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
version = "2.0.0";
@ -569,6 +624,11 @@
version = "3.1.4";
sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
})
(fetchNuGet {
name = "Microsoft.Extensions.Options";
version = "3.1.5";
sha256 = "0rhqyqa7vhlmz2g0250zhypaayvckx4dv89micdg521cpvr5arpr";
})
(fetchNuGet {
name = "Microsoft.Extensions.PlatformAbstractions";
version = "1.1.0";
@ -589,11 +649,36 @@
version = "2.1.0";
sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
version = "2.2.0";
sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
version = "3.1.4";
sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
})
(fetchNuGet {
name = "Microsoft.Extensions.Primitives";
version = "3.1.5";
sha256 = "0n2pk1sy8ikd29282sx4ps9r1wnhzgg4nwmkka9ypjizd8lkkk2m";
})
(fetchNuGet {
name = "Microsoft.IdentityModel.JsonWebTokens";
version = "6.6.0";
sha256 = "06z5a1jpqpdd1pix85is7kkpn4v0l4an909skji2p8gm09p5sfyv";
})
(fetchNuGet {
name = "Microsoft.IdentityModel.Logging";
version = "6.6.0";
sha256 = "1mpkx544cbxws1a22zwxbp3lqqamcc3x915l23spsxqvgr02jjrq";
})
(fetchNuGet {
name = "Microsoft.IdentityModel.Tokens";
version = "6.6.0";
sha256 = "0h5vbsd5x9cf7nqyrwn7d7y1axhf1zz0jr9prvi4xpxawa3kajyj";
})
(fetchNuGet {
name = "Microsoft.NET.Test.Sdk";
version = "16.6.1";
@ -671,8 +756,8 @@
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
version = "2.0.28";
sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
version = "2.0.31";
sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm";
})
(fetchNuGet {
name = "NBitcoin";
@ -694,6 +779,11 @@
version = "5.0.73";
sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.77";
sha256 = "0ykz4ii6lh6gdlz6z264wnib5pfnmq9q617qqbg0f04mq654jygb";
})
(fetchNuGet {
name = "NBitpayClient";
version = "1.0.0.39";
@ -701,8 +791,8 @@
})
(fetchNuGet {
name = "NBXplorer.Client";
version = "3.0.20";
sha256 = "1mwa6ncmg5r6q7yn6skm9dgqm631c7r7nadcg9mvbw81113h0xxy";
version = "3.0.21";
sha256 = "1asri2wsjq3ljf2p4r4x52ba9cirh8ccc5ysxpnv4cvladkdazbi";
})
(fetchNuGet {
name = "NETStandard.Library";
@ -784,6 +874,11 @@
version = "4.1.3.1";
sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
})
(fetchNuGet {
name = "NSec.Cryptography";
version = "20.2.0";
sha256 = "19slji51v8s8i4836nqqg7qb3i3p4ahqahz0fbb3gwpp67pn6izx";
})
(fetchNuGet {
name = "NuGet.Frameworks";
version = "5.0.0";
@ -794,6 +889,21 @@
version = "1.5.12";
sha256 = "0f4gs31z8dwfvd246nrv3m0qkxzav37hxynx2maykza017khynyf";
})
(fetchNuGet {
name = "PeterO.Cbor";
version = "4.1.3";
sha256 = "0882i3bhhx2yag2m4lbdsgngjwaj9ff4v0ab9zb839i4r77aq1yn";
})
(fetchNuGet {
name = "PeterO.Numbers";
version = "1.6.0";
sha256 = "04kfdkfr600h69g67g6izbn57bxqjamvaadyw3p9gjsc0wrivi98";
})
(fetchNuGet {
name = "PeterO.URIUtility";
version = "1.0.0";
sha256 = "04ihfbk2lf0smznwfb62h57qknls5jyxirdz72g5wn9h1dcgkdac";
})
(fetchNuGet {
name = "Pomelo.EntityFrameworkCore.MySql";
version = "3.1.1";
@ -804,11 +914,6 @@
version = "2.2.1";
sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
})
(fetchNuGet {
name = "Portable.BouncyCastle";
version = "1.8.1.3";
sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g";
})
(fetchNuGet {
name = "QRCoder";
version = "1.4.1";
@ -1164,6 +1269,11 @@
version = "4.3.0";
sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
})
(fetchNuGet {
name = "System.IdentityModel.Tokens.Jwt";
version = "6.6.0";
sha256 = "17i6a43g1fksq9xy77dgsz54klz71pz062pb58lqx8h06p1818h1";
})
(fetchNuGet {
name = "System.Interactive.Async";
version = "3.1.1";
@ -1239,11 +1349,21 @@
version = "4.5.0";
sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
})
(fetchNuGet {
name = "System.Memory";
version = "4.5.1";
sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
})
(fetchNuGet {
name = "System.Memory";
version = "4.5.3";
sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
})
(fetchNuGet {
name = "System.Memory";
version = "4.5.4";
sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
})
(fetchNuGet {
name = "System.Net.Http";
version = "4.3.0";
@ -1409,6 +1529,11 @@
version = "4.5.0";
sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
})
(fetchNuGet {
name = "System.Runtime.CompilerServices.Unsafe";
version = "4.5.1";
sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
})
(fetchNuGet {
name = "System.Runtime.CompilerServices.Unsafe";
version = "4.5.2";
@ -1529,6 +1654,11 @@
version = "4.3.0";
sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
})
(fetchNuGet {
name = "System.Security.Cryptography.Cng";
version = "4.7.0";
sha256 = "00797sqbba8lys486ifxblz9j52m29kidclvmqpk531820k55x9j";
})
(fetchNuGet {
name = "System.Security.Cryptography.Csp";
version = "4.3.0";
@ -1789,11 +1919,6 @@
version = "2.12.1";
sha256 = "0m41dxzc3hh0f4j1k4q915pvcq6zr0hv1pj6b3sayrn8vjhk64qb";
})
(fetchNuGet {
name = "U2F.Core";
version = "1.0.4";
sha256 = "0mk32yyihigp9njs54z411fswgzr6x3kw134c7ylwy2d2wmq2n9b";
})
(fetchNuGet {
name = "WindowsAzure.Storage";
version = "9.3.3";

View file

@ -2,5 +2,10 @@
set -euo pipefail
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
cd "$scriptDir"
"$scriptDir"/../nbxplorer/util/update-common.sh btcpayserver "$scriptDir"/deps.nix
echo "Updating nbxplorer"
../nbxplorer/update.sh
echo
echo "Updating btcpayserver"
../nbxplorer/util/update-common.sh btcpayserver deps.nix

View file

@ -15,13 +15,13 @@ in
stdenv.mkDerivation rec {
pname = "nbxplorer";
version = "2.1.49";
version = "2.1.51";
src = fetchFromGitHub {
owner = "dgarage";
repo = "NBXplorer";
rev = "v${version}";
sha256 = "0xg5gbq6rbzgsbgwf94qcy2b0m5kdspi6hc5a64smaj9i7i0136l";
sha256 = "sha256-tvuuoDZCSDFa8gAVyH+EP1DLtdPfbkr+w5lSxZkzZXg=";
};
nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];

View file

@ -181,18 +181,23 @@
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
version = "2.0.28";
sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
version = "2.0.31";
sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm";
})
(fetchNuGet {
name = "NBitcoin.TestFramework";
version = "2.0.21";
sha256 = "1k26fkss6d7x2yqlid31z5i04b5dmlbbbwijg9c8i3d996i1z7sq";
version = "2.0.22";
sha256 = "1zwhjy6xppl01jhkgl7lqjsmi8crny4qq22ml20cz8l437j1zi4n";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.73";
sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
version = "5.0.76";
sha256 = "0q3ilmsrw9ip1s38qmfs4qi02xvccmy1naafffn5yxj08q0n1p79";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.77";
sha256 = "0ykz4ii6lh6gdlz6z264wnib5pfnmq9q617qqbg0f04mq654jygb";
})
(fetchNuGet {
name = "NETStandard.Library";

View file

@ -6,7 +6,7 @@ set -euo pipefail
# Expects $pkgSrc to contain a single .sln file.
pkgSrc=$1
depsFile=$2
depsFile=$(realpath "$2")
sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
[[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }

View file

@ -1,16 +1,16 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3
#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3 git gnupg
set -euo pipefail
# This script uses the following env vars:
# getVersionFromTags
# onlyCreateDeps
# refetch
pkgName=$1
depsFile=$2
: ${getVersionFromTags:=}
: ${onlyCreateDeps:=}
: ${refetch:=}
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
nixpkgs=$(realpath "$scriptDir"/../../../../..)
@ -29,23 +29,46 @@ getLatestVersionTag() {
| sort -V | tail -1 | sed 's|^v||'
}
if [[ ! $onlyCreateDeps ]]; then
oldVersion=$(evalNixpkgs "$pkgName.version")
if [[ $getVersionFromTags ]]; then
newVersion=$(getLatestVersionTag)
else
newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
fi
if [[ $newVersion == $oldVersion ]]; then
echo "nixpkgs already has the latest version $newVersion"
echo "Run this script with env var onlyCreateDeps=1 to recreate "$(basename "$depsFile")
exit 0
else
echo "Updating $pkgName: $oldVersion -> $newVersion"
(cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion")
fi
oldVersion=$(evalNixpkgs "$pkgName.version")
if [[ $getVersionFromTags ]]; then
newVersion=$(getLatestVersionTag)
else
newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
fi
if [[ $newVersion == $oldVersion && ! $refetch ]]; then
echo "nixpkgs already has the latest version $newVersion"
echo "Run this script with env var refetch=1 to re-verify the content hash via GPG"
echo "and to recreate $(basename "$depsFile"). This is useful for reviewing a version update."
exit 0
fi
# Fetch release and GPG-verify the content hash
tmpdir=$(mktemp -d /tmp/$pkgName-verify-gpg.XXX)
repo=$tmpdir/repo
trap "rm -rf $tmpdir" EXIT
git clone --depth 1 --branch v${newVersion} -c advice.detachedHead=false https://github.com/$(getRepo) $repo
export GNUPGHOME=$tmpdir
# Fetch Nicolas Dorier's key (64-bit key ID: 6618763EF09186FE)
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys AB4CFA9895ACA0DBE27F6B346618763EF09186FE 2> /dev/null
echo
echo "Verifying commit"
git -C $repo verify-commit HEAD
rm -rf $repo/.git
newHash=$(nix hash-path $repo)
rm -rf $tmpdir
echo
# Update pkg version and hash
echo "Updating $pkgName: $oldVersion -> $newVersion"
if [[ $newVersion == $oldVersion ]]; then
# Temporarily set a source version that doesn't equal $newVersion so that $newHash
# is always updated in the next call to update-source-version.
(cd "$nixpkgs" && update-source-version "$pkgName" "0" "0000000000000000000000000000000000000000000000000000")
fi
(cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion" "$newHash")
echo
# Create deps file
storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
. "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile"

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "turbo-geth";
version = "2021.05.01";
version = "2021.05.02";
src = fetchFromGitHub {
owner = "ledgerwatch";
repo = pname;
rev = "v${version}";
sha256 = "sha256-zvxtBK0/6fShxAZfU4gTV0XiP6TzhKFNsADSZA9gv0Y=";
sha256 = "sha256-7sTRAAlKZOdwi/LRbIEDKWpBe1ol8pZfEf2KIC4s0xk=";
};
vendorSha256 = "0c8p6djs0zcci8sh4zgzky89155mr4cfqlax025618x8vngrsxf2";
vendorSha256 = "1d0ahdb2b5v8nxq3kdxw151phnyv6habb8kr8qjaq3kyhcnyk6ng";
runVend = true;
subPackages = [

View file

@ -145,7 +145,7 @@ let
]}"
# AS launches LLDBFrontend with a custom LD_LIBRARY_PATH
wrapProgram $out/bin/lldb/bin/LLDBFrontend --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
wrapProgram $(find $out -name LLDBFrontend) --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
ncurses5
zlib
]}"

View file

@ -9,18 +9,18 @@ let
inherit buildFHSUserEnv;
};
stableVersion = {
version = "4.1.3.0"; # "Android Studio 4.1.3"
build = "201.7199119";
sha256Hash = "06xwgk7bwcmljka8xa56cfwwg858r0bl0xp2jb9hdnkwljf796gm";
version = "4.2.1.0"; # "Android Studio 4.2.1"
build = "202.7351085";
sha256Hash = "074y6i0h8zamjgvvs882im44clds3g6aq8rssl7sq1wx6hrn5q36";
};
betaVersion = {
version = "4.2.0.22"; # "Android Studio 4.2 Beta 6"
build = "202.7188722";
sha256Hash = "0mzwkx1csx194wzg7dc1cii3c16wbmlbq1jdv9ly4nmdxlvc2rxb";
version = "4.2.0.24"; # "Android Studio 4.2.0"
build = "202.7322048";
sha256Hash = "1ii1zf8mv7xyql56wwkcdj5l4g3zaprdszv6r9md9r5zh78k4ccz";
};
latestVersion = { # canary & dev
version = "2020.3.1.10"; # "Android Studio Arctic Fox (2020.3.1) Canary 10"
sha256Hash = "15xxyjjjy5pnimc66dcwnqb7z4lq7ll4fl401a3br5ca4d1hpgsj";
version = "2020.3.1.15"; # "Android Studio Arctic Fox (2020.3.1) Canary 15"
sha256Hash = "0k66ibflqwdlgapir5w2v1d4zjwn6464yk2hvlmif9lsfdvd0ivv";
};
in {
# Attributes are named by their corresponding release channels

View file

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1p68fvlr2fwrwr61gfrna3hjzgyazacr373hldbc4fxca3fdij76";
x86_64-darwin = "0wyihr2yfzjaypsa682zdklfxn3m7zca81brkzdvrndw24hdcl8m";
aarch64-linux = "0iw471n1fl8m2x06n2rdbkiwzhlc7lhk99vyql3z4fi0zyjy3pbn";
armv7l-linux = "0dx1icp245cfx3hkkpzzgfg9y8sv45llx35s03w1zzga2h2vhm3a";
x86_64-linux = "1gw2273ab0gdyav6mz7wk7d6g6cwcdvx0xaghvm610m1pvkbvxkz";
x86_64-darwin = "1zfzsr8gybmpmxc3jlfj6sx3m6ny6hc3dxvpgffni7k5zgv651df";
aarch64-linux = "079bp48h0qfpsbyir2qg3w1f43dc68ngmxqdqb3jnkx721affjzs";
armv7l-linux = "1d9243hk07xawv44909lk6y6bnvy0wjhy8xl13n3a11pg3djn5bm";
}.${system};
sourceRoot = {
@ -33,7 +33,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.56.1";
version = "1.56.2";
pname = "vscodium";
executableName = "codium";

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "avocode";
version = "4.12.0";
version = "4.14.0";
src = fetchurl {
url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
sha256 = "sha256-qbG0Ii3Xmj1UGGS+n+LdiNPAHBkpQZMGEzrDvOcaUNA=";
sha256 = "sha256-BDW87UVN1Jub0sJFvtkZr5ssz835Yf2CNn5kHCn70cE=";
};
libPath = lib.makeLibraryPath (with xorg; [

View file

@ -37,16 +37,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "emulsion";
version = "8.0";
version = "9.0";
src = fetchFromGitHub {
owner = "ArturKovacs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-xv3q59HobunrFyc+CPLztpsQd20Eu4+JI+iYhlGI0bc=";
sha256 = "sha256-Cdi+PQDHxMQG7t7iwDi6UWfDwQjjA2yiOf9p/ahBlOw=";
};
cargoSha256 = "sha256-+jJMi3uBpvKYegURFyAV3TfP8eX4xRxgL4WGew7WMws=";
cargoSha256 = "sha256-2wiLamnGqACx1r4WJbWPCN3tvhww/rRWz8fcvAbjYE0=";
nativeBuildInputs = [
installShellFiles

View file

@ -38,7 +38,7 @@ let
}
// attrs
// {
name = "${gimp.name}-plugin-${name}";
name = "${gimp.pname}-plugin-${name}";
buildInputs = [
gimp
gimp.gtk

View file

@ -1,16 +1,20 @@
{ lib, appimageTools, fetchurl }:
{ lib, appimageTools, fetchurl, gtk3, gsettings-desktop-schemas }:
let
pname = "chrysalis";
version = "0.7.9";
version = "0.8.4";
in appimageTools.wrapType2 rec {
name = "${pname}-${version}-binary";
src = fetchurl {
url = "https://github.com/keyboardio/${pname}/releases/download/${pname}-${version}/${pname}-${version}.AppImage";
sha256 = "12w4vv7dwfpvxpc8kpfas90y7yy8mb8dj2096z3vw1bli5lrn3zi";
url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
sha256 = "b41f3e23dac855b1588cff141e3d317f96baff929a0543c79fccee0c6f095bc7";
};
profile = ''
export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
'';
multiPkgs = null;
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.glib

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "curaengine";
version = "4.9.0";
version = "4.9.1";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "CuraEngine";
rev = version;
sha256 = "0b82hwn7pb73h1azaandq93bkzlzskhgk71pwf4yws0j9bm6z084";
sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
};
nativeBuildInputs = [ cmake ];

View file

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "dbeaver";
version = "21.0.4"; # When updating also update fetchedMavenDeps.sha256
version = "21.0.5"; # When updating also update fetchedMavenDeps.sha256
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
sha256 = "sha256-jV7Pe4MsLQnIrkDnlI2SrPzSjiDHM59GbMy4G7oeQK8=";
sha256 = "sha256-WMXhGXGHNjMJqob6A5S4+t9MDdJydAjdoY0u7T3ANbw=";
};
fetchedMavenDeps = stdenv.mkDerivation {

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, which }:
{ lib, stdenv, fetchFromGitHub, which, zstd, pbzip2 }:
stdenv.mkDerivation rec {
version = "2.4.2";
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
doCheck = true;
checkTarget = "test";
checkInputs = [ which ];
checkInputs = [ which zstd pbzip2 ];
installPhase = ''
mkdir -p $out/{bin,share/{${pname}-${version},man/man1}}

View file

@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
# Enables SVG support by uncommenting the Makefile
patches = [ ./000-enable-svg.patch ];
# The strip options are not recognized by Darwin.
postPatch = lib.optionalString stdenv.isDarwin ''
sed -i -e '/strip -s/d' Makefile
'';
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installFlags = [ "prefix=${placeholder "out"}" ];
meta = with lib; {

View file

@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, makeWrapper
, pkg-config
, which
@ -16,29 +15,17 @@
stdenv.mkDerivation rec {
pname = "sc-im";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "andmarti1424";
repo = "sc-im";
rev = "v${version}";
sha256 = "sha256-AIYa3d1ml1f5GNLKijeFPX+UabgEqzdXiP60BGvBPsQ=";
sha256 = "sha256-H+GQUpouiXc/w6GWdkSVvTXZ/Dtb7sUmBLGcpxG3Mts=";
};
sourceRoot = "${src.name}/src";
patches = [
# libxls and libxlsxwriter are not found without the patch
# https://github.com/andmarti1424/sc-im/pull/542
(fetchpatch {
name = "use-pkg-config-for-libxls-and-libxlsxwriter.patch";
url = "https://github.com/andmarti1424/sc-im/commit/b62dc25eb808e18a8ab7ee7d8eb290e34efeb075.patch";
sha256 = "1yn32ps74ngzg3rbkqf8dn0g19jv4xhxrfgx9agnywf0x8gbwjh3";
})
];
patchFlags = [ "-p2" ];
nativeBuildInputs = [
makeWrapper
pkg-config

View file

@ -10,11 +10,11 @@
# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
let
pname = "zettlr";
version = "1.8.7";
version = "1.8.9";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
sha256 = "0zbmlk5qk92b3zycs0bmdwgc8fn4a4dv1yvq9q8q2wxz4ammx6c0";
sha256 = "sha256-1cU9HdPXrJ4ibSjOitO8iJfMIaGub/jjlb2lssYFfcU=";
};
appimageContents = appimageTools.extractType2 {
inherit name src;

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence
, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
, alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
, alsaLib, dbus, cups, libexif, ffmpeg, systemd
, freetype, fontconfig, libXft, libXrender, libxcb, expat
, libuuid
, libxml2
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
buildInputs = [
stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence
libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd
freetype fontconfig libXrender libuuid expat glib nss nspr
libxml2 pango cairo gnome2.GConf
libdrm mesa

View file

@ -1,7 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let
version = "0.13.3";
version = "0.13.4";
manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
@ -19,10 +19,10 @@ buildGoModule rec {
owner = "fluxcd";
repo = "flux2";
rev = "v${version}";
sha256 = "sha256-RaQOefVqDPHvTF1qMtgAFNpA1Gx7Vo2JKiwteePsGyo=";
sha256 = "sha256-edyqxVl8oIwKp/eqFIbu+qn9zhYEnKJKwUbYZ7uxx0I=";
};
vendorSha256 = "sha256-GR40BgNMHi3TXVQVN1FaPNVi0HXYVm3vbg4NTXfYBes=";
vendorSha256 = "sha256-keIzuqaLppu6+XK3MFiU0en+SVxWVLpfkKEKOAVOz7k=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2, fetchpatch, libtirpc
}:
let
@ -38,8 +38,19 @@ let
};
nativeBuildInputs = [ maven cmake pkg-config ];
buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 ];
buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 libtirpc ];
NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
NIX_LDFLAGS = [ "-ltirpc" ];
# most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/apache/hadoop/pull/2886.patch";
sha256 = "1fim1d8va050za5i8a6slphmx015fzvhxkc2wi4rwg7kbj31sv0r";
})
];
postPatch = ''
for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helmfile";
version = "0.139.0";
version = "0.139.3";
src = fetchFromGitHub {
owner = "roboll";
repo = "helmfile";
rev = "v${version}";
sha256 = "sha256-bwhiua+KQdt9fyvM4TeS6Mm7EQB9K2L04FPhGS380xI=";
sha256 = "sha256-Cg4FFTowrWMDfpaMJwrOSs3ykZxH378OMR+1+vJt5e8=";
};
vendorSha256 = "sha256-Qpou4e1My/obIHL/4/IEUml0F82atIwPGZX5+vpvk0k=";
vendorSha256 = "sha256-Hs09CT/KSwYL2AKLseOjWB5Xvvr5TvbzwDywsGQ9kMw=";
doCheck = false;

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "helmsman";
version = "3.6.7";
version = "3.6.10";
src = fetchFromGitHub {
owner = "Praqma";
repo = "helmsman";
rev = "v${version}";
sha256 = "sha256-6w2CV6Uj1b8b3vwB933eNHPe1rK+TRyUL++Vy38cKqo=";
sha256 = "sha256-0Epff1NYfZXza27/5RBuICIj2455K31BGFr6PMLkNVE=";
};
vendorSha256 = "sha256-icX8mOc8g+DhfAjD1pzneLWTXY17lXyAjdPOWAxkHwI=";

View file

@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.19.1"; in
let version = "0.20.0"; in
buildGoPackage {
pname = "kubecfg";
@ -10,7 +10,7 @@ buildGoPackage {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
sha256 = "sha256-makRYWBtOjvuv7dAY1vNh1Nxv+nETVlaFh1C3oiojUo=";
sha256 = "sha256-7lBIqaozVBoiYYOTqAxq9h2N+Y3JFwLaunCykILOmPU=";
};
goPackagePath = "github.com/bitnami/kubecfg";

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "kubetail";
version = "1.6.12";
version = "1.6.13";
src = fetchFromGitHub {
owner = "johanhaleby";
repo = "kubetail";
rev = version;
sha256 = "0hayfd7yvdhd2klfmhvl04hfqk0nfsimjyg3kbq8c5dbgbpz05nd";
sha256 = "sha256-EkOewNInzEEEgMOffYoRaKwhgYuBXgHaCkVgWg2mIDE=";
};
installPhase = ''

View file

@ -1,20 +1,20 @@
{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }:
buildGoModule rec {
pname = "waypoint";
version = "0.3.1";
version = "0.3.2";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-WzKUVfc7oGMh0TamL5b6gsm/BAfSCZ6EB3Hg4Tg/3Hw=";
sha256 = "sha256-57DHImPYVFK+MXWGeArvc5fwHmqa3zodLytfDoAxglo=";
};
deleteVendor = true;
vendorSha256 = "sha256-VxKUYD92DssoSjWxR+1gZLq34vCVM/4U2ju5felLWzI=";
vendorSha256 = "sha256-HxrY35SqfUbT6VCCXkLUjAsxgtMzpOeoicAGLwD2OyA=";
nativeBuildInputs = [ go-bindata ];
nativeBuildInputs = [ go-bindata installShellFiles ];
# GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
buildPhase = ''
@ -23,9 +23,29 @@ buildGoModule rec {
runHook postBuild
'';
doCheck = false;
installPhase = ''
runHook preInstall
local INSTALL="$out/bin/waypoint"
install -D waypoint $out/bin/waypoint
# Write to a file as it doesn't like EOF within <()
cat > waypoint.fish <<EOF
function __complete_waypoint
set -lx COMP_LINE (commandline -cp)
test -z (commandline -ct)
and set COMP_LINE "$COMP_LINE "
$INSTALL
end
complete -f -c waypoint -a "(__complete_waypoint)"
EOF
installShellCompletion --cmd waypoint \
--bash <(echo "complete -C $INSTALL waypoint") \
--fish <(cat waypoint.fish) \
--zsh <(echo "complete -o nospace -C $INSTALL waypoint")
runHook postInstall
'';

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, zlib, openssl, libre, librem, pkg-config, gst_all_1
, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg_3
, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg
, gsm, speex, portaudio, spandsp, libuuid, libvpx
}:
stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [zlib openssl libre librem cairo mpg123
alsaLib SDL libv4l celt libsndfile srtp ffmpeg_3 gsm speex portaudio spandsp libuuid
alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
libvpx
] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]);
makeFlags = [

View file

@ -2,7 +2,7 @@
"name": "element-desktop",
"productName": "Element",
"main": "src/electron-main.js",
"version": "1.7.27",
"version": "1.7.28",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {

View file

@ -8,12 +8,12 @@
let
executableName = "element-desktop";
version = "1.7.27";
version = "1.7.28";
src = fetchFromGitHub {
owner = "vector-im";
repo = "element-desktop";
rev = "v${version}";
sha256 = "0rgsc2cc1v6gjsklwvsjlqq9a8j9j80h9ac0jkvf9lhq33f3c57k";
sha256 = "0p88gw1y37q35qqf94w3qlb84s2shm41n1pw5fgx0c0ymlzpl636";
};
in mkYarnPackage rec {
name = "element-desktop-${version}";

View file

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
version = "1.7.27";
version = "1.7.28";
src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
sha256 = "004b1cjw8fqk0ixm0wnbk4y51cby1i7avsas95sfm2zsbnbwg519";
sha256 = "1adlpwq37yzmd3fq1pzbi476p4kr5hn5b5kwyd6cr5by0gsgkgyk";
};
installPhase = ''

View file

@ -1,18 +1,19 @@
{ mkDerivation, lib, fetchFromGitHub, cmake
{ lib, mkDerivation, fetchFromGitHub, cmake
, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
, libidn, qca-qt5, libsecret, libXScrnSaver, hunspell
, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
, libidn, qca-qt5, libXScrnSaver, hunspell
, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
, usrsctp
}:
mkDerivation rec {
pname = "psi-plus";
version = "1.4.1473";
version = "1.5.1520";
src = fetchFromGitHub {
owner = "psi-plus";
repo = "psi-plus-snapshots";
rev = version;
sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
sha256 = "0cj811qv0n8xck2qrnps2ybzrpvyjqz7nxkyccpaivq6zxj6mc12";
};
cmakeFlags = [
@ -23,15 +24,16 @@ mkDerivation rec {
buildInputs = [
qtbase qtmultimedia qtx11extras qtwebengine
libidn qca-qt5 libsecret libXScrnSaver hunspell
libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
libidn qca-qt5 libXScrnSaver hunspell
libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
usrsctp
];
meta = with lib; {
homepage = "https://sourceforge.net/projects/psiplus/";
homepage = "https://psi-plus.com";
description = "XMPP (Jabber) client";
maintainers = with maintainers; [ orivej misuzu ];
license = licenses.gpl2;
license = licenses.gpl2Only;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,92 @@
#!@PYTHON@
import json
import os
import re
import shlex
import sqlite3
import subprocess
import sys
DB_PATH = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.sqlite')
DB_COPY = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.tmp')
CONFIG_PATH = os.path.join(os.environ['HOME'], '.config/Signal/config.json')
def zenity_askyesno(title, text):
args = [
'@ZENITY@',
'--question',
'--title',
shlex.quote(title),
'--text',
shlex.quote(text)
]
return subprocess.run(args).returncode == 0
def start_signal():
os.execvp('@SIGNAL-DESKTOP@', ['@SIGNAL-DESKTOP@'] + sys.argv[1:])
def copy_pragma(name):
result = subprocess.run([
'@SQLCIPHER@',
DB_PATH,
f"PRAGMA {name};"
], check=True, capture_output=True).stdout
result = re.search(r'[0-9]+', result.decode()).group(0)
subprocess.run([
'@SQLCIPHER@',
DB_COPY,
f"PRAGMA key = \"x'{key}'\"; PRAGMA {name} = {result};"
], check=True, capture_output=True)
try:
# Test if DB is encrypted:
con = sqlite3.connect(f'file:{DB_PATH}?mode=ro', uri=True)
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
con.close()
except:
# DB is encrypted, everything ok:
start_signal()
# DB is unencrypted!
answer = zenity_askyesno(
"Error: Signal-Desktop database is not encrypted",
"Should we try to fix this automatically?"
+ "You likely want to backup ~/.config/Signal/ first."
)
if not answer:
answer = zenity_askyesno(
"Launch Signal-Desktop",
"DB is unencrypted, should we still launch Signal-Desktop?"
+ "Warning: This could result in data loss!"
)
if not answer:
print('Aborted')
sys.exit(0)
start_signal()
# Re-encrypt the DB:
with open(CONFIG_PATH) as json_file:
key = json.load(json_file)['key']
result = subprocess.run([
'@SQLCIPHER@',
DB_PATH,
f" ATTACH DATABASE '{DB_COPY}' AS signal_db KEY \"x'{key}'\";"
+ " SELECT sqlcipher_export('signal_db');"
+ " DETACH DATABASE signal_db;"
]).returncode
if result != 0:
print('DB encryption failed')
sys.exit(1)
# Need to copy user_version and schema_version manually:
copy_pragma('user_version')
copy_pragma('schema_version')
os.rename(DB_COPY, DB_PATH)
start_signal()

View file

@ -10,6 +10,9 @@
, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
# For a full list of available languages:
# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
, python3
, gnome
, sqlcipher
}:
let
@ -112,14 +115,20 @@ in stdenv.mkDerivation rec {
# Symlink to bin
mkdir -p $out/bin
ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop
ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop-unwrapped
runHook postInstall
'';
# Required for $SQLCIPHER_LIB which contains "/build/" inside the path:
noAuditTmpdir = true;
preFixup = ''
export SQLCIPHER_LIB="$out/lib/Signal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node"
test -x "$SQLCIPHER_LIB" # To ensure the location hasn't changed
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }"
--prefix LD_PRELOAD : "$SQLCIPHER_LIB"
${customLanguageWrapperArgs}
)
@ -131,6 +140,16 @@ in stdenv.mkDerivation rec {
patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc.node
'';
postFixup = ''
# This hack is temporarily required to avoid data-loss for users:
cp ${./db-reencryption-wrapper.py} $out/bin/signal-desktop
substituteInPlace $out/bin/signal-desktop \
--replace '@PYTHON@' '${python3}/bin/python3' \
--replace '@ZENITY@' '${gnome.zenity}/bin/zenity' \
--replace '@SQLCIPHER@' '${sqlcipher}/bin/sqlcipher' \
--replace '@SIGNAL-DESKTOP@' "$out/bin/signal-desktop-unwrapped"
'';
# Tests if the application launches and waits for "Link your phone to Signal Desktop":
passthru.tests.application-launch = nixosTests.signal-desktop;

View file

@ -42,11 +42,11 @@ in
stdenv.mkDerivation rec {
pname = "mullvad-vpn";
version = "2021.2";
version = "2021.3";
src = fetchurl {
url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
sha256 = "sha256-nNZK11MckiQ+z8NDgDc7aJ6yrXWI1hPOvMZkrGwDDgU=";
sha256 = "sha256-f7ZCDZ/RN+Z0Szmnx8mbzhKZiRPjqXTsgClfWViFYzo=";
};
nativeBuildInputs = [

View file

@ -1,4 +1,5 @@
{lib, stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1, nettle, gnutls, pkg-config, autoreconfHook
{ lib, stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1
, nettle, gnutls, pkg-config, autoreconfHook, libiconv
, enableCredssp ? (!stdenv.isDarwin)
} :
@ -15,7 +16,8 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [pkg-config autoreconfHook];
buildInputs = [openssl libX11 libXcursor libtasn1 nettle gnutls]
++ lib.optional enableCredssp krb5;
++ lib.optional enableCredssp krb5
++ lib.optional stdenv.isDarwin libiconv;
configureFlags = [
"--with-ipv6"

View file

@ -2,10 +2,10 @@
, libsoup, gnome }:
stdenv.mkDerivation rec {
name = "homebank-5.5.1";
name = "homebank-5.5.2";
src = fetchurl {
url = "http://homebank.free.fr/public/${name}.tar.gz";
sha256 = "sha256-m7OeqtPExo0ry+IeL2xKUnTjo/OFr7Ky/3OuX9mY2gg=";
sha256 = "sha256-mJ7zeOTJ+CNLYruT1qSxS9TJjciJUZg426H0TxLFHtI=";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook ];

View file

@ -1,12 +0,0 @@
diff --git a/Makefile b/Makefile
index 005d60d..f69c7fe 100644
--- a/Makefile
+++ b/Makefile
@@ -41,6 +41,7 @@ install:
install -d -v $(DESTDIR)/bin/
install -d -v $(DESTDIR)/share/doc/ebook2cw/
install -d -v $(DESTDIR)/share/doc/ebook2cw/examples/
+ install -d -v $(DESTDIR)/share/locale/de/LC_MESSAGES/
install -s -m 0755 ebook2cw $(DESTDIR)/bin/
install -m 0644 ebook2cw.1 $(DESTDIR)/share/man/man1/
install -m 0644 README $(DESTDIR)/share/doc/ebook2cw/

View file

@ -1,18 +1,24 @@
{ lib, stdenv, fetchgit, lame, libvorbis, gettext }:
{ lib, stdenv, fetchgit, fetchpatch, lame, libvorbis, gettext }:
stdenv.mkDerivation rec {
pname = "ebook2cw";
version = "0.8.3";
version = "0.8.4";
src = fetchgit {
url = "https://git.fkurz.net/dj1yfk/ebook2cw.git";
rev = "${pname}-${version}";
sha256 = "0jqmnjblv3wzr0ppqzndzd8wg02nlkvzg1fqw14vyyp76sdjsh46";
sha256 = "0h7lg59m3dcydzkc8szipnwzag8fqwwvppa9fspn5xqd4blpcjd5";
};
buildInputs = [ lame libvorbis gettext ];
patches = [
# Fixes non-GCC compilers and a missing directory in the install phase.
(fetchpatch {
url = "https://git.fkurz.net/dj1yfk/ebook2cw/commit/eb5742e70b042cf98a04440395c34390b171c035.patch";
sha256 = "1m5f819cj3fj1piss0a5ciib3jqrqdc14lp3i3dszw4bg9v1pgyd";
})
];
patches = [ ./Makefile.patch ];
buildInputs = [ lame libvorbis gettext ];
makeFlags = [ "DESTDIR=$(out)" ];

View file

@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
buildInputs = [ gsl ];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/share/doc/${pname}

View file

@ -35,10 +35,10 @@ in
stdenv.mkDerivation rec {
pname = "gwyddion";
version = "2.57";
version = "2.58";
src = fetchurl {
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
sha256 = "sha256-kx/WqtNDaJQyVehxZ3weddXyaM1knX+fCuv47A9GaH0=";
sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
};
nativeBuildInputs = [ pkg-config file ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gtkwave";
version = "3.3.108";
version = "3.3.109";
src = fetchurl {
url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
sha256 = "sha256-LtlexZKih+Si/pH3oQpWdpzfZ6j+41Otgfx7nLMfFSQ=";
sha256 = "sha256-NUYezNm4tEcMqnirmo8U7Ky8ye/2MDPY3OWAk+eG3rc=";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook ];

View file

@ -257,9 +257,12 @@ stdenv.mkDerivation rec {
postInstall = ''
mkdir -p $out/share
ln -s ${base}/share/applications $out/share/applications
ln -s ${base}/share/metainfo $out/share/metainfo
ln -s ${base}/share/icons $out/share/icons
ln -s ${base}/share/mime $out/share/mime
'' + optionalString (stable) ''
ln -s ${base}/share/appdata $out/share/appdata
'' + optionalString (!stable) ''
ln -s ${base}/share/metainfo $out/share/metainfo
'';
# can't run this for each pname

View file

@ -27,14 +27,14 @@
};
"kicad-unstable" = {
kicadVersion = {
version = "2021-05-13";
version = "2021-05-16";
src = {
rev = "8513ca974c28d76d9f74a7dc96601d98e66e87fd";
sha256 = "1xlj6jwzwxsa14djqhj0csziii21mr9czvdj6fxqp6px84cifjsh";
rev = "c33b2cfa8d16072b9d1bce558e443c4afa889d06";
sha256 = "1fvbxjpf880ikjqjhzj8wlxj0845gzrj1yv35rk7akbg4vl9ph72";
};
};
libVersion = {
version = "2021-05-13";
version = "2021-05-16";
libSources = {
i18n.rev = "e89d9a89bec59199c1ade56ee2556591412ab7b0";
i18n.sha256 = "04zaqyhj3qr4ymyd3k5vjpcna64j8klpsygcgjcv29s3rdi8glfl";

View file

@ -0,0 +1,12 @@
diff --git a/ion/src/simulator/linux/Makefile b/ion/src/simulator/linux/Makefile
index ca7da03fa..b05bba115 100644
--- a/ion/src/simulator/linux/Makefile
+++ b/ion/src/simulator/linux/Makefile
@@ -28,7 +28,6 @@ ion_src += $(addprefix ion/src/simulator/shared/, \
collect_registers.cpp \
haptics.cpp \
journal.cpp \
- platform_action_modifier_ctrl.cpp \
state_file.cpp \
)

View file

@ -2,6 +2,8 @@
, lib
, fetchFromGitHub
, libpng
, libjpeg
, freetype
, xorg
, python3
, imagemagick
@ -11,18 +13,20 @@
stdenv.mkDerivation rec {
pname = "numworks-epsilon";
version = "15.3.2";
version = "15.5.0";
src = fetchFromGitHub {
owner = "numworks";
repo = "epsilon";
rev = version;
sha256 = "1q34dilyypiggjs16486jm122yf20wcigqxvspc77ig9albaxgh5";
sha256 = "fPBO3FzZ4k5OxG+Ifc6R/au4Te974HNKAEdHz+aFdSg=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpng
libjpeg
freetype
xorg.libXext
python3
imagemagick
@ -33,6 +37,12 @@ stdenv.mkDerivation rec {
"PLATFORM=simulator"
];
patches = [
# Remove make rule Introduced in cba596dde7
# which causes it to not build with nix
./0001-ion-linux-makerules.patch
];
installPhase = ''
runHook preInstall
@ -44,7 +54,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
description = "Emulator for Epsilon, a High-performance graphing calculator operating system";
description = "Simulator for Epsilon, a High-performance graphing calculator operating system";
homepage = "https://numworks.com/";
license = licenses.cc-by-nc-sa-40;
maintainers = with maintainers; [ erikbackman ];

View file

@ -1,4 +1,5 @@
{ lib, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
{ lib, stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses
, libiconv, Security }:
rustPlatform.buildRustPackage rec {
version = "0.6.1";
@ -14,7 +15,8 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "0x4rvfnw3gl2aj6i006nkk3y1f8skyv8g0ss3z2v6qj9nhs7pyir";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ncurses ];
buildInputs = [ ncurses ]
++ (if stdenv.isDarwin then [ libiconv Security ] else [ openssl ]);
# Some tests fail and/or attempt to use internet servers.
doCheck = false;

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono6 }:
{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono }:
let
pname = "mission-planner";
@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
sha256 = "1cgpmsmmnbzw1lwsdafp8yklk1rwc61yf12vc1ahcc6bl7q2385x";
};
nativeBuildInputs = [ makeWrapper mono6 unzip ];
nativeBuildInputs = [ makeWrapper mono unzip ];
sourceRoot = ".";
AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ];
@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
install -m 444 -D mpdesktop150.png $out/share/icons/mission-planner.png
cp -r ${desktopItem}/share/applications $out/share/
mv * $out/opt/mission-planner
makeWrapper ${mono6}/bin/mono $out/bin/mission-planner \
makeWrapper ${mono}/bin/mono $out/bin/mission-planner \
--add-flags $out/opt/mission-planner/MissionPlanner.exe
runHook postInstall
'';

View file

@ -1,7 +1,7 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
let
version = "0.3.3";
version = "0.4.0";
repo = "git-secret";
in stdenv.mkDerivation {
@ -11,7 +11,7 @@ in stdenv.mkDerivation {
inherit repo;
owner = "sobolevn";
rev = "v${version}";
sha256 = "0hc7yavcp8jmn6b7wngjqhy8kl7f4191sfpik8ycvqghkvvimxj4";
sha256 = "sha256-Mtuj+e/yCDr4XkmYkWUFJB3cqOT5yOMOq9P/QJV1S80=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "glab";
version = "1.16.0";
version = "1.17.0";
src = fetchFromGitHub {
owner = "profclems";
repo = pname;
rev = "v${version}";
sha256 = "sha256-KkkP/qkIrwJUxmZTY8zxJKMbOiaGl8XqJhHAU7oejGs=";
sha256 = "sha256-UW6KYqqeDnswPSHrjprbClnIwpX5zA+ePq7kwlsWEfA=";
};
vendorSha256 = "sha256-DO8eH0DAitxX0NOYQBs4/ME9TFQYfXedwbld1DnBWXk=";
vendorSha256 = "sha256-5hVIwEG70r9EDyapQ/OBlHfA1Zw5y4KxEysX415t3xk=";
runVend = true;
# Tests are trying to access /homeless-shelter

View file

@ -12,11 +12,11 @@
stdenv.mkDerivation rec {
pname = "smartgithg";
version = "19.1.1";
version = "20.2.5";
src = fetchurl {
url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
sha256 = "0i0dvyy9d63f4hk8czlyk83ai0ywhqp7wbdkq3s87l7irwgs42jy";
sha256 = "05f3yhzf6mvr6c5v6qvjrx97pzrrnkh9mp444zlkbnpgnrsmdc6v";
};
nativeBuildInputs = [ wrapGAppsHook ];

View file

@ -1,43 +0,0 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
, cairo, ffmpeg_3, ffms, libjpeg, log4cpp, pango
, avxeditSupport ? false, qt4 ? null
}:
let
inherit (lib) enableFeature optional;
in
stdenv.mkDerivation {
pname = "avxsynth";
version = "2015-04-07";
src = fetchFromGitHub {
owner = "avxsynth";
repo = "avxsynth";
rev = "80dcb7ec8d314bc158130c92803308aa8e5e9242";
sha256 = "0kckggvgv68b0qjdi7ms8vi97b46dl63n60qr96d2w67lf2nk87z";
};
configureFlags = [
"--enable-autocrop"
"--enable-framecapture"
"--enable-subtitle"
"--enable-ffms2"
(enableFeature avxeditSupport "avxedit")
"--with-jpeg=${libjpeg.out}/lib"
];
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ cairo ffmpeg_3 ffms libjpeg log4cpp pango ]
++ optional avxeditSupport qt4;
meta = with lib; {
description = "A script system that allows advanced non-linear editing";
homepage = "https://github.com/avxsynth/avxsynth";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ codyopel ];
platforms = platforms.linux;
broken = true; # 2018-04-10
};
}

View file

@ -1,4 +1,4 @@
{ lib, fetchurl, makeDesktopItem, ffmpeg_3
{ lib, fetchurl, makeDesktopItem, ffmpeg
, qmake, qttools, mkDerivation
, qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
}:
@ -13,19 +13,17 @@ mkDerivation rec {
url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
};
buildInputs = [ ffmpeg_3 qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
buildInputs = [ ffmpeg qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
nativeBuildInputs = [ qmake qttools ];
postPatch = lib.optionalString (ffmpeg_3 != null) ''
postPatch = lib.optionalString (ffmpeg != null) ''
substituteInPlace converter_ffmpeg.cpp \
--replace '"ffmpeg"' '"${ffmpeg_3.bin}/bin/ffmpeg"' \
--replace '"ffmpeg ' '"${ffmpeg_3.bin}/bin/ffmpeg '
--replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
--replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
'';
qmakeFlags = [ "clipgrab.pro" ];
enableParallelBuilding = true;
desktopItem = makeDesktopItem rec {
name = "clipgrab";
exec = name;
@ -37,9 +35,11 @@ mkDerivation rec {
};
installPhase = ''
runHook preInstall
install -Dm755 clipgrab $out/bin/clipgrab
install -Dm644 icon.png $out/share/pixmaps/clipgrab.png
cp -r ${desktopItem}/share/applications $out/share
runHook postInstall
'';
meta = with lib; {

View file

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "jftui";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "Aanok";
repo = pname;
rev = "v${version}";
sha256 = "sha256-KyiLZuzQ0kCReUEPBf0YbmdXhw9nBfghBBsXiy9+N0E=";
sha256 = "sha256-/QVSywS0O+HZpwY9W3le3RK3OhCkmdLYMCGTyyBdsFw=";
};
nativeBuildInputs = [

View file

@ -10,13 +10,13 @@
buildGoPackage rec {
pname = "containerd";
version = "1.5.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
sha256 = "sha256-dUn9lvDLoljq5JPFvUdJ8te0VHkCs9Y9Em2mcq5mHvY=";
sha256 = "sha256-1u+H/gJaQhltf/pq7uaAPEUlQ5R6ZByall2neNkon8s=";
};
goPackagePath = "github.com/containerd/containerd";

View file

@ -1,7 +1,19 @@
{ lib, stdenv ,fetchFromGitHub
, zig, wayland, pkg-config, scdoc
, xwayland, wayland-protocols, wlroots
, libxkbcommon, pixman, udev, libevdev, libX11, libGL
{ lib
, stdenv
, fetchFromGitHub
, zig
, wayland
, pkg-config
, scdoc
, xwayland
, wayland-protocols
, wlroots
, libxkbcommon
, pixman
, udev
, libevdev
, libX11
, libGL
}:
stdenv.mkDerivation rec {
@ -16,8 +28,18 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
buildInputs = [ wayland-protocols wlroots pixman
libxkbcommon pixman udev libevdev libX11 libGL
nativeBuildInputs = [ zig wayland xwayland scdoc pkg-config ];
buildInputs = [
wayland-protocols
wlroots
pixman
libxkbcommon
pixman
udev
libevdev
libX11
libGL
];
dontConfigure = true;
@ -25,17 +47,18 @@ stdenv.mkDerivation rec {
preBuild = ''
export HOME=$TMPDIR
'';
installPhase = ''
runHook preInstall
zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install
zig build -Drelease-safe -Dtarget=${stdenv.hostPlatform.parsed.cpu.name}-native -Dxwayland -Dman-pages --prefix $out install
runHook postInstall
'';
nativeBuildInputs = [ zig wayland xwayland scdoc pkg-config ];
# Builder patch install dir into river to get default config
# When installFlags is removed, river becomes half broken
# see https://github.com/ifreund/river/blob/7ffa2f4b9e7abf7d152134f555373c2b63ccfc1d/river/main.zig#L56
/*
Builder patch install dir into river to get default config
When installFlags is removed, river becomes half broken.
See https://github.com/ifreund/river/blob/7ffa2f4b9e7abf7d152134f555373c2b63ccfc1d/river/main.zig#L56
*/
installFlags = [ "DESTDIR=$(out)" ];
meta = with lib; {

View file

@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "waybox";
version = "unstable-2020-05-01";
version = "unstable-2021-04-07";
src = fetchFromGitHub {
owner = "wizbright";
repo = pname;
rev = "93811898f0eea3035145f593938d49d5af759b46";
sha256 = "IOdKOqAQD87Rs3td8NVEgMnRF6kQSuQ64UVqeVqMBSM=";
rev = "309ccd2faf08079e698104b19eff32b3a255b947";
hash = "sha256-G32cGmOwmnuVlj1hCq9NRti6plJbkAktfzM4aYzQ+k8=";
};
nativeBuildInputs = [ pkg-config meson ninja ];

View file

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "ddccontrol-db";
version = "20201221";
version = "20210505";
src = fetchFromGitHub {
owner = "ddccontrol";
repo = "ddccontrol-db";
rev = version;
sha256 = "1sryyjjad835mwc7a2avbij6myln8b824kjdr78gc9hh3p16929b";
sha256 = "sha256-k0Bcf1I/g2sFnX3y4qyWG7Z3W7K6YeZ9trUFSJ4NhSo=";
};
preConfigure = ''

View file

@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, glib, gettext, bash, gnome }:
{ lib, stdenv, fetchFromGitHub, glib, gettext, bash }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-caffeine";
version = "37";
version = "38";
src = fetchFromGitHub {
owner = "eonpatapon";
repo = "gnome-shell-extension-caffeine";
rev = "v${version}";
sha256 = "1mpa0fbpmv3pblb20dxj8iykn4ayvx89qffpcs67bzlq597zsbkb";
sha256 = "0dyagnjmk91h96xr98mc177c473bqpxcv86qf6g3kyh3arwa9shs";
};
uuid = "caffeine@patapon.info";
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Fill the cup to inhibit auto suspend and screensaver";
license = licenses.gpl2;
license = licenses.gpl2Only;
maintainers = with maintainers; [ eperuffo ];
homepage = "https://github.com/eonpatapon/gnome-shell-extension-caffeine";
};

View file

@ -1,24 +1,26 @@
{ lib, stdenv, fetchFromGitHub }:
{ lib, stdenv, fetchFromGitHub, gettext, glib }:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-clipboard-indicator";
version = "37";
version = "38";
src = fetchFromGitHub {
owner = "Tudmotu";
repo = "gnome-shell-extension-clipboard-indicator";
rev = "v${version}";
sha256 = "0npxhaam2ra2b9zh2gk2q0n5snlhx6glz86m3jf8hz037w920k41";
sha256 = "FNrh3b6la2BuWCsriYP5gG0/KNbkFPuq/YTXTj0aJAI=";
};
uuid = "clipboard-indicator@tudmotu.com";
installPhase = ''
runHook preInstall
mkdir -p $out/share/gnome-shell/extensions/${uuid}
cp -r * $out/share/gnome-shell/extensions/${uuid}
runHook postInstall
'';
nativeBuildInputs = [
gettext
glib
];
makeFlags = [
"INSTALLPATH=${placeholder "out"}/share/gnome-shell/extensions/${uuid}/"
];
meta = with lib; {
description = "Adds a clipboard indicator to the top panel and saves clipboard history";

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-dynamic-panel-transparency";
version = "35";
version = "unstable-2021-03-04";
src = fetchFromGitHub {
owner = "ewlsh";
repo = "dynamic-panel-transparency";
rev = "0800c0a921bb25f51f6a5ca2e6981b1669a69aec";
sha256 = "0200mx861mlsi9lf7h108yam02jfqqw55r521chkgmk4fy6z99pq";
rev = "f9e720e98e40c7a2d87928d09a7313c9ef2e832c";
sha256 = "0njykxjiwlcmk0q8bsgqaznsryaw43fspfs6rzsjjz5p0xaq04nw";
};
uuid = "dynamic-panel-transparency@rockon999.github.io";

View file

@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-pomodoro";
version = "0.18.0";
version = "0.19.1";
src = fetchFromGitHub {
owner = "codito";
repo = "gnome-pomodoro";
rev = version;
sha256 = "0990m8ydryd77kv25nfqli1n209i0h5dkjg9gkyww8bfrjhw47mc";
sha256 = "sha256-im66QUzz6PcX0vkf4cN57ttRLB4KKPFky1pwUa4V7kQ=";
};
nativeBuildInputs = [

View file

@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, clang, which, libobjc }:
let
version = "2.8.0";
version = "2.9.0";
in
stdenv.mkDerivation {
@ -10,7 +10,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
sha256 = "0pfaylrr3xgn5026anmja4rv4l7nzzaqsrkxycyi0p4lvm12kklz";
sha256 = "sha256-oLBmwRJXh5x8hTEd6mnGf23HQe8znbZRT4W2SZLEDSo=";
};
configureFlags = [

View file

@ -18,7 +18,7 @@
stdenv.mkDerivation rec {
pname = "granite";
version = "5.5.0";
version = "6.0.0";
outputs = [ "out" "dev" ];
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-ytbjuo9RnYyJ9+LqtWE117dGlNErLl+nmTM22xGGDo8=";
sha256 = "sha256-RGukXeFmtnyCfK8pKdvTHL0t8yhEYwAiiPelTy1Xcf0=";
};
passthru = {

View file

@ -1,12 +1,10 @@
{ stdenv, writeText, erlang, rebar3WithPlugins, openssl, libyaml,
pc, lib }:
{ stdenv, writeText, erlang, rebar3WithPlugins, openssl, libyaml, lib }:
{ name, version
, src
, setupHook ? null
, buildInputs ? [], beamDeps ? [], buildPlugins ? []
, postPatch ? ""
, compilePorts ? false
, installPhase ? null
, buildPhase ? null
, configurePhase ? null
@ -21,7 +19,6 @@ let
rebar3 = rebar3WithPlugins {
plugins = buildPlugins;
globalPlugins = (if compilePorts then [pc] else []);
};
shell = drv: stdenv.mkDerivation {
@ -52,18 +49,9 @@ let
rm -f rebar rebar3
'' + postPatch;
configurePhase = ''
runHook preConfigure
${erlang}/bin/escript ${rebar3.bootstrapper} ${debugInfoFlag}
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
HOME=. rebar3 compile
${if compilePorts then ''
HOME=. rebar3 pc compile
'' else ""}
HOME=. rebar3 bare compile -path ""
runHook postBuild
'';
@ -71,10 +59,9 @@ let
runHook preInstall
mkdir -p "$out/lib/erlang/lib/${name}-${version}"
for reldir in src ebin priv include; do
fd="_build/default/lib/${name}/$reldir"
[ -d "$fd" ] || continue
cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$fd"
success=1
[ -d "$reldir" ] || continue
# $out/lib/erlang/lib is a convention used in nixpkgs for compiled BEAM packages
cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$reldir"
done
runHook postInstall
'';

View file

@ -2,8 +2,8 @@
buildHex {
name = "pc";
version = "1.6.0";
sha256 = "0xq411ig5ny3iilkkkqa4vm3w3dgjc9cfzkqwk8pm13dw9mcm8h0";
version = "1.12.0";
sha256 = "1gdvixy4j560qjdiv5qjgnl5wl3rrn231dv1m4vdq4b9l4g4p27x";
meta = {
description = "a rebar3 port compiler for native code";

View file

@ -186,7 +186,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform gnatboot langAda langGo langJit;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
};
dontDisableStatic = true;

View file

@ -191,7 +191,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform gnatboot langAda langGo langJit;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
};
dontDisableStatic = true;

View file

@ -196,7 +196,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform langJava langGo;
inherit version targetPlatform hostPlatform langJava langGo;
};
dontDisableStatic = true;

View file

@ -209,7 +209,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform langJava langGo;
inherit version targetPlatform hostPlatform langJava langGo;
};
dontDisableStatic = true;

View file

@ -231,7 +231,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform gnatboot langJava langAda langGo;
inherit version targetPlatform hostPlatform gnatboot langJava langAda langGo;
};
dontDisableStatic = true;

View file

@ -197,7 +197,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform langGo;
inherit version targetPlatform hostPlatform langGo;
};
dontDisableStatic = true;

View file

@ -183,7 +183,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform langGo;
inherit version targetPlatform hostPlatform langGo;
};
dontDisableStatic = true;

View file

@ -200,7 +200,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version hostPlatform gnatboot langAda langGo langJit;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
};
dontDisableStatic = true;

View file

@ -1,4 +1,4 @@
{ lib, version, hostPlatform
{ lib, version, hostPlatform, targetPlatform
, gnatboot ? null
, langAda ? false
, langJava ? false
@ -58,3 +58,10 @@ lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
+ lib.optionalString (hostPlatform.isDarwin && langJit) ''
export STRIP='strip -x'
''
# HACK: if host and target config are the same, but the platforms are
# actually different we need to convince the configure script that it
# is in fact building a cross compiler although it doesn't believe it.
+ lib.optionalString (targetPlatform.config == hostPlatform.config && targetPlatform != hostPlatform) ''
substituteInPlace configure --replace is_cross_compiler=no is_cross_compiler=yes
''

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