Merge branch 'staging-next' into staging

This commit is contained in:
Vladimír Čunát 2019-09-16 19:25:54 +02:00
commit 268872d996
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
289 changed files with 5926 additions and 3369 deletions

10
.github/CODEOWNERS vendored
View file

@ -58,11 +58,11 @@
/doc/languages-frameworks/python.section.md @FRidh
# Haskell
/pkgs/development/compilers/ghc @basvandijk
/pkgs/development/haskell-modules @basvandijk
/pkgs/development/haskell-modules/default.nix @basvandijk
/pkgs/development/haskell-modules/generic-builder.nix @basvandijk
/pkgs/development/haskell-modules/hoogle.nix @basvandijk
/pkgs/development/compilers/ghc @basvandijk @cdepillabout
/pkgs/development/haskell-modules @basvandijk @cdepillabout
/pkgs/development/haskell-modules/default.nix @basvandijk @cdepillabout
/pkgs/development/haskell-modules/generic-builder.nix @basvandijk @cdepillabout
/pkgs/development/haskell-modules/hoogle.nix @basvandijk @cdepillabout
# Perl
/pkgs/development/interpreters/perl @volth

View file

@ -416,7 +416,7 @@ overrides = self: super: rec {
<para>
Please note that the <literal>citrix_receiver</literal> package has been deprecated since its
development was <link xlink:href="https://docs.citrix.com/en-us/citrix-workspace-app.html">discontinued by upstream</link>
and will be replaced by <link xlink:href="https://www.citrix.com/products/workspace-app/">the citrix workspace app</link>.
and has been replaced by <link xlink:href="https://www.citrix.com/products/workspace-app/">the citrix workspace app</link>.
</para>
</note>
<link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> and
@ -458,7 +458,7 @@ overrides = self: super: rec {
<title>Custom certificates</title>
<para>
The <literal>Citrix Receiver</literal> and <literal>Citrix Workspace App</literal>
The <literal>Citrix Workspace App</literal>
in <literal>nixpkgs</literal> trust several certificates
<link xlink:href="https://curl.haxx.se/docs/caextract.html">from the
Mozilla database</link> by default. However several companies using Citrix
@ -472,7 +472,7 @@ overrides = self: super: rec {
<programlisting>
<![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
citrix_workspace.override { # the same applies for `citrix_receiver` if used.
citrix_workspace.override {
inherit extraCerts;
}]]>
</programlisting>

View file

@ -2411,7 +2411,7 @@ addEnvHooks "$hostOffset" myBashFunction
<para>
The Bintools Wrapper was only just recently split off from CC Wrapper,
so the division of labor is still being worked out. For example, it
shouldn't care about about the C standard library, but just take a
shouldn't care about the C standard library, but just take a
derivation with the dynamic loader (which happens to be the glibc on
linux). Dependency finding however is a task both wrappers will continue
to need to share, and probably the most important to understand. It is

View file

@ -1109,10 +1109,6 @@
githubId = 977929;
name = "Cody Allen";
};
cf6b88f = {
email = "elmo.todurov@eesti.ee";
name = "Elmo Todurov";
};
cfouche = {
email = "chaddai.fouche@gmail.com";
github = "Chaddai";
@ -1219,6 +1215,12 @@
githubId = 3956062;
name = "Simon Lackerbauer";
};
cizra = {
email = "todurov+nix@gmail.com";
github = "cizra";
githubId = 2131991;
name = "Elmo Todurov";
};
ck3d = {
email = "ck3d@gmx.de";
github = "ck3d";
@ -4156,11 +4158,11 @@
email = "miltador@yandex.ua";
name = "Vasiliy Solovey";
};
mimadrid = {
email = "mimadrid@ucm.es";
github = "mimadrid";
mimame = {
email = "miguel.madrid.mencia@gmail.com";
github = "mimame";
githubId = 3269878;
name = "Miguel Madrid";
name = "Miguel Madrid Mencía";
};
minijackson = {
email = "minijackson@riseup.net";
@ -6649,7 +6651,7 @@
githubId = 1525767;
name = "Vaibhav Sagar";
};
valebes = {
valebes = {
email = "valebes@gmail.com";
github = "valebes";
githubid = 10956211;

View file

@ -11,13 +11,15 @@ import click
import requests
from pyquery import PyQuery as pq
def map_dict (f, d):
for k,v in d.items():
d[k] = f(v)
maintainers_json = subprocess.check_output([
'nix-instantiate', '-E', 'import ./maintainers/maintainer-list.nix {}', '--eval', '--json'
'nix-instantiate', '-A', 'lib.maintainers', '--eval', '--strict', '--json'
])
maintainers = json.loads(maintainers_json)
MAINTAINERS = {v: k for k, v in maintainers.items()}
MAINTAINERS = map_dict(lambda v: v.get('github', None), maintainers)
def get_response_text(url):
return pq(requests.get(url).text) # IO
@ -38,30 +40,39 @@ def get_maintainers(attr_name):
'-A',
'.'.join(nixname[1:]) + '.meta',
EVAL_FILE[nixname[0]],
'--arg',
'nixpkgs',
'./.',
'--json'])
meta = json.loads(meta_json)
if meta.get('maintainers'):
return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)]
return meta.get('maintainers', [])
except:
return []
def filter_github_users(maintainers):
github_only = []
for i in maintainers:
if i.get('github'):
github_only.append(i)
return github_only
def print_build(table_row):
a = pq(table_row)('a')[1]
print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True)
maintainers = get_maintainers(a.text)
if maintainers:
print(" - maintainers: {}".format(", ".join(map(lambda u: '@' + u, maintainers))))
job_maintainers = filter_github_users(get_maintainers(a.text))
if job_maintainers:
print(" - maintainers: {}".format(" ".join(map(lambda u: '@' + u.get('github'), job_maintainers))))
# TODO: print last three persons that touched this file
# TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked?
sys.stdout.flush()
@click.command()
@click.option(
'--jobset',
default="nixos/release-17.09",
help='Hydra project like nixos/release-17.09')
default="nixos/release-19.09",
help='Hydra project like nixos/release-19.09')
def cli(jobset):
"""
Given a Hydra project, inspect latest evaluation
@ -93,6 +104,7 @@ def cli(jobset):
print_build(tr)
if __name__ == "__main__":
try:
cli()

View file

@ -7,10 +7,12 @@
<refmiscinfo class="source">NixOS</refmiscinfo>
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
</refmeta>
<refnamediv>
<refname><command>nixos-rebuild</command>
</refname><refpurpose>reconfigure a NixOS machine</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>nixos-rebuild</command><group choice='req'>
@ -74,6 +76,7 @@
<arg>
<option>--builders</option> <replaceable>builder-spec</replaceable>
</arg>
<sbr />
<arg>
<group choice='req'>
@ -121,8 +124,10 @@
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection>
<title>Description</title>
<para>
This command updates the system so that it corresponds to the configuration
specified in <filename>/etc/nixos/configuration.nix</filename>. Thus, every
@ -133,9 +138,11 @@
(re)starts any system services if needed. Please note that user services need
to be started manually as they aren't detected by the activation script at the moment.
</para>
<para>
This command has one required argument, which specifies the desired
operation. It must be one of the following:
<variablelist>
<varlistentry>
<term>
@ -152,6 +159,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>boot</option>
@ -165,6 +173,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>test</option>
@ -179,6 +188,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>build</option>
@ -197,6 +207,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>dry-build</option>
@ -208,6 +219,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>dry-activate</option>
@ -222,6 +234,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>edit</option>
@ -232,6 +245,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>build-vm</option>
@ -249,12 +263,14 @@
<prompt>$ </prompt>./result/bin/run-*-vm
</screen>
</para>
<para>
The VM is implemented using the <literal>qemu</literal> package. For
best performance, you should load the <literal>kvm-intel</literal> or
<literal>kvm-amd</literal> kernel modules to get hardware
virtualisation.
</para>
<para>
The VM mounts the Nix store of the host through the 9P file system. The
host Nix store is read-only, so Nix commands that modify the Nix store
@ -262,6 +278,7 @@
<command>nixos-rebuild</command>; to change the VMs configuration,
you must halt the VM and re-run the commands above.
</para>
<para>
The VM has its own <literal>ext3</literal> root file system, which is
automatically created when the VM is first started, and is persistent
@ -272,6 +289,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>build-vm-with-bootloader</option>
@ -294,11 +312,13 @@
</variablelist>
</para>
</refsection>
<refsection>
<title>Options</title>
<para>
This command accepts the following options:
</para>
<variablelist>
<varlistentry>
<term>
@ -310,6 +330,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--install-bootloader</option>
@ -321,6 +342,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--no-build-nix</option>
@ -336,6 +358,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--fast</option>
@ -349,6 +372,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--rollback</option>
@ -363,6 +387,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--builders</option> <replaceable>builder-spec</replaceable>
@ -382,6 +407,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--profile-name</option>
@ -412,6 +438,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--build-host</option>
@ -437,6 +464,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--target-host</option>
@ -449,6 +477,7 @@
be accessible over ssh, and for the commands <option>switch</option>,
<option>boot</option> and <option>test</option> you need root access.
</para>
<para>
If <option>--build-host</option> is not explicitly specified,
<option>--build-host</option> will implicitly be set to the same value as
@ -457,6 +486,7 @@
place remotely (and no build artifacts will be copied to the local
machine).
</para>
<para>
You can include a remote user name in the host name
(<replaceable>user@host</replaceable>). You can also set ssh options by
@ -465,6 +495,7 @@
</listitem>
</varlistentry>
</variablelist>
<para>
In addition, <command>nixos-rebuild</command> accepts various Nix-related
flags, including <option>--max-jobs</option> / <option>-j</option>,
@ -473,8 +504,10 @@
<option>-v</option>. See the Nix manual for details.
</para>
</refsection>
<refsection>
<title>Environment</title>
<variablelist>
<varlistentry>
<term>
@ -487,6 +520,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>NIX_SSHOPTS</envar>
@ -500,9 +534,12 @@
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Files</title>
<variablelist>
<varlistentry>
<term>
<filename>/run/current-system</filename>
@ -513,6 +550,7 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<filename>/nix/var/nix/profiles/system</filename>
@ -524,8 +562,10 @@
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Bugs</title>
<para>

View file

@ -478,6 +478,12 @@
Prometheus 2 is now configured with <literal>services.prometheus</literal>.
</para>
</listitem>
<listitem>
<para>
Citrix Receiver (<literal>citrix_receiver</literal>) has been dropped in favor of Citrix Workspace
(<literal>citrix_workspace</literal>).
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -273,20 +273,6 @@ with lib;
(mkRenamedOptionModule [ "networking" "extraResolvconfConf" ] [ "networking" "resolvconf" "extraConfig" ])
(mkRenamedOptionModule [ "networking" "resolvconfOptions" ] [ "networking" "resolvconf" "extraOptions" ])
# Redshift
(mkChangedOptionModule [ "services" "redshift" "latitude" ] [ "location" "latitude" ]
(config:
let value = getAttrFromPath [ "services" "redshift" "latitude" ] config;
in if value == null then
throw "services.redshift.latitude is set to null, you can remove this"
else builtins.fromJSON value))
(mkChangedOptionModule [ "services" "redshift" "longitude" ] [ "location" "longitude" ]
(config:
let value = getAttrFromPath [ "services" "redshift" "longitude" ] config;
in if value == null then
throw "services.redshift.longitude is set to null, you can remove this"
else builtins.fromJSON value))
# Redis
(mkRemovedOptionModule [ "services" "redis" "user" ] "The redis module now is hardcoded to the redis user.")
(mkRemovedOptionModule [ "services" "redis" "dbpath" ] "The redis module now uses /var/lib/redis as data directory.")

View file

@ -275,6 +275,7 @@ in
${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O hydra hydra
touch ${baseDir}/.db-created
fi
echo "create extension if not exists pg_trgm" | ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} -- ${config.services.postgresql.package}/bin/psql hydra
''}
if [ ! -e ${cfg.gcRootsDir} ]; then
@ -379,6 +380,23 @@ in
};
};
systemd.services.hydra-notify =
{ wantedBy = [ "multi-user.target" ];
requires = [ "hydra-init.service" ];
after = [ "hydra-init.service" ];
restartTriggers = [ hydraConf ];
environment = env // {
PGPASSFILE = "${baseDir}/pgpass-queue-runner";
};
serviceConfig =
{ ExecStart = "@${cfg.package}/bin/hydra-notify hydra-notify";
# FIXME: run this under a less privileged user?
User = "hydra-queue-runner";
Restart = "always";
RestartSec = 5;
};
};
# If there is less than a certain amount of free disk space, stop
# the queue/evaluator to prevent builds from failing or aborting.
systemd.services.hydra-check-space =
@ -416,6 +434,8 @@ in
hydra-users hydra-queue-runner hydra
hydra-users hydra-www hydra
hydra-users root hydra
# The postgres user is used to create the pg_trgm extension for the hydra database
hydra-users postgres postgres
'';
services.postgresql.authentication = optionalString haveLocalDB

View file

@ -1,7 +1,5 @@
{ config, lib, pkgs, utils, ... }:
# TODO: support non-postgresql
with lib;
let
@ -806,8 +804,8 @@ in {
export otp="$(<'${cfg.secrets.otpFile}')"
export jws="$(<'${cfg.secrets.jwsFile}')"
${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
otp_key_base: $ENV.db,
db_key_base: $ENV.otp,
otp_key_base: $ENV.otp,
db_key_base: $ENV.db,
openid_connect_signing_key: $ENV.jws}}' \
> '${cfg.statePath}/config/secrets.yml'
)

View file

@ -8,6 +8,8 @@ let
dynamicHostsEnabled =
cfg.dynamicHosts.enable && cfg.dynamicHosts.hostsDirs != {};
delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
# /var/lib/misc is for dnsmasq.leases.
stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
@ -177,10 +179,11 @@ in {
basePackages = mkOption {
type = types.attrsOf types.package;
default = { inherit (pkgs)
networkmanager modemmanager wpa_supplicant crda
networkmanager modemmanager crda
networkmanager-openvpn networkmanager-vpnc
networkmanager-openconnect networkmanager-fortisslvpn
networkmanager-l2tp networkmanager-iodine; };
networkmanager-l2tp networkmanager-iodine; }
// optionalAttrs (!delegateWireless) { inherit (pkgs) wpa_supplicant; };
internal = true;
};
@ -377,8 +380,11 @@ in {
config = mkIf cfg.enable {
assertions = [
{ assertion = config.networking.wireless.enable == false;
message = "You can not use networking.networkmanager with networking.wireless";
{ assertion = config.networking.wireless.enable == true -> cfg.unmanaged != [];
message = ''
You can not use networking.networkmanager with networking.wireless.
Except if you mark some interfaces as <literal>unmanaged</literal> by NetworkManager.
'';
}
{ assertion = !dynamicHostsEnabled || (dynamicHostsEnabled && cfg.dns == "dnsmasq");
message = ''
@ -496,18 +502,17 @@ in {
aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
};
# Turn off NixOS' network management
networking = {
# Turn off NixOS' network management when networking is managed entirely by NetworkManager
networking = (mkIf (!delegateWireless) {
useDHCP = false;
# use mkDefault to trigger the assertion about the conflict above
# Use mkDefault to trigger the assertion about the conflict above
wireless.enable = mkDefault false;
};
}) // (mkIf cfg.enableStrongSwan {
networkmanager.packages = [ pkgs.networkmanager_strongswan ];
});
security.polkit.extraConfig = polkitConf;
networking.networkmanager.packages =
mkIf cfg.enableStrongSwan [ pkgs.networkmanager_strongswan ];
services.dbus.packages =
optional cfg.enableStrongSwan pkgs.strongswanNM ++ cfg.packages;

View file

@ -120,16 +120,24 @@ in {
'';
};
poolConfig = mkOption {
type = types.lines;
default = ''
pm = dynamic
pm.max_children = 32
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 500
poolSettings = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {
"pm" = "dynamic";
"pm.max_children" = "32";
"pm.start_servers" = "2";
"pm.min_spare_servers" = "2";
"pm.max_spare_servers" = "4";
"pm.max_requests" = "500";
};
description = ''
Options for nextcloud's PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
'';
};
poolConfig = mkOption {
type = types.nullOr types.lines;
default = null;
description = ''
Options for nextcloud's PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
'';
@ -287,6 +295,11 @@ in {
message = "Please specify exactly one of adminpass or adminpassFile";
}
];
warnings = optional (cfg.poolConfig != null) ''
Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
Please migrate your configuration to config.services.nextcloud.poolSettings.
'';
}
{ systemd.timers.nextcloud-cron = {
@ -423,7 +436,7 @@ in {
settings = mapAttrs (name: mkDefault) {
"listen.owner" = "nginx";
"listen.group" = "nginx";
};
} // cfg.poolSettings;
extraConfig = cfg.poolConfig;
};
};

View file

@ -9,6 +9,22 @@ let
in {
imports = [
(mkChangedOptionModule [ "services" "redshift" "latitude" ] [ "location" "latitude" ]
(config:
let value = getAttrFromPath [ "services" "redshift" "latitude" ] config;
in if value == null then
throw "services.redshift.latitude is set to null, you can remove this"
else builtins.fromJSON value))
(mkChangedOptionModule [ "services" "redshift" "longitude" ] [ "location" "longitude" ]
(config:
let value = getAttrFromPath [ "services" "redshift" "longitude" ] config;
in if value == null then
throw "services.redshift.longitude is set to null, you can remove this"
else builtins.fromJSON value))
(mkRenamedOptionModule [ "services" "redshift" "provider" ] [ "location" "provider" ])
];
options.services.redshift = {
enable = mkOption {
type = types.bool;

View file

@ -218,7 +218,7 @@ in
systemd.user = {
services.nixos-activation = {
description = "Run user specific NixOS activation";
description = "Run user-specific NixOS activation";
script = config.system.userActivationScripts.script;
unitConfig.ConditionUser = "!@system";
serviceConfig.Type = "oneshot";

View file

@ -88,7 +88,7 @@ let cfg = config.system.autoUpgrade; in
HOME = "/root";
} // config.networking.proxy.envVars;
path = [ pkgs.coreutils pkgs.gnutar pkgs.xz.bin pkgs.gitMinimal config.nix.package.out ];
path = with pkgs; [ coreutils gnutar xz.bin gzip gitMinimal config.nix.package.out ];
script = let
nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";

View file

@ -44,6 +44,8 @@ cat >data.json <<EOF
"enabled": "1",
"visible": "1",
"keepnr": "1",
"enableemail": true,
"emailoverride": "hydra@localhost",
"nixexprinput": "trivial",
"nixexprpath": "trivial.nix",
"inputs": {

View file

@ -8,8 +8,10 @@ let
trivialJob = pkgs.writeTextDir "trivial.nix" ''
{ trivial = builtins.derivation {
name = "trivial";
system = "x86_64-linux";
system = "${system}";
builder = "/bin/sh";
allowSubstitutes = false;
preferLocalBuild = true;
args = ["-c" "echo success > $out; exit 0"];
};
}
@ -53,11 +55,16 @@ let
notificationSender = "example@example.com";
package = pkgs.hydra.override { inherit nix; };
extraConfig = ''
email_notification = 1
'';
};
services.postfix.enable = true;
nix = {
buildMachines = [{
hostName = "localhost";
systems = [ "x86_64-linux" ];
systems = [ system ];
}];
binaryCaches = [];
@ -68,12 +75,12 @@ let
# let the system boot up
$machine->waitForUnit("multi-user.target");
# test whether the database is running
$machine->succeed("systemctl status postgresql.service");
$machine->waitForUnit("postgresql.service");
# test whether the actual hydra daemons are running
$machine->succeed("systemctl status hydra-queue-runner.service");
$machine->succeed("systemctl status hydra-init.service");
$machine->succeed("systemctl status hydra-evaluator.service");
$machine->succeed("systemctl status hydra-send-stats.service");
$machine->waitForUnit("hydra-init.service");
$machine->requireActiveUnit("hydra-queue-runner.service");
$machine->requireActiveUnit("hydra-evaluator.service");
$machine->requireActiveUnit("hydra-notify.service");
$machine->succeed("hydra-create-user admin --role admin --password admin");
@ -84,6 +91,8 @@ let
$machine->succeed("create-trivial-project.sh");
$machine->waitUntilSucceeds('curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq');
$machine->waitUntilSucceeds('journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"');
'';
})));

View file

@ -63,8 +63,8 @@ in
$client2->sendChars("y");
# Find clients in logs
$server->waitUntilSucceeds("grep -q 'client1' /var/log/murmur/murmurd.log");
$server->waitUntilSucceeds("grep -q 'client2' /var/log/murmur/murmurd.log");
$server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client1");
$server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client2");
$server->sleep(5); # wait to get screenshot
$client1->screenshot("screen1");

View file

@ -26,7 +26,7 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority");
$machine->sendKeys("alt-ctrl-x");
$machine->waitForWindow(qr/machine.*alice/);
$machine->waitForWindow(qr/alice.*machine/);
$machine->sleep(1);
$machine->screenshot("terminal");
$machine->waitUntilSucceeds("xmonad --restart");

View file

@ -20,7 +20,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "lollypop";
version = "1.1.4.14";
version = "1.1.4.16";
format = "other";
doCheck = false;
@ -29,7 +29,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}";
fetchSubmodules = true;
sha256 = "004cwbnxss6vmdsc6i0y83h3xbc2bzc0ra4z99pkizkky2mz6swj";
sha256 = "1azfxc1vc1j4ph0zrfsgz2gac1vwmbj65j6wjlxx3nr8kia4mccl";
};
nativeBuildInputs = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "wasabiwallet";
version = "1.1.6";
version = "1.1.9";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
sha256 = "1i7fhaj9chjlm7qg0h3azy4djnm9rxskbr3dzjj0n9rw8cjdqyq6";
sha256 = "1dz05ivhadfjfp4yfpz492401yznm3rlnx7g4nqzxwh4cmqzisrm";
};
dontBuild = true;

View file

@ -68,10 +68,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
inherit (self.melpaPackages) easy-kill;
};
elpy = super.elpy.overrideAttrs(old: {
propagatedUserEnvPkgs = old.propagatedUserEnvPkgs ++ [ external.elpy ];
});
emacsql-sqlite = super.emacsql-sqlite.overrideAttrs(old: {
buildInputs = old.buildInputs ++ [ pkgs.sqlite ];

View file

@ -1,9 +1,11 @@
{ stdenv, zlib, fetchFromGitHub, python3Packages }:
{ stdenv, zlib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
python3Packages.buildPythonApplication rec {
pname = "manuskript";
version = "0.9.0";
format = "other";
src = fetchFromGitHub {
repo = pname;
owner = "olivierkes";
@ -11,6 +13,8 @@ python3Packages.buildPythonApplication rec {
sha256 = "13y1s0kba1ib6g977n7h920kyr7abdw03kpal512m7iwa9g2kdw8";
};
nativeBuildInputs = [ wrapQtAppsHook ];
propagatedBuildInputs = [
python3Packages.pyqt5
python3Packages.lxml
@ -30,6 +34,10 @@ python3Packages.buildPythonApplication rec {
cp -r sample-projects/ $out/share/${pname}
'';
postFixup = ''
wrapQtApp $out/bin/manuskript
'';
doCheck = false;
meta = {

View file

@ -11,13 +11,13 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1iz36nhkg78346g5407df6jv4d1ydb22hhgs8hiaxql3hq5z7x3q";
x86_64-darwin = "1iijk0kx90rax39iradbbafyvd3vwnzsgvyb3s13asy42pbhhkky";
x86_64-linux = "1wxaxz2q4qizh6f23ipz8ihay6bpjdq0545vijqd84fqazcji6sq";
x86_64-darwin = "1gb9w3hvw3avn852an5v8m1ia64fkavnvaawjfc3455b248iiqvk";
}.${system};
in
callPackage ./generic.nix rec {
version = "1.38.0";
version = "1.38.1";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";

View file

@ -11,13 +11,13 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "09rq5jx7aicwp3qqi5pcv6bmyyp1rm5cfa96hvy3f4grhq1fi132";
x86_64-darwin = "1y1lbb3q5myaz7jg21x5sl0in8wr46brqj9zyrg3f16zahsagzr4";
x86_64-linux = "15m7mfb8gmx3pwydc37blj0rxwgmkrnqfj6y79rpqlr2dg92gwlb";
x86_64-darwin = "080k4fnfa5ylmmya6zprgci3gld9mrbqsfnk53hgcny91ykl5xj5";
}.${system};
in
callPackage ./generic.nix rec {
version = "1.38.0";
version = "1.38.1";
pname = "vscodium";
executableName = "codium";

View file

@ -1,18 +1,21 @@
{ stdenv, rustPlatform , fetchFromGitHub, Security }:
rustPlatform.buildRustPackage rec {
pname = "whitebox_tools";
version = "0.9.0";
version = "0.16.0";
src = fetchFromGitHub {
owner = "jblindsay";
repo = "whitebox-tools";
rev = "6221cdf327be70f0ee4f2053b76bfa01c3f37caa";
sha256 = "1423ga964mz7qkl88vkcm8qfprsksx04aq4sz9v5ghnmdzzvl89x";
rev = "v${version}";
sha256 = "1vs4hf2x3qjnffs9kjx56rzl67kpcy8xvng6p0r9fp9mfnblxg6j";
};
buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
cargoSha256 = "11m13h9b75xz8dfisfcykar53qsl1crrp3l75s73gkkkvczlfd24";
cargoSha256 = "1y3vk8bzsaisx7wrncjxcqdh355f2wk4n59vq5qgj37fph2zpy7f";
# failures: structures::polyline::test::test_polyline_split
doCheck = false;
meta = with stdenv.lib; {
description = "An advanced geospatial data analysis platform";

View file

@ -1,22 +0,0 @@
Get the environment propagated to scons forked childs, and correct the dicom plugin about
a typedef of size_t that failed at least on x86_64-linux.
diff --git a/SConstruct b/SConstruct
index 9e752d6..f93f27f 100644
--- a/SConstruct
+++ b/SConstruct
@@ -9,13 +9,7 @@ else:
commit_id = os.popen('git rev-parse HEAD').read().replace('\n','')
-env = Environment(LIBPATH=[],
- CPPFLAGS = cppflags + ['-Wno-deprecated-declarations',
- '-Wno-reorder',
- '-Wno-unused-but-set-variable',
- '-Wno-unused-function'],
- CXXFLAGS=['-std=c++1y']
- )
+env = Environment(ENV = os.environ)
env['SBOX'] = False
env['COMMITIDSHORT'] = commit_id[0:6]

View file

@ -1,34 +0,0 @@
{ stdenv, fetchFromGitHub, gdk-pixbuf, scons, pkgconfig, gtk2, glib
, pcre, cfitsio, perl, gob2, vala, libtiff, json-glib }:
stdenv.mkDerivation rec {
pname = "giv";
version = "0.9.26";
src = fetchFromGitHub {
owner = "dov";
repo = "giv";
rev = "v${version}";
sha256 = "1sfm8j3hvqij6z3h8xz724d7hjqqbzljl2a6pp4yjpnnrxksnic2";
};
hardeningDisable = [ "format" ];
prePatch = ''
sed -i s,/usr/bin/perl,${perl}/bin/perl, doc/eperl
sed -i s,/usr/local,$out, SConstruct
'';
patches = [ ./build.patch ];
nativeBuildInputs = [ scons pkgconfig vala perl gob2 ];
buildInputs = [ gdk-pixbuf gtk2 glib pcre cfitsio libtiff json-glib ];
meta = with stdenv.lib; {
description = "Cross platform image and hierarchical vector viewer based";
homepage = http://giv.sourceforge.net/giv/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
platforms = with platforms; linux;
};
}

View file

@ -103,6 +103,6 @@ stdenv.mkDerivation rec {
description = "Image browser and viewer for GNOME";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = [ maintainers.mimadrid ];
maintainers = [ maintainers.mimame ];
};
}

View file

@ -10,11 +10,11 @@
mkDerivation rec {
pname = "krita";
version = "4.2.5";
version = "4.2.6";
src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
sha256 = "1f14r2mrqasl6nr3sss0xy2h8xlxd5wdcjcd64m9nz2gwlm39r7w";
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "0qdaw8xx3h91v8iw6nw2h276ka8hflaq4r4qwz5mqfd3h254jzym";
};
nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ];

View file

@ -70,10 +70,13 @@ mkDerivation {
kpurpose
kdeclarative
];
patches = [ ./mlt-path.patch ];
inherit mlt;
postPatch =
# Module Qt5::Concurrent must be included in `find_package` before it is used.
''
sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|'
substituteAllInPlace src/kdenlivesettings.kcfg
'';
meta = {
license = with lib.licenses; [ gpl2Plus ];

View file

@ -7,7 +7,7 @@
kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
messagelib, pim-sieve-editor, qtscript, qtwebengine,
messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi
}:
mkDerivation {
@ -25,6 +25,6 @@ mkDerivation {
ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
];
propagatedUserEnvPkgs = [ kdepim-runtime kwallet ];
propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
patches = [ ./kmail.patch ];
}

View file

@ -0,0 +1,22 @@
diff -ruN old/src/kdenlivesettings.kcfg new/src/kdenlivesettings.kcfg
--- old/src/kdenlivesettings.kcfg 2019-09-10 23:20:27.555392353 -0400
+++ new/src/kdenlivesettings.kcfg 2019-09-10 23:25:47.533964155 -0400
@@ -378,14 +378,14 @@
</group>
<group name="env">
- <entry name="mltpath" type="Path">
+ <entry name="mltpath" type="Path" hidden="true">
<label>Mlt framework install path.</label>
- <default></default>
+ <default>@mlt@/share/mlt/profiles</default>
</entry>
- <entry name="rendererpath" type="Path">
+ <entry name="rendererpath" type="Path" hidden="true">
<label>Mlt melt renderer install path.</label>
- <default></default>
+ <default>@mlt@/bin/melt</default>
</entry>
<entry name="ffmpegpath" type="Path">

View file

@ -1,33 +1,33 @@
{ stdenv, swiProlog, makeWrapper,
fetchFromGitHub,
lexicon ? "lexicon/clex_lexicon.pl",
lexicon ? "prolog/lexicon/clex_lexicon.pl",
pname ? "ape",
description ? "Parser for Attempto Controlled English (ACE)",
license ? with stdenv.lib; licenses.lgpl3
}:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "6.7-131003";
inherit pname;
version = "2019-08-10";
buildInputs = [ swiProlog makeWrapper ];
src = fetchFromGitHub {
owner = "Attempto";
repo = "APE";
rev = version;
sha256 = "0cw47qjg4896kw3vps6rfs02asvscsqvcfdiwgfmqb3hvykb1sdx";
rev = "113b81621262d7a395779465cb09397183e6f74c";
sha256 = "0xyvna2fbr18hi5yvm0zwh77q02dfna1g4g53z9mn2rmlfn2mhjh";
};
patchPhase = ''
# We move the file first to avoid "same file" error in the default case
cp ${lexicon} new_lexicon.pl
rm lexicon/clex_lexicon.pl
cp new_lexicon.pl lexicon/clex_lexicon.pl
rm prolog/lexicon/clex_lexicon.pl
cp new_lexicon.pl prolog/lexicon/clex_lexicon.pl
'';
buildPhase = ''
make build
make SHELL=${stdenv.shell} build
'';
installPhase = ''

View file

@ -22,17 +22,21 @@ stdenv.mkDerivation {
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ glib libxml2 exiv2 imagemagick ];
prePatch = ''
sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp
'';
installPhase = ''
mkdir $out/{bin,share} -p
cp src/cgg{,-dirgen} $out/bin/
'';
meta = {
homepage = http://cgg.bzatek.net/;
description = "a simple static web photo gallery, designed to be clean and easily usable";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
platforms = with stdenv.lib.platforms; linux ++ darwin;
meta = with stdenv.lib; {
homepage = "http://cgg.bzatek.net/";
description = "A simple static web photo gallery, designed to be clean and easily usable";
license = licenses.gpl2;
maintainers = [ maintainers.matthiasbeyer ];
platforms = with platforms; linux ++ darwin;
};
}

View file

@ -7,15 +7,15 @@ let
else
[ wxGTK ];
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "diff-pdf";
version = "2017-12-30";
version = "0.3";
src = fetchFromGitHub {
owner = "vslavik";
repo = "diff-pdf";
rev = "c4d67226ec4c29b30a7399e75f80636ff8a6f9fc";
sha256 = "1c3ig7ckrg37p5vzvgjnsfdzdad328wwsx0r31lbs1d8pkjkgq3m";
rev = "v${version}";
sha256 = "0vzvyjpk6m89zs6j1dq85f93n2b1i6akn2g0z9qhagjd2pds920i";
};
nativeBuildInputs = [ autoconf automake pkgconfig ];
@ -24,9 +24,10 @@ stdenv.mkDerivation {
preConfigure = "./bootstrap";
meta = with stdenv.lib; {
homepage = http://vslavik.github.io/diff-pdf;
homepage = "https://vslavik.github.io/diff-pdf/";
description = "Simple tool for visually comparing two PDF files";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = with maintainers; [ dtzWill ];
};
}

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "electron-cash";
version = "4.0.7";
version = "4.0.10";
src = fetchurl {
url = "https://electroncash.org/downloads/${version}/win-linux/Electron-Cash-${version}.tar.gz";
# Verified using official SHA-1 and signature from
# https://github.com/fyookball/keys-n-hashes
sha256 = "d63ef2d52cff0b821b745067d752fd0c7f2902fa23eaf8e9392c54864cae5c77";
sha256 = "48270e12956a2f4ef4d2b0cb60611e47f136b734a3741dab176542a32ae59ee5";
};
propagatedBuildInputs = with python3Packages; [

View file

@ -5,13 +5,13 @@ with python3.pkgs;
buildPythonApplication rec {
pname = "gcalcli";
version = "4.1.1";
version = "4.2.0";
src = fetchFromGitHub {
owner = "insanum";
repo = pname;
rev = "v${version}";
sha256 = "1qlmslywm4dfimggly4p0ckn2gj165mq1p0wkry9jpb3sg1m5fdf";
sha256 = "0746vmhfclkpkqnyaidxid2z20mlv86hv0pjxy1qglrja91vkd72";
};
postPatch = lib.optionalString stdenv.isLinux ''

View file

@ -0,0 +1,62 @@
{ stdenv
, fetchurl
, appstream-glib
, desktop-file-utils
, gettext
, glib
, gnome3
, gtk3
, gusb
, libcanberra-gtk3
, libgudev
, meson
, ninja
, pkgconfig
, wrapGAppsHook
, polkit
, udisks
}:
stdenv.mkDerivation rec {
pname = "gnome-multi-writer";
version = "3.32.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1apdd8yi12zagf82k376a9wmdm27wzwdxpm2wf2pnwkaf786rmdw";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
gettext
meson
ninja
pkgconfig
wrapGAppsHook
];
buildInputs = [
glib
gtk3
gusb
libcanberra-gtk3
libgudev
polkit
udisks
];
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "Tool for writing an ISO file to multiple USB devices at once";
homepage = https://wiki.gnome.org/Apps/MultiWriter;
license = licenses.gpl2Plus;
maintainers = gnome3.maintainers;
platforms = platforms.linux;
};
}

View file

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
version = "7.12";
version = "7.13";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
sha256 = "0c3axs3mm6xzabwbvy9vgq1sryjpi4h91nwzy9iyv9zjxz7phgzc";
sha256 = "08cg5k4ffj2wrcm4rk7vyixbyyz0424276fw2fn8lmziklkdqyjw";
};
nativeBuildInputs = [ qmake ];
@ -28,7 +28,7 @@ mkDerivation rec {
all common GPS log file formats.
'';
license = licenses.gpl3;
maintainers = [ maintainers.womfoo ];
maintainers = with maintainers; [ womfoo sikmir ];
platforms = platforms.linux;
};
}

View file

@ -2,12 +2,12 @@
let
pname = "joplin-desktop";
version = "1.0.158";
version = "1.0.167";
in appimageTools.wrapType2 rec {
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}-x86_64.AppImage";
sha256 = "1xaamwcasihja3agwb0nnfnzc1wmmr0d2ng73qmfil9nhf9v3j6q";
sha256 = "062f2av60490ffrml0q8zv68yir6zaqif0g3d32c985gcvmgn9lw";
};

View file

@ -30,73 +30,25 @@ stdenv.mkDerivation rec {
cp -r ${v251a_src}/* $sourceRoot
'';
patches = [ ./k2pdfopt.patch ];
patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs =
let
# The patches below were constructed by taking the files from k2pdfopt in
# the {mupdf,leptonica,tesseract}_mod/ directories, replacing the
# corresponding files in the respective source trees, resolving any errors
# with more recent versions of these depencencies, and running diff.
mupdf_modded = mupdf.overrideAttrs (attrs: {
# Excluded the pdf-*.c files, since they mostly just broke the #includes
prePatch = ''
cp ${src}/mupdf_mod/{font,stext-device,string}.c source/fitz/
cp ${src}/mupdf_mod/font-win32.c source/pdf/
'';
patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
});
leptonica_modded = leptonica.overrideAttrs (attrs: {
name = "leptonica-1.74.4";
# Modified source files apply to this particular version of leptonica
version = "1.74.4";
src = fetchurl {
url = "http://www.leptonica.org/source/leptonica-1.74.4.tar.gz";
sha256 = "0fw39amgyv8v6nc7x8a4c7i37dm04i6c5zn62d24bgqnlhk59hr9";
};
prePatch = ''
cp ${src}/leptonica_mod/{allheaders.h,dewarp2.c,leptwin.c} src/
'';
patches = [
# stripped down copy of upstream commit b88c821f8d347bce0aea86d606c710303919f3d2
./leptonica-CVE-2018-3836.patch
(fetchpatch {
# CVE-2018-7186
url = "https://github.com/DanBloomberg/leptonica/commit/"
+ "ee301cb2029db8a6289c5295daa42bba7715e99a.patch";
sha256 = "0cgb7mvz2px1rg5i80wk1wxxjvzjga617d8q6j7qygkp7jm6495d";
})
(fetchpatch {
# CVE-2018-7247
url = "https://github.com/DanBloomberg/leptonica/commit/"
+ "c1079bb8e77cdd426759e466729917ca37a3ed9f.patch";
sha256 = "1z4iac5gwqggh7aa8cvyp6nl9fwd1v7wif26caxc9y5qr3jj34qf";
})
(fetchpatch {
# CVE-2018-7440
url = "https://github.com/DanBloomberg/leptonica/commit/"
+ "49ecb6c2dfd6ed5078c62f4a8eeff03e3beced3b.patch";
sha256 = "1hjmva98iaw9xj7prg7aimykyayikcwnk4hk0380007hqb35lqmy";
})
];
patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
});
tesseract_modded = tesseract4.override {
tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
prePatch = ''
cp ${src}/tesseract_mod/baseapi.{h,cpp} src/api/
cp ${src}/tesseract_mod/ccutil.{h,cpp} src/ccutil/
cp ${src}/tesseract_mod/genericvector.h src/ccutil/
cp ${src}/tesseract_mod/input.cpp src/lstm/
cp ${src}/tesseract_mod/lstmrecognizer.cpp src/lstm/
cp ${src}/tesseract_mod/mainblk.cpp src/ccutil/
cp ${src}/tesseract_mod/params.cpp src/ccutil/
cp ${src}/tesseract_mod/serialis.{h,cpp} src/ccutil/
cp ${src}/tesseract_mod/tesscapi.cpp src/api/
cp ${src}/tesseract_mod/tessdatamanager.cpp src/ccstruct/
cp ${src}/tesseract_mod/tessedit.cpp src/ccmain/
cp ${src}/include_mod/{tesseract.h,leptonica.h} src/api/
'';
patches = [ ./tesseract.patch ];
patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
});
};
in

View file

@ -0,0 +1,151 @@
diff --git a/willuslib/wmupdf.c b/willuslib/wmupdf.c
index 81627ef..f14a96c 100644
--- a/willuslib/wmupdf.c
+++ b/willuslib/wmupdf.c
@@ -189,8 +189,6 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
pdf_write_opts.do_compress=1;
pdf_write_opts.do_linear=0;
pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
- pdf_write_opts.continue_on_error=0;
- pdf_write_opts.errors=NULL;
write_failed=0;
wpdfpageinfo_sort(pageinfo);
xref=NULL;
@@ -1687,8 +1685,8 @@ WPDFOUTLINE *wpdfoutline_read_from_pdf_file(char *filename)
/* Sumatra version of MuPDF v1.4 -- use locally installed fonts */
pdf_install_load_system_font_funcs(ctx);
fz_try(ctx) { doc=fz_open_document(ctx,filename); }
- fz_catch(ctx)
- {
+ fz_catch(ctx)
+ {
fz_drop_context(ctx);
return(NULL);
}
@@ -1890,5 +1888,5 @@ static pdf_obj *pdf_new_string_utf8(fz_context *ctx,char *string)
willus_mem_free((double **)&utfbuf,funcname);
return(pdfobj);
}
-
+
#endif /* HAVE_MUPDF_LIB */
diff --git a/willuslib/wmupdfinfo.c b/willuslib/wmupdfinfo.c
index 5c7f38c..9b9e6fd 100644
--- a/willuslib/wmupdfinfo.c
+++ b/willuslib/wmupdfinfo.c
@@ -237,23 +237,22 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
pdf_obj *robj;
robj=pdf_resolve_indirect(ctx,obj);
- n=pdf_sprint_obj(ctx,NULL,0,robj,1);
- buf=malloc(n+2);
+ buf=pdf_sprint_obj(ctx,NULL,0,&n,robj,1,0);
if (buf==NULL)
{
fz_write_printf(ctx,out,"Info object (%d %d R):\n",pdf_to_num(ctx,obj),pdf_to_gen(ctx,obj));
- pdf_print_obj(ctx,out,robj,1);
+ pdf_print_obj(ctx,out,robj,1,0);
}
else
{
- pdf_sprint_obj(ctx,buf,n+2,robj,1);
+ pdf_sprint_obj(ctx,buf,n+2,&n,robj,1,0);
display_pdf_field(ctx,out,buf,"Title","TITLE");
display_pdf_field(ctx,out,buf,"CreationDate","CREATED");
display_pdf_field(ctx,out,buf,"ModDate","LAST MODIFIED");
display_pdf_field(ctx,out,buf,"Producer","PDF PRODUCER");
display_pdf_field(ctx,out,buf,"Creator","CREATOR");
display_file_size(ctx,out,filename);
- free(buf);
+ fz_free(ctx,buf);
}
}
if (glo->dims==1)
@@ -275,7 +274,7 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
if (obj)
{
fz_write_printf(ctx,out, "\nEncryption object (%d %d R):\n", pdf_to_num(ctx,obj), pdf_to_gen(ctx,obj));
- pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
+ pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 0);
}
}
@@ -396,7 +395,7 @@ gatherdimensions(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_
if (j < glo->dims)
return;
- glo->dim = fz_resize_array(ctx, glo->dim, glo->dims+1, sizeof(struct info));
+ glo->dim = fz_realloc_array(ctx, glo->dim, glo->dims+1, struct info);
glo->dims++;
glo->dim[glo->dims - 1].page = page;
@@ -441,7 +440,7 @@ gatherfonts(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
if (k < glo->fonts)
continue;
- glo->font = fz_resize_array(ctx, glo->font, glo->fonts+1, sizeof(struct info));
+ glo->font = fz_realloc_array(ctx, glo->font, glo->fonts+1, struct info);
glo->fonts++;
glo->font[glo->fonts - 1].page = page;
@@ -510,7 +509,7 @@ gatherimages(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
if (k < glo->images)
continue;
- glo->image = fz_resize_array(ctx, glo->image, glo->images+1, sizeof(struct info));
+ glo->image = fz_realloc_array(ctx, glo->image, glo->images+1, struct info);
glo->images++;
glo->image[glo->images - 1].page = page;
@@ -568,7 +567,7 @@ gatherforms(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
if (k < glo->forms)
continue;
- glo->form = fz_resize_array(ctx, glo->form, glo->forms+1, sizeof(struct info));
+ glo->form = fz_realloc_array(ctx, glo->form, glo->forms+1, struct info);
glo->forms++;
glo->form[glo->forms - 1].page = page;
@@ -613,7 +612,7 @@ gatherpsobjs(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
if (k < glo->psobjs)
continue;
- glo->psobj = fz_resize_array(ctx, glo->psobj, glo->psobjs+1, sizeof(struct info));
+ glo->psobj = fz_realloc_array(ctx, glo->psobj, glo->psobjs+1, struct info);
glo->psobjs++;
glo->psobj[glo->psobjs - 1].page = page;
@@ -656,7 +655,7 @@ gathershadings(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
if (k < glo->shadings)
continue;
- glo->shading = fz_resize_array(ctx, glo->shading, glo->shadings+1, sizeof(struct info));
+ glo->shading = fz_realloc_array(ctx, glo->shading, glo->shadings+1, struct info);
glo->shadings++;
glo->shading[glo->shadings - 1].page = page;
@@ -724,7 +723,7 @@ gatherpatterns(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
if (k < glo->patterns)
continue;
- glo->pattern = fz_resize_array(ctx, glo->pattern, glo->patterns+1, sizeof(struct info));
+ glo->pattern = fz_realloc_array(ctx, glo->pattern, glo->patterns+1, struct info);
glo->patterns++;
glo->pattern[glo->patterns - 1].page = page;
@@ -1216,7 +1215,7 @@ void wmupdfinfo_get(char *filename,int *pagelist,char **buf)
if (fout==NULL)
return;
*/
-
+
ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
if (!ctx)
{
@@ -1307,5 +1306,5 @@ static void date_convert(char *dst,char *src)
else if (src[i]!='\0')
sprintf(&dst[strlen(dst)]," %s",&src[i]);
}
-
+
#endif /* HAVE_MUPDF_LIB */

View file

@ -1,95 +0,0 @@
--- a/src/allheaders.h
+++ b/src/allheaders.h
@@ -2600,6 +2600,7 @@
LEPT_DLL extern char * stringReverse ( const char *src );
LEPT_DLL extern char * strtokSafe ( char *cstr, const char *seps, char **psaveptr );
LEPT_DLL extern l_int32 stringSplitOnToken ( char *cstr, const char *seps, char **phead, char **ptail );
+LEPT_DLL extern l_int32 stringCheckForChars ( const char *src, const char *chars, l_int32 *pfound );
LEPT_DLL extern char * stringRemoveChars ( const char *src, const char *remchars );
LEPT_DLL extern l_int32 stringFindSubstr ( const char *src, const char *sub, l_int32 *ploc );
LEPT_DLL extern char * stringReplaceSubstr ( const char *src, const char *sub1, const char *sub2, l_int32 *pfound, l_int32 *ploc );
--- a/src/gplot.c
+++ b/src/gplot.c
@@ -141,9 +141,10 @@
const char *xlabel,
const char *ylabel)
{
-char *newroot;
-char buf[L_BUF_SIZE];
-GPLOT *gplot;
+char *newroot;
+char buf[L_BUF_SIZE];
+l_int32 badchar;
+GPLOT *gplot;
PROCNAME("gplotCreate");
@@ -152,6 +153,9 @@
if (outformat != GPLOT_PNG && outformat != GPLOT_PS &&
outformat != GPLOT_EPS && outformat != GPLOT_LATEX)
return (GPLOT *)ERROR_PTR("outformat invalid", procName, NULL);
+ stringCheckForChars(rootname, "`;&|><\"?*", &badchar);
+ if (badchar) /* danger of command injection */
+ return (GPLOT *)ERROR_PTR("invalid rootname", procName, NULL);
if ((gplot = (GPLOT *)LEPT_CALLOC(1, sizeof(GPLOT))) == NULL)
return (GPLOT *)ERROR_PTR("gplot not made", procName, NULL);
--- a/src/utils2.c
+++ b/src/utils2.c
@@ -42,6 +42,7 @@
* l_int32 stringSplitOnToken()
*
* Find and replace string and array procs
+ * l_int32 stringCheckForChars()
* char *stringRemoveChars()
* l_int32 stringFindSubstr()
* char *stringReplaceSubstr()
@@ -701,6 +702,48 @@
/*--------------------------------------------------------------------*
* Find and replace procs *
*--------------------------------------------------------------------*/
+/*!
+ * \brief stringCheckForChars()
+ *
+ * \param[in] src input string; can be of zero length
+ * \param[in] chars string of chars to be searched for in %src
+ * \param[out] pfound 1 if any characters are found; 0 otherwise
+ * \return 0 if OK, 1 on error
+ *
+ * <pre>
+ * Notes:
+ * (1) This can be used to sanitize an operation by checking for
+ * special characters that don't belong in a string.
+ * </pre>
+ */
+l_int32
+stringCheckForChars(const char *src,
+ const char *chars,
+ l_int32 *pfound)
+{
+char ch;
+l_int32 i, n;
+
+ PROCNAME("stringCheckForChars");
+
+ if (!pfound)
+ return ERROR_INT("&found not defined", procName, 1);
+ *pfound = FALSE;
+ if (!src || !chars)
+ return ERROR_INT("src and chars not both defined", procName, 1);
+
+ n = strlen(src);
+ for (i = 0; i < n; i++) {
+ ch = src[i];
+ if (strchr(chars, ch)) {
+ *pfound = TRUE;
+ break;
+ }
+ }
+ return 0;
+}
+
+
/*!
* \brief stringRemoveChars()
*

View file

@ -0,0 +1,254 @@
From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
From: Daniel Fullmer <danielrf12@gmail.com>
Date: Fri, 13 Sep 2019 15:54:21 -0400
Subject: [PATCH] Willus mod for k2pdfopt
---
src/allheaders.h | 4 ++
src/dewarp2.c | 106 ++++++++++++++++++++++++++++++++++++++++++-----
src/leptwin.c | 6 ++-
3 files changed, 104 insertions(+), 12 deletions(-)
diff --git a/src/allheaders.h b/src/allheaders.h
index e68eff1..b3cc729 100644
--- a/src/allheaders.h
+++ b/src/allheaders.h
@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
+/* WILLUS MOD */
+ LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
+ LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
+ LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
diff --git a/src/dewarp2.c b/src/dewarp2.c
index 220eec1..2e29500 100644
--- a/src/dewarp2.c
+++ b/src/dewarp2.c
@@ -144,9 +144,17 @@ static const l_float32 L_ALLOWED_W_FRACT = 0.05; /* no bigger */
* longest textlines.
* </pre>
*/
+/* WILLUS MOD */
l_ok
-dewarpBuildPageModel(L_DEWARP *dew,
- const char *debugfile)
+dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
+{
+return(dewarpBuildPageModel_ex(dew,debugfile,2));
+}
+
+l_ok
+dewarpBuildPageModel_ex(L_DEWARP *dew,
+ const char *debugfile,
+ l_int32 fit_order)
{
l_int32 linecount, topline, botline, ret;
PIX *pixs, *pix1, *pix2, *pix3;
@@ -225,7 +233,7 @@ PTAA *ptaa1, *ptaa2;
/* Get the sampled vertical disparity from the textline centers.
* The disparity array will push pixels vertically so that each
* textline is flat and centered at the y-position of the mid-point. */
- if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
+ if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
L_WARNING("vertical disparity not built\n", procName);
ptaaDestroy(&ptaa2);
return 1;
@@ -290,13 +298,24 @@ PTAA *ptaa1, *ptaa2;
* a pdf. Non-pix debug output goes to /tmp.
* </pre>
*/
+/* WILLUS MOD */
l_ok
dewarpFindVertDisparity(L_DEWARP *dew,
PTAA *ptaa,
l_int32 rotflag)
{
+return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
+}
+/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
+l_int32
+dewarpFindVertDisparity_ex(L_DEWARP *dew,
+ PTAA *ptaa,
+ l_int32 rotflag,
+ l_int32 fit_order)
+{
l_int32 i, j, nlines, npts, nx, ny, sampling;
-l_float32 c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
+/* WILLUS MOD */
+l_float32 c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
l_float32 *famidys;
NUMA *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
NUMA *namidy, *namidys, *namidysi;
@@ -304,11 +323,22 @@ PIX *pix1, *pix2, *pixcirc, *pixdb;
PTA *pta, *ptad, *ptacirc;
PTAA *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
FPIX *fpix;
+/* WILLUS MOD */
+l_int32 fit_order1,fit_order2;
PROCNAME("dewarpFindVertDisparity");
if (!dew)
return ERROR_INT("dew not defined", procName, 1);
+/* WILLUS MOD */
+ if (fit_order < 10)
+ fit_order1 = fit_order2 = fit_order;
+ else
+ {
+ fit_order1=fit_order % 10;
+ fit_order2=fit_order / 10;
+ fit_order2=fit_order2 % 10;
+ }
dew->vsuccess = 0;
if (!ptaa)
return ERROR_INT("ptaa not defined", procName, 1);
@@ -331,12 +361,32 @@ FPIX *fpix;
pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
for (i = 0; i < nlines; i++) { /* for each line */
pta = ptaaGetPta(ptaa, i, L_CLONE);
- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
- numaAddNumber(nacurve0, c2);
+/* WILLUS MOD */
+if (fit_order1>3)
+ {
+ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
+ numaAddNumber(nacurve0, c4);
+ }
+else if (fit_order1==3)
+ {
+ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
+ numaAddNumber(nacurve0, c3);
+ }
+else
+ {
+ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
+ numaAddNumber(nacurve0, c2);
+ }
ptad = ptaCreate(nx);
for (j = 0; j < nx; j++) { /* uniformly sampled in x */
x = j * sampling;
- applyQuadraticFit(c2, c1, c0, x, &y);
+/* WILLUS MOD */
+if (fit_order1>3)
+ applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
+else if (fit_order1==3)
+ applyCubicFit(c3, c2, c1, c0, x, &y);
+else
+ applyQuadraticFit(c2, c1, c0, x, &y);
ptaAddPt(ptad, x, y);
}
ptaaAddPta(ptaa0, ptad, L_INSERT);
@@ -350,7 +400,13 @@ FPIX *fpix;
for (i = 0; i < nlines; i++) {
pta = ptaaGetPta(ptaa, i, L_CLONE);
ptaGetArrays(pta, &nax, NULL);
- ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
+/* WILLUS MOD */
+if (fit_order1>3)
+ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
+else if (fit_order1==3)
+ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
+else
+ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
ptad = ptaCreateFromNuma(nax, nafit);
ptaaAddPta(ptaat, ptad, L_INSERT);
ptaDestroy(&pta);
@@ -494,11 +550,24 @@ FPIX *fpix;
ptaa5 = ptaaCreate(nx); /* uniformly sampled across full height of image */
for (j = 0; j < nx; j++) { /* for each column */
pta = ptaaGetPta(ptaa4, j, L_CLONE);
- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
+/* WILLUS MOD */
+/* Order higher than 2 can cause a little craziness here. */
+if (fit_order2>3)
+ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
+else if (fit_order2==3)
+ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
+else
+ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
ptad = ptaCreate(ny);
for (i = 0; i < ny; i++) { /* uniformly sampled in y */
y = i * sampling;
- applyQuadraticFit(c2, c1, c0, y, &val);
+/* WILLUS MOD */
+if (fit_order2>3)
+ applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
+else if (fit_order2==3)
+ applyCubicFit(c3, c2, c1, c0, y, &val);
+else
+ applyQuadraticFit(c2, c1, c0, y, &val);
ptaAddPt(ptad, y, val);
}
ptaaAddPta(ptaa5, ptad, L_INSERT);
@@ -1602,11 +1671,21 @@ FPIX *fpix;
* See notes there.
* </pre>
*/
+/* WILLUS MOD */
l_ok
dewarpBuildLineModel(L_DEWARP *dew,
l_int32 opensize,
const char *debugfile)
{
+return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
+}
+
+l_int32
+dewarpBuildLineModel_ex(L_DEWARP *dew,
+ l_int32 opensize,
+ const char *debugfile,
+ l_int32 fit_order)
+{
char buf[64];
l_int32 i, j, bx, by, ret, nlines;
BOXA *boxa;
@@ -1695,6 +1774,8 @@ PTAA *ptaa1, *ptaa2;
/* Remove all lines that are not at least 0.75 times the length
* of the longest line. */
+/* WILLUS MOD */
+/*
ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
if (debugfile) {
pix1 = pixConvertTo32(pix);
@@ -1704,6 +1785,8 @@ PTAA *ptaa1, *ptaa2;
pixDestroy(&pix1);
pixDestroy(&pix2);
}
+*/
+ptaa2=ptaa1;
ptaaDestroy(&ptaa1);
nlines = ptaaGetCount(ptaa2);
if (nlines < dew->minlines) {
@@ -1717,7 +1800,8 @@ PTAA *ptaa1, *ptaa2;
* centers. The disparity array will push pixels vertically
* so that each line is flat and centered at the y-position
* of the mid-point. */
- ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
+/* WILLUS MOD */
+ ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
/* If i == 0, move the result to the horizontal disparity,
* rotating it back by -90 degrees. */
diff --git a/src/leptwin.c b/src/leptwin.c
index 72643a0..573d33e 100644
--- a/src/leptwin.c
+++ b/src/leptwin.c
@@ -364,5 +364,9 @@ PIXCMAP *cmap;
return hBitmap;
}
-
+#else
+/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
+int leptwin_my_empty_func(void);
+int leptwin_my_empty_func(void)
+{return(0);}
#endif /* _WIN32 */
--
2.22.0

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,675 @@
From 39aa8502eee7bb669a29d1a9b3bfe5c9595ad960 Mon Sep 17 00:00:00 2001
From: Daniel Fullmer <danielrf12@gmail.com>
Date: Fri, 13 Sep 2019 13:45:05 -0400
Subject: [PATCH] Willus mod changes from k2pdfopt
---
src/api/Makefile.am | 1 +
src/api/baseapi.cpp | 87 +++++++++++
src/api/baseapi.h | 3 +
src/api/tesscapi.cpp | 311 +++++++++++++++++++++++++++++++++++++
src/api/tesseract.h | 29 ++++
src/ccmain/tessedit.cpp | 5 +-
src/ccutil/ccutil.h | 7 +
src/ccutil/genericvector.h | 21 ++-
src/ccutil/mainblk.cpp | 17 +-
src/ccutil/params.cpp | 3 +-
src/ccutil/serialis.cpp | 3 +
src/ccutil/serialis.h | 2 +
src/lstm/input.cpp | 3 +
13 files changed, 488 insertions(+), 4 deletions(-)
create mode 100644 src/api/tesscapi.cpp
create mode 100644 src/api/tesseract.h
diff --git a/src/api/Makefile.am b/src/api/Makefile.am
index d8c1e54..46ead13 100644
index d9b76eb6..cd2dc30f 100644
--- a/src/api/Makefile.am
+++ b/src/api/Makefile.am
@@ -42,7 +42,7 @@ libtesseract_api_la_CPPFLAGS = $(AM_CPPFLAGS)
if VISIBILITY
libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS
endif
-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp
+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp tesscapi.cpp
@@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
libtesseract_api_la_SOURCES += pdfrenderer.cpp
libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
libtesseract_api_la_SOURCES += renderer.cpp
+libtesseract_api_la_SOURCES += tesscapi.cpp
lib_LTLIBRARIES += libtesseract.la
libtesseract_la_LDFLAGS =
libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS) $(OPENCL_LDFLAGS) $(libarchive_LIBS)
diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp
index 9245d07c..ea964ee6 100644
--- a/src/api/baseapi.cpp
+++ b/src/api/baseapi.cpp
@@ -215,6 +215,14 @@ TessBaseAPI::TessBaseAPI()
// Use the current locale if building debug code.
std::locale::global(std::locale(""));
#endif
+ const char *locale;
+ locale = std::setlocale(LC_ALL, nullptr);
+/* willus mod Remove assertions--taken care of in tesscapi.cpp */
+// ASSERT_HOST(!strcmp(locale, "C"));
+ locale = std::setlocale(LC_CTYPE, nullptr);
+// ASSERT_HOST(!strcmp(locale, "C"));
+ locale = std::setlocale(LC_NUMERIC, nullptr);
+// ASSERT_HOST(!strcmp(locale, "C"));
}
TessBaseAPI::~TessBaseAPI() {
@@ -1333,6 +1341,85 @@ static void AddBoxToTSV(const PageIterator* it, PageIteratorLevel level,
text->add_str_int("\t", bottom - top);
}
+/* willus mod */
+int TessBaseAPI::GetOCRWords(int **x00,int **y00,int **x11,int **y11,int **ybaseline0,
+ char **utf8words)
+
+ {
+ int iword,nwords,totlen,it8;
+ int *x0,*y0,*x1,*y1,*ybaseline;
+ char *tutf8;
+
+ ResultIterator *res_it = GetIterator();
+ /* Count words */
+ iword=0;
+ totlen=0;
+ while (!res_it->Empty(RIL_BLOCK))
+ {
+ if (res_it->Empty(RIL_WORD))
+ {
+ res_it->Next(RIL_WORD);
+ continue;
+ }
+ iword++;
+ STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
+ totlen+=strlen(textstr.string())+1;
+ res_it->Next(RIL_WORD);
+ }
+ nwords=iword;
+/*
+printf("\nnwords=%d, totlen=%d\n",nwords,totlen);
+*/
+ x0=(*x00)=(int *)malloc(sizeof(int)*5*nwords);
+ y0=(*y00)=&x0[nwords];
+ x1=(*x11)=&y0[nwords];
+ y1=(*y11)=&x1[nwords];
+ ybaseline=(*ybaseline0)=&y1[nwords];
+ tutf8=(*utf8words)=(char *)malloc(totlen);
+ iword=0;
+ it8=0;
+ res_it->Begin();
+ while (!res_it->Empty(RIL_BLOCK))
+ {
+ if (res_it->Empty(RIL_WORD))
+ {
+ res_it->Next(RIL_WORD);
+ continue;
+ }
+ STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
+ strcpy(&tutf8[it8],textstr.string());
+ it8 += strlen(&tutf8[it8])+1;
+ /*
+ STRING textstr("");
+ textstr += std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
+ */
+/*
+printf("Word %d: '%s'\n",iword,textstr.string());
+*/
+ int left, top, right, bottom;
+ int u1,v1,u2,v2;
+ res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);
+ res_it->Baseline(RIL_WORD, &u1, &v1, &u2, &v2);
+ x0[iword]=left;
+ x1[iword]=right;
+ y0[iword]=top;
+ y1[iword]=bottom;
+ ybaseline[iword]=(v1+v2)/2;
+ iword++;
+/*
+printf("BB: (%d,%d)-(%d,%d) BL: (%d,%d)-(%d,%d)\n",left,bottom,right,top,x1,y1,x2,y2);
+*/
+ res_it->Next(RIL_WORD);
+ }
+/*
+printf("iword=%d\n",iword);
+*/
+ return(iword);
+ }
+
+/* willus mod */
+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
+
/**
* Make a TSV-formatted string from the internal data structures.
* page_number is 0-based but will appear in the output as 1-based.
diff --git a/src/api/baseapi.h b/src/api/baseapi.h
index 3724dd92..23be5920 100644
--- a/src/api/baseapi.h
+++ b/src/api/baseapi.h
@@ -575,6 +575,9 @@ class TESS_API TessBaseAPI {
*/
char* GetHOCRText(ETEXT_DESC* monitor, int page_number);
+/* willus mod */
+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
+
/**
* Make a HTML-formatted string with hOCR markup from the internal
* data structures.
diff --git a/src/api/tesscapi.cpp b/src/api/tesscapi.cpp
new file mode 100644
index 00000000..1752fafe
--- /dev/null
+++ b/src/api/tesscapi.cpp
@@ -0,0 +1,311 @@
+/*
+** tesscapi.cpp willus.com attempt at C wrapper for tesseract.
+** (Butchered from tesseractmain.cpp)
+** Last udpated 9-1-12
+**
+** Copyright (C) 2012 http://willus.com
+**
+** This program is free software: you can redistribute it and/or modify
+** it under the terms of the GNU Affero General Public License as
+** published by the Free Software Foundation, either version 3 of the
+** License, or (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU Affero General Public License for more details.
+**
+** You should have received a copy of the GNU Affero General Public License
+** along with this program. If not, see <http://www.gnu.org/licenses/>.
+**
+*/
+
+/*
+#include "mfcpch.h"
+*/
+// #define USE_VLD //Uncomment for Visual Leak Detector.
+#if (defined _MSC_VER && defined USE_VLD)
+#include <vld.h>
+#endif
+
+// Include automatically generated configuration file if running autoconf
+#ifdef HAVE_CONFIG_H
+#include "config_auto.h"
+#endif
+#include <locale.h>
+#ifdef USING_GETTEXT
+#include <libintl.h>
+#define _(x) gettext(x)
+#else
+#define _(x) (x)
+#endif
+
+#include "allheaders.h"
+#include "baseapi.h"
+#include "strngs.h"
+#include "params.h"
+#include "blobs.h"
+#include "simddetect.h"
+#include "tesseractclass.h"
+/*
+#include "notdll.h"
+*/
+
+/* C Wrappers */
+#include "tesseract.h"
+
+// static tesseract::TessBaseAPI api[4];
+
+/*
+** ocr_type=0: OEM_DEFAULT
+** ocr_type=1: OEM_TESSERACT_ONLY
+** ocr_type=2: OEM_LSTM_ONLY
+** ocr_type=3: OEM_TESSERACT_LSTM_COMBINED
+*/
+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
+ char *initstr,int maxlen,int *status)
+
+ {
+ char original_locale[256];
+ tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI;
+/*
+printf("@tess_capi_init\n");
+printf(" datapath='%s'\n",datapath);
+printf(" language='%s'\n",language);
+printf(" ocr_type=%d\n",ocr_type);
+*/
+#ifdef USE_NLS
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+#endif
+ /* willus mod, 11-24-16 */
+ /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
+/*
+printf("locale='%s'\n",setlocale(LC_ALL,NULL));
+printf("ctype='%s'\n",setlocale(LC_CTYPE,NULL));
+printf("numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
+*/
+ strncpy(original_locale,setlocale(LC_ALL,NULL),255);
+ original_locale[255]='\0';
+/*
+printf("original_locale='%s'\n",original_locale);
+*/
+ setlocale(LC_ALL,"C");
+/*
+printf("new locale='%s'\n",setlocale(LC_ALL,NULL));
+printf("new ctype='%s'\n",setlocale(LC_CTYPE,NULL));
+printf("new numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
+*/
+ // fprintf(stderr, "tesseract %s\n", tesseract::TessBaseAPI::Version());
+ // Make the order of args a bit more forgiving than it used to be.
+ const char* lang = "eng";
+ tesseract::PageSegMode pagesegmode = tesseract::PSM_SINGLE_BLOCK;
+ if (language!=NULL && language[0]!='\0')
+ lang = language;
+ /*
+ if (output == NULL)
+ {
+ fprintf(stderr, _("Usage:%s imagename outputbase [-l lang] "
+ "[-psm pagesegmode] [configfile...]\n"), argv[0]);
+ fprintf(stderr,
+ _("pagesegmode values are:\n"
+ "0 = Orientation and script detection (OSD) only.\n"
+ "1 = Automatic page segmentation with OSD.\n"
+ "2 = Automatic page segmentation, but no OSD, or OCR\n"
+ "3 = Fully automatic page segmentation, but no OSD. (Default)\n"
+ "4 = Assume a single column of text of variable sizes.\n"
+ "5 = Assume a single uniform block of vertically aligned text.\n"
+ "6 = Assume a single uniform block of text.\n"
+ "7 = Treat the image as a single text line.\n"
+ "8 = Treat the image as a single word.\n"
+ "9 = Treat the image as a single word in a circle.\n"
+ "10 = Treat the image as a single character.\n"));
+ fprintf(stderr, _("-l lang and/or -psm pagesegmode must occur before any"
+ "configfile.\n"));
+ exit(1);
+ }
+ */
+/*
+printf("SSE = %s\n",SIMDDetect::IsSSEAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
+printf("AVX = %s\n",SIMDDetect::IsAVXAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
+*/
+/*
+v4.00 loads either TESSERACT enginer, LSTM engine, or both. No CUBE.
+*/
+ ocr_type=0; /* Ignore specified and use default */
+ api->SetOutputName(NULL);
+ (*status)=api->Init(datapath,lang,
+ ocr_type==0 ? tesseract::OEM_DEFAULT :
+ (ocr_type==1 ? tesseract::OEM_TESSERACT_ONLY :
+ (ocr_type==2 ? tesseract::OEM_LSTM_ONLY :
+ (tesseract::OEM_TESSERACT_LSTM_COMBINED))));
+ if ((*status)!=0)
+ {
+ /* willus mod, 11-24-16 */
+ setlocale(LC_ALL,original_locale);
+ api->End();
+ delete api;
+ return(NULL);
+ }
+ /*
+ api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
+ &(argv[arg]), argc - arg, NULL, NULL, false);
+ */
+ // We have 2 possible sources of pagesegmode: a config file and
+ // the command line. For backwards compatability reasons, the
+ // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
+ // default for this program is tesseract::PSM_AUTO. We will let
+ // the config file take priority, so the command-line default
+ // can take priority over the tesseract default, so we use the
+ // value from the command line only if the retrieved mode
+ // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
+ // in any config file. Therefore the only way to force
+ // tesseract::PSM_SINGLE_BLOCK is from the command line.
+ // It would be simpler if we could set the value before Init,
+ // but that doesn't work.
+ if (api->GetPageSegMode() == tesseract::PSM_SINGLE_BLOCK)
+ api->SetPageSegMode(pagesegmode);
+
+ /*
+ ** Initialization message
+ */
+ {
+ char istr[1024];
+ int sse,avx;
+
+// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
+ sprintf(istr,"%s",api->Version());
+ sse=tesseract::SIMDDetect::IsSSEAvailable();
+ avx=tesseract::SIMDDetect::IsAVXAvailable();
+ if (sse || avx)
+ sprintf(&istr[strlen(istr)]," [%s]",sse&&avx?"SSE+AVX":(sse?"SSE":"AVX"));
+ sprintf(&istr[strlen(istr)],"\n Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
+ strcat(istr,"\n Tesseract languages: ");
+ GenericVector<STRING> languages;
+ api->GetLoadedLanguagesAsVector(&languages);
+/*
+printf("OEM=%d\n",api->oem());
+printf("Langs='%s'\n",api->GetInitLanguagesAsString());
+printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
+printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
+printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
+printf("languages.size()=%d\n",(int)languages.size());
+*/
+
+ for (int i=0;i<=api->tesseract()->num_sub_langs();i++)
+ {
+ tesseract::Tesseract *lang1;
+ int eng;
+ lang1 = i==0 ? api->tesseract() : api->tesseract()->get_sub_lang(i-1);
+ eng=(int)lang1->tessedit_ocr_engine_mode;
+ sprintf(&istr[strlen(istr)],"%s%s [%s]",i==0?"":", ",lang1->lang.string(),
+ eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
+ }
+/*
+printf("%d. '%s'\n",i+1,languages[i].string());
+printf(" sublang[%d].oem_engine = %d\n",i+1,(int)api->tesseract()->get_sub_lang(i)->tessedit_ocr_engine_mode);
+*/
+
+ /*
+ if (ocr_type==0 || ocr_type==3)
+ sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
+ else if (ocr_type==2)
+ sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
+ strncpy(&istr[strlen(istr)],language,253-strlen(istr));
+ istr[253]='\0';
+ strcat(istr,")");
+ */
+ if (out!=NULL)
+ fprintf(out,"%s\n",istr);
+ if (initstr!=NULL)
+ {
+ strncpy(initstr,istr,maxlen-1);
+ initstr[maxlen-1]='\0';
+ }
+ }
+
+
+ /* Turn off LSTM debugging output */
+ api->SetVariable("lstm_debug_level","0");
+#if (WILLUSDEBUG & 1)
+ api->SetVariable("lstm_debug_level","9");
+ api->SetVariable("paragraph_debug_level","9");
+ api->SetVariable("tessdata_manager_debug_level","9");
+ api->SetVariable("tosp_debug_level","9");
+ api->SetVariable("wordrec_debug_level","9");
+ api->SetVariable("segsearch_debug_level","9");
+#endif
+ /* willus mod, 11-24-16 */
+ setlocale(LC_ALL,original_locale);
+ return((void *)api);
+ }
+
+
+int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
+
+ {
+ tesseract::TessBaseAPI *api;
+ static int old_segmode=-1;
+
+ api=(tesseract::TessBaseAPI *)vapi;
+ if (old_segmode != segmode)
+ {
+ old_segmode=segmode;
+ api->SetPageSegMode((tesseract::PageSegMode)segmode);
+ }
+ if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
+ {
+ /* pixDestroy(&pix); */
+ if (out!=NULL)
+ fprintf(out,"tesscapi: Error during bitmap processing.\n");
+ api->Clear();
+ return(-1);
+ }
+ strncpy(outstr,api->GetUTF8Text(),maxlen-1);
+ outstr[maxlen-1]='\0';
+ api->Clear();
+ return(0);
+ }
+
+
+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
+ int **left,int **top,int **right,int **bottom,
+ int **ybase,char **text,int *nw,
+ FILE *out)
+
+ {
+ tesseract::TessBaseAPI *api;
+ static int old_segmode=-1;
+
+ api=(tesseract::TessBaseAPI *)vapi;
+ if (old_segmode != segmode)
+ {
+ old_segmode=segmode;
+ api->SetPageSegMode((tesseract::PageSegMode)segmode);
+ }
+ if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
+ {
+ if (out!=NULL)
+ fprintf(out,"tesscapi: Error during bitmap processing.\n");
+ api->Clear();
+ (*nw)=0;
+ return(-1);
+ }
+ (*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
+ api->Clear();
+ return(0);
+ }
+
+
+void tess_capi_end(void *vapi)
+
+ {
+ tesseract::TessBaseAPI *api;
+
+ if (vapi==NULL)
+ return;
+ api=(tesseract::TessBaseAPI *)vapi;
+ api->End();
+ delete api;
+ }
diff --git a/src/api/tesseract.h b/src/api/tesseract.h
new file mode 100644
index 00000000..575948cc
--- /dev/null
+++ b/src/api/tesseract.h
@@ -0,0 +1,29 @@
+/*
+** Willus.com's Tesseract C Wrappers
+**
+** 6-8-12
+**
+*/
+
+#ifndef _TESSERACT_H_
+#define _TESSERACT_H_
+
+//#include <leptonica.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
+ char *initstr,int maxlen,int *status);
+int tess_capi_get_ocr(void *api,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out);
+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
+ int **left,int **top,int **right,int **bottom,
+ int **ybase,char **text,int *nw,
+ FILE *out);
+void tess_capi_end(void *api);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp
index 17f0951b..7af94ee2 100644
--- a/src/ccmain/tessedit.cpp
+++ b/src/ccmain/tessedit.cpp
@@ -101,6 +101,10 @@ bool Tesseract::init_tesseract_lang_data(
" to your \"tessdata\" directory.\n");
return false;
}
+ /* willus mod */
+ TFile fp;
+ strncpy(fp.tfile_filename,tessdata_path.string(),511);
+ fp.tfile_filename[511]='\0';
#ifndef DISABLED_LEGACY_ENGINE
if (oem == OEM_DEFAULT) {
// Set the engine mode from availability, which can then be overridden by
@@ -116,7 +120,6 @@ bool Tesseract::init_tesseract_lang_data(
#endif // ndef DISABLED_LEGACY_ENGINE
// If a language specific config file (lang.config) exists, load it in.
- TFile fp;
if (mgr->GetComponent(TESSDATA_LANG_CONFIG, &fp)) {
ParamUtils::ReadParamsFromFp(SET_PARAM_CONSTRAINT_NONE, &fp,
this->params());
diff --git a/src/ccutil/ccutil.h b/src/ccutil/ccutil.h
index 71e89c60..bdeccc14 100644
--- a/src/ccutil/ccutil.h
+++ b/src/ccutil/ccutil.h
@@ -80,6 +80,13 @@ class CCUtil {
// Member parameters.
// These have to be declared and initialized after params_ member, since
// params_ should be initialized before parameters are added to it.
+/* willus mod */
+/*
+ #ifdef _WIN32
+ STRING_VAR_H(tessedit_module_name, WINDLLNAME,
+ "Module colocated with tessdata dir");
+ #endif
+*/
INT_VAR_H(ambigs_debug_level, 0, "Debug level for unichar ambiguities");
BOOL_VAR_H(use_definite_ambigs_for_classifier, false,
"Use definite ambiguities when running character classifier");
diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h
index 3556d153..3a5e8662 100644
--- a/src/ccutil/genericvector.h
+++ b/src/ccutil/genericvector.h
@@ -382,7 +382,26 @@ inline bool LoadDataFromFile(const char* filename, GenericVector<char>* data) {
// reserve an extra byte in case caller wants to append a '\0' character
data->reserve(size + 1);
data->resize_no_init(size);
- result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
+ /* willus mod Dec 2018--weird issue with Win XP and MinGW gcc 7.3.0 */
+ /* Can't read entire file at once -- need to break up into smaller blocksize reads */
+ {
+ int frs,n;
+ int blocksize;
+ blocksize=1024*1024;
+ for (n=0;1;)
+ {
+ int bs;
+ bs= size-n > blocksize ? blocksize : size-n;
+ frs=(int)fread(&(*data)[n],1,bs,fp);
+ n+=frs;
+ if (frs<bs || bs<blocksize || n>=size)
+ break;
+ }
+ result = static_cast<long>((long)n==size);
+ }
+ /*
+ result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
+ */
}
fclose(fp);
}
diff --git a/src/ccutil/mainblk.cpp b/src/ccutil/mainblk.cpp
index 52b04b04..80b26044 100644
--- a/src/ccutil/mainblk.cpp
+++ b/src/ccutil/mainblk.cpp
@@ -55,8 +55,22 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
#if defined(_WIN32)
} else if (datadir == nullptr || _access(datadir.string(), 0) != 0) {
/* Look for tessdata in directory of executable. */
+ /*
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ */
char path[_MAX_PATH];
- DWORD length = GetModuleFileName(nullptr, path, sizeof(path));
+ int i;
+ /* DWORD length = */ GetModuleFileName(nullptr, path, sizeof(path));
+ /* willus mod--avoid _splitpath_s -- not in XP */
+ for (i=strlen(path)-1;i>=0 && path[i]!='/' && path[i]!='\\';i--);
+ if (i>=0)
+ {
+ path[i]='\0';
+ datadir=path;
+ datadir += "/tessdata";
+ }
+ /*
if (length > 0 && length < sizeof(path)) {
char* separator = std::strrchr(path, '\\');
if (separator != nullptr) {
@@ -65,6 +79,7 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
datadir += "/tessdata";
}
}
+ */
#endif /* _WIN32 */
#if defined(TESSDATA_PREFIX)
} else {
diff --git a/src/ccutil/params.cpp b/src/ccutil/params.cpp
index 00bf2563..486c5ce0 100644
--- a/src/ccutil/params.cpp
+++ b/src/ccutil/params.cpp
@@ -82,7 +82,8 @@ bool ParamUtils::ReadParamsFromFp(SetParamConstraint constraint, TFile *fp,
if (!foundit) {
anyerr = true; // had an error
- tprintf("Warning: Parameter not found: %s\n", line);
+ /* willus mod */
+ tprintf("Tesseract warning: Parameter %s not found in file %s.\n",line,fp->tfile_filename);
}
}
}
diff --git a/src/ccutil/serialis.cpp b/src/ccutil/serialis.cpp
index 7def011f..6107a494 100644
--- a/src/ccutil/serialis.cpp
+++ b/src/ccutil/serialis.cpp
@@ -201,6 +201,9 @@ bool TFile::Open(const STRING& filename, FileReader reader) {
offset_ = 0;
is_writing_ = false;
swap_ = false;
+ /* willus mod */
+ strncpy(tfile_filename,filename.string(),511);
+ tfile_filename[511]='\0';
if (reader == nullptr)
return LoadDataFromFile(filename, data_);
else
diff --git a/src/ccutil/serialis.h b/src/ccutil/serialis.h
index 095b9227..4cc8251e 100644
--- a/src/ccutil/serialis.h
+++ b/src/ccutil/serialis.h
@@ -77,6 +77,8 @@ class TFile {
public:
TFile();
~TFile();
+ /* willus mod */
+ char tfile_filename[512];
// All the Open methods load the whole file into memory for reading.
// Opens a file with a supplied reader, or nullptr to use the default.
diff --git a/src/lstm/input.cpp b/src/lstm/input.cpp
index 73b584b3..0b0b54c3 100644
--- a/src/lstm/input.cpp
+++ b/src/lstm/input.cpp
@@ -93,8 +93,11 @@ Pix* Input::PrepareLSTMInputs(const ImageData& image_data,
return nullptr;
}
if (width < min_width || height < min_width) {
+ /* willus mod -- no warning */
+ /*
tprintf("Image too small to scale!! (%dx%d vs min width of %d)\n", width,
height, min_width);
+ */
pixDestroy(&pix);
return nullptr;
}
--
2.22.0

View file

@ -5,12 +5,12 @@ assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
stdenv.mkDerivation rec {
pname = "llpp";
version = "30";
version = "31";
src = fetchgit {
url = "git://repo.or.cz/llpp.git";
rev = "v${version}";
sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd";
sha256 = "14ibsm1zzxfidjajcj30b5m9in10q3817izahsjvkmryrvvn6qsg";
fetchSubmodules = false;
};

View file

@ -1,14 +1,5 @@
From cccadedfbcb6764a38382154838113a6b2fd4dee Mon Sep 17 00:00:00 2001
From: Michael Hoang <enzime@users.noreply.github.com>
Date: Mon, 10 Dec 2018 15:08:01 +1100
Subject: [PATCH] Patch build.bash for nixpkgs
---
build.bash | 37 ++-----------------------------------
1 file changed, 2 insertions(+), 35 deletions(-)
diff --git a/build.bash b/build.bash
index 1588011..72117d9 100755
index 7c278b6..41494c5 100755
--- a/build.bash
+++ b/build.bash
@@ -29,7 +29,6 @@ srcd="$(dirname $0)"
@ -20,10 +11,10 @@ index 1588011..72117d9 100755
mkdir -p $outd/{$wsid,lablGL}
:>$outd/ordered
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
mbt=native
mbt=${mbt:-native}
mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a
-keycmd="(cd $mudir && git describe --tags --dirty); digest $mulibs"
-keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs"
-isfresh "$mulibs" "$(eval $keycmd)" || (
- make -C "$mudir" build=$mbt -j $mjobs libs
- echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
@ -32,12 +23,12 @@ index 1588011..72117d9 100755
oincs() {
local i=
local incs1=
@@ -90,32 +83,6 @@ mflags() {
@@ -90,34 +83,6 @@ mflags() {
}
overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
-test "$overs" = "4.07.0" || {
- url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz
-test "$overs" = "4.08" || {
- url=https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.0.tar.xz
- txz=$outd/$(basename $url)
- isfresh $txz $url || {
- executable_p() { command -v "$1" >/dev/null 2>&1; }
@ -54,8 +45,10 @@ index 1588011..72117d9 100755
- tar xf $txz -C $outd
- bn=$(basename $url)
- cd $outd/${bn%.tar.xz}
- ./configure -prefix $absprefix \
- -no-graph -no-debugger -no-ocamldoc -no-native-compiler
- ./configure --disable-vmthreads --disable-graph-lib \
- --disable-ocamldoc --enable-debugger=no \
- --disable-flat-float-array \
- --prefix=$absprefix
- make -j $mjobs world
- make install
- echo "k='$url'" >$absprefix/bin/ocamlc.past
@ -65,7 +58,7 @@ index 1588011..72117d9 100755
bocaml1() {
grep -q "$3" $outd/ordered || {
@@ -224,7 +191,7 @@ bobjc() {
@@ -227,7 +192,7 @@ bobjc() {
} && vecho "fresh $o"
}
@ -74,7 +67,7 @@ index 1588011..72117d9 100755
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
@@ -278,7 +245,7 @@ for m in ml_gl ml_glarray ml_raw; do
@@ -281,7 +246,7 @@ for m in ml_gl ml_glarray ml_raw; do
done
libs="str.cma unix.cma"
@ -83,6 +76,3 @@ index 1588011..72117d9 100755
if $darwin; then
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
clibs="$clibs -framework Cocoa -framework OpenGL"
--
2.19.2

View file

@ -14,24 +14,17 @@ let
in stdenv.mkDerivation rec {
version = "1.14.0";
version = "1.16.1";
pname = "mupdf";
src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "093p7lv6pgyymagn28n58fs0np928r0i5p2az9cc4gwccwx4hhy4";
sha256 = "0iz4ickj52fxjp8crg573kjrl4viq279g589isdpgpckslysf7g7";
};
patches =
# Use shared libraries to decrease size
[( fetchpatch
{
name = "CVE-2018-18662";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=164ddc22ee0d5b63a81d5148f44c37dd132a9356";
sha256 = "1jkzh20n3b854871h86cy5y7fvy0d5wyqy51b3fg6gj3a0jqpzzd";
}
)]
++ stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
;

View file

@ -4,12 +4,12 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "noice";
version = "0.6";
version = "0.8";
src = fetchgit {
url = "git://git.2f30.org/noice.git";
rev = "refs/tags/v${version}";
sha256 = "03rwglcy47fh6rb630vws10m95bxpcfv47nxrlws2li2ljam8prw";
sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar";
};
configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
, libtool, makeWrapper }:
, libtool, makeWrapper, nss }:
stdenv.mkDerivation rec {
name = "nut-2.7.4";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
};
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ];
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool nss ];
nativeBuildInputs = [ pkgconfig makeWrapper ];

View file

@ -7,7 +7,7 @@
buildGoModule rec {
pname = "wtf";
version = "0.21.0";
version = "0.22.0";
overrideModAttrs = _oldAttrs : _oldAttrs // {
preBuild = ''export GOPROXY="https://gocenter.io"'';
@ -17,17 +17,18 @@ buildGoModule rec {
owner = "wtfutil";
repo = pname;
rev = "v${version}";
sha256 = "0sd8vrx7nak0by4whdmd9jzr66zm48knv1w1aqi90709fv98brm9";
};
sha256 = "1d8lp94cw8rh9r9y64awxafhw9fmp33v3m761gzy500hrxal2rzb";
};
modSha256 = "0jgq9ql27x0kdp59l5drisl5v7v7sx2wy3zqjbr3bqyh3vdx19ic";
modSha256 = "0m180571j4564py5mzdcbyypk71fdlp2vkfdwi6q85nd2q94sx6h";
buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram "$out/bin/wtf" --prefix PATH : "${ncurses.dev}/bin"
mv "$out/bin/wtf" "$out/bin/wtfutil"
wrapProgram "$out/bin/wtfutil" --prefix PATH : "${ncurses.dev}/bin"
'';
meta = with lib; {

View file

@ -2,7 +2,7 @@
, pkgconfig, zathura_core, cairo , gtk-mac-integration, girara, mupdf }:
stdenv.mkDerivation rec {
version = "0.3.4";
version = "0.3.5";
pname = "zathura-pdf-mupdf";
# pwmt.org server was down at the time of last update
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
owner = "pwmt";
repo = "zathura-pdf-mupdf";
rev = version;
sha256 = "1m4w4jrybpjmx6pi33a5saxzmfd8rrym2k13jpd1fv543s17d9dy";
sha256 = "0wb46hllykbi30ir69s8s23mihivqn13mgfdzawbsn2a21p8y4zl";
};
nativeBuildInputs = [ meson ninja pkgconfig ];

View file

@ -1,4 +1,4 @@
{ stdenv, mkChromiumDerivation, channel }:
{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
with stdenv.lib;
@ -18,11 +18,6 @@ mkChromiumDerivation (base: rec {
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
if [ -e "$buildPath/libwidevinecdmadapter.so" ]; then
cp -v "$buildPath/libwidevinecdmadapter.so" \
"$libExecPath/libwidevinecdmadapter.so"
fi
mkdir -p "$sandbox/bin"
cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
@ -67,7 +62,7 @@ mkChromiumDerivation (base: rec {
description = "An open source web browser from Google";
homepage = http://www.chromium.org/;
maintainers = with maintainers; [ bendlas ivan ];
license = licenses.bsd3;
license = if enableWideVine then licenses.unfree else licenses.bsd3;
platforms = platforms.linux;
hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
timeout = 172800; # 48 hours

View file

@ -24,7 +24,6 @@
# package customization
, enableNaCl ? false
, enableWideVine ? false
, useVaapi ? false
, gnomeSupport ? false, gnome ? null
, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
@ -133,11 +132,12 @@ let
++ optional pulseSupport libpulseaudio
++ optional (versionAtLeast version "72") jdk.jre;
patches = optional enableWideVine ./patches/widevine.patch ++ [
patches = [
./patches/nix_plugin_paths_68.patch
./patches/remove-webp-include-69.patch
./patches/jumbo-sorted.patch
./patches/no-build-timestamps.patch
./patches/widevine.patch
# Unfortunately, chromium regularly breaks on major updates and
# then needs various patches backported in order to be compiled with GCC.
@ -235,7 +235,7 @@ let
use_gnome_keyring = gnomeKeyringSupport;
use_gio = gnomeSupport;
enable_nacl = enableNaCl;
enable_widevine = enableWideVine;
enable_widevine = true;
use_cups = cupsSupport;
treat_warnings_as_errors = false;

View file

@ -2,6 +2,8 @@
, makeWrapper, ed
, glib, gtk3, gnome3, gsettings-desktop-schemas
, libva ? null
, gcc, nspr, nss, patchelfUnstable, runCommand
, lib
# package customization
, channel ? "stable"
@ -34,23 +36,76 @@ in let
mkChromiumDerivation = callPackage ./common.nix {
inherit enableNaCl gnomeSupport gnome
gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport
useVaapi
enableWideVine;
useVaapi;
};
browser = callPackage ./browser.nix { inherit channel; };
browser = callPackage ./browser.nix { inherit channel enableWideVine; };
plugins = callPackage ./plugins.nix {
inherit enablePepperFlash enableWideVine;
inherit enablePepperFlash;
};
};
mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
widevine = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
name = "chromium-binary-plugin-widevine";
src = upstream-info.binary;
nativeBuildInputs = [ patchelfUnstable ];
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
unpackCmd = let
chan = if upstream-info.channel == "dev" then "chrome-unstable"
else if upstream-info.channel == "stable" then "chrome"
else if upstream-info.channel == "beta" then "chrome-beta"
else throw "Unknown chromium channel.";
in ''
mkdir -p plugins
ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
./opt/google/${chan}/libwidevinecdm.so
'';
doCheck = true;
checkPhase = ''
! find -iname '*.so' -exec ldd {} + | grep 'not found'
'';
PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
patchPhase = ''
patchelf --set-rpath "$PATCH_RPATH" libwidevinecdm.so
'';
installPhase = ''
install -vD libwidevinecdm.so \
"$out/lib/libwidevinecdm.so"
'';
meta.platforms = lib.platforms.x86_64;
};
suffix = if channel != "stable" then "-" + channel else "";
sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
version = chromium.browser.version;
# This is here because we want to add the widevine shared object at the last
# minute in order to avoid a full rebuild of chromium. Additionally, this
# isn't in `browser.nix` so we can avoid having to re-expose attributes of
# the chromium derivation (see above: we introspect `sandboxExecutableName`).
chromiumWV = let browser = chromium.browser; in if enableWideVine then
runCommand (browser.name + "-wv") { version = browser.version; }
''
mkdir -p $out
cp -R ${browser}/* $out/
chmod u+w $out/libexec/chromium*
cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/
# patchelf?
''
else browser;
in stdenv.mkDerivation {
name = "chromium${suffix}-${version}";
inherit version;
@ -68,7 +123,7 @@ in stdenv.mkDerivation {
outputs = ["out" "sandbox"];
buildCommand = let
browserBinary = "${chromium.browser}/libexec/chromium/chromium";
browserBinary = "${chromiumWV}/libexec/chromium/chromium";
getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
libPath = stdenv.lib.makeLibraryPath ([]
++ stdenv.lib.optional useVaapi libva
@ -113,13 +168,7 @@ in stdenv.mkDerivation {
'';
inherit (chromium.browser) packageName;
meta = chromium.browser.meta // {
broken = if enableWideVine then
builtins.trace "WARNING: WideVine is not functional, please only use for testing"
true
else false;
};
meta = chromium.browser.meta;
passthru = {
inherit (chromium) upstream-info browser;
mkDerivation = chromium.mkChromiumDerivation;

View file

@ -1,16 +1,24 @@
Minimal WideVine patch from Gentoo:
Description: enable widevine and set its version string to "undefined"
Author: Michael Gilbert <mgilbert@debian.org>
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r1.patch
BTS: https://bugs.gentoo.org/show_bug.cgi?id=547630
--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
@@ -10,6 +10,7 @@
#include "third_party/widevine/cdm/widevine_cdm_common.h"
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
#define WIDEVINE_CDM_AVAILABLE
--- a/third_party/widevine/cdm/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/widevine_cdm_version.h
@@ -11,5 +11,6 @@
// If the Widevine CDM is available define the following:
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "undefined"
#endif // WIDEVINE_CDM_VERSION_H_
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -99,7 +99,7 @@
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
// bundled and not a component. When the Widevine CDM is a component, it is
// registered in widevine_cdm_component_installer.cc.
-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+#if !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
#define REGISTER_BUNDLED_WIDEVINE_CDM
#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
// TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support

View file

@ -6,7 +6,6 @@
, fetchzip
, patchelfUnstable
, enablePepperFlash ? false
, enableWideVine ? false
, upstream-info
}:
@ -44,60 +43,6 @@ let
echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
'';
widevine = stdenv.mkDerivation {
name = "chromium-binary-plugin-widevine";
src = upstream-info.binary;
nativeBuildInputs = [ patchelfUnstable ];
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
unpackCmd = let
chan = if upstream-info.channel == "dev" then "chrome-unstable"
else if upstream-info.channel == "stable" then "chrome"
else "chrome-${upstream-info.channel}";
in ''
mkdir -p plugins
ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
./opt/google/${chan}/libwidevinecdm.so \
./opt/google/${chan}/libwidevinecdmadapter.so
'';
doCheck = true;
checkPhase = ''
! find -iname '*.so' -exec ldd {} + | grep 'not found'
'';
PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
patchPhase = ''
chmod +x libwidevinecdm.so libwidevinecdmadapter.so
patchelf --set-rpath "$PATCH_RPATH" libwidevinecdm.so
patchelf --set-rpath "$out/lib:$PATCH_RPATH" libwidevinecdmadapter.so
'';
installPhase = let
wvName = "Widevine Content Decryption Module";
wvDescription = "Playback of encrypted HTML audio/video content";
wvMimeTypes = "application/x-ppapi-widevine-cdm";
wvModule = "@out@/lib/libwidevinecdmadapter.so";
wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}";
in ''
install -vD libwidevinecdm.so \
"$out/lib/libwidevinecdm.so"
install -vD libwidevinecdmadapter.so \
"$out/lib/libwidevinecdmadapter.so"
${mkPluginInfo {
flags = [ "--register-pepper-plugins=${wvModule}${wvInfo}" ];
envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "@out@/lib";
}}
'';
meta.platforms = platforms.x86_64;
};
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
version = "32.0.0.255";
@ -140,6 +85,5 @@ let
};
in {
enabled = optional enableWideVine widevine
++ optional enablePepperFlash flash;
enabled = optional enablePepperFlash flash;
}

View file

@ -1,9 +1,9 @@
# This file is autogenerated from update.sh in the same directory.
{
beta = {
sha256 = "0m7xdpi1f2a33csd7bsp91g5klz0hmr83ksfwsd2fki3iipvfs4w";
sha256bin64 = "1b4cyf4v55sy52mxxl8d70abg5ck5k45jaqdjsjw7dvh3s2x4bwp";
version = "77.0.3865.42";
sha256 = "12cp24h93b48pwfywf5b6qvjdlhxrhp87qdaqbfcn6g787r2z5gb";
sha256bin64 = "0d9w869qqwbmw3qjvxkfm37i7dvrgmrwm5y96sm1dg2jnxqj4bdz";
version = "77.0.3865.75";
};
dev = {
sha256 = "0x5r6xqwiggwyzbinm252xc1n3f9r7cmmzj6assi4v1nsispdh2k";
@ -11,8 +11,8 @@
version = "78.0.3887.7";
};
stable = {
sha256 = "0hajwjf7swlgh1flpf8ljfrb2zhmcpzvrigvvxqd36g3nm04cknm";
sha256bin64 = "0hdsla8i3q0zbczia64ghqsf420alcc31xdishx1sv48x3rlrxkk";
version = "76.0.3809.132";
sha256 = "12cp24h93b48pwfywf5b6qvjdlhxrhp87qdaqbfcn6g787r2z5gb";
sha256bin64 = "1wp5g09czyslkkhw3nhbp39fxfcz0pprsgj8h0aggghpdbvzph3d";
version = "77.0.3865.75";
};
}

View file

@ -70,11 +70,11 @@ rec {
firefox-esr-60 = common rec {
pname = "firefox-esr";
ffversion = "60.8.0esr";
ffversion = "60.9.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "0332b6049b97e488e55a3b9540baad3bd159e297084e9a625b8492497c73f86eb3e144219dabc5e9f2c2e4a27630d83d243c919cd4f86b7f59f47133ed3afc54";
sha512 = "4baea5c9c4eff257834bbaee6d7786f69f7e6bacd24ca13c2705226f4a0d88315ab38c650b2c5e9c76b698f2debc7cea1e5a99cb4dc24e03c48a24df5143a3cf";
};
patches = [

View file

@ -95,18 +95,12 @@ let
srcs = {
x86_64-linux = fetchurl {
urls = [
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
];
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
sha256 = "00r5k9bbfpv3s6shxqypl13psr1zz51xiyz3vmm4flhr2qa4ycsz";
};
i686-linux = fetchurl {
urls = [
"https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
"https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
];
url = "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
sha256 = "1nxvw5kiggfr4n5an436ass84cvwjviaa894kfm72yf2ls149f29";
};
};

View file

@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.12.0"; in
let version = "0.12.5"; in
buildGoPackage {
pname = "kubecfg";
@ -10,7 +10,7 @@ buildGoPackage {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
sha256 = "118p1fy6cihswwz03vp62cz8395hgfqd82nmfkw88fx7av23rfhb";
sha256 = "0pn37qkwn3kdsd0z3qxk95lqjn2zak7gkk0pwlqp26jmrx0vv18l";
};
goPackagePath = "github.com/bitnami/kubecfg";

View file

@ -0,0 +1,58 @@
{ mkDerivation, stdenv, lib, fetchurl, rpmextract, autoPatchelfHook , libuuid
, libXtst, libXfixes, glib, gst_all_1, alsaLib, freetype, fontconfig , libXext
, libGL, libpng, libXScrnSaver, libxcb, xorg, libpulseaudio, libdrm
}:
mkDerivation rec {
pname = "hpmyroom";
version = "11.1.0.0508";
src = fetchurl {
url = "https://www.myroom.hpe.com/downloadfiles/${pname}-${version}.x86_64.rpm";
sha256 = "1j7mzvf349yxb42m8syh73gpvil01hy1a2wrr0rdzb2ijfnkxyaa";
};
nativeBuildInputs = [
rpmextract autoPatchelfHook
];
buildInputs = [
libuuid libXtst libXScrnSaver libXfixes alsaLib freetype fontconfig libXext
libGL libpng libxcb libpulseaudio libdrm
glib # For libgobject
stdenv.cc.cc # For libstdc++
xorg.libX11
] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]);
unpackPhase = ''
rpmextract $src
'';
installPhase = ''
runHook preInstall
mv usr $out
runHook postInstall
'';
qtWrapperArgs = [
"--prefix QT_XKB_CONFIG_ROOT : '${xorg.xkeyboardconfig}/share/X11/xkb'"
];
postFixup = ''
substituteInPlace $out/share/applications/HP-myroom.desktop \
--replace /usr/bin/hpmyroom hpmyroom \
--replace Icon=/usr/share/hpmyroom/Resources/MyRoom.png Icon=$out/share/hpmyroom/Resources/MyRoom.png
ln -s ${libpng}/lib/libpng.so $out/lib/hpmyroom/libpng15.so.15
'';
meta = {
description = "Client for HPE's MyRoom web conferencing solution";
maintainers = with lib.maintainers; [ johnazoidberg ];
license = lib.licenses.unfree;
homepage = "https://myroom.hpe.com";
# TODO: A Darwin binary is available upstream
platforms = [ "x86_64-linux" ];
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
{ stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
, gcc, nettools, iproute, linuxHeaders }:
# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
@ -8,14 +8,25 @@
# so I'm sticking with 3.4
stdenv.mkDerivation rec {
name = "ike-2.2.1";
pname = "ike";
version = "2.2.1";
src = fetchurl {
url = "https://www.shrew.net/download/ike/${name}-release.tgz";
url = "https://www.shrew.net/download/ike/${pname}-${version}-release.tgz";
sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y";
};
buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper nettools iproute ];
patches = [
# required for openssl 1.1.x compatibility
(fetchpatch {
name = "openssl-1.1.0.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/openssl-1.1.0.patch?h=ike&id=3a56735ddc26f750df4720f4baba0728bb4cb458";
sha256 = "1hw8q4xy858rivpjkq5288q3mc75d52bg4w3n30y99h05wik0h51";
})
];
nativeBuildInputs = [ cmake flex bison makeWrapper ];
buildInputs = [ openssl libedit qt4 nettools iproute ];
configurePhase = ''
mkdir -p $out/{bin,sbin,lib}

View file

@ -15,13 +15,13 @@
}:
stdenv.mkDerivation {
name = "dino-unstable-2019-03-07";
name = "dino-unstable-2019-09-12";
src = fetchFromGitHub {
owner = "dino";
repo = "dino";
rev = "ff6caf241c4d57d3ef124a8b7c3144a09f320ea0";
sha256 = "1gjxfnywlypi3slvxb91b2mycrsqjinmafnkkngahyikr7gmqgnf";
rev = "c8f2b80978706c4c53deb7ddfb8188c751bcb291";
sha256 = "17lc6xiarb174g1hgjfh1yjrr0l2nzc3kba8xp5niwakbx7qicqr";
fetchSubmodules = true;
};

View file

@ -3,13 +3,13 @@
, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
let
version = "5.3.1";
version = "5.3.2";
in stdenv.mkDerivation {
pname = "franz";
inherit version;
src = fetchurl {
url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
sha256 = "16ssg4cjjmq3cps8klyx3jxqma7f83cczwjnknlfqglrwwdpnb5d";
sha256 = "19mfw0wgjdhq38p0xvixdxvk07j3rdwlw87p8gjh4yi1qv0paj4i";
};
# don't remove runtime deps

View file

@ -1,13 +1,13 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation rec {
rev = "779bf26f7d9754879fbc1e308fc35ee154fd4b97";
version = "2019-09-07";
rev = "f760176c6e133667ce73aeecba8b0c0eb8822941";
version = "2019-09-11";
pname = "slack-theme-black";
src = fetchgit { inherit rev;
url = "https://github.com/laCour/slack-night-mode";
sha256 = "0p3wjwwchb0zw10rf5qlx7ffxryb42hixfrji36c57g1853qhw0f";
sha256 = "1kx8nx7mhrabs5wxqgvy86s5smy5hw49gv6yc95yxwx6ymwpgbzj";
};
dontUnpack = true;

View file

@ -1,49 +1,40 @@
{ stdenv, fetchgit
, pkgconfig, makeWrapper
, qmake, qtbase, qtquickcontrols2, qtmultimedia
, pkgconfig, wrapQtAppsHook
, cmake
, qtbase, qttools, qtquickcontrols2, qtmultimedia, qtkeychain
, libpulseaudio
# Not mentioned but seems needed
, qtgraphicaleffects
, qtdeclarative
, qtmacextras
, olm, cmark
}:
let
# Following "borrowed" from yubikey-manager-qt
qmlPath = qmlLib: "${qmlLib}/${qtbase.qtQmlPrefix}";
inherit (stdenv) lib;
qml2ImportPath = lib.concatMapStringsSep ":" qmlPath [
qtbase.bin qtdeclarative.bin qtquickcontrols2.bin qtgraphicaleffects qtmultimedia
];
let qtkeychain-qt5 = qtkeychain.override {
inherit qtbase qttools;
withQt5 = true;
};
in stdenv.mkDerivation {
pname = "spectral";
version = "2019-03-03";
version = "unstable-2019-08-30";
src = fetchgit {
url = "https://gitlab.com/b0/spectral.git";
rev = "0473f25d38a064ee4e18203ec16eeae84fea4866";
sha256 = "1n09ginw6g0p42xj3zgxm52dvyyvj5psllv70vx21i50lvkbh9rw";
rev = "ee86c948aec5fe72979fc6df97f4a6ef711bdf94";
sha256 = "1mqabdkvzq48wki92wm2r79kj8g8m7ganpl47sh60qfsk4bxa8b2";
fetchSubmodules = true;
};
qmakeFlags = [ "CONFIG+=qtquickcompiler" "BUNDLE_FONT=true" ];
#qmakeFlags = [ "CONFIG+=qtquickcompiler" "BUNDLE_FONT=true" ];
postInstall = ''
wrapProgram $out/bin/spectral \
--set QML2_IMPORT_PATH "${qml2ImportPath}"
'';
nativeBuildInputs = [ pkgconfig qmake makeWrapper ];
buildInputs = [ qtbase qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative ]
nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ];
buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm cmark ]
++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin qtmacextras;
meta = with stdenv.lib; {
description = "A glossy client for Matrix, written in QtQuick Controls 2 and C++";
homepage = https://gitlab.com/b0/spectral;
description = "A glossy cross-platform Matrix client.";
homepage = "https://gitlab.com/b0/spectral";
license = licenses.gpl3;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ dtzWill ];

View file

@ -1,615 +1,615 @@
{
version = "68.0";
version = "68.1.0";
sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ar/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ar/thunderbird-68.1.0.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
sha512 = "4fad3c7c4099f70253bfee450bcefe458bec61430720fcadde1fe8a1cbb2e62a18d9c55943f850c57f8d788c973774e24590823086cfacbbb2ccd8a99ce4faae";
sha512 = "b9bb22bdbe013358c03e804e3c51ad387dca503b9e0074db70494eb3f331d72bd8679db929972e75b39f2464d384753bcab9947d1a843a69167d7b3706952c35";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ast/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ast/thunderbird-68.1.0.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
sha512 = "aac850773381d7fdb4d50fafe670449301f073f7388f92a1ca38d9b7256ffcd244b63e9fc0ff2f8ef5ccd853b97016b7e05eb751be1bdc8df9623481f15d55e6";
sha512 = "e00382241343bbd8a86e31dfcf5bbb060b46e5db6211cfa54c7192361353e2c4fe3d0ad3f4e0319ec1a0dc1f4590b7bc0271e5658bc468986d8e27a64d9924da";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/be/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/be/thunderbird-68.1.0.tar.bz2";
locale = "be";
arch = "linux-x86_64";
sha512 = "6521d818984bbfba195e847735c1228ff637d3079cff1f5a461ac20a079d325adfc1d7b2eca54f63e584a5cbd2007cef42a625597276a1810158931335f09cd9";
sha512 = "f043c8aa5dac0d5e2f9da628d6659f654cc39726677424e4b5e5005e97bf202575f569ebdee346d37cc8d4d59da188e6cfe1bd6bf7df1acafe26b489242b4a9f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/bg/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/bg/thunderbird-68.1.0.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
sha512 = "a0a738b6877225a5b98691d53a8f4a4bf575472a0d5feb8b77a67cd1fc9951772f1ab507b7ba460c0b62b87ab476c5c94130cbe7275692e3a99e5d2ef0bd89bd";
sha512 = "61fcf864145fb4fd4a05bff47bd23a7be8444f9d067eec246399c3a7ce48db8744ba4a9cb42e28a215a5bb1b336a57c51d1a32e6564f42c8b9fd4dba5f629d9f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/br/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/br/thunderbird-68.1.0.tar.bz2";
locale = "br";
arch = "linux-x86_64";
sha512 = "58d21d9e55abed644eb16ba98a5fb3277e0a31b935d279b09745262952895c2c2aed31817e6157410137ff82fc5d242b64268f646c3b7b691c55c5f3ea36e0e6";
sha512 = "1cdc9b2a8ee82bb087a51ac013644ff3da5f1e161fca23fb24feae8076cef6c5aff5316f83a8ecfa4f08c3a8642501a333d3ef95b46b8f899ce78b79d027af4c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ca/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ca/thunderbird-68.1.0.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
sha512 = "cd401259f2cc4ec71ff9d936a1f2f64a064afafed2e305bb359f79eddf1159cd6a7c84ce54cde6be94f6acd295dbedf54017d9f4592ee3637eea00496c7cfbf1";
sha512 = "1b73ca87f3067ec2a84990c7c58060b11286dd653f4b8b4c18a44f5540ea195d25f995539de39b6e1de6cbbe54c890bf30f6d88157e000e30c69f4d32a4ae8f0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cak/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/cak/thunderbird-68.1.0.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
sha512 = "45ea4af30ff93500d1671c6a0eeda993692b7204a7504a91ad30bfd5155add5af902205240fd62f80abe339224e686473f2d13f466ba96269347207ed3f628b5";
sha512 = "1b2ec85786a842c7554f52b1ff72c4e5611a76bca94c4b8e9a79604d6b85d7f2deba906bbeca355dfd0c5a6c241d9bd397f4e0dfebd802cdb0c35162a02fd879";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cs/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/cs/thunderbird-68.1.0.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
sha512 = "9f81f92a3b1710d006cda79f1b92923c1ea637a24654bd622af9be1f53a0024c5daa77619443514c9e607cb62f96403f5b7f426b3692227c0b56d1b14f51ca97";
sha512 = "69df6542c5037815d3a80be764eaa809dd351f75417e4362a258df5e17e36aef6d8f8653429f4218f196ff096252e0304c2cca1cccbf8693d119bc05f1072067";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/cy/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/cy/thunderbird-68.1.0.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
sha512 = "c90467a78bc82667d974b1e94227b7d4185878654188967d97c11e419ec7a03e4e5e3636466a0b6d35beaa98b717a26341e3a652c3b21083ad8ad0b23f063ed1";
sha512 = "5dc63d2746475f0045f7749e45bbc3f755b187521b0ca877ffab9386bb1bbe9b4fd66f9cc6bdac516ba591e71d71f02a75b5c965a610a3efbee3b59815d8deda";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/da/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/da/thunderbird-68.1.0.tar.bz2";
locale = "da";
arch = "linux-x86_64";
sha512 = "f49bd5689d2a4dd311b22a23da9f26559685f1c4663eb1e482b45b79544ab4401a17701f33b6ad083e7a8983185fcb16fca4c8026138f24be495c6cbb6401488";
sha512 = "89427a2b66dbd71cdfbb299a14ce7ed61ab4836e473854ea8b2ec522de64870f8886f6ae86428c9b1c86733aaa4ac7c732a708fccdd70d3e112d2f651c0dc762";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/de/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/de/thunderbird-68.1.0.tar.bz2";
locale = "de";
arch = "linux-x86_64";
sha512 = "579d979cfa0bbe50fd0bbf0d15b38d90579bc065b488a2e9d4e3f18f505e71c50225d92185559578146097110760ed3807e1aefad4862d99e247447478d6bc42";
sha512 = "34130ec994f6ee6a407313ccc61d43b0375046f59f75d4fb619776d5c880993802c16a3b8ec28dc7053b4ae89f91f1c2046da7d884d150aa7c3b65edd1650b21";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/dsb/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/dsb/thunderbird-68.1.0.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
sha512 = "8d16bf47d368a670cadb6a2655933d5b49a796272f7dafd948cac95a2ae541561a38fa418cd4ed0c4aa79ef63a441ee769eeb2a071734abf2cc1ba243d4f3ba5";
sha512 = "0b9c02a1e31f8f3120fb9ed520c53505dc247440ba2e189cbc58569be5ce6e0c33de220ebda17754338aa680cf5c8aac3ad7f5da14e0cbefc29f32db2446618a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/el/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/el/thunderbird-68.1.0.tar.bz2";
locale = "el";
arch = "linux-x86_64";
sha512 = "579b9114af9fda86e79e6812946da858945e2034ed2f00e4244724ecdd680b7db5601a4d573b530dc15207caac9245f6883343684eb43f3ae2abb64853c0b54f";
sha512 = "1d8e2efc2c9a7375a2ce0f2137165756800a680209d18612420581963f13774fc7780ac0ccda24a485996531d1e82e027b42a671f1c8fce5e8ccf0887f72ac6f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/en-GB/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/en-GB/thunderbird-68.1.0.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
sha512 = "f7caed8c3b49714e4449ef971ed1a21e40f28625c84e9342f63e5f73743689ee2c0e9ed4845f6667bd22732c62bd707db425f22a5c074dff8622cc4536ba9c29";
sha512 = "79684a833afe5d1025088d6f91e023c81832e9df83751926c5d9bc05fecb7f53d6efd096f55d65d45fa07309497cf5bed2e3b00cc4a80cc1e4ed2a0fe44d02a8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/en-US/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/en-US/thunderbird-68.1.0.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
sha512 = "257528761f0eca38528ded4b31329886093418f562aa2fac73b3a5bedda51fe80b34758c10afae1735cf37b37a86413dcf08642aecb1e8bea1fb6b0b94ade5c7";
sha512 = "7a29cf0a238e44a2051b53e5476bc8f622dffd088251b66d951ad6874fba5fba180f440c80c7d5ae154c688d3e29fcc6c889f0031d81a018b7fd1dfd53f112a5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/es-AR/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/es-AR/thunderbird-68.1.0.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
sha512 = "70a10e329b1031a2fd2ffb2b60459f0238ff3f5e5d80533f4be6cb22ae77692ec079ca3e146bd9a59edd09c266cec92d922a18ba45f8626a4bd44e290d3c0927";
sha512 = "d9d62f94af40ba69240b792b3ef2d93efef20b01b4289e992f7d1192147029574f86fa21aed5ad54489d1e5ec1f3b80cd9601e71e2ba9c903582ccd7aed278a8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/es-ES/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/es-ES/thunderbird-68.1.0.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
sha512 = "a03098ad7d83b86cd316c56b69589370fb8bad041b93f90f61514b04e3d0e78385f779ed715c6e22e45597d1bf03676046cbc1eae7896bb2a309af3683c8bd1e";
sha512 = "d720320494b2c8431004e0d1ac24ff8fef83bc0977f44653d0fdab99fbc9a1aee6d5aecd7cbf6002e3746d04156f47aeb57367f2b30f4690efba36c3297fbeb0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/et/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/et/thunderbird-68.1.0.tar.bz2";
locale = "et";
arch = "linux-x86_64";
sha512 = "44efeaf030580dd7b55770627678808e34d689e85191852c2e5fcb223a0fdd0e5386f21f03524d0983aeded7f8ed99382ff2c372c8c5a1fdfe218bd5b10ccd80";
sha512 = "8d9ba13604fab4eb9a3dec8894b04d52f9677d5f82695512680ff03740a66e96786f69476071741c8086a09070fd03786e8fae7f94bb3bec9075331fe4dc144b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/eu/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/eu/thunderbird-68.1.0.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
sha512 = "c670be5932d7e8bea28cffda7c119cfdfd5823f76b2c97251ec23ec16e420a8b7feb5f2251d89750b956d3bf3baff5d17393c05d8c265d0a98cc3faea8f85735";
sha512 = "e40110a94b3d7fb42707287dc695ea09b082fa3262d05b39a0c09002c32722630711f1b0131441c919b23130ed133338239060726cfc9d6c0b49822558081313";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fi/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/fi/thunderbird-68.1.0.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
sha512 = "36aa0b47e9b5d91fbc812a3d63503924a8ca227d7b7084c1159419092b17da9c1b6e89fa046c636dbcff7776f9a1d8465e660b47f1753505f0d2eb85da9c3a7a";
sha512 = "d8778ddba26f544a4721b9118ce5726b04fdf09758272b35ca16c14aea61d0b8271888344e742feb4d4e758182e97b01758acd53ad622a66117e3eb0d4a6d336";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/fr/thunderbird-68.1.0.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
sha512 = "b1e7d345d3dd38725227b5e09c4f3cfcf29ed3a98b0580fbf6ae1ecab4414d09e307423495b75769a8d2ee3ab4700cd6eba3d95ce05612e1d8290d3f5a3ba988";
sha512 = "2cd546d40bedf09b58703b0b11a5c9349d702540ae714942e0152a19cbecee51f37c7e217fadfc719ecfebf914f9ffad6b3070bb6471d395e8f5ff8ada754551";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/fy-NL/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/fy-NL/thunderbird-68.1.0.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
sha512 = "4065a083f49006dacf64f084c1bf26c4c1b8d53bca7eba7a56d66bb035eaae2c4528687c5c1e2213f92adbba17ff92eb54f897d3b0ef6d27b8effbee66ca555b";
sha512 = "03f52224f145917f64e8962b68bcf3810543b5bf0508dca7965c5a385c4f87bc7d236dac217594fdd2a10afe31da8aadc674eaf7b226e189b598011a8b9e223a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ga-IE/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ga-IE/thunderbird-68.1.0.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
sha512 = "2ae9a0860513e90d1742e5c17220b2367e61273eba04738cd29e9ab497b86f9a1d78b38b21da84b1f214f3368ee114d376b05eabe0aac9a1ec07ca6a4b399070";
sha512 = "931257466ce7134b9852c2627f34efebc031b3dfc9fb7b5e344665da7fa52ac1fcd12a8848fd9a264a900e98ee3383d3ee6c251de58c1432127a8ce8f1c100e1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/gd/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/gd/thunderbird-68.1.0.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
sha512 = "d2315aca9d8e5bb35b21cab46a48e51f09200b056da2682201c32eb4fd3d0379a24a6926ebcf11e9c70d70fd20152fc24d5197a78cdb3c8ea3cc2399d784b463";
sha512 = "ee3573fe9af5fae39aa053061ef82207ae6669e6764637f6ddef5f8ee3cebf362dfecf5cf5e9e208392f3fe79a0c1a56aba28f372e2e279b33a1f1e3a58851f3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/gl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/gl/thunderbird-68.1.0.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
sha512 = "52d9210e857c1b6cb665a2ffa71cfa5e67c3718b210e2b4b42839d8f25987170f1603fa55d324003a4be821ba74093ff92d632e688e44b87ebf51dafd02f69a2";
sha512 = "73ba3965d522aac8f9d5af87856a7e2f71cb7ed850f240be56eab9426f91e5356810a12da7cb91bc223cb14eeae3ecb89a2afeca48641ce4debefdaed05aeed6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/he/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/he/thunderbird-68.1.0.tar.bz2";
locale = "he";
arch = "linux-x86_64";
sha512 = "e7b5a16950be233fe8a49152184270a901bdb4bcc14769401d4b5a21fd2a3ab9d395ed8f6b61081330386723725252fceff09bf9fdde3a71135a98d8ae45089b";
sha512 = "abd4f47d571037c4340dd3118a517f3421a3e3597efa1ad7ab14cf537d4b4e226144beb0a6c54a45ec272ab428ee8ed95083d31554ef2aa0022712dd832a1585";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/hr/thunderbird-68.1.0.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
sha512 = "1ed224dc0864009edc6389f9b3b063f56b15be982c2e2915f1a2f773bfc78e6b81ec0ab02e03f7ade08f47260be597003f8119116576f4fe5dd490e85cd3d4ab";
sha512 = "32a18d8666fc2b7566807a010d94bf5503b375c5330687aa58efc2bc6464e4f910947ea513a6ebb6b7eadef0e552138a5349583e6894b3166ef6f8d53d5cf67b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hsb/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/hsb/thunderbird-68.1.0.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
sha512 = "f4bcd8a199bafd544687b1e890694dac2b598d4fd79818ab19441ae9be579a9928fd8c7fbae43e322fced15ff39314fbc88be94ce2fe12b5d2ec2ba003a219a3";
sha512 = "58794aecdb5f3824e94f2bde4e4080d4922648bac632cfdffbc5304329af64f9e5ef01fc587c4e19e88f206004cc4254503513d7bfddecdb6778de89e4ca6bc5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hu/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/hu/thunderbird-68.1.0.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
sha512 = "28223aec237fce2f07b0c3b454a8339bbd2f195d6e263c5a5723e04bd5df1128d58a6bc6c7275cdbeefd5161a405a2d6340303faa79d9330abd0e70de9facbfb";
sha512 = "c7881770fc75a6b1eecc5c481e2de134a241b7a497e19ff2abf08aaecf65006f054090a53b028202becf7776d3939742fa71156e6761f981ff7a00ca0d1d7d3f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/hy-AM/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/hy-AM/thunderbird-68.1.0.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
sha512 = "d7dea23905f8bc8dfde92082f90278b76477eb3036c7fc4abe656e37af9d389d37f3b166492df210eeab03750d85cbcaf1340aaa26ab723ca1b70299b4a64ab6";
sha512 = "80f5fd19da8e07a6d40c19c645eb8fd6964f9904cd14df36374170c4d395146d168728953d1619965f04b3f2295df3d379650e97f8320587816ee088e2f17a9e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/id/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/id/thunderbird-68.1.0.tar.bz2";
locale = "id";
arch = "linux-x86_64";
sha512 = "f55ad81a1dc80838a9ab045899e0f16bb077d05d73119705f820f6fe8c8c7a550e05cc68cb7ca0aa8861cbd70bc9f061ba51a4749db6c37d90e7e7bda5dcccdf";
sha512 = "efffdd32086ca57e93b1ebcb40484a3c2243d6b088c70d7b20bcdb38925e7fb64be4446c98980a53738f54dadb54a2d17016adc69bd2a47a9719bb7bb982f729";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/is/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/is/thunderbird-68.1.0.tar.bz2";
locale = "is";
arch = "linux-x86_64";
sha512 = "503c236102a15428e41a21b458ecc29986abff4e434f4e26ec9741b2facf39a8fc2ae9dff5aeb32fe3c9ca0dcb6e914a2acf229ae9caecdc4f064380f126ecf7";
sha512 = "277d1137675c6304b28f43273c5a3fbcdf0d2188cbaa38911d784df98b3429eb6d2667b818a292e4c3bd4019b2b682463c2d01faa0a034cb4fc1dd49ba8aab33";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/it/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/it/thunderbird-68.1.0.tar.bz2";
locale = "it";
arch = "linux-x86_64";
sha512 = "51a736932baa5c810a29de46eba64b0fcd2703da38ba9449b6b06a9412562e80853367416c5b4d6c6834eb7a2186f434e426099ede56d9342860e4f3561455eb";
sha512 = "6932697d769f98dcd32f3dcda57dfa154314e29bfd2c1b11a2b9a8aeb8395f00fdb0d1c71b8e9d405d1540cde21547a910a55024b799e270759d8638a3d11512";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ja/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ja/thunderbird-68.1.0.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
sha512 = "7a00080835155d301f65a35684d81f8e3a3be23d927d939da84a2a887057bca0b75d5b580a004b4f797af504a6812f71951bc3c75ccb24dad60b6cca770cc7a1";
sha512 = "034021e89c471429367807f04d79dbe877d0ebc94f584fa6c0bec3a29f279f1d6dfc85f709b26e9d11c8ebcc1f42adb9a458137c032a73ae2b69f7238d31ce76";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ka/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ka/thunderbird-68.1.0.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
sha512 = "eaf67c64275495fcb08aca63953406cd7815ec356ee0a1edca8a5e8dacd924a9c11e35dbe4ad17a1617199a5f66489bb553a7a5177eb629223b49a9adccff803";
sha512 = "7af1caeda9babac2a4c9b456233e86be32bcd14b6dd81cc18a1874dafe86c5b80099d0ce388a70fe6e74bb7b0d00d3b7ce810ffcbae143eadf6d8c4367567c27";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/kab/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/kab/thunderbird-68.1.0.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
sha512 = "9432bbba0965b6da04495b79ef4db3bdbe69476b20650b4d6407d921cf07d09950368f0c13211ea6743b621d486bf71dce0e60d8ceefd82b48a8f2581a3fd7ee";
sha512 = "d8e7e7d423f36d40ce05cf1378278c47049fca0ba415466028dd821b12970fb78fbadfbb7b7390ec446aede490f07f979b94ef890a43a710e3a1f66a0c68937a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/kk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/kk/thunderbird-68.1.0.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
sha512 = "9bfb99694bcf1227162607e2b674abb00343e4da3876999430d6014cbd4f4aa6c6e9ddca7c7f3b144d101c1a5a6d38772e3750f5feb41d1f304b89a8c1e6ec15";
sha512 = "339c8e86693a34c8a2da5e47924e545f0fa55d5314db73c6bb23df3eabed29dd6cf47662a8c4e43c381ede5098aba72887739993b4e71db75e41de3d1d777c3a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ko/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ko/thunderbird-68.1.0.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
sha512 = "fd260740ccd74afae7af664775954acfd176b47176f48b5300f11bd77bc31205d0bbc2d06a701486e9742ffb38ad4aa2b253041b9d9518a4b9c7dbbe41aca264";
sha512 = "ba80df01778f8fa95dd32bf0af55afe7fa828a489c4682e6a8891636281031170b9fff77ae4f2e4bbaae9124946b0429e55bbed741973d80da868d94e29991e8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/lt/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/lt/thunderbird-68.1.0.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
sha512 = "fb7a7b6d0c7d58d13b3ec20c8176ee793cac5c53bf849e3b3c4aaeff0f3e897cc35e61a9dfa4055c691fd56f280f7b31e04999922c29ecc89294ea6eeac16cd3";
sha512 = "32e93ec3203b70c2dced59a376bf7379879b5361f55a396d533e1f10727482b357344c9890864279eff9aa6d75feb1b36a67f2293c51d3a3222183f62c51e477";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ms/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ms/thunderbird-68.1.0.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
sha512 = "7490a8169079569143c63f85e7da299d28ea423fb95265e2e86ec724ff0da641e24a2e9ea612d180d523973522f40c250bfd56e66ee39b28cb9acf57f6be6831";
sha512 = "29190352e1bbfe30b1e98d2a7fa20268488d82aefbdb4de1f8c2e197ed9f196be8256050f48d71ec6475b707d93d0570002fb175cd88fac89aca5e7140a7cbfe";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nb-NO/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/nb-NO/thunderbird-68.1.0.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
sha512 = "7256820ea97851319e51616f6eb45617983e76e74b46ae62a02e22d13e2dd6abd590fd265aa6c88ac14b2f0276219580b6b9fbd956f1eaa38e6a93329b9c9621";
sha512 = "8e076d0967b0b79ac2cc9ade63e1bea4d27db1c050f792f1d1da01758a576fad884fdda32a02d58d45cf4c615f38c44bebc80c6e864ee076212f280398602892";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/nl/thunderbird-68.1.0.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
sha512 = "00f32145c861abd8f151d7840d0f01eb9d4190df65e5a179f999f3149477f2de7f796782eb7ef912fcbec005d65c76974185d1c0105dea862cbc22c821bc906d";
sha512 = "7bee338542f949d86700d9b67d26c059232ba96cba991e491e6380f1ef914e7ee2747c9c73907e393bcc83c7f05ec6e656d869980c2c03ba0a548ae120793030";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/nn-NO/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/nn-NO/thunderbird-68.1.0.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
sha512 = "3ac255b5bb4b352833fd56d5aceaba6d0ada571630a993729970ae99d5067f05ba22e6ef50fa7dd099c0eb5874f11aeed32718c56a80538e28b401ee6b7900a2";
sha512 = "33b67ce4100a61461a238189e06b623a067e5f1b550fe5f20b5686f597408f3d7eaf45c92bbf5ffe58ff96c99fac9b9e282b024e40829d4d9d4422e54cb7293b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/pl/thunderbird-68.1.0.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
sha512 = "19ab4bde9314dbed1bca7565698a7b1231767ef9cc792a49e7e9d679453ae8209e6f68c63ea0a24bd9e3a97328dceeedd109bfe28038108b52b9dad366f28787";
sha512 = "860c606fffb3ae85193b4c919783c94ea1a84c2579316cef98adc247d7d595b01dc6c2e84662641c7285dfc65097f710d7d2605efd960847739ab4acfc296836";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pt-BR/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/pt-BR/thunderbird-68.1.0.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
sha512 = "68e28b657b885e7823dca0d091f2609556d560a50b5e6c285cdf467ae2b09743406baa2e544f17997519c219e0d4e8911115d30e7b0c35f09b956e28b311f8d8";
sha512 = "3093207072a79d9556c4e1ca2fa75d990a3952d583f0a4fe8c850a4911b1af19e3ac08a357d239d66b22c397f6722b8625fee03ca1f2b6a8f21dc61fca348541";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/pt-PT/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/pt-PT/thunderbird-68.1.0.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
sha512 = "41623568d2e78b821a89480836f8d8c739f6983b80ce26017d12fd9363016158fa6c629e030f63aba6e730e554b7717fd2ee58e0246aa82b46fe55d5d6be9933";
sha512 = "5d29ed9a8e8c768a3749801dc191b27aecf7994a4afa02e70de823ed1eabe4e936bd7686830359aa48321681396aff29ead762ab28c7bda6f8aec36117e8cadc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/rm/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/rm/thunderbird-68.1.0.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
sha512 = "a2cabac0ff5e3bb4a8dde4e884ba4647792e0935ef0a61b56470c67d3ba9c2310a07c2d2da51f7b4cb5fc3e841dd385a2c64ff29d263333a91e2044a4ad3190e";
sha512 = "cf342acfbb9ab92b7bf483ad3227730dc3923ee107ae42a0fb05c6070256e43a4d3c1647c1fa2c4dec7adbc8c018a185bd3d91e598d09eac43ec679d3c25063b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ro/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ro/thunderbird-68.1.0.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
sha512 = "2e9da10d1f88352687175fa48fb70f8a73cf3ab1d84958a79c4a46526b3640e264d98611806bb234f579d616fe7d1dbb2d4c6ba55a389363034f85a97283bb64";
sha512 = "ae13fc229198a5c5327dd4d9d948f1a5eaf699877c48c1c961ca084e79075f479f4b270fed1c9ce22f420fecd4332a30594d4d2dc87bb114d1e3518e3a4a7071";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/ru/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/ru/thunderbird-68.1.0.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
sha512 = "5f4bd3d3657479446ff070cfdb33e16a527c6f1615f37fb4c4e32c12b89c62d5649fa5c3d826723be47fa9795575bd33ccf37c2aebb555c218aba8f9d68ec3a9";
sha512 = "f51b1f99c16af5f24702f0bfd433c71c7ae899ded5f101aea2dcdc16f1cc9e1b7b18f26a4fd0ca9296c5e9007067e35bd9cc322bddfe07f58795147547fc0c56";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/si/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/si/thunderbird-68.1.0.tar.bz2";
locale = "si";
arch = "linux-x86_64";
sha512 = "b47d2aea81327089445c9f57a1508406c534907c7b574006886828846e6deaab04e35de2781d55d882f05c0a89f65fa7c386547d6581064af4fc3bf4e879e379";
sha512 = "26bc664b1623523d644ee231666a4489421ba31d1f0b52b5f4a4164343672333070c3781c577e370e7d97d42b61783077c74d1f38d37565776c752a2310c3a1c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/sk/thunderbird-68.1.0.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
sha512 = "4295204bb89789704da6830d33e92a77df165737c291c74a94fa532309c89505fb796151e0855b4e0bad8658fecaadc9978580ac72e2a2f24a4022909bb64aa2";
sha512 = "46470afe078d1ef2e48b3732fdc02ff3c9104a727b4d94cae1b9c54f6d2b4771e5784cfb3e6350ab8a205f8ba010a82a2b2fe92313eb351496a19a99df75179a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/sl/thunderbird-68.1.0.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
sha512 = "598fe5bd04e04a73db04eb630e02dd7cc7af34d0381e6877626c8885bc4b879e1f35362afb8cfeb1bbafffc5b7ea14c8efe9b35b5e30056d04fa0126b8663679";
sha512 = "9bb5b0c979fede4dfdaf8f4965bfed1ad78d14168efb797fc216ac2527434047c3e6b65eb9dd1e607f55b22f6f28e49b0ff58c272c0708cf5ae1f9ce96b2c796";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sq/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/sq/thunderbird-68.1.0.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
sha512 = "0b657daedc98db51179cebf547d5f278d2d632bdb552878b4af29427ab8fad62f8d6c1ab2c3a38cbd8e67b670d6d613bdb1d4f535a0c69d0d1ca607d0b10bd43";
sha512 = "440870b75e47aa277c5453bd997709d2f9e59e0aa86e2fa7f5aa95ad39b139d8e9b7b8a7dd44765d8f8d5ec18c5ce6a284ab40d4aca01b251bcd9e2183be4976";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/sr/thunderbird-68.1.0.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
sha512 = "10efa11b9c9ba56142c8a321a25a7e875f3d02fd17f73bd3061ffc71823aeb1269f9a864aae88a4fc434d1c4a01d227c0be605ffa7f4ef6421db98c0141c839e";
sha512 = "bced610dbc95e7cab982f40376fb7cce8e672f8533a66816f01667ba69d73dfcb00e95a80b42273c1ec7ada9cef8c14af1c426cda2f8425e3f77a3a0e393a611";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/sv-SE/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/sv-SE/thunderbird-68.1.0.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
sha512 = "c77d10b35edef7e59f4e6c48cd4352c4fb7d05b0140aba12be42b3e3a3df609ebc86f2f5a3993fa172ec0ac118726314bc9042335101241637481a2e1a4d1c00";
sha512 = "af139912f563710b05c274d1b89012e27a3997b582d379e3561011fed7c77994447c3054433e0fd4b5db8417d5b43b63e840d313cef1fc7a8aa7baf0655982e1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/tr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/tr/thunderbird-68.1.0.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
sha512 = "3d52693efb05379802d62fb9e40c4b1856b45ee948032634d4c4bde7bbae67327f963e0f1096fd5d7a15d4341af1ecf3d9ee96eed45146859d8e8e5d403d660a";
sha512 = "50693e4638f8fea5a7f609924ef65c8d7ea4f4ffff79320651481e1a7f5cdf69edc2fd987137a0d655077959cbd8f32218d2f78fd55790084e2d46d3ecd70cf6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/uk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/uk/thunderbird-68.1.0.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
sha512 = "c09734ab8e6428c6ed270887a0add934a7058d5e9c895864b1128e0fd39d57e13789bab38cafaf7cdbac1a71c8884407698c4bdfcf48aeec6604a457ed57c48d";
sha512 = "c24943567c110ce8cff6da066d0bd0081621d8c397e6569c57b63eef3098963a55215083aa655fa9c98adf9babfcedecfd72204c1a68604c851e1a5c1a1b0102";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/uz/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/uz/thunderbird-68.1.0.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
sha512 = "083a83ae3c6083934fbe49f1e65ceadc5b5459f0f29ae0df9901b6d9b29d0a105cbde94357c1ee0a9677ec923fd1d419c618db0e843cdf320c087108990b89ec";
sha512 = "e02a86c848a013a84824246db3e29e889e1f5cc1b743a3a9b567b914a46100a808779fc13b897b04e8c698e14cf474fcea907e25e937e5c8b4ccb997f06d8e85";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/vi/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/vi/thunderbird-68.1.0.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
sha512 = "6ba1573c9a170d1d827b6d17941c25e3852f7b66be2eaf7a3e9ab02278f19a38b801d7b9b0c266dc4f38f1190f9c83990eaa51f4734ddb38f43ea3e1bd23b72b";
sha512 = "de6d6794796f5b60cfffa9eee92906237fd692b21ffc3925c7866ea9660d26366f5fd3c847b2dfecc418b631c6241dad4e509e58e391c414a37587c6185c2655";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/zh-CN/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/zh-CN/thunderbird-68.1.0.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
sha512 = "74ee429901cb520d07361a4b621c9be06253cf93300f0f91e3633d3b375e4e9a6a58823d4bbfed60519734ca5705f2cd0da4bdc7db0f578ec300f1d705e9b7b1";
sha512 = "d5835538fe615544a07e93a2088b65eae6c3c36b75ca2b9f6605974d929a36dd226d848e2394611809538106f56c1703ebedb5c0776593e998935bd322a4e27d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/zh-TW/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-x86_64/zh-TW/thunderbird-68.1.0.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
sha512 = "d720029e0720fa972d694712a85bdae94b1ff51213c4e56b84dff6d293a2a9831f5cd4efeb44070010eba1486b9358929f64546ce7ebb7cee29a7bcd4a1cd650";
sha512 = "9dfaa7dc83725fa795cf1b2e45e7af760dc6c38999b05a0968e46d4b5676a4b9f705ebb63ff400ec6600d83a6be26eb4c2638671a539b59b6ea37002ea9b97ac";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ar/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ar/thunderbird-68.1.0.tar.bz2";
locale = "ar";
arch = "linux-i686";
sha512 = "823b3cf50f8d23d1d0ba8583d2b10146e2eb0ff4a9401527557fae8e8db997ecc66d0bf5a091323bbd37dd6222bacb73fb9818de8740963b929a8893e4ec9391";
sha512 = "17733249e5c2c33899fde89a5b2dea2592fe0414419c235f4d853917990a05664d52a05f1f1a290ece4bdb3646008b0aa0af1e495e5b8af0c08f5b9962bed5aa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ast/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ast/thunderbird-68.1.0.tar.bz2";
locale = "ast";
arch = "linux-i686";
sha512 = "f0087ab3189e8fd194d2ef6d5d2f9c3e14d592d5217a8fea19ba5189e806f9d484332f9d342a15549651a75bcfa673f21cd7666265fc185ec58c814814902ec4";
sha512 = "95b40d08b988146db7175232c9d9be92175cc3fdd73ba5e205e6543dbdb9e6e33579edeec73b6961a7ace574d3466c162d0665ffbd3705de15b7ea4cf6d7b77d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/be/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/be/thunderbird-68.1.0.tar.bz2";
locale = "be";
arch = "linux-i686";
sha512 = "edb358214e93142d73c92ab3dcf6240cd08614c2d0e9ea506492023be46d7b7f6273dc767ae034762c052db3b0a093dd027187afb272b2a55fc3126b06ffb78a";
sha512 = "d2f4ad38d81306c1637ae8612221bb462409373b3cfa70a08d0f2872aceccd8087835eccc014f4009680e9e36b6cfecc9bcb95328dcb8f6c9ef11c432e2d3c6f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/bg/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/bg/thunderbird-68.1.0.tar.bz2";
locale = "bg";
arch = "linux-i686";
sha512 = "f3268fced7a81b5046332f975906ac79b8ab5ac888dc1c81085dd7cd1b1a414988208d426bd305f67cbd913c58de857c844809ae6e6ab5a2a520d7d6b149b731";
sha512 = "f2c74a0609eff929202d13719fce167577b2ae0e1a0c98b75b359bfcddcb531907a466e184ece24d904bd592ab41654f2dcc2500defece0aede3be3826dcc8eb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/br/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/br/thunderbird-68.1.0.tar.bz2";
locale = "br";
arch = "linux-i686";
sha512 = "c1be2ec4d4e64a2a9b32b974eecd182ad9d1fa23b775769e8535e742479ed6be2a222272d7c5b141393f0c752d4af704758912bbac1c17f445b3bf277c12eb9a";
sha512 = "1f1ff89743c398443a18230ec0eadeb51a8d57633bb7c242f7003e472b0ea206dde50a9d20880ddfbc9ee36a3ca28135662ed21d6e8cb779627120c70f0aedea";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ca/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ca/thunderbird-68.1.0.tar.bz2";
locale = "ca";
arch = "linux-i686";
sha512 = "ac0c2508b89812ba63d0bb770adc2292127243fe31bf140a4ab88c953750fc2f699c5ed2afb9a400cec48dc14d927b08dc96d5b110e2f2d90e81d1532ba9d916";
sha512 = "608232b5bc7a93cd786d84662e59e3b186bb1de51cbe0f720cf4e80e65a93e09a24f06abfba63785c0cdba997a6fa871497998f1953f57a98ea6b9e224235ffe";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cak/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/cak/thunderbird-68.1.0.tar.bz2";
locale = "cak";
arch = "linux-i686";
sha512 = "4d73beb37469131b7e7747c85a73027e1eaf008100eee21e27d36b4736ffdb4cc3ca3606726e36033de64504f058ec9d4193797a09c2a591675636a5c00fc890";
sha512 = "5e77fc07093e5b2cbb345f21b48415a5c7d987ab0a82540f398ef33c7051f1917fb448fe23401ec3683c87379aeecb287be5ffcf6a124df9a464401f242d1e3c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cs/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/cs/thunderbird-68.1.0.tar.bz2";
locale = "cs";
arch = "linux-i686";
sha512 = "635ec13ec9fd688ccb9c690ccb4d64228f1f47755ce24c4806f5f47655af1279b9ee758fe15c0fcbd43c830edf66383bfa3d84d35137209a4af41aa59565f554";
sha512 = "036304985db3ecccbe50a9b3d8c19dcc269f7c6987c1101c9443ea5fb2d14e71390ccdf6f0000c972af631863398a02cba1c05566c6be4ab3e79396c049e0e16";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/cy/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/cy/thunderbird-68.1.0.tar.bz2";
locale = "cy";
arch = "linux-i686";
sha512 = "afb546562f92c93639a407598d9c6654b64776cb68db7ddb07c0d17f83d122d9e7bb974238ee5cdb90876bca3ea30356cc5eef28b11ccf082ef72c0343dc42d0";
sha512 = "4de3a065234e921f9ae7250409ba24bc54230af61b4993c3686a77e1e165874995f7c60b45ab136c6b3f3047461e86c19207952b870019df06dd164054b65dc2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/da/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/da/thunderbird-68.1.0.tar.bz2";
locale = "da";
arch = "linux-i686";
sha512 = "f7b7d183312d11d02200890afe4e81c793b658729119d9f81ac2ca58714244ece9d64d1b9d9f34c79f1d00b574e24192ce066debf873c4b740c35208cfaec16e";
sha512 = "69e190f9263438c88b445821b56b93c052613fd67a1f1918b135c719e4358bea46d3a79bc135d50b254fa686d8cba013daf89d40ccc5212062cb177bdab4d667";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/de/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/de/thunderbird-68.1.0.tar.bz2";
locale = "de";
arch = "linux-i686";
sha512 = "e6b3ba227c8e84273e6dadcb59d6691187512666efcb63244740a56273c5b765c65d21607e4f07a508e5e63ed0812162ad767fcb1140b89b2c155da945586179";
sha512 = "ce4cf8c1e11f4813ce173bd08ceed9ef26b2117771ca87ef16c001e1a49f5385a6a3ecf4bf7561d48aa6c7e63d307c2fbde77ef8a51fa0aa9b66f4f98386bff3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/dsb/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/dsb/thunderbird-68.1.0.tar.bz2";
locale = "dsb";
arch = "linux-i686";
sha512 = "84d39965568de9c87c280beb43330aec4ba6cdebf59a9c4f566b6bc01fbe15cc3987e87d9c24a9e746283cc54ec1ebaaff99952de7ff0aa9b6f05f36b1295d09";
sha512 = "9007c92825220ff9685c599b1c6e39fe3e96888621ce5dd15f5ef9d812c09a29ef72a6eb2f68cd8eab78b5519b6c26cc957ed04f3c9798ea0305fa4f5c8bb962";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/el/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/el/thunderbird-68.1.0.tar.bz2";
locale = "el";
arch = "linux-i686";
sha512 = "0942b5c8c7ee792d264824c6837d5857679feae9073fd2451b92dc0f31290360a24f7cd708e550955e798d2decb9f0c3a21dc8ba7bb5f226ba8ba9f502ef870f";
sha512 = "e619576813260ec68a26226a83a540c58aea7e87d3b0ca35f6ae7bd9e0dcaaf54ab12f57cebf669060191e3affc42df1585a3ce4aa18f82f6afe469b85de495c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/en-GB/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/en-GB/thunderbird-68.1.0.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
sha512 = "12fb5086fd012d85f35a41125b7e5ebf37ec34e9215db9b2a4c67f924d3bfa738698ba15bfa2e51f8cbe0d81cdfe5de4bfecd54b0fe6cc7163c753444e56bb9e";
sha512 = "0810f25326d8a08628aa55d5c15e6144f833454019087fa20f2c128bbaa4380f9f2a07714b0d8ac0f3fabb5b6065e7b2efe6e80975e5e47e81749da9f4e6be94";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/en-US/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/en-US/thunderbird-68.1.0.tar.bz2";
locale = "en-US";
arch = "linux-i686";
sha512 = "6004186b0b27165a4d54191a9c2daef34b580c2d97b1e0472e8d8d863e3df51ed56ef17abb7c6944f4da214772780b5c69785b9ad22ca26ba1a8f0390beedc19";
sha512 = "adc1dddf36116435b3948810cd9d647febfc97d62443032100b0f2d722913aa051d44244f057c29cb8c6cf494fc67b3044b83ebfd5eacbc36b6cd9c88361078e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/es-AR/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/es-AR/thunderbird-68.1.0.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
sha512 = "6a547a1d0450de1089df18baae81100d3fb9934c963459ec83ae81504e7a1ec7abf595766c84fe8d321f901150a68b7e172888028f3b992b4b6b74ba98ca4efe";
sha512 = "a9433a5de45477f432c6906b640909880650443e5e3a65a839e9c055d887befedc8c22c76675700886dc128ad190fa0ecdbbf2c5f18e650219b33a78105eac63";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/es-ES/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/es-ES/thunderbird-68.1.0.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
sha512 = "e1256da3c8938776b11444790f20a68f056f7407f444f0884dfa1c52260309d4adfc64fe95168dd8263e4aea650362ab9fa08930559c7f0e97b3489c172c81fd";
sha512 = "a128e46d7d2cce449a261f857a221232d2d89a7d999bc074ad5d1aec741f766516f3882cc2603d6284458208c2ed36dcb81e214039222c9c15450e96e73d0283";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/et/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/et/thunderbird-68.1.0.tar.bz2";
locale = "et";
arch = "linux-i686";
sha512 = "a5d7cd5e3171d44dbf91f067231301940e8a622a6729333512b49bc037022bc2058fa548c044a40b7ebea5d3199402276a34eeec5cb21b2070d7cfd96737def1";
sha512 = "521d004b432fd27ed6b167263253b3a3c89aa22ee5e06a4a434da6948a8c2af4fe27e17a1ef962e7caedf7d15ab27b98384545069abfaaf41871cd5878fdbf72";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/eu/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/eu/thunderbird-68.1.0.tar.bz2";
locale = "eu";
arch = "linux-i686";
sha512 = "08047c83e28397d265712dbd5a533799b2bba97d90f83b93be8377a544226ea0dff22f5b5e2cd5314c24608825048f3e59c6fc348959d63e1acb81d10d687f46";
sha512 = "df8afc11cddf0c06d05bee455833bc5d786789a709baeade7b64e8f815c42f399fca1442a8b64271fea7e45fed4408ee923293cec953e0406b093f0b94120861";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fi/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/fi/thunderbird-68.1.0.tar.bz2";
locale = "fi";
arch = "linux-i686";
sha512 = "ae407ee0dde2be8a8f89979b5dcacebd13fcfa42fddce48773e8f26ffbb503acc6b17a90170a0d72d550400397c17a725f9bf6f65d842f0f281fc58eaf9dbc53";
sha512 = "51e05f21e01dfa0fc3c5d0463d80e87a38e50dff612a7632f9a5cd440f037a438a555e3640cdddd794ebe04eb2cc15c549db7ac829c91ac488b73b66808496a9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/fr/thunderbird-68.1.0.tar.bz2";
locale = "fr";
arch = "linux-i686";
sha512 = "a776215a9ba91de0500cc7fda245afa19a49b51b60089c55444aa452c5aca06cf3b95e66448147cdbc3df063348c28bbde3f3c2a6e19deed26e1b33dec565b25";
sha512 = "9448860f48fd93383a24fead6af1102af855270749e817f720e2afac152949e47fcc9ce6fd0d2c60d3dd958c855af47a54a38e85975acf05496a7f67d2af72fa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/fy-NL/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/fy-NL/thunderbird-68.1.0.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
sha512 = "5302a5709fc4485eff607fd0b5e75f15bb600a14d20661cc4f7280b0bf5c156a40a51045182ff0d31c89d4009c5a516015843ec9fef1fb1134cfa80c511c05ad";
sha512 = "e9a27da8b86e2ec3593056a19001dd656b8bde07edc918ec18f266de377c697eb0ea3a10fedb223e58db53ae5970d2b9753b46fa87db938e5568283ba136bd2b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ga-IE/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ga-IE/thunderbird-68.1.0.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
sha512 = "4b9cfa317f8ae5accb2c96731bd7fcbaf2eebaaee76bc7383d247cac9db6708b7c4c03d2faf3a6e7e6620b3eb696e9bb3fd18c3dfd1f3ce12e4bc65bb86955ed";
sha512 = "b346fe3863ab7944ac33a8204eea7a458a0131c879eae26be66928bed930aa29ba74a5b0e39aa939f0320fb8e5fb0a5e31599235daed526f920b92240763633f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/gd/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/gd/thunderbird-68.1.0.tar.bz2";
locale = "gd";
arch = "linux-i686";
sha512 = "8738b93fd18972456158c28d4146ec8548e97339d7b4ff044ace814213d27940b02f9b889b5809525d5bba46a5b3ff4a570c14b3b9a5fe276b4aec515b62055b";
sha512 = "e921a3c2720aad333febe7e1d69579eeda4f641fe32c1b6235fb6c01480ab7c87bcb47020b0dc2e4225746b277d8c6b288aaec86125ad48da9fbe3452f30e01a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/gl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/gl/thunderbird-68.1.0.tar.bz2";
locale = "gl";
arch = "linux-i686";
sha512 = "c556343f99d39f6ff41f0b05af606ada89e6b95938886f8d0b1ccd7b77f336ae40a8debb003d2bfc865548c5e9e055859d6d353e169a4f2ee7ada7cb8687cc47";
sha512 = "dd581aab660e96d7b0283bacab74d5635610301fbf40e95bc85edb5e177492f2a9c786a4fa722024fd57e2f2158fa339c161fba605ae428b5c03fa983b70d176";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/he/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/he/thunderbird-68.1.0.tar.bz2";
locale = "he";
arch = "linux-i686";
sha512 = "b6eed03bdebfc334c8852a15989c024883b99f600b9aa58f8344976b63f1f9590aa9b78a2a27b081a1e5256443801f01c1f638f1e4f8c0c2a78e695a5e2f590a";
sha512 = "2ab68acb57eadab585bedaef3f79369cd7a0c08030d24bc3361a0e08ff796f28f345cae15fbd78bd1fe2c275f8d4fb7058194ef44dcddd3e8f92b69f92482321";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/hr/thunderbird-68.1.0.tar.bz2";
locale = "hr";
arch = "linux-i686";
sha512 = "aa4527614db13978d03cf07444109dbc63b7788a2cff924b5566c98d9316031f1c0fb74839b5be78030959f85147c1c1e50edca5605b5cbe2ad3bbbb257c24ad";
sha512 = "975be725774e200f39b77cbb16ad364fb5d901ef46a85da9f297b61140e5be61cbf48de9f2ea0236d4580a27be97e87c195b92d9286133ac5aac2a35b1b7e5f7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hsb/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/hsb/thunderbird-68.1.0.tar.bz2";
locale = "hsb";
arch = "linux-i686";
sha512 = "92b1e17c825a60da17bc9942b689337246f301843637fe420284fe89aad4ab2f30101201330d5319a7e6a2bd87567bf7aa7b35bfbc13b1399ed54973afacf4ec";
sha512 = "5d501e9b7a39a518da0a82c1a89f398adaa449753b4dadc6ff8fa610bfc152016e6f70c1a944cc85e72fcaea5aba21a04d5abea2f2e045ca1c9212a37d31c461";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hu/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/hu/thunderbird-68.1.0.tar.bz2";
locale = "hu";
arch = "linux-i686";
sha512 = "5e0c03de66a9098e290fb93545cb46be41d7e91c865cb3fcff9dee7d141fa113cf7bfc14cbbf1e8f9e3979e6602116081958c22a83ea043015cc5adfb738e5ea";
sha512 = "4cf2c82e4d965c3ff51e40823f876811834cf7602d9cca30011346c2bdb6e222b7d37f28db79b6507350cd833db312aaf30c13ae245c93a6b1118d9abb132571";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/hy-AM/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/hy-AM/thunderbird-68.1.0.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
sha512 = "3df1da5c3d18ee3705e5d5013a752920863fdcee8a1c021bfde28603862a7c56e60a65b46b98af5d66fc5066c1580ab5484d86dd278d64d5d800b3840361b812";
sha512 = "d13d91b889903bdbbae1e12b96f07bfc6f5a6cb734a45fb87402ac44df9fcca703e067b1d1554a41c9b7e2e31703021eeeedd3ecd8b27536b548a3b2d89a1f27";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/id/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/id/thunderbird-68.1.0.tar.bz2";
locale = "id";
arch = "linux-i686";
sha512 = "786a5839f311df656fd4a0687819a47589f5a6ebac6f76e1f643136286d43b2f27744dfcc116341a8905b5e1da4ec0ad1f1eb4998e188d2e87ea487c6826fb32";
sha512 = "7c199788cead727742dfebbcdf6ddfe4491be31a3f4dcc7ae05d25413101036cad7fae399f6b390002f55f60214ea66399d5bfdc515557351b309d174b83fa55";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/is/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/is/thunderbird-68.1.0.tar.bz2";
locale = "is";
arch = "linux-i686";
sha512 = "53e4f76d41e1f8af240ecec249bd3ef3c787c6ff69320694bc682a876a76be22ed59abf0bc83691c7ea96d1e16f5a4c859e2b62528c99261f562012dbd035a9f";
sha512 = "33ac7dae65efc4792f92fed4eb0062302ef601f6bceef4d1eaa6b4a7fd75427607e8ebd7f6df70073bcbcc89f057b0689e365cea960428b5e57f9f1e810d6e48";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/it/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/it/thunderbird-68.1.0.tar.bz2";
locale = "it";
arch = "linux-i686";
sha512 = "8ecb5594e5252be84f97a55b37f5089220a3e5c1565686fe02f00d94a1418a9460e4c1f25724243c82b3c9442eb8cfbff3c3c9470971921469f2fd71aec66860";
sha512 = "231acc8648e2e377a8ca6d22c273957506fd1c21f226ddd681fd3a91940cb151df4f0eb05885ec0325629bb0cfdd3ed500af6047970b43b898a37586e4612502";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ja/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ja/thunderbird-68.1.0.tar.bz2";
locale = "ja";
arch = "linux-i686";
sha512 = "7f9ed4fbdc0549c6ab704f80676218980a4b2609086437f57e22e9750e5a34d7506c1ee43ec48031a28322cdf4dcde6bd14c05fd032244acf33310fb6aa8e9a2";
sha512 = "90b8ca0d72fef8fbeae34027c95e3391452d72b53b40ecd59b1d2d2b07c6ef2e4d787bb2e927bf3d4b7837ea4cf2f10a0d3ccb0a6c98992e6fd857717c8ab04a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ka/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ka/thunderbird-68.1.0.tar.bz2";
locale = "ka";
arch = "linux-i686";
sha512 = "bab15aa28fc92850d374f76ae9898c9408176db9b9e19cbdb49f7b586172c20eed0cb358f3cd4b5fcc2a4740188c0f041cf617a63743a42648c7e33dd0fb79e8";
sha512 = "271415dafa136d326b89ea3a58b852e2526c86f45d63f383fa250ace14f71b1b915dac3810a04507d9ca4437c640065520f9f3d9d032cb7eb84aad1f7b3517ba";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/kab/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/kab/thunderbird-68.1.0.tar.bz2";
locale = "kab";
arch = "linux-i686";
sha512 = "26b1055333e508666dd24706da824c5cf9d5f87d1d1cb1c4d42894b836412205a7cc7ff73f764d8f2a1852138923bb02a6b2a2c3c92d1fe9307529533b6360e9";
sha512 = "c0b4fe65e9937bf897e7512ff6f267993c324c772232317e1314ce035a282f313b8385eee8c13e7b131eb0fabaa1b62345fbcd6289a5172d78aa3abf7f716bb2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/kk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/kk/thunderbird-68.1.0.tar.bz2";
locale = "kk";
arch = "linux-i686";
sha512 = "d946c82a8c35d82147812ef16e4573ae559dbfe65f4a6e5fc7dd107fb57fc6ba2a47f8a3655344e9e6172628692ad7815045830ee27bb10aab0d71483936d6ac";
sha512 = "b8c7ddd098540ef8354eda1f2a3a06987d11cb7e0c4af4e170d507ec540e743a7d2527188c18e045df99576ed44990a800e7f7ce212042eb03b02339be9f86af";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ko/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ko/thunderbird-68.1.0.tar.bz2";
locale = "ko";
arch = "linux-i686";
sha512 = "3b9d9e70c097a1b7958c6854bc2da121f44921962d873e7f90fee85ce2214725223482aebcd503205e32501648c774199eced7ff34effb428dbc738f1ba4b963";
sha512 = "a33dbf6ef3aef69644261ea1c1cf3986fcda5c9d0b28996c46e3d8e53d3d7f8e9e6b62f1b03f2816267b483a84295ad99e888cf76c5c192e9a9dbadd78ce7d8b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/lt/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/lt/thunderbird-68.1.0.tar.bz2";
locale = "lt";
arch = "linux-i686";
sha512 = "0cf99a6aec58d2f56f6a52fc5fee17b9e1d5abd0ece53073cc392c71452e1415c94ad0af003dd0a97fc5c6744a1a2243aef69dc44b831be51108b769e5bff87d";
sha512 = "3bf1cd599707a2728fbf46beadb7d8d1832c0c271e98647ac7d2de1be78b8c1b5d0af4ac246af01eaf4b2a57154f6068065fbbb2019346b663cafeb40edd5b71";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ms/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ms/thunderbird-68.1.0.tar.bz2";
locale = "ms";
arch = "linux-i686";
sha512 = "8b4697a312aafdd88a5ecdf898a796bddb91e80b4c8c9c342fce765ee0f4dd494114324a51d6379468756a44bc71cb6f46b8fabc7ca733d9d85d08069f18526d";
sha512 = "563c413b21e2fda6f412a1826b1191097d4df1ade8d12e031522e122bedea6ae23a2d3b047e870030c9b4901a5869c9439107d8a7ebc6380c758bd741e0b4128";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nb-NO/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/nb-NO/thunderbird-68.1.0.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
sha512 = "ad6275f8343dd36ed039524875b41ab9c8bafd2a1e54291b98c16b0ab35f9bea1bfee3fce86070317fad2f25d46d0aa9ef0824e4ad88e0879a33ae753c61ab2d";
sha512 = "c9062949faf5cbfe8bde2b0f330f76b438e1606360364a90f0e35026fd52952d6aff7c6925fd1ce569b24f41409d0b63540dbeb0ae82260604d5faaee723bc2e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/nl/thunderbird-68.1.0.tar.bz2";
locale = "nl";
arch = "linux-i686";
sha512 = "49f586a62969e6ea5638eb95f812e7d4a891ef55f381633792ed0820ad098cc527dc9490c3a1ce52246526f0a8cf00eb16666c6a7f932a68c6d440e151b452cd";
sha512 = "b8b385db8fd2385a88d12c1ba23bf812592beca14e44d9c33456ebad16a40db8e7d886779565a4d617fc56f7a6d651dc8da171b1c727481895d05777bc0eb3c1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/nn-NO/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/nn-NO/thunderbird-68.1.0.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
sha512 = "1f04f2bf7a60472eff1b546608cfb26e41f31a273d1037e0d73530029a757dfcd95e2c1b85a6990b6f7eec28138835fe096266a00dd094b4db74007cd59ef00d";
sha512 = "3c88ea8dffc71524402416d9222c859dafc5bd5799651a948bb318a7d2f91ca2c00fa4158e6019949f9a1d72a2d85a0c9d2a3c9a8caf052e8743fcb5dd0dccb6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/pl/thunderbird-68.1.0.tar.bz2";
locale = "pl";
arch = "linux-i686";
sha512 = "f232e4b6cfcea81ed70e56e9812b8e0783205f49b846d29338ad09457db9a18e4fbb35738bf5e9abce42855c13c1839605aa343cb7d33d0110b68d634183e697";
sha512 = "c6ba1f98ebc44af63d8cd8052fd306d3a8920c33eb5b3be563c0fe203d5d07806bc5db7ff88847c3ee2d82c62d0811a086fa91e8253eec3a3977091569f40a20";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pt-BR/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/pt-BR/thunderbird-68.1.0.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
sha512 = "2527ec08fc23d01712574e3c8419273ac82111c5f2b4b6040cd8f3292aeadb36021029b01bc319d8ca52177db39f1a446acd5537a6e8f42800eb22c3e2d7cb30";
sha512 = "cbd4c0f1b14cb04b98ef6f2e4ce53d655b58ae9a11047eeb1959ac1c4ef4370507194dd1149372fd1dad4ceedf91c39f3bde4fdf07b5d925f27dc8eb5041be67";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/pt-PT/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/pt-PT/thunderbird-68.1.0.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
sha512 = "c91d9d0becade1508a3212693f5fcdeb917fe5df5d63b54de125b76786dc3787a7f5f220eb48add1dd1eee95f7eb120b1c1dc85dc0bd91688c883be9219f3d7d";
sha512 = "ec08c628708a7bbcb00df2122e5fc463e1b0e1c031e9130369ddfee12db3cfe9219f7939756fc47abab8514c6cea642bb653ee420818ad625a33caada7005993";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/rm/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/rm/thunderbird-68.1.0.tar.bz2";
locale = "rm";
arch = "linux-i686";
sha512 = "45a4f608eb5e64f24ee385328a3a568aa2ad3284169019423c8b414790779cd079c2d73b290716f18227210ab5eff50625bd6688498bc027228b8fff51fda5b6";
sha512 = "4520dfb1529220e40cf2e1aca44cbc2af750fcceee3639d7ef334e9488034b18bc6e73b5b7a37204346da53a44da099f4f7f65d5b3dbdeac6d6934918c02cca3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ro/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ro/thunderbird-68.1.0.tar.bz2";
locale = "ro";
arch = "linux-i686";
sha512 = "e344d838e2f79dd8ff79cf2e7ff2a1d8f6c7e64f29cf870d8a6fad9b3dee31de6c0a80d3007dd498dffb816c00dc8429150bc6b49a5b6eb10b633a4e942ca725";
sha512 = "49e54dd1cca8038ab6c34e9980b6b36117aa157b6555ba440f0d7c8c4d909253989b9a50d25c7c18529136fa26d0ff94474d17e43156afba171948c9c05e16a6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/ru/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/ru/thunderbird-68.1.0.tar.bz2";
locale = "ru";
arch = "linux-i686";
sha512 = "8dbfd4f8969703623388a55e790b722933f2c1faf702ff5c7fdfe3cdab8f62fc4ea69f9303edf94a41a71be1b8c5a2ddfa5509d4c8abe260c91b7075349afe64";
sha512 = "6d297592bcf0c9b97c40f1053a95385e6c2510aa0ddfafd25085bc6a954fb5460f59f18f65477d8c93af829cd2a053b389b5dcec35a7ac7766d72c29064e5687";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/si/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/si/thunderbird-68.1.0.tar.bz2";
locale = "si";
arch = "linux-i686";
sha512 = "f1808e9648caa00afab0609dac1cb564dbf6e5bef75446071997cc9913da8470e54cb254282fc6e8b839e88b003ef18426609a97cd1affb93659fcb519913a5c";
sha512 = "f602557748517324943b5ff276f4efdeca1c5083662bc9f0b0bdba8c10510cee834b3883870a98d51d406f58e338a09d0589b3bc0891bfbd88b895cca02fd360";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/sk/thunderbird-68.1.0.tar.bz2";
locale = "sk";
arch = "linux-i686";
sha512 = "7d5b480a44dae0d2f5348261ecad04348ebb7943a757fe83c0fb154da251b423ba21840c5d1fbf8d7979dd30c2d5e7b18e90d0ad033a1e96d6f6587407a24cc9";
sha512 = "7b6980d2b5131bd9a43a29efa2f1e97c60e15410a63224d839548d777fd8b4c4d65ccfc7756227cf900f7420b12231c3d48f062133cb6f21bbdcdcdb179f2e47";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sl/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/sl/thunderbird-68.1.0.tar.bz2";
locale = "sl";
arch = "linux-i686";
sha512 = "f76e1f01b8da8a2ba344dd3bedfa4301df03fabf9848fa189d522995cd48d81f8d00f11e01722868acb1993d4e79977122e04e3d208629b2e398c715777194e1";
sha512 = "ecc38fb4fde66b7b213b1cfeb8ab170b3e685d0a28c7e071e19a85509ec74e79fb6eb61104c47f0eef1a77e1e1a52b292469a364747eeccc701c522452c58351";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sq/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/sq/thunderbird-68.1.0.tar.bz2";
locale = "sq";
arch = "linux-i686";
sha512 = "cff32ee84324724dea5612e5b48b22adc63d8b9428c5937f84c94da83bcf5f2aadda6ab81c5f9bced6d693689bc38bf15c764d4ab4809cacec3bb54cd82745f7";
sha512 = "3ff668c6ed28bdb2f3d388ab8ecb1bf3b2b38bb29046b8559f7b9f9c6fa32db226c4620f472ba5a982b473e3e3f4aee04aa3746e57738b512dcb37fdfd5ecfc5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/sr/thunderbird-68.1.0.tar.bz2";
locale = "sr";
arch = "linux-i686";
sha512 = "96d25f7d952e204751cd601932713418cd495d11364430a37ecfa36333113a6132209b8e8f0ec337799ed02b71b388f43e22a53fa168f17e4d15e7594170299a";
sha512 = "4c71511375333802f903cb632963933054a969c02a3fb23f4416e0cb3c21e18147bbffb28572f8ac90aa5bc3c4138b25590c42610c20a14b5e8eddb1edf28c28";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/sv-SE/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/sv-SE/thunderbird-68.1.0.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
sha512 = "8bc790d7951469e2dfa2499622464cf55427a6bc93dec50b18f014ac079ec0579b91a11680e4104f7d6a38f60d467e9fb3c9ee7ab83b64f8dae2c1e979150bd3";
sha512 = "5d7d569f4eb9ed738f54139a90e9a01e9e771a553af193357d45765bd54815a096ddc31ac69620d6f14516e8f41f1c0fb8f16a848e13273d0c18b9c047d85fb4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/tr/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/tr/thunderbird-68.1.0.tar.bz2";
locale = "tr";
arch = "linux-i686";
sha512 = "2c40fa3e6ecfb68507897e669bed229ed98e1b4a3998b55b59523d3cec1fc5553cfacbd9be3d55f7a32b612ee662dfda7c8a21a4c26c750d48b87d31368a9942";
sha512 = "fc8892f85032d9fcce76c3fa971531f4039b8bb9e1812776bb3e7c5b68474543b5db4007f79e81abc1685c74f0574201236aab8a2df05ac10fcaade7c57ca3c2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/uk/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/uk/thunderbird-68.1.0.tar.bz2";
locale = "uk";
arch = "linux-i686";
sha512 = "5eee26a500c1d4bf71222987523cc3e5f144aca02c17c88a01d4b68f9ac5e1298407460c69504d0a7b1e5727755cb32e2ae523cd97766419848c1b6dc0a30bf0";
sha512 = "80335f326bde31f4b1e269cd756b4b41ff3a632023f09447abf6d1964381f8f9657a4f47ed6af63a3eb0cd4e84e5bced595eec07cc0a9e30ad8d3cf3d08026df";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/uz/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/uz/thunderbird-68.1.0.tar.bz2";
locale = "uz";
arch = "linux-i686";
sha512 = "51a0fc8dc30cc82f7d3b222167aaa8ea0225b4136ebacee38687cdc1235c0720da14cd2a3e1875a4c4bfa3bb8fd9045541ca6df736115312ac49a2db2ef83639";
sha512 = "2434a8a063b0d1019220579bc83160217d5c269b24ad83a9ed0969425a1fc9d9ed8b190c291d87c34379928aa6c2329d3b5ad287b44177dd61f680081cd7caf9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/vi/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/vi/thunderbird-68.1.0.tar.bz2";
locale = "vi";
arch = "linux-i686";
sha512 = "bb02dd69a8c8d514666fedb9d7de520f6ea89740956ddcd9d7f90175bca6f7bcf79b573c6e5ecd6fdfcdd15aa2a35881e8877074fbb795019eccff52cb943a91";
sha512 = "0e33f1a2f8cd67bdb523180af0b8afa5fbbb3628b0b9407f2a4ae609c7155b33fd85a1f23d9b74097fefb045fd0b437f58971cc4c4d5f391398d6ea7429b921e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/zh-CN/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/zh-CN/thunderbird-68.1.0.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
sha512 = "408599229da40b2ce1a23ec1e5b12c7f4a24fb63524d792d50764cdfbcc6774dd7f651ba2dce46bccd94937e24b4b08d8bf37b6fb839c61540dfbf36f6d3e6b2";
sha512 = "27d1d9b3c30ab1dd863362139f91b79ffb7e36e87ff1f7f07162ea3e86a58962136e43cca3212e4263908f63dfe3a3c53bb3db3085e5b4bf07e0ff88408822d8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-i686/zh-TW/thunderbird-68.0.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/68.1.0/linux-i686/zh-TW/thunderbird-68.1.0.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
sha512 = "d75c9bfc6234fa0ddc56b7c1dace76b789e29c0cb03ff17395eeba020a82431e457271e95117731963f2666295b94746d0370bf0e85f9c3646836830684bca45";
sha512 = "2141f0ad5d11daf3a94f3a737801ec0234a7f2d869320d4859d771ab92a6e59bf13139b4048a7239640635051a9228e6cbf55746402ed35cb398d93a3d129439";
}
];
}

View file

@ -25,11 +25,11 @@ let
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
in stdenv.mkDerivation rec {
pname = "thunderbird";
version = "68.0";
version = "68.1.0";
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "2cz583rwfpj4z5cwg2vfy4ha0pz4xs9g7li078rmk6x19haiv8s9fwijd82xgxax0afn8wk80bq5kd8yz38l9432f6bar8xnwb21y4i";
sha512 = "06036nawpm987q33567nhz55qybbcl55h5rdhjbhck5qmyj1qi383xqac5niwyk7c0gaq4ygwc5a24pysf85crjdway2zmqyjxp2apb";
};
# from firefox, but without sound libraries

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch, autoconf, automake, libtool, pkgconfig, python2
{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkgconfig, python2
, boost, db, openssl, geoip, libiconv, miniupnpc
, srcOnly, fetchgit
}:
@ -17,12 +17,13 @@ let
in stdenv.mkDerivation rec {
pname = "twister";
version = "0.9.34";
version = "2019-08-19";
src = fetchurl {
url = "https://github.com/miguelfreitas/twister-core/"
+ "archive/v${version}.tar.gz";
sha256 = "1bi8libivd9y2bn9fc7vbc5q0jnal0pykpzgri6anqaww22y58jq";
src = fetchFromGitHub {
owner = "miguelfreitas";
repo = "twister-core";
rev = "31faf3f63e461ea0a9b23081567a4a552cf06873";
sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp";
};
configureFlags = [
@ -40,12 +41,6 @@ in stdenv.mkDerivation rec {
boostPython db openssl geoip miniupnpc libiconv
];
patches = stdenv.lib.singleton (fetchpatch {
url = "https://github.com/miguelfreitas/twister-core/commit/"
+ "dd4f5a176958ea6ed855dc3fcef79680c1c0c92c.patch";
sha256 = "06fgmqnjyl83civ3ixiq673k8zjgm8n2w4w46nsh810nprqim8s6";
});
postPatch = ''
sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \
src/init.cpp

View file

@ -1,215 +0,0 @@
{ stdenv
, lib
, fetchurl
, requireFile
, makeWrapper
, libredirect
, busybox
, file
, makeDesktopItem
, tzdata
, cacert
, glib
, gtk2
, atk
, gdk-pixbuf
, cairo
, pango
, gnome3
, xorg
, libpng12
, freetype
, fontconfig
, gtk_engines
, alsaLib
, libidn
, zlib
, version ? "13.10.0"
}:
let
# In 56e1bdc7f9c (libidn: 1.34 -> 1.35), libidn.so.11 became libidn.so.12.
# Citrix looks for the former so we build version 1.34 to please the binary
libidn_134 = libidn.overrideDerivation (_: rec {
name = "libidn-1.34";
src = fetchurl {
url = "mirror://gnu/libidn/${name}.tar.gz";
sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
};
});
versionInfo = let
supportedVersions = {
"13.10.0" = {
major = "13";
minor = "10";
patch = "0";
x64hash = "7025688C7891374CDA11C92FC0BA2FA8151AEB4C4D31589AD18747FAE943F6EA";
x86hash = "2DCA3C8EDED11C5D824D579BC3A6B7D531EAEDDCBFB16E91B5702C72CAE9DEE4";
x64suffix = "20";
x86suffix = "20";
homepage = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
};
};
# break an evaluation for old Citrix versions rather than exiting with
# an "attribute name not found" error to avoid confusion.
deprecatedVersions = let
versions = [ "13.8.0" "13.9.0" "13.9.1" ];
in
lib.listToAttrs
(lib.forEach versions
(v: lib.nameValuePair v (throw "Unsupported citrix_receiver version: ${v}")));
in
deprecatedVersions // supportedVersions;
citrixReceiverForVersion = { major, minor, patch, x86hash, x64hash, x86suffix, x64suffix, homepage }:
stdenv.mkDerivation rec {
pname = "citrix-receiver";
version = "${major}.${minor}.${patch}";
inherit homepage;
prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
src = requireFile rec {
name = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
sha256 = if stdenv.is64bit then x64hash else x86hash;
message = ''
In order to use Citrix Receiver, you need to comply with the Citrix EULA and download
the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
${homepage}
(if you do not find version ${version} there, try at
https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/
or at https://www.citrix.com/downloads/citrix-receiver/ under "Earlier Versions of Receiver for Linux")
Once you have downloaded the file, please use the following command and re-run the
installation:
nix-prefetch-url file://\$PWD/${name}
'';
};
dontBuild = true;
sourceRoot = ".";
buildInputs = [
makeWrapper
busybox
file
gtk2
gdk-pixbuf
];
libPath = stdenv.lib.makeLibraryPath [
glib
gtk2
atk
gdk-pixbuf
cairo
pango
gnome3.dconf
xorg.libX11
xorg.libXext
xorg.libXrender
xorg.libXinerama
xorg.libXfixes
libpng12
libidn_134
zlib
gtk_engines
freetype
fontconfig
alsaLib
stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
];
desktopItem = makeDesktopItem {
name = "wfica";
desktopName = "Citrix Receiver";
genericName = "Citrix Receiver";
exec = "wfica";
icon = "wfica";
comment = "Connect to remote Citrix server";
categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
mimeType = "application/x-ica";
};
installPhase = ''
runHook preInstall
export ICAInstDir="$out/opt/citrix-icaclient"
sed -i \
-e 's,^main_install_menu$,install_ICA_client,g' \
-e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
-e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
-e 's,/bin/true,true,g' \
./${prefixWithBitness}/hinst
# Run the installer...
bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
echo "Deleting broken links..."
for link in `find $ICAInstDir -type l `
do
[ -f "$link" ] || rm -v "$link"
done
echo "Expanding certificates..."
# As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
pushd "$ICAInstDir/keystore/cacerts"
awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
popd
echo "Patching executables..."
find $ICAInstDir -type f -exec file {} \; |
grep 'ELF.*executable' |
cut -f 1 -d : |
grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
while read f
do
echo "Patching ELF intrepreter and rpath for $f"
chmod u+w "$f"
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--set-rpath "$ICAInstDir:$libPath" "$f"
done
echo "Wrapping wfica..."
mkdir "$out/bin"
makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
--add-flags "-icaroot $ICAInstDir" \
--set ICAROOT "$ICAInstDir" \
--set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--set LD_LIBRARY_PATH "$libPath" \
--set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
echo UTC > "$ICAInstDir/timezone"
echo "Installing desktop item..."
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
# We introduce a dependency on the source file so that it need not be redownloaded everytime
echo $src >> "$out/share/nix_dependencies.pin"
runHook postInstall
'';
meta = with stdenv.lib; {
license = stdenv.lib.licenses.unfree;
inherit homepage;
description = "Citrix Receiver";
maintainers = with maintainers; [ obadz a1russell ma27 ];
platforms = platforms.linux;
};
};
in citrixReceiverForVersion (lib.getAttr version versionInfo)

View file

@ -1,19 +0,0 @@
{ citrix_receiver, extraCerts ? [], symlinkJoin }:
let
mkCertCopy = certPath:
"cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
in
if builtins.length extraCerts == 0 then citrix_receiver else symlinkJoin {
name = "citrix-with-extra-certs-${citrix_receiver.version}";
paths = [ citrix_receiver ];
postBuild = ''
${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
'';
}

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "rclone";
version = "1.49.1";
version = "1.49.2";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "0mjwp1j70dqa8k3zxhcnw85ddhagkpr7c59mv8kradv6mqqzmq9c";
sha256 = "1a90fr7cw78qhwdgkjwshap345jk1ipm3nnk7xf3nayiyibvk5dg";
};
modSha256 = "158mpmy8q67dk1ks9p926n1670gsk7rhd0vpjh44f4g64ddnhk03";

View file

@ -57,6 +57,12 @@ let
cp -r --no-preserve=mode $src/src/* $src/LICENSE $srcDir
'';
postPatch = ''
# django-cors-headers 3.x requires a scheme for allowed hosts
substituteInPlace $out/share/paperless/paperless/settings.py \
--replace "localhost:8080" "http://localhost:8080"
'';
buildPhase = let
# Paperless has explicit runtime checks that expect these binaries to be in PATH
extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];

View file

@ -1,5 +1,5 @@
{ lib, buildPythonPackage, fetchFromGitHub
, pytest, pytest-django, django }:
, pytest_4, pytest-django, django }:
buildPythonPackage {
pname = "django-crispy-forms";
@ -19,7 +19,7 @@ buildPythonPackage {
export sourceRoot=source-
'';
checkInputs = [ pytest pytest-django django ];
checkInputs = [ pytest_4 pytest-django django ];
checkPhase = ''
PYTHONPATH="$(pwd):$PYTHONPATH" \

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, mkDerivation, pkgconfig, cmake, qtbase, cairo, pixman,
boost, cups, fontconfig, freetype, hunspell, libjpeg, libtiff, libxml2, lcms2,
podofo, poppler, poppler_data, python2, harfbuzz, qtimageformats, qttools }:
podofo, poppler, poppler_data, python2, harfbuzz, qtimageformats, qttools, harfbuzzFull }:
let
pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
@ -20,7 +20,7 @@ mkDerivation rec {
buildInputs = [
qtbase cairo pixman boost cups fontconfig
freetype hunspell libjpeg libtiff libxml2 lcms2 podofo poppler
poppler_data pythonEnv harfbuzz qtimageformats qttools
poppler_data pythonEnv harfbuzz qtimageformats qttools harfbuzzFull
];
meta = {

View file

@ -0,0 +1,42 @@
{ makeDesktopItem, pname, suiteName }:
{
planmaker = makeDesktopItem {
name = "${pname}-planmaker";
desktopName = "${suiteName} PlanMaker";
icon = "${pname}-pml.png";
categories = "Application;Office;SpreadSheet;";
exec = "${pname}-planmaker %F";
mimeType = "application/x-pmd;application/x-pmdx;application/x-pmv;application/excel;application/x-excel;application/x-ms-excel;application/x-msexcel;application/x-sylk;application/x-xls;application/xls;application/vnd.ms-excel;application/vnd.stardivision.calc;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroEnabled.12;application/x-dif;text/spreadsheet;text/csv;application/x-prn;application/vnd.ms-excel.sheet.binary.macroenabled.12;";
extraEntries = ''
TryExec=${pname}-planmaker
StartupWMClass=pm
'';
};
presentations = makeDesktopItem {
name = "${pname}-presentations";
desktopName = "${suiteName} Presentations";
icon = "${pname}-prl.png";
categories = "Application;Office;Presentation;";
exec = "${pname}-presentations %F";
mimeType = "application/x-prdx;application/x-prvx;application/x-prsx;application/x-prd;application/x-prv;application/x-prs;application/ppt;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.slideshow;";
extraEntries = ''
TryExec=${pname}-presentations
StartupWMClass=pr
'';
};
textmaker = makeDesktopItem {
name = "${pname}-textmaker";
desktopName = "${suiteName} TextMaker";
icon = "${pname}-tml.png";
categories = "Application;Office;WordProcessor;";
exec = "${pname}-textmaker %F";
mimeType = "application/x-tmdx;application/x-tmvx;application/x-tmd;application/x-tmv;application/msword;application/vnd.ms-word;application/x-doc;text/rtf;application/rtf;application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.stardivision.writer;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/x-pocket-word;application/x-dbf;application/msword-template;";
extraEntries = ''
TryExec=${pname}-textmaker
StartupWMClass=tm
'';
};
}

View file

@ -0,0 +1,15 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
pname = "freeoffice";
version = "970";
edition = "2018";
suiteName = "FreeOffice";
src = fetchurl {
url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
sha256 = "1maibr4x8mksb32ixvyy2rjn4x9f51191p5fcdj5qwz32pf8h2dr";
};
archive = "freeoffice${edition}.tar.lzma";
})

View file

@ -0,0 +1,95 @@
{ stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper
# Dynamic Libraries
, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
, pname, version, edition, suiteName, src, archive
, ...
}:
let
desktopItems = import ./desktop_items.nix {
inherit makeDesktopItem pname suiteName;
};
shortEdition = builtins.substring 2 2 edition;
in stdenv.mkDerivation rec {
inherit pname version edition shortEdition src;
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
];
buildInputs = [
curl
libGL
libX11
libXext
libXmu
libXrandr
libXrender
stdenv.cc.cc.lib
];
dontBuild = true;
dontConfigure = true;
unpackPhase = ''
runHook preUnpack
mkdir installer
tar -C installer -xf ${src}
mkdir ${pname}
tar -C ${pname} -xf installer/${archive}
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r ${pname} $out/share/${pname}${edition}
# Wrap rather than symlinking, so that the programs can determine
# their resource path.
mkdir -p $out/bin
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker
for size in 16 32 48 64 96 128 256 512 1024; do
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
for app in pml prl tml; do
ln -s $out/share/${pname}${edition}/icons/''${app}_''${size}.png \
$out/share/icons/hicolor/''${size}x''${size}/apps/${pname}-''${app}.png
done
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/mimetypes
for mimetype in pmd prd tmd; do
ln -s $out/share/${pname}${edition}/icons/''${mimetype}_''${size}.png \
$out/share/icons/hicolor/''${size}x''${size}/mimetypes/application-x-''${mimetype}.png
done
done
# Add desktop items
${desktopItems.planmaker.buildCommand}
${desktopItems.presentations.buildCommand}
${desktopItems.textmaker.buildCommand}
# Add mime types
install -D -t $out/share/mime/packages ${pname}/mime/softmaker-*office*${shortEdition}.xml
runHook postInstall
'';
meta = with stdenv.lib; {
description = "An office suite with a word processor, spreadsheet and presentation program";
homepage = "https://www.softmaker.com/";
license = licenses.unfree;
maintainers = with maintainers; [ danieldk ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,15 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // rec {
pname = "softmaker-office";
version = "970";
edition = "2018";
suiteName = "SoftMaker Office";
src = fetchurl {
url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
sha256 = "14f94p1jms41s2iz5sa770rcyfp4mv01r6jjjis9amx37zrc8yid";
};
archive = "office${edition}.tar.lzma";
})

View file

@ -5,11 +5,11 @@ let
in
buildPythonApplication rec {
pname = "todoman";
version = "3.5.0";
version = "3.6.0";
src = fetchPypi {
inherit pname version;
sha256 = "051qjdpwif06x7qspnb4pfwdhb8nnmz99yqcp4kla5hv0n3jh0w9";
sha256 = "1c0jh9bi2xfjc7w4kka68mygl00zkp2qxhffnipmfvvykfjmlhk0";
};
LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
@ -19,7 +19,7 @@ buildPythonApplication rec {
buildInputs = [ glibcLocales ];
propagatedBuildInputs = with python3.pkgs;
[ atomicwrites click click-log configobj humanize icalendar parsedatetime
[ atomicwrites click click-log click-repl configobj humanize icalendar parsedatetime
python-dateutil pyxdg tabulate urwid ];
checkInputs = with python3.pkgs;

View file

@ -1,9 +1,8 @@
{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk, vtk }:
{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk4, vtk }:
stdenv.mkDerivation rec {
_name = "ANTs";
_version = "2.2.0";
name = "${_name}-${_version}";
pname = "ANTs";
version = "2.2.0";
src = fetchFromGitHub {
owner = "ANTsX";
@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [ cmake makeWrapper ];
buildInputs = [ itk vtk ];
buildInputs = [ itk4 vtk ];
cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = https://github.com/ANTxS/ANTs;
homepage = https://github.com/ANTsX/ANTs;
description = "Advanced normalization toolkit for medical image registration and other processing";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;

View file

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.mit;
homepage = http://www.htslib.org/;
platforms = platforms.unix;
maintainers = [ maintainers.mimadrid ];
maintainers = [ maintainers.mimame ];
};
}

View file

@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
description = "A visualization tool for interactive exploration of genomic datasets";
license = licenses.lgpl21;
platforms = platforms.unix;
maintainers = [ maintainers.mimadrid ];
maintainers = [ maintainers.mimame ];
};
}

View file

@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
license = licenses.mit;
homepage = http://www.htslib.org/;
platforms = platforms.unix;
maintainers = [ maintainers.mimadrid ];
maintainers = [ maintainers.mimame ];
};
}

View file

@ -28,7 +28,7 @@ let
"8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd";
"8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh";
"8.9.1" = "1xrq6mkhpq994bncmnijf8jwmwn961kkpl4mwwlv7j3dgnysrcv2";
"8.10+beta2" = "0jk7pwydhd17ab7ii69zvi4sgrr630q2lsxhckaj3sz55cpjlhal";
"8.10+beta3" = "08c7q97jyblsf7dhk8jf1fx1cp9qr3dr5s42wigx10wh7i6j7pca";
}.${version};
coq-version = stdenv.lib.versions.majorMinor version;
versionAtLeast = stdenv.lib.versionAtLeast coq-version;

View file

@ -104,9 +104,7 @@ stdenv.mkDerivation rec {
description = "A free computer algebra system (CAS)";
homepage = "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html";
license = licenses.gpl3Plus;
## xcas is buildable on darwin but there are specific instructions I could
## not test
platforms = platforms.linux;
platforms = platforms.unix;
maintainers = [ maintainers.symphorien ];
};
}

View file

@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = http://math.rutgers.edu/~asbuch/lrcalc/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ timokau ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
description = ''Programs for computing automorphism groups of graphs and digraphs'';
license = licenses.asl20;
maintainers = with maintainers; [ raskin timokau ];
platforms = platforms.linux;
platforms = platforms.unix;
homepage = http://pallini.di.uniroma1.it/;
};
}

View file

@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
homepage = http://pynac.org;
license = licenses.gpl3;
maintainers = with maintainers; [ timokau ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
description = "A CAS for polynomial computations";
maintainers = with maintainers; [ raskin timokau ];
# 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
platforms = subtractLists platforms.i686 platforms.linux;
platforms = subtractLists platforms.i686 platforms.unix;
license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4
homepage = http://www.singular.uni-kl.de;
downloadPage = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/";

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
homepage = http://www.cs.waikato.ac.nz/ml/weka/;
description = "Collection of machine learning algorithms for data mining tasks";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.mimadrid ];
maintainers = [ stdenv.lib.maintainers.mimame ];
platforms = stdenv.lib.platforms.unix;
};
}

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "cytoscape";
version = "3.7.1";
version = "3.7.2";
src = fetchurl {
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-${version}.tar.gz";
sha256 = "1mhsngbwbgdwl70wj7850zg94534lasihwv2ryifardm35mkh48k";
sha256 = "125vgr8vqbmy2nsm1yl0h0q8p49lxxqfw5cmxzbx1caklcn4rryc";
};
buildInputs = [jre makeWrapper];
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
homepage = http://www.cytoscape.org;
description = "A general platform for complex network analysis and visualization";
license = stdenv.lib.licenses.lgpl21;
maintainers = [stdenv.lib.maintainers.mimadrid];
maintainers = [stdenv.lib.maintainers.mimame];
platforms = stdenv.lib.platforms.unix;
};
}

View file

@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
pname = "gitkraken";
version = "6.1.4";
version = "6.2.0";
src = fetchurl {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
sha256 = "10m6pwdwdxj6x64bc7mrvlvwkgqrd5prh9xx7xhvbz55q6gx4vdr";
sha256 = "1kvp0fbixpynb0wh8px1qm6gnxwc5ml2q0vwsll0pa8zrjdz4q3k";
};
libPath = makeLibraryPath [

View file

@ -60,6 +60,6 @@ python3.pkgs.buildPythonApplication rec {
homepage = http://meldmerge.org/;
license = licenses.gpl2;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ jtojnar mimadrid ];
maintainers = with maintainers; [ jtojnar mimame ];
};
}

View file

@ -2,10 +2,14 @@
#
# Derivation patches HandBrake to use Nix closure dependencies.
#
# NOTE: 2019-07-19: This derivation does not currently support the native macOS
# GUI--it produces the "HandbrakeCLI" CLI version only. In the future it would
# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
# requires invoking the Xcode build system, which is non-trivial for now.
{ stdenv, lib, fetchurl,
# Main build tools
python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4,
python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, lzma,
# Processing, video codecs, containers
ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora,
# Codecs, audio
@ -14,20 +18,34 @@
libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
# Optical media
libdvdread, libdvdnav, libdvdcss, libbluray,
useGtk ? true, wrapGAppsHook ? null,
intltool ? null,
glib ? null,
gtk3 ? null,
libappindicator-gtk3 ? null,
libnotify ? null,
gst_all_1 ? null,
dbus-glib ? null,
udev ? null,
libgudev ? null,
hicolor-icon-theme ? null,
# Darwin-specific
AudioToolbox ? null,
Foundation ? null,
libobjc ? null,
VideoToolbox ? null,
# GTK
# NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
# which in turn depends on systemd. systemd is not supported on Darwin, so
# for now we disable GTK GUI support on Darwin. (It may be possible to remove
# this restriction later.)
useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
intltool ? null,
glib ? null,
gtk3 ? null,
libappindicator-gtk3 ? null,
libnotify ? null,
gst_all_1 ? null,
dbus-glib ? null,
udev ? null,
libgudev ? null,
hicolor-icon-theme ? null,
# FDK
useFdk ? false, fdk_aac ? null
}:
assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
&& libobjc != null && VideoToolbox != null;
stdenv.mkDerivation rec {
pname = "handbrake";
version = "1.2.2";
@ -45,12 +63,13 @@ stdenv.mkDerivation rec {
ffmpeg-full libogg libtheora x264 x265 libvpx
libopus lame libvorbis a52dec speex libsamplerate
libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
libdvdread libdvdnav libdvdcss libbluray
libdvdread libdvdnav libdvdcss libbluray lzma
] ++ lib.optionals useGtk [
glib gtk3 libappindicator-gtk3 libnotify
gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
libgudev hicolor-icon-theme
] ++ lib.optional useFdk fdk_aac
++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
# NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
# look at ./make/configure.py search "enable_nvenc"
++ lib.optional stdenv.isLinux nv-codec-headers;
@ -59,13 +78,16 @@ stdenv.mkDerivation rec {
# (default distribution bundles&builds 3rd party libs),
# don't trigger cmake build
dontUseCmakeConfigure = true;
enableParallelBuilding = true;
# cp: cannot create regular file './internal_defaults.json': File exists
enableParallelBuilding = false;
preConfigure = ''
patchShebangs scripts
substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
substituteInPlace libhb/module.defs \
--replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
# Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs
@ -75,8 +97,9 @@ stdenv.mkDerivation rec {
configureFlags = [
"--disable-df-fetch"
"--disable-df-verify"
(if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
(if useFdk then "--enable-fdk-aac" else "")
(if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
(if useFdk then "--enable-fdk-aac" else "")
(if stdenv.isDarwin then "--disable-xcode" else "")
];
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing

View file

@ -7,13 +7,13 @@ assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
mkDerivation rec {
pname = "shotcut";
version = "19.08.16";
version = "19.09.14";
src = fetchFromGitHub {
owner = "mltframework";
repo = "shotcut";
rev = "v${version}";
sha256 = "0alnnfgimfs8fjddkcfx4pzyijwz5dgnqic5qazaza6f4kf60801";
sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn";
};
enableParallelBuilding = true;
@ -36,7 +36,7 @@ mkDerivation rec {
qtWrapperArgs = [
"--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
"--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2 ]}"
"--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [jack1 SDL2]}"
"--prefix PATH : ${mlt}/bin"
];

View file

@ -17,7 +17,7 @@
buildGoPackage rec {
project = "cri-o";
version = "1.15.1";
version = "1.15.2";
name = "${project}-${version}${flavor}";
goPackagePath = "github.com/${project}/${project}";
@ -26,7 +26,7 @@ buildGoPackage rec {
owner = "cri-o";
repo = "cri-o";
rev = "v${version}";
sha256 = "0yjj03qwwb6g05pzavimgj14p6805m3w8qqpl4fp4fpmbrsx4sb0";
sha256 = "0fiizxwxdq87h943421ivgw49jndk23yjz3saf1rzmn7g3xh2pn4";
};
outputs = [ "bin" "out" ];

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