Merge branch 'master' into staging-next
This commit is contained in:
commit
695fd81e02
@ -108,6 +108,10 @@ trim_trailing_whitespace = unset
|
||||
[pkgs/tools/misc/timidity/timidity.cfg]
|
||||
trim_trailing_whitespace = unset
|
||||
|
||||
[pkgs/tools/security/enpass/data.json]
|
||||
insert_final_newline = unset
|
||||
trim_trailing_whitespace = unset
|
||||
|
||||
[pkgs/top-level/emscripten-packages.nix]
|
||||
trim_trailing_whitespace = unset
|
||||
|
||||
|
@ -14,7 +14,7 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
|
||||
- If you installed Nix using the install script (https://nixos.org/nix/install),
|
||||
it is safe to upgrade by running it again:
|
||||
|
||||
curl https://nixos.org/nix/install | sh
|
||||
curl -L https://nixos.org/nix/install | sh
|
||||
|
||||
For more information, please see the NixOS release notes at
|
||||
https://nixos.org/nixos/manual or locally at
|
||||
|
@ -119,6 +119,18 @@ The above are just guidelines, and exceptions may be granted on a case-by-case b
|
||||
However, please check if it's possible to disable a problematic subset of the
|
||||
test suite and leave a comment explaining your reasoning.
|
||||
|
||||
#### Setting `test-threads`
|
||||
|
||||
`buildRustPackage` will use parallel test threads by default,
|
||||
sometimes it may be necessary to disable this so the tests run consecutively.
|
||||
|
||||
```nix
|
||||
rustPlatform.buildRustPackage {
|
||||
/* ... */
|
||||
cargoParallelTestThreads = false;
|
||||
}
|
||||
```
|
||||
|
||||
### Building a package in `debug` mode
|
||||
|
||||
By default, `buildRustPackage` will use `release` mode for builds. If a package
|
||||
|
@ -1636,10 +1636,6 @@ substitute ./foo.in ./foo.out \
|
||||
--subst-var someVar
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
<function>substitute</function> is implemented using the <command
|
||||
xlink:href="http://replace.richardlloyd.org.uk/">replace</command> command. Unlike with the <command>sed</command> command, you don’t have to worry about escaping special characters. It supports performing substitutions on binary files (such as executables), though there you’ll probably want to make sure that the replacement string is as long as the replaced string.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id='fun-substituteInPlace'>
|
||||
|
@ -806,6 +806,12 @@
|
||||
githubId = 574938;
|
||||
name = "Jonathan Glines";
|
||||
};
|
||||
austinbutler = {
|
||||
email = "austinabutler@gmail.com";
|
||||
github = "austinbutler";
|
||||
githubId = 354741;
|
||||
name = "Austin Butler";
|
||||
};
|
||||
avaq = {
|
||||
email = "nixpkgs@account.avaq.it";
|
||||
github = "avaq";
|
||||
@ -3467,6 +3473,12 @@
|
||||
githubId = 896431;
|
||||
name = "Chris Hodapp";
|
||||
};
|
||||
hongchangwu = {
|
||||
email = "wuhc85@gmail.com";
|
||||
github = "hongchangwu";
|
||||
githubId = 362833;
|
||||
name = "Hongchang Wu";
|
||||
};
|
||||
hrdinka = {
|
||||
email = "c.nix@hrdinka.at";
|
||||
github = "hrdinka";
|
||||
@ -3485,6 +3497,12 @@
|
||||
githubId = 39689;
|
||||
name = "Hugo Tavares Reis";
|
||||
};
|
||||
hugolgst = {
|
||||
email = "hugo.lageneste@pm.me";
|
||||
github = "hugolgst";
|
||||
githubId = 15371828;
|
||||
name = "Hugo Lageneste";
|
||||
};
|
||||
hyphon81 = {
|
||||
email = "zero812n@gmail.com";
|
||||
github = "hyphon81";
|
||||
@ -4233,7 +4251,7 @@
|
||||
name = "Julien Dehos";
|
||||
};
|
||||
julm = {
|
||||
email = "julm+nix@sourcephile.fr";
|
||||
email = "julm+nixpkgs@sourcephile.fr";
|
||||
github = "ju1m";
|
||||
githubId = 21160136;
|
||||
name = "Julien Moutinho";
|
||||
@ -4244,6 +4262,12 @@
|
||||
githubId = 39434424;
|
||||
name = "Felix Springer";
|
||||
};
|
||||
justinlovinger = {
|
||||
email = "git@justinlovinger.com";
|
||||
github = "JustinLovinger";
|
||||
githubId = 7183441;
|
||||
name = "Justin Lovinger";
|
||||
};
|
||||
justinwoo = {
|
||||
email = "moomoowoo@gmail.com";
|
||||
github = "justinwoo";
|
||||
|
@ -24,4 +24,10 @@
|
||||
<screen>
|
||||
<prompt># </prompt>mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso</screen>
|
||||
</para>
|
||||
<para>
|
||||
If you want to customize your NixOS CD in more detail, or generate other kinds
|
||||
of images, you might want to check out <link
|
||||
xlink:href="https://github.com/nix-community/nixos-generators">nixos-generators</link>. This can also be a good starting point when you want to use Nix to build a
|
||||
'minimal' image that doesn't include a NixOS installation.
|
||||
</para>
|
||||
</chapter>
|
||||
|
@ -47,7 +47,7 @@
|
||||
Short version:
|
||||
</para>
|
||||
<screen>
|
||||
<prompt>$ </prompt>curl https://nixos.org/nix/install | sh
|
||||
<prompt>$ </prompt>curl -L https://nixos.org/nix/install | sh
|
||||
<prompt>$ </prompt>. $HOME/.nix-profile/etc/profile.d/nix.sh # …or open a fresh shell</screen>
|
||||
<para>
|
||||
More details in the
|
||||
|
@ -52,10 +52,18 @@
|
||||
<option>build-vm-with-bootloader</option>
|
||||
</arg>
|
||||
</group>
|
||||
<sbr />
|
||||
<arg>
|
||||
<option>--upgrade</option>
|
||||
</arg>
|
||||
<sbr />
|
||||
|
||||
<arg>
|
||||
<group choice='req'>
|
||||
<arg choice='plain'>
|
||||
<option>--upgrade</option>
|
||||
</arg>
|
||||
<arg choice='plain'>
|
||||
<option>--upgrade-all</option>
|
||||
</arg>
|
||||
</group>
|
||||
</arg>
|
||||
|
||||
<arg>
|
||||
<option>--install-bootloader</option>
|
||||
@ -334,9 +342,23 @@
|
||||
<term>
|
||||
<option>--upgrade</option>
|
||||
</term>
|
||||
<term>
|
||||
<option>--upgrade-all</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Fetch the latest version of NixOS from the NixOS channel.
|
||||
<para>
|
||||
Update the root user's channel named <literal>nixos</literal>
|
||||
before rebuilding the system.
|
||||
</para>
|
||||
<para>
|
||||
In addition to the <literal>nixos</literal> channel, the root
|
||||
user's channels which have a file named
|
||||
<literal>.update-on-nixos-rebuild</literal> in their base
|
||||
directory will also be updated.
|
||||
</para>
|
||||
<para>
|
||||
Passing <option>--upgrade-all</option> updates all of the root
|
||||
user's channels.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -173,7 +173,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
For users of a daemon-less Nix installation on Linux or macOS, you can
|
||||
upgrade Nix by running <command>curl https://nixos.org/nix/install |
|
||||
upgrade Nix by running <command>curl -L https://nixos.org/nix/install |
|
||||
sh</command>, or prior to doing a channel update, running
|
||||
<command>nix-env -iA nix</command>.
|
||||
</para>
|
||||
|
@ -834,6 +834,31 @@ CREATE ROLE postgres LOGIN SUPERUSER;
|
||||
functionally redundent.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The package <package>nextcloud17</package> has been removed and <package>nextcloud18</package> was marked as insecure
|
||||
since both of them will <link xlink:href="https://docs.nextcloud.com/server/19/admin_manual/release_schedule.html">
|
||||
will be EOL (end of life) within the lifetime of 20.09</link>.
|
||||
</para>
|
||||
<para>
|
||||
It's necessary to upgrade to <package>nextcloud19</package>:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
From <package>nextcloud17</package>, you have to upgrade to <package>nextcloud18</package> first as
|
||||
Nextcloud doesn't allow going multiple major revisions forward in a single upgrade. This is possible
|
||||
by setting <xref linkend="opt-services.nextcloud.package" /> to <package>nextcloud18</package>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
From <package>nextcloud18</package>, it's possible to directly upgrade to <package>nextcloud19</package>
|
||||
by setting <xref linkend="opt-services.nextcloud.package" /> to <package>nextcloud19</package>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
@ -979,6 +1004,24 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
|
||||
to get the previous behavior of listening on all network interfaces.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>security.apparmor</literal> module,
|
||||
for the <link xlink:href="https://gitlab.com/apparmor/apparmor/-/wikis/Documentation">AppArmor</link>
|
||||
Mandatory Access Control system,
|
||||
has been substantialy improved along with related tools,
|
||||
so that module maintainers can now more easily write AppArmor profiles for NixOS.
|
||||
The most notable change on the user-side is the new option <xref linkend="opt-security.apparmor.policies"/>,
|
||||
replacing the previous <literal>profiles</literal> option
|
||||
to provide a way to disable a profile
|
||||
and to select whether to confine in enforce mode (default)
|
||||
or in complain mode (see <literal>journalctl -b --grep apparmor</literal>).
|
||||
Before enabling this module, either directly
|
||||
or by importing <literal><nixpkgs/nixos/modules/profiles/hardened.nix></literal>,
|
||||
please be sure to read the documentation of <link linkend="opt-security.apparmor.enable">security.apparmor.enable</link>,
|
||||
and especially the part about <xref linkend="opt-security.apparmor.killUnconfinedConfinables"/>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
With this release <literal>systemd-networkd</literal> (when enabled through <xref linkend="opt-networking.useNetworkd"/>)
|
||||
|
@ -448,6 +448,40 @@ in
|
||||
(mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.fontconfig ];
|
||||
environment.etc.fonts.source = "${fontconfigEtc}/etc/fonts/";
|
||||
security.apparmor.includes."abstractions/fonts" = ''
|
||||
# fonts.conf
|
||||
r ${pkg.out}/etc/fonts/fonts.conf,
|
||||
|
||||
# fontconfig default config files
|
||||
r ${pkg.out}/etc/fonts/conf.d/*.conf,
|
||||
|
||||
# 00-nixos-cache.conf
|
||||
r ${cacheConf},
|
||||
|
||||
# 10-nixos-rendering.conf
|
||||
r ${renderConf},
|
||||
|
||||
# 50-user.conf
|
||||
${optionalString cfg.includeUserConf ''
|
||||
r ${pkg.out}/etc/fonts/conf.d.bak/50-user.conf,
|
||||
''}
|
||||
|
||||
# local.conf (indirect priority 51)
|
||||
${optionalString (cfg.localConf != "") ''
|
||||
r ${localConf},
|
||||
''}
|
||||
|
||||
# 52-nixos-default-fonts.conf
|
||||
r ${defaultFontsConf},
|
||||
|
||||
# 53-no-bitmaps.conf
|
||||
r ${rejectBitmaps},
|
||||
|
||||
${optionalString (!cfg.allowType1) ''
|
||||
# 53-nixos-reject-type1.conf
|
||||
r ${rejectType1},
|
||||
''}
|
||||
'';
|
||||
})
|
||||
(mkIf cfg.enable {
|
||||
fonts.fontconfig.confPackages = [ confPkg ];
|
||||
|
@ -87,5 +87,12 @@ in
|
||||
environment.etc."ld-nix.so.preload".text = ''
|
||||
${providerLibPath}
|
||||
'';
|
||||
security.apparmor.includes = {
|
||||
"abstractions/base" = ''
|
||||
r /etc/ld-nix.so.preload,
|
||||
r ${config.environment.etc."ld-nix.so.preload".source},
|
||||
mr ${providerLibPath},
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -281,6 +281,12 @@ foreach my $u (values %usersOut) {
|
||||
}
|
||||
|
||||
updateFile("/etc/shadow", \@shadowNew, 0600);
|
||||
{
|
||||
my $uid = getpwnam "root";
|
||||
my $gid = getgrnam "shadow";
|
||||
my $path = "/etc/shadow";
|
||||
chown($uid, $gid, $path) || die "Failed to change ownership of $path: $!";
|
||||
}
|
||||
|
||||
# Rewrite /etc/subuid & /etc/subgid to include default container mappings
|
||||
|
||||
|
@ -537,6 +537,7 @@ in {
|
||||
input.gid = ids.gids.input;
|
||||
kvm.gid = ids.gids.kvm;
|
||||
render.gid = ids.gids.render;
|
||||
shadow.gid = ids.gids.shadow;
|
||||
};
|
||||
|
||||
system.activationScripts.users = stringAfter [ "stdio" ]
|
||||
|
@ -23,6 +23,7 @@ buildNix=1
|
||||
fast=
|
||||
rollback=
|
||||
upgrade=
|
||||
upgrade_all=
|
||||
repair=
|
||||
profile=/nix/var/nix/profiles/system
|
||||
buildHost=
|
||||
@ -55,6 +56,10 @@ while [ "$#" -gt 0 ]; do
|
||||
--upgrade)
|
||||
upgrade=1
|
||||
;;
|
||||
--upgrade-all)
|
||||
upgrade=1
|
||||
upgrade_all=1
|
||||
;;
|
||||
--repair)
|
||||
repair=1
|
||||
extraBuildFlags+=("$i")
|
||||
@ -223,15 +228,22 @@ if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then
|
||||
fi
|
||||
|
||||
|
||||
# If ‘--upgrade’ is given, run ‘nix-channel --update nixos’.
|
||||
# If ‘--upgrade’ or `--upgrade-all` is given,
|
||||
# run ‘nix-channel --update nixos’.
|
||||
if [[ -n $upgrade && -z $_NIXOS_REBUILD_REEXEC && -z $flake ]]; then
|
||||
nix-channel --update nixos
|
||||
# If --upgrade-all is passed, or there are other channels that
|
||||
# contain a file called ".update-on-nixos-rebuild", update them as
|
||||
# well. Also upgrade the nixos channel.
|
||||
|
||||
# If there are other channels that contain a file called
|
||||
# ".update-on-nixos-rebuild", update them as well.
|
||||
for channelpath in /nix/var/nix/profiles/per-user/root/channels/*; do
|
||||
if [ -e "$channelpath/.update-on-nixos-rebuild" ]; then
|
||||
nix-channel --update "$(basename "$channelpath")"
|
||||
channel_name=$(basename "$channelpath")
|
||||
|
||||
if [[ "$channel_name" == "nixos" ]]; then
|
||||
nix-channel --update "$channel_name"
|
||||
elif [ -e "$channelpath/.update-on-nixos-rebuild" ]; then
|
||||
nix-channel --update "$channel_name"
|
||||
elif [[ -n $upgrade_all ]] ; then
|
||||
nix-channel --update "$channel_name"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
@ -346,6 +346,7 @@ in
|
||||
paperless = 315;
|
||||
#mailman = 316; # removed 2019-08-30
|
||||
zigbee2mqtt = 317;
|
||||
# shadow = 318; # unused
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -647,6 +648,7 @@ in
|
||||
paperless = 315;
|
||||
#mailman = 316; # removed 2019-08-30
|
||||
zigbee2mqtt = 317;
|
||||
shadow = 318;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -140,6 +140,7 @@
|
||||
./programs/mininet.nix
|
||||
./programs/mtr.nix
|
||||
./programs/nano.nix
|
||||
./programs/neovim.nix
|
||||
./programs/nm-applet.nix
|
||||
./programs/npm.nix
|
||||
./programs/oblogout.nix
|
||||
@ -184,7 +185,6 @@
|
||||
./rename.nix
|
||||
./security/acme.nix
|
||||
./security/apparmor.nix
|
||||
./security/apparmor-suid.nix
|
||||
./security/audit.nix
|
||||
./security/auditd.nix
|
||||
./security/ca.nix
|
||||
|
@ -67,6 +67,8 @@ with lib;
|
||||
"jfs"
|
||||
"minix"
|
||||
"nilfs2"
|
||||
"ntfs"
|
||||
"omfs"
|
||||
"qnx4"
|
||||
"qnx6"
|
||||
"sysv"
|
||||
|
165
nixos/modules/programs/neovim.nix
Normal file
165
nixos/modules/programs/neovim.nix
Normal file
@ -0,0 +1,165 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.programs.neovim;
|
||||
|
||||
runtime' = filter (f: f.enable) (attrValues cfg.runtime);
|
||||
|
||||
# taken from the etc module
|
||||
runtime = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "runtime";
|
||||
|
||||
builder = ../system/etc/make-etc.sh;
|
||||
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
|
||||
sources = map (x: x.source) runtime';
|
||||
targets = map (x: x.target) runtime';
|
||||
};
|
||||
|
||||
in {
|
||||
options.programs.neovim = {
|
||||
enable = mkEnableOption "Neovim";
|
||||
|
||||
defaultEditor = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
When enabled, installs neovim and configures neovim to be the default editor
|
||||
using the EDITOR environment variable.
|
||||
'';
|
||||
};
|
||||
|
||||
viAlias = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Symlink <command>vi</command> to <command>nvim</command> binary.
|
||||
'';
|
||||
};
|
||||
|
||||
vimAlias = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Symlink <command>vim</command> to <command>nvim</command> binary.
|
||||
'';
|
||||
};
|
||||
|
||||
withRuby = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable ruby provider.";
|
||||
};
|
||||
|
||||
configure = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
example = literalExample ''
|
||||
configure = {
|
||||
customRC = $''''
|
||||
" here your custom configuration goes!
|
||||
$'''';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
# loaded on launch
|
||||
start = [ fugitive ];
|
||||
# manually loadable by calling `:packadd $plugin-name`
|
||||
opt = [ ];
|
||||
};
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Generate your init file from your list of plugins and custom commands.
|
||||
Neovim will then be wrapped to load <command>nvim -u /nix/store/<replaceable>hash</replaceable>-vimrc</command>
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.neovim-unwrapped;
|
||||
defaultText = literalExample "pkgs.neovim-unwrapped";
|
||||
description = "The package to use for the neovim binary.";
|
||||
};
|
||||
|
||||
finalPackage = mkOption {
|
||||
type = types.package;
|
||||
visible = false;
|
||||
readOnly = true;
|
||||
description = "Resulting customized neovim package.";
|
||||
};
|
||||
|
||||
runtime = mkOption {
|
||||
default = {};
|
||||
example = literalExample ''
|
||||
runtime."ftplugin/c.vim".text = "setlocal omnifunc=v:lua.vim.lsp.omnifunc";
|
||||
'';
|
||||
description = ''
|
||||
Set of files that have to be linked in <filename>runtime</filename>.
|
||||
'';
|
||||
|
||||
type = with types; attrsOf (submodule (
|
||||
{ name, config, ... }:
|
||||
{ options = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether this /etc file should be generated. This
|
||||
option allows specific /etc files to be disabled.
|
||||
'';
|
||||
};
|
||||
|
||||
target = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
Name of symlink. Defaults to the attribute
|
||||
name.
|
||||
'';
|
||||
};
|
||||
|
||||
text = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.lines;
|
||||
description = "Text of the file.";
|
||||
};
|
||||
|
||||
source = mkOption {
|
||||
type = types.path;
|
||||
description = "Path of the source file.";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = {
|
||||
target = mkDefault name;
|
||||
source = mkIf (config.text != null) (
|
||||
let name' = "neovim-runtime" + baseNameOf name;
|
||||
in mkDefault (pkgs.writeText name' config.text));
|
||||
};
|
||||
|
||||
}));
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [
|
||||
cfg.finalPackage
|
||||
];
|
||||
environment.variables = { EDITOR = mkOverride 900 "nvim"; };
|
||||
|
||||
programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
|
||||
inherit (cfg) viAlias vimAlias;
|
||||
configure = cfg.configure // {
|
||||
|
||||
customRC = (cfg.configure.customRC or "") + ''
|
||||
set runtimepath^=${runtime}/etc
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.security.apparmor;
|
||||
in
|
||||
with lib;
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "security" "virtualization" "flushL1DataCache" ] [ "security" "virtualisation" "flushL1DataCache" ])
|
||||
];
|
||||
|
||||
options.security.apparmor.confineSUIDApplications = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Install AppArmor profiles for commonly-used SUID application
|
||||
to mitigate potential privilege escalation attacks due to bugs
|
||||
in such applications.
|
||||
|
||||
Currently available profiles: ping
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkIf (cfg.confineSUIDApplications) {
|
||||
security.apparmor.profiles = [ (pkgs.writeText "ping" ''
|
||||
#include <tunables/global>
|
||||
/run/wrappers/bin/ping {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/consoles>
|
||||
#include <abstractions/nameservice>
|
||||
|
||||
capability net_raw,
|
||||
capability setuid,
|
||||
network inet raw,
|
||||
|
||||
${pkgs.stdenv.cc.libc.out}/lib/*.so mr,
|
||||
${pkgs.libcap.lib}/lib/libcap.so* mr,
|
||||
${pkgs.attr.out}/lib/libattr.so* mr,
|
||||
|
||||
${pkgs.iputils}/bin/ping mixr,
|
||||
|
||||
#/etc/modules.conf r,
|
||||
|
||||
## Site-specific additions and overrides. See local/README for details.
|
||||
##include <local/bin.ping>
|
||||
}
|
||||
'') ];
|
||||
};
|
||||
|
||||
}
|
@ -1,65 +1,198 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkOption types concatMapStrings;
|
||||
inherit (builtins) attrNames head map match readFile;
|
||||
inherit (lib) types;
|
||||
inherit (config.environment) etc;
|
||||
cfg = config.security.apparmor;
|
||||
mkDisableOption = name: lib.mkEnableOption name // {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
enabledPolicies = lib.filterAttrs (n: p: p.enable) cfg.policies;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
security.apparmor = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the AppArmor Mandatory Access Control system.";
|
||||
};
|
||||
profiles = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
description = "List of files containing AppArmor profiles.";
|
||||
};
|
||||
packages = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [];
|
||||
description = "List of packages to be added to apparmor's include path";
|
||||
};
|
||||
parserConfig = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "AppArmor parser configuration file content";
|
||||
};
|
||||
};
|
||||
};
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule [ "security" "virtualization" "flushL1DataCache" ] [ "security" "virtualisation" "flushL1DataCache" ])
|
||||
(lib.mkRemovedOptionModule [ "security" "apparmor" "confineSUIDApplications" ] "Please use the new options: `security.apparmor.policies.<policy>.enable'.")
|
||||
(lib.mkRemovedOptionModule [ "security" "apparmor" "profiles" ] "Please use the new option: `security.apparmor.policies'.")
|
||||
apparmor/includes.nix
|
||||
apparmor/profiles.nix
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.apparmor-utils ];
|
||||
environment.etc."apparmor/parser.conf".text = cfg.parserConfig;
|
||||
options = {
|
||||
security.apparmor = {
|
||||
enable = lib.mkEnableOption ''the AppArmor Mandatory Access Control system.
|
||||
|
||||
boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
|
||||
If you're enabling this module on a running system,
|
||||
note that a reboot will be required to activate AppArmor in the kernel.
|
||||
|
||||
systemd.services.apparmor = let
|
||||
paths = concatMapStrings (s: " -I ${s}/etc/apparmor.d")
|
||||
([ pkgs.apparmor-profiles ] ++ cfg.packages);
|
||||
in {
|
||||
after = [ "local-fs.target" ];
|
||||
before = [ "sysinit.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
unitConfig = {
|
||||
DefaultDependencies = "no";
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = "yes";
|
||||
ExecStart = map (p:
|
||||
''${pkgs.apparmor-parser}/bin/apparmor_parser -rKv ${paths} "${p}"''
|
||||
) cfg.profiles;
|
||||
ExecStop = map (p:
|
||||
''${pkgs.apparmor-parser}/bin/apparmor_parser -Rv "${p}"''
|
||||
) cfg.profiles;
|
||||
ExecReload = map (p:
|
||||
''${pkgs.apparmor-parser}/bin/apparmor_parser --reload ${paths} "${p}"''
|
||||
) cfg.profiles;
|
||||
};
|
||||
};
|
||||
};
|
||||
Also, beware that enabling this module will by default
|
||||
try to kill unconfined but confinable running processes,
|
||||
in order to obtain a confinement matching what is declared in the NixOS configuration.
|
||||
This will happen when upgrading to a NixOS revision
|
||||
introducing an AppArmor profile for the executable of a running process.
|
||||
This is because enabling an AppArmor profile for an executable
|
||||
can only confine new or already confined processes of that executable,
|
||||
but leaves already running processes unconfined.
|
||||
Set <link linkend="opt-security.apparmor.killUnconfinedConfinables">killUnconfinedConfinables</link>
|
||||
to <literal>false</literal> if you prefer to leave those processes running'';
|
||||
policies = lib.mkOption {
|
||||
description = ''
|
||||
AppArmor policies.
|
||||
'';
|
||||
type = types.attrsOf (types.submodule ({ name, config, ... }: {
|
||||
options = {
|
||||
enable = mkDisableOption "loading of the profile into the kernel";
|
||||
enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
|
||||
profile = lib.mkOption {
|
||||
description = "The policy of the profile.";
|
||||
type = types.lines;
|
||||
apply = pkgs.writeText name;
|
||||
};
|
||||
};
|
||||
}));
|
||||
default = {};
|
||||
};
|
||||
includes = lib.mkOption {
|
||||
type = types.attrsOf types.lines;
|
||||
default = {};
|
||||
description = ''
|
||||
List of paths to be added to AppArmor's searched paths
|
||||
when resolving <literal>include</literal> directives.
|
||||
'';
|
||||
apply = lib.mapAttrs pkgs.writeText;
|
||||
};
|
||||
packages = lib.mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [];
|
||||
description = "List of packages to be added to AppArmor's include path";
|
||||
};
|
||||
enableCache = lib.mkEnableOption ''caching of AppArmor policies
|
||||
in <literal>/var/cache/apparmor/</literal>.
|
||||
|
||||
Beware that AppArmor policies almost always contain Nix store paths,
|
||||
and thus produce at each change of these paths
|
||||
a new cached version accumulating in the cache'';
|
||||
killUnconfinedConfinables = mkDisableOption ''killing of processes
|
||||
which have an AppArmor profile enabled
|
||||
(in <link linkend="opt-security.apparmor.policies">policies</link>)
|
||||
but are not confined (because AppArmor can only confine new processes).
|
||||
Beware that due to a current limitation of AppArmor,
|
||||
only profiles with exact paths (and no name) can enable such kills'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = map (policy:
|
||||
{ assertion = match ".*/.*" policy == null;
|
||||
message = "`security.apparmor.policies.\"${policy}\"' must not contain a slash.";
|
||||
# Because, for instance, aa-remove-unknown uses profiles_names_list() in rc.apparmor.functions
|
||||
# which does not recurse into sub-directories.
|
||||
}
|
||||
) (attrNames cfg.policies);
|
||||
|
||||
environment.systemPackages = [ pkgs.apparmor-utils ];
|
||||
environment.etc."apparmor.d".source = pkgs.linkFarm "apparmor.d" (
|
||||
# It's important to put only enabledPolicies here and not all cfg.policies
|
||||
# because aa-remove-unknown reads profiles from all /etc/apparmor.d/*
|
||||
lib.mapAttrsToList (name: p: {inherit name; path=p.profile;}) enabledPolicies ++
|
||||
lib.mapAttrsToList (name: path: {inherit name path;}) cfg.includes
|
||||
);
|
||||
environment.etc."apparmor/parser.conf".text = ''
|
||||
${if cfg.enableCache then "write-cache" else "skip-cache"}
|
||||
cache-loc /var/cache/apparmor
|
||||
Include /etc/apparmor.d
|
||||
'' +
|
||||
lib.concatMapStrings (p: "Include ${p}/etc/apparmor.d\n") cfg.packages;
|
||||
# For aa-logprof
|
||||
environment.etc."apparmor/apparmor.conf".text = ''
|
||||
'';
|
||||
# For aa-logprof
|
||||
environment.etc."apparmor/severity.db".source = pkgs.apparmor-utils + "/etc/apparmor/severity.db";
|
||||
environment.etc."apparmor/logprof.conf".text = ''
|
||||
[settings]
|
||||
# /etc/apparmor.d/ is read-only on NixOS
|
||||
profiledir = /var/cache/apparmor/logprof
|
||||
inactive_profiledir = /etc/apparmor.d/disable
|
||||
# Use: journalctl -b --since today --grep audit: | aa-logprof
|
||||
logfiles = /dev/stdin
|
||||
|
||||
parser = ${pkgs.apparmor-parser}/bin/apparmor_parser
|
||||
ldd = ${pkgs.glibc.bin}/bin/ldd
|
||||
logger = ${pkgs.utillinux}/bin/logger
|
||||
|
||||
# customize how file ownership permissions are presented
|
||||
# 0 - off
|
||||
# 1 - default of what ever mode the log reported
|
||||
# 2 - force the new permissions to be user
|
||||
# 3 - force all perms on the rule to be user
|
||||
default_owner_prompt = 1
|
||||
|
||||
custom_includes = /etc/apparmor.d ${lib.concatMapStringsSep " " (p: "${p}/etc/apparmor.d") cfg.packages}
|
||||
|
||||
[qualifiers]
|
||||
${pkgs.runtimeShell} = icnu
|
||||
${pkgs.bashInteractive}/bin/sh = icnu
|
||||
${pkgs.bashInteractive}/bin/bash = icnu
|
||||
'' + head (match "^.*\\[qualifiers](.*)" # Drop the original [settings] section.
|
||||
(readFile "${pkgs.apparmor-utils}/etc/apparmor/logprof.conf"));
|
||||
|
||||
boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
|
||||
|
||||
systemd.services.apparmor = {
|
||||
after = [
|
||||
"local-fs.target"
|
||||
"systemd-journald-audit.socket"
|
||||
];
|
||||
before = [ "sysinit.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
unitConfig = {
|
||||
Description="Load AppArmor policies";
|
||||
DefaultDependencies = "no";
|
||||
ConditionSecurity = "apparmor";
|
||||
};
|
||||
# Reloading instead of restarting enables to load new AppArmor profiles
|
||||
# without necessarily restarting all services which have Requires=apparmor.service
|
||||
reloadIfChanged = true;
|
||||
restartTriggers = [
|
||||
etc."apparmor/parser.conf".source
|
||||
etc."apparmor.d".source
|
||||
];
|
||||
serviceConfig = let
|
||||
killUnconfinedConfinables = pkgs.writeShellScript "apparmor-kill" ''
|
||||
set -eu
|
||||
${pkgs.apparmor-utils}/bin/aa-status --json |
|
||||
${pkgs.jq}/bin/jq --raw-output '.processes | .[] | .[] | select (.status == "unconfined") | .pid' |
|
||||
xargs --verbose --no-run-if-empty --delimiter='\n' \
|
||||
kill
|
||||
'';
|
||||
commonOpts = p: "--verbose --show-cache ${lib.optionalString (!p.enforce) "--complain "}${p.profile}";
|
||||
in {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = "yes";
|
||||
ExecStartPre = "${pkgs.apparmor-utils}/bin/aa-teardown";
|
||||
ExecStart = lib.mapAttrsToList (n: p: "${pkgs.apparmor-parser}/bin/apparmor_parser --add ${commonOpts p}") enabledPolicies;
|
||||
ExecStartPost = lib.optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
|
||||
ExecReload =
|
||||
# Add or replace into the kernel profiles in enabledPolicies
|
||||
# (because AppArmor can do that without stopping the processes already confined).
|
||||
lib.mapAttrsToList (n: p: "${pkgs.apparmor-parser}/bin/apparmor_parser --replace ${commonOpts p}") enabledPolicies ++
|
||||
# Remove from the kernel any profile whose name is not
|
||||
# one of the names within the content of the profiles in enabledPolicies
|
||||
# (indirectly read from /etc/apparmor.d/*, without recursing into sub-directory).
|
||||
# Note that this does not remove profiles dynamically generated by libvirt.
|
||||
[ "${pkgs.apparmor-utils}/bin/aa-remove-unknown" ] ++
|
||||
# Optionaly kill the processes which are unconfined but now have a profile loaded
|
||||
# (because AppArmor can only start to confine new processes).
|
||||
lib.optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
|
||||
ExecStop = "${pkgs.apparmor-utils}/bin/aa-teardown";
|
||||
CacheDirectory = [ "apparmor" "apparmor/logprof" ];
|
||||
CacheDirectoryMode = "0700";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ julm ];
|
||||
}
|
||||
|
301
nixos/modules/security/apparmor/includes.nix
Normal file
301
nixos/modules/security/apparmor/includes.nix
Normal file
@ -0,0 +1,301 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
inherit (builtins) attrNames hasAttr isAttrs;
|
||||
inherit (lib) getLib;
|
||||
inherit (config.environment) etc;
|
||||
etcRule = arg:
|
||||
let go = {path ? null, mode ? "r", trail ? ""}:
|
||||
lib.optionalString (hasAttr path etc)
|
||||
"${mode} ${config.environment.etc.${path}.source}${trail},";
|
||||
in if isAttrs arg
|
||||
then go arg
|
||||
else go {path=arg;};
|
||||
in
|
||||
{
|
||||
# FIXME: most of the etcRule calls below have been
|
||||
# written systematically by converting from apparmor-profiles's profiles
|
||||
# without testing nor deep understanding of their uses,
|
||||
# and thus may need more rules or can have less rules;
|
||||
# this remains to be determined case by case,
|
||||
# some may even be completely useless.
|
||||
config.security.apparmor.includes = {
|
||||
# This one is included by <tunables/global>
|
||||
# which is usualy included before any profile.
|
||||
"abstractions/tunables/alias" = ''
|
||||
alias /bin -> /run/current-system/sw/bin,
|
||||
alias /lib/modules -> /run/current-system/kernel/lib/modules,
|
||||
alias /sbin -> /run/current-system/sw/sbin,
|
||||
alias /usr -> /run/current-system/sw,
|
||||
'';
|
||||
"abstractions/audio" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/audio"
|
||||
${etcRule "asound.conf"}
|
||||
${etcRule "esound/esd.conf"}
|
||||
${etcRule "libao.conf"}
|
||||
${etcRule {path="pulse"; trail="/";}}
|
||||
${etcRule {path="pulse"; trail="/**";}}
|
||||
${etcRule {path="sound"; trail="/";}}
|
||||
${etcRule {path="sound"; trail="/**";}}
|
||||
${etcRule {path="alsa/conf.d"; trail="/";}}
|
||||
${etcRule {path="alsa/conf.d"; trail="/*";}}
|
||||
${etcRule "openal/alsoft.conf"}
|
||||
${etcRule "wildmidi/wildmidi.conf"}
|
||||
'';
|
||||
"abstractions/authentication" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/authentication"
|
||||
# Defined in security.pam
|
||||
include <abstractions/pam>
|
||||
${etcRule "nologin"}
|
||||
${etcRule "securetty"}
|
||||
${etcRule {path="security"; trail="/*";}}
|
||||
${etcRule "shadow"}
|
||||
${etcRule "gshadow"}
|
||||
${etcRule "pwdb.conf"}
|
||||
${etcRule "default/passwd"}
|
||||
${etcRule "login.defs"}
|
||||
'';
|
||||
"abstractions/base" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/base"
|
||||
r ${pkgs.stdenv.cc.libc}/share/locale/**,
|
||||
r ${pkgs.stdenv.cc.libc}/share/locale.alias,
|
||||
${lib.optionalString (pkgs.glibcLocales != null) "r ${pkgs.glibcLocales}/lib/locale/locale-archive,"}
|
||||
${etcRule "localtime"}
|
||||
r ${pkgs.tzdata}/share/zoneinfo/**,
|
||||
r ${pkgs.stdenv.cc.libc}/share/i18n/**,
|
||||
'';
|
||||
"abstractions/bash" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/bash"
|
||||
# system-wide bash configuration
|
||||
${etcRule "profile.dos"}
|
||||
${etcRule "profile"}
|
||||
${etcRule "profile.d"}
|
||||
${etcRule {path="profile.d"; trail="/*";}}
|
||||
${etcRule "bashrc"}
|
||||
${etcRule "bash.bashrc"}
|
||||
${etcRule "bash.bashrc.local"}
|
||||
${etcRule "bash_completion"}
|
||||
${etcRule "bash_completion.d"}
|
||||
${etcRule {path="bash_completion.d"; trail="/*";}}
|
||||
# bash relies on system-wide readline configuration
|
||||
${etcRule "inputrc"}
|
||||
# bash inspects filesystems at startup
|
||||
# and /etc/mtab is linked to /proc/mounts
|
||||
@{PROC}/mounts
|
||||
|
||||
# run out of /etc/bash.bashrc
|
||||
${etcRule "DIR_COLORS"}
|
||||
'';
|
||||
"abstractions/cups-client" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/cpus-client"
|
||||
${etcRule "cups/cups-client.conf"}
|
||||
'';
|
||||
"abstractions/consoles" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/consoles"
|
||||
'';
|
||||
"abstractions/dbus-session-strict" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dbus-session-strict"
|
||||
${etcRule "machine-id"}
|
||||
'';
|
||||
"abstractions/dconf" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dconf"
|
||||
${etcRule {path="dconf"; trail="/**";}}
|
||||
'';
|
||||
"abstractions/dri-common" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dri-common"
|
||||
${etcRule "drirc"}
|
||||
'';
|
||||
# The config.fonts.fontconfig NixOS module adds many files to /etc/fonts/
|
||||
# by symlinking them but without exporting them outside of its NixOS module,
|
||||
# those are therefore added there to this "abstractions/fonts".
|
||||
"abstractions/fonts" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/fonts"
|
||||
${etcRule {path="fonts"; trail="/**";}}
|
||||
'';
|
||||
"abstractions/gnome" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/gnome"
|
||||
${etcRule {path="gnome"; trail="/gtkrc*";}}
|
||||
${etcRule {path="gtk"; trail="/*";}}
|
||||
${etcRule {path="gtk-2.0"; trail="/*";}}
|
||||
${etcRule {path="gtk-3.0"; trail="/*";}}
|
||||
${etcRule "orbitrc"}
|
||||
include <abstractions/fonts>
|
||||
${etcRule {path="pango"; trail="/*";}}
|
||||
${etcRule {path="/etc/gnome-vfs-2.0"; trail="/modules/";}}
|
||||
${etcRule {path="/etc/gnome-vfs-2.0"; trail="/modules/*";}}
|
||||
${etcRule "papersize"}
|
||||
${etcRule {path="cups"; trail="/lpoptions";}}
|
||||
${etcRule {path="gnome"; trail="/defaults.list";}}
|
||||
${etcRule {path="xdg"; trail="/{,*-}mimeapps.list";}}
|
||||
${etcRule "xdg/mimeapps.list"}
|
||||
'';
|
||||
"abstractions/kde" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/kde"
|
||||
${etcRule {path="qt3"; trail="/kstylerc";}}
|
||||
${etcRule {path="qt3"; trail="/qt_plugins_3.3rc";}}
|
||||
${etcRule {path="qt3"; trail="/qtrc";}}
|
||||
${etcRule "kderc"}
|
||||
${etcRule {path="kde3"; trail="/*";}}
|
||||
${etcRule "kde4rc"}
|
||||
${etcRule {path="xdg"; trail="/kdeglobals";}}
|
||||
${etcRule {path="xdg"; trail="/Trolltech.conf";}}
|
||||
'';
|
||||
"abstractions/kerberosclient" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/kerberosclient"
|
||||
${etcRule {path="krb5.keytab"; mode="rk";}}
|
||||
${etcRule "krb5.conf"}
|
||||
${etcRule "krb5.conf.d"}
|
||||
${etcRule {path="krb5.conf.d"; trail="/*";}}
|
||||
|
||||
# config files found via strings on libs
|
||||
${etcRule "krb.conf"}
|
||||
${etcRule "krb.realms"}
|
||||
${etcRule "srvtab"}
|
||||
'';
|
||||
"abstractions/ldapclient" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/ldapclient"
|
||||
${etcRule "ldap.conf"}
|
||||
${etcRule "ldap.secret"}
|
||||
${etcRule {path="openldap"; trail="/*";}}
|
||||
${etcRule {path="openldap"; trail="/cacerts/*";}}
|
||||
${etcRule {path="sasl2"; trail="/*";}}
|
||||
'';
|
||||
"abstractions/likewise" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/likewise"
|
||||
'';
|
||||
"abstractions/mdns" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/mdns"
|
||||
${etcRule "nss_mdns.conf"}
|
||||
'';
|
||||
"abstractions/nameservice" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nameservice"
|
||||
|
||||
# Many programs wish to perform nameservice-like operations, such as
|
||||
# looking up users by name or id, groups by name or id, hosts by name
|
||||
# or IP, etc. These operations may be performed through files, dns,
|
||||
# NIS, NIS+, LDAP, hesiod, wins, etc. Allow them all here.
|
||||
${etcRule "group"}
|
||||
${etcRule "host.conf"}
|
||||
${etcRule "hosts"}
|
||||
${etcRule "nsswitch.conf"}
|
||||
${etcRule "gai.conf"}
|
||||
${etcRule "passwd"}
|
||||
${etcRule "protocols"}
|
||||
|
||||
# libtirpc (used for NIS/YP login) needs this
|
||||
${etcRule "netconfig"}
|
||||
|
||||
${etcRule "resolv.conf"}
|
||||
|
||||
${etcRule {path="samba"; trail="/lmhosts";}}
|
||||
${etcRule "services"}
|
||||
|
||||
${etcRule "default/nss"}
|
||||
|
||||
# libnl-3-200 via libnss-gw-name
|
||||
${etcRule {path="libnl"; trail="/classid";}}
|
||||
${etcRule {path="libnl-3"; trail="/classid";}}
|
||||
|
||||
mr ${getLib pkgs.nss}/lib/libnss_*.so*,
|
||||
mr ${getLib pkgs.nss}/lib64/libnss_*.so*,
|
||||
'';
|
||||
"abstractions/nis" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nis"
|
||||
'';
|
||||
"abstractions/nvidia" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nvidia"
|
||||
${etcRule "vdpau_wrapper.cfg"}
|
||||
'';
|
||||
"abstractions/opencl-common" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/opencl-common"
|
||||
${etcRule {path="OpenCL"; trail="/**";}}
|
||||
'';
|
||||
"abstractions/opencl-mesa" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/opencl-mesa"
|
||||
${etcRule "default/drirc"}
|
||||
'';
|
||||
"abstractions/openssl" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/openssl"
|
||||
${etcRule {path="ssl"; trail="/openssl.cnf";}}
|
||||
'';
|
||||
"abstractions/p11-kit" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/p11-kit"
|
||||
${etcRule {path="pkcs11"; trail="/";}}
|
||||
${etcRule {path="pkcs11"; trail="/pkcs11.conf";}}
|
||||
${etcRule {path="pkcs11"; trail="/modules/";}}
|
||||
${etcRule {path="pkcs11"; trail="/modules/*";}}
|
||||
'';
|
||||
"abstractions/perl" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/perl"
|
||||
${etcRule {path="perl"; trail="/**";}}
|
||||
'';
|
||||
"abstractions/php" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/php"
|
||||
${etcRule {path="php"; trail="/**/";}}
|
||||
${etcRule {path="php5"; trail="/**/";}}
|
||||
${etcRule {path="php7"; trail="/**/";}}
|
||||
${etcRule {path="php"; trail="/**.ini";}}
|
||||
${etcRule {path="php5"; trail="/**.ini";}}
|
||||
${etcRule {path="php7"; trail="/**.ini";}}
|
||||
'';
|
||||
"abstractions/postfix-common" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/postfix-common"
|
||||
${etcRule "mailname"}
|
||||
${etcRule {path="postfix"; trail="/*.cf";}}
|
||||
${etcRule "postfix/main.cf"}
|
||||
${etcRule "postfix/master.cf"}
|
||||
'';
|
||||
"abstractions/python" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/python"
|
||||
'';
|
||||
"abstractions/qt5" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/qt5"
|
||||
${etcRule {path="xdg"; trail="/QtProject/qtlogging.ini";}}
|
||||
${etcRule {path="xdg/QtProject"; trail="/qtlogging.ini";}}
|
||||
${etcRule "xdg/QtProject/qtlogging.ini"}
|
||||
'';
|
||||
"abstractions/samba" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/samba"
|
||||
${etcRule {path="samba"; trail="/*";}}
|
||||
'';
|
||||
"abstractions/ssl_certs" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/ssl_certs"
|
||||
${etcRule "ssl/certs/ca-certificates.crt"}
|
||||
${etcRule "ssl/certs/ca-bundle.crt"}
|
||||
${etcRule "pki/tls/certs/ca-bundle.crt"}
|
||||
|
||||
${etcRule {path="ssl/trust"; trail="/";}}
|
||||
${etcRule {path="ssl/trust"; trail="/*";}}
|
||||
${etcRule {path="ssl/trust/anchors"; trail="/";}}
|
||||
${etcRule {path="ssl/trust/anchors"; trail="/**";}}
|
||||
${etcRule {path="pki/trust"; trail="/";}}
|
||||
${etcRule {path="pki/trust"; trail="/*";}}
|
||||
${etcRule {path="pki/trust/anchors"; trail="/";}}
|
||||
${etcRule {path="pki/trust/anchors"; trail="/**";}}
|
||||
|
||||
# security.acme NixOS module
|
||||
r /var/lib/acme/*/cert.pem,
|
||||
r /var/lib/acme/*/chain.pem,
|
||||
r /var/lib/acme/*/fullchain.pem,
|
||||
'';
|
||||
"abstractions/ssl_keys" = ''
|
||||
# security.acme NixOS module
|
||||
r /var/lib/acme/*/full.pem,
|
||||
r /var/lib/acme/*/key.pem,
|
||||
'';
|
||||
"abstractions/vulkan" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/vulkan"
|
||||
${etcRule {path="vulkan/icd.d"; trail="/";}}
|
||||
${etcRule {path="vulkan/icd.d"; trail="/*.json";}}
|
||||
'';
|
||||
"abstractions/winbind" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/winbind"
|
||||
${etcRule {path="samba"; trail="/smb.conf";}}
|
||||
${etcRule {path="samba"; trail="/dhcp.conf";}}
|
||||
'';
|
||||
"abstractions/X" = ''
|
||||
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/X"
|
||||
${etcRule {path="X11/cursors"; trail="/";}}
|
||||
${etcRule {path="X11/cursors"; trail="/**";}}
|
||||
'';
|
||||
};
|
||||
}
|
11
nixos/modules/security/apparmor/profiles.nix
Normal file
11
nixos/modules/security/apparmor/profiles.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let apparmor = config.security.apparmor; in
|
||||
{
|
||||
config.security.apparmor.packages = [ pkgs.apparmor-profiles ];
|
||||
config.security.apparmor.policies."bin.ping".profile = lib.mkIf apparmor.policies."bin.ping".enable ''
|
||||
include "${pkgs.iputils.apparmor}/bin.ping"
|
||||
include "${pkgs.inetutils.apparmor}/bin.ping"
|
||||
# Note that including those two profiles in the same profile
|
||||
# would not work if the second one were to re-include <tunables/global>.
|
||||
'';
|
||||
}
|
@ -836,6 +836,63 @@ in
|
||||
runuser-l = { rootOK = true; unixAuth = false; };
|
||||
};
|
||||
|
||||
security.apparmor.includes."abstractions/pam" = let
|
||||
isEnabled = test: fold or false (map test (attrValues config.security.pam.services));
|
||||
in ''
|
||||
${lib.concatMapStringsSep "\n"
|
||||
(name: "r ${config.environment.etc."pam.d/${name}".source},")
|
||||
(attrNames config.security.pam.services)}
|
||||
mr ${getLib pkgs.pam}/lib/security/pam_filter/*,
|
||||
mr ${getLib pkgs.pam}/lib/security/pam_*.so,
|
||||
r ${getLib pkgs.pam}/lib/security/,
|
||||
${optionalString use_ldap
|
||||
"mr ${pam_ldap}/lib/security/pam_ldap.so,"}
|
||||
${optionalString config.services.sssd.enable
|
||||
"mr ${pkgs.sssd}/lib/security/pam_sss.so,"}
|
||||
${optionalString config.krb5.enable ''
|
||||
mr ${pam_krb5}/lib/security/pam_krb5.so,
|
||||
mr ${pam_ccreds}/lib/security/pam_ccreds.so,
|
||||
''}
|
||||
${optionalString (isEnabled (cfg: cfg.googleOsLoginAccountVerification)) ''
|
||||
mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so,
|
||||
mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_admin.so,
|
||||
''}
|
||||
${optionalString (isEnabled (cfg: cfg.googleOsLoginAuthentication))
|
||||
"mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so,"}
|
||||
${optionalString (config.security.pam.enableSSHAgentAuth && isEnabled (cfg: cfg.sshAgentAuth))
|
||||
"mr ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.fprintAuth))
|
||||
"mr ${pkgs.fprintd}/lib/security/pam_fprintd.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.u2fAuth))
|
||||
"mr ${pkgs.pam_u2f}/lib/security/pam_u2f.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.usbAuth))
|
||||
"mr ${pkgs.pam_usb}/lib/security/pam_usb.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.oathAuth))
|
||||
"mr ${pkgs.oathToolkit}/lib/security/pam_oath.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.yubicoAuth))
|
||||
"mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.duoSecurity.enable))
|
||||
"mr ${pkgs.duo-unix}/lib/security/pam_duo.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.otpwAuth))
|
||||
"mr ${pkgs.otpw}/lib/security/pam_otpw.so,"}
|
||||
${optionalString config.security.pam.enableEcryptfs
|
||||
"mr ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.pamMount))
|
||||
"mr ${pkgs.pam_mount}/lib/security/pam_mount.so,"}
|
||||
${optionalString config.services.samba.syncPasswordsByPam
|
||||
"mr ${pkgs.samba}/lib/security/pam_smbpass.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.enableGnomeKeyring))
|
||||
"mr ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.startSession))
|
||||
"mr ${pkgs.systemd}/lib/security/pam_systemd.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.enableAppArmor) && config.security.apparmor.enable)
|
||||
"mr ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so,"}
|
||||
${optionalString (isEnabled (cfg: cfg.enableKwallet))
|
||||
"mr ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so,"}
|
||||
${optionalString config.virtualisation.lxc.lxcfs.enable
|
||||
"mr ${pkgs.lxc}/lib/security/pam_cgfs.so"}
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ in
|
||||
|
||||
boot.specialFileSystems.${parentWrapperDir} = {
|
||||
fsType = "tmpfs";
|
||||
options = [ "nodev" ];
|
||||
options = [ "nodev" "mode=755" ];
|
||||
};
|
||||
|
||||
# Make sure our wrapperDir exports to the PATH env variable when
|
||||
@ -179,6 +179,14 @@ in
|
||||
export PATH="${wrapperDir}:$PATH"
|
||||
'';
|
||||
|
||||
security.apparmor.includes."nixos/security.wrappers" = ''
|
||||
include "${pkgs.apparmorRulesFromClosure {} [
|
||||
securityWrapper
|
||||
pkgs.stdenv.cc.cc
|
||||
pkgs.stdenv.cc.libc
|
||||
]}"
|
||||
'';
|
||||
|
||||
###### setcap activation script
|
||||
system.activationScripts.wrappers =
|
||||
lib.stringAfter [ "specialfs" "users" ]
|
||||
@ -187,6 +195,8 @@ in
|
||||
# programs to be wrapped.
|
||||
WRAPPER_PATH=${config.system.path}/bin:${config.system.path}/sbin
|
||||
|
||||
chmod 755 "${parentWrapperDir}"
|
||||
|
||||
# We want to place the tmpdirs for the wrappers to the parent dir.
|
||||
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
|
||||
chmod a+rx $wrapperDir
|
||||
@ -197,6 +207,9 @@ in
|
||||
# Atomically replace the symlink
|
||||
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
|
||||
old=$(readlink -f ${wrapperDir})
|
||||
if [ -e ${wrapperDir}-tmp ]; then
|
||||
rm --force --recursive ${wrapperDir}-tmp
|
||||
fi
|
||||
ln --symbolic --force --no-dereference $wrapperDir ${wrapperDir}-tmp
|
||||
mv --no-target-directory ${wrapperDir}-tmp ${wrapperDir}
|
||||
rm --force --recursive $old
|
||||
|
@ -6,7 +6,6 @@ let
|
||||
cfg = config.services.datadog-agent;
|
||||
|
||||
ddConf = {
|
||||
dd_url = cfg.ddUrl;
|
||||
skip_ssl_validation = false;
|
||||
confd_path = "/etc/datadog-agent/conf.d";
|
||||
additional_checksd = "/etc/datadog-agent/checks.d";
|
||||
@ -14,6 +13,8 @@ let
|
||||
}
|
||||
// optionalAttrs (cfg.logLevel != null) { log_level = cfg.logLevel; }
|
||||
// optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }
|
||||
// optionalAttrs (cfg.ddUrl != null) { dd_url = cfg.ddUrl; }
|
||||
// optionalAttrs (cfg.site != null) { site = cfg.site; }
|
||||
// optionalAttrs (cfg.tags != null ) { tags = concatStringsSep ", " cfg.tags; }
|
||||
// optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
|
||||
// optionalAttrs (cfg.enableTraceAgent) { apm_config = { enabled = true; }; }
|
||||
@ -79,14 +80,23 @@ in {
|
||||
|
||||
ddUrl = mkOption {
|
||||
description = ''
|
||||
Custom dd_url to configure the agent with.
|
||||
Useful when you want to point datadog to another endpoint, either
|
||||
because you need a proxy to send out data, or because you use their EU
|
||||
endpoint.
|
||||
Custom dd_url to configure the agent with. Useful if traffic to datadog
|
||||
needs to go through a proxy.
|
||||
Don't use this to point to another datadog site (EU) - use site instead.
|
||||
'';
|
||||
default = "https://app.datadoghq.com";
|
||||
example = "https://app.datadoghq.eu";
|
||||
type = types.str;
|
||||
default = null;
|
||||
example = "http://haproxy.example.com:3834";
|
||||
type = types.nullOr types.str;
|
||||
};
|
||||
|
||||
site = mkOption {
|
||||
description = ''
|
||||
The datadog site to point the agent towards.
|
||||
Set to datadoghq.eu to point it to their EU site.
|
||||
'';
|
||||
default = null;
|
||||
example = "datadoghq.eu";
|
||||
type = types.nullOr types.str;
|
||||
};
|
||||
|
||||
tags = mkOption {
|
||||
|
@ -49,8 +49,8 @@ let
|
||||
"--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
|
||||
"--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
|
||||
"--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
|
||||
] ++
|
||||
optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}";
|
||||
] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
|
||||
++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
|
||||
|
||||
filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
|
||||
filterAttrsListRecursive = pred: x:
|
||||
@ -624,6 +624,15 @@ in {
|
||||
errors, despite a correct configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
retentionTime = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "15d";
|
||||
description = ''
|
||||
How long to retain samples in storage.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -229,6 +229,8 @@ in
|
||||
})] ++ [(mkIf config.services.nginx.enable {
|
||||
systemd.services.prometheus-nginx-exporter.after = [ "nginx.service" ];
|
||||
systemd.services.prometheus-nginx-exporter.requires = [ "nginx.service" ];
|
||||
})] ++ [(mkIf config.services.postfix.enable {
|
||||
services.prometheus.exporters.postfix.group = mkDefault config.services.postfix.setgidGroup;
|
||||
})] ++ (mapAttrsToList (name: conf:
|
||||
mkExporterConf {
|
||||
inherit name;
|
||||
|
@ -8,6 +8,15 @@ in
|
||||
{
|
||||
port = 9154;
|
||||
extraOpts = {
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
Group under which the postfix exporter shall be run.
|
||||
It should match the group that is allowed to access the
|
||||
<literal>showq</literal> socket in the <literal>queue/public/</literal> directory.
|
||||
Defaults to <literal>services.postfix.setgidGroup</literal> when postfix is enabled.
|
||||
'';
|
||||
};
|
||||
telemetryPath = mkOption {
|
||||
type = types.str;
|
||||
default = "/metrics";
|
||||
@ -26,16 +35,20 @@ in
|
||||
};
|
||||
showqPath = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/spool/postfix/public/showq";
|
||||
example = "/var/lib/postfix/queue/public/showq";
|
||||
default = "/var/lib/postfix/queue/public/showq";
|
||||
example = "/var/spool/postfix/public/showq";
|
||||
description = ''
|
||||
Path where Postfix places it's showq socket.
|
||||
Path where Postfix places its showq socket.
|
||||
'';
|
||||
};
|
||||
systemd = {
|
||||
enable = mkEnableOption ''
|
||||
reading metrics from the systemd-journal instead of from a logfile
|
||||
'';
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable reading metrics from the systemd journal instead of from a logfile
|
||||
'';
|
||||
};
|
||||
unit = mkOption {
|
||||
type = types.str;
|
||||
default = "postfix.service";
|
||||
|
@ -5,7 +5,7 @@ with lib;
|
||||
let
|
||||
cfg = config.services.transmission;
|
||||
inherit (config.environment) etc;
|
||||
apparmor = config.security.apparmor.enable;
|
||||
apparmor = config.security.apparmor;
|
||||
rootDir = "/run/transmission";
|
||||
homeDir = "/var/lib/transmission";
|
||||
settingsDir = ".config/transmission-daemon";
|
||||
@ -184,8 +184,8 @@ in
|
||||
|
||||
systemd.services.transmission = {
|
||||
description = "Transmission BitTorrent Service";
|
||||
after = [ "network.target" ] ++ optional apparmor "apparmor.service";
|
||||
requires = optional apparmor "apparmor.service";
|
||||
after = [ "network.target" ] ++ optional apparmor.enable "apparmor.service";
|
||||
requires = optional apparmor.enable "apparmor.service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment.CURL_CA_BUNDLE = etc."ssl/certs/ca-certificates.crt".source;
|
||||
|
||||
@ -357,61 +357,21 @@ in
|
||||
})
|
||||
];
|
||||
|
||||
security.apparmor.profiles = mkIf apparmor [
|
||||
(pkgs.writeText "apparmor-transmission-daemon" ''
|
||||
security.apparmor.policies."bin.transmission-daemon".profile = ''
|
||||
include <tunables/global>
|
||||
|
||||
${pkgs.transmission}/bin/transmission-daemon {
|
||||
include <abstractions/base>
|
||||
include <abstractions/nameservice>
|
||||
|
||||
# NOTE: https://github.com/NixOS/nixpkgs/pull/93457
|
||||
# will remove the need for these by fixing <abstractions/base>
|
||||
r ${etc."hosts".source},
|
||||
r /etc/ld-nix.so.preload,
|
||||
${lib.optionalString (builtins.hasAttr "ld-nix.so.preload" etc) ''
|
||||
r ${etc."ld-nix.so.preload".source},
|
||||
${concatMapStrings (p: optionalString (p != "") ("mr ${p},\n"))
|
||||
(splitString "\n" config.environment.etc."ld-nix.so.preload".text)}
|
||||
''}
|
||||
r ${etc."ssl/certs/ca-certificates.crt".source},
|
||||
r ${pkgs.tzdata}/share/zoneinfo/**,
|
||||
r ${pkgs.stdenv.cc.libc}/share/i18n/**,
|
||||
r ${pkgs.stdenv.cc.libc}/share/locale/**,
|
||||
|
||||
mr ${getLib pkgs.stdenv.cc.cc}/lib/*.so*,
|
||||
mr ${getLib pkgs.stdenv.cc.libc}/lib/*.so*,
|
||||
mr ${getLib pkgs.attr}/lib/libattr*.so*,
|
||||
mr ${getLib pkgs.c-ares}/lib/libcares*.so*,
|
||||
mr ${getLib pkgs.curl}/lib/libcurl*.so*,
|
||||
mr ${getLib pkgs.keyutils}/lib/libkeyutils*.so*,
|
||||
mr ${getLib pkgs.libcap}/lib/libcap*.so*,
|
||||
mr ${getLib pkgs.libevent}/lib/libevent*.so*,
|
||||
mr ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*,
|
||||
mr ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so*,
|
||||
mr ${getLib pkgs.libkrb5}/lib/lib*.so*,
|
||||
mr ${getLib pkgs.libssh2}/lib/libssh2*.so*,
|
||||
mr ${getLib pkgs.lz4}/lib/liblz4*.so*,
|
||||
mr ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*,
|
||||
mr ${getLib pkgs.openssl}/lib/libcrypto*.so*,
|
||||
mr ${getLib pkgs.openssl}/lib/libssl*.so*,
|
||||
mr ${getLib pkgs.systemd}/lib/libsystemd*.so*,
|
||||
mr ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so*,
|
||||
mr ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so*,
|
||||
mr ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so*,
|
||||
mr ${getLib pkgs.xz}/lib/liblzma*.so*,
|
||||
mr ${getLib pkgs.zlib}/lib/libz*.so*,
|
||||
include <abstractions/ssl_certs>
|
||||
include "${pkgs.apparmorRulesFromClosure {} [pkgs.transmission]}"
|
||||
include <local/bin.transmission-daemon>
|
||||
|
||||
r @{PROC}/sys/kernel/random/uuid,
|
||||
r @{PROC}/sys/vm/overcommit_memory,
|
||||
# @{pid} is not a kernel variable yet but a regexp
|
||||
#r @{PROC}/@{pid}/environ,
|
||||
r @{PROC}/@{pid}/environ,
|
||||
r @{PROC}/@{pid}/mounts,
|
||||
rwk /tmp/tr_session_id_*,
|
||||
|
||||
r ${pkgs.openssl.out}/etc/**,
|
||||
r ${config.systemd.services.transmission.environment.CURL_CA_BUNDLE},
|
||||
r ${pkgs.transmission}/share/transmission/**,
|
||||
|
||||
owner rw ${cfg.home}/${settingsDir}/**,
|
||||
rw ${cfg.settings.download-dir}/**,
|
||||
@ -439,12 +399,9 @@ in
|
||||
# https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs
|
||||
px ${cfg.settings.script-torrent-done-filename} -> &@{dirs},
|
||||
''}
|
||||
|
||||
# FIXME: enable customizing using https://github.com/NixOS/nixpkgs/pull/93457
|
||||
# include <local/transmission-daemon>
|
||||
}
|
||||
'')
|
||||
];
|
||||
'';
|
||||
security.apparmor.includes."local/bin.transmission-daemon" = "";
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ julm ];
|
||||
|
@ -85,7 +85,7 @@ in {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
description = "Which package to use for the Nextcloud instance.";
|
||||
relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
|
||||
relatedPackages = [ "nextcloud18" "nextcloud19" ];
|
||||
};
|
||||
|
||||
maxUploadSize = mkOption {
|
||||
@ -354,7 +354,7 @@ in {
|
||||
recommended to upgrade to nextcloud19 after that.
|
||||
'')
|
||||
++ (optional (versionOlder cfg.package.version "19") ''
|
||||
A legacy Nextcloud install (from before NixOS 20.09/unstable) may be installed.
|
||||
A legacy Nextcloud install (from before NixOS 20.09) may be installed.
|
||||
|
||||
If/After nextcloud18 is installed successfully, you can safely upgrade to
|
||||
nextcloud19. If not, please upgrade to nextcloud18 first since Nextcloud doesn't
|
||||
|
@ -4,23 +4,8 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.molly-brown;
|
||||
|
||||
settingsType = with types;
|
||||
attrsOf (oneOf [
|
||||
int
|
||||
str
|
||||
(listOf str)
|
||||
(attrsOf (oneOf [ int str (listOf str) (attrsOf str) ]))
|
||||
]) // {
|
||||
description = "primitive expression convertable to TOML";
|
||||
};
|
||||
|
||||
configFile = pkgs.runCommand "molly-brown.toml" {
|
||||
buildInputs = [ pkgs.remarshal ];
|
||||
preferLocalBuild = true;
|
||||
passAsFile = [ "settings" ];
|
||||
settings = builtins.toJSON cfg.settings;
|
||||
} "remarshal -if json -of toml < $settingsPath > $out";
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
configFile = settingsFormat.generate "molly-brown.toml" cfg.settings;
|
||||
in {
|
||||
|
||||
options.services.molly-brown = {
|
||||
@ -76,7 +61,7 @@ in {
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = settingsType;
|
||||
inherit (settingsFormat) type;
|
||||
default = { };
|
||||
description = ''
|
||||
molly-brown configuration. Refer to
|
||||
|
@ -57,7 +57,15 @@ in {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether of not to enable Picom as the X.org composite manager.
|
||||
Whether or not to enable Picom as the X.org composite manager.
|
||||
'';
|
||||
};
|
||||
|
||||
experimentalBackends = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to use the unstable new reimplementation of the backends.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -302,7 +310,8 @@ in {
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.picom}/bin/picom --config ${configFile}";
|
||||
ExecStart = "${pkgs.picom}/bin/picom --config ${configFile}"
|
||||
+ (optionalString cfg.experimentalBackends " --experimental-backends");
|
||||
RestartSec = 3;
|
||||
Restart = "always";
|
||||
};
|
||||
|
@ -1089,6 +1089,21 @@ in
|
||||
} else {
|
||||
ping.source = "${pkgs.iputils.out}/bin/ping";
|
||||
};
|
||||
security.apparmor.policies."bin.ping".profile = lib.mkIf config.security.apparmor.policies."bin.ping".enable (lib.mkAfter ''
|
||||
/run/wrappers/bin/ping {
|
||||
include <abstractions/base>
|
||||
include <nixos/security.wrappers>
|
||||
rpx /run/wrappers/wrappers.*/ping,
|
||||
}
|
||||
/run/wrappers/wrappers.*/ping {
|
||||
include <abstractions/base>
|
||||
include <nixos/security.wrappers>
|
||||
r /run/wrappers/wrappers.*/ping.real,
|
||||
mrpx ${config.security.wrappers.ping.source},
|
||||
capability net_raw,
|
||||
capability setpcap,
|
||||
}
|
||||
'');
|
||||
|
||||
# Set the host and domain names in the activation script. Don't
|
||||
# clear it if it's not configured in the NixOS configuration,
|
||||
|
@ -74,9 +74,13 @@ in
|
||||
systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
|
||||
|
||||
security.apparmor.packages = [ pkgs.lxc ];
|
||||
security.apparmor.profiles = [
|
||||
"${pkgs.lxc}/etc/apparmor.d/lxc-containers"
|
||||
"${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start"
|
||||
];
|
||||
security.apparmor.policies = {
|
||||
"bin.lxc-start".profile = ''
|
||||
include ${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start
|
||||
'';
|
||||
"lxc-containers".profile = ''
|
||||
include ${pkgs.lxc}/etc/apparmor.d/lxc-containers
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -93,11 +93,15 @@ in
|
||||
|
||||
security.apparmor = {
|
||||
enable = true;
|
||||
profiles = [
|
||||
"${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start"
|
||||
"${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
|
||||
];
|
||||
packages = [ cfg.lxcPackage ];
|
||||
policies = {
|
||||
"bin.lxc-start".profile = ''
|
||||
include ${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start
|
||||
'';
|
||||
"lxc-containers".profile = ''
|
||||
include ${cfg.lxcPackage}/etc/apparmor.d/lxc-containers
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.lxd = {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||
let
|
||||
fakeReply = pkgs.writeText "namecoin-reply.json" ''
|
||||
{ "error": null,
|
||||
@ -15,10 +15,18 @@ let
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
# Disabled because DNSSEC does not currently validate,
|
||||
# see https://github.com/namecoin/ncdns/issues/127
|
||||
dnssec = false;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
name = "ncdns";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ rnhmjoj ];
|
||||
};
|
||||
|
||||
nodes.server = { ... }: {
|
||||
networking.nameservers = [ "127.0.0.1" ];
|
||||
@ -44,13 +52,15 @@ in
|
||||
|
||||
services.ncdns = {
|
||||
enable = true;
|
||||
dnssec.enable = true;
|
||||
dnssec.enable = dnssec;
|
||||
identity.hostname = "example.com";
|
||||
identity.hostmaster = "root@example.com";
|
||||
identity.address = "1.0.0.1";
|
||||
};
|
||||
|
||||
services.pdns-recursor = {
|
||||
enable = true;
|
||||
dns.allowFrom = [ "127.0.0.0/8" ];
|
||||
settings.loglevel = 8;
|
||||
resolveNamecoin = true;
|
||||
};
|
||||
|
||||
@ -58,20 +68,29 @@ in
|
||||
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
with subtest("DNSSEC keys have been generated"):
|
||||
server.wait_for_unit("ncdns")
|
||||
server.wait_for_file("/var/lib/ncdns/bit.key")
|
||||
server.wait_for_file("/var/lib/ncdns/bit-zone.key")
|
||||
testScript =
|
||||
(lib.optionalString dnssec ''
|
||||
with subtest("DNSSEC keys have been generated"):
|
||||
server.wait_for_unit("ncdns")
|
||||
server.wait_for_file("/var/lib/ncdns/bit.key")
|
||||
server.wait_for_file("/var/lib/ncdns/bit-zone.key")
|
||||
|
||||
with subtest("DNSKEY bit record is present"):
|
||||
server.wait_for_unit("pdns-recursor")
|
||||
server.wait_for_open_port("53")
|
||||
server.succeed("host -t DNSKEY bit")
|
||||
with subtest("DNSKEY bit record is present"):
|
||||
server.wait_for_unit("pdns-recursor")
|
||||
server.wait_for_open_port("53")
|
||||
server.succeed("host -t DNSKEY bit")
|
||||
'') +
|
||||
''
|
||||
with subtest("can resolve a .bit name"):
|
||||
server.wait_for_unit("namecoind")
|
||||
server.wait_for_unit("ncdns")
|
||||
server.wait_for_open_port("8332")
|
||||
assert "1.2.3.4" in server.succeed("dig @localhost -p 5333 test.bit")
|
||||
|
||||
with subtest("can resolve a .bit name"):
|
||||
server.wait_for_unit("namecoind")
|
||||
server.wait_for_open_port("8332")
|
||||
assert "1.2.3.4" in server.succeed("host -t A test.bit")
|
||||
'';
|
||||
with subtest("SOA record has identity information"):
|
||||
assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
|
||||
|
||||
with subtest("bit. zone forwarding works"):
|
||||
assert "1.2.3.4" in server.succeed("host test.bit")
|
||||
'';
|
||||
})
|
||||
|
@ -466,10 +466,12 @@ let
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-postfix-exporter.service")
|
||||
wait_for_file("/var/lib/postfix/queue/public/showq")
|
||||
wait_for_open_port(9154)
|
||||
succeed(
|
||||
"curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'"
|
||||
)
|
||||
succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_up{.*} 1'")
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
, withDevices ? true, udisks2
|
||||
, withDynamic ? true
|
||||
, withHttpServer ? true
|
||||
, withLibVlc ? false, vlc
|
||||
, withLibVlc ? false, libvlc
|
||||
, withStreams ? true
|
||||
}:
|
||||
|
||||
@ -71,7 +71,7 @@ in mkDerivation {
|
||||
++ lib.optional withMtp libmtp
|
||||
++ lib.optional withMusicbrainz libmusicbrainz5
|
||||
++ lib.optional withUdisks udisks2
|
||||
++ lib.optional withLibVlc vlc;
|
||||
++ lib.optional withLibVlc libvlc;
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig qttools ];
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "geonkick";
|
||||
version = "2.3.7";
|
||||
version = "2.3.8";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "iurie-sw";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1wdcbwiyy6i5agq5lffkyilyc8mv1cc4mp9h0nybn240vb2flqc2";
|
||||
sha256 = "07809yy2q7dd6fcp0yndlg1vw2ca2zisnsplb3xrxvzdvrqlw910";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
@ -18,13 +18,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "giada";
|
||||
version = "0.16.3.1";
|
||||
version = "0.16.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "monocasual";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0z1jrkggdn630i3j59j30apaa9s242y1wiawqp4g1n9dkg3r9a1j";
|
||||
sha256 = "0qyx0bvivlvly0vj5nnnbiks22xh13sqlw4mfgplq2lbbpgisigp";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
let
|
||||
pname = "plexamp";
|
||||
version = "3.1.1";
|
||||
version = "3.2.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
|
||||
sha256 = "11hgcysa1x9yqvha6ri4vl1zk8gf8vhcpnh3j38wg9ncd7nz5k2v";
|
||||
sha256 = "R1BhobnwoU7oJ7bNes8kH2neXqHlMPbRCNjcHyzUPqo=";
|
||||
name="${pname}-${version}.AppImage";
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
{ mkDerivation
|
||||
{ stdenv
|
||||
, mkDerivation
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
@ -39,12 +40,13 @@ mkDerivation rec {
|
||||
"--enable-sdl"
|
||||
];
|
||||
|
||||
fixupPhase = ''
|
||||
fixupPhase = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
|
||||
# NOTE: 2019-10-05: Upstream inserts the src path buring build into ELF rpath, so must delete it out
|
||||
# upstream report: https://github.com/projectM-visualizer/projectm/issues/245
|
||||
for entry in $out/bin/* ; do
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $entry | tr ':' '\n' | grep -v 'src/libprojectM' | tr '\n' ':')" "$entry"
|
||||
done
|
||||
'' + ''
|
||||
wrapQtApp $out/bin/projectM-pulseaudio
|
||||
rm $out/bin/projectM-unittest
|
||||
'';
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pt2-clone";
|
||||
version = "1.22";
|
||||
version = "1.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "8bitbubsy";
|
||||
repo = "pt2-clone";
|
||||
rev = "v${version}";
|
||||
sha256 = "1w6lbq4366bawy975glvjizk57zhvl562xhxwzn7p5hpm2bvw09b";
|
||||
sha256 = "1vixpp0vqpawqviwl44wn8zf602zyyrgqnjzrlwjrmdzydx9c93y";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -30,7 +30,7 @@
|
||||
, withGstreamer ? true
|
||||
, gst_all_1 ? null
|
||||
, withVlc ? true
|
||||
, vlc ? null
|
||||
, libvlc ? null
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
@ -75,7 +75,7 @@ mkDerivation rec {
|
||||
gst-plugins-good
|
||||
gst-plugins-ugly
|
||||
])
|
||||
++ lib.optional withVlc vlc;
|
||||
++ lib.optional withVlc libvlc;
|
||||
|
||||
nativeBuildInputs = [ cmake ninja pkgconfig qttools ];
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ergo";
|
||||
version = "3.3.1";
|
||||
version = "3.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
|
||||
sha256 = "1qr1vfb6mhm2hxl2ksydkhadm7phadn93lwm3f9zni01plk56bb5";
|
||||
sha256 = "1lsqshpbc5p5qm8kic8a90xmvd2zx2s7jf613j9ng4h3hh75wbff";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -19,9 +19,9 @@ let
|
||||
sha256Hash = "sha256-qbxmR9g8DSKzcP09bJuc+am79BSXWG39UQxFEb1bZ88=";
|
||||
};
|
||||
latestVersion = { # canary & dev
|
||||
version = "4.2.0.11"; # "Android Studio 4.2 Canary 11"
|
||||
build = "202.6825553";
|
||||
sha256Hash = "sha256-la3J0mgUxJA50l1PLr9FPMKI5QYkoBRriVyu3aVq7io=";
|
||||
version = "4.2.0.12"; # "Android Studio 4.2 Canary 12"
|
||||
build = "202.6847140";
|
||||
sha256Hash = "sha256-lt2069uAJdVlKg3fC2NmFFPoMmG5cAUnH9V4WRAawxk=";
|
||||
};
|
||||
in {
|
||||
# Attributes are named by their corresponding release channels
|
||||
|
@ -75,9 +75,9 @@ in stdenv.mkDerivation {
|
||||
"${lib.getLib stdenv.cc.libc}/lib"
|
||||
|
||||
# Executable paths necessary for compilation (ld, as):
|
||||
"${lib.getBin stdenv.cc.cc}"
|
||||
"${lib.getBin stdenv.cc.bintools}"
|
||||
"${lib.getBin stdenv.cc.bintools.bintools}"
|
||||
"${lib.getBin stdenv.cc.cc}/bin"
|
||||
"${lib.getBin stdenv.cc.bintools}/bin"
|
||||
"${lib.getBin stdenv.cc.bintools.bintools}/bin"
|
||||
]));
|
||||
in ''
|
||||
substituteInPlace lisp/emacs-lisp/comp.el --replace \
|
||||
|
@ -26,12 +26,15 @@
|
||||
, exiv2
|
||||
, ffmpeg
|
||||
, flex
|
||||
, graphviz
|
||||
, imagemagick
|
||||
, lcms2
|
||||
, lensfun
|
||||
, libgphoto2
|
||||
, libkipi
|
||||
, libksane
|
||||
, liblqr1
|
||||
, libqtav
|
||||
, libusb1
|
||||
, marble
|
||||
, libGL
|
||||
@ -39,22 +42,24 @@
|
||||
, opencv3
|
||||
, pcre
|
||||
, threadweaver
|
||||
, x265
|
||||
|
||||
# For panorama and focus stacking
|
||||
, enblend-enfuse
|
||||
, hugin
|
||||
, gnumake
|
||||
|
||||
, breeze-icons
|
||||
, oxygen
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "digikam";
|
||||
version = "6.4.0";
|
||||
version = "7.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0vwd97zkxv30y8x0z76s4fsj4w9ysgsmpjclp2h2bpava7zi4l3p";
|
||||
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1gmblnsm0aida3yynyddm6jdh59hx3w177hrhfar616z793ch0xi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
|
||||
@ -66,17 +71,21 @@ mkDerivation rec {
|
||||
exiv2
|
||||
ffmpeg
|
||||
flex
|
||||
graphviz
|
||||
imagemagick
|
||||
lcms2
|
||||
lensfun
|
||||
libgphoto2
|
||||
libkipi
|
||||
libksane
|
||||
liblqr1
|
||||
libqtav
|
||||
libusb1
|
||||
libGL
|
||||
libGLU
|
||||
opencv3
|
||||
pcre
|
||||
x265
|
||||
|
||||
qtbase
|
||||
qtxmlpatterns
|
||||
@ -94,6 +103,7 @@ mkDerivation rec {
|
||||
kwidgetsaddons
|
||||
kxmlgui
|
||||
|
||||
breeze-icons
|
||||
marble
|
||||
oxygen
|
||||
threadweaver
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "drawio";
|
||||
version = "13.6.2";
|
||||
version = "13.7.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
|
||||
sha256 = "17nahdv06d41vyqkcqflf652wjp410i3hn4rhlv5cnd3jcr5vgih";
|
||||
sha256 = "14wcj9jbpv1rg0g7djihzzq088aj96mwys4rc9540ajbkbbm9d36";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
|
||||
xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
|
||||
xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
|
||||
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
|
||||
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
|
||||
|
||||
@ -8,14 +8,14 @@ assert mpi != null;
|
||||
let
|
||||
pythonPackages = python3Packages;
|
||||
in mkDerivation rec {
|
||||
pname = "freecad";
|
||||
version = "0.18.4";
|
||||
pname = "freecad-unstable";
|
||||
version = "2020-09-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeCAD";
|
||||
repo = "FreeCAD";
|
||||
rev = version;
|
||||
sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
|
||||
rev = "7616153b3c31ace006169cdc2fdafab484498858";
|
||||
sha256 = "1vffvzv3gkndfj2k8ik0afyk9rgngnr4aai5py66qd63qd7kmxch";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -29,20 +29,11 @@ in mkDerivation rec {
|
||||
buildInputs = [
|
||||
cmake coin3d xercesc ode eigen opencascade-occt gts
|
||||
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
|
||||
libGLU libXmu qtbase qttools qtwebkit
|
||||
libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
|
||||
] ++ (with pythonPackages; [
|
||||
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
|
||||
]);
|
||||
|
||||
# Fix missing app icon on Wayland. Has been upstreamed and should be safe to
|
||||
# remove in versions >= 0.19
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
|
||||
sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_QT5=ON"
|
||||
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
|
||||
|
85
pkgs/applications/graphics/freecad/stable.nix
Normal file
85
pkgs/applications/graphics/freecad/stable.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
|
||||
xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
|
||||
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
|
||||
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
|
||||
|
||||
assert mpi != null;
|
||||
|
||||
let
|
||||
pythonPackages = python3Packages;
|
||||
in mkDerivation rec {
|
||||
pname = "freecad";
|
||||
version = "0.18.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeCAD";
|
||||
repo = "FreeCAD";
|
||||
rev = version;
|
||||
sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pkgconfig
|
||||
pythonPackages.pyside2-tools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cmake coin3d xercesc ode eigen opencascade-occt gts
|
||||
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
|
||||
libGLU libXmu qtbase qttools qtwebkit
|
||||
] ++ (with pythonPackages; [
|
||||
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
|
||||
]);
|
||||
|
||||
# Fix missing app icon on Wayland. Has been upstreamed and should be safe to
|
||||
# remove in versions >= 0.19
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
|
||||
sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_QT5=ON"
|
||||
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
|
||||
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
|
||||
("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
|
||||
+ ";${pythonPackages.pyside2}/include/PySide2/QtCore"
|
||||
+ ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
|
||||
+ ";${pythonPackages.pyside2}/include/PySide2/QtGui"
|
||||
)
|
||||
"-DPYSIDE_LIBRARY=PySide2::pyside2"
|
||||
];
|
||||
|
||||
# This should work on both x86_64, and i686 linux
|
||||
preBuild = ''
|
||||
export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
|
||||
'';
|
||||
|
||||
# Their main() removes PYTHONPATH=, and we rely on it.
|
||||
preConfigure = ''
|
||||
sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
|
||||
|
||||
qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
|
||||
'';
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
mv $out/share/doc $out
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
|
||||
homepage = "https://www.freecadweb.org/";
|
||||
license = licenses.lgpl2Plus;
|
||||
maintainers = with maintainers; [ viric gebner ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -5,13 +5,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "yacreader";
|
||||
version = "9.6.2";
|
||||
version = "9.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YACReader";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1s7kb72skhr364kq8wr2i012jjmaz2vzcz526h0b2bch8921wrnf";
|
||||
sha256 = "17kzh69sxpyk4n7c2gkbsvr9y4j14azdy1qxzghsbwp7ij4iw9kv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake pkgconfig ];
|
||||
|
@ -14,13 +14,13 @@
|
||||
, kinit
|
||||
, kirigami2
|
||||
, baloo
|
||||
, vlc
|
||||
, libvlc
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
name = "elisa";
|
||||
|
||||
buildInputs = [ vlc ];
|
||||
buildInputs = [ libvlc ];
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
||||
|
||||
|
@ -5,16 +5,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "archiver";
|
||||
version = "3.3.0";
|
||||
version = "3.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mholt";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1yr2jhidqvbwh1y08lpqaidwpr5yx3bhvznm5fc9pk64s7z5kq3h";
|
||||
sha256 = "1izr9znw3mbqpg85qkl1pad5hash531h3dpwbji5w2af2i6x4ga3";
|
||||
};
|
||||
|
||||
vendorSha256 = "1ikrgl03r9zkn86kxkqi2kf540g3qzzz24i5wvh6g3d5q49nygl9";
|
||||
vendorSha256 = "1rqhra3rfarq8f750zszkrm0jcsxa4sjbfpmcdlj5z000df699zq";
|
||||
|
||||
buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cheat";
|
||||
version = "4.0.4";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cheat";
|
||||
repo = "cheat";
|
||||
rev = version;
|
||||
sha256 = "0cracw6pja3d7z6ip6lbmpvfxlxcnh3fbgh5ba8c87bhfz99idqn";
|
||||
sha256 = "0x6msbbqkwxs6msqacpqw4wlw7c9ilf8n6jqmx297ij6isswgksh";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/cheat" ];
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dbeaver-ce";
|
||||
version = "7.2.0";
|
||||
version = "7.2.1";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "dbeaver";
|
||||
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
|
||||
sha256 = "0zpxsdzhn5fsrlq04v5kvkrgf4dsj5zmpypj9awsd2mjcbp6yxd7";
|
||||
sha256 = "0vdwbgff55aq5l67fczdvw7kn7kf0dsz183x5lz2v1sb2blsjvjj";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dstask";
|
||||
version = "0.20";
|
||||
version = "0.21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "naggie";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0hrhvfkqflr4wx1r2xbfbi566pglrp4rp5yq0cr2ml0x6kw3yz0j";
|
||||
sha256 = "0af85rs4s0wfnibdhn28qycvy90aafkczccs5vyh36y7cnyhvgkl";
|
||||
};
|
||||
|
||||
# Set vendorSha256 to null because dstask vendors its dependencies (meaning
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fff";
|
||||
version = "2.1";
|
||||
version = "2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dylanaraps";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0s5gi5ghwax5gc886pvbpcmsbmzhxzywajwzjsdxwjyd1v1iynwh";
|
||||
sha256 = "14ymdw6l6phnil0xf1frd5kgznaiwppcic0v4hb61s1zpf4wrshg";
|
||||
};
|
||||
|
||||
pathAdd = stdenv.lib.makeSearchPath "bin" ([ xdg_utils file coreutils w3m xdotool ]);
|
||||
|
@ -1,28 +1,24 @@
|
||||
{ stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations }:
|
||||
{ stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations, substituteAll }:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "gpxsee";
|
||||
version = "7.31";
|
||||
version = "7.32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "GPXSee";
|
||||
rev = version;
|
||||
sha256 = "0y60h66p8ydkinxk9x4sp4cm6gq66nc9jcavy135vmycsiq9gphn";
|
||||
sha256 = "0mcd6zv71laykg1208vkqmaxv1v12mqq47156gb78a5ww8paa0ka";
|
||||
};
|
||||
|
||||
patches = [
|
||||
patches = (substituteAll {
|
||||
# See https://github.com/NixOS/nixpkgs/issues/86054
|
||||
./fix-qttranslations-path.diff
|
||||
];
|
||||
src = ./fix-qttranslations-path.diff;
|
||||
inherit qttranslations;
|
||||
});
|
||||
|
||||
nativeBuildInputs = [ qmake qttools ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/GUI/app.cpp \
|
||||
--subst-var-by qttranslations ${qttranslations}
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
lrelease gpxsee.pro
|
||||
'';
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hugo";
|
||||
version = "0.74.3";
|
||||
version = "0.75.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gohugoio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0rikr4yrjvmrv8smvr8jdbcjqwf61y369wn875iywrj63pyr74r9";
|
||||
sha256 = "1c3l3q2xkibl1lz2mbvhgj94s6d9g5nakhpzj252s3m3cgk4w5wh";
|
||||
};
|
||||
|
||||
vendorSha256 = "17xn6bdy942g6nx5xky41ixmd5kaz68chj3rb02ibpyraamx04nm";
|
||||
vendorSha256 = "0gdd8fqd4mwg69wj8dxmm5wh1pjhdc189l2gy6njgpmwh93xbvdg";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -30,12 +30,12 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "obsidian";
|
||||
version = "0.8.12";
|
||||
version = "0.8.15";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
"https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
|
||||
sha256 = "1rvdxdxrfhw0ldslbnmx26znlvznb1iqpk95c0rh12hlzh4nlgxm";
|
||||
sha256 = "0cbgkdbfr7w4xixzwx80q9fzsv97lahfdsd8b26m2zvyby075qzj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper graphicsmagick ];
|
||||
|
45
pkgs/applications/misc/rofimoji/default.nix
Normal file
45
pkgs/applications/misc/rofimoji/default.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
|
||||
, waylandSupport ? true
|
||||
, x11Support ? true
|
||||
|
||||
, ConfigArgParse
|
||||
, pyxdg
|
||||
, rofi
|
||||
, wl-clipboard
|
||||
, wtype
|
||||
, xdotool
|
||||
, xsel
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "rofimoji";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fdw";
|
||||
repo = "rofimoji";
|
||||
rev = version;
|
||||
sha256 = "08ayndpifr04njpijc5n5ii5nvibfpab39p6ngyyj0pb43792a8j";
|
||||
};
|
||||
|
||||
# `rofi` and the `waylandSupport` and `x11Support` dependencies
|
||||
# contain binaries needed at runtime.
|
||||
propagatedBuildInputs = with lib; [ ConfigArgParse pyxdg rofi ]
|
||||
++ optionals waylandSupport [ wl-clipboard wtype ]
|
||||
++ optionals x11Support [ xdotool xsel ];
|
||||
|
||||
# The 'extractors' sub-module is used for development
|
||||
# and has additional dependencies.
|
||||
postPatch = "rm -rf extractors";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple emoji and character picker for rofi";
|
||||
homepage = "https://github.com/fdw/rofimoji";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ justinlovinger ];
|
||||
};
|
||||
}
|
@ -7,13 +7,13 @@
|
||||
let
|
||||
pname = "rsibreak";
|
||||
version = "0.12";
|
||||
revision = ".8";
|
||||
revision = ".13";
|
||||
in mkDerivation rec {
|
||||
name = "rsibreak-${version}${revision}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
|
||||
sha256 = "1qn9xdjx9zzw47jsj7f4nkqmrangfhdgafm2jxm7cm6z6kcvzr28";
|
||||
sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
||||
|
45
pkgs/applications/misc/swappy/default.nix
Normal file
45
pkgs/applications/misc/swappy/default.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, wayland
|
||||
, cairo
|
||||
, pango
|
||||
, gtk
|
||||
, pkgconfig
|
||||
, cmake
|
||||
, scdoc
|
||||
, libnotify
|
||||
, gio-sharp
|
||||
, glib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "swappy-${version}";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jtheoof";
|
||||
repo = "swappy";
|
||||
rev = "v${version}";
|
||||
sha256 = "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ glib meson ninja pkgconfig cmake scdoc ];
|
||||
|
||||
buildInputs = [ cairo pango gtk libnotify wayland glib ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
mesonFlags = [
|
||||
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
|
||||
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/jtheoof/swappy";
|
||||
description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS ";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.matthiasbeyer ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -4,25 +4,25 @@
|
||||
, utillinux, file, which, groff
|
||||
|
||||
# adds support for handling removable media (vifm-media). Linux only!
|
||||
, mediaSupport ? false, python3 ? null, udisks2 ? null, lib ? null
|
||||
, mediaSupport ? false, python3 ? null, udisks2 ? null, lib ? null
|
||||
}:
|
||||
|
||||
let isFullPackage = mediaSupport;
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = if isFullPackage then "vifm-full" else "vifm";
|
||||
version = "0.10.1";
|
||||
version = "0.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2";
|
||||
sha256 = "0fyhxh7ndjn8fyjhj14ymkr3pjcs3k1xbs43g7xvvq85vdb6y04r";
|
||||
sha256 = "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig makeWrapper ];
|
||||
buildInputs = [ ncurses libX11 utillinux file which groff ];
|
||||
|
||||
postFixup = let
|
||||
path = lib.makeBinPath
|
||||
[ udisks2
|
||||
path = lib.makeBinPath
|
||||
[ udisks2
|
||||
(python3.withPackages (p: [p.dbus-python]))
|
||||
];
|
||||
|
||||
@ -42,4 +42,3 @@ in stdenv.mkDerivation rec {
|
||||
updateWalker = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zola";
|
||||
version = "0.12.0";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getzola";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "119ikgall6bv1r6h1pqcmc6nxkxld2lch04gk860zzk54jragbrp";
|
||||
sha256 = "00fkcrr40v93z23h3q2wqlfx0120g59j6j9szk8nx9x85i40j3if";
|
||||
};
|
||||
|
||||
cargoSha256 = "1jx5bgfmbv0wljps1yv6yir2pjlb0vwzzba4i2sv32awv9y0q3v6";
|
||||
cargoSha256 = "1wdypyy787dzdq5q64a9mjfygg0kli49yjzw7xh66sjd7263w9fs";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ openssl oniguruma ]
|
||||
|
@ -39,8 +39,7 @@ rustPlatform.buildRustPackage rec {
|
||||
postInstall = "make PREFIX=$out copy-data";
|
||||
|
||||
# Sometimes tests fail when run in parallel
|
||||
#checkFlags = [ "--test-threads=1" ];
|
||||
doCheck = false;
|
||||
cargoParallelTestThreads = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
|
||||
@ -49,4 +48,3 @@ rustPlatform.buildRustPackage rec {
|
||||
maintainers = with maintainers; [ fgaz ];
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k9s";
|
||||
version = "0.21.7";
|
||||
version = "0.22.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "derailed";
|
||||
repo = "k9s";
|
||||
rev = "v${version}";
|
||||
sha256 = "1rw1vzxfjzklzdpcxz7mplvlmggavaym260s7vzvbgvd1snf38cb";
|
||||
sha256 = "1qyibpvfbd8yahfmci431qd0zy4wwz03gwj1ak8rn3qxpv1cdbmk";
|
||||
};
|
||||
|
||||
buildFlagsArray = ''
|
||||
@ -18,7 +18,7 @@ buildGoModule rec {
|
||||
-X github.com/derailed/k9s/cmd.commit=${src.rev}
|
||||
'';
|
||||
|
||||
vendorSha256 = "05rsbi40pihdh212d5zn6cchnkrqd6rsyl3vfsw77ksybwakrbf7";
|
||||
vendorSha256 = "1432ppgd3lc0h83i6vzklfhp95s2xwaf41mv4xfryzzszjfndmvl";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kube3d";
|
||||
version = "3.0.1";
|
||||
version = "3.0.2";
|
||||
k3sVersion = "1.18.6-k3s1";
|
||||
|
||||
excludedPackages = ''tools'';
|
||||
@ -11,7 +11,7 @@ buildGoModule rec {
|
||||
owner = "rancher";
|
||||
repo = "k3d";
|
||||
rev = "v${version}";
|
||||
sha256 = "1l6mh0dpf2bw9sxpn14iivv3pr8mj4favzx2hhn8k1j71cm1w4rj";
|
||||
sha256 = "182n4kggwr6z75vsagfd0rl89ixcw5h13whf56jh4cd38dj8is5l";
|
||||
};
|
||||
|
||||
buildFlagsArray = ''
|
||||
|
@ -9,11 +9,11 @@ let
|
||||
};
|
||||
in with python.pkgs; buildPythonApplication rec {
|
||||
pname = "luigi";
|
||||
version = "3.0.1";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "02c480f5pjgqsvqnkaw7f6n4nhdspmhq5w7lw8sgg2v3jghg8n7i";
|
||||
sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ dateutil tornado_5 python-daemon boto3 ];
|
||||
|
@ -17,7 +17,7 @@ let
|
||||
};
|
||||
# Terraform allow checking the provider versions, but this breaks
|
||||
# if the versions are not provided via file paths.
|
||||
postBuild = "mv go/bin/${repo}{,_v${version}}";
|
||||
postBuild = "mv $NIX_BUILD_TOP/go/bin/${repo}{,_v${version}}";
|
||||
};
|
||||
|
||||
# Google is now using the vendored go modules, which works a bit differently
|
||||
@ -39,6 +39,8 @@ let
|
||||
# just build and install into $GOPATH/bin
|
||||
buildPhase = ''
|
||||
go install -mod=vendor -v -p 16 .
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
# don't run the tests, they are broken in this setup
|
||||
|
@ -27,10 +27,10 @@ in {
|
||||
pname = "discord-canary";
|
||||
binaryName = "DiscordCanary";
|
||||
desktopName = "Discord Canary";
|
||||
version = "0.0.112";
|
||||
version = "0.0.114";
|
||||
src = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||
sha256 = "1ibw3lsk1060g6b79v78292q45ayqj3izrs3ilvg4gfwmfxmm1a0";
|
||||
sha256 = "0j3w4jf4jisrpz03462sqjsrvjw50kqqq3psyympw0jb1wjccc41";
|
||||
};
|
||||
};
|
||||
}.${branch}
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signal-cli";
|
||||
version = "0.6.8";
|
||||
version = "0.6.10";
|
||||
|
||||
# Building from source would be preferred, but is much more involved.
|
||||
src = fetchurl {
|
||||
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
|
||||
sha256 = "0gcyj8r7156zn5zzfnabf0mw3kcaq7v29vsjb6mdvj8cjjm05dvd";
|
||||
sha256 = "0zglcx5ylqjc3hjkzi84mjhp9dchnnkv12qq75q5pqkx1w45rmim";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
|
||||
|
@ -25,7 +25,7 @@ let
|
||||
else "");
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "signal-desktop";
|
||||
version = "1.36.1"; # Please backport all updates to the stable channel.
|
||||
version = "1.36.3"; # Please backport all updates to the stable channel.
|
||||
# All releases have a limited lifetime and "expire" 90 days after the release.
|
||||
# When releases "expire" the application becomes unusable until an update is
|
||||
# applied. The expiration date for the current release can be extracted with:
|
||||
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
sha256 = "0lc56g09g2xfwxwm046bcykvxd0nq63zazamnp268z28lnn937mc";
|
||||
sha256 = "1b75b5li0im2mwskkf1xsa6sjprl56isvcz2iy1gc48bambc72pc";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,7 +7,7 @@ let
|
||||
|
||||
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
|
||||
# source of the latter disappears much faster.
|
||||
version = "8.63.0.76";
|
||||
version = "8.64.0.81";
|
||||
|
||||
rpath = stdenv.lib.makeLibraryPath [
|
||||
alsaLib
|
||||
@ -65,7 +65,7 @@ let
|
||||
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
];
|
||||
sha256 = "0gmrk1giabr53imiwdflf6ykwpcj2q5zn3bynvrncnhivsbvaavy";
|
||||
sha256 = "0p6sp45kabm97p3hp3wp087b3k42m26ji99kzhpsz3n9vzjiczjh";
|
||||
}
|
||||
else
|
||||
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
||||
|
@ -6,13 +6,13 @@ with stdenv.lib;
|
||||
|
||||
perlPackages.buildPerlPackage rec {
|
||||
pname = "convos";
|
||||
version = "4.33";
|
||||
version = "4.40";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nordaaker";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0mxq4jpjk4vvhi5lqslj614dvk84iq12rsdyykxr8h9cnjjs57im";
|
||||
sha256 = "0yyykr86d494xq1ga5ncr6jmdf0ny1r4gm0wzwn49bxn2x1l0xck";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
|
@ -2,17 +2,18 @@
|
||||
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
|
||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, elinks, mailcap, runtimeShell, sqlite, zlib
|
||||
, glibcLocales
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20200821";
|
||||
version = "20200925";
|
||||
pname = "neomutt";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "neomutt";
|
||||
rev = version;
|
||||
sha256 = "0l66xf6qp2fdhm5h2v58bbc73pwj72c80mriqac9pfyjh5padir5";
|
||||
sha256 = "1q931n9sijq1iin3swzk57rz7qmy485hvr1fahy5i2wd1xx9yhb2";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@ -21,6 +22,18 @@ stdenv.mkDerivation rec {
|
||||
mailcap sqlite
|
||||
];
|
||||
|
||||
patches = [
|
||||
# To be removed on next release. Fixes two bugs in the sidebar behavior.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/neomutt/neomutt/commit/96753674e70edb695c1dc7af73e3317956c1b259.patch";
|
||||
sha256 = "0yjmgdfhn8ra7bc3d40c3c29imgpgbhzphjxp6575llh9kw5h53s";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/neomutt/neomutt/commit/6078653c9233644ca76c24bdb64e49bd443dd714.patch";
|
||||
sha256 = "1s1p86bqpc9xq9z5qfh0mxxh6syps8shq0dm7bbkg1bz7qya5phy";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib elinks
|
||||
];
|
||||
|
@ -1,665 +1,665 @@
|
||||
{
|
||||
version = "78.2.2";
|
||||
version = "78.3.1";
|
||||
sources = [
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/af/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/af/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "af";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "12d8b417fe101e45460b66faa04e0c99bacd454b563c96b7bd7d5b77cabb8f2c";
|
||||
sha256 = "dc14e5319ecee546f10f7decca4489718bfc94bc30f8b08e9571ef2ea6a3d6bd";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ar/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ar/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ar";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "1fa7a01cd370114ce9dc65c2d48e001d6969f953ba138fc4005329b2fce7f1fc";
|
||||
sha256 = "c2b3315de4d006ca44e3c5a68ed8e77024b89de2323970d4615490b86e0fdfd9";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ast/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ast/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ast";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c002ba6b4cded5b085abfad61daccad36a7936af40eacf77e4378caff42f9138";
|
||||
sha256 = "0ffaca9fdce6bd88a0a850e149f1e3fc4e2cb167c637af7f9d674616038cf0a3";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/be/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/be/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "be";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "17021647dd58eb851f99e8f63e9d4a6ec302a7a7a1f5a0e561fe96bc63abb5f7";
|
||||
sha256 = "e52c73a0e1a93d6cb51004dd041f88213658673adfc67860f9550ee39adf9250";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/bg/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/bg/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "bg";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e813d46a0ba8dccec07a1bc5201da859a8c23b1cb9140420d902ed9f3fa6f7fd";
|
||||
sha256 = "62ceac4d1085e1fcbc2446069c6b667be8391a4be5ade4b5f78107ddd3fcc170";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/br/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/br/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "br";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0bc12e80e5923271973a3037a26a2fd2702118deba326ab98a8a9d776d25c9ca";
|
||||
sha256 = "0de6e27f09912f549e92136d46e02fa3738a3177897dd34e2858ee56b803224c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ca/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ca/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ca";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "f8e6abea863956613d646af01ca09f53311e325d6006a28319cb3f9932a03eaf";
|
||||
sha256 = "ace99257cea52ecf6f99d9a819cf343a23b74e56c1f0bf2a3e66600dbcded779";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/cak/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cak/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cak";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c7603bc86b2d86a9ceddc55a44f9a8a116ec67d1b23ea659f705ad78ecfc02e3";
|
||||
sha256 = "f39736d27349ba66d142d61070e2c37c4c0a463a1cf89ea72fb1cabb264d38eb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/cs/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cs/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cs";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "058405304cf6523cbcb1d217ebb393a66067b5cbf839d0b588930b59c828d700";
|
||||
sha256 = "a068533fc0ac55972956aa9a9520f403df9519bc291c5102618476f249c911a7";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/cy/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cy/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cy";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e6af1a50954e495bd3145513dd7b7c5b3129862cbe5aa2622229855133233e6c";
|
||||
sha256 = "bfd66cda463454684865f055339072513fc4b8774b34e96f3c799c6f555122fd";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/da/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/da/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "da";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "39a61048e47af6d96242291581ca29d016f4b667ff373167e7de9d5629f4e4d0";
|
||||
sha256 = "885bdd4063aa9d8d8dbd352af7291208766fb864b9989b68bb2fa038d314bd8b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/de/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/de/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "de";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "9ab3e2dc60662d37ab7623fafc8dc586c9baa13819c753331539879463bd6b63";
|
||||
sha256 = "f1d9d91e6a4ef5e3945d958457e96cedde86a0f3b62ac5aee21eeff54c40c999";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/dsb/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/dsb/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "dsb";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "114cd0d19683c0b8c7a5ff0d258d2cf01304eb26f4c7dc466b895c460b129e5b";
|
||||
sha256 = "73628a6c666f69529b04ea8c60dc2fdffce17e9cf13ed6e3af24c8443f093b74";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/el/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/el/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "el";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "011bb98710b5c6c371e122ada559ec010aa9b965da54bfbc73aef14681f39f97";
|
||||
sha256 = "ec532079ebac4e8ba6e58e97d0c7eb1d7f5e0e20c1563985cabd03101dc2c995";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/en-CA/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-CA/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-CA";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ff39f524ffd7f455940df65c42a40c045cdae4ead311de5dae8c3d563e0e77fc";
|
||||
sha256 = "1a1366cf35f9ab6b39300405538590e55d6a0833e406a61c9e3924a72adc2bcc";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/en-GB/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-GB/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-GB";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ce353fc8e6e8e8d2ec1378f76879c0bebb55f867f39488fe48a1995685c85b00";
|
||||
sha256 = "1f62e839e1fff1c0a833ad2ee73fc72542bc3723e0e368ac1d9f153378da8859";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/en-US/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-US/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-US";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e3af4f4b1eaf21c3137047cb5190780fd51e4d27a620efeb6157ffab5ecca950";
|
||||
sha256 = "c46a8dde6a03c9588d0101354f2a09123d940bce507ea0a693807ea825b5edd1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/es-AR/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/es-AR/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "es-AR";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "30ba14c91750200fc8f4bb8c031fc7b9ecd3efc2d658d9debcafbe8f4b44ad22";
|
||||
sha256 = "3885122a529f8cc9cc7a579696f6e74f0d42a37309f44a33a18dbc99d01a433a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/es-ES/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/es-ES/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "es-ES";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0e3d5f0a0f6f505b52d958cf34f26ea98e716516a7f06664aa3806fb1ade55db";
|
||||
sha256 = "d61e5d9e82f52de243cecfc8ccf0ec4476e3309167a33f9c4b7f513c31808527";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/et/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/et/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "et";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "32acee8023857d5ed54ceb72acb0f5a621ce1884ecf114760f670a3166e7eea9";
|
||||
sha256 = "1ddc1fb310c75104c2642c145f9250fbffa834d5a9fb100c12c2e3ea31955321";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/eu/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/eu/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "eu";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8827e24c546ccf27c8a02e61794675e675c475a833621840152bc840964bce56";
|
||||
sha256 = "fdb2fd4d1650edc40f193c028a8bd6ac832742a383a2537f7cf7244f8d736717";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/fa/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fa/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fa";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "9b072f89cc4288443eb986cb6798d35e08ff003c73d0bbf54a2ccdfea1866d17";
|
||||
sha256 = "7ea9ed9eef1167792c2468372bd5c35a9a36401ec40d63a14a8b3d86cb6f6687";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/fi/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fi/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fi";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "9ba017f70955a1aa9c8ff2c94653be569ff0dcdd4784e8ea21e425e5e29140f7";
|
||||
sha256 = "efd073de097cb5f82a26a239fbb360b653041a48bf4c98e983b2fa9675e8c64e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/fr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7eea9eb22bd47467740e1fa22977dcddd326ca7e9ad7adc8cf7964b9db5da6ce";
|
||||
sha256 = "c07c981bc7fa69a10b3c78602e5cff029860b90243ccc3270f7df56505163b81";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/fy-NL/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fy-NL/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fy-NL";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c0987516569372c9f98d5c8b6b90ad9a1468c4ed8a4b543130a023c25affbeb1";
|
||||
sha256 = "433912fe6bf0b36788f55f34d28cc56dc9a9c6f19684132e4ce51def7b968097";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ga-IE/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ga-IE/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ga-IE";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "344122ad4b549ce1610ce409e7f3ef2ab0144abb3c5ef1fe98a3e499ed292441";
|
||||
sha256 = "36a890c2aef942121a0e0717118328668d51961d506eab833141cb80c826768a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/gd/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/gd/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "gd";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7dc155a4a6bbf1b92822e23a7454e6021a3aa29b807bf9fb16327ecfb627b68f";
|
||||
sha256 = "146853c4725c744d636acfcae4fdb3e65e2f37bd15d5abcbe105bf7ef8854b2f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/gl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/gl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "gl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c99e642618e273f96ef102bafd61c8bd10b626c3ee2d7072c1bb4264a9653fd1";
|
||||
sha256 = "32f7c157a764c58a4b2d7aa45388919553300e6c0212ac1b48f30121a04332ee";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/he/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/he/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "he";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "bbf0acf24c1f8e14833b801512b57d80cf5a07662cbfec841a6b7fa3de6facfb";
|
||||
sha256 = "49e44de01ad2f13f1c2f82d137a1eab13d5800a1f72d7eb99514ea3d8bbac1d1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/hr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "22237f9fa29556853af1d70343d6087f11b677a3648f521e215ffddf0a583407";
|
||||
sha256 = "de3df9903e42dbaa6d2f98da953ff141ac81728537c94505414c7df0721580ab";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/hsb/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hsb/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hsb";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "2ed485f1cf5e431cfa561bd266624fdf7e14c725e36fa89f653f71a4a1249eda";
|
||||
sha256 = "3a851331fb698a7f6b5e54b26bba180f9952d55c29a0f8387e2637c0d8a83c79";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/hu/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hu/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hu";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8e3b4ad2fdbdd5f84be3a8c77e8c0f4ce09449190eb0d54fe693f5a619d27562";
|
||||
sha256 = "bbfeee0ce02dfc34012c994d914c69fe6a7d5b4ff0e36bc9e9ec453edc756725";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/hy-AM/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hy-AM/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hy-AM";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "bdd7a97b027d30804b60d86559b15b0bfde2f688bc166677d3762887020e2a1b";
|
||||
sha256 = "b43ca227a53d8587da34219b02c1bd58f8ed23d63e425cd4911c5e1caa3a5254";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/id/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/id/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "id";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "259e8fd126c426d8c5bb7c120ccfe28d41183551f41d49f20767e98f8f28d728";
|
||||
sha256 = "87ed1fb328b592418c515ac16dc8c45349c2dba4c69f8552f3e1f2aa9753bfca";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/is/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/is/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "is";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "1c74ec8e38bad9396faac387321608efb3463f539a91782db620ca73dfb26efd";
|
||||
sha256 = "acfdf1a9dba0372966c82aa3629b5488111b8592b26aec3aa5162c6527ec29a6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/it/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/it/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "it";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "659fca198575c52c5d90de4456368ea995b2e0dbf7dcb7578e310457142a2421";
|
||||
sha256 = "04480c988c1518b7d2dc06c836f42b4bbbe243df7014a332d195a774fbafbd93";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ja/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ja/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ja";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "b9464e9364241e94f4e40286f1b0ffdbeb392d9986b9a9cb18c41f5b96baac6c";
|
||||
sha256 = "a8041d9fc9c2e25367682b0c8d3343cf1a748d32616d4befc2ee3ab0cec24ee6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ka/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ka/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ka";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "7c73eb7efdca2e7648383c25ec3d0e2a4250b87908c9644e220eb16e1f5a0219";
|
||||
sha256 = "d6df8809fd92b9a70a4cd95a035abbb14e0c0e8869034d3c90e50b2e531fa4d4";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/kab/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/kab/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "kab";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "d4d44ccb61058423ed42767d519215bd169dd022d8aa460df7622091522300dc";
|
||||
sha256 = "6170fb0321369588af4417ce8ac25bb74ec14c932a8ecc22119f3c7d15bc9336";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/kk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/kk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "kk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "3b8af8f7eed6da665baf1ed477d5f5f1b797baf8c63f3af6ecdc257d66e446e2";
|
||||
sha256 = "a3a9d5e5c1651f0d46fb6c3d74e87cbde964f2aac9484dbe0b12afabb66adfdf";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ko/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ko/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ko";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "4129db882fde4040e1e87b4aa724b055dadeee98c46e201d24e9f485f3c2b31a";
|
||||
sha256 = "729a243dd4b5ab5dfd615228875ebba18a8b99d34ade0711cb7c1d2f4534b11d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/lt/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/lt/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "lt";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "fb1d9fc89edbe4434ecfe18d7ccdeb33c4ced3ad5adb1853baf5b115a784a120";
|
||||
sha256 = "df653c6a2af688591a1e549fddf29f176046723601e5ef85633f69105f5ce23e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ms/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ms/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ms";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "b6498d8ba9fbf63cd61cc968f375b0ecc50e3fadff993fa5070a249b679855da";
|
||||
sha256 = "278252b8d98cc29ce713eb00f59c87b54a324a0d3e833434a9912b3e1a0cd796";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/nb-NO/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nb-NO/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nb-NO";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "1d931fad5ca59c3eb29cb8155cbb15a578de28b365cb680e6aab3dc51274078b";
|
||||
sha256 = "665760b1c1035a831624c690053c5400d0ae93e28bc04a50bcc8014bc0111f5b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/nl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "1378867782f5e0b9cb9efbcc78e5ce9c28d89baca0f353a027fc6878cbb6de58";
|
||||
sha256 = "466cc2363465d0e3b6e80a9b3a27faaf010f693ed6b8b26f99610c1b4943db10";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/nn-NO/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nn-NO/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nn-NO";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "bbe5f3cc81eac55401ac4a3a2498906077b1e831d369f7f40a4ddca4dfc146bc";
|
||||
sha256 = "32f6aedcc9c9dad560e84c6de83452808e87b903c5cf69834f3a315ff560503c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/pa-IN/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pa-IN/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pa-IN";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "ea617550d8e2aa0b99d81ec8e39c587194a0b7978b3444261caf12fcc7a5b172";
|
||||
sha256 = "12073cbc4476a11c717a35f8281d9e8590f7eb35b20faf46aadeb41ffd875bfa";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/pl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "84b15d310cb1fb7217f21891ee24654b13effa4f004315811d3bb221a8fc54c7";
|
||||
sha256 = "3b8131571d497c6479615c48f908f324a76b297f9f0430eb18228283ab4de198";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/pt-BR/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pt-BR/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pt-BR";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "2e5682b09d8c6f6d260dd47b2ac7ab0f710103b0b28755c58375ccb132aea464";
|
||||
sha256 = "618abb8f3e7c48f33002e4c99f05769b66036331a040ff395c65fd1dc9d60dbf";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/pt-PT/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pt-PT/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pt-PT";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8a7f90d4ce1b9bdc2d117fabd19fd4f6ca362b89138c5470f7d76f7ec456df54";
|
||||
sha256 = "a43ea5f9181d9a7abc977ae3b0f5a20215c45d8d3e9baeae581ef15be0909489";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/rm/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/rm/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "rm";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c5a04ab8644dea990c938ab462eb8610471de524f78e09a2293ee9c79260339a";
|
||||
sha256 = "69ea896f45830fe8eeb08e2244579a7454fc18fbdbafe781331bbad97ca4ccec";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ro/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ro/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ro";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "84b555842d0502dffa99e388bcc6d90355ac4731b66876c279c84c8735a78fd9";
|
||||
sha256 = "751137453712a435060346649a3f16a2422379ab0dab9141add053e85f0de8d8";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/ru/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ru/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ru";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "d5bdde6bd4e155d78ef4fbc91718468406afc3888a80ab751647163aa087bef5";
|
||||
sha256 = "26f2d8b5704ee445835bb7a0f5bcec222359ea83d7d53fe9c9870e664fe3a70f";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/si/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/si/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "si";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "0311422b20df0b1081e889aa6301bb8930accd1c5b9b2e0e9850f4565f0ac5c3";
|
||||
sha256 = "1f450ffc77cf5309e8b01646c90324b14cc465b5b7d04566f3ff6cc56506d202";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/sk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "b91e58219d46ab7770958ec34a54323b5f7af0cf2548be93de786b76fa92db45";
|
||||
sha256 = "f95af873292f04fe6c224e24a68ed715a8e4015a81be7b45352363f16233ee58";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/sl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sl";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "e993d4c974b00452696dc68037537e18c550c3b6a634cc2da3cd28014594934f";
|
||||
sha256 = "ae49c848187a5eae1d8e8bb3f3b85e9c51794a5caed2832a38c9ac38910c85b6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/sq/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sq/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sq";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "6b18bc35ad9127b6fb149aa71b7e93b556506820e661ddd3a1b9ab298c56ae14";
|
||||
sha256 = "aa10a2fa4c73cef05c2b0657daa27c80697cda70e792be56b09ab1f9a66f544d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/sr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8fee447a4212f399645923c35de17d882a815adb81bd0b11f9fb1869b5dfaf39";
|
||||
sha256 = "92daea64a552175341b8223d9264a1bd5bbc5f3938f3420c8b81c7d0e9685b9c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/sv-SE/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sv-SE/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sv-SE";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "2500816667416a3e4af77098451b98b3e975a1f30e3f393c4e8ebf36ca7495bf";
|
||||
sha256 = "d001f1c61dea17d34dc309f6a1f120c57d6fdfe9fd0b3d336b1a1493f47dc196";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/th/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/th/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "th";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "b035f9424db935281a57a181ac1116e8fa137c27a31b9bfb515bb3fef4ca4c0e";
|
||||
sha256 = "0f640917646cb88c90aa7f85a79942f0e9dcce70e5d6d65da7e2d4cabfb73fb6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/tr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/tr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "tr";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c1cd6f9a2ebe163b8de18d26ecef4fe4beafe8e7212365c2aa71bba3b9fe0967";
|
||||
sha256 = "2150dc844df54651020d8ab4d43ba86d0624cbc06fceb12ab41eec5bafe7339e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/uk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/uk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "uk";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "de843a0f9c09bc9d37b5d1bb1925075b80efdbe678f5009cd237cb91bc423b55";
|
||||
sha256 = "1d9bdddcd7e53d47e77c4fedef5f50559c45e61778e29fc98c04cc4538dcadd7";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/uz/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/uz/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "uz";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "770bfd792effc548a619deeb0385f9c8cf6475d1233ce79e83028cfed8e41859";
|
||||
sha256 = "281f2cb9c35c5710c387fd17a6a55b85c29a01b3f1e32a2b377392566d821b55";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/vi/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/vi/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "vi";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "8183106b59c8999dc3054ead72dad3a14eabe3827ce3211278a35b20656efd62";
|
||||
sha256 = "1678dae6f876b7799f61701db64ab1aa4d6aa3c316535a04734ec7f9481d6042";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/zh-CN/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/zh-CN/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "zh-CN";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "c35ec93bd0e24f2cafb6948546a46ccde62677e6f73e2afa1e378ed040582544";
|
||||
sha256 = "42c8fcced2d06b91f402c6a9c12b48dc1b024f1a5b2d01aa96a80df088700656";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-x86_64/zh-TW/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/zh-TW/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "zh-TW";
|
||||
arch = "linux-x86_64";
|
||||
sha256 = "444861cc1fa351dce587725d67eec87eecb56a581ce94f812ccd4dbc4ae198bb";
|
||||
sha256 = "bbea2d5abe313825efd93e7fe8e63f5c73eeff72ab247b1990210256efee8aad";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/af/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/af/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "af";
|
||||
arch = "linux-i686";
|
||||
sha256 = "05eb2e50d4129c39eb28e22f7b3922868d87d310261b765a4a2c721c4ed7c04a";
|
||||
sha256 = "a54cfb6c0965d464ddfaa96dd214444ee51cea6c894e5efac236925d43de0be3";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ar/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ar/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ar";
|
||||
arch = "linux-i686";
|
||||
sha256 = "264e3f57fed68ced27fb89bf8a1e5b715c465fc70a6fbaf8f161e69f80f46c68";
|
||||
sha256 = "4d79eb10a38b01539b0c6d31db50f69004fbe5816c09e876cc338984aab0496b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ast/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ast/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ast";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5bfbefd9be834682cc144c063f6bffd56a09d2ea7ec9e83f78f0e984350a4006";
|
||||
sha256 = "5aa985186c01afe978961b64d702d98a59851257b1a3cd3d9873b7f67dcf1f61";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/be/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/be/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "be";
|
||||
arch = "linux-i686";
|
||||
sha256 = "fa1b7c0432320aa293f89529f23321066e2c4e0e474313d267650bba8b39ed90";
|
||||
sha256 = "08d6da278f79b3e7c0132b8aec649b804d3a64b0d5c02223b66f83061e421c6e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/bg/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/bg/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "bg";
|
||||
arch = "linux-i686";
|
||||
sha256 = "1d3f1a298d6ebda804e0aa2a9ad5491c0211dae96ec96e16a8816e5d3e202f63";
|
||||
sha256 = "c8749049c243474693272795cc3706e096873f743d22be171bb373746afe8a6e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/br/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/br/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "br";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d7f71155d8696d9c17c4cb0e66b987652815761137578819fb4a137c32170347";
|
||||
sha256 = "ecc9f08ef1b384d4844ea039ede864ad0f37c1cf83a75b8ee73a34b7f229e4f1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ca/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ca/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ca";
|
||||
arch = "linux-i686";
|
||||
sha256 = "44e651bcd4010a00212ea3e295cc6e3e6e7de9e118078d5631c59158a132126c";
|
||||
sha256 = "92c9e0bbd375c525ad5c28dca4f8bc68726477ed49d908bf479d32729fb44c0a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/cak/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cak/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cak";
|
||||
arch = "linux-i686";
|
||||
sha256 = "8f7849d17ae9a0d7f1b85b128a542d092c49b2b552369ce7de70ed108e4dc07e";
|
||||
sha256 = "33127a2b75dbdab2c33c8fb8a65e6bf053da6422449cb463c7cbf08fe7839d1e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/cs/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cs/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cs";
|
||||
arch = "linux-i686";
|
||||
sha256 = "0426981c8c381227ec2dd19b59cc2c3a62b91f26541dbb8e57bc97b8f4cf3578";
|
||||
sha256 = "67d137a336085ffbc414d870d57152a275b082c80d240a6b9079f6573e172df0";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/cy/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cy/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "cy";
|
||||
arch = "linux-i686";
|
||||
sha256 = "12629cfeafc74a979a621c0c8f4ebee0aa6f35dfd6fbda8a59f26e0a63311c17";
|
||||
sha256 = "18115d42cf211dc6a90881d836c9431624d54adc30a9521d6b1a1718d95a864b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/da/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/da/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "da";
|
||||
arch = "linux-i686";
|
||||
sha256 = "b280271248e99a68c2d38293275fb7ee5631bd96e7a2f67c96c60280e5148f13";
|
||||
sha256 = "faea4b3a26149a036d8b44aa0709c4d04e5e917d321d13d1b00cd80b629e5627";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/de/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/de/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "de";
|
||||
arch = "linux-i686";
|
||||
sha256 = "1caeeaa0b096378b3cab2e41d832a5c60da4e0a3cf9f84230bfe65edde106536";
|
||||
sha256 = "1bb244032bfefc15c6e7e2a1e564fa51cfc80c18b6501f079ae65aa5bddc269d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/dsb/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/dsb/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "dsb";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d1822f534ee3d2e95cc412a7f51eabcdf3f56955650da8806f4acd5e48d19d83";
|
||||
sha256 = "687089560ea3561b21ba7f8cef77970f467b953671e5cfe956e0c0aa3dfa72cf";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/el/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/el/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "el";
|
||||
arch = "linux-i686";
|
||||
sha256 = "7ec20a9b566728041394245ef5875be10b70fd04a58419fdf2150168aa86abad";
|
||||
sha256 = "5c8021489c7fdfea19446832b6676640134f805537474814f5a7e8d840a2e01c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/en-CA/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-CA/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-CA";
|
||||
arch = "linux-i686";
|
||||
sha256 = "62f31fd438ec2e33d5a1d72c57769cea3323d318ed8ad82ebf01050f4ca84fa2";
|
||||
sha256 = "a2c9c7f94191e9883f29dd43d7bee51158287cb45e3330ee5649f6553428d6f1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/en-GB/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-GB/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-GB";
|
||||
arch = "linux-i686";
|
||||
sha256 = "e857efaa39cd409de86be87934896ecdf82d4e74dd615022995f708d18119a9c";
|
||||
sha256 = "6afea217b721756cc1ebfd7b99e86a2af239855ef1fe04d6e7fe9e00e00f787c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/en-US/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-US/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "en-US";
|
||||
arch = "linux-i686";
|
||||
sha256 = "54589215c44e291a11e2cb2b2a3de682d4c48367fa8bdac59035b550a07551b6";
|
||||
sha256 = "24ae6fe44729cad965c36c8294b00831f426a815bda43bd39fb6e4ed8248a611";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/es-AR/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/es-AR/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "es-AR";
|
||||
arch = "linux-i686";
|
||||
sha256 = "b4075d697d141aa13cbcefce1e7082752588d2fc3ba00074550d6e8c1156c5d1";
|
||||
sha256 = "3fd89cac92b8ae97766b56a84d0e8a16f51966cd77a8963ab92b5706cb8fafce";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/es-ES/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/es-ES/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "es-ES";
|
||||
arch = "linux-i686";
|
||||
sha256 = "7d5f59720037153e0fbf059b0b8aea0dbb5dd20f616deea7744de87ab183023d";
|
||||
sha256 = "5227c2e2624bbc0ff3ec35be01ed42579c280ccbc5b2ab195aca3a6a760bb944";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/et/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/et/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "et";
|
||||
arch = "linux-i686";
|
||||
sha256 = "9c999d231cb404fcaf3614483e6c74801cd52f9c2ba7988cab50e1d690bc3551";
|
||||
sha256 = "1991aa5a22f7a4f6435ed9a116cbbc1b87eccf957f1401b6f20af3ae67b1b3fd";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/eu/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/eu/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "eu";
|
||||
arch = "linux-i686";
|
||||
sha256 = "79a74421f364e5d9a5db182d54058eb6c243418a1960b4a653f554584ecd05da";
|
||||
sha256 = "b9a6cdbd518ab307c646f38757bf8f2706ad51d4dd5f5193e719e112f343f021";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/fa/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fa/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fa";
|
||||
arch = "linux-i686";
|
||||
sha256 = "db6835853ceb2f597330c9e65c09df48ac308ab01d7320006b9943e3a10b471e";
|
||||
sha256 = "49805c2c97109cc22075d08503926a57910f367010a2ff8ed9c91556ad4d419b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/fi/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fi/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fi";
|
||||
arch = "linux-i686";
|
||||
sha256 = "e96ea32da9cfd941b037d0a6bf95d4a293be6f3f9800e4008c62088f06bdcf6b";
|
||||
sha256 = "ce6e16cc46ee16ca9aad6154be7442dd8bdaee09e89a75c13639f1c1979dbb57";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/fr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "dd6dacbffa7968596666615f52cac80e776f75b4e1943e218856ab80f902f950";
|
||||
sha256 = "d2e4abb6fead6aeda1e8172c04ce7b809bfa8038ffaec89431791422e70b8932";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/fy-NL/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fy-NL/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "fy-NL";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ed009214b863fa44048514870f835682944df010fcd5e1e1c149ec544fbfdaa8";
|
||||
sha256 = "6286b7bdee544c51137c2bdc423eb72523b20ddde3eb4bee7b4ab575aebf30fc";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ga-IE/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ga-IE/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ga-IE";
|
||||
arch = "linux-i686";
|
||||
sha256 = "fad826ef9820facc37bbd278c2bed11802f6b44b70416c803dc6b8fe50220c6b";
|
||||
sha256 = "b145a9b44cbafce2ebc22f4454ee6d4017c531918dd690598eb421822f4b0548";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/gd/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/gd/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "gd";
|
||||
arch = "linux-i686";
|
||||
sha256 = "cccfdd4c3170969ca3f47c0a8398a257650fae0c64ecc375ab044eef969bfa8f";
|
||||
sha256 = "c0835ac49602ad6de4d37e016d40f51268bf3e43ff04a2bc1a83c5f7f7b12556";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/gl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/gl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "gl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "dd40efa2751705b0f023a98c01b030c04eb6101fe43062b3607421b1efc462aa";
|
||||
sha256 = "22c5cfdfb8c64d18d10e2c839166ffbdb21b54d4bcebb51bb7bcaec21a3efdbb";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/he/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/he/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "he";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ff94efe5cd1fae04401d3d6fe364c309c24424c54b0e3787ad080ee1f468443e";
|
||||
sha256 = "85f2170d4f4e20f91631a717bf78f28ac7ca45d47bb4fbfef3e56aeba291fbfc";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/hr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "4109b3a8da687d2c4b8e9f6539f40e51475b43243ff1fcb19b78b5d6f6d7594d";
|
||||
sha256 = "2aa8960e96ebbb32be8f019f30d9eca73f69aefef0989b760223569ed8e1bca6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/hsb/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hsb/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hsb";
|
||||
arch = "linux-i686";
|
||||
sha256 = "58fd8901df13d7f7fed552326553ce632d36d07f1a0eed63f1e8b671cf519e5e";
|
||||
sha256 = "0c1f3803399da44d1c518057f191c3a544a3a3af3e2893be44e386edd43a5ae2";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/hu/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hu/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hu";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5145b3b137f6a905721a0cafe7b574b66f70891e75187fa082b852b67e195f03";
|
||||
sha256 = "2f357cb86c535ec8bbe657d6987b657ed1d0257d2c94620359cab42570d35983";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/hy-AM/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hy-AM/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "hy-AM";
|
||||
arch = "linux-i686";
|
||||
sha256 = "7c1e163a78dc5a0791a4a5a730a3ec9d58f24619f5274ce4d4b0197ca4936e5c";
|
||||
sha256 = "ab3582a00d26e83a6b01cc2daa17ab9cf9708de1e1dcf9260f827f4e3fdde100";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/id/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/id/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "id";
|
||||
arch = "linux-i686";
|
||||
sha256 = "57254afb187662b15338b0133afa378432c9018af4d843ea2f81c1ab40ab4940";
|
||||
sha256 = "8d5a97914ee601a47a89dd7bbe971f95a1b5bfb4a7047feb164875daa316417d";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/is/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/is/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "is";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ca0066237afa76925d294eb714bceeb7aaed0a512b9320ace604fcbe2d443f2c";
|
||||
sha256 = "089b7c67b70763d3e0080aba6a7d8201cd656e2c85bfe60739ad57b569b9c54a";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/it/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/it/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "it";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5c29da94a9408220824f4ab11a0f4e46bfa38230eaf1fef266372620ad9c4220";
|
||||
sha256 = "45aa6b0c5d3c00812efd815e197dc35a538002c63639d3b9857ca49f8e3e3692";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ja/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ja/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ja";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ab4685eae09e25018ab2a227d13642a47a0c0e8e6258975967449754bc16697a";
|
||||
sha256 = "ea52820e216c79d015dc8715e5341ec2fdd4c7e99f772086652721488681d69b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ka/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ka/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ka";
|
||||
arch = "linux-i686";
|
||||
sha256 = "152394685517d4e3e2ddb39ac6e297d14b4ead115ead325175797bf85d88bedd";
|
||||
sha256 = "6fc3af0c7a5b78350714d9f8f640f71c7094cc77590038cb6e817bbc40ccd74b";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/kab/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/kab/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "kab";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2f3e1b7db83247add30da0372d1c1c125231e689b5005ed5a06359a02aed4180";
|
||||
sha256 = "2b387a1fec481a3a98c0a62b3bcc06cf83c1b8504b46b89d1bec12572252db6e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/kk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/kk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "kk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d0d2caffb144d6f64cd73780267cea99dc54f4ae63a0fbcb5a86fc917674d0c8";
|
||||
sha256 = "55f5d12ac7b5c0aee1d1d616a871f9c7ed3f5bd882acb9fd9538a3d29a0e58ee";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ko/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ko/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ko";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f42bda1eb1f4a422d4f60345c7e6cda1b7bc57ac3d0899ab32fac16b394e4953";
|
||||
sha256 = "8090cf9a8ce14dfe2dfd65b985501ab9580ca28f923377dca8a57b0529b0eb23";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/lt/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/lt/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "lt";
|
||||
arch = "linux-i686";
|
||||
sha256 = "da55137e808a9c64cd6534afe8579b9077b3cfaccce918fca34f07ae2d74e6d8";
|
||||
sha256 = "17584b8859a7356022a39b14fe2ee81f5b1d37df3ef0fc9e2caeae297bff61ce";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ms/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ms/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ms";
|
||||
arch = "linux-i686";
|
||||
sha256 = "65a44f52ae326b7ad777f4e66d29825f3cb7aae5e18e2c645b5889d664889f2e";
|
||||
sha256 = "0a0119c8f5f458003aec3d4b933d9f4f1c9d7dca30a25886ec11079906a327a4";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/nb-NO/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nb-NO/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nb-NO";
|
||||
arch = "linux-i686";
|
||||
sha256 = "6d3abd2b862d3fb1e0285eb6851388a079c129d3132865eb424191f8064798c9";
|
||||
sha256 = "d22e4ff9b10f278fa382a6e045790231fcdca2b0adfb5678d50963afce2c1cad";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/nl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "90f78511b8ecee01c8e441c4c18cb1b40f7f9e2de0350be365dc317d8c06415f";
|
||||
sha256 = "882d4eec92d78f61b3fac34277bef4d9f331bfafc7c80fcd4518862a4e96ea7e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/nn-NO/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nn-NO/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "nn-NO";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2ec0103d3a89c3a57731542bd82e28e0da0b54c62ee0ab7755e395d991dfa5c5";
|
||||
sha256 = "b97c95e6e483185ae010d21ce9c977ef71209363ceba56a91ebbf26e62febda6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/pa-IN/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pa-IN/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pa-IN";
|
||||
arch = "linux-i686";
|
||||
sha256 = "d169f161bdb32a2ce6e25df9d5a643de9ac4e1345dc90cf1a54560b12bfb03ae";
|
||||
sha256 = "804f3ea53314ff6ea73d16a7b46f37e603161bdcd60272d7fbe1ce16a3588d62";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/pl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5e7fbd12291d16f98f996eb0d3660902c9cddf9849e7082a1963b73afe0e4ec2";
|
||||
sha256 = "faedc7b47d029583c3e1d2549b3f85ed37d933e545aeb5782b6c7db59cda71e1";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/pt-BR/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pt-BR/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pt-BR";
|
||||
arch = "linux-i686";
|
||||
sha256 = "eed9d4a6378496dac0fefdf70f3c2f98d56c4daa1300bc041a3974d03303a0f6";
|
||||
sha256 = "4b1dfb1ff39d6200502746ffbdd1c97267c496276d6d019f27f8788be67c8dbc";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/pt-PT/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pt-PT/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "pt-PT";
|
||||
arch = "linux-i686";
|
||||
sha256 = "7fef461f1a2b0239c2825a9fdd2dc5237b5b5b0cffa0c9675451449a9e69372c";
|
||||
sha256 = "ca48dea62d3934197317e737a68ed685d60fcd21274022fbf74956e7b5767b26";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/rm/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/rm/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "rm";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f3cf46324d1f1e5ab7e858fb3f203ac6762ba98986f510486146fb745535123e";
|
||||
sha256 = "2c71fcd755e02377499ee364c5777c9dd02e856de1923417fd1caa22a5fbae72";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ro/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ro/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ro";
|
||||
arch = "linux-i686";
|
||||
sha256 = "921285ad32ed408229b07d34d358cc6dd78bc519cb60370fff01525a7cb0e96e";
|
||||
sha256 = "0c28dd6d2345432beba854984384c7ef48eb33e93860ce601f977ba95286837e";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/ru/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ru/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "ru";
|
||||
arch = "linux-i686";
|
||||
sha256 = "37f28db57fc4d101df92ff5f2ca1ed800de35ecc6b3b00480bc8ee67805f47d0";
|
||||
sha256 = "98b29b6d65f93a265a1b77a717b49445f8a51209a1bd83a160ecb51ff4217a91";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/si/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/si/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "si";
|
||||
arch = "linux-i686";
|
||||
sha256 = "96d2ff616eae7bba706bd3af8fa5de0dc2444c0b57b612775e61b0e23007404c";
|
||||
sha256 = "c8b63b0fe37222493b1f35fbdd9aeedd4af9bb10585ed9ec2f2dc1e2c52eba40";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/sk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5f3ba3d2bcf1437373df7553dd4296511ea4845b87e0c02e7714f9838cadf281";
|
||||
sha256 = "c9d7715b8330e35ebefc386d8258c6ab00a12f14400fe01ad61037cd396b2cfa";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/sl/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sl/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sl";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f00c798638bc88a107f4ebb0feb0156f2d7667a040ef8fe9104340997df83741";
|
||||
sha256 = "2403387bbaab64e925c2729076ea039206d8b4e6964e7aa825877074eb6ccf57";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/sq/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sq/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sq";
|
||||
arch = "linux-i686";
|
||||
sha256 = "42e2fb9ed08ce138d50e0fdddfc67d9feccbf6e5aa4cfd50d81f2ed493cb2dee";
|
||||
sha256 = "a8e83d18620b057c6981a170fafcef44f0e7800168c305abeb3ed6c5a936220c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/sr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "72dc5e5f0024c17e4e1b30b3990d1cd1f1fd240da5c32ca4ddf2737290fa4bac";
|
||||
sha256 = "6cfd9ddd429240f48c8f478d785b881047e262ebe6d3460f7780f57248b22da6";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/sv-SE/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sv-SE/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "sv-SE";
|
||||
arch = "linux-i686";
|
||||
sha256 = "2f3c882db2034adf74d638fc7a6055bb421fe08f890ac6d3c89433a818b06ca3";
|
||||
sha256 = "e8db182f239050020f91b1aab23514245c04d3aab977df6215165c401c010ce0";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/th/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/th/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "th";
|
||||
arch = "linux-i686";
|
||||
sha256 = "3830e09d6aab98fddec1e60fea92ec3c5ba51dee63225c219010a37bc80f633a";
|
||||
sha256 = "20d5cc43be200cc6359c56a3988f76583fb6887834bed0512125296f2c25b0f9";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/tr/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/tr/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "tr";
|
||||
arch = "linux-i686";
|
||||
sha256 = "bdf2cf1a6a0c6cb8ae6d598adf30d84d1f43f399a2135cb041a17329fab78f73";
|
||||
sha256 = "8e74feb16b9c23689fec026e88a1749bc2c78fba0cf048db0228168f93fa7d2c";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/uk/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/uk/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "uk";
|
||||
arch = "linux-i686";
|
||||
sha256 = "4bd587d7bfcd2ec6bc7516b48199c92dac1f6feac4c66779cae231a7fd436df3";
|
||||
sha256 = "6bd6d8c2b346adf03f0a12a84cdcd68b7e3d7e4c1caa7ebf23f5ecd90b0c0513";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/uz/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/uz/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "uz";
|
||||
arch = "linux-i686";
|
||||
sha256 = "5326d6b4f0dc90925bd26c3300ab5441a0edf706229cbde7121cfadeb6b1457f";
|
||||
sha256 = "b227ca8402b6ba1db029a4964ca4e3a28403ce5ade7bcb6cb9157665759426aa";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/vi/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/vi/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "vi";
|
||||
arch = "linux-i686";
|
||||
sha256 = "ea8db723cb46c60182c4fd557fbb72872cd112c707af66fae20b59a50c595d80";
|
||||
sha256 = "09962111baf14ad41f6277b3f625a38458ba07fbdbf17673807f29dd347e8eac";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/zh-CN/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/zh-CN/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "zh-CN";
|
||||
arch = "linux-i686";
|
||||
sha256 = "f2d5b1463c426dad638480782473442b6208cefe8fdd0eb74a6e01f75fbe6a52";
|
||||
sha256 = "b86d0b18a3d87dc3fd018672f3bb8fa8eb5105fc56d1c4161ce324c6babc8286";
|
||||
}
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.2/linux-i686/zh-TW/thunderbird-78.2.2.tar.bz2";
|
||||
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/zh-TW/thunderbird-78.3.1.tar.bz2";
|
||||
locale = "zh-TW";
|
||||
arch = "linux-i686";
|
||||
sha256 = "3a0bff43f1b6b158ee8f5a80e5457fa17da09ba2270d84089a948b677f228ca7";
|
||||
sha256 = "4e09553f18e9955b7072326b2e7f40bbb2e19f13f137742a0d9b29664f570d8a";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -70,13 +70,13 @@ assert waylandSupport -> gtk3Support == true;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "thunderbird";
|
||||
version = "78.2.2";
|
||||
version = "78.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
"mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
||||
sha512 =
|
||||
"2cbpyx9jn23kc289z8ikzx3035g5z6p076izvld50mj3kqc0v4n3igih3rv1lsdwysik8c0ax5w3pa037lnrp6ridgbnix34gxr4nw6";
|
||||
"16b05e51776ba16503bc5fba02a6d0b5050a206e264a4707544354ad76af61902fd2dcf5d97b82b432dc69362ccd18543a0acccd80e06648e6c6f470886da450";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -147,13 +147,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patches = [
|
||||
./no-buildconfig.patch
|
||||
(fetchpatch { # included in 78.3.0
|
||||
name = "empty-UI.patch";
|
||||
url = "https://hg.mozilla.org/releases/comm-esr78/raw-rev/f085dbd311bc";
|
||||
# paths: {a,b}/foo -> {a,b}/comm/foo
|
||||
stripLen = 1; extraPrefix = "comm/";
|
||||
sha256 = "0x9pw62w93kyd99q9wi2d8llcfzbrqib7fp5kcrjidvhnkxpr6j7";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -12,18 +12,20 @@
|
||||
, qtkeychain
|
||||
, qttools
|
||||
, qtwebengine
|
||||
, qtquickcontrols2
|
||||
, qtgraphicaleffects
|
||||
, sqlite
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "nextcloud-client";
|
||||
version = "2.6.5";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nextcloud";
|
||||
repo = "desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "0r2n9l383drnnzbyywnbqljh9kxm3kz4g0mv7bnrp6b10b2ma3pg";
|
||||
sha256 = "ROzaiRa9Odq4lXuHL7nbE0S49d0wxmDgm01qI1WM+WM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -44,6 +46,8 @@ mkDerivation rec {
|
||||
qtkeychain
|
||||
qttools
|
||||
qtwebengine
|
||||
qtquickcontrols2
|
||||
qtgraphicaleffects
|
||||
sqlite
|
||||
];
|
||||
|
||||
|
@ -13,11 +13,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openbazaar-client";
|
||||
version = "2.4.7";
|
||||
version = "2.4.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
|
||||
sha256 = "04wwljaiqm8rsdrzngqrzrjzfrjsrfsaa60c904zhbhmsqc7y4f1";
|
||||
sha256 = "0c8ar0rd4yydy4rd4hqafljrhi40v3cwhc9v7fjbrfhcx1ikmf64";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -1,92 +0,0 @@
|
||||
{ stdenv, fetchgit, libextractor, libmicrohttpd, libgcrypt
|
||||
, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig
|
||||
, libxml2, ncurses, gettext, libunistring, libidn
|
||||
, makeWrapper, autoconf, automake, texinfo, which
|
||||
, withVerbose ? false }:
|
||||
|
||||
let
|
||||
rev = "ce2864cfaa27e55096b480bf35db5f8cee2a5e7e";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "gnunet-git-${rev}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gnunet.org/git/gnunet.git";
|
||||
inherit rev;
|
||||
sha256 = "0gbw920m9v4b3425c0d1h7drgl2m1fni1bwjn4fwqnyz7kdqzsgl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libextractor libmicrohttpd libgcrypt gmp curl libtool
|
||||
zlib adns sqlite libxml2 ncurses libidn
|
||||
pkgconfig gettext libunistring makeWrapper
|
||||
autoconf automake texinfo which
|
||||
];
|
||||
|
||||
configureFlags = stdenv.lib.optional withVerbose "--enable-logging=verbose ";
|
||||
|
||||
preConfigure = ''
|
||||
# Brute force: since nix-worker chroots don't provide
|
||||
# /etc/{resolv.conf,hosts}, replace all references to `localhost'
|
||||
# by their IPv4 equivalent.
|
||||
for i in $(find . \( -name \*.c -or -name \*.conf \) \
|
||||
-exec grep -l '\<localhost\>' {} \;)
|
||||
do
|
||||
echo "$i: substituting \`127.0.0.1' to \`localhost'..."
|
||||
sed -i "$i" -e's/\<localhost\>/127.0.0.1/g'
|
||||
done
|
||||
|
||||
# Make sure the tests don't rely on `/tmp', for the sake of chroot
|
||||
# builds.
|
||||
for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \
|
||||
-exec grep -l /tmp {} \;)
|
||||
do
|
||||
echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
|
||||
substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
|
||||
done
|
||||
|
||||
# Ensure NSS installation works fine
|
||||
configureFlags="$configureFlags --with-nssdir=$out/lib"
|
||||
|
||||
sh contrib/pogen.sh
|
||||
sh bootstrap
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
/* FIXME: Tests must be run this way, but there are still a couple of
|
||||
failures.
|
||||
|
||||
postInstall =
|
||||
'' export GNUNET_PREFIX="$out"
|
||||
export PATH="$out/bin:$PATH"
|
||||
make -k check
|
||||
'';
|
||||
*/
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
|
||||
|
||||
longDescription = ''
|
||||
GNUnet is a framework for secure peer-to-peer networking that
|
||||
does not use any centralized or otherwise trusted services. A
|
||||
first service implemented on top of the networking layer
|
||||
allows anonymous censorship-resistant file-sharing. Anonymity
|
||||
is provided by making messages originating from a peer
|
||||
indistinguishable from messages that the peer is routing. All
|
||||
peers act as routers and use link-encrypted connections with
|
||||
stable bandwidth utilization to communicate with each other.
|
||||
GNUnet uses a simple, excess-based economic model to allocate
|
||||
resources. Peers in GNUnet monitor each others behavior with
|
||||
respect to resource usage; peers that contribute to the
|
||||
network are rewarded with better service.
|
||||
'';
|
||||
|
||||
homepage = "https://gnunet.org/";
|
||||
|
||||
license = licenses.agpl3Plus;
|
||||
|
||||
maintainers = with stdenv.lib.maintainers; [ ];
|
||||
platforms = platforms.gnu ++ platforms.linux;
|
||||
};
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper
|
||||
, enablePlayer ? true, vlc ? null, qt5, lib }:
|
||||
, enablePlayer ? true, libvlc ? null, qt5, lib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tribler";
|
||||
@ -50,9 +50,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
${stdenv.lib.optionalString enablePlayer ''
|
||||
substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${vlc}/lib/libvlc.so')"
|
||||
substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')"
|
||||
substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "if vlc and vlc.plugin_path" "if vlc"
|
||||
substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${vlc}/lib/vlc/plugins'"
|
||||
substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'"
|
||||
''}
|
||||
'';
|
||||
|
||||
@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
|
||||
--run 'cd $_TRIBLERPATH' \
|
||||
--add-flags "-O $out/run_tribler.py" \
|
||||
${stdenv.lib.optionalString enablePlayer ''
|
||||
--prefix LD_LIBRARY_PATH : ${vlc}/lib
|
||||
--prefix LD_LIBRARY_PATH : ${libvlc}/lib
|
||||
''}
|
||||
|
||||
mkdir -p $out/share/applications $out/share/icons $out/share/man/man1
|
||||
|
@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
version = "3.2.5";
|
||||
version = "3.2.7";
|
||||
variant = if withQt then "qt" else "cli";
|
||||
pcap = libpcap.override { withBluez = stdenv.isLinux; };
|
||||
|
||||
@ -21,7 +21,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
|
||||
sha256 = "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx";
|
||||
sha256 = "1nkhglzxj05hwhgzrgan4glv0z67rmasf9djx1dmqicwdnw2z0xy";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
@ -12,7 +12,7 @@
|
||||
, cups
|
||||
, dbus
|
||||
, expat
|
||||
, ffmpeg
|
||||
, ffmpeg_3
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gdk-pixbuf
|
||||
@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
|
||||
cairo
|
||||
dbus.lib
|
||||
expat
|
||||
ffmpeg
|
||||
ffmpeg_3
|
||||
fontconfig
|
||||
freetype
|
||||
gdk-pixbuf
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "stellarium";
|
||||
version = "0.20.2";
|
||||
version = "0.20.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Stellarium";
|
||||
repo = "stellarium";
|
||||
rev = "v${version}";
|
||||
sha256 = "0bpxv781chx5acjh9ni5l9dlnvn6jgkqylq09885g6j4gi3q56br";
|
||||
sha256 = "08abrshrzhdfcg3b2vzfmnq8fhzrasadg1ajs81kcw96yjc59vak";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
|
||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
gcc -O3 -ffast-math -finline-functions -o aragorn aragorn${version}.c
|
||||
$CC -O3 -ffast-math -finline-functions -o aragorn aragorn${version}.c
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
76
pkgs/applications/science/electronics/openems/default.nix
Normal file
76
pkgs/applications/science/electronics/openems/default.nix
Normal file
@ -0,0 +1,76 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, csxcad
|
||||
, fparser
|
||||
, tinyxml
|
||||
, hdf5
|
||||
, vtk
|
||||
, boost
|
||||
, zlib
|
||||
, cmake
|
||||
, octave
|
||||
, gl2ps
|
||||
, withQcsxcad ? true
|
||||
, withMPI ? false
|
||||
, withHyp2mat ? true
|
||||
, qcsxcad ? null
|
||||
, openmpi ? null
|
||||
, hyp2mat ? null
|
||||
}:
|
||||
|
||||
assert withQcsxcad -> qcsxcad != null;
|
||||
assert withMPI -> openmpi != null;
|
||||
assert withHyp2mat -> hyp2mat != null;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "openems";
|
||||
version = "unstable-2020-02-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thliebig";
|
||||
repo = "openEMS";
|
||||
rev = "ba793ac84e2f78f254d6d690bb5a4c626326bbfd";
|
||||
sha256 = "1dca6b6ccy771irxzsj075zvpa3dlzv4mjb8xyg9d889dqlgyl45";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
cmakeFlags = lib.optionals withMPI [ "-DWITH_MPI=ON" ];
|
||||
|
||||
buildInputs = [
|
||||
fparser
|
||||
tinyxml
|
||||
hdf5
|
||||
vtk
|
||||
boost
|
||||
zlib
|
||||
csxcad
|
||||
(octave.override { inherit hdf5; }) ]
|
||||
++ lib.optionals withQcsxcad [ qcsxcad ]
|
||||
++ lib.optionals withMPI [ openmpi ]
|
||||
++ lib.optionals withHyp2mat [ hyp2mat ];
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/share/openEMS/matlab/setup.m \
|
||||
--replace /usr/lib ${hdf5}/lib \
|
||||
--replace /usr/include ${hdf5}/include
|
||||
|
||||
${octave}/bin/mkoctfile -L${hdf5}/lib -I${hdf5}/include \
|
||||
-lhdf5 $out/share/openEMS/matlab/h5readatt_octave.cc \
|
||||
-o $out/share/openEMS/matlab/h5readatt_octave.oct
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open Source Electromagnetic Field Solver";
|
||||
homepage = "http://openems.de/index.php/Main_Page.html";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ matthuszagh ];
|
||||
platforms = platforms.linux;
|
||||
badPlatforms = platforms.aarch64;
|
||||
};
|
||||
}
|
@ -1,7 +1,17 @@
|
||||
{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses
|
||||
, bzip2, zlib
|
||||
# Test inputs
|
||||
, perl
|
||||
}:
|
||||
|
||||
let
|
||||
iverilog-test = fetchFromGitHub {
|
||||
owner = "steveicarus";
|
||||
repo = "ivtest";
|
||||
rev = "6882cb8ec08926c4e356c6092f0c5f8c23328d5c";
|
||||
sha256 = "04sj5nqzwls1y760kgnd9c2whkcrr8kvj9lisd5rvk0w580kjb2x";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "iverilog";
|
||||
version = "unstable-2020-08-24";
|
||||
@ -15,11 +25,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace configure.in \
|
||||
--replace "AC_CHECK_LIB(termcap, tputs)" "AC_CHECK_LIB(termcap, tputs)"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
chmod +x $PWD/autoconf.sh
|
||||
$PWD/autoconf.sh
|
||||
@ -29,11 +34,32 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ readline ncurses bzip2 zlib ];
|
||||
|
||||
# tests from .travis.yml
|
||||
doCheck = true; # runs ``make check``
|
||||
# most tests pass, but some that rely on exact text of floating-point numbers fail on aarch64.
|
||||
doInstallCheck = !stdenv.isAarch64;
|
||||
installCheckInputs = [ perl ];
|
||||
|
||||
installCheckPhase = ''
|
||||
# copy tests to allow writing results
|
||||
export TESTDIR=$(mktemp -d)
|
||||
cp -r ${iverilog-test}/* $TESTDIR
|
||||
|
||||
pushd $TESTDIR
|
||||
|
||||
# Run & check tests
|
||||
PATH=$out/bin:$PATH perl vvp_reg.pl
|
||||
# Check the tests, will error if unexpected tests fail. Some failures MIGHT be normal.
|
||||
diff regression_report-devel.txt regression_report.txt
|
||||
PATH=$out/bin:$PATH perl vpi_reg.pl
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Icarus Verilog compiler";
|
||||
repositories.git = "https://github.com/steveicarus/iverilog.git";
|
||||
homepage = "http://iverilog.icarus.com/";
|
||||
license = licenses.lgpl21;
|
||||
license = with licenses; [ gpl2Plus lgpl21Plus] ;
|
||||
maintainers = with maintainers; [ winden ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cytoscape";
|
||||
version = "3.8.0";
|
||||
version = "3.8.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
|
||||
sha256 = "0kksx12m83cjprdygmcc286990byf25yqfx5s7c07cizc21aavyg";
|
||||
sha256 = "006g0w29sccg5h0zlrxdp3lx4vx1bfdhx2cms6aah85r5b82wgkf";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -15,8 +15,7 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
buildInputs = [ ncurses5 ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
#checkFlagsArray = [ "--test-threads=1" ];
|
||||
doCheck = false;
|
||||
cargoParallelTestThreads = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, libdvdread, libdvdcss, dvdauthor }:
|
||||
{ stdenv, fetchurl, fetchpatch, libdvdread, libdvdcss, dvdauthor }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.4.2";
|
||||
@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ libdvdread libdvdcss dvdauthor ];
|
||||
|
||||
# see https://bugs.launchpad.net/dvdbackup/+bug/1869226
|
||||
patchFlags = [ "-p0" ];
|
||||
patches = [ (fetchpatch {
|
||||
url = "https://git.slackbuilds.org/slackbuilds/plain/multimedia/dvdbackup/patches/dvdbackup-dvdread-6.1.patch";
|
||||
sha256 = "1v3xl01bwq1592i5x5dyh95r0mmm1zvvwf92fgjc0smr0k3davfz";
|
||||
})];
|
||||
|
||||
meta = {
|
||||
description = "A tool to rip video DVDs from the command line";
|
||||
homepage = "http://dvdbackup.sourceforge.net/";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, libhdhomerun, vlc, gcc, gnumake, pkg-config, gtk2 }:
|
||||
{ stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hdhomerun-config-gui";
|
||||
|
@ -20,7 +20,7 @@
|
||||
, xorg
|
||||
, makeWrapper
|
||||
, pkgconfig
|
||||
, vlc
|
||||
, libvlc
|
||||
, mbedtls
|
||||
|
||||
, scriptingSupport ? true
|
||||
@ -65,7 +65,7 @@ in mkDerivation rec {
|
||||
qtsvg
|
||||
speex
|
||||
x264
|
||||
vlc
|
||||
libvlc
|
||||
makeWrapper
|
||||
mbedtls
|
||||
]
|
||||
@ -84,7 +84,7 @@ in mkDerivation rec {
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/obs \
|
||||
--prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${vlc}/lib"
|
||||
--prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${libvlc}/lib"
|
||||
'';
|
||||
|
||||
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
|
||||
|
@ -1,20 +1,21 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, mkDerivation, SDL2, frei0r, gettext, mlt
|
||||
, jack1, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets
|
||||
, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
|
||||
, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools, genericUpdater
|
||||
, common-updater-scripts
|
||||
}:
|
||||
|
||||
assert stdenv.lib.versionAtLeast libmlt.version "6.20.0";
|
||||
assert stdenv.lib.versionAtLeast mlt.version "6.20.0";
|
||||
assert stdenv.lib.versionAtLeast libmlt.version "6.22.1";
|
||||
assert stdenv.lib.versionAtLeast mlt.version "6.22.1";
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "shotcut";
|
||||
version = "20.07.11";
|
||||
version = "20.09.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mltframework";
|
||||
repo = "shotcut";
|
||||
rev = "v${version}";
|
||||
sha256 = "0ajg0bpdckhvmmsliy1xky9p4mdypnaw3z3cvfsdrm0zcihbgazv";
|
||||
sha256 = "1q7ba6j3b2yzn3y5z9s5ldh15wrvhi6vymhwm910nqa5379dcc21";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -47,6 +48,12 @@ mkDerivation rec {
|
||||
cp -r src/qml $out/share/shotcut/
|
||||
'';
|
||||
|
||||
passthru.updateScript = genericUpdater {
|
||||
inherit pname version;
|
||||
versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
|
||||
rev-prefix = "v";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A free, open source, cross-platform video editor";
|
||||
longDescription = ''
|
||||
|
@ -99,6 +99,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "http://www.videolan.org/vlc/";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
broken = versionAtLeast qtbase.version "5.15";
|
||||
broken = if qtbase != null then versionAtLeast qtbase.version "5.15" else false;
|
||||
};
|
||||
}
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "0.18";
|
||||
version = "0.19";
|
||||
pname = "charliecloud";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hpc";
|
||||
repo = "charliecloud";
|
||||
rev = "v${version}";
|
||||
sha256 = "0x2kvp95ld0yii93z9i0k9sknfx7jkgy4rkw9l369fl7f73ghsiq";
|
||||
sha256 = "1rmvm0s1jdpzfg32b3hwsbdkzws7gsy4xq227hmzv3n2dv64svm6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook makeWrapper ];
|
||||
|
@ -4,7 +4,7 @@ with lib;
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "containerd";
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
# git commit for the above version's tag
|
||||
commit = "7ad184331fa3e55e52b890ea95e65ba581ae3429";
|
||||
|
||||
@ -12,7 +12,7 @@ buildGoPackage rec {
|
||||
owner = "containerd";
|
||||
repo = "containerd";
|
||||
rev = "v${version}";
|
||||
sha256 = "1ajns679ck5yp6vmf39pyshzf8jijw5fcg5biixkj54jhj3bv1sq";
|
||||
sha256 = "1k6dqaidnldf7kpxdszf0wn6xb8m6vaizm2aza81fri1q0051213";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/containerd/containerd";
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "podman";
|
||||
version = "2.1.0";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman";
|
||||
rev = "v${version}";
|
||||
sha256 = "033pdkrmdsk33n1mglpcpl3g9i62raw47wpab752qhbmpy1c49lr";
|
||||
sha256 = "0cy842wlyasxlxnwxkwhwgj148s30kfxnhgxa6ar26fly432aa68";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user