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 /doc/languages-frameworks/python.section.md @FRidh
# Haskell # Haskell
/pkgs/development/compilers/ghc @basvandijk /pkgs/development/compilers/ghc @basvandijk @cdepillabout
/pkgs/development/haskell-modules @basvandijk /pkgs/development/haskell-modules @basvandijk @cdepillabout
/pkgs/development/haskell-modules/default.nix @basvandijk /pkgs/development/haskell-modules/default.nix @basvandijk @cdepillabout
/pkgs/development/haskell-modules/generic-builder.nix @basvandijk /pkgs/development/haskell-modules/generic-builder.nix @basvandijk @cdepillabout
/pkgs/development/haskell-modules/hoogle.nix @basvandijk /pkgs/development/haskell-modules/hoogle.nix @basvandijk @cdepillabout
# Perl # Perl
/pkgs/development/interpreters/perl @volth /pkgs/development/interpreters/perl @volth

View File

@ -416,7 +416,7 @@ overrides = self: super: rec {
<para> <para>
Please note that the <literal>citrix_receiver</literal> package has been deprecated since its 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> 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> </para>
</note> </note>
<link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> and <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> <title>Custom certificates</title>
<para> <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 in <literal>nixpkgs</literal> trust several certificates
<link xlink:href="https://curl.haxx.se/docs/caextract.html">from the <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the
Mozilla database</link> by default. However several companies using Citrix Mozilla database</link> by default. However several companies using Citrix
@ -472,7 +472,7 @@ overrides = self: super: rec {
<programlisting> <programlisting>
<![CDATA[with import <nixpkgs> { config.allowUnfree = true; }; <![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in 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; inherit extraCerts;
}]]> }]]>
</programlisting> </programlisting>

View File

@ -2411,7 +2411,7 @@ addEnvHooks "$hostOffset" myBashFunction
<para> <para>
The Bintools Wrapper was only just recently split off from CC Wrapper, 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 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 derivation with the dynamic loader (which happens to be the glibc on
linux). Dependency finding however is a task both wrappers will continue linux). Dependency finding however is a task both wrappers will continue
to need to share, and probably the most important to understand. It is to need to share, and probably the most important to understand. It is

View File

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

View File

@ -11,13 +11,15 @@ import click
import requests import requests
from pyquery import PyQuery as pq 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([ 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 = 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): def get_response_text(url):
return pq(requests.get(url).text) # IO return pq(requests.get(url).text) # IO
@ -38,20 +40,29 @@ def get_maintainers(attr_name):
'-A', '-A',
'.'.join(nixname[1:]) + '.meta', '.'.join(nixname[1:]) + '.meta',
EVAL_FILE[nixname[0]], EVAL_FILE[nixname[0]],
'--arg',
'nixpkgs',
'./.',
'--json']) '--json'])
meta = json.loads(meta_json) meta = json.loads(meta_json)
if meta.get('maintainers'): return meta.get('maintainers', [])
return [MAINTAINERS[name] for name in meta['maintainers'] if MAINTAINERS.get(name)]
except: except:
return [] 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): def print_build(table_row):
a = pq(table_row)('a')[1] a = pq(table_row)('a')[1]
print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True) print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True)
maintainers = get_maintainers(a.text) job_maintainers = filter_github_users(get_maintainers(a.text))
if maintainers: if job_maintainers:
print(" - maintainers: {}".format(", ".join(map(lambda u: '@' + u, maintainers)))) print(" - maintainers: {}".format(" ".join(map(lambda u: '@' + u.get('github'), job_maintainers))))
# TODO: print last three persons that touched this file # 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? # TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked?
@ -60,8 +71,8 @@ def print_build(table_row):
@click.command() @click.command()
@click.option( @click.option(
'--jobset', '--jobset',
default="nixos/release-17.09", default="nixos/release-19.09",
help='Hydra project like nixos/release-17.09') help='Hydra project like nixos/release-19.09')
def cli(jobset): def cli(jobset):
""" """
Given a Hydra project, inspect latest evaluation Given a Hydra project, inspect latest evaluation
@ -93,6 +104,7 @@ def cli(jobset):
print_build(tr) print_build(tr)
if __name__ == "__main__": if __name__ == "__main__":
try: try:
cli() cli()

View File

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

View File

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

View File

@ -273,20 +273,6 @@ with lib;
(mkRenamedOptionModule [ "networking" "extraResolvconfConf" ] [ "networking" "resolvconf" "extraConfig" ]) (mkRenamedOptionModule [ "networking" "extraResolvconfConf" ] [ "networking" "resolvconf" "extraConfig" ])
(mkRenamedOptionModule [ "networking" "resolvconfOptions" ] [ "networking" "resolvconf" "extraOptions" ]) (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 # Redis
(mkRemovedOptionModule [ "services" "redis" "user" ] "The redis module now is hardcoded to the redis user.") (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.") (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 ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O hydra hydra
touch ${baseDir}/.db-created touch ${baseDir}/.db-created
fi 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 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 # If there is less than a certain amount of free disk space, stop
# the queue/evaluator to prevent builds from failing or aborting. # the queue/evaluator to prevent builds from failing or aborting.
systemd.services.hydra-check-space = systemd.services.hydra-check-space =
@ -416,6 +434,8 @@ in
hydra-users hydra-queue-runner hydra hydra-users hydra-queue-runner hydra
hydra-users hydra-www hydra hydra-users hydra-www hydra
hydra-users root 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 services.postgresql.authentication = optionalString haveLocalDB

View File

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

View File

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

View File

@ -120,16 +120,24 @@ in {
''; '';
}; };
poolConfig = mkOption { poolSettings = mkOption {
type = types.lines; type = with types; attrsOf (oneOf [ str int bool ]);
default = '' default = {
pm = dynamic "pm" = "dynamic";
pm.max_children = 32 "pm.max_children" = "32";
pm.start_servers = 2 "pm.start_servers" = "2";
pm.min_spare_servers = 2 "pm.min_spare_servers" = "2";
pm.max_spare_servers = 4 "pm.max_spare_servers" = "4";
pm.max_requests = 500 "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 = '' description = ''
Options for nextcloud's PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives. 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"; 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 = { { systemd.timers.nextcloud-cron = {
@ -423,7 +436,7 @@ in {
settings = mapAttrs (name: mkDefault) { settings = mapAttrs (name: mkDefault) {
"listen.owner" = "nginx"; "listen.owner" = "nginx";
"listen.group" = "nginx"; "listen.group" = "nginx";
}; } // cfg.poolSettings;
extraConfig = cfg.poolConfig; extraConfig = cfg.poolConfig;
}; };
}; };

View File

@ -9,6 +9,22 @@ let
in { 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 = { options.services.redshift = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;

View File

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

View File

@ -88,7 +88,7 @@ let cfg = config.system.autoUpgrade; in
HOME = "/root"; HOME = "/root";
} // config.networking.proxy.envVars; } // 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 script = let
nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild"; nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";

View File

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

View File

@ -8,8 +8,10 @@ let
trivialJob = pkgs.writeTextDir "trivial.nix" '' trivialJob = pkgs.writeTextDir "trivial.nix" ''
{ trivial = builtins.derivation { { trivial = builtins.derivation {
name = "trivial"; name = "trivial";
system = "x86_64-linux"; system = "${system}";
builder = "/bin/sh"; builder = "/bin/sh";
allowSubstitutes = false;
preferLocalBuild = true;
args = ["-c" "echo success > $out; exit 0"]; args = ["-c" "echo success > $out; exit 0"];
}; };
} }
@ -53,11 +55,16 @@ let
notificationSender = "example@example.com"; notificationSender = "example@example.com";
package = pkgs.hydra.override { inherit nix; }; package = pkgs.hydra.override { inherit nix; };
extraConfig = ''
email_notification = 1
'';
}; };
services.postfix.enable = true;
nix = { nix = {
buildMachines = [{ buildMachines = [{
hostName = "localhost"; hostName = "localhost";
systems = [ "x86_64-linux" ]; systems = [ system ];
}]; }];
binaryCaches = []; binaryCaches = [];
@ -68,12 +75,12 @@ let
# let the system boot up # let the system boot up
$machine->waitForUnit("multi-user.target"); $machine->waitForUnit("multi-user.target");
# test whether the database is running # test whether the database is running
$machine->succeed("systemctl status postgresql.service"); $machine->waitForUnit("postgresql.service");
# test whether the actual hydra daemons are running # test whether the actual hydra daemons are running
$machine->succeed("systemctl status hydra-queue-runner.service"); $machine->waitForUnit("hydra-init.service");
$machine->succeed("systemctl status hydra-init.service"); $machine->requireActiveUnit("hydra-queue-runner.service");
$machine->succeed("systemctl status hydra-evaluator.service"); $machine->requireActiveUnit("hydra-evaluator.service");
$machine->succeed("systemctl status hydra-send-stats.service"); $machine->requireActiveUnit("hydra-notify.service");
$machine->succeed("hydra-create-user admin --role admin --password admin"); $machine->succeed("hydra-create-user admin --role admin --password admin");
@ -84,6 +91,8 @@ let
$machine->succeed("create-trivial-project.sh"); $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('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"); $client2->sendChars("y");
# Find clients in logs # Find clients in logs
$server->waitUntilSucceeds("grep -q 'client1' /var/log/murmur/murmurd.log"); $server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client1");
$server->waitUntilSucceeds("grep -q 'client2' /var/log/murmur/murmurd.log"); $server->waitUntilSucceeds("journalctl -eu murmur -o cat | grep -q client2");
$server->sleep(5); # wait to get screenshot $server->sleep(5); # wait to get screenshot
$client1->screenshot("screen1"); $client1->screenshot("screen1");

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,13 +11,13 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = { sha256 = {
x86_64-linux = "1iz36nhkg78346g5407df6jv4d1ydb22hhgs8hiaxql3hq5z7x3q"; x86_64-linux = "1wxaxz2q4qizh6f23ipz8ihay6bpjdq0545vijqd84fqazcji6sq";
x86_64-darwin = "1iijk0kx90rax39iradbbafyvd3vwnzsgvyb3s13asy42pbhhkky"; x86_64-darwin = "1gb9w3hvw3avn852an5v8m1ia64fkavnvaawjfc3455b248iiqvk";
}.${system}; }.${system};
in in
callPackage ./generic.nix rec { callPackage ./generic.nix rec {
version = "1.38.0"; version = "1.38.1";
pname = "vscode"; pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders"; 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"; archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = { sha256 = {
x86_64-linux = "09rq5jx7aicwp3qqi5pcv6bmyyp1rm5cfa96hvy3f4grhq1fi132"; x86_64-linux = "15m7mfb8gmx3pwydc37blj0rxwgmkrnqfj6y79rpqlr2dg92gwlb";
x86_64-darwin = "1y1lbb3q5myaz7jg21x5sl0in8wr46brqj9zyrg3f16zahsagzr4"; x86_64-darwin = "080k4fnfa5ylmmya6zprgci3gld9mrbqsfnk53hgcny91ykl5xj5";
}.${system}; }.${system};
in in
callPackage ./generic.nix rec { callPackage ./generic.nix rec {
version = "1.38.0"; version = "1.38.1";
pname = "vscodium"; pname = "vscodium";
executableName = "codium"; executableName = "codium";

View File

@ -1,18 +1,21 @@
{ stdenv, rustPlatform , fetchFromGitHub, Security }: { stdenv, rustPlatform , fetchFromGitHub, Security }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "whitebox_tools"; pname = "whitebox_tools";
version = "0.9.0"; version = "0.16.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jblindsay"; owner = "jblindsay";
repo = "whitebox-tools"; repo = "whitebox-tools";
rev = "6221cdf327be70f0ee4f2053b76bfa01c3f37caa"; rev = "v${version}";
sha256 = "1423ga964mz7qkl88vkcm8qfprsksx04aq4sz9v5ghnmdzzvl89x"; sha256 = "1vs4hf2x3qjnffs9kjx56rzl67kpcy8xvng6p0r9fp9mfnblxg6j";
}; };
buildInputs = stdenv.lib.optional stdenv.isDarwin Security; buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
cargoSha256 = "11m13h9b75xz8dfisfcykar53qsl1crrp3l75s73gkkkvczlfd24"; cargoSha256 = "1y3vk8bzsaisx7wrncjxcqdh355f2wk4n59vq5qgj37fph2zpy7f";
# failures: structures::polyline::test::test_polyline_split
doCheck = false;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An advanced geospatial data analysis platform"; 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"; description = "Image browser and viewer for GNOME";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = [ maintainers.mimadrid ]; maintainers = [ maintainers.mimame ];
}; };
} }

View File

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

View File

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

View File

@ -7,7 +7,7 @@
kmail-account-wizard, kmailtransport, knotifications, knotifyconfig, kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet, kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon, kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
messagelib, pim-sieve-editor, qtscript, qtwebengine, messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi
}: }:
mkDerivation { mkDerivation {
@ -25,6 +25,6 @@ mkDerivation {
ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
]; ];
propagatedUserEnvPkgs = [ kdepim-runtime kwallet ]; propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
patches = [ ./kmail.patch ]; 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, { stdenv, swiProlog, makeWrapper,
fetchFromGitHub, fetchFromGitHub,
lexicon ? "lexicon/clex_lexicon.pl", lexicon ? "prolog/lexicon/clex_lexicon.pl",
pname ? "ape", pname ? "ape",
description ? "Parser for Attempto Controlled English (ACE)", description ? "Parser for Attempto Controlled English (ACE)",
license ? with stdenv.lib; licenses.lgpl3 license ? with stdenv.lib; licenses.lgpl3
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; inherit pname;
version = "6.7-131003"; version = "2019-08-10";
buildInputs = [ swiProlog makeWrapper ]; buildInputs = [ swiProlog makeWrapper ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Attempto"; owner = "Attempto";
repo = "APE"; repo = "APE";
rev = version; rev = "113b81621262d7a395779465cb09397183e6f74c";
sha256 = "0cw47qjg4896kw3vps6rfs02asvscsqvcfdiwgfmqb3hvykb1sdx"; sha256 = "0xyvna2fbr18hi5yvm0zwh77q02dfna1g4g53z9mn2rmlfn2mhjh";
}; };
patchPhase = '' patchPhase = ''
# We move the file first to avoid "same file" error in the default case # We move the file first to avoid "same file" error in the default case
cp ${lexicon} new_lexicon.pl cp ${lexicon} new_lexicon.pl
rm lexicon/clex_lexicon.pl rm prolog/lexicon/clex_lexicon.pl
cp new_lexicon.pl lexicon/clex_lexicon.pl cp new_lexicon.pl prolog/lexicon/clex_lexicon.pl
''; '';
buildPhase = '' buildPhase = ''
make build make SHELL=${stdenv.shell} build
''; '';
installPhase = '' installPhase = ''

View File

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

View File

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

View File

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

View File

@ -5,13 +5,13 @@ with python3.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "gcalcli"; pname = "gcalcli";
version = "4.1.1"; version = "4.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "insanum"; owner = "insanum";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1qlmslywm4dfimggly4p0ckn2gj165mq1p0wkry9jpb3sg1m5fdf"; sha256 = "0746vmhfclkpkqnyaidxid2z20mlv86hv0pjxy1qglrja91vkd72";
}; };
postPatch = lib.optionalString stdenv.isLinux '' 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 { mkDerivation rec {
pname = "gpxsee"; pname = "gpxsee";
version = "7.12"; version = "7.13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tumic0"; owner = "tumic0";
repo = "GPXSee"; repo = "GPXSee";
rev = version; rev = version;
sha256 = "0c3axs3mm6xzabwbvy9vgq1sryjpi4h91nwzy9iyv9zjxz7phgzc"; sha256 = "08cg5k4ffj2wrcm4rk7vyixbyyz0424276fw2fn8lmziklkdqyjw";
}; };
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];
@ -28,7 +28,7 @@ mkDerivation rec {
all common GPS log file formats. all common GPS log file formats.
''; '';
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.womfoo ]; maintainers = with maintainers; [ womfoo sikmir ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -2,12 +2,12 @@
let let
pname = "joplin-desktop"; pname = "joplin-desktop";
version = "1.0.158"; version = "1.0.167";
in appimageTools.wrapType2 rec { in appimageTools.wrapType2 rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}-x86_64.AppImage"; 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 cp -r ${v251a_src}/* $sourceRoot
''; '';
patches = [ ./k2pdfopt.patch ]; patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = buildInputs =
let 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: { mupdf_modded = mupdf.overrideAttrs (attrs: {
# Excluded the pdf-*.c files, since they mostly just broke the #includes patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
prePatch = ''
cp ${src}/mupdf_mod/{font,stext-device,string}.c source/fitz/
cp ${src}/mupdf_mod/font-win32.c source/pdf/
'';
}); });
leptonica_modded = leptonica.overrideAttrs (attrs: { leptonica_modded = leptonica.overrideAttrs (attrs: {
name = "leptonica-1.74.4"; patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
# 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";
})
];
}); });
tesseract_modded = tesseract4.override { tesseract_modded = tesseract4.override {
tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: { tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
prePatch = '' patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
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 ];
}); });
}; };
in 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 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 --- a/src/api/Makefile.am
+++ b/src/api/Makefile.am +++ b/src/api/Makefile.am
@@ -42,7 +42,7 @@ libtesseract_api_la_CPPFLAGS = $(AM_CPPFLAGS) @@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
if VISIBILITY libtesseract_api_la_SOURCES += pdfrenderer.cpp
libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
endif libtesseract_api_la_SOURCES += renderer.cpp
-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp +libtesseract_api_la_SOURCES += tesscapi.cpp
+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp tesscapi.cpp
lib_LTLIBRARIES += libtesseract.la 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 { stdenv.mkDerivation rec {
pname = "llpp"; pname = "llpp";
version = "30"; version = "31";
src = fetchgit { src = fetchgit {
url = "git://repo.or.cz/llpp.git"; url = "git://repo.or.cz/llpp.git";
rev = "v${version}"; rev = "v${version}";
sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd"; sha256 = "14ibsm1zzxfidjajcj30b5m9in10q3817izahsjvkmryrvvn6qsg";
fetchSubmodules = false; 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 diff --git a/build.bash b/build.bash
index 1588011..72117d9 100755 index 7c278b6..41494c5 100755
--- a/build.bash --- a/build.bash
+++ b/build.bash +++ b/build.bash
@@ -29,7 +29,6 @@ srcd="$(dirname $0)" @@ -29,7 +29,6 @@ srcd="$(dirname $0)"
@ -20,10 +11,10 @@ index 1588011..72117d9 100755
mkdir -p $outd/{$wsid,lablGL} mkdir -p $outd/{$wsid,lablGL}
:>$outd/ordered :>$outd/ordered
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; } @@ -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 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)" || ( -isfresh "$mulibs" "$(eval $keycmd)" || (
- make -C "$mudir" build=$mbt -j $mjobs libs - make -C "$mudir" build=$mbt -j $mjobs libs
- echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past - echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
@ -32,12 +23,12 @@ index 1588011..72117d9 100755
oincs() { oincs() {
local i= local i=
local incs1= local incs1=
@@ -90,32 +83,6 @@ mflags() { @@ -90,34 +83,6 @@ mflags() {
} }
overs="$(ocamlc -vnum 2>/dev/null)" || overs="" overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
-test "$overs" = "4.07.0" || { -test "$overs" = "4.08" || {
- url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz - url=https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.0.tar.xz
- txz=$outd/$(basename $url) - txz=$outd/$(basename $url)
- isfresh $txz $url || { - isfresh $txz $url || {
- executable_p() { command -v "$1" >/dev/null 2>&1; } - executable_p() { command -v "$1" >/dev/null 2>&1; }
@ -54,8 +45,10 @@ index 1588011..72117d9 100755
- tar xf $txz -C $outd - tar xf $txz -C $outd
- bn=$(basename $url) - bn=$(basename $url)
- cd $outd/${bn%.tar.xz} - cd $outd/${bn%.tar.xz}
- ./configure -prefix $absprefix \ - ./configure --disable-vmthreads --disable-graph-lib \
- -no-graph -no-debugger -no-ocamldoc -no-native-compiler - --disable-ocamldoc --enable-debugger=no \
- --disable-flat-float-array \
- --prefix=$absprefix
- make -j $mjobs world - make -j $mjobs world
- make install - make install
- echo "k='$url'" >$absprefix/bin/ocamlc.past - echo "k='$url'" >$absprefix/bin/ocamlc.past
@ -65,7 +58,7 @@ index 1588011..72117d9 100755
bocaml1() { bocaml1() {
grep -q "$3" $outd/ordered || { grep -q "$3" $outd/ordered || {
@@ -224,7 +191,7 @@ bobjc() { @@ -227,7 +192,7 @@ bobjc() {
} && vecho "fresh $o" } && vecho "fresh $o"
} }
@ -74,7 +67,7 @@ index 1588011..72117d9 100755
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)" cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
keycmd="digest $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 done
libs="str.cma unix.cma" libs="str.cma unix.cma"
@ -83,6 +76,3 @@ index 1588011..72117d9 100755
if $darwin; then if $darwin; then
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; }) mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
clibs="$clibs -framework Cocoa -framework OpenGL" clibs="$clibs -framework Cocoa -framework OpenGL"
--
2.19.2

View File

@ -14,24 +14,17 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
version = "1.14.0"; version = "1.16.1";
pname = "mupdf"; pname = "mupdf";
src = fetchurl { src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz"; url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "093p7lv6pgyymagn28n58fs0np928r0i5p2az9cc4gwccwx4hhy4"; sha256 = "0iz4ickj52fxjp8crg573kjrl4viq279g589isdpgpckslysf7g7";
}; };
patches = patches =
# Use shared libraries to decrease size # Use shared libraries to decrease size
[( fetchpatch stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
{
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 ./darwin.patch ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
; ;

View File

@ -4,12 +4,12 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "noice"; pname = "noice";
version = "0.6"; version = "0.8";
src = fetchgit { src = fetchgit {
url = "git://git.2f30.org/noice.git"; url = "git://git.2f30.org/noice.git";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "03rwglcy47fh6rb630vws10m95bxpcfv47nxrlws2li2ljam8prw"; sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar";
}; };
configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf); 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 { stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
, libtool, makeWrapper }: , libtool, makeWrapper, nss }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nut-2.7.4"; name = "nut-2.7.4";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq"; sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
}; };
buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ]; buildInputs = [ neon libusb openssl udev avahi freeipmi libtool nss ];
nativeBuildInputs = [ pkgconfig makeWrapper ]; nativeBuildInputs = [ pkgconfig makeWrapper ];

View File

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

View File

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

View File

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

View File

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

View File

@ -2,6 +2,8 @@
, makeWrapper, ed , makeWrapper, ed
, glib, gtk3, gnome3, gsettings-desktop-schemas , glib, gtk3, gnome3, gsettings-desktop-schemas
, libva ? null , libva ? null
, gcc, nspr, nss, patchelfUnstable, runCommand
, lib
# package customization # package customization
, channel ? "stable" , channel ? "stable"
@ -34,23 +36,76 @@ in let
mkChromiumDerivation = callPackage ./common.nix { mkChromiumDerivation = callPackage ./common.nix {
inherit enableNaCl gnomeSupport gnome inherit enableNaCl gnomeSupport gnome
gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport
useVaapi useVaapi;
enableWideVine;
}; };
browser = callPackage ./browser.nix { inherit channel; }; browser = callPackage ./browser.nix { inherit channel enableWideVine; };
plugins = callPackage ./plugins.nix { 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 ""; suffix = if channel != "stable" then "-" + channel else "";
sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
version = chromium.browser.version; 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 { in stdenv.mkDerivation {
name = "chromium${suffix}-${version}"; name = "chromium${suffix}-${version}";
inherit version; inherit version;
@ -68,7 +123,7 @@ in stdenv.mkDerivation {
outputs = ["out" "sandbox"]; outputs = ["out" "sandbox"];
buildCommand = let buildCommand = let
browserBinary = "${chromium.browser}/libexec/chromium/chromium"; browserBinary = "${chromiumWV}/libexec/chromium/chromium";
getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
libPath = stdenv.lib.makeLibraryPath ([] libPath = stdenv.lib.makeLibraryPath ([]
++ stdenv.lib.optional useVaapi libva ++ stdenv.lib.optional useVaapi libva
@ -113,13 +168,7 @@ in stdenv.mkDerivation {
''; '';
inherit (chromium.browser) packageName; inherit (chromium.browser) packageName;
meta = chromium.browser.meta // { meta = chromium.browser.meta;
broken = if enableWideVine then
builtins.trace "WARNING: WideVine is not functional, please only use for testing"
true
else false;
};
passthru = { passthru = {
inherit (chromium) upstream-info browser; inherit (chromium) upstream-info browser;
mkDerivation = chromium.mkChromiumDerivation; 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 --- a/third_party/widevine/cdm/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/widevine_cdm_version.h
BTS: https://bugs.gentoo.org/show_bug.cgi?id=547630 @@ -11,5 +11,6 @@
// If the Widevine CDM is available define the following:
--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h // as a string, e.g., "1.0.123.456").
@@ -10,6 +10,7 @@ +#define WIDEVINE_CDM_VERSION_STRING "undefined"
#include "third_party/widevine/cdm/widevine_cdm_common.h"
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
#define WIDEVINE_CDM_AVAILABLE
#endif // WIDEVINE_CDM_VERSION_H_ #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 , fetchzip
, patchelfUnstable , patchelfUnstable
, enablePepperFlash ? false , enablePepperFlash ? false
, enableWideVine ? false
, upstream-info , upstream-info
}: }:
@ -44,60 +43,6 @@ let
echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags" 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 { flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi"; pname = "flashplayer-ppapi";
version = "32.0.0.255"; version = "32.0.0.255";
@ -140,6 +85,5 @@ let
}; };
in { in {
enabled = optional enableWideVine widevine enabled = optional enablePepperFlash flash;
++ optional enablePepperFlash flash;
} }

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }: { lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.12.0"; in let version = "0.12.5"; in
buildGoPackage { buildGoPackage {
pname = "kubecfg"; pname = "kubecfg";
@ -10,7 +10,7 @@ buildGoPackage {
owner = "bitnami"; owner = "bitnami";
repo = "kubecfg"; repo = "kubecfg";
rev = "v${version}"; rev = "v${version}";
sha256 = "118p1fy6cihswwz03vp62cz8395hgfqd82nmfkw88fx7av23rfhb"; sha256 = "0pn37qkwn3kdsd0z3qxk95lqjn2zak7gkk0pwlqp26jmrx0vv18l";
}; };
goPackagePath = "github.com/bitnami/kubecfg"; 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 }: , gcc, nettools, iproute, linuxHeaders }:
# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp"; # 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 # so I'm sticking with 3.4
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ike-2.2.1"; pname = "ike";
version = "2.2.1";
src = fetchurl { 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"; 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 = '' configurePhase = ''
mkdir -p $out/{bin,sbin,lib} mkdir -p $out/{bin,sbin,lib}

View File

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

View File

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

View File

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

View File

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

View File

@ -1,615 +1,615 @@
{ {
version = "68.0"; version = "68.1.0";
sources = [ 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"; locale = "ar";
arch = "linux-x86_64"; 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"; locale = "ast";
arch = "linux-x86_64"; 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"; locale = "be";
arch = "linux-x86_64"; 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"; locale = "bg";
arch = "linux-x86_64"; 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"; locale = "br";
arch = "linux-x86_64"; 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"; locale = "ca";
arch = "linux-x86_64"; 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"; locale = "cak";
arch = "linux-x86_64"; 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"; locale = "cs";
arch = "linux-x86_64"; 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"; locale = "cy";
arch = "linux-x86_64"; 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"; locale = "da";
arch = "linux-x86_64"; 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"; locale = "de";
arch = "linux-x86_64"; 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"; locale = "dsb";
arch = "linux-x86_64"; 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"; locale = "el";
arch = "linux-x86_64"; 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"; locale = "en-GB";
arch = "linux-x86_64"; 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"; locale = "en-US";
arch = "linux-x86_64"; 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"; locale = "es-AR";
arch = "linux-x86_64"; 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"; locale = "es-ES";
arch = "linux-x86_64"; 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"; locale = "et";
arch = "linux-x86_64"; 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"; locale = "eu";
arch = "linux-x86_64"; 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"; locale = "fi";
arch = "linux-x86_64"; 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"; locale = "fr";
arch = "linux-x86_64"; 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"; locale = "fy-NL";
arch = "linux-x86_64"; 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"; locale = "ga-IE";
arch = "linux-x86_64"; 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"; locale = "gd";
arch = "linux-x86_64"; 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"; locale = "gl";
arch = "linux-x86_64"; 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"; locale = "he";
arch = "linux-x86_64"; 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"; locale = "hr";
arch = "linux-x86_64"; 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"; locale = "hsb";
arch = "linux-x86_64"; 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"; locale = "hu";
arch = "linux-x86_64"; 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"; locale = "hy-AM";
arch = "linux-x86_64"; 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"; locale = "id";
arch = "linux-x86_64"; 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"; locale = "is";
arch = "linux-x86_64"; 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"; locale = "it";
arch = "linux-x86_64"; 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"; locale = "ja";
arch = "linux-x86_64"; 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"; locale = "ka";
arch = "linux-x86_64"; 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"; locale = "kab";
arch = "linux-x86_64"; 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"; locale = "kk";
arch = "linux-x86_64"; 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"; locale = "ko";
arch = "linux-x86_64"; 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"; locale = "lt";
arch = "linux-x86_64"; 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"; locale = "ms";
arch = "linux-x86_64"; 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"; locale = "nb-NO";
arch = "linux-x86_64"; 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"; locale = "nl";
arch = "linux-x86_64"; 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"; locale = "nn-NO";
arch = "linux-x86_64"; 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"; locale = "pl";
arch = "linux-x86_64"; 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"; locale = "pt-BR";
arch = "linux-x86_64"; 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"; locale = "pt-PT";
arch = "linux-x86_64"; 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"; locale = "rm";
arch = "linux-x86_64"; 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"; locale = "ro";
arch = "linux-x86_64"; 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"; locale = "ru";
arch = "linux-x86_64"; 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"; locale = "si";
arch = "linux-x86_64"; 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"; locale = "sk";
arch = "linux-x86_64"; 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"; locale = "sl";
arch = "linux-x86_64"; 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"; locale = "sq";
arch = "linux-x86_64"; 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"; locale = "sr";
arch = "linux-x86_64"; 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"; locale = "sv-SE";
arch = "linux-x86_64"; 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"; locale = "tr";
arch = "linux-x86_64"; 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"; locale = "uk";
arch = "linux-x86_64"; 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"; locale = "uz";
arch = "linux-x86_64"; 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"; locale = "vi";
arch = "linux-x86_64"; 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"; locale = "zh-CN";
arch = "linux-x86_64"; 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"; locale = "zh-TW";
arch = "linux-x86_64"; 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"; locale = "ar";
arch = "linux-i686"; 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"; locale = "ast";
arch = "linux-i686"; 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"; locale = "be";
arch = "linux-i686"; 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"; locale = "bg";
arch = "linux-i686"; 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"; locale = "br";
arch = "linux-i686"; 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"; locale = "ca";
arch = "linux-i686"; 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"; locale = "cak";
arch = "linux-i686"; 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"; locale = "cs";
arch = "linux-i686"; 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"; locale = "cy";
arch = "linux-i686"; 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"; locale = "da";
arch = "linux-i686"; 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"; locale = "de";
arch = "linux-i686"; 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"; locale = "dsb";
arch = "linux-i686"; 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"; locale = "el";
arch = "linux-i686"; 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"; locale = "en-GB";
arch = "linux-i686"; 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"; locale = "en-US";
arch = "linux-i686"; 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"; locale = "es-AR";
arch = "linux-i686"; 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"; locale = "es-ES";
arch = "linux-i686"; 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"; locale = "et";
arch = "linux-i686"; 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"; locale = "eu";
arch = "linux-i686"; 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"; locale = "fi";
arch = "linux-i686"; 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"; locale = "fr";
arch = "linux-i686"; 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"; locale = "fy-NL";
arch = "linux-i686"; 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"; locale = "ga-IE";
arch = "linux-i686"; 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"; locale = "gd";
arch = "linux-i686"; 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"; locale = "gl";
arch = "linux-i686"; 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"; locale = "he";
arch = "linux-i686"; 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"; locale = "hr";
arch = "linux-i686"; 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"; locale = "hsb";
arch = "linux-i686"; 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"; locale = "hu";
arch = "linux-i686"; 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"; locale = "hy-AM";
arch = "linux-i686"; 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"; locale = "id";
arch = "linux-i686"; 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"; locale = "is";
arch = "linux-i686"; 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"; locale = "it";
arch = "linux-i686"; 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"; locale = "ja";
arch = "linux-i686"; 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"; locale = "ka";
arch = "linux-i686"; 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"; locale = "kab";
arch = "linux-i686"; 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"; locale = "kk";
arch = "linux-i686"; 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"; locale = "ko";
arch = "linux-i686"; 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"; locale = "lt";
arch = "linux-i686"; 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"; locale = "ms";
arch = "linux-i686"; 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"; locale = "nb-NO";
arch = "linux-i686"; 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"; locale = "nl";
arch = "linux-i686"; 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"; locale = "nn-NO";
arch = "linux-i686"; 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"; locale = "pl";
arch = "linux-i686"; 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"; locale = "pt-BR";
arch = "linux-i686"; 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"; locale = "pt-PT";
arch = "linux-i686"; 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"; locale = "rm";
arch = "linux-i686"; 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"; locale = "ro";
arch = "linux-i686"; 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"; locale = "ru";
arch = "linux-i686"; 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"; locale = "si";
arch = "linux-i686"; 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"; locale = "sk";
arch = "linux-i686"; 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"; locale = "sl";
arch = "linux-i686"; 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"; locale = "sq";
arch = "linux-i686"; 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"; locale = "sr";
arch = "linux-i686"; 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"; locale = "sv-SE";
arch = "linux-i686"; 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"; locale = "tr";
arch = "linux-i686"; 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"; locale = "uk";
arch = "linux-i686"; 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"; locale = "uz";
arch = "linux-i686"; 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"; locale = "vi";
arch = "linux-i686"; 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"; locale = "zh-CN";
arch = "linux-i686"; 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"; locale = "zh-TW";
arch = "linux-i686"; 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; gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "thunderbird"; pname = "thunderbird";
version = "68.0"; version = "68.1.0";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "2cz583rwfpj4z5cwg2vfy4ha0pz4xs9g7li078rmk6x19haiv8s9fwijd82xgxax0afn8wk80bq5kd8yz38l9432f6bar8xnwb21y4i"; sha512 = "06036nawpm987q33567nhz55qybbcl55h5rdhjbhck5qmyj1qi383xqac5niwyk7c0gaq4ygwc5a24pysf85crjdway2zmqyjxp2apb";
}; };
# from firefox, but without sound libraries # 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 , boost, db, openssl, geoip, libiconv, miniupnpc
, srcOnly, fetchgit , srcOnly, fetchgit
}: }:
@ -17,12 +17,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "twister"; pname = "twister";
version = "0.9.34"; version = "2019-08-19";
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/miguelfreitas/twister-core/" owner = "miguelfreitas";
+ "archive/v${version}.tar.gz"; repo = "twister-core";
sha256 = "1bi8libivd9y2bn9fc7vbc5q0jnal0pykpzgri6anqaww22y58jq"; rev = "31faf3f63e461ea0a9b23081567a4a552cf06873";
sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp";
}; };
configureFlags = [ configureFlags = [
@ -40,12 +41,6 @@ in stdenv.mkDerivation rec {
boostPython db openssl geoip miniupnpc libiconv boostPython db openssl geoip miniupnpc libiconv
]; ];
patches = stdenv.lib.singleton (fetchpatch {
url = "https://github.com/miguelfreitas/twister-core/commit/"
+ "dd4f5a176958ea6ed855dc3fcef79680c1c0c92c.patch";
sha256 = "06fgmqnjyl83civ3ixiq673k8zjgm8n2w4w46nsh810nprqim8s6";
});
postPatch = '' postPatch = ''
sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \ sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \
src/init.cpp 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 { buildGoModule rec {
pname = "rclone"; pname = "rclone";
version = "1.49.1"; version = "1.49.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0mjwp1j70dqa8k3zxhcnw85ddhagkpr7c59mv8kradv6mqqzmq9c"; sha256 = "1a90fr7cw78qhwdgkjwshap345jk1ipm3nnk7xf3nayiyibvk5dg";
}; };
modSha256 = "158mpmy8q67dk1ks9p926n1670gsk7rhd0vpjh44f4g64ddnhk03"; modSha256 = "158mpmy8q67dk1ks9p926n1670gsk7rhd0vpjh44f4g64ddnhk03";

View File

@ -57,6 +57,12 @@ let
cp -r --no-preserve=mode $src/src/* $src/LICENSE $srcDir 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 buildPhase = let
# Paperless has explicit runtime checks that expect these binaries to be in PATH # Paperless has explicit runtime checks that expect these binaries to be in PATH
extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ]; extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];

View File

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

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, mkDerivation, pkgconfig, cmake, qtbase, cairo, pixman, { stdenv, fetchurl, mkDerivation, pkgconfig, cmake, qtbase, cairo, pixman,
boost, cups, fontconfig, freetype, hunspell, libjpeg, libtiff, libxml2, lcms2, 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 let
pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]); pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
@ -20,7 +20,7 @@ mkDerivation rec {
buildInputs = [ buildInputs = [
qtbase cairo pixman boost cups fontconfig qtbase cairo pixman boost cups fontconfig
freetype hunspell libjpeg libtiff libxml2 lcms2 podofo poppler freetype hunspell libjpeg libtiff libxml2 lcms2 podofo poppler
poppler_data pythonEnv harfbuzz qtimageformats qttools poppler_data pythonEnv harfbuzz qtimageformats qttools harfbuzzFull
]; ];
meta = { 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 in
buildPythonApplication rec { buildPythonApplication rec {
pname = "todoman"; pname = "todoman";
version = "3.5.0"; version = "3.6.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "051qjdpwif06x7qspnb4pfwdhb8nnmz99yqcp4kla5hv0n3jh0w9"; sha256 = "1c0jh9bi2xfjc7w4kka68mygl00zkp2qxhffnipmfvvykfjmlhk0";
}; };
LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
@ -19,7 +19,7 @@ buildPythonApplication rec {
buildInputs = [ glibcLocales ]; buildInputs = [ glibcLocales ];
propagatedBuildInputs = with python3.pkgs; 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 ]; python-dateutil pyxdg tabulate urwid ];
checkInputs = with python3.pkgs; 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 { stdenv.mkDerivation rec {
_name = "ANTs"; pname = "ANTs";
_version = "2.2.0"; version = "2.2.0";
name = "${_name}-${_version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ANTsX"; owner = "ANTsX";
@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
]; ];
nativeBuildInputs = [ cmake makeWrapper ]; nativeBuildInputs = [ cmake makeWrapper ];
buildInputs = [ itk vtk ]; buildInputs = [ itk4 vtk ];
cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ]; cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
''; '';
meta = with stdenv.lib; { 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"; description = "Advanced normalization toolkit for medical image registration and other processing";
maintainers = with maintainers; [ bcdarwin ]; maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix; platforms = platforms.unix;

View File

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.mit; license = licenses.mit;
homepage = http://www.htslib.org/; homepage = http://www.htslib.org/;
platforms = platforms.unix; 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"; description = "A visualization tool for interactive exploration of genomic datasets";
license = licenses.lgpl21; license = licenses.lgpl21;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = [ maintainers.mimadrid ]; maintainers = [ maintainers.mimame ];
}; };
} }

View File

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

View File

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

View File

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

View File

@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = http://math.rutgers.edu/~asbuch/lrcalc/; homepage = http://math.rutgers.edu/~asbuch/lrcalc/;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ timokau ]; 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''; description = ''Programs for computing automorphism groups of graphs and digraphs'';
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ raskin timokau ]; maintainers = with maintainers; [ raskin timokau ];
platforms = platforms.linux; platforms = platforms.unix;
homepage = http://pallini.di.uniroma1.it/; homepage = http://pallini.di.uniroma1.it/;
}; };
} }

View File

@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
homepage = http://pynac.org; homepage = http://pynac.org;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ timokau ]; 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"; description = "A CAS for polynomial computations";
maintainers = with maintainers; [ raskin timokau ]; maintainers = with maintainers; [ raskin timokau ];
# 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'` # 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 license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4
homepage = http://www.singular.uni-kl.de; homepage = http://www.singular.uni-kl.de;
downloadPage = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/"; 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/; homepage = http://www.cs.waikato.ac.nz/ml/weka/;
description = "Collection of machine learning algorithms for data mining tasks"; description = "Collection of machine learning algorithms for data mining tasks";
license = stdenv.lib.licenses.gpl2Plus; license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.mimadrid ]; maintainers = [ stdenv.lib.maintainers.mimame ];
platforms = stdenv.lib.platforms.unix; platforms = stdenv.lib.platforms.unix;
}; };
} }

View File

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

View File

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

View File

@ -60,6 +60,6 @@ python3.pkgs.buildPythonApplication rec {
homepage = http://meldmerge.org/; homepage = http://meldmerge.org/;
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux ++ platforms.darwin; 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. # 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, { stdenv, lib, fetchurl,
# Main build tools # Main build tools
python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, python2, pkgconfig, autoconf, automake, cmake, nasm, libtool, m4, lzma,
# Processing, video codecs, containers # Processing, video codecs, containers
ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora,
# Codecs, audio # Codecs, audio
@ -14,7 +18,17 @@
libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz, libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
# Optical media # Optical media
libdvdread, libdvdnav, libdvdcss, libbluray, libdvdread, libdvdnav, libdvdcss, libbluray,
useGtk ? true, wrapGAppsHook ? 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, intltool ? null,
glib ? null, glib ? null,
gtk3 ? null, gtk3 ? null,
@ -25,9 +39,13 @@
udev ? null, udev ? null,
libgudev ? null, libgudev ? null,
hicolor-icon-theme ? null, hicolor-icon-theme ? null,
# FDK
useFdk ? false, fdk_aac ? null useFdk ? false, fdk_aac ? null
}: }:
assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
&& libobjc != null && VideoToolbox != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "handbrake"; pname = "handbrake";
version = "1.2.2"; version = "1.2.2";
@ -45,12 +63,13 @@ stdenv.mkDerivation rec {
ffmpeg-full libogg libtheora x264 x265 libvpx ffmpeg-full libogg libtheora x264 x265 libvpx
libopus lame libvorbis a52dec speex libsamplerate libopus lame libvorbis a52dec speex libsamplerate
libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
libdvdread libdvdnav libdvdcss libbluray libdvdread libdvdnav libdvdcss libbluray lzma
] ++ lib.optionals useGtk [ ] ++ lib.optionals useGtk [
glib gtk3 libappindicator-gtk3 libnotify glib gtk3 libappindicator-gtk3 libnotify
gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
libgudev hicolor-icon-theme libgudev hicolor-icon-theme
] ++ lib.optional useFdk fdk_aac ] ++ 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, # NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
# look at ./make/configure.py search "enable_nvenc" # look at ./make/configure.py search "enable_nvenc"
++ lib.optional stdenv.isLinux nv-codec-headers; ++ lib.optional stdenv.isLinux nv-codec-headers;
@ -59,13 +78,16 @@ stdenv.mkDerivation rec {
# (default distribution bundles&builds 3rd party libs), # (default distribution bundles&builds 3rd party libs),
# don't trigger cmake build # don't trigger cmake build
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
enableParallelBuilding = true; # cp: cannot create regular file './internal_defaults.json': File exists
enableParallelBuilding = false;
preConfigure = '' preConfigure = ''
patchShebangs scripts patchShebangs scripts
substituteInPlace libhb/module.defs \ substituteInPlace libhb/module.defs \
--replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2 --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 # Force using nixpkgs dependencies
sed -i '/MODULES += contrib/d' make/include/main.defs sed -i '/MODULES += contrib/d' make/include/main.defs
@ -77,6 +99,7 @@ stdenv.mkDerivation rec {
"--disable-df-verify" "--disable-df-verify"
(if useGtk then "--disable-gtk-update-checks" else "--disable-gtk") (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
(if useFdk then "--enable-fdk-aac" else "") (if useFdk then "--enable-fdk-aac" else "")
(if stdenv.isDarwin then "--disable-xcode" else "")
]; ];
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing # 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 { mkDerivation rec {
pname = "shotcut"; pname = "shotcut";
version = "19.08.16"; version = "19.09.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mltframework"; owner = "mltframework";
repo = "shotcut"; repo = "shotcut";
rev = "v${version}"; rev = "v${version}";
sha256 = "0alnnfgimfs8fjddkcfx4pzyijwz5dgnqic5qazaza6f4kf60801"; sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View File

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

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