Merge branch 'master' into staging
This commit is contained in:
commit
4244b73917
2
.github/stale.yml
vendored
2
.github/stale.yml
vendored
@ -17,7 +17,7 @@ pulls:
|
||||
|
||||
If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me". But there's a bit more you can do:
|
||||
|
||||
If you received an approval by an unpriviledged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
|
||||
If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
|
||||
|
||||
If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) to find someone who touched the relevant files in the past.
|
||||
|
||||
|
@ -4,34 +4,36 @@
|
||||
<title>Citrix Workspace</title>
|
||||
|
||||
<para>
|
||||
<note>
|
||||
<para>
|
||||
Please note that the <literal>citrix_receiver</literal> package has been deprecated since its development was <link xlink:href="https://docs.citrix.com/en-us/citrix-workspace-app.html">discontinued by upstream</link> and has been replaced by <link xlink:href="https://www.citrix.com/products/workspace-app/">the citrix workspace app</link>.
|
||||
</para>
|
||||
</note>
|
||||
<link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> and <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> are a remote desktop viewers which provide access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
|
||||
The <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> is a remote desktop viewer which provides access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
|
||||
</para>
|
||||
|
||||
<section xml:id="sec-citrix-base">
|
||||
<title>Basic usage</title>
|
||||
|
||||
<para>
|
||||
The tarball archive needs to be downloaded manually as the license agreements of the vendor for <link xlink:href="https://www.citrix.com/downloads/citrix-receiver/">Citrix Receiver</link> or <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> need to be accepted first. Then run <command>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</command>. With the archive available in the store the package can be built and installed with Nix.
|
||||
The tarball archive needs to be downloaded manually as the license agreements of the vendor for <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> needs to be accepted first. Then run <command>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</command>. With the archive available in the store the package can be built and installed with Nix.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<warning>
|
||||
<title>Caution with <command>nix-shell</command> installs</title>
|
||||
<para>
|
||||
It's recommended to install <literal>Citrix Receiver</literal> and/or <literal>Citrix Workspace</literal> using <literal>nix-env -i</literal> or globally to ensure that the <literal>.desktop</literal> files are installed properly into <literal>$XDG_CONFIG_DIRS</literal>. Otherwise it won't be possible to open <literal>.ica</literal> files automatically from the browser to start a Citrix connection.
|
||||
</para>
|
||||
</warning>
|
||||
<section xml:id="sec-citrix-selfservice">
|
||||
<title>Citrix Selfservice</title>
|
||||
<para>
|
||||
The <link xlink:href="https://support.citrix.com/article/CTX200337">selfservice</link> is an application managing Citrix desktops and applications. Please note that this feature only works with at least <package>citrix_workspace_20_06_0</package> and later versions.
|
||||
</para>
|
||||
<para>
|
||||
In order to set this up, you first have to <link xlink:href="https://its.uiowa.edu/support/article/102186">download the <literal>.cr</literal> file from the Netscaler Gateway</link>. After that you can configure the <command>selfservice</command> like this:
|
||||
<screen>
|
||||
<prompt>$ </prompt>storebrowse -C ~/Downloads/receiverconfig.cr
|
||||
<prompt>$ </prompt>selfservice
|
||||
</screen>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="sec-citrix-custom-certs">
|
||||
<title>Custom certificates</title>
|
||||
|
||||
<para>
|
||||
The <literal>Citrix Workspace App</literal> in <literal>nixpkgs</literal> trust several certificates <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>:
|
||||
The <literal>Citrix Workspace App</literal> in <literal>nixpkgs</literal> trusts several certificates <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>:
|
||||
<programlisting>
|
||||
<![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
|
||||
let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
|
||||
|
@ -3,159 +3,193 @@
|
||||
xml:id="sec-language-perl">
|
||||
<title>Perl</title>
|
||||
|
||||
<para>
|
||||
Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Perl packages from CPAN are defined in <link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
|
||||
<programlisting>
|
||||
ClassC3 = buildPerlPackage rec {
|
||||
name = "Class-C3-0.21";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
|
||||
sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
|
||||
};
|
||||
};
|
||||
</programlisting>
|
||||
Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
|
||||
<programlisting>
|
||||
foo = import ../path/to/foo.nix {
|
||||
inherit stdenv fetchurl ...;
|
||||
inherit (perlPackages) ClassC3;
|
||||
};
|
||||
</programlisting>
|
||||
in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-build -A perlPackages.ClassC3
|
||||
</screen>
|
||||
<varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-env -i perl-Class-C3
|
||||
</screen>
|
||||
(Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
So what does <varname>buildPerlPackage</varname> do? It does the following:
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
|
||||
</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
|
||||
<programlisting>
|
||||
{ buildPerlPackage, fetchurl, db }:
|
||||
|
||||
buildPerlPackage rec {
|
||||
name = "BerkeleyDB-0.36";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
|
||||
sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
echo "LIB = ${db.out}/lib" > config.in
|
||||
echo "INCLUDE = ${db.dev}/include" >> config.in
|
||||
'';
|
||||
}
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
|
||||
<programlisting>
|
||||
ClassC3Componentised = buildPerlPackage rec {
|
||||
name = "Class-C3-Componentised-1.0004";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
|
||||
sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
ClassC3 ClassInspector TestException MROCompat
|
||||
];
|
||||
};
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
|
||||
<programlisting>
|
||||
{ stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
|
||||
|
||||
ImageExifTool = buildPerlPackage {
|
||||
pname = "Image-ExifTool";
|
||||
version = "11.50";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.50.tar.gz";
|
||||
sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
|
||||
postInstall = stdenv.lib.optional stdenv.isDarwin ''
|
||||
shortenPerlShebang $out/bin/exiftool
|
||||
'';
|
||||
};
|
||||
</programlisting>
|
||||
This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
|
||||
</para>
|
||||
|
||||
<section xml:id="ssec-generation-from-CPAN">
|
||||
<title>Generation from CPAN</title>
|
||||
<section xml:id="ssec-perl-running">
|
||||
<title>Running perl programs on the shell</title>
|
||||
|
||||
<para>
|
||||
Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
|
||||
When executing a Perl script, it is possible you get an error such as <literal>./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory</literal>. This happens when the script expects Perl to be installed at <filename>/usr/bin/perl</filename>, which is not the case when using Perl from nixpkgs. You can fix the script by changing the first line to:
|
||||
<programlisting>
|
||||
#!/usr/bin/env perl
|
||||
</programlisting>
|
||||
to take the Perl installation from the <literal>PATH</literal> environment variable, or invoke Perl directly with:
|
||||
<screen>
|
||||
<prompt>$ </prompt>perl ./myscript.pl
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-env -i nix-generate-from-cpan
|
||||
</screen>
|
||||
<para>
|
||||
When the script is using a Perl library that is not installed globally, you might get an error such as <literal>Can't locate DB_File.pm in @INC (you may need to install the DB_File module)</literal>. In that case, you can use <command>nix-shell</command> to start an ad-hoc shell with that library installed, for instance:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-shell -p perl perlPackages.DBFile --run ./myscript.pl
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-generate-from-cpan XML::Simple
|
||||
XMLSimple = buildPerlPackage rec {
|
||||
name = "XML-Simple-2.22";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz";
|
||||
sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
|
||||
};
|
||||
propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
|
||||
meta = {
|
||||
description = "An API for simple XML files";
|
||||
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
|
||||
};
|
||||
};
|
||||
</screen>
|
||||
The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
|
||||
If you are always using the script in places where <command>nix-shell</command> is available, you can embed the <command>nix-shell</command> invocation in the shebang like this:
|
||||
<programlisting>
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i perl -p perl perlPackages.DBFile
|
||||
</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="ssec-perl-cross-compilation">
|
||||
<title>Cross-compiling modules</title>
|
||||
<section xml:id="ssec-perl-packaging">
|
||||
<title>Packaging Perl programs</title>
|
||||
|
||||
<para>
|
||||
Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
|
||||
Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Perl packages from CPAN are defined in <link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
|
||||
<programlisting>
|
||||
ClassC3 = buildPerlPackage rec {
|
||||
name = "Class-C3-0.21";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
|
||||
sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
|
||||
};
|
||||
};
|
||||
</programlisting>
|
||||
Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
|
||||
<programlisting>
|
||||
foo = import ../path/to/foo.nix {
|
||||
inherit stdenv fetchurl ...;
|
||||
inherit (perlPackages) ClassC3;
|
||||
};
|
||||
</programlisting>
|
||||
in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-build -A perlPackages.ClassC3
|
||||
</screen>
|
||||
<varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-env -i perl-Class-C3
|
||||
</screen>
|
||||
(Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
So what does <varname>buildPerlPackage</varname> do? It does the following:
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
|
||||
</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
|
||||
<programlisting>
|
||||
{ buildPerlPackage, fetchurl, db }:
|
||||
|
||||
buildPerlPackage rec {
|
||||
name = "BerkeleyDB-0.36";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
|
||||
sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
echo "LIB = ${db.out}/lib" > config.in
|
||||
echo "INCLUDE = ${db.dev}/include" >> config.in
|
||||
'';
|
||||
}
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
|
||||
<programlisting>
|
||||
ClassC3Componentised = buildPerlPackage rec {
|
||||
name = "Class-C3-Componentised-1.0004";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
|
||||
sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
ClassC3 ClassInspector TestException MROCompat
|
||||
];
|
||||
};
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
|
||||
<programlisting>
|
||||
{ stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
|
||||
|
||||
ImageExifTool = buildPerlPackage {
|
||||
pname = "Image-ExifTool";
|
||||
version = "11.50";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.50.tar.gz";
|
||||
sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
|
||||
postInstall = stdenv.lib.optional stdenv.isDarwin ''
|
||||
shortenPerlShebang $out/bin/exiftool
|
||||
'';
|
||||
};
|
||||
</programlisting>
|
||||
This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
|
||||
</para>
|
||||
|
||||
<section xml:id="ssec-generation-from-CPAN">
|
||||
<title>Generation from CPAN</title>
|
||||
|
||||
<para>
|
||||
Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
|
||||
</para>
|
||||
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-env -i nix-generate-from-cpan
|
||||
</screen>
|
||||
|
||||
<para>
|
||||
This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
|
||||
<screen>
|
||||
<prompt>$ </prompt>nix-generate-from-cpan XML::Simple
|
||||
XMLSimple = buildPerlPackage rec {
|
||||
name = "XML-Simple-2.22";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz";
|
||||
sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
|
||||
};
|
||||
propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
|
||||
meta = {
|
||||
description = "An API for simple XML files";
|
||||
license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
|
||||
};
|
||||
};
|
||||
</screen>
|
||||
The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="ssec-perl-cross-compilation">
|
||||
<title>Cross-compiling modules</title>
|
||||
|
||||
<para>
|
||||
Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -155,17 +155,17 @@ hello-2.3 A program that produces a familiar, friendly greeting
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3</literal>.
|
||||
Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3Only</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3"</literal>.
|
||||
Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3Only"</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0"</literal>.
|
||||
Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0-only"</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -162,10 +162,10 @@
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
The following example configuration blacklists the <literal>gpl3</literal> and <literal>agpl3</literal> licenses:
|
||||
The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
|
||||
<programlisting>
|
||||
{
|
||||
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
|
||||
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3Only gpl3Only ];
|
||||
}
|
||||
</programlisting>
|
||||
</para>
|
||||
|
@ -28,7 +28,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "Academic Free License v3.0";
|
||||
};
|
||||
|
||||
agpl3 = spdx {
|
||||
agpl3Only = spdx {
|
||||
spdxId = "AGPL-3.0-only";
|
||||
fullName = "GNU Affero General Public License v3.0 only";
|
||||
};
|
||||
@ -281,12 +281,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "European Union Public License 1.2";
|
||||
};
|
||||
|
||||
fdl11 = spdx {
|
||||
fdl11Only = spdx {
|
||||
spdxId = "GFDL-1.1-only";
|
||||
fullName = "GNU Free Documentation License v1.1 only";
|
||||
};
|
||||
|
||||
fdl12 = spdx {
|
||||
fdl12Only = spdx {
|
||||
spdxId = "GFDL-1.2-only";
|
||||
fullName = "GNU Free Documentation License v1.2 only";
|
||||
};
|
||||
@ -296,7 +296,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "GNU Free Documentation License v1.2 or later";
|
||||
};
|
||||
|
||||
fdl13 = spdx {
|
||||
fdl13Only = spdx {
|
||||
spdxId = "GFDL-1.3-only";
|
||||
fullName = "GNU Free Documentation License v1.3 only";
|
||||
};
|
||||
@ -327,7 +327,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
free = false;
|
||||
};
|
||||
|
||||
gpl1 = spdx {
|
||||
gpl1Only = spdx {
|
||||
spdxId = "GPL-1.0-only";
|
||||
fullName = "GNU General Public License v1.0 only";
|
||||
};
|
||||
@ -337,7 +337,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "GNU General Public License v1.0 or later";
|
||||
};
|
||||
|
||||
gpl2 = spdx {
|
||||
gpl2Only = spdx {
|
||||
spdxId = "GPL-2.0-only";
|
||||
fullName = "GNU General Public License v2.0 only";
|
||||
};
|
||||
@ -362,7 +362,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "GNU General Public License v2.0 or later";
|
||||
};
|
||||
|
||||
gpl3 = spdx {
|
||||
gpl3Only = spdx {
|
||||
spdxId = "GPL-3.0-only";
|
||||
fullName = "GNU General Public License v3.0 only";
|
||||
};
|
||||
@ -437,7 +437,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "JasPer License";
|
||||
};
|
||||
|
||||
lgpl2 = spdx {
|
||||
lgpl2Only = spdx {
|
||||
spdxId = "LGPL-2.0-only";
|
||||
fullName = "GNU Library General Public License v2 only";
|
||||
};
|
||||
@ -447,7 +447,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "GNU Library General Public License v2 or later";
|
||||
};
|
||||
|
||||
lgpl21 = spdx {
|
||||
lgpl21Only = spdx {
|
||||
spdxId = "LGPL-2.1-only";
|
||||
fullName = "GNU Lesser General Public License v2.1 only";
|
||||
};
|
||||
@ -457,7 +457,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "GNU Lesser General Public License v2.1 or later";
|
||||
};
|
||||
|
||||
lgpl3 = spdx {
|
||||
lgpl3Only = spdx {
|
||||
spdxId = "LGPL-3.0-only";
|
||||
fullName = "GNU Lesser General Public License v3.0 only";
|
||||
};
|
||||
@ -782,4 +782,16 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
spdxId = "ZPL-2.1";
|
||||
fullName = "Zope Public License 2.1";
|
||||
};
|
||||
} // {
|
||||
# TODO: remove legacy aliases
|
||||
agpl3 = lib.licenses.agpl3Only;
|
||||
fdl11 = lib.licenses.fdl11Only;
|
||||
fdl12 = lib.licenses.fdl12Only;
|
||||
fdl13 = lib.licenses.fdl13Only;
|
||||
gpl1 = lib.licenses.gpl1Only;
|
||||
gpl2 = lib.licenses.gpl2Only;
|
||||
gpl3 = lib.licenses.gpl3Only;
|
||||
lgpl2 = lib.licenses.lgpl2Only;
|
||||
lgpl21 = lib.licenses.lgpl21Only;
|
||||
lgpl3 = lib.licenses.lgpl3Only;
|
||||
}
|
||||
|
@ -145,10 +145,14 @@ rec {
|
||||
# packed-refs file, so we have to grep through it:
|
||||
then
|
||||
let fileContent = readFile packedRefsName;
|
||||
matchRef = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
|
||||
in if matchRef == null
|
||||
matchRef = builtins.match "([a-z0-9]+) ${file}";
|
||||
isRef = s: builtins.isString s && (matchRef s) != null;
|
||||
# there is a bug in libstdc++ leading to stackoverflow for long strings:
|
||||
# https://github.com/NixOS/nix/issues/2147#issuecomment-659868795
|
||||
refs = builtins.filter isRef (builtins.split "\n" fileContent);
|
||||
in if refs == []
|
||||
then throw ("Could not find " + file + " in " + packedRefsName)
|
||||
else lib.head matchRef
|
||||
else lib.head (matchRef (lib.head refs))
|
||||
|
||||
else throw ("Not a .git directory: " + path);
|
||||
in readCommitFromFile "HEAD";
|
||||
|
@ -4803,6 +4803,12 @@
|
||||
githubId = 34683288;
|
||||
name = "Luke Bentley-Fox";
|
||||
};
|
||||
lukegb = {
|
||||
email = "nix@lukegb.com";
|
||||
github = "lukegb";
|
||||
githubId = 246745;
|
||||
name = "Luke Granger-Brown";
|
||||
};
|
||||
lukego = {
|
||||
email = "luke@snabb.co";
|
||||
github = "lukego";
|
||||
@ -9127,4 +9133,10 @@
|
||||
github = "tfmoraes";
|
||||
githubId = 351108;
|
||||
};
|
||||
deifactor = {
|
||||
name = "Ash Zahlen";
|
||||
email = "ext0l@riseup.net";
|
||||
github = "deifactor";
|
||||
githubId = 30192992;
|
||||
};
|
||||
}
|
||||
|
@ -9,7 +9,13 @@
|
||||
# TODO: add assert statements
|
||||
|
||||
let
|
||||
pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; });
|
||||
pkgs = import ./../../default.nix (
|
||||
if include-overlays == false then
|
||||
{ overlays = []; }
|
||||
else if include-overlays == true then
|
||||
{ } # Let Nixpkgs include overlays impurely.
|
||||
else { overlays = include-overlays; }
|
||||
);
|
||||
|
||||
inherit (pkgs) lib;
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
<xi:include href="user-mgmt.xml" />
|
||||
<xi:include href="file-systems.xml" />
|
||||
<xi:include href="x-windows.xml" />
|
||||
<xi:include href="gpu-accel.xml" />
|
||||
<xi:include href="xfce.xml" />
|
||||
<xi:include href="networking.xml" />
|
||||
<xi:include href="linux-kernel.xml" />
|
||||
|
104
nixos/doc/manual/configuration/gpu-accel.xml
Normal file
104
nixos/doc/manual/configuration/gpu-accel.xml
Normal file
@ -0,0 +1,104 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="sec-gpu-accel">
|
||||
<title>GPU acceleration</title>
|
||||
|
||||
<para>
|
||||
NixOS provides various APIs that benefit from GPU hardware
|
||||
acceleration, such as VA-API and VDPAU for video playback; OpenGL and
|
||||
Vulkan for 3D graphics; and OpenCL for general-purpose computing.
|
||||
This chapter describes how to set up GPU hardware acceleration (as far
|
||||
as this is not done automatically) and how to verify that hardware
|
||||
acceleration is indeed used.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Most of the aforementioned APIs are agnostic with regards to which
|
||||
display server is used. Consequently, these instructions should apply
|
||||
both to the X Window System and Wayland compositors.
|
||||
</para>
|
||||
|
||||
<section xml:id="sec-gpu-accel-opencl">
|
||||
<title>OpenCL</title>
|
||||
|
||||
<para>
|
||||
<link xlink:href="https://en.wikipedia.org/wiki/OpenCL">OpenCL</link> is a
|
||||
general compute API. It is used by various applications such as
|
||||
Blender and Darktable to accelerate certain operations.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
OpenCL applications load drivers through the <emphasis>Installable Client
|
||||
Driver</emphasis> (ICD) mechanism. In this mechanism, an ICD file
|
||||
specifies the path to the OpenCL driver for a particular GPU family.
|
||||
In NixOS, there are two ways to make ICD files visible to the ICD
|
||||
loader. The first is through the <varname>OCL_ICD_VENDORS</varname>
|
||||
environment variable. This variable can contain a directory which
|
||||
is scanned by the ICL loader for ICD files. For example:
|
||||
|
||||
<screen><prompt>$</prompt> export \
|
||||
OCL_ICD_VENDORS=`nix-build '<nixpkgs>' --no-out-link -A rocm-opencl-icd`/etc/OpenCL/vendors/</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The second mechanism is to add the OpenCL driver package to
|
||||
<xref linkend="opt-hardware.opengl.extraPackages"/>. This links the
|
||||
ICD file under <filename>/run/opengl-driver</filename>, where it will
|
||||
be visible to the ICD loader.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The proper installation of OpenCL drivers can be verified through
|
||||
the <command>clinfo</command> command of the <package>clinfo</package>
|
||||
package. This command will report the number of hardware devides
|
||||
that is found and give detailed information for each device:
|
||||
</para>
|
||||
|
||||
<screen><prompt>$</prompt> clinfo | head -n3
|
||||
Number of platforms 1
|
||||
Platform Name AMD Accelerated Parallel Processing
|
||||
Platform Vendor Advanced Micro Devices, Inc.</screen>
|
||||
|
||||
<section xml:id="sec-gpu-accel-opencl-amd">
|
||||
<title>AMD</title>
|
||||
|
||||
<para>
|
||||
Modern AMD <link
|
||||
xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
|
||||
Core Next</link> (GCN) GPUs are supported through the
|
||||
<package>rocm-opencl-icd</package> package. Adding this package to
|
||||
<xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
|
||||
support. However, OpenCL Image support is provided through the
|
||||
non-free <package>rocm-runtime-ext</package> package. This package can
|
||||
be added to the same configuration option, but requires that
|
||||
<varname>allowUnfree</varname> option is is enabled for nixpkgs. Full
|
||||
OpenCL support on supported AMD GPUs is thus enabled as follows:
|
||||
|
||||
<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
|
||||
rocm-opencl-icd
|
||||
rocm-runtime-ext
|
||||
];</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is also possible to use the OpenCL Image extension without a
|
||||
system-wide installation of the <package>rocm-runtime-ext</package>
|
||||
package by setting the <varname>ROCR_EXT_DIR</varname> environment
|
||||
variable to the directory that contains the extension:
|
||||
|
||||
<screen><prompt>$</prompt> export \
|
||||
ROCR_EXT_DIR=`nix-build '<nixpkgs>' --no-out-link -A rocm-runtime-ext`/lib/rocm-runtime-ext</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
With either approach, you can verify that OpenCL Image support
|
||||
is indeed working with the <command>clinfo</command> command:
|
||||
|
||||
<screen><prompt>$</prompt> clinfo | grep Image
|
||||
Image support Yes</screen>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
@ -390,7 +390,7 @@ start_all()
|
||||
<listitem>
|
||||
<para>
|
||||
Copies a file from host to machine, e.g.,
|
||||
<literal>copy_file_from_host("myfile", "/etc/my/important/file")</literal>.
|
||||
<literal>copy_from_host("myfile", "/etc/my/important/file")</literal>.
|
||||
</para>
|
||||
<para>
|
||||
The first argument is the file on the host. The file needs to be
|
||||
|
@ -14,9 +14,9 @@
|
||||
<para>
|
||||
This chapter will show you how to set up your own, self-hosted Matrix
|
||||
homeserver using the Synapse reference homeserver, and how to serve your own
|
||||
copy of the Riot web client. See the
|
||||
copy of the Element web client. See the
|
||||
<link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try
|
||||
Matrix Now!</link> overview page for links to Riot Apps for Android and iOS,
|
||||
Matrix Now!</link> overview page for links to Element Apps for Android and iOS,
|
||||
desktop clients, as well as bridges to other networks and other projects
|
||||
around Matrix.
|
||||
</para>
|
||||
@ -84,7 +84,7 @@ in {
|
||||
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
|
||||
"m.identity_server" = { "base_url" = "https://vector.im"; };
|
||||
};
|
||||
# ACAO required to allow riot-web on any URL to request this json file
|
||||
# ACAO required to allow element-web on any URL to request this json file
|
||||
in ''
|
||||
add_header Content-Type application/json;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
@ -98,7 +98,7 @@ in {
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
|
||||
|
||||
# Or do a redirect instead of the 404, or whatever is appropriate for you.
|
||||
# But do not put a Matrix Web client here! See the Riot Web section below.
|
||||
# But do not put a Matrix Web client here! See the Element web section below.
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.extraConfig">locations."/".extraConfig</link> = ''
|
||||
return 404;
|
||||
'';
|
||||
@ -171,17 +171,19 @@ Success!
|
||||
option until a better solution for NixOS is in place.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="module-services-matrix-riot-web">
|
||||
<title>Riot Web Client</title>
|
||||
<section xml:id="module-services-matrix-element-web">
|
||||
<title>Element (formerly known as Riot) Web Client</title>
|
||||
|
||||
<para>
|
||||
<link xlink:href="https://github.com/vector-im/riot-web/">Riot Web</link> is
|
||||
<link xlink:href="https://github.com/vector-im/riot-web/">Element Web</link> is
|
||||
the reference web client for Matrix and developed by the core team at
|
||||
matrix.org. The following snippet can be optionally added to the code before
|
||||
matrix.org. Element was formerly known as Riot.im, see the
|
||||
<link xlink:href="https://element.io/blog/welcome-to-element/">Element introductory blog post</link>
|
||||
for more information. The following snippet can be optionally added to the code before
|
||||
to complete the synapse installation with a web client served at
|
||||
<code>https://riot.myhostname.example.org</code> and
|
||||
<code>https://riot.example.org</code>. Alternatively, you can use the hosted
|
||||
copy at <link xlink:href="https://riot.im/app">https://riot.im/app</link>,
|
||||
<code>https://element.myhostname.example.org</code> and
|
||||
<code>https://element.example.org</code>. Alternatively, you can use the hosted
|
||||
copy at <link xlink:href="https://app.element.io/">https://app.element.io/</link>,
|
||||
or use other web clients or native client applications. Due to the
|
||||
<literal>/.well-known</literal> urls set up done above, many clients should
|
||||
fill in the required connection details automatically when you enter your
|
||||
@ -191,14 +193,14 @@ Success!
|
||||
featureset.
|
||||
<programlisting>
|
||||
{
|
||||
services.nginx.virtualHosts."riot.${fqdn}" = {
|
||||
services.nginx.virtualHosts."element.${fqdn}" = {
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [
|
||||
"riot.${config.networking.domain}"
|
||||
"element.${config.networking.domain}"
|
||||
];
|
||||
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.riot-web.override {
|
||||
<link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.element-web.override {
|
||||
conf = {
|
||||
default_server_config."m.homeserver" = {
|
||||
"base_url" = "${config.networking.domain}";
|
||||
@ -212,13 +214,13 @@ Success!
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that the Riot developers do not recommend running Riot and your Matrix
|
||||
Note that the Element developers do not recommend running Element and your Matrix
|
||||
homeserver on the same fully-qualified domain name for security reasons. In
|
||||
the example, this means that you should not reuse the
|
||||
<literal>myhostname.example.org</literal> virtualHost to also serve Riot,
|
||||
<literal>myhostname.example.org</literal> virtualHost to also serve Element,
|
||||
but instead serve it on a different subdomain, like
|
||||
<literal>riot.example.org</literal> in the example. See the
|
||||
<link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Riot
|
||||
<literal>element.example.org</literal> in the example. See the
|
||||
<link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Element
|
||||
Important Security Notes</link> for more information on this subject.
|
||||
</para>
|
||||
</section>
|
||||
|
@ -34,6 +34,7 @@ let
|
||||
"mail"
|
||||
"mikrotik"
|
||||
"minio"
|
||||
"modemmanager"
|
||||
"nextcloud"
|
||||
"nginx"
|
||||
"node"
|
||||
|
@ -0,0 +1,33 @@
|
||||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.modemmanager;
|
||||
in
|
||||
{
|
||||
port = 9539;
|
||||
extraOpts = {
|
||||
refreshRate = mkOption {
|
||||
type = types.str;
|
||||
default = "5s";
|
||||
description = ''
|
||||
How frequently ModemManager will refresh the extended signal quality
|
||||
information for each modem. The duration should be specified in seconds
|
||||
("5s"), minutes ("1m"), or hours ("1h").
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
# Required in order to authenticate with ModemManager via D-Bus.
|
||||
SupplementaryGroups = "networkmanager";
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-modemmanager-exporter}/bin/modemmanager_exporter \
|
||||
-addr ${cfg.listenAddress}:${toString cfg.port} \
|
||||
-rate ${cfg.refreshRate} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -40,7 +40,7 @@ let
|
||||
$CFG->disableupdateautodeploy = true;
|
||||
|
||||
$CFG->pathtogs = '${pkgs.ghostscript}/bin/gs';
|
||||
$CFG->pathtophp = '${pkgs.php}/bin/php';
|
||||
$CFG->pathtophp = '${phpExt}/bin/php';
|
||||
$CFG->pathtodu = '${pkgs.coreutils}/bin/du';
|
||||
$CFG->aspellpath = '${pkgs.aspell}/bin/aspell';
|
||||
$CFG->pathtodot = '${pkgs.graphviz}/bin/dot';
|
||||
@ -55,6 +55,9 @@ let
|
||||
|
||||
mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
|
||||
pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
|
||||
|
||||
phpExt = pkgs.php.withExtensions
|
||||
({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo ]);
|
||||
in
|
||||
{
|
||||
# interface
|
||||
@ -222,6 +225,7 @@ in
|
||||
|
||||
services.phpfpm.pools.moodle = {
|
||||
inherit user group;
|
||||
phpPackage = phpExt;
|
||||
phpEnv.MOODLE_CONFIG = "${moodleConfig}";
|
||||
phpOptions = ''
|
||||
zend_extension = opcache.so
|
||||
@ -263,13 +267,13 @@ in
|
||||
after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
|
||||
environment.MOODLE_CONFIG = moodleConfig;
|
||||
script = ''
|
||||
${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
|
||||
${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
|
||||
|
||||
[ "$rc" == 1 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
|
||||
[ "$rc" == 1 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
|
||||
--non-interactive \
|
||||
--allow-unstable
|
||||
|
||||
[ "$rc" == 2 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
|
||||
[ "$rc" == 2 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
|
||||
--agree-license \
|
||||
--adminpass=${cfg.initialPassword}
|
||||
|
||||
@ -289,7 +293,7 @@ in
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
Group = group;
|
||||
ExecStart = "${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
|
||||
ExecStart = "${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -149,6 +149,7 @@ in
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [{
|
||||
boot.kernelModules = [ "bridge" "veth" ];
|
||||
environment.systemPackages = [ cfg.package ]
|
||||
++ optional cfg.enableNvidia pkgs.nvidia-docker;
|
||||
users.groups.docker.gid = config.ids.gids.docker;
|
||||
|
@ -30,8 +30,45 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
)
|
||||
|
||||
docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
|
||||
# Check imageTag attribute matches image
|
||||
docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.bash.imageTag}'")
|
||||
docker.succeed("docker rmi ${examples.bash.imageName}")
|
||||
|
||||
# The remaining combinations
|
||||
with subtest("Ensure imageTag attribute matches image"):
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.bashNoTag}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTag.imageTag}'"
|
||||
)
|
||||
docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}")
|
||||
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.bashNoTagLayered}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagLayered.imageTag}'"
|
||||
)
|
||||
docker.succeed("docker rmi ${examples.bashNoTagLayered.imageName}:${examples.bashNoTagLayered.imageTag}")
|
||||
|
||||
docker.succeed(
|
||||
"${examples.bashNoTagStreamLayered} | docker load"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagStreamLayered.imageTag}'"
|
||||
)
|
||||
docker.succeed(
|
||||
"docker rmi ${examples.bashNoTagStreamLayered.imageName}:${examples.bashNoTagStreamLayered.imageTag}"
|
||||
)
|
||||
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.nixLayered}'"
|
||||
)
|
||||
docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.nixLayered.imageTag}'")
|
||||
docker.succeed("docker rmi ${examples.nixLayered.imageName}")
|
||||
|
||||
|
||||
with subtest(
|
||||
"Check if the nix store is correctly initialized by listing "
|
||||
"dependencies of the installed Nix binary"
|
||||
|
@ -9,7 +9,6 @@ with pkgs.lib;
|
||||
let
|
||||
mkKubernetesBaseTest =
|
||||
{ name, domain ? "my.zyx", test, machines
|
||||
, pkgs ? import <nixpkgs> { inherit system; }
|
||||
, extraConfiguration ? null }:
|
||||
let
|
||||
masterName = head (filter (machineName: any (role: role == "master") machines.${machineName}.roles) (attrNames machines));
|
||||
|
@ -68,7 +68,7 @@ import ./make-test-python.nix (
|
||||
podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
|
||||
podman.succeed(
|
||||
su_cmd(
|
||||
"podman run --cgroup-manager=cgroupfs --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
|
||||
"podman run --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
|
||||
)
|
||||
)
|
||||
podman.succeed(su_cmd("podman ps | grep sleeping"))
|
||||
|
@ -363,6 +363,31 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
modemmanager = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
refreshRate = "10s";
|
||||
};
|
||||
metricProvider = {
|
||||
# ModemManager is installed when NetworkManager is enabled. Ensure it is
|
||||
# started and is wanted by NM and the exporter to start everything up
|
||||
# in the right order.
|
||||
networking.networkmanager.enable = true;
|
||||
systemd.services.ModemManager = {
|
||||
enable = true;
|
||||
wantedBy = [ "NetworkManager.service" "prometheus-modemmanager-exporter.service" ];
|
||||
};
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("ModemManager.service")
|
||||
wait_for_unit("prometheus-modemmanager-exporter.service")
|
||||
wait_for_open_port(9539)
|
||||
succeed(
|
||||
"curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'"
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
nextcloud = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
|
@ -1,39 +1,40 @@
|
||||
{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3
|
||||
, libmowgli, dbus-glib, libxml2, xorg, gnome3, alsaLib
|
||||
, libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis
|
||||
, libcdio, libcddb, flac, ffmpeg_3, mpg123, libcue, libmms, libbs2b
|
||||
, libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack
|
||||
, neon, faad2, lame, libnotify, libsidplayfp
|
||||
{
|
||||
mkDerivation, lib, fetchurl, fetchpatch,
|
||||
gettext, pkgconfig,
|
||||
qtbase,
|
||||
alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
|
||||
libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
|
||||
libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
|
||||
libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
|
||||
wavpack, openmpt123
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "audacious";
|
||||
version = "3.9";
|
||||
version = "4.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
|
||||
sha256 = "0dc7fg0v2l2j4h9cz1baz7rf4n0a5jgk09qvsj806sh6jp7w6ipm";
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
|
||||
sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
|
||||
};
|
||||
|
||||
pluginsSrc = fetchurl {
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}-gtk3.tar.bz2";
|
||||
sha256 = "1gck37c5pnzxdhrnb1g75b5hi31s2dc952wifxns45pkdlayrmra";
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
|
||||
sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig wrapGAppsHook
|
||||
];
|
||||
nativeBuildInputs = [ gettext pkgconfig ];
|
||||
|
||||
buildInputs = [
|
||||
gettext glib gtk3 libmowgli dbus-glib libxml2
|
||||
xorg.libXcomposite gnome3.adwaita-icon-theme alsaLib libjack2
|
||||
libpulseaudio fluidsynth libmad libogg libvorbis libcdio
|
||||
libcddb flac ffmpeg_3 mpg123 libcue libmms libbs2b libsndfile
|
||||
libmodplug libsamplerate soxr lirc curl wavpack neon faad2
|
||||
lame libnotify libsidplayfp
|
||||
];
|
||||
# Core dependencies
|
||||
qtbase
|
||||
|
||||
configureFlags = [ "--enable-statusicon" ];
|
||||
# Plugin dependencies
|
||||
alsaLib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
|
||||
libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
|
||||
libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
|
||||
libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
|
||||
openmpt123
|
||||
];
|
||||
|
||||
# Here we build both audacious and audacious-plugins in one
|
||||
# derivations, since they really expect to be in the same prefix.
|
||||
@ -44,10 +45,8 @@ stdenv.mkDerivation rec {
|
||||
source $stdenv/setup
|
||||
genericBuild
|
||||
)
|
||||
|
||||
# Then build the plugins.
|
||||
(
|
||||
dontWrapGApps=true
|
||||
nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
|
||||
source $stdenv/setup
|
||||
rm -rfv audacious-*
|
||||
@ -56,12 +55,10 @@ stdenv.mkDerivation rec {
|
||||
)
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Audio player";
|
||||
homepage = "https://audacious-media-player.org/";
|
||||
maintainers = with maintainers; [ eelco ramkromberg ];
|
||||
maintainers = with maintainers; [ eelco ramkromberg ttuegel ];
|
||||
platforms = with platforms; linux;
|
||||
license = with licenses; [
|
||||
bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
|
||||
|
@ -1,92 +0,0 @@
|
||||
{
|
||||
mkDerivation, lib, fetchurl, fetchpatch,
|
||||
gettext, pkgconfig,
|
||||
qtbase,
|
||||
alsaLib, curl, faad2, ffmpeg_3, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
|
||||
libcddb, libcdio, libcue, libjack2, libmad, libmms, libmodplug,
|
||||
libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
|
||||
libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
|
||||
wavpack
|
||||
}:
|
||||
|
||||
let
|
||||
version = "3.9";
|
||||
sources = {
|
||||
"audacious-${version}" = fetchurl {
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
|
||||
sha256 = "0pmhrhsjhqnrq3zh4rhfys5jas53ph5ijkq010dxg1n779kl901d";
|
||||
};
|
||||
|
||||
"audacious-plugins-${version}" = fetchurl {
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
|
||||
sha256 = "1f17r7ar0mngcf7z41s6xh073vjafw3i7iy9ijb0cd6bi48g5xwb";
|
||||
};
|
||||
};
|
||||
|
||||
qt510_plugins_patch = fetchpatch {
|
||||
url = "https://github.com/audacious-media-player/audacious-plugins/commit/971f7ff7c3d8a0b9b420bf4fd19ab97755607637.patch";
|
||||
sha256 = "15fy37syj9ygl2ibkkz3g3b9wd22vk9bjfmvqhhkpxphry2zwb17";
|
||||
};
|
||||
in
|
||||
|
||||
mkDerivation {
|
||||
inherit version;
|
||||
name = "audacious-qt5-${version}";
|
||||
|
||||
sourceFiles = lib.attrValues sources;
|
||||
sourceRoots = lib.attrNames sources;
|
||||
|
||||
nativeBuildInputs = [ gettext pkgconfig ];
|
||||
|
||||
inherit qt510_plugins_patch;
|
||||
|
||||
buildInputs = [
|
||||
# Core dependencies
|
||||
qtbase
|
||||
|
||||
# Plugin dependencies
|
||||
alsaLib curl faad2 ffmpeg_3 flac fluidsynth gdk-pixbuf lame libbs2b libcddb
|
||||
libcdio libcue libjack2 libmad libmms libmodplug libmowgli
|
||||
libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
|
||||
libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
|
||||
];
|
||||
|
||||
configureFlags = [ "--enable-qt" "--disable-gtk" ];
|
||||
|
||||
# Here we build both audacious and audacious-plugins in one
|
||||
# derivations, since they really expect to be in the same prefix.
|
||||
# This is slighly tricky.
|
||||
builder = builtins.toFile "builder.sh" ''
|
||||
sourceFiles=( $sourceFiles )
|
||||
sourceRoots=( $sourceRoots )
|
||||
for (( i=0 ; i < ''${#sourceFiles[*]} ; i++ )); do
|
||||
|
||||
(
|
||||
# only patch the plugins
|
||||
if [ "$i" -eq "1" ]; then
|
||||
patches=( $qt510_plugins_patch )
|
||||
fi
|
||||
src=''${sourceFiles[$i]}
|
||||
sourceRoot=''${sourceRoots[$i]}
|
||||
source $stdenv/setup
|
||||
genericBuild
|
||||
)
|
||||
|
||||
if [ $i == 0 ]; then
|
||||
nativeBuildInputs="$out $nativeBuildInputs"
|
||||
fi
|
||||
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Audio player";
|
||||
homepage = "https://audacious-media-player.org/";
|
||||
maintainers = with maintainers; [ ttuegel ];
|
||||
platforms = with platforms; linux;
|
||||
license = with licenses; [
|
||||
bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
|
||||
gpl2 gpl3 lgpl2Plus #http://redmine.audacious-media-player.org/issues/46
|
||||
];
|
||||
};
|
||||
}
|
@ -42,16 +42,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "guitarix";
|
||||
version = "0.40.0";
|
||||
version = "0.41.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
|
||||
sha256 = "0q9050499hcj19hvbxb069vxh5yclawjg04vryh46lxm4sfy9g57";
|
||||
sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
|
||||
};
|
||||
|
||||
# see: https://sourceforge.net/p/guitarix/bugs/105
|
||||
patches = [ ./fix-build.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
hicolor-icon-theme
|
||||
@ -101,8 +98,6 @@ stdenv.mkDerivation rec {
|
||||
"--no-desktop-update"
|
||||
"--enable-nls"
|
||||
"--install-roboto-font"
|
||||
"--includeresampler"
|
||||
"--includeconvolver"
|
||||
] ++ optional optimizationSupport "--optimization";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- a/src/LV2/xputty/xfilepicker.cpp
|
||||
+++ b/src/LV2/xputty/xfilepicker.cpp
|
||||
@@ -191,6 +191,6 @@
|
||||
filepicker->selected_file = NULL;
|
||||
filepicker->path = NULL;
|
||||
filepicker->filter = NULL;
|
||||
- asprintf(&filepicker->path, path);
|
||||
+ asprintf(&filepicker->path, "%s", path);
|
||||
assert(filepicker->path != NULL);
|
||||
}
|
@ -14,16 +14,16 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ncspot";
|
||||
version = "0.1.4";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = version;
|
||||
sha256 = "02g2lamabkwayhm56498pfvl9g0xx2vsan2j48ssrwjx6rwmlh7n";
|
||||
rev = "v${version}";
|
||||
sha256 = "0b2g5bd04zh1hcrhkgd2srx9gl94da4gpy9arjcvrldschjxjza1";
|
||||
};
|
||||
|
||||
cargoSha256 = "07gw2az11lpldwpb792l64b7xlarvx77364rn4i8g6a5271zahz3";
|
||||
cargoSha256 = "1gbhvmg7jfmx0b694rdr3s2zs33d4s645gw1lrxvwffif4mg8fy9";
|
||||
|
||||
cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
|
||||
|
||||
|
@ -35,13 +35,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "strawberry";
|
||||
version = "0.6.12";
|
||||
version = "0.6.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jonaski";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0p09xp7andfg0gvarzc979pwglr0xjj1c0cziqj0c9z7p1v0fkws";
|
||||
sha256 = "1v0334aivqyqx611cmhgshknzmrgyynbmxcg70qzrs2lyybw2fc1";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -198,7 +198,8 @@ in runCommand
|
||||
# binaries are also distributed as proprietary software (unlike the
|
||||
# source-code itself).
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
maintainers = with maintainers; ([ ]
|
||||
++ optional (channel == "stable") primeos);
|
||||
};
|
||||
}
|
||||
''
|
||||
|
@ -8,9 +8,9 @@ let
|
||||
inherit (gnome2) GConf gnome_vfs;
|
||||
};
|
||||
stableVersion = {
|
||||
version = "4.0.0.16"; # "Android Studio 4.0"
|
||||
build = "193.6514223";
|
||||
sha256Hash = "1sqj64vddwfrr9821habfz7dms9csvbp7b8gf1d027188b2lvh3h";
|
||||
version = "4.0.1.0"; # "Android Studio 4.0.1"
|
||||
build = "193.6626763";
|
||||
sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "4.0.0.16"; # "Android Studio 4.0"
|
||||
|
@ -43,6 +43,10 @@ stdenv.mkDerivation rec {
|
||||
libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
|
||||
libPathPrefix = "$out/lib/darktable" + stdenv.lib.optionalString stdenv.isLinux ":${ocl-icd}/lib";
|
||||
in ''
|
||||
for f in $out/share/darktable/kernels/*.cl; do
|
||||
sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
|
||||
done
|
||||
|
||||
gappsWrapperArgs+=(
|
||||
--prefix ${libPathEnvVar} ":" "${libPathPrefix}"
|
||||
)
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "drawio";
|
||||
version = "13.3.9";
|
||||
version = "13.4.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
|
||||
sha256 = "1i1idjy80x6a0w40lziivyhg8nnlbpri7xdqxikxy982vffgihwp";
|
||||
sha256 = "1vp5krgj0xzhkiidj658ij6j10d2p97l1nifx0nrqysblcz2km3g";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -18,13 +18,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "nomacs";
|
||||
version = "3.14.2";
|
||||
version = "3.15.1616";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nomacs";
|
||||
repo = "nomacs";
|
||||
rev = version;
|
||||
sha256 = "1vms13kyg7cpqi2hxvrrhlnl7cq92ijr7dm1kl5ryglpcagqv811";
|
||||
sha256 = "0g1saqf31zncqdiwk7aaf951j3g33bg0vcjcr5mvg600jxiinw8j";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,11 +1,11 @@
|
||||
{stdenv, fetchurl, libX11, libXft}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xfractint";
|
||||
version = "20.04p14";
|
||||
version = "20.04p15";
|
||||
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
|
||||
src = fetchurl {
|
||||
url = "https://www.fractint.net/ftp/current/linux/xfractint-${version}.tar.gz";
|
||||
sha256 = "0jdqr639z862qrswwk5srmv4fj5d7rl8kcscpn6mlkx4jvjmca0f";
|
||||
sha256 = "1wv2hgyjvrjxzqxb55vz65ra80p24j8sd34llykk2qlx73x8f3nk";
|
||||
};
|
||||
|
||||
buildInputs = [libX11 libXft];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "tut";
|
||||
version = "0.0.10";
|
||||
version = "0.0.13";
|
||||
|
||||
goPackagePath = "github.com/RasmusLindroth/tut";
|
||||
goDeps = ./deps.nix;
|
||||
@ -11,7 +11,7 @@ buildGoPackage rec {
|
||||
owner = "RasmusLindroth";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "09l6dmzrvcpix3wg4djs6zk3ql6b6lfhd8z9aglbi6fix4pm8565";
|
||||
sha256 = "085qiv9q2hzv1v6qmbddra23acsmmkbwmjqc3cp81gfgl893z7sm";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
22
pkgs/applications/networking/browsers/amfora/default.nix
Normal file
22
pkgs/applications/networking/browsers/amfora/default.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "amfora";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "makeworld-the-better-one";
|
||||
repo = "amfora";
|
||||
rev = "v${version}";
|
||||
sha256 = "0bnjwsyi6l9p27rajwh0nq53zi4km7qpgyb08q17j0vd87gpdhka";
|
||||
};
|
||||
|
||||
vendorSha256 = "1rj2m3rg8ixclj5jr0nmp266vwj1mg5ampxn04i3wgaayy49dbdi";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fancy terminal browser for the Gemini protocol";
|
||||
homepage = "https://github.com/makeworld-the-better-one/amfora";
|
||||
license = with licenses; [ gpl3 ];
|
||||
maintainers = with maintainers; [ deifactor ];
|
||||
};
|
||||
}
|
@ -86,11 +86,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.10.97";
|
||||
version = "1.11.97";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "1qwk75k8km2sy7l3m4k5m383sl75dph4dyrp8hd65x5hnpip67yi";
|
||||
sha256 = "1wmjwk98fvzy5slyqpzpnn1mx663q3pvcyr3fzcinf6v971vz3q2";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
|
||||
, makeWrapper, ed
|
||||
, makeWrapper, ed, gnugrep
|
||||
, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
|
||||
, libva ? null
|
||||
, pipewire_0_2
|
||||
@ -187,7 +187,7 @@ in stdenv.mkDerivation {
|
||||
'' + ''
|
||||
|
||||
# libredirect causes chromium to deadlock on startup
|
||||
export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
|
||||
export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
|
||||
|
||||
export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
|
||||
|
||||
|
@ -61,7 +61,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace qutebrowser/app.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
|
||||
substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
|
||||
|
||||
sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
|
||||
'' + lib.optionalString withPdfReader ''
|
||||
|
@ -1,4 +1,4 @@
|
||||
diff --git a/quitter.py b/quitterb.py
|
||||
diff --git a/quitter.py b/quitter.py
|
||||
index a42b9d0..f544ccb 100644
|
||||
--- a/qutebrowser/misc/quitter.py
|
||||
+++ b/qutebrowser/misc/quitter.py
|
||||
|
@ -15,13 +15,13 @@ with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.18.5";
|
||||
version = "1.18.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "0pl7dzq5giwkzfyg4pzm8y76fnd62gaa6d4hswvgn87czab37lr6";
|
||||
sha256 = "0ijcssalzb0gx23va23q6q6haj2m9dy36l9i7lq1726m75fa5yjv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "riot-desktop",
|
||||
"productName": "Riot",
|
||||
"name": "element-desktop",
|
||||
"productName": "Element (Riot)",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.6.7",
|
||||
"version": "1.7.1",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"author": "Element",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vector-im/riot-desktop"
|
||||
@ -38,8 +38,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"asar": "^2.0.1",
|
||||
"electron-builder": "^22.3.2",
|
||||
"electron-builder-squirrel-windows": "^22.3.2",
|
||||
"electron-builder": "^22.7.0",
|
||||
"electron-builder-squirrel-windows": "^22.7.0",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"electron-notarize": "^0.2.0",
|
||||
"eslint": "^5.8.0",
|
||||
@ -48,22 +48,22 @@
|
||||
"find-npm-prefix": "^1.0.2",
|
||||
"fs-extra": "^8.1.0",
|
||||
"glob": "^7.1.6",
|
||||
"matrix-js-sdk": "7.0.0",
|
||||
"matrix-js-sdk": "7.1.0",
|
||||
"mkdirp": "^1.0.3",
|
||||
"needle": "^2.5.0",
|
||||
"node-pre-gyp": "^0.15.0",
|
||||
"npm": "^6.13.7",
|
||||
"npm": "^6.14.6",
|
||||
"rimraf": "^3.0.2",
|
||||
"semver": "^7.1.3",
|
||||
"tar": "^6.0.1"
|
||||
},
|
||||
"hakDependencies": {
|
||||
"matrix-seshat": "^1.3.3",
|
||||
"matrix-seshat": "^2.1.0",
|
||||
"keytar": "^5.6.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"electronVersion": "8.0.3",
|
||||
"electronVersion": "9.0.5",
|
||||
"files": [
|
||||
"package.json",
|
||||
{
|
||||
@ -82,9 +82,9 @@
|
||||
"linux": {
|
||||
"target": "deb",
|
||||
"category": "Network;InstantMessaging;Chat",
|
||||
"maintainer": "support@riot.im",
|
||||
"maintainer": "support@element.io",
|
||||
"desktop": {
|
||||
"StartupWMClass": "riot"
|
||||
"StartupWMClass": "element"
|
||||
}
|
||||
},
|
||||
"mac": {
|
||||
@ -100,12 +100,13 @@
|
||||
"directories": {
|
||||
"output": "dist"
|
||||
},
|
||||
"afterPack": "scripts/electron_afterPack",
|
||||
"afterSign": "scripts/electron_afterSign",
|
||||
"protocols": [
|
||||
{
|
||||
"name": "riot",
|
||||
"name": "element",
|
||||
"schemes": [
|
||||
"riot"
|
||||
"element"
|
||||
]
|
||||
}
|
||||
]
|
@ -1,14 +1,6 @@
|
||||
{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
|
||||
offline_cache = linkFarm "offline" packages;
|
||||
packages = [
|
||||
{
|
||||
name = "7zip_bin___7zip_bin_4.0.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "7zip_bin___7zip_bin_4.0.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-4.0.2.tgz";
|
||||
sha1 = "6abbdc22f33cab742053777a26db2e25ca527179";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "7zip_bin___7zip_bin_5.0.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -50,11 +42,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
|
||||
name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
|
||||
path = fetchurl {
|
||||
name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz";
|
||||
sha1 = "eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17";
|
||||
name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
|
||||
url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
|
||||
sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -98,11 +90,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "_types_fs_extra___fs_extra_8.0.1.tgz";
|
||||
name = "_types_fs_extra___fs_extra_9.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "_types_fs_extra___fs_extra_8.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.1.tgz";
|
||||
sha1 = "a2378d6e7e8afea1564e44aafa2e207dadf77686";
|
||||
name = "_types_fs_extra___fs_extra_9.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz";
|
||||
sha1 = "91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -121,6 +113,22 @@
|
||||
sha1 = "7cc1358c9c18e71f6c020e410962971863232cf5";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
|
||||
sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "_types_yargs___yargs_15.0.5.tgz";
|
||||
path = fetchurl {
|
||||
name = "_types_yargs___yargs_15.0.5.tgz";
|
||||
url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
|
||||
sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "JSONStream___JSONStream_1.3.5.tgz";
|
||||
path = fetchurl {
|
||||
@ -193,6 +201,14 @@
|
||||
sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "ajv___ajv_6.12.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "ajv___ajv_6.12.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
|
||||
sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "another_json___another_json_0.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -290,27 +306,19 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
|
||||
name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
|
||||
path = fetchurl {
|
||||
name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.2.tgz";
|
||||
sha1 = "fba56e6e9ef76fcd37816738c5f9a0b3992d7183";
|
||||
name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
|
||||
url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz";
|
||||
sha1 = "a3ac0c25286bac68357321cb2eaf7128b0bc0a4f";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
|
||||
name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.2.tgz";
|
||||
sha1 = "d43e0bdff91d484c0bd07d7248043dbb2665b8ac";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.3.tgz";
|
||||
sha1 = "9a95a3c14f69fb6131834dd840fba561191c9998";
|
||||
name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz";
|
||||
sha1 = "ccd3e7ece2d46bc209423a77aa142f74aaf65db0";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -346,11 +354,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "archiver___archiver_3.1.1.tgz";
|
||||
name = "archiver___archiver_4.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "archiver___archiver_3.1.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz";
|
||||
sha1 = "9db7819d4daf60aec10fe86b16cb9258ced66ea0";
|
||||
name = "archiver___archiver_4.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz";
|
||||
sha1 = "3f722b121777e361ca9fad374ecda38e77e63c7f";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -425,6 +433,14 @@
|
||||
sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "async___async_0.9.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "async___async_0.9.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
|
||||
sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "async___async_2.6.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -441,6 +457,14 @@
|
||||
sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "at_least_node___at_least_node_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "at_least_node___at_least_node_1.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
|
||||
sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "auto_launch___auto_launch_5.0.5.tgz";
|
||||
path = fetchurl {
|
||||
@ -514,11 +538,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "bl___bl_3.0.0.tgz";
|
||||
name = "bl___bl_4.0.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "bl___bl_3.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz";
|
||||
sha1 = "3611ec00579fd18561754360b21e9f784500ff88";
|
||||
name = "bl___bl_4.0.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz";
|
||||
sha1 = "52b71e9088515d0606d9dd9cc7aa48dc1f98e73a";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -618,27 +642,27 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
|
||||
name = "buffer___buffer_5.6.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.0.tgz";
|
||||
sha1 = "b7007c30126da9a90e99932128d2922c8c178649";
|
||||
name = "buffer___buffer_5.6.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz";
|
||||
sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "builder_util___builder_util_22.3.2.tgz";
|
||||
name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "builder_util___builder_util_22.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.2.tgz";
|
||||
sha1 = "23c61aaf0f0006f994087b33a26e47cdaec7aa8d";
|
||||
name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz";
|
||||
sha1 = "23c808cddd650d4376a7a1518ec1e80e85c10f00";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "builder_util___builder_util_22.3.3.tgz";
|
||||
name = "builder_util___builder_util_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "builder_util___builder_util_22.3.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.3.tgz";
|
||||
sha1 = "62f0527ceaa1a2e4a60596a9b38ad1ffe3e20ae6";
|
||||
name = "builder_util___builder_util_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz";
|
||||
sha1 = "0776a66e6d6e408a78bed7f17a7ad22516d9e7f0";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -745,6 +769,14 @@
|
||||
sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "chalk___chalk_4.1.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "chalk___chalk_4.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
|
||||
sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "chardet___chardet_0.7.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -970,11 +1002,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "compress_commons___compress_commons_2.1.1.tgz";
|
||||
name = "compress_commons___compress_commons_3.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "compress_commons___compress_commons_2.1.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz";
|
||||
sha1 = "9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610";
|
||||
name = "compress_commons___compress_commons_3.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz";
|
||||
sha1 = "833944d84596e537224dd91cf92f5246823d4f1d";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -1169,6 +1201,14 @@
|
||||
sha1 = "3b72260255109c6b589cee050f1d516139664791";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "debug___debug_4.2.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "debug___debug_4.2.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
|
||||
sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "debuglog___debuglog_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -1298,11 +1338,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "dmg_builder___dmg_builder_22.3.2.tgz";
|
||||
name = "dmg_builder___dmg_builder_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "dmg_builder___dmg_builder_22.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.3.2.tgz";
|
||||
sha1 = "4c052f75d601e3358da1ff9d7d57738e1c01b157";
|
||||
name = "dmg_builder___dmg_builder_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz";
|
||||
sha1 = "ead7e7c046cbdc52d29d302a4455f6668cdf7d45";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -1394,27 +1434,27 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "ejs___ejs_3.0.1.tgz";
|
||||
name = "ejs___ejs_3.1.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "ejs___ejs_3.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz";
|
||||
sha1 = "30c8f6ee9948502cc32e85c37a3f8b39b5a614a5";
|
||||
name = "ejs___ejs_3.1.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz";
|
||||
sha1 = "514d967a8894084d18d3d47bd169a1c0560f093d";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
|
||||
name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.3.3.tgz";
|
||||
sha1 = "0a417af35c83b067096bd3217b6b7bd75c6c48a9";
|
||||
name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.7.0.tgz";
|
||||
sha1 = "8d6f09d541c039f52202935c66d592c38575ceff";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "electron_builder___electron_builder_22.3.2.tgz";
|
||||
name = "electron_builder___electron_builder_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "electron_builder___electron_builder_22.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.3.2.tgz";
|
||||
sha1 = "902d150fc0670cb90213262e5e0aa3c4f299ffa4";
|
||||
name = "electron_builder___electron_builder_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz";
|
||||
sha1 = "a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -1434,19 +1474,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "electron_publish___electron_publish_22.3.2.tgz";
|
||||
name = "electron_publish___electron_publish_22.7.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "electron_publish___electron_publish_22.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.2.tgz";
|
||||
sha1 = "d2e60caf7a9643fe57e501c20acaf32c737b1c50";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "electron_publish___electron_publish_22.3.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "electron_publish___electron_publish_22.3.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.3.tgz";
|
||||
sha1 = "7d1e757a20ce0558fdc42900b6e3d773fdae9d9e";
|
||||
name = "electron_publish___electron_publish_22.7.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz";
|
||||
sha1 = "d92ba7c4007c9ac1dd070593e48028184fb2dc19";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -1753,6 +1785,14 @@
|
||||
sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
|
||||
sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -1801,6 +1841,14 @@
|
||||
sha1 = "257a078384d1db8087bc449d107d52a52672b9e9";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "filelist___filelist_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "filelist___filelist_1.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
|
||||
sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -1905,6 +1953,14 @@
|
||||
sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fs_extra___fs_extra_9.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "fs_extra___fs_extra_9.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz";
|
||||
sha1 = "910da0062437ba4c39fedd863f1675ccfefcb9fc";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fs_minipass___fs_minipass_1.2.7.tgz";
|
||||
path = fetchurl {
|
||||
@ -2097,6 +2153,14 @@
|
||||
sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "graceful_fs___graceful_fs_4.2.4.tgz";
|
||||
path = fetchurl {
|
||||
name = "graceful_fs___graceful_fs_4.2.4.tgz";
|
||||
url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
|
||||
sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "har_schema___har_schema_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -2170,11 +2234,19 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
|
||||
name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
|
||||
path = fetchurl {
|
||||
name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz";
|
||||
sha1 = "8b7e3bd114b59b51786f8bade0f39ddc80275a97";
|
||||
name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
|
||||
url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
|
||||
sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
|
||||
path = fetchurl {
|
||||
name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
|
||||
url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
|
||||
sha1 = "be4973eb1fd2737b11c9c7c19380739bb249f60d";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -2626,11 +2698,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
|
||||
name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
|
||||
path = fetchurl {
|
||||
name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
|
||||
url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.4.tgz";
|
||||
sha1 = "6803f81a8944201c642b6e17da041e24deb78712";
|
||||
name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
|
||||
url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
|
||||
sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -2649,6 +2721,14 @@
|
||||
sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "jake___jake_10.8.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "jake___jake_10.8.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
|
||||
sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "jimp___jimp_0.2.28.tgz";
|
||||
path = fetchurl {
|
||||
@ -2681,6 +2761,14 @@
|
||||
sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "js_yaml___js_yaml_3.14.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "js_yaml___js_yaml_3.14.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
|
||||
sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "jsbn___jsbn_0.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -2738,11 +2826,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "json5___json5_2.1.1.tgz";
|
||||
name = "json5___json5_2.1.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "json5___json5_2.1.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz";
|
||||
sha1 = "81b6cb04e9ba496f1c7005d07b4368a2638f90b6";
|
||||
name = "json5___json5_2.1.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
|
||||
sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -2761,6 +2849,14 @@
|
||||
sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "jsonfile___jsonfile_6.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "jsonfile___jsonfile_6.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz";
|
||||
sha1 = "98966cba214378c8c84b82e085907b40bf614179";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "jsonparse___jsonparse_1.3.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -3074,11 +3170,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "lodash___lodash_4.17.15.tgz";
|
||||
name = "lodash___lodash_4.17.19.tgz";
|
||||
path = fetchurl {
|
||||
name = "lodash___lodash_4.17.15.tgz";
|
||||
url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
|
||||
sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
|
||||
name = "lodash___lodash_4.17.19.tgz";
|
||||
url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
|
||||
sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -3154,11 +3250,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.1.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.0.0.tgz";
|
||||
sha1 = "da2b24e57574379c3d8f7065eb68ea6c479d9806";
|
||||
name = "matrix_js_sdk___matrix_js_sdk_7.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.1.0.tgz";
|
||||
sha1 = "b3e3304e890df45c827706831748935168ee839f";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -3210,11 +3306,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "mime___mime_2.4.4.tgz";
|
||||
name = "mime___mime_2.4.6.tgz";
|
||||
path = fetchurl {
|
||||
name = "mime___mime_2.4.4.tgz";
|
||||
url = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
|
||||
sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
|
||||
name = "mime___mime_2.4.6.tgz";
|
||||
url = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
|
||||
sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -3425,6 +3521,14 @@
|
||||
sha1 = "8e31260a7af4a2e2f994b0673d4e0b3866156332";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "node_gyp___node_gyp_5.1.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "node_gyp___node_gyp_5.1.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz";
|
||||
sha1 = "eb915f7b631c937d282e33aed44cb7a025f62a3e";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -3441,6 +3545,14 @@
|
||||
sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "nopt___nopt_4.0.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "nopt___nopt_4.0.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
|
||||
sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -3553,6 +3665,14 @@
|
||||
sha1 = "8272a71c19634d0dce9c35a5daf8ee589cbb0f52";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "npm_profile___npm_profile_4.0.4.tgz";
|
||||
path = fetchurl {
|
||||
name = "npm_profile___npm_profile_4.0.4.tgz";
|
||||
url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz";
|
||||
sha1 = "28ee94390e936df6d084263ee2061336a6a1581b";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -3561,6 +3681,14 @@
|
||||
sha1 = "2b1434f93ccbe6b6385f8e45f45db93e16921d7a";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
|
||||
path = fetchurl {
|
||||
name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
|
||||
url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz";
|
||||
sha1 = "cb87cf7f25bfb048d6c3ee19d115bebf93ea5bfa";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "npm_run_path___npm_run_path_2.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -3578,11 +3706,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "npm___npm_6.13.7.tgz";
|
||||
name = "npm___npm_6.14.6.tgz";
|
||||
path = fetchurl {
|
||||
name = "npm___npm_6.13.7.tgz";
|
||||
url = "https://registry.yarnpkg.com/npm/-/npm-6.13.7.tgz";
|
||||
sha1 = "9533a3ddc57f9792db8a8b303efabaf878047841";
|
||||
name = "npm___npm_6.14.6.tgz";
|
||||
url = "https://registry.yarnpkg.com/npm/-/npm-6.14.6.tgz";
|
||||
sha1 = "1a81ce1fac2bf5457dbf6342ceed503627ff228f";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -4242,11 +4370,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "read_config_file___read_config_file_5.0.1.tgz";
|
||||
name = "read_config_file___read_config_file_6.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "read_config_file___read_config_file_5.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.1.tgz";
|
||||
sha1 = "ead3df0d9822cc96006ca16322eaa79dac8591c2";
|
||||
name = "read_config_file___read_config_file_6.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz";
|
||||
sha1 = "224b5dca6a5bdc1fb19e63f89f342680efdb9299";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -4321,6 +4449,14 @@
|
||||
sha1 = "a51c26754658e0a3c21dbf59163bd45ba6f447fc";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "readable_stream___readable_stream_3.6.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "readable_stream___readable_stream_3.6.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
|
||||
sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "readable_stream___readable_stream_1.1.14.tgz";
|
||||
path = fetchurl {
|
||||
@ -4601,6 +4737,14 @@
|
||||
sha1 = "e4345ce73071c53f336445cfc19efb1c311df2a6";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "semver___semver_7.3.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "semver___semver_7.3.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
|
||||
sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "set_blocking___set_blocking_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -4698,11 +4842,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "source_map_support___source_map_support_0.5.16.tgz";
|
||||
name = "source_map_support___source_map_support_0.5.19.tgz";
|
||||
path = fetchurl {
|
||||
name = "source_map_support___source_map_support_0.5.16.tgz";
|
||||
url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
|
||||
sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
|
||||
name = "source_map_support___source_map_support_0.5.19.tgz";
|
||||
url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
|
||||
sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -4994,11 +5138,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "tar_stream___tar_stream_2.1.0.tgz";
|
||||
name = "tar_stream___tar_stream_2.1.2.tgz";
|
||||
path = fetchurl {
|
||||
name = "tar_stream___tar_stream_2.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz";
|
||||
sha1 = "d1aaa3661f05b38b5acc9b7020efdca5179a2cc3";
|
||||
name = "tar_stream___tar_stream_2.1.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
|
||||
sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -5018,11 +5162,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "temp_file___temp_file_3.3.6.tgz";
|
||||
name = "temp_file___temp_file_3.3.7.tgz";
|
||||
path = fetchurl {
|
||||
name = "temp_file___temp_file_3.3.6.tgz";
|
||||
url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.6.tgz";
|
||||
sha1 = "bd7a1951338bf93b59380b498ec1804d5b76c449";
|
||||
name = "temp_file___temp_file_3.3.7.tgz";
|
||||
url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
|
||||
sha1 = "686885d635f872748e384e871855958470aeb18a";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -5257,6 +5401,14 @@
|
||||
sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "universalify___universalify_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
name = "universalify___universalify_1.0.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz";
|
||||
sha1 = "b61a1da173e8435b2fe3c67d29b9adf8594bd16d";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "unpipe___unpipe_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -5626,11 +5778,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "yargs_parser___yargs_parser_16.1.0.tgz";
|
||||
name = "yargs_parser___yargs_parser_18.1.3.tgz";
|
||||
path = fetchurl {
|
||||
name = "yargs_parser___yargs_parser_16.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz";
|
||||
sha1 = "73747d53ae187e7b8dbe333f95714c76ea00ecf1";
|
||||
name = "yargs_parser___yargs_parser_18.1.3.tgz";
|
||||
url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
|
||||
sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -5658,11 +5810,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "yargs___yargs_15.1.0.tgz";
|
||||
name = "yargs___yargs_15.3.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "yargs___yargs_15.1.0.tgz";
|
||||
url = "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz";
|
||||
sha1 = "e111381f5830e863a89550bd4b136bb6a5f37219";
|
||||
name = "yargs___yargs_15.3.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz";
|
||||
sha1 = "9505b472763963e54afe60148ad27a330818e98b";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -5674,11 +5826,11 @@
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zip_stream___zip_stream_2.1.2.tgz";
|
||||
name = "zip_stream___zip_stream_3.0.1.tgz";
|
||||
path = fetchurl {
|
||||
name = "zip_stream___zip_stream_2.1.2.tgz";
|
||||
url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.2.tgz";
|
||||
sha1 = "841efd23214b602ff49c497cba1a85d8b5fbc39c";
|
||||
name = "zip_stream___zip_stream_3.0.1.tgz";
|
||||
url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz";
|
||||
sha1 = "cb8db9d324a76c09f9b76b31a12a48638b0b9708";
|
||||
};
|
||||
}
|
||||
];
|
@ -1,44 +1,44 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
, makeWrapper, makeDesktopItem, mkYarnPackage
|
||||
, electron_7, riot-web
|
||||
, electron_9, element-web
|
||||
}:
|
||||
# Notes for maintainers:
|
||||
# * versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||
# * the Yarn dependency expression must be updated with `./update-riot-desktop.sh <git release tag>`
|
||||
# * versions of `element-web` and `element-desktop` should be kept in sync.
|
||||
# * the Yarn dependency expression must be updated with `./update-element-desktop.sh <git release tag>`
|
||||
|
||||
let
|
||||
executableName = "riot-desktop";
|
||||
version = "1.6.7";
|
||||
executableName = "element-desktop";
|
||||
version = "1.7.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = "riot-desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "0l1ih7rkb0nnc79607kkg0k69j9kwqrczhgkqzsmvqxjz7pk9kgn";
|
||||
sha256 = "0sl45mxgp0sngxnba8ilsghzgv6cv36ggah1k2204ggzby13blg6";
|
||||
};
|
||||
electron = electron_7;
|
||||
electron = electron_9;
|
||||
|
||||
in mkYarnPackage rec {
|
||||
name = "riot-desktop-${version}";
|
||||
name = "element-desktop-${version}";
|
||||
inherit version src;
|
||||
|
||||
packageJSON = ./riot-desktop-package.json;
|
||||
yarnNix = ./riot-desktop-yarndeps.nix;
|
||||
packageJSON = ./element-desktop-package.json;
|
||||
yarnNix = ./element-desktop-yarndeps.nix;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
# resources
|
||||
mkdir -p "$out/share/riot"
|
||||
ln -s '${riot-web}' "$out/share/riot/webapp"
|
||||
cp -r './deps/riot-desktop' "$out/share/riot/electron"
|
||||
cp -r './deps/riot-desktop/res/img' "$out/share/riot"
|
||||
rm "$out/share/riot/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/riot/electron"
|
||||
mkdir -p "$out/share/element"
|
||||
ln -s '${element-web}' "$out/share/element/webapp"
|
||||
cp -r './deps/element-desktop' "$out/share/element/electron"
|
||||
cp -r './deps/element-desktop/res/img' "$out/share/element"
|
||||
rm "$out/share/element/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/element/electron"
|
||||
|
||||
# icons
|
||||
for icon in $out/share/riot/electron/build/icons/*.png; do
|
||||
for icon in $out/share/element/electron/build/icons/*.png; do
|
||||
mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
|
||||
ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/riot.png"
|
||||
ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png"
|
||||
done
|
||||
|
||||
# desktop item
|
||||
@ -47,36 +47,33 @@ in mkYarnPackage rec {
|
||||
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
||||
--add-flags "$out/share/riot/electron"
|
||||
--add-flags "$out/share/element/electron"
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for riot-web again.
|
||||
# Do not attempt generating a tarball for element-web again.
|
||||
# note: `doDist = false;` does not work.
|
||||
distPhase = ''
|
||||
true
|
||||
'';
|
||||
|
||||
# The desktop item properties should be kept in sync with data from upstream:
|
||||
# * productName and description from
|
||||
# https://github.com/vector-im/riot-web/blob/develop/electron_app/package.json
|
||||
# * category and StartupWMClass from the build.linux section of
|
||||
# https://github.com/vector-im/riot-web/blob/develop/package.json
|
||||
# https://github.com/vector-im/riot-desktop/blob/develop/package.json
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "riot";
|
||||
name = "element-desktop";
|
||||
exec = executableName;
|
||||
icon = "riot";
|
||||
desktopName = "Riot";
|
||||
icon = "element";
|
||||
desktopName = "Element (Riot)";
|
||||
genericName = "Matrix Client";
|
||||
comment = meta.description;
|
||||
categories = "Network;InstantMessaging;Chat;";
|
||||
extraEntries = ''
|
||||
StartupWMClass=riot
|
||||
StartupWMClass=element
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A feature-rich client for Matrix.org";
|
||||
homepage = "https://about.riot.im/";
|
||||
homepage = "https://element.io/";
|
||||
license = licenses.asl20;
|
||||
maintainers = teams.matrix.members;
|
||||
inherit (electron.meta) platforms;
|
@ -1,22 +1,22 @@
|
||||
{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
|
||||
|
||||
# Note for maintainers:
|
||||
# Versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||
# Versions of `element-web` and `element-desktop` should be kept in sync.
|
||||
|
||||
let
|
||||
noPhoningHome = {
|
||||
disable_guests = true; # disable automatic guest account registration at matrix.org
|
||||
piwik = false; # disable analytics
|
||||
};
|
||||
configOverrides = writeText "riot-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
|
||||
configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "riot-web";
|
||||
version = "1.6.8";
|
||||
pname = "element-web";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||
sha256 = "09jazixxaq9fcw3qld73hpknw7pcjg3b94hhgipl3zyn6dvqk3xv";
|
||||
sha256 = "1axmf5h0k709kbpgh3ldsf6f8k9n2q623pk4j0nrshlxa9ighsay";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
description = "A glossy Matrix collaboration client for the web";
|
||||
homepage = "http://riot.im/";
|
||||
homepage = "https://element.io/";
|
||||
maintainers = stdenv.lib.teams.matrix.members;
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
platforms = stdenv.lib.platforms.all;
|
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates the Yarn dependency lock files for the element-desktop package."
|
||||
echo "Usage: $0 <git release tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
|
||||
|
||||
wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json
|
||||
wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock
|
||||
yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix
|
||||
rm element-desktop-yarndeps.lock
|
@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates the Yarn dependency lock files for the riot-desktop package."
|
||||
echo "Usage: $0 <git release tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
|
||||
|
||||
wget "$RIOT_WEB_SRC/package.json" -O riot-desktop-package.json
|
||||
wget "$RIOT_WEB_SRC/yarn.lock" -O riot-desktop-yarndeps.lock
|
||||
yarn2nix --lockfile=riot-desktop-yarndeps.lock > riot-desktop-yarndeps.nix
|
||||
rm riot-desktop-yarndeps.lock
|
@ -30,11 +30,11 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "claws-mail";
|
||||
version = "3.17.5";
|
||||
version = "3.17.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
|
||||
sha256 = "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns";
|
||||
sha256 = "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -1,232 +1,25 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, requireFile
|
||||
, makeWrapper
|
||||
, libredirect
|
||||
, busybox
|
||||
, file
|
||||
, makeDesktopItem
|
||||
, tzdata
|
||||
, cacert
|
||||
, dconf
|
||||
, glib
|
||||
, gtk2
|
||||
, atk
|
||||
, gdk-pixbuf
|
||||
, cairo
|
||||
, pango
|
||||
, gnome3
|
||||
, xorg
|
||||
, libpng12
|
||||
, freetype
|
||||
, fontconfig
|
||||
, gtk_engines
|
||||
, alsaLib
|
||||
, zlib
|
||||
, version ? "20.06.0"
|
||||
}:
|
||||
{ lib, callPackage }:
|
||||
|
||||
# For detailed information about the Citrix source-tarball, please refer to the OEM
|
||||
# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/
|
||||
|
||||
let
|
||||
versionInfo = let
|
||||
supportedVersions = {
|
||||
"19.12.0" = {
|
||||
major = "19";
|
||||
minor = "12";
|
||||
patch = "0";
|
||||
x64hash = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a";
|
||||
x86hash = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy";
|
||||
x64suffix = "19";
|
||||
x86suffix = "19";
|
||||
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1912.html";
|
||||
};
|
||||
inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
|
||||
mkCitrix = callPackage ./generic.nix { };
|
||||
|
||||
"20.04.0" = {
|
||||
major = "20";
|
||||
minor = "04";
|
||||
patch = "0";
|
||||
x64hash = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
|
||||
x86hash = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
|
||||
x64suffix = "21";
|
||||
x86suffix = "21";
|
||||
homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
|
||||
};
|
||||
toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
|
||||
|
||||
"20.06.0" = {
|
||||
major = "20";
|
||||
minor = "06";
|
||||
patch = "0";
|
||||
x64hash = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
|
||||
x86hash = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
|
||||
x64suffix = "15";
|
||||
x86suffix = "15";
|
||||
homepage = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
|
||||
};
|
||||
};
|
||||
unsupported = lib.listToAttrs (
|
||||
map (x: lib.nameValuePair (toAttrName x) (throw ''
|
||||
Citrix Workspace at version ${x} is not supported anymore!
|
||||
|
||||
# The lifespans of Citrix products can be found here:
|
||||
# https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
|
||||
deprecatedVersions = let
|
||||
versions = [ "19.6.0" "19.8.0" "19.10.0" ];
|
||||
in
|
||||
lib.listToAttrs
|
||||
(lib.forEach versions
|
||||
(v: lib.nameValuePair v (throw ''
|
||||
Unsupported citrix_workspace version: ${v}
|
||||
Actively supported releases are listed here:
|
||||
https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
|
||||
'')) unsupportedVersions
|
||||
);
|
||||
|
||||
Actively supported releases are listed here:
|
||||
https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
|
||||
'')));
|
||||
in
|
||||
deprecatedVersions // supportedVersions;
|
||||
|
||||
citrixWorkspaceForVersion = { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "citrix-workspace";
|
||||
version = "${major}.${minor}.${patch}";
|
||||
inherit homepage;
|
||||
|
||||
prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
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 Workspace, 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/workspace-app/
|
||||
|
||||
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
|
||||
dconf
|
||||
xorg.libX11
|
||||
xorg.libXext
|
||||
xorg.libXrender
|
||||
xorg.libXinerama
|
||||
xorg.libXfixes
|
||||
libpng12
|
||||
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 Workspace";
|
||||
genericName = "Citrix Workspace";
|
||||
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/workspace_dependencies.pin"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
inherit homepage;
|
||||
description = "Citrix Workspace";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
};
|
||||
};
|
||||
|
||||
in citrixWorkspaceForVersion (lib.getAttr version versionInfo)
|
||||
supported = lib.mapAttrs' (
|
||||
attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
|
||||
) supportedVersions;
|
||||
in
|
||||
supported // unsupported
|
||||
|
203
pkgs/applications/networking/remote/citrix-workspace/generic.nix
Normal file
203
pkgs/applications/networking/remote/citrix-workspace/generic.nix
Normal file
@ -0,0 +1,203 @@
|
||||
{ stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more
|
||||
, file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3
|
||||
, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
|
||||
, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
|
||||
, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
|
||||
|
||||
, homepage, version, prefix, hash
|
||||
|
||||
, extraCerts ? []
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv) lib;
|
||||
|
||||
openssl' = symlinkJoin {
|
||||
name = "openssl-backwards-compat";
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
paths = [ openssl.out ];
|
||||
postBuild = ''
|
||||
ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
|
||||
ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "citrix-workspace";
|
||||
inherit version;
|
||||
|
||||
src = requireFile rec {
|
||||
name = "${prefix}-${version}.tar.gz";
|
||||
sha256 = hash;
|
||||
|
||||
message = ''
|
||||
In order to use Citrix Workspace, 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/workspace-app/
|
||||
|
||||
Once you have downloaded the file, please use the following command and re-run the
|
||||
installation:
|
||||
|
||||
nix-prefetch-url file://\$PWD/${name}
|
||||
'';
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
sourceRoot = ".";
|
||||
preferLocalBuild = true;
|
||||
passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
file
|
||||
makeWrapper
|
||||
more
|
||||
which
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsaLib
|
||||
atk
|
||||
cairo
|
||||
dconf
|
||||
fontconfig
|
||||
freetype
|
||||
gdk-pixbuf
|
||||
gnome2.gtkglext
|
||||
gnome3.webkitgtk
|
||||
gtk2
|
||||
gtk2-x11
|
||||
gtk3
|
||||
gtk_engines
|
||||
heimdal
|
||||
krb5
|
||||
libcxx
|
||||
libcxxabi
|
||||
libjpeg
|
||||
libpng12
|
||||
libsoup
|
||||
libvorbis
|
||||
libxml2
|
||||
nspr
|
||||
nss
|
||||
openssl'
|
||||
pango
|
||||
speex
|
||||
systemd.lib
|
||||
stdenv.cc.cc
|
||||
xorg.libXaw
|
||||
xorg.libXmu
|
||||
xorg.libXScrnSaver
|
||||
xorg.libXtst
|
||||
zlib
|
||||
] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs;
|
||||
|
||||
runtimeDependencies = [
|
||||
glib
|
||||
|
||||
xorg.libX11
|
||||
xorg.libXScrnSaver
|
||||
xorg.libXext
|
||||
xorg.libXfixes
|
||||
xorg.libXinerama
|
||||
xorg.libXmu
|
||||
xorg.libXrender
|
||||
xorg.libXtst
|
||||
xorg.libxcb
|
||||
];
|
||||
|
||||
installPhase = let
|
||||
icaFlag = program:
|
||||
if (builtins.match "selfservice(.*)" program) != null then "--icaroot"
|
||||
else "-icaroot";
|
||||
wrap = program: ''
|
||||
wrapProgram $out/opt/citrix-icaclient/${program} \
|
||||
--add-flags "${icaFlag program} $ICAInstDir" \
|
||||
--set ICAROOT "$ICAInstDir" \
|
||||
--prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
|
||||
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
|
||||
'';
|
||||
wrapLink = program: ''
|
||||
${wrap program}
|
||||
ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
|
||||
'';
|
||||
|
||||
copyCert = path: ''
|
||||
cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path}
|
||||
'';
|
||||
|
||||
mkWrappers = lib.concatMapStringsSep "\n";
|
||||
|
||||
toWrap = [ "wfica" "selfservice" "util/configmgr" "util/conncenter" "util/ctx_rehash" ]
|
||||
++ lib.optional (lib.versionOlder version "20.06") "selfservice_old";
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,share/applications}
|
||||
export ICAInstDir="$out/opt/citrix-icaclient"
|
||||
export HOME=$(mktemp -d)
|
||||
|
||||
# Run upstream installer in the store-path.
|
||||
sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./linuxx64/hinst
|
||||
${stdenv.shell} linuxx64/hinst CDROM "$(pwd)"
|
||||
|
||||
${mkWrappers wrapLink toWrap}
|
||||
${mkWrappers wrap [ "PrimaryAuthManager" "ServiceRecord" "AuthManagerDaemon" "util/ctxwebhelper" ]}
|
||||
|
||||
ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
|
||||
|
||||
# As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
|
||||
echo "Expanding certificates..."
|
||||
pushd "$ICAInstDir/keystore/cacerts"
|
||||
awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \
|
||||
< ${cacert}/etc/ssl/certs/ca-bundle.crt
|
||||
popd
|
||||
|
||||
${mkWrappers copyCert extraCerts}
|
||||
|
||||
# See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files
|
||||
# Those files are fallbacks to support older libwekit.so and libjpeg.so
|
||||
rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so
|
||||
rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so
|
||||
|
||||
# We support only Gstreamer 1.0
|
||||
rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so}
|
||||
ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play
|
||||
ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read
|
||||
|
||||
echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
|
||||
echo UTC > "$ICAInstDir/timezone"
|
||||
|
||||
echo "Copy .desktop files."
|
||||
cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
|
||||
|
||||
# We introduce a dependency on the source file so that it need not be redownloaded everytime
|
||||
echo $src >> "$out/share/workspace_dependencies.pin"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Make sure that `autoPatchelfHook` is executed before
|
||||
# running `ctx_rehash`.
|
||||
dontAutoPatchelf = true;
|
||||
postFixup = ''
|
||||
autoPatchelf -- "$out"
|
||||
$out/opt/citrix-icaclient/util/ctx_rehash
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
license = licenses.unfree;
|
||||
description = "Citrix Workspace";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
inherit homepage;
|
||||
};
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
{ stdenv, lib }:
|
||||
|
||||
let
|
||||
mkVersionInfo = _: { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
|
||||
{ inherit homepage;
|
||||
version = "${major}.${minor}.${patch}.${if stdenv.is64bit then x64suffix else x86suffix}";
|
||||
prefix = "linuxx${if stdenv.is64bit then "64" else "86"}";
|
||||
hash = if stdenv.is64bit then x64hash else x86hash;
|
||||
};
|
||||
|
||||
# Attribute-set with all actively supported versions of the Citrix workspace app
|
||||
# for Linux.
|
||||
#
|
||||
# The latest versions can be found at https://www.citrix.com/de-de/downloads/workspace-app/linux/
|
||||
supportedVersions = lib.mapAttrs mkVersionInfo {
|
||||
"19.12.0" = {
|
||||
major = "19";
|
||||
minor = "12";
|
||||
patch = "0";
|
||||
x64hash = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a";
|
||||
x86hash = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy";
|
||||
x64suffix = "19";
|
||||
x86suffix = "19";
|
||||
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1912.html";
|
||||
};
|
||||
|
||||
"20.04.0" = {
|
||||
major = "20";
|
||||
minor = "04";
|
||||
patch = "0";
|
||||
x64hash = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
|
||||
x86hash = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
|
||||
x64suffix = "21";
|
||||
x86suffix = "21";
|
||||
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
|
||||
};
|
||||
|
||||
"20.06.0" = {
|
||||
major = "20";
|
||||
minor = "06";
|
||||
patch = "0";
|
||||
x64hash = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
|
||||
x86hash = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
|
||||
x64suffix = "15";
|
||||
x86suffix = "15";
|
||||
homepage = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
|
||||
};
|
||||
};
|
||||
|
||||
# Retain attribute-names for abandoned versions of Citrix workspace to
|
||||
# provide a meaningful error-message if it's attempted to use such an old one.
|
||||
#
|
||||
# The lifespans of Citrix products can be found here:
|
||||
# https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
|
||||
unsupportedVersions = [ "19.6.0" "19.8.0" "19.10.0" ];
|
||||
in {
|
||||
inherit supportedVersions unsupportedVersions;
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{ citrix_workspace, extraCerts ? [], symlinkJoin }:
|
||||
|
||||
let
|
||||
|
||||
mkCertCopy = certPath:
|
||||
"cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
|
||||
|
||||
in
|
||||
|
||||
if builtins.length extraCerts == 0 then citrix_workspace else symlinkJoin {
|
||||
name = "citrix-with-extra-certs-${citrix_workspace.version}";
|
||||
paths = [ citrix_workspace ];
|
||||
|
||||
postBuild = ''
|
||||
${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
|
||||
|
||||
sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
|
||||
'';
|
||||
}
|
@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
version = "3.2.4";
|
||||
version = "3.2.5";
|
||||
variant = if withQt then "qt" else "cli";
|
||||
pcap = libpcap.override { withBluez = stdenv.isLinux; };
|
||||
|
||||
@ -21,7 +21,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
|
||||
sha256 = "1amqgn94g6h6cfnsccm2zb4c73pfv1qmzi1i6h1hnbcyhhg4czfi";
|
||||
sha256 = "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "osmo";
|
||||
version = "0.4.2";
|
||||
version = "0.4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/osmo-pim/${pname}-${version}.tar.gz";
|
||||
sha256 = "1gjd4w9jckfpqr9n0bw0w25h3qhfyzw1xvilh3hqdadfinwyal2v";
|
||||
sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, coreutils, fltk, libjpeg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.0.2";
|
||||
version = "5.0.4";
|
||||
pname = "seaview";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
|
||||
sha256 = "0bad0nd18a36g6ysx28j68rbnwqn33ra8inx2lv2igqqcs6i5kif";
|
||||
sha256 = "09yp8467h49qnj7gg0mbcdha4ai3bn6vgs00gb76dd6h3pzfflz1";
|
||||
};
|
||||
|
||||
buildInputs = [ fltk libjpeg ];
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,30 +1,27 @@
|
||||
{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, gmp, ncurses }:
|
||||
{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
version = "0.4.5";
|
||||
version = "0.5.0";
|
||||
pname = "rink";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tiffany352";
|
||||
repo = "rink-rs";
|
||||
rev = "v${version}";
|
||||
sha256 = "0vl996y58a9b62d8sqrpfn2h8qkya7qbg5zqsmy7nxhph1vhbspj";
|
||||
sha256 = "1z51n25hmgqkn4bm9yj18j8p4pk5i1x3f3z70vl1vx3v109jhff0";
|
||||
};
|
||||
|
||||
# Upstreamed in https://github.com/tiffany352/rink-rs/pull/53
|
||||
cargoPatches = [ ./cargo-lock.patch ];
|
||||
cargoSha256 = "0p63py8q4iqj5rrsir9saj7dvkrafx63z493k7p5xb2mah7b21lb";
|
||||
|
||||
cargoSha256 = "0shlh0m9k0iqxpv9zmiw7a6v197swrvpz9x6qzhximzkdwni9gz9";
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ openssl gmp ncurses ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ncurses ];
|
||||
|
||||
# Some tests fail and/or attempt to use internet servers.
|
||||
doCheck = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Unit-aware calculator";
|
||||
homepage = "https://rink.tiffnix.com";
|
||||
homepage = "https://rinkcalc.app";
|
||||
license = with licenses; [ mpl20 gpl3 ];
|
||||
maintainers = with maintainers; [ sb0 filalex77 ];
|
||||
};
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "0.10.1";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "0q4zpm10hcci4j0g1gx08q2qwn71ab9f7yaf4k78sfn5p89y7rm2";
|
||||
sha256 = "13nq7rvxwl9cld9gng7rm534yqrr2ii0bqyzqwlkpzh9m61m3ra2";
|
||||
};
|
||||
|
||||
vendorSha256 = "0igbqnylryiq36lbb1gha8najijzxmn10asc0xayxygbxc16s1vi";
|
||||
vendorSha256 = "1xvrxdxhyj5nz5plypc5mniw5dl17w1wxcrs77w24hisn90jphgd";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-machete";
|
||||
version = "2.15.2";
|
||||
version = "2.15.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0qv08a6xsdmcm8l69m4103vn4crb0ilzx94334xjbdl0sykm55q0";
|
||||
sha256 = "0kpfi1w1jnn7v7mny71jil3sc9mm08lz47l9v3hzgs5z3ham98jb";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles pbr ];
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gitui";
|
||||
version = "0.5.0";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "extrawurst";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0z3k83nfnl765ably4naybjf614qfizzpqb40ppwljijj9nqlng1";
|
||||
sha256 = "0nch2p4isdv746p9pczqwram0c5f0f9l2r3fy5r12x9br0kak136";
|
||||
};
|
||||
|
||||
cargoSha256 = "11y4q56vl5dp2vdc7dc5q44l2m0mn590hfg6i134m11r8988am6y";
|
||||
cargoSha256 = "1d54afg45lw8zyanr49fklzhczadyja2fjmid22d81s2ari84slz";
|
||||
|
||||
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
|
@ -13,11 +13,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gitkraken";
|
||||
version = "7.0.1";
|
||||
version = "7.1.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
|
||||
sha256 = "0vj2ggbm617fypl69ksbrbl048xp4v6wc46y4sp7hrk6lg0gw1b0";
|
||||
sha256 = "1g7i7sq705x5jkp76z4car9na3qvklpi3a766yiv4h79kc5via48";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -13,13 +13,13 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mkvtoolnix";
|
||||
version = "47.0.0";
|
||||
version = "48.0.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mbunkus";
|
||||
repo = "mkvtoolnix";
|
||||
rev = "release-${version}";
|
||||
sha256 = "1s8y9khyfjg06mr7rmm26pk0b3nbkcrs56r29a9l57wbkqyl7qp9";
|
||||
sha256 = "0lbl3w2m12blymda3m00afl9racgahvl0z4b2clwbawhvypc5vfc";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 247baa7e9210bbe5462b6155014c3dcd4a60e56a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Simons <simons@cryp.to>
|
||||
Date: Tue, 24 Sep 2019 10:27:17 +0200
|
||||
Subject: [PATCH] encodedock.cpp: connect to VAAPI via DRM, not X11
|
||||
|
||||
---
|
||||
src/docks/encodedock.cpp | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp
|
||||
index f2d64fc8..63d20787 100644
|
||||
--- a/src/docks/encodedock.cpp
|
||||
+++ b/src/docks/encodedock.cpp
|
||||
@@ -766,7 +766,6 @@ Mlt::Properties* EncodeDock::collectProperties(int realtime)
|
||||
setIfNotSet(p, "pix_fmt", "nv12");
|
||||
} else if (vcodec.endsWith("_vaapi")) {
|
||||
setIfNotSet(p, "vprofile", "main");
|
||||
- setIfNotSet(p, "connection_type", "x11");
|
||||
}
|
||||
}
|
||||
setIfNotSet(p, "width", ui->widthSpinner->value());
|
||||
@@ -1890,7 +1889,7 @@ void EncodeDock::on_hwencodeCheckBox_clicked(bool checked)
|
||||
QStringList args;
|
||||
args << "-hide_banner" << "-f" << "lavfi" << "-i" << "color=s=640x360" << "-frames" << "1" << "-an";
|
||||
if (codec.endsWith("_vaapi"))
|
||||
- args << "-init_hw_device" << "vaapi=vaapi0:,connection_type=x11" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
|
||||
+ args << "-init_hw_device" << "vaapi=vaapi0" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
|
||||
else if (codec == "hevc_qsv")
|
||||
args << "-load_plugin" << "hevc_hw";
|
||||
args << "-c:v" << codec << "-f" << "rawvideo" << "pipe:";
|
||||
--
|
||||
2.24.1
|
||||
|
@ -3,22 +3,20 @@
|
||||
, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
|
||||
}:
|
||||
|
||||
assert stdenv.lib.versionAtLeast libmlt.version "6.18.0";
|
||||
assert stdenv.lib.versionAtLeast mlt.version "6.18.0";
|
||||
assert stdenv.lib.versionAtLeast libmlt.version "6.20.0";
|
||||
assert stdenv.lib.versionAtLeast mlt.version "6.20.0";
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "shotcut";
|
||||
version = "20.04.12";
|
||||
version = "20.07.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mltframework";
|
||||
repo = "shotcut";
|
||||
rev = "v${version}";
|
||||
sha256 = "05yyv9192f722j8fhfjrphxadgp3crvbq4pi23ln560zh9s1m8r4";
|
||||
sha256 = "0ajg0bpdckhvmmsliy1xky9p4mdypnaw3z3cvfsdrm0zcihbgazv";
|
||||
};
|
||||
|
||||
patches = [ ./0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
nativeBuildInputs = [ pkgconfig qmake ];
|
||||
buildInputs = [
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "conmon";
|
||||
version = "2.0.18";
|
||||
version = "2.0.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0f32g048jamfhrds68vzirx8iqizr45wf2d4bfvdsk176amrj4k0";
|
||||
sha256 = "005sz8aimbfm12d99q79yvsqczxbvbbgc725pavcbly3k1qva207";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -34,13 +34,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "crun";
|
||||
version = "0.14";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "14hmdarmhkfp5qgd8ifn7dn895j54ibaficci82q40haqh252l4n";
|
||||
sha256 = "0r77ksdrpxskf79m898a7ai8wxw9fmmsf2lg8fw3ychnk74l8jvh";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -20,7 +20,7 @@ buildGoModule rec {
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "libpod";
|
||||
repo = "podman";
|
||||
rev = "v${version}";
|
||||
sha256 = "12iqj71xjszbjbbz5f2dk5chcvfrrq0n737ki7xxkjcw38k2cnqz";
|
||||
};
|
||||
|
@ -1,45 +1,45 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch
|
||||
, meson, ninja, pkgconfig, makeWrapper
|
||||
, wlroots, wayland, wayland-protocols, pixman, libxkbcommon
|
||||
{ stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
|
||||
, wlroots, wayland-protocols, pixman, libxkbcommon
|
||||
, systemd, libGL, libX11
|
||||
, xwayland ? null
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cage-unstable";
|
||||
version = "2020-01-18";
|
||||
# The last stable release (0.1.1) would require at least the following 3 patches:
|
||||
# - https://github.com/Hjdskes/cage/commit/33bb3c818c5971777b6f09d8821e7f078d38d262.patch
|
||||
# - https://github.com/Hjdskes/cage/commit/51e6c760da51e2b885737d61a61cdc965bb9269d.patch
|
||||
# - https://github.com/Hjdskes/cage/commit/84216ca2a417b237ad61c11e2f3ebbcb91681ece.patch
|
||||
# Which need to be adapted due to other changes. At this point it seems
|
||||
# better to use the current master version until the next stable release.
|
||||
pname = "cage";
|
||||
version = "0.1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Hjdskes";
|
||||
repo = "cage";
|
||||
rev = "cc1f975c442ebd691b70196d76aa120ead717810";
|
||||
sha256 = "1gkqx26pvlw00b3fgx6sh87yyjfzyj51jwxvbf9k117npkrf4b2g";
|
||||
rev = "v${version}";
|
||||
sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkgconfig makeWrapper wayland ];
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build --replace \
|
||||
"0.1.2" "${version}"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
wlroots wayland wayland-protocols pixman libxkbcommon
|
||||
# TODO: Not specified but required:
|
||||
systemd libGL libX11
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ];
|
||||
|
||||
postFixup = stdenv.lib.optionalString (xwayland != null) ''
|
||||
wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
|
||||
'';
|
||||
|
||||
# Tests Cage using the NixOS module by launching xterm:
|
||||
passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Wayland kiosk";
|
||||
description = "A Wayland kiosk that runs a single, maximized application";
|
||||
homepage = "https://www.hjdskes.nl/projects/cage/";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
|
@ -9,13 +9,13 @@
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "icewm";
|
||||
version = "1.6.6";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bbidulock";
|
||||
repo = "icewm";
|
||||
rev = version;
|
||||
sha256 = "05jg2gs5cdxn2kfm2y6yrqxpza5s1zsgb52168psmzhb4nakpv42";
|
||||
sha256 = "0x6axhwfwxxgnljf3201hvrwa90yacf3ln24lsywrk1bxq9am74b";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
|
||||
|
@ -18,23 +18,11 @@
|
||||
|
||||
grimshot = stdenv.mkDerivation rec {
|
||||
pname = "grimshot";
|
||||
version = "2020-05-08";
|
||||
rev = "b1d08db5f5112ab562f89564825e3e791b0682c4";
|
||||
version = sway-unwrapped.version;
|
||||
|
||||
# master has new fixes and features, and a man page
|
||||
# after sway-1.5 these may be switched to sway-unwrapped.src
|
||||
bsrc = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot";
|
||||
sha256 = "1awzmzkib8a7q5s78xyh8za03lplqfpbasqp3lidqqmjqs882jq9";
|
||||
};
|
||||
|
||||
msrc = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot.1";
|
||||
sha256 = "191xxjfhf61gkxl3b0f694h0nrwd7vfnyp5afk8snhhr6q7ia4jz";
|
||||
};
|
||||
src = sway-unwrapped.src;
|
||||
|
||||
dontBuild = true;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
@ -42,9 +30,9 @@ grimshot = stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
||||
installPhase = ''
|
||||
installManPage ${msrc}
|
||||
installManPage contrib/grimshot.1
|
||||
|
||||
install -Dm 0755 ${bsrc} $out/bin/grimshot
|
||||
install -Dm 0755 contrib/grimshot $out/bin/grimshot
|
||||
wrapProgram $out/bin/grimshot --set PATH \
|
||||
"${stdenv.lib.makeBinPath [
|
||||
sway-unwrapped
|
||||
|
@ -1,20 +1,19 @@
|
||||
{ stdenv, fetchFromGitHub, makeWrapper
|
||||
, meson, ninja
|
||||
, pkgconfig, scdoc
|
||||
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||
, meson, ninja, pkg-config, wayland, scdoc
|
||||
, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
|
||||
, wlroots, wayland-protocols
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sway-unwrapped";
|
||||
version = "1.4";
|
||||
version = "1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja";
|
||||
sha256 = "0r3b7h778l9i20z3him9i2qsaynpn9y78hzfgv3cqi8fyry2c4f9";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -22,8 +21,12 @@ stdenv.mkDerivation rec {
|
||||
./load-configuration-from-etc.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build --replace "v1.5" "1.5"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig meson ninja scdoc
|
||||
meson ninja pkg-config wayland scdoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -32,16 +35,23 @@ stdenv.mkDerivation rec {
|
||||
wlroots wayland-protocols
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
mesonFlags = [
|
||||
"-Ddefault-wallpaper=false" "-Dxwayland=enabled" "-Dgdk-pixbuf=enabled"
|
||||
"-Dtray=enabled" "-Dman-pages=enabled"
|
||||
"-Ddefault-wallpaper=false"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "i3-compatible tiling Wayland compositor";
|
||||
description = "An i3-compatible tiling Wayland compositor";
|
||||
longDescription = ''
|
||||
Sway is a tiling Wayland compositor and a drop-in replacement for the i3
|
||||
window manager for X11. It works with your existing i3 configuration and
|
||||
supports most of i3's features, plus a few extras.
|
||||
Sway allows you to arrange your application windows logically, rather
|
||||
than spatially. Windows are arranged into a grid by default which
|
||||
maximizes the efficiency of your screen and can be quickly manipulated
|
||||
using only the keyboard.
|
||||
'';
|
||||
homepage = "https://swaywm.org";
|
||||
changelog = "https://github.com/swaywm/sway/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ma27 ];
|
||||
|
@ -30,6 +30,13 @@ args@{
|
||||
, removeRulesCC ? true
|
||||
, removeLocalConfigCc ? true
|
||||
, removeLocal ? true
|
||||
|
||||
# Use build --nobuild instead of fetch. This allows fetching the dependencies
|
||||
# required for the build as configured, rather than fetching all the dependencies
|
||||
# which may not work in some situations (e.g. Java code which ends up relying on
|
||||
# Debian-specific /usr/share/java paths, but doesn't in the configured build).
|
||||
, fetchConfigured ? false
|
||||
|
||||
, ...
|
||||
}:
|
||||
|
||||
@ -79,7 +86,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
||||
bazel \
|
||||
--output_base="$bazelOut" \
|
||||
--output_user_root="$bazelUserRoot" \
|
||||
fetch \
|
||||
${if fetchConfigured then "build --nobuild" else "fetch"} \
|
||||
--loading_phase_threads=1 \
|
||||
$bazelFlags \
|
||||
$bazelFetchFlags \
|
||||
@ -112,7 +119,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
||||
# platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms
|
||||
find $bazelOut/external -maxdepth 1 -type l | while read symlink; do
|
||||
name="$(basename "$symlink")"
|
||||
rm "$symlink" "$bazelOut/external/@$name.marker"
|
||||
rm "$symlink"
|
||||
test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker"
|
||||
done
|
||||
|
||||
# Patching symlinks to remove build directory reference
|
||||
|
@ -442,6 +442,7 @@ rec {
|
||||
in
|
||||
runCommand "${name}.tar.gz" {
|
||||
inherit (stream) imageName;
|
||||
passthru = { inherit (stream) imageTag; };
|
||||
buildInputs = [ pigz ];
|
||||
} "${stream} | pigz -nT > $out";
|
||||
|
||||
@ -517,6 +518,11 @@ rec {
|
||||
layerClosure = writeReferencesToFile layer;
|
||||
passthru.buildArgs = args;
|
||||
passthru.layer = layer;
|
||||
passthru.imageTag =
|
||||
if tag != null
|
||||
then lib.toLower tag
|
||||
else
|
||||
lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
|
||||
# Docker can't be made to run darwin binaries
|
||||
meta.badPlatforms = lib.platforms.darwin;
|
||||
} ''
|
||||
@ -737,6 +743,11 @@ rec {
|
||||
conf = runCommand "${name}-conf.json" {
|
||||
inherit maxLayers created;
|
||||
imageName = lib.toLower name;
|
||||
passthru.imageTag =
|
||||
if tag != null
|
||||
then tag
|
||||
else
|
||||
lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
|
||||
paths = referencesByPopularity overallClosure;
|
||||
buildInputs = [ jq ];
|
||||
} ''
|
||||
@ -792,6 +803,7 @@ rec {
|
||||
'';
|
||||
result = runCommand "stream-${name}" {
|
||||
inherit (conf) imageName;
|
||||
passthru = { inherit (conf) imageTag; };
|
||||
buildInputs = [ makeWrapper ];
|
||||
} ''
|
||||
makeWrapper ${streamScript} $out --add-flags ${conf}
|
||||
|
@ -364,4 +364,22 @@ rec {
|
||||
created = "now";
|
||||
};
|
||||
|
||||
# buildImage without explicit tag
|
||||
bashNoTag = pkgs.dockerTools.buildImage {
|
||||
name = "bash-no-tag";
|
||||
contents = pkgs.bashInteractive;
|
||||
};
|
||||
|
||||
# buildLayeredImage without explicit tag
|
||||
bashNoTagLayered = pkgs.dockerTools.buildLayeredImage {
|
||||
name = "bash-no-tag-layered";
|
||||
contents = pkgs.bashInteractive;
|
||||
};
|
||||
|
||||
# buildImage without explicit tag
|
||||
bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage {
|
||||
name = "bash-no-tag-stream-layered";
|
||||
contents = pkgs.bashInteractive;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-desktop";
|
||||
version = "3.36.3.1";
|
||||
version = "3.36.4";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0zkbx5inprjpf4abqwn0bxc2d1rwbhv450cjh1wgz82ylagi3vab";
|
||||
sha256 = "1ilv49qkppbbag5728iswg1jhhqx9hbj7j8k8wccnbyaq54bsyq0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,60 +1,81 @@
|
||||
{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, gettext, libsecret
|
||||
, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
|
||||
, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
|
||||
, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
|
||||
, libpulseaudio, libical, gobject-introspection, wrapGAppsHook, libxslt, gcr
|
||||
, accountsservice, gdk-pixbuf, gdm, upower, ibus, libnma, libgnomekbd, gnome-desktop
|
||||
, gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3
|
||||
, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
|
||||
, gnome-autoar, asciidoc-full
|
||||
{ fetchurl
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome3
|
||||
, json-glib
|
||||
, gettext
|
||||
, libsecret
|
||||
, python3
|
||||
, polkit
|
||||
, networkmanager
|
||||
, gtk-doc
|
||||
, docbook-xsl-nons
|
||||
, at-spi2-core
|
||||
, libstartup_notification
|
||||
, telepathy-glib
|
||||
, telepathy-logger
|
||||
, unzip
|
||||
, shared-mime-info
|
||||
, libgweather
|
||||
, librsvg
|
||||
, geoclue2
|
||||
, perl
|
||||
, docbook_xml_dtd_412
|
||||
, docbook_xml_dtd_42
|
||||
, docbook_xml_dtd_43
|
||||
, desktop-file-utils
|
||||
, libpulseaudio
|
||||
, libical
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
, libxslt
|
||||
, gcr
|
||||
, accountsservice
|
||||
, gdk-pixbuf
|
||||
, gdm
|
||||
, upower
|
||||
, ibus
|
||||
, libnma
|
||||
, libgnomekbd
|
||||
, gnome-desktop
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-keyring
|
||||
, glib
|
||||
, gjs
|
||||
, mutter
|
||||
, evolution-data-server
|
||||
, gtk3
|
||||
, sassc
|
||||
, systemd
|
||||
, gst_all_1
|
||||
, adwaita-icon-theme
|
||||
, gnome-bluetooth
|
||||
, gnome-clocks
|
||||
, gnome-settings-daemon
|
||||
, gnome-autoar
|
||||
, asciidoc-full
|
||||
, bash-completion
|
||||
}:
|
||||
|
||||
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
|
||||
|
||||
let
|
||||
pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] );
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell";
|
||||
version = "3.36.4";
|
||||
|
||||
outputs = [ "out" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1nyibrr98ijn65z9ki0k7xzcwcliwy2jqssz0l0jalpbkhnr751d";
|
||||
};
|
||||
|
||||
LANG = "en_US.UTF-8";
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
|
||||
sassc desktop-file-utils libxslt.bin python3 asciidoc-full
|
||||
];
|
||||
buildInputs = [
|
||||
systemd
|
||||
gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
|
||||
libsecret libsoup polkit gdk-pixbuf librsvg
|
||||
networkmanager libstartup_notification telepathy-glib
|
||||
libXtst gjs mutter libpulseaudio evolution-data-server
|
||||
libical gtk3 gdm libcanberra-gtk3 geoclue2
|
||||
adwaita-icon-theme gnome-bluetooth
|
||||
gnome-clocks # schemas needed
|
||||
at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
|
||||
gobject-introspection
|
||||
gnome-autoar
|
||||
|
||||
# recording
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
|
||||
# not declared at build time, but typelib is needed at runtime
|
||||
libgweather libnma
|
||||
|
||||
# for gnome-extension tool
|
||||
bash-completion
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Hardcode paths to various dependencies so that they can be found at runtime.
|
||||
(substituteAll {
|
||||
@ -86,6 +107,77 @@ in stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_412
|
||||
docbook_xml_dtd_42
|
||||
docbook_xml_dtd_43
|
||||
gtk-doc
|
||||
perl
|
||||
wrapGAppsHook
|
||||
sassc
|
||||
desktop-file-utils
|
||||
libxslt.bin
|
||||
python3
|
||||
asciidoc-full
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
systemd
|
||||
gsettings-desktop-schemas
|
||||
gnome-keyring
|
||||
glib
|
||||
gcr
|
||||
accountsservice
|
||||
libsecret
|
||||
polkit
|
||||
gdk-pixbuf
|
||||
librsvg
|
||||
networkmanager
|
||||
libstartup_notification
|
||||
telepathy-glib
|
||||
gjs
|
||||
mutter
|
||||
libpulseaudio
|
||||
evolution-data-server
|
||||
libical
|
||||
gtk3
|
||||
gdm
|
||||
geoclue2
|
||||
adwaita-icon-theme
|
||||
gnome-bluetooth
|
||||
gnome-clocks # schemas needed
|
||||
at-spi2-core
|
||||
upower
|
||||
ibus
|
||||
gnome-desktop
|
||||
telepathy-logger
|
||||
gnome-settings-daemon
|
||||
gobject-introspection
|
||||
|
||||
# recording
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
|
||||
# not declared at build time, but typelib is needed at runtime
|
||||
libgweather
|
||||
libnma
|
||||
|
||||
# for gnome-extension tool
|
||||
bash-completion
|
||||
gnome-autoar
|
||||
json-glib
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgtk_doc=true"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/data-to-c.pl
|
||||
chmod +x meson/postinstall.py
|
||||
|
@ -7,14 +7,12 @@
|
||||
, gnome3
|
||||
, gettext
|
||||
, gobject-introspection
|
||||
, upower
|
||||
, cairo
|
||||
, pango
|
||||
, cogl
|
||||
, json-glib
|
||||
, libstartup_notification
|
||||
, zenity
|
||||
, libcanberra-gtk3
|
||||
, libcanberra
|
||||
, ninja
|
||||
, xkeyboard_config
|
||||
, libxkbfile
|
||||
@ -25,7 +23,6 @@
|
||||
, glib
|
||||
, gtk3
|
||||
, gnome-desktop
|
||||
, geocode-glib
|
||||
, pipewire
|
||||
, libgudev
|
||||
, libwacom
|
||||
@ -54,6 +51,17 @@ let self = stdenv.mkDerivation rec {
|
||||
sha256 = "0p3jglw6f2h67kwk89qz1rz23y25lip8m2mp2xshf2vrg4a930as";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
|
||||
# from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
|
||||
./drop-inheritable.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit zenity;
|
||||
})
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Degl_device=true"
|
||||
"-Dinstalled_tests=false" # TODO: enable these
|
||||
@ -86,16 +94,14 @@ let self = stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
cogl
|
||||
egl-wayland
|
||||
geocode-glib
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gobject-introspection
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
libcanberra
|
||||
libgudev
|
||||
libinput
|
||||
libstartup_notification
|
||||
@ -105,25 +111,11 @@ let self = stdenv.mkDerivation rec {
|
||||
pango
|
||||
pipewire
|
||||
sysprof
|
||||
upower
|
||||
xkeyboard_config
|
||||
xwayland
|
||||
zenity
|
||||
zenity
|
||||
wayland-protocols
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
|
||||
# from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
|
||||
./drop-inheritable.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit zenity;
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/backends/native/gen-default-modes.py
|
||||
'';
|
||||
|
@ -18,10 +18,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
uuid = "appindicatorsupport@rgcjonas.gmail.com";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp *.js $out/share/gnome-shell/extensions/${uuid}
|
||||
cp -r interfaces-xml $out/share/gnome-shell/extensions/${uuid}
|
||||
cp metadata.json $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "battery_status@milliburn.github.com";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -18,13 +18,17 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
${bash}/bin/bash ./update-locale.sh
|
||||
glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "clipboard-indicator@tudmotu.com";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp -r * $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
38
pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
Normal file
38
pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ stdenv, fetchFromGitHub, glib, gettext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-emoji-selector";
|
||||
version = "19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maoschanz";
|
||||
repo = "emoji-selector-for-gnome";
|
||||
rev = version;
|
||||
sha256 = "0x60pg5nl5d73av494dg29hyfml7fbf2d03wm053vx1q8a3pxbyb";
|
||||
};
|
||||
|
||||
uuid = "emoji-selector@maestroschan.fr";
|
||||
|
||||
nativeBuildInputs = [ glib ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
glib-compile-schemas ./${uuid}/schemas
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description =
|
||||
"GNOME Shell extension providing a searchable popup menu displaying most emojis";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ rawkode ];
|
||||
homepage = "https://github.com/maoschanz/emoji-selector-for-gnome";
|
||||
};
|
||||
}
|
@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "icon-hider@kalnitsky.org";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -16,12 +16,16 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
make schemas
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r impatience $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
uuid = "impatience@gfxmonk.net";
|
||||
|
@ -17,8 +17,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "mprisindicatorbutton@JasonLG1979.github.io";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -18,8 +18,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "nightthemeswitcher@romainvigier.fr";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/
|
||||
cp -r src/ $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp -r . $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
share_dir="$prefix/share"
|
||||
extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad"
|
||||
mkdir -p "$extensions_dir"
|
||||
mv *.js metadata.json dbus.xml schemas locale "$extensions_dir"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
uuid = "pidgin@muffinmad";
|
||||
|
@ -18,9 +18,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
uuid = "remove-dropdown-arrows@mpdeimos.com";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp extension.js $out/share/gnome-shell/extensions/${uuid}
|
||||
cp metadata.json $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -28,8 +28,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
uuid = "sound-output-device-chooser@kgshank.net";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -27,12 +27,16 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
uuid = "system-monitor@paradoxxx.zero.gmail.com";
|
||||
|
@ -14,12 +14,16 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ glib ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
glib-compile-schemas .
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp -r * $out/share/gnome-shell/extensions/${uuid}/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
uuid = "tilingnome@rliang.github.com";
|
||||
|
@ -13,8 +13,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
uuid = "timepp@zagortenay333";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/${uuid}
|
||||
cp -r . $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -15,8 +15,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
uuid = "window-corner-preview@fabiomereu.it";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
|
||||
uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions/
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions/${uuid}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
|
||||
buildFlags = "schemas";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/gnome-shell/extensions
|
||||
cp -r ${uuid} $out/share/gnome-shell/extensions
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -30,11 +30,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "go";
|
||||
version = "1.13.12";
|
||||
version = "1.13.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/go/go${version}.src.tar.gz";
|
||||
sha256 = "0d5s5rqyzp6ykj4x1dz8infcsmj3gy8djnf63ji971ypwi6jrfhp";
|
||||
sha256 = "01mbqzn1hj8idbyn2f9gghvirfnw348dcf7pjs3ymschfblk6wqr";
|
||||
};
|
||||
|
||||
# perl is used for testing go vet
|
||||
|
@ -196,8 +196,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
export PATH=$(pwd)/bin:$PATH
|
||||
|
||||
${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
|
||||
# Independent from host/target, CC should produce code for the building system.
|
||||
# We only set it when cross-compiling.
|
||||
export CC=${buildPackages.stdenv.cc}/bin/cc
|
||||
''}
|
||||
ulimit -a
|
||||
'';
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import ./generic.nix {
|
||||
major_version = "4";
|
||||
minor_version = "11";
|
||||
patch_version = "0+beta1";
|
||||
sha256 = "1xhkwprbnd3wp6bi3k74f42l1mff1ngn7gl4rgad9dk4ly0yzfdr";
|
||||
patch_version = "0+beta2";
|
||||
sha256 = "1n39qfwvpwlhp9m73zi9hrk9ny9g6spy9apc36n2ydpf5dn7pg75";
|
||||
}
|
||||
|
@ -1,13 +1,27 @@
|
||||
{ stdenv, fetchurl, coq }:
|
||||
{ stdenv, fetchurl, fetchFromGitHub, coq }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20181116";
|
||||
name = "coq${coq.coq-version}-tlc-${version}";
|
||||
let params =
|
||||
if stdenv.lib.versionAtLeast coq.coq-version "8.10"
|
||||
then rec {
|
||||
version = "20200328";
|
||||
src = fetchFromGitHub {
|
||||
owner = "charguer";
|
||||
repo = "tlc";
|
||||
rev = version;
|
||||
sha256 = "16vzild9gni8zhgb3qhmka47f8zagdh03k6nssif7drpim8233lx";
|
||||
};
|
||||
} else rec {
|
||||
version = "20181116";
|
||||
src = fetchurl {
|
||||
url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
|
||||
sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
|
||||
};
|
||||
}
|
||||
; in
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
|
||||
sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
|
||||
};
|
||||
stdenv.mkDerivation {
|
||||
inherit (params) version src;
|
||||
pname = "coq${coq.coq-version}-tlc";
|
||||
|
||||
buildInputs = [ coq ];
|
||||
|
||||
@ -22,6 +36,6 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
passthru = {
|
||||
compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" ];
|
||||
compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
|
||||
};
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user