Project import generated by Copybara.
GitOrigin-RevId: 1c2986bbb806c57f9470bf3231d8da7250ab9091
This commit is contained in:
parent
14a1eeff01
commit
18bad4282a
203 changed files with 3435 additions and 1582 deletions
|
@ -2415,6 +2415,12 @@
|
||||||
githubId = 896182;
|
githubId = 896182;
|
||||||
name = "devhell";
|
name = "devhell";
|
||||||
};
|
};
|
||||||
|
devins2518 = {
|
||||||
|
email = "drsingh2518@icloud.com";
|
||||||
|
github = "devins2518";
|
||||||
|
githubId = 17111639;
|
||||||
|
name = "Devin Singh";
|
||||||
|
};
|
||||||
dezgeg = {
|
dezgeg = {
|
||||||
email = "tuomas.tynkkynen@iki.fi";
|
email = "tuomas.tynkkynen@iki.fi";
|
||||||
github = "dezgeg";
|
github = "dezgeg";
|
||||||
|
@ -4115,6 +4121,12 @@
|
||||||
githubId = 362833;
|
githubId = 362833;
|
||||||
name = "Hongchang Wu";
|
name = "Hongchang Wu";
|
||||||
};
|
};
|
||||||
|
hoppla20 = {
|
||||||
|
email = "privat@vincentcui.de";
|
||||||
|
github = "hoppla20";
|
||||||
|
githubId = 25618740;
|
||||||
|
name = "Vincent Cui";
|
||||||
|
};
|
||||||
hoverbear = {
|
hoverbear = {
|
||||||
email = "operator+nix@hoverbear.org";
|
email = "operator+nix@hoverbear.org";
|
||||||
github = "hoverbear";
|
github = "hoverbear";
|
||||||
|
@ -5172,6 +5184,16 @@
|
||||||
githubId = 37185887;
|
githubId = 37185887;
|
||||||
name = "Calvin Kim";
|
name = "Calvin Kim";
|
||||||
};
|
};
|
||||||
|
kennyballou = {
|
||||||
|
email = "kb@devnulllabs.io";
|
||||||
|
github = "kennyballou";
|
||||||
|
githubId = 2186188;
|
||||||
|
name = "Kenny Ballou";
|
||||||
|
keys = [{
|
||||||
|
longkeyid = "rsa4096/0xB0CAA28A02958308";
|
||||||
|
fingerprint = "932F 3E8E 1C0F 4A98 95D7 B8B8 B0CA A28A 0295 8308";
|
||||||
|
}];
|
||||||
|
};
|
||||||
kentjames = {
|
kentjames = {
|
||||||
email = "jameschristopherkent@gmail.com";
|
email = "jameschristopherkent@gmail.com";
|
||||||
github = "kentjames";
|
github = "kentjames";
|
||||||
|
@ -6258,6 +6280,12 @@
|
||||||
githubId = 11810057;
|
githubId = 11810057;
|
||||||
name = "Matt Snider";
|
name = "Matt Snider";
|
||||||
};
|
};
|
||||||
|
mattchrist = {
|
||||||
|
email = "nixpkgs-matt@christ.systems";
|
||||||
|
github = "mattchrist";
|
||||||
|
githubId = 952712;
|
||||||
|
name = "Matt Christ";
|
||||||
|
};
|
||||||
matthewbauer = {
|
matthewbauer = {
|
||||||
email = "mjbauer95@gmail.com";
|
email = "mjbauer95@gmail.com";
|
||||||
github = "matthewbauer";
|
github = "matthewbauer";
|
||||||
|
@ -8795,6 +8823,12 @@
|
||||||
githubId = 506953;
|
githubId = 506953;
|
||||||
name = "Ruud van Asseldonk";
|
name = "Ruud van Asseldonk";
|
||||||
};
|
};
|
||||||
|
rvarago = {
|
||||||
|
email = "rafael.varago@gmail.com";
|
||||||
|
github = "rvarago";
|
||||||
|
githubId = 7365864;
|
||||||
|
name = "Rafael Varago";
|
||||||
|
};
|
||||||
rvl = {
|
rvl = {
|
||||||
email = "dev+nix@rodney.id.au";
|
email = "dev+nix@rodney.id.au";
|
||||||
github = "rvl";
|
github = "rvl";
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<para>
|
<para>
|
||||||
<emphasis>Stable channels</emphasis>, such as
|
<emphasis>Stable channels</emphasis>, such as
|
||||||
<literal
|
<literal
|
||||||
xlink:href="https://nixos.org/channels/nixos-20.09">nixos-20.09</literal>.
|
xlink:href="https://nixos.org/channels/nixos-21.05">nixos-21.05</literal>.
|
||||||
These only get conservative bug fixes and package upgrades. For instance,
|
These only get conservative bug fixes and package upgrades. For instance,
|
||||||
a channel update may cause the Linux kernel on your system to be upgraded
|
a channel update may cause the Linux kernel on your system to be upgraded
|
||||||
from 4.19.34 to 4.19.38 (a minor bug fix), but not from
|
from 4.19.34 to 4.19.38 (a minor bug fix), but not from
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<para>
|
<para>
|
||||||
<emphasis>Small channels</emphasis>, such as
|
<emphasis>Small channels</emphasis>, such as
|
||||||
<literal
|
<literal
|
||||||
xlink:href="https://nixos.org/channels/nixos-20.09-small">nixos-20.09-small</literal>
|
xlink:href="https://nixos.org/channels/nixos-21.05-small">nixos-21.05-small</literal>
|
||||||
or
|
or
|
||||||
<literal
|
<literal
|
||||||
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
|
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
|
||||||
|
@ -63,8 +63,8 @@
|
||||||
<para>
|
<para>
|
||||||
When you first install NixOS, you’re automatically subscribed to the NixOS
|
When you first install NixOS, you’re automatically subscribed to the NixOS
|
||||||
channel that corresponds to your installation source. For instance, if you
|
channel that corresponds to your installation source. For instance, if you
|
||||||
installed from a 20.09 ISO, you will be subscribed to the
|
installed from a 21.05 ISO, you will be subscribed to the
|
||||||
<literal>nixos-20.09</literal> channel. To see which NixOS channel you’re
|
<literal>nixos-21.05</literal> channel. To see which NixOS channel you’re
|
||||||
subscribed to, run the following as root:
|
subscribed to, run the following as root:
|
||||||
<screen>
|
<screen>
|
||||||
<prompt># </prompt>nix-channel --list | grep nixos
|
<prompt># </prompt>nix-channel --list | grep nixos
|
||||||
|
@ -75,13 +75,13 @@ nixos https://nixos.org/channels/nixos-unstable
|
||||||
<prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
|
<prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
|
||||||
</screen>
|
</screen>
|
||||||
(Be sure to include the <literal>nixos</literal> parameter at the end.) For
|
(Be sure to include the <literal>nixos</literal> parameter at the end.) For
|
||||||
instance, to use the NixOS 20.09 stable channel:
|
instance, to use the NixOS 21.05 stable channel:
|
||||||
<screen>
|
<screen>
|
||||||
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09 nixos
|
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
|
||||||
</screen>
|
</screen>
|
||||||
If you have a server, you may want to use the “small” channel instead:
|
If you have a server, you may want to use the “small” channel instead:
|
||||||
<screen>
|
<screen>
|
||||||
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09-small nixos
|
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
|
||||||
</screen>
|
</screen>
|
||||||
And if you want to live on the bleeding edge:
|
And if you want to live on the bleeding edge:
|
||||||
<screen>
|
<screen>
|
||||||
|
@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable
|
||||||
kernel, initrd or kernel modules.
|
kernel, initrd or kernel modules.
|
||||||
You can also specify a channel explicitly, e.g.
|
You can also specify a channel explicitly, e.g.
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.09;
|
<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-21.05;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -3,8 +3,11 @@
|
||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
version="5.0"
|
version="5.0"
|
||||||
xml:id="sec-release-21.05">
|
xml:id="sec-release-21.05">
|
||||||
<title>Release 21.05 (“Okapi”, 2021.05/??)</title>
|
<title>Release 21.05 (“Okapi”, 2021.05/31)</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Support is planned until the end of December 2021, handing over to 21.11.
|
||||||
|
</para>
|
||||||
<section xmlns="http://docbook.org/ns/docbook"
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
|
@ -18,114 +21,81 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Support is planned until the end of December 2021, handing over to 21.11.
|
Core version changes:
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
<itemizedlist>
|
||||||
<listitem>
|
|
||||||
<para>The default Linux kernel was updated to the 5.10 LTS series, coming from the 5.4 LTS series.</para>
|
|
||||||
<para>The <package>linux_latest</package> kernel was updated to the 5.12 series. It currently is not officially supported for use with the zfs filesystem. If you use zfs, you should use a different kernel version (either the LTS kernel, or track a specific one). </para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>GNOME desktop environment was upgraded to 40, see the release notes for <link xlink:href="https://help.gnome.org/misc/release-notes/40.0/">40.0</link> and <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">3.38</link>. The <code>gnome3</code> attribute set has been renamed to <code>gnome</code> and so have been the NixOS options.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> 3.8 was
|
gcc: 9.3.0 -> 10.3.0
|
||||||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
|
|
||||||
packaged, along with a rewrite to the Nix expressions, allowing users to
|
|
||||||
override the features upstream supports selecting to compile or not to.
|
|
||||||
Additionally, the attribute <code>gnuradio</code> and <code>gnuradio3_7</code>
|
|
||||||
now point to an externally wrapped by default derivations, that allow you to
|
|
||||||
also add `extraPythonPackages` to the Python interpreter used by GNURadio.
|
|
||||||
Missing environmental variables needed for operational GUI were also added
|
|
||||||
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
|
glibc: 2.30 -> 2.32
|
||||||
<code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
|
|
||||||
function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
|
|
||||||
<code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
|
|
||||||
defined with <code>gnuradio.callPackage</code> and some packages that depend
|
|
||||||
on gnuradio are defined with this as well.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.privoxy.org/">Privoxy</link> has been updated
|
default linux: 5.4 -> 5.10, all supported kernels available
|
||||||
to version 3.0.32 (See <link xlink:href="https://lists.privoxy.org/pipermail/privoxy-announce/2021-February/000007.html">announcement</link>).
|
|
||||||
Compared to the previous release, Privoxy has gained support for HTTPS
|
|
||||||
inspection (still experimental), Brotli decompression, several new filters
|
|
||||||
and lots of bug fixes, including security ones. In addition, the package
|
|
||||||
is now built with compression and external filters support, which were
|
|
||||||
previously disabled.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Regarding the NixOS module, new options for HTTPS inspection have been added
|
|
||||||
and <option>services.privoxy.extraConfig</option> has been replaced by the new
|
|
||||||
<xref linkend="opt-services.privoxy.settings"/>
|
|
||||||
(See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
|
|
||||||
for the motivation).
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
mesa: 20.1.7 -> 21.0.1
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Desktop Environments:
|
||||||
|
</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Gnome: 3.36 -> 3.40, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.40/">release notes</link>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Plasma5: 5.18.5 -> 5.21.3
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
kdeApplications: 20.08.1 -> 20.12.3
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
cinnamon: 4.6 -> 4.8.1
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Programming Languages and Frameworks:
|
||||||
|
</para>
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Python optimizations were disabled again. Builds with optimizations enabled
|
Python optimizations were disabled again. Builds with optimizations enabled
|
||||||
are not reproducible. Optimizations can now be enabled with an option.
|
are not reproducible. Optimizations can now be enabled with an option.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
|
||||||
<para>
|
</itemizedlist>
|
||||||
<link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.1 "Matrix". See
|
|
||||||
the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
|
|
||||||
further details.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>The <package>linux_latest</package> kernel was updated to the 5.12 series. It currently is not officially supported for use with the zfs filesystem. If you use zfs, you should use a different kernel version (either the LTS kernel, or track a specific one). </para>
|
||||||
The <option>services.packagekit.backend</option> option has been removed as
|
|
||||||
it only supported a single setting which would always be the default.
|
|
||||||
Instead new <link
|
|
||||||
xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
|
|
||||||
0042</link> compliant <xref linkend="opt-services.packagekit.settings"/>
|
|
||||||
and <xref linkend="opt-services.packagekit.vendorSettings"/> options have
|
|
||||||
been introduced.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<link xlink:href="https://nginx.org">Nginx</link> has been updated to stable version 1.20.0.
|
|
||||||
Now nginx uses the zlib-ng library by default.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
KDE Gear (formerly KDE Applications) is upgraded to 21.04, see its
|
|
||||||
<link xlink:href="https://kde.org/announcements/gear/21.04/">release
|
|
||||||
notes</link> for details.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The <code>kdeApplications</code> package set is now <code>kdeGear</code>,
|
|
||||||
in keeping with the new name. The old name remains for compatibility, but
|
|
||||||
it is deprecated.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<link xlink:href="https://libreswan.org/">Libreswan</link> has been updated
|
|
||||||
to version 4.4. The package now includes example configurations and manual
|
|
||||||
pages by default. The NixOS module has been changed to use the upstream
|
|
||||||
systemd units and write the configuration in the <literal>/etc/ipsec.d/
|
|
||||||
</literal> directory. In addition, two new options have been added to
|
|
||||||
specify connection policies
|
|
||||||
(<xref linkend="opt-services.libreswan.policies"/>)
|
|
||||||
and disable send/receive redirects
|
|
||||||
(<xref linkend="opt-services.libreswan.disableRedirects"/>).
|
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -141,6 +111,20 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> 3.8 was
|
||||||
|
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
|
||||||
|
packaged, along with a rewrite to the Nix expressions, allowing users to
|
||||||
|
override the features upstream supports selecting to compile or not to.
|
||||||
|
Additionally, the attribute <code>gnuradio</code> and <code>gnuradio3_7</code>
|
||||||
|
now point to an externally wrapped by default derivations, that allow you to
|
||||||
|
also add `extraPythonPackages` to the Python interpreter used by GNURadio.
|
||||||
|
Missing environmental variables needed for operational GUI were also added
|
||||||
|
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.keycloak.org/">Keycloak</link>,
|
<link xlink:href="https://www.keycloak.org/">Keycloak</link>,
|
||||||
|
@ -193,6 +177,10 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>GNOME desktop environment was upgraded to 40, see the release notes for <link xlink:href="https://help.gnome.org/misc/release-notes/40.0/">40.0</link> and <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">3.38</link>. The <code>gnome3</code> attribute set has been renamed to <code>gnome</code> and so have been the NixOS options.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
If you are using <option>services.udev.extraRules</option> to assign
|
If you are using <option>services.udev.extraRules</option> to assign
|
||||||
|
@ -804,6 +792,16 @@ environment.systemPackages = [
|
||||||
the deprecated <option>services.radicale.config</option> is used.
|
the deprecated <option>services.radicale.config</option> is used.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In the <option>security.acme</option> module, use of <literal>--reuse-key</literal>
|
||||||
|
parameter for Lego has been removed. It was introduced for HKPK, but this security
|
||||||
|
feature is now deprecated. It is a better security practice to rotate key pairs
|
||||||
|
instead of always keeping the same. If you need to keep this parameter, you can add
|
||||||
|
it back using <literal>extraLegoRenewFlags</literal> as an option for the
|
||||||
|
appropriate certificate.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -823,6 +821,85 @@ environment.systemPackages = [
|
||||||
for details.
|
for details.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
|
||||||
|
<code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
|
||||||
|
function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
|
||||||
|
<code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
|
||||||
|
defined with <code>gnuradio.callPackage</code> and some packages that depend
|
||||||
|
on gnuradio are defined with this as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://www.privoxy.org/">Privoxy</link> has been updated
|
||||||
|
to version 3.0.32 (See <link xlink:href="https://lists.privoxy.org/pipermail/privoxy-announce/2021-February/000007.html">announcement</link>).
|
||||||
|
Compared to the previous release, Privoxy has gained support for HTTPS
|
||||||
|
inspection (still experimental), Brotli decompression, several new filters
|
||||||
|
and lots of bug fixes, including security ones. In addition, the package
|
||||||
|
is now built with compression and external filters support, which were
|
||||||
|
previously disabled.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Regarding the NixOS module, new options for HTTPS inspection have been added
|
||||||
|
and <option>services.privoxy.extraConfig</option> has been replaced by the new
|
||||||
|
<xref linkend="opt-services.privoxy.settings"/>
|
||||||
|
(See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
|
||||||
|
for the motivation).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.1 "Matrix". See
|
||||||
|
the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
|
||||||
|
further details.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <option>services.packagekit.backend</option> option has been removed as
|
||||||
|
it only supported a single setting which would always be the default.
|
||||||
|
Instead new <link
|
||||||
|
xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
|
||||||
|
0042</link> compliant <xref linkend="opt-services.packagekit.settings"/>
|
||||||
|
and <xref linkend="opt-services.packagekit.vendorSettings"/> options have
|
||||||
|
been introduced.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://nginx.org">Nginx</link> has been updated to stable version 1.20.0.
|
||||||
|
Now nginx uses the zlib-ng library by default.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
KDE Gear (formerly KDE Applications) is upgraded to 21.04, see its
|
||||||
|
<link xlink:href="https://kde.org/announcements/gear/21.04/">release
|
||||||
|
notes</link> for details.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The <code>kdeApplications</code> package set is now <code>kdeGear</code>,
|
||||||
|
in keeping with the new name. The old name remains for compatibility, but
|
||||||
|
it is deprecated.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://libreswan.org/">Libreswan</link> has been updated
|
||||||
|
to version 4.4. The package now includes example configurations and manual
|
||||||
|
pages by default. The NixOS module has been changed to use the upstream
|
||||||
|
systemd units and write the configuration in the <literal>/etc/ipsec.d/
|
||||||
|
</literal> directory. In addition, two new options have been added to
|
||||||
|
specify connection policies
|
||||||
|
(<xref linkend="opt-services.libreswan.policies"/>)
|
||||||
|
and disable send/receive redirects
|
||||||
|
(<xref linkend="opt-services.libreswan.disableRedirects"/>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The Mailman NixOS module (<literal>services.mailman</literal>) has a new
|
The Mailman NixOS module (<literal>services.mailman</literal>) has a new
|
||||||
|
@ -984,7 +1061,8 @@ environment.systemPackages = [
|
||||||
PulseAudio was upgraded to 14.0, with changes to the handling of default sinks.
|
PulseAudio was upgraded to 14.0, with changes to the handling of default sinks.
|
||||||
See its <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/">release notes</link>.
|
See its <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/">release notes</link>.
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
GNOME users may wish to delete their <literal>~/.config/pulse</literal> due to the changes to stream routing
|
GNOME users may wish to delete their <literal>~/.config/pulse</literal> due to the changes to stream routing
|
||||||
logic. See <link xlink:href="https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832">PulseAudio bug 832</link>
|
logic. See <link xlink:href="https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832">PulseAudio bug 832</link>
|
||||||
|
|
|
@ -74,11 +74,9 @@ pkgs.stdenv.mkDerivation {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Resizing to minimum allowed size"
|
# We may want to shrink the file system and resize the image to
|
||||||
resize2fs -M $img
|
# get rid of the unnecessary slack here--but see
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/125121 for caveats.
|
||||||
# And a final fsck, because of the previous truncating.
|
|
||||||
fsck.ext4 -n -f $img
|
|
||||||
|
|
||||||
if [ ${builtins.toString compressImage} ]; then
|
if [ ${builtins.toString compressImage} ]; then
|
||||||
echo "Compressing image"
|
echo "Compressing image"
|
||||||
|
|
|
@ -128,18 +128,18 @@ def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any]
|
||||||
return (vlan_nr, vde_socket, vde_process, fd)
|
return (vlan_nr, vde_socket, vde_process, fd)
|
||||||
|
|
||||||
|
|
||||||
def retry(fn: Callable) -> None:
|
def retry(fn: Callable, timeout: int = 900) -> None:
|
||||||
"""Call the given function repeatedly, with 1 second intervals,
|
"""Call the given function repeatedly, with 1 second intervals,
|
||||||
until it returns True or a timeout is reached.
|
until it returns True or a timeout is reached.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
for _ in range(900):
|
for _ in range(timeout):
|
||||||
if fn(False):
|
if fn(False):
|
||||||
return
|
return
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
if not fn(True):
|
if not fn(True):
|
||||||
raise Exception("action timed out")
|
raise Exception(f"action timed out after {timeout} seconds")
|
||||||
|
|
||||||
|
|
||||||
class Logger:
|
class Logger:
|
||||||
|
|
|
@ -398,6 +398,7 @@
|
||||||
./services/hardware/ratbagd.nix
|
./services/hardware/ratbagd.nix
|
||||||
./services/hardware/sane.nix
|
./services/hardware/sane.nix
|
||||||
./services/hardware/sane_extra_backends/brscan4.nix
|
./services/hardware/sane_extra_backends/brscan4.nix
|
||||||
|
./services/hardware/sane_extra_backends/brscan5.nix
|
||||||
./services/hardware/sane_extra_backends/dsseries.nix
|
./services/hardware/sane_extra_backends/dsseries.nix
|
||||||
./services/hardware/spacenavd.nix
|
./services/hardware/spacenavd.nix
|
||||||
./services/hardware/tcsd.nix
|
./services/hardware/tcsd.nix
|
||||||
|
@ -547,6 +548,7 @@
|
||||||
./services/misc/ripple-data-api.nix
|
./services/misc/ripple-data-api.nix
|
||||||
./services/misc/serviio.nix
|
./services/misc/serviio.nix
|
||||||
./services/misc/safeeyes.nix
|
./services/misc/safeeyes.nix
|
||||||
|
./services/misc/sdrplay.nix
|
||||||
./services/misc/sickbeard.nix
|
./services/misc/sickbeard.nix
|
||||||
./services/misc/siproxd.nix
|
./services/misc/siproxd.nix
|
||||||
./services/misc/snapper.nix
|
./services/misc/snapper.nix
|
||||||
|
@ -1112,6 +1114,7 @@
|
||||||
./virtualisation/openvswitch.nix
|
./virtualisation/openvswitch.nix
|
||||||
./virtualisation/parallels-guest.nix
|
./virtualisation/parallels-guest.nix
|
||||||
./virtualisation/podman.nix
|
./virtualisation/podman.nix
|
||||||
|
./virtualisation/podman-network-socket-ghostunnel.nix
|
||||||
./virtualisation/qemu-guest-agent.nix
|
./virtualisation/qemu-guest-agent.nix
|
||||||
./virtualisation/railcar.nix
|
./virtualisation/railcar.nix
|
||||||
./virtualisation/spice-usb-redirection.nix
|
./virtualisation/spice-usb-redirection.nix
|
||||||
|
|
|
@ -152,7 +152,7 @@ let
|
||||||
);
|
);
|
||||||
renewOpts = escapeShellArgs (
|
renewOpts = escapeShellArgs (
|
||||||
commonOpts
|
commonOpts
|
||||||
++ [ "renew" "--reuse-key" ]
|
++ [ "renew" ]
|
||||||
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
||||||
++ data.extraLegoRenewFlags
|
++ data.extraLegoRenewFlags
|
||||||
);
|
);
|
||||||
|
|
|
@ -238,8 +238,7 @@ in
|
||||||
in
|
in
|
||||||
optionalString (cfg.privateSshKeyPath != null) ''
|
optionalString (cfg.privateSshKeyPath != null) ''
|
||||||
mkdir -m 0700 -p "${sshDir}"
|
mkdir -m 0700 -p "${sshDir}"
|
||||||
cp -f "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
||||||
chmod 600 "${sshDir}"/id_rsa
|
|
||||||
'' + ''
|
'' + ''
|
||||||
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
|
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
|
||||||
token="$(cat ${toString cfg.tokenPath})"
|
token="$(cat ${toString cfg.tokenPath})"
|
||||||
|
|
110
third_party/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
vendored
Normal file
110
third_party/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
vendored
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.hardware.sane.brscan5;
|
||||||
|
|
||||||
|
netDeviceList = attrValues cfg.netDevices;
|
||||||
|
|
||||||
|
etcFiles = pkgs.callPackage ./brscan5_etc_files.nix { netDevices = netDeviceList; };
|
||||||
|
|
||||||
|
netDeviceOpts = { name, ... }: {
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The friendly name you give to the network device. If undefined,
|
||||||
|
the name of attribute will be used.
|
||||||
|
'';
|
||||||
|
|
||||||
|
example = literalExample "office1";
|
||||||
|
};
|
||||||
|
|
||||||
|
model = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The model of the network device.
|
||||||
|
'';
|
||||||
|
|
||||||
|
example = literalExample "ADS-1200";
|
||||||
|
};
|
||||||
|
|
||||||
|
ip = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
The ip address of the device. If undefined, you will have to
|
||||||
|
provide a nodename.
|
||||||
|
'';
|
||||||
|
|
||||||
|
example = literalExample "192.168.1.2";
|
||||||
|
};
|
||||||
|
|
||||||
|
nodename = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
The node name of the device. If undefined, you will have to
|
||||||
|
provide an ip.
|
||||||
|
'';
|
||||||
|
|
||||||
|
example = literalExample "BRW0080927AFBCE";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config =
|
||||||
|
{ name = mkDefault name;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
hardware.sane.brscan5.enable =
|
||||||
|
mkEnableOption "the Brother brscan5 sane backend";
|
||||||
|
|
||||||
|
hardware.sane.brscan5.netDevices = mkOption {
|
||||||
|
default = {};
|
||||||
|
example =
|
||||||
|
{ office1 = { model = "MFC-7860DW"; ip = "192.168.1.2"; };
|
||||||
|
office2 = { model = "MFC-7860DW"; nodename = "BRW0080927AFBCE"; };
|
||||||
|
};
|
||||||
|
type = with types; attrsOf (submodule netDeviceOpts);
|
||||||
|
description = ''
|
||||||
|
The list of network devices that will be registered against the brscan5
|
||||||
|
sane backend.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (config.hardware.sane.enable && cfg.enable) {
|
||||||
|
|
||||||
|
hardware.sane.extraBackends = [
|
||||||
|
pkgs.brscan5
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."opt/brother/scanner/brscan5" =
|
||||||
|
{ source = "${etcFiles}/etc/opt/brother/scanner/brscan5"; };
|
||||||
|
environment.etc."opt/brother/scanner/models" =
|
||||||
|
{ source = "${etcFiles}/etc/opt/brother/scanner/brscan5/models"; };
|
||||||
|
environment.etc."sane.d/dll.d/brother5.conf".source = "${pkgs.brscan5}/etc/sane.d/dll.d/brother.conf";
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{ assertion = all (x: !(null != x.ip && null != x.nodename)) netDeviceList;
|
||||||
|
message = ''
|
||||||
|
When describing a network device as part of the attribute list
|
||||||
|
`hardware.sane.brscan5.netDevices`, only one of its `ip` or `nodename`
|
||||||
|
attribute should be specified, not both!
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
77
third_party/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix
vendored
Normal file
77
third_party/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix
vendored
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{ stdenv, lib, brscan5, netDevices ? [] }:
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
From nixpkgs repo
|
||||||
|
|
||||||
|
No net devices:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
nix-build -E 'let pkgs = import ./. {};
|
||||||
|
brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {};
|
||||||
|
in brscan5-etc-files'
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Two net devices:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
nix-build -E 'let pkgs = import ./. {};
|
||||||
|
brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {};
|
||||||
|
in brscan5-etc-files.override {
|
||||||
|
netDevices = [
|
||||||
|
{name="a"; model="ADS-1200"; nodename="BRW0080927AFBCE";}
|
||||||
|
{name="b"; model="ADS-1200"; ip="192.168.1.2";}
|
||||||
|
];
|
||||||
|
}'
|
||||||
|
~~~
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
addNetDev = nd: ''
|
||||||
|
brsaneconfig5 -a \
|
||||||
|
name="${nd.name}" \
|
||||||
|
model="${nd.model}" \
|
||||||
|
${if (lib.hasAttr "nodename" nd && nd.nodename != null) then
|
||||||
|
''nodename="${nd.nodename}"'' else
|
||||||
|
''ip="${nd.ip}"''}'';
|
||||||
|
addAllNetDev = xs: lib.concatStringsSep "\n" (map addNetDev xs);
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "brscan5-etc-files";
|
||||||
|
version = "1.2.6-0";
|
||||||
|
src = "${brscan5}/opt/brother/scanner/brscan5";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ brscan5 ];
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
TARGET_DIR="$out/etc/opt/brother/scanner/brscan5"
|
||||||
|
mkdir -p "$TARGET_DIR"
|
||||||
|
cp -rp "./models" "$TARGET_DIR"
|
||||||
|
cp -rp "./brscan5.ini" "$TARGET_DIR"
|
||||||
|
cp -rp "./brsanenetdevice.cfg" "$TARGET_DIR"
|
||||||
|
|
||||||
|
export NIX_REDIRECTS="/etc/opt/brother/scanner/brscan5/=$TARGET_DIR/"
|
||||||
|
|
||||||
|
printf '${addAllNetDev netDevices}\n'
|
||||||
|
|
||||||
|
${addAllNetDev netDevices}
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontInstall = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Brother brscan5 sane backend driver etc files";
|
||||||
|
homepage = "https://www.brother.com";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.unfree;
|
||||||
|
maintainers = with maintainers; [ mattchrist ];
|
||||||
|
};
|
||||||
|
}
|
35
third_party/nixpkgs/nixos/modules/services/misc/sdrplay.nix
vendored
Normal file
35
third_party/nixpkgs/nixos/modules/services/misc/sdrplay.nix
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.services.sdrplayApi = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable the SDRplay API service and udev rules.
|
||||||
|
|
||||||
|
<note><para>
|
||||||
|
To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
|
||||||
|
<literal>soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };</literal>
|
||||||
|
</para></note>
|
||||||
|
'';
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.services.sdrplayApi.enable {
|
||||||
|
systemd.services.sdrplayApi = {
|
||||||
|
description = "SDRplay API Service";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.sdrplay}/bin/sdrplay_apiService";
|
||||||
|
DynamicUser = true;
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "1s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.udev.packages = [ pkgs.sdrplay ];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -9,7 +9,7 @@ let
|
||||||
|
|
||||||
# Disable automatically generating desktop icon
|
# Disable automatically generating desktop icon
|
||||||
noDesktopIcon=true
|
noDesktopIcon=true
|
||||||
noBackup=${cfg.noBackup}
|
noBackup=${lib.boolToString cfg.noBackup}
|
||||||
|
|
||||||
[Network]
|
[Network]
|
||||||
# host setting is relevant only for web deployments - set the host on which the server will listen
|
# host setting is relevant only for web deployments - set the host on which the server will listen
|
||||||
|
|
|
@ -61,8 +61,10 @@ let
|
||||||
?>
|
?>
|
||||||
'';
|
'';
|
||||||
|
|
||||||
secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
|
secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
|
||||||
secretsScript = hostStateDir: ''
|
secretsScript = hostStateDir: ''
|
||||||
|
# The match in this line is not a typo, see https://github.com/NixOS/nixpkgs/pull/124839
|
||||||
|
grep -q "LOOGGED_IN_KEY" "${hostStateDir}/secret-keys.php" && rm "${hostStateDir}/secret-keys.php"
|
||||||
if ! test -e "${hostStateDir}/secret-keys.php"; then
|
if ! test -e "${hostStateDir}/secret-keys.php"; then
|
||||||
umask 0177
|
umask 0177
|
||||||
echo "<?php" >> "${hostStateDir}/secret-keys.php"
|
echo "<?php" >> "${hostStateDir}/secret-keys.php"
|
||||||
|
|
|
@ -160,7 +160,7 @@ in {
|
||||||
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
|
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
|
||||||
"allow ${e}") cfg.allowedBridges;
|
"allow ${e}") cfg.allowedBridges;
|
||||||
systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemuPackage ];
|
systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemuPackage ];
|
||||||
etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
|
etc.ethertypes.source = "${pkgs.ebtables}/etc/ethertypes";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelModules = [ "tun" ];
|
boot.kernelModules = [ "tun" ];
|
||||||
|
|
34
third_party/nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix
vendored
Normal file
34
third_party/nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{ config, lib, pkg, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
mkOption
|
||||||
|
types
|
||||||
|
;
|
||||||
|
|
||||||
|
cfg = config.virtualisation.podman.networkSocket;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.virtualisation.podman.networkSocket = {
|
||||||
|
server = mkOption {
|
||||||
|
type = types.enum [ "ghostunnel" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf (cfg.enable && cfg.server == "ghostunnel") {
|
||||||
|
|
||||||
|
services.ghostunnel = {
|
||||||
|
enable = true;
|
||||||
|
servers."podman-socket" = {
|
||||||
|
inherit (cfg.tls) cert key cacert;
|
||||||
|
listen = "${cfg.listenAddress}:${toString cfg.port}";
|
||||||
|
target = "unix:/run/podman/podman.sock";
|
||||||
|
allowAll = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.ghostunnel-server-podman-socket.serviceConfig.SupplementaryGroups = ["podman"];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
|
||||||
|
}
|
91
third_party/nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix
vendored
Normal file
91
third_party/nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix
vendored
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{ config, lib, pkg, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
mkOption
|
||||||
|
types
|
||||||
|
;
|
||||||
|
|
||||||
|
cfg = config.virtualisation.podman.networkSocket;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.virtualisation.podman.networkSocket = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Make the Podman and Docker compatibility API available over the network
|
||||||
|
with TLS client certificate authentication.
|
||||||
|
|
||||||
|
This allows Docker clients to connect with the equivalents of the Docker
|
||||||
|
CLI <code>-H</code> and <code>--tls*</code> family of options.
|
||||||
|
|
||||||
|
For certificate setup, see https://docs.docker.com/engine/security/protect-access/
|
||||||
|
|
||||||
|
This option is independent of <xref linkend="opt-virtualisation.podman.dockerSocket.enable"/>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
server = mkOption {
|
||||||
|
type = types.enum [];
|
||||||
|
description = ''
|
||||||
|
Choice of TLS proxy server.
|
||||||
|
'';
|
||||||
|
example = "ghostunnel";
|
||||||
|
};
|
||||||
|
|
||||||
|
openFirewall = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to open the port in the firewall.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tls.cacert = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = ''
|
||||||
|
Path to CA certificate to use for client authentication.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tls.cert = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = ''
|
||||||
|
Path to certificate describing the server.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tls.key = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = ''
|
||||||
|
Path to the private key corresponding to the server certificate.
|
||||||
|
|
||||||
|
Use a string for this setting. Otherwise it will be copied to the Nix
|
||||||
|
store first, where it is readable by any system process.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.port;
|
||||||
|
default = 2376;
|
||||||
|
description = ''
|
||||||
|
TCP port number for receiving TLS connections.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
listenAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "0.0.0.0";
|
||||||
|
description = ''
|
||||||
|
Interface address for receiving TLS connections.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
networking.firewall.allowedTCPPorts =
|
||||||
|
lib.optional (cfg.enable && cfg.openFirewall) cfg.port;
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, utils, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.virtualisation.podman;
|
cfg = config.virtualisation.podman;
|
||||||
toml = pkgs.formats.toml { };
|
toml = pkgs.formats.toml { };
|
||||||
|
@ -25,6 +25,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./podman-network-socket.nix
|
||||||
(lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
|
(lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -46,6 +47,20 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dockerSocket.enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Make the Podman socket available in place of the Docker socket, so
|
||||||
|
Docker tools can find the Podman socket.
|
||||||
|
|
||||||
|
Podman implements the Docker API.
|
||||||
|
|
||||||
|
Users must be in the <code>podman</code> group in order to connect. As
|
||||||
|
with Docker, members of this group can gain root access.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
dockerCompat = mkOption {
|
dockerCompat = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
|
@ -92,7 +107,7 @@ in
|
||||||
environment.systemPackages = [ cfg.package ]
|
environment.systemPackages = [ cfg.package ]
|
||||||
++ lib.optional cfg.dockerCompat dockerCompat;
|
++ lib.optional cfg.dockerCompat dockerCompat;
|
||||||
|
|
||||||
environment.etc."cni/net.d/87-podman-bridge.conflist".source = utils.copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
|
environment.etc."cni/net.d/87-podman-bridge.conflist".source = "${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist";
|
||||||
|
|
||||||
virtualisation.containers = {
|
virtualisation.containers = {
|
||||||
enable = true; # Enable common /etc/containers configuration
|
enable = true; # Enable common /etc/containers configuration
|
||||||
|
@ -111,14 +126,36 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
|
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
|
||||||
|
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
|
||||||
|
|
||||||
systemd.tmpfiles.packages = [ cfg.package ];
|
systemd.tmpfiles.packages = [
|
||||||
|
# The /run/podman rule interferes with our podman group, so we remove
|
||||||
|
# it and let the systemd socket logic take care of it.
|
||||||
|
(pkgs.runCommand "podman-tmpfiles-nixos" { package = cfg.package; } ''
|
||||||
|
mkdir -p $out/lib/tmpfiles.d/
|
||||||
|
grep -v 'D! /run/podman 0700 root root' \
|
||||||
|
<$package/lib/tmpfiles.d/podman.conf \
|
||||||
|
>$out/lib/tmpfiles.d/podman.conf
|
||||||
|
'') ];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules =
|
||||||
|
lib.optionals cfg.dockerSocket.enable [
|
||||||
|
"L! /run/docker.sock - - - - /run/podman/podman.sock"
|
||||||
|
];
|
||||||
|
|
||||||
|
users.groups.podman = {};
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
|
assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
|
||||||
message = "Option dockerCompat conflicts with docker";
|
message = "Option dockerCompat conflicts with docker";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
assertion = cfg.dockerSocket.enable -> !config.virtualisation.docker.enable;
|
||||||
|
message = ''
|
||||||
|
The options virtualisation.podman.dockerSocket.enable and virtualisation.docker.enable conflict, because only one can serve the socket.
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -335,6 +335,7 @@ in
|
||||||
plotinus = handleTest ./plotinus.nix {};
|
plotinus = handleTest ./plotinus.nix {};
|
||||||
podgrab = handleTest ./podgrab.nix {};
|
podgrab = handleTest ./podgrab.nix {};
|
||||||
podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
|
podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
|
||||||
|
podman-tls-ghostunnel = handleTestOn ["x86_64-linux"] ./podman-tls-ghostunnel.nix {};
|
||||||
pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
|
pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
|
||||||
postfix = handleTest ./postfix.nix {};
|
postfix = handleTest ./postfix.nix {};
|
||||||
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
|
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
|
||||||
|
|
42
third_party/nixpkgs/nixos/tests/brscan5.nix
vendored
Normal file
42
third_party/nixpkgs/nixos/tests/brscan5.nix
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
# integration tests for brscan5 sane driver
|
||||||
|
#
|
||||||
|
|
||||||
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
|
name = "brscan5";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ mattchrist ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine = { pkgs, ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
hardware.sane = {
|
||||||
|
enable = true;
|
||||||
|
brscan5 = {
|
||||||
|
enable = true;
|
||||||
|
netDevices = {
|
||||||
|
"a" = { model="ADS-1200"; nodename="BRW0080927AFBCE"; };
|
||||||
|
"b" = { model="ADS-1200"; ip="192.168.1.2"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
# sane loads libsane-brother5.so.1 successfully, and scanimage doesn't die
|
||||||
|
strace = machine.succeed('strace scanimage -L 2>&1').split("\n")
|
||||||
|
regexp = 'openat\(.*libsane-brother5.so.1", O_RDONLY|O_CLOEXEC\) = \d\d*$'
|
||||||
|
assert len([x for x in strace if re.match(regexp,x)]) > 0
|
||||||
|
|
||||||
|
# module creates a config
|
||||||
|
cfg = machine.succeed('cat /etc/opt/brother/scanner/brscan5/brsanenetdevice.cfg')
|
||||||
|
assert 'DEVICE=a , "ADS-1200" , 0x4f9:0x459 , NODENAME=BRW0080927AFBCE' in cfg
|
||||||
|
assert 'DEVICE=b , "ADS-1200" , 0x4f9:0x459 , IP-ADDRESS=192.168.1.2' in cfg
|
||||||
|
|
||||||
|
# scanimage lists the two network scanners
|
||||||
|
scanimage = machine.succeed("scanimage -L")
|
||||||
|
print(scanimage)
|
||||||
|
assert """device `brother5:net1;dev0' is a Brother b ADS-1200""" in scanimage
|
||||||
|
assert """device `brother5:net1;dev1' is a Brother a ADS-1200""" in scanimage
|
||||||
|
'';
|
||||||
|
})
|
150
third_party/nixpkgs/nixos/tests/podman-tls-ghostunnel.nix
vendored
Normal file
150
third_party/nixpkgs/nixos/tests/podman-tls-ghostunnel.nix
vendored
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
This test runs podman as a backend for the Docker CLI.
|
||||||
|
*/
|
||||||
|
import ./make-test-python.nix (
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let gen-ca = pkgs.writeScript "gen-ca" ''
|
||||||
|
# Create CA
|
||||||
|
PATH="${pkgs.openssl}/bin:$PATH"
|
||||||
|
openssl genrsa -out ca-key.pem 4096
|
||||||
|
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca.pem
|
||||||
|
|
||||||
|
# Create service
|
||||||
|
openssl genrsa -out podman-key.pem 4096
|
||||||
|
openssl req -subj '/CN=podman' -sha256 -new -key podman-key.pem -out service.csr
|
||||||
|
echo subjectAltName = DNS:podman,IP:127.0.0.1 >> extfile.cnf
|
||||||
|
echo extendedKeyUsage = serverAuth >> extfile.cnf
|
||||||
|
openssl x509 -req -days 365 -sha256 -in service.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out podman-cert.pem -extfile extfile.cnf
|
||||||
|
|
||||||
|
# Create client
|
||||||
|
openssl genrsa -out client-key.pem 4096
|
||||||
|
openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr
|
||||||
|
echo extendedKeyUsage = clientAuth > extfile-client.cnf
|
||||||
|
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile-client.cnf
|
||||||
|
|
||||||
|
# Create CA 2
|
||||||
|
PATH="${pkgs.openssl}/bin:$PATH"
|
||||||
|
openssl genrsa -out ca-2-key.pem 4096
|
||||||
|
openssl req -new -x509 -days 365 -key ca-2-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca-2.pem
|
||||||
|
|
||||||
|
# Create client signed by CA 2
|
||||||
|
openssl genrsa -out client-2-key.pem 4096
|
||||||
|
openssl req -subj '/CN=client' -new -key client-2-key.pem -out client-2.csr
|
||||||
|
echo extendedKeyUsage = clientAuth > extfile-client.cnf
|
||||||
|
openssl x509 -req -days 365 -sha256 -in client-2.csr -CA ca-2.pem -CAkey ca-2-key.pem -CAcreateserial -out client-2-cert.pem -extfile extfile-client.cnf
|
||||||
|
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "podman-tls-ghostunnel";
|
||||||
|
meta = {
|
||||||
|
maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
podman =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
virtualisation.podman.enable = true;
|
||||||
|
virtualisation.podman.dockerSocket.enable = true;
|
||||||
|
virtualisation.podman.networkSocket = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
server = "ghostunnel";
|
||||||
|
tls.cert = "/root/podman-cert.pem";
|
||||||
|
tls.key = "/root/podman-key.pem";
|
||||||
|
tls.cacert = "/root/ca.pem";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.docker-client
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.alice = {
|
||||||
|
isNormalUser = true;
|
||||||
|
home = "/home/alice";
|
||||||
|
description = "Alice Foobar";
|
||||||
|
extraGroups = ["podman"];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
client = { ... }: {
|
||||||
|
environment.systemPackages = [
|
||||||
|
# Installs the docker _client_ only
|
||||||
|
# Normally, you'd want `virtualisation.docker.enable = true;`.
|
||||||
|
pkgs.docker-client
|
||||||
|
];
|
||||||
|
environment.variables.DOCKER_HOST = "podman:2376";
|
||||||
|
environment.variables.DOCKER_TLS_VERIFY = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
import shlex
|
||||||
|
|
||||||
|
|
||||||
|
def su_cmd(user, cmd):
|
||||||
|
cmd = shlex.quote(cmd)
|
||||||
|
return f"su {user} -l -c {cmd}"
|
||||||
|
|
||||||
|
def cmd(command):
|
||||||
|
print(f"+{command}")
|
||||||
|
r = os.system(command)
|
||||||
|
if r != 0:
|
||||||
|
raise Exception(f"Command {command} failed with exit code {r}")
|
||||||
|
|
||||||
|
start_all()
|
||||||
|
cmd("${gen-ca}")
|
||||||
|
|
||||||
|
podman.copy_from_host("ca.pem", "/root/ca.pem")
|
||||||
|
podman.copy_from_host("podman-cert.pem", "/root/podman-cert.pem")
|
||||||
|
podman.copy_from_host("podman-key.pem", "/root/podman-key.pem")
|
||||||
|
|
||||||
|
client.copy_from_host("ca.pem", "/root/.docker/ca.pem")
|
||||||
|
# client.copy_from_host("podman-cert.pem", "/root/podman-cert.pem")
|
||||||
|
client.copy_from_host("client-cert.pem", "/root/.docker/cert.pem")
|
||||||
|
client.copy_from_host("client-key.pem", "/root/.docker/key.pem")
|
||||||
|
|
||||||
|
# TODO (ghostunnel): add file watchers so the restart isn't necessary
|
||||||
|
podman.succeed("systemctl reset-failed && systemctl restart ghostunnel-server-podman-socket.service")
|
||||||
|
|
||||||
|
podman.wait_for_unit("sockets.target")
|
||||||
|
podman.wait_for_unit("ghostunnel-server-podman-socket.service")
|
||||||
|
|
||||||
|
with subtest("Create default network"):
|
||||||
|
podman.succeed("docker network create default")
|
||||||
|
|
||||||
|
with subtest("Root docker cli also works"):
|
||||||
|
podman.succeed("docker version")
|
||||||
|
|
||||||
|
with subtest("A podman member can also still use the docker cli"):
|
||||||
|
podman.succeed(su_cmd("alice", "docker version"))
|
||||||
|
|
||||||
|
with subtest("Run container remotely via docker cli"):
|
||||||
|
client.succeed("docker version")
|
||||||
|
|
||||||
|
# via socket would be nicer
|
||||||
|
podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
|
||||||
|
|
||||||
|
client.succeed(
|
||||||
|
"docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
|
||||||
|
)
|
||||||
|
client.succeed("docker ps | grep sleeping")
|
||||||
|
podman.succeed("docker ps | grep sleeping")
|
||||||
|
client.succeed("docker stop sleeping")
|
||||||
|
client.succeed("docker rm sleeping")
|
||||||
|
|
||||||
|
with subtest("Clients without cert will be denied"):
|
||||||
|
client.succeed("rm /root/.docker/{cert,key}.pem")
|
||||||
|
client.fail("docker version")
|
||||||
|
|
||||||
|
with subtest("Clients with wrong cert will be denied"):
|
||||||
|
client.copy_from_host("client-2-cert.pem", "/root/.docker/cert.pem")
|
||||||
|
client.copy_from_host("client-2-key.pem", "/root/.docker/key.pem")
|
||||||
|
client.fail("docker version")
|
||||||
|
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
38
third_party/nixpkgs/nixos/tests/podman.nix
vendored
38
third_party/nixpkgs/nixos/tests/podman.nix
vendored
|
@ -13,10 +13,23 @@ import ./make-test-python.nix (
|
||||||
{
|
{
|
||||||
virtualisation.podman.enable = true;
|
virtualisation.podman.enable = true;
|
||||||
|
|
||||||
|
# To test docker socket support
|
||||||
|
virtualisation.podman.dockerSocket.enable = true;
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.docker-client
|
||||||
|
];
|
||||||
|
|
||||||
users.users.alice = {
|
users.users.alice = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
home = "/home/alice";
|
home = "/home/alice";
|
||||||
description = "Alice Foobar";
|
description = "Alice Foobar";
|
||||||
|
extraGroups = [ "podman" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.mallory = {
|
||||||
|
isNormalUser = true;
|
||||||
|
home = "/home/mallory";
|
||||||
|
description = "Mallory Foobar";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -26,9 +39,9 @@ import ./make-test-python.nix (
|
||||||
import shlex
|
import shlex
|
||||||
|
|
||||||
|
|
||||||
def su_cmd(cmd):
|
def su_cmd(cmd, user = "alice"):
|
||||||
cmd = shlex.quote(cmd)
|
cmd = shlex.quote(cmd)
|
||||||
return f"su alice -l -c {cmd}"
|
return f"su {user} -l -c {cmd}"
|
||||||
|
|
||||||
|
|
||||||
podman.wait_for_unit("sockets.target")
|
podman.wait_for_unit("sockets.target")
|
||||||
|
@ -105,6 +118,27 @@ import ./make-test-python.nix (
|
||||||
assert pid == "1"
|
assert pid == "1"
|
||||||
pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
|
pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
|
||||||
assert pid == "2"
|
assert pid == "2"
|
||||||
|
|
||||||
|
with subtest("A podman member can use the docker cli"):
|
||||||
|
podman.succeed(su_cmd("docker version"))
|
||||||
|
|
||||||
|
with subtest("Run container via docker cli"):
|
||||||
|
podman.succeed("docker network create default")
|
||||||
|
podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
|
||||||
|
podman.succeed(
|
||||||
|
"docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
|
||||||
|
)
|
||||||
|
podman.succeed("docker ps | grep sleeping")
|
||||||
|
podman.succeed("podman ps | grep sleeping")
|
||||||
|
podman.succeed("docker stop sleeping")
|
||||||
|
podman.succeed("docker rm sleeping")
|
||||||
|
podman.succeed("docker network rm default")
|
||||||
|
|
||||||
|
with subtest("A podman non-member can not use the docker cli"):
|
||||||
|
podman.fail(su_cmd("docker version", user="mallory"))
|
||||||
|
|
||||||
|
# TODO: add docker-compose test
|
||||||
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -27,16 +27,16 @@ let
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
inherit pname;
|
inherit pname;
|
||||||
version = if isStereo
|
version = if isStereo
|
||||||
then "2.76" # stereo
|
then "2.77" # stereo
|
||||||
else "2.75"; # normal
|
else "2.76"; # normal
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
|
url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
|
||||||
sha256 = if isStereo
|
sha256 = if isStereo
|
||||||
then "12cz3780x5k047jqdv69n6rjgbfiwv67z850kfl4i37lxja432l7" # stereo
|
then "1hiig2d152sv9kazwz33i56x1c54h5sh21ipkqnp6qlnwj8x1ksy" # stereo
|
||||||
else "1km97nl7qvk6qc5l5j69wncbm76hf86j47sgzgr968423g0bxxlk"; # normal
|
else "0d7a3han4jw4bwiba3j87racswaajgl3pj4sb5lawdqdxicv3dn1"; # normal
|
||||||
};
|
};
|
||||||
sourceRoot = (if isStereo then "gt2stereo/trunk" else "goattrk2") + "/src";
|
sourceRoot = "src";
|
||||||
|
|
||||||
nativeBuildInputs = [ copyDesktopItems unzip imagemagick ];
|
nativeBuildInputs = [ copyDesktopItems unzip imagemagick ];
|
||||||
buildInputs = [ SDL ];
|
buildInputs = [ SDL ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "GxPlugins.lv2";
|
pname = "GxPlugins.lv2";
|
||||||
version = "0.8";
|
version = "0.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "brummer10";
|
owner = "brummer10";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
|
sha256 = "02fksl8wr443ygwgcd1c2zab8kp67a6ps12k71ysqx7szv4zq877";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://github.com/brummer10/GxPlugins.lv2";
|
homepage = "https://github.com/brummer10/GxPlugins.lv2";
|
||||||
description = "A set of extra lv2 plugins from the guitarix project";
|
description = "A set of extra lv2 plugins from the guitarix project";
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3Plus;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +1,31 @@
|
||||||
{ lib, stdenv, fetchurl, unzip, lv2 }:
|
{ lib, stdenv, fetchFromGitHub, lv2 }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "molot-lite";
|
pname = "molot-lite";
|
||||||
version = "unstable-2014-04-23";
|
version = "1.0.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
# fetchzip does not accept urls that do not end with .zip.
|
owner = "magnetophon";
|
||||||
url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
|
repo = pname;
|
||||||
sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
|
rev = version;
|
||||||
|
sha256 = "0xbvicfk1rgp01nlg6hlym9bnygry0nrbv88mv7w6hnacvl63ba4";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
|
||||||
buildInputs = [ lv2 ];
|
buildInputs = [ lv2 ];
|
||||||
|
|
||||||
unpackPhase = ''
|
makeFlags = [ "INSTALL_DIR=$out/lib/lv2" ];
|
||||||
unzip $src
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
make -C Molot_Mono_Lite
|
|
||||||
make -C Molot_Stereo_Lite
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
|
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
|
||||||
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
|
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
|
description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
|
||||||
homepage = "https://sourceforge.net/projects/molot/";
|
homepage = "https://github.com/magnetophon/molot-lite";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -14,16 +14,16 @@ let
|
||||||
in
|
in
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "ncspot";
|
pname = "ncspot";
|
||||||
version = "0.7.1";
|
version = "0.7.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "hrkfdn";
|
owner = "hrkfdn";
|
||||||
repo = "ncspot";
|
repo = "ncspot";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1qhdhybbgnn7ky9qdxwi07flwzjagp22qmlccbz1z3lhznm9a971";
|
sha256 = "0ww7ipyvcdphbkzjpvdqs1s3bqk3rj3jdy1n3bnk76csw9vgn2zi";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "1kv37ib0klykmjabm1qyz55frs7djkx225alj4rk4a92xq9m8i9v";
|
cargoSha256 = "1mrjp5p3iryxzgg6ca9zjwm8n6w0ljs108ll0wkwgfih6rip7ba4";
|
||||||
|
|
||||||
cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
|
cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome, gtk3, gdk-pixbuf, librsvg,
|
{ lib, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome, gtk3, gdk-pixbuf, librsvg,
|
||||||
tag ? "", xvfb-run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme,
|
tag ? "", xvfb-run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme,
|
||||||
gst_all_1, withGstPlugins ? true,
|
gst_all_1, withGstPlugins ? true,
|
||||||
xineBackend ? false, xine-lib,
|
xineBackend ? false, xine-lib,
|
||||||
|
@ -9,15 +9,13 @@
|
||||||
let optionals = lib.optionals; in
|
let optionals = lib.optionals; in
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "quodlibet${tag}";
|
pname = "quodlibet${tag}";
|
||||||
version = "4.3.0";
|
version = "4.4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
|
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
|
||||||
sha256 = "1q17ckblfa4fcs7wsjwsq1dj7360ymrdyjkyqmj864wzlqkw1rd2";
|
sha256 = "sha256-oDMY0nZ+SVlVF2PQqH+tl3OHr3EmCP5XJxQXaiS782c=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./quodlibet-feedparser6.patch ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook gettext ];
|
nativeBuildInputs = [ wrapGAppsHook gettext ];
|
||||||
|
|
||||||
checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb-run dbus.daemon glibcLocales ]);
|
checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb-run dbus.daemon glibcLocales ]);
|
||||||
|
@ -50,8 +48,6 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
runHook preCheck
|
runHook preCheck
|
||||||
# newer gettext spews some warnings which fail the tests
|
|
||||||
substituteInPlace tests/test_po.py --replace "strict=True" "strict=False"
|
|
||||||
# otherwise tests can't find the app icons; instead of creating index.theme from scratch
|
# otherwise tests can't find the app icons; instead of creating index.theme from scratch
|
||||||
# I re-used the one from hicolor-icon-theme which seems to work
|
# I re-used the one from hicolor-icon-theme which seems to work
|
||||||
cp "${hicolor-icon-theme}/share/icons/hicolor/index.theme" quodlibet/images/hicolor
|
cp "${hicolor-icon-theme}/share/icons/hicolor/index.theme" quodlibet/images/hicolor
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
Support feedparser 6, based on https://github.com/quodlibet/quodlibet/pull/3464
|
|
||||||
|
|
||||||
--- a/quodlibet/browsers/audiofeeds.py
|
|
||||||
+++ b/quodlibet/browsers/audiofeeds.py
|
|
||||||
@@ -137,7 +137,4 @@ class Feed(list):
|
|
||||||
def parse(self):
|
|
||||||
try:
|
|
||||||
- if not self._check_feed():
|
|
||||||
- return False
|
|
||||||
-
|
|
||||||
doc = feedparser.parse(self.uri)
|
|
||||||
except Exception as e:
|
|
|
@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1n6cgjiw3vkv7a1h1nki5syyjxjb6icknr9s049w2jrag10bxssn";
|
sha256 = "1n6cgjiw3vkv7a1h1nki5syyjxjb6icknr9s049w2jrag10bxssn";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = [ "--enable-dependency-tracking" ];
|
configureFlags = [ "--enable-dependency-tracking" ]
|
||||||
|
++ lib.optional stdenv.isDarwin "--disable-sdltest";
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook python ];
|
nativeBuildInputs = [ autoreconfHook python ];
|
||||||
|
|
||||||
|
|
|
@ -19,20 +19,20 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pika-backup";
|
pname = "pika-backup";
|
||||||
version = "0.3.1";
|
version = "0.3.2";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
owner = "World";
|
owner = "World";
|
||||||
repo = "pika-backup";
|
repo = "pika-backup";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0cr3axfp15nzwmsqyz6j781qhr2gsn9p69m0jfzy89pl83d6vcz0";
|
sha256 = "sha256-dKVyvB4s1MZHri0dFJDBUXQKsi2KgP30ZhsJ486M+og=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
inherit src;
|
inherit src;
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
sha256 = "1z0cbrkhxyzwf7vjjsvdppb7zhflpkw4m5cy90a2315nbll3hpbp";
|
sha256 = "1vsh8vqgmfady82d7wfxkknmrp7mq7nizpif2zwg3kqbl964mp3y";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -54,15 +54,7 @@ let
|
||||||
|
|
||||||
|
|
||||||
configurePatched = configure // {
|
configurePatched = configure // {
|
||||||
packages.nix = {
|
customRC = pluginRc + customRC + (configure.customRC or "");
|
||||||
start = lib.filter (f: f != null)
|
|
||||||
(map (x: if x.optional == false then x.plugin else null)
|
|
||||||
pluginsNormalized);
|
|
||||||
opt = lib.filter (f: f != null)
|
|
||||||
(map (x: if x.optional == true then x.plugin else null)
|
|
||||||
pluginsNormalized);
|
|
||||||
};
|
|
||||||
customRC = pluginRc + customRC;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# A function to get the configuration string (if any) from an element of 'plugins'
|
# A function to get the configuration string (if any) from an element of 'plugins'
|
||||||
|
@ -173,11 +165,8 @@ let
|
||||||
assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages.";
|
assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages.";
|
||||||
|
|
||||||
wrapNeovimUnstable neovim (res // {
|
wrapNeovimUnstable neovim (res // {
|
||||||
wrapperArgs = lib.escapeShellArgs (
|
wrapperArgs = lib.escapeShellArgs res.wrapperArgs + extraMakeWrapperArgs;
|
||||||
res.wrapperArgs ++ lib.optionals (configure != {}) [
|
wrapRc = (configure != {});
|
||||||
"--add-flags" "-u ${writeText "init.vim" res.neovimRcContent}"
|
|
||||||
]) + " " + extraMakeWrapperArgs
|
|
||||||
;
|
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,6 +107,7 @@ let
|
||||||
'')
|
'')
|
||||||
+ ''
|
+ ''
|
||||||
rm $out/bin/nvim
|
rm $out/bin/nvim
|
||||||
|
touch $out/rplugin.vim
|
||||||
makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
|
makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ let
|
||||||
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
|
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
|
||||||
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
|
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
|
||||||
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
||||||
else throw "ImageMagick is not supported on this platform.";
|
else null;
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
[ "--with-frozenpaths" ]
|
[ "--with-frozenpaths" ]
|
||||||
++ [ "--with-gcc-arch=${arch}" ]
|
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
|
||||||
++ lib.optional (librsvg != null) "--with-rsvg"
|
++ lib.optional (librsvg != null) "--with-rsvg"
|
||||||
++ lib.optionals (ghostscript != null)
|
++ lib.optionals (ghostscript != null)
|
||||||
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
|
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
|
||||||
|
|
|
@ -13,7 +13,7 @@ let
|
||||||
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
|
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
|
||||||
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
|
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
|
||||||
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
||||||
else throw "ImageMagick is not supported on this platform.";
|
else null;
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
[ "--with-frozenpaths" ]
|
[ "--with-frozenpaths" ]
|
||||||
++ [ "--with-gcc-arch=${arch}" ]
|
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
|
||||||
++ lib.optional (librsvg != null) "--with-rsvg"
|
++ lib.optional (librsvg != null) "--with-rsvg"
|
||||||
++ lib.optionals (ghostscript != null)
|
++ lib.optionals (ghostscript != null)
|
||||||
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
|
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
|
||||||
|
|
98
third_party/nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix
vendored
Normal file
98
third_party/nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix
vendored
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
{ stdenv, lib, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb1, avahi-compat, glib, libredirect }:
|
||||||
|
let
|
||||||
|
myPatchElf = file: with lib; ''
|
||||||
|
patchelf --set-interpreter \
|
||||||
|
${stdenv.glibc}/lib/ld-linux${optionalString stdenv.is64bit "-x86-64"}.so.2 \
|
||||||
|
${file}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "brscan5";
|
||||||
|
version = "1.2.6-0";
|
||||||
|
src = {
|
||||||
|
"i686-linux" = fetchurl {
|
||||||
|
url = "https://download.brother.com/welcome/dlf104034/${pname}-${version}.i386.deb";
|
||||||
|
sha256 = "102q745pc0168syggd4gym51qf3m3iqld3a4skfnbkm6yky4w4s8";
|
||||||
|
};
|
||||||
|
"x86_64-linux" = fetchurl {
|
||||||
|
url = "https://download.brother.com/welcome/dlf104033/${pname}-${version}.amd64.deb";
|
||||||
|
sha256 = "1pwbzhpg5nzpw2rw936vf2cr334v8iny16y8fbb1zimgzmv427wx";
|
||||||
|
};
|
||||||
|
}."${stdenv.hostPlatform.system}";
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
ar x $src
|
||||||
|
tar xfv data.tar.xz
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper patchelf coreutils ];
|
||||||
|
buildInputs = [ libusb1 avahi-compat stdenv.cc.cc glib ];
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
${myPatchElf "opt/brother/scanner/brscan5/brsaneconfig5"}
|
||||||
|
${myPatchElf "opt/brother/scanner/brscan5/brscan_cnetconfig"}
|
||||||
|
${myPatchElf "opt/brother/scanner/brscan5/brscan_gnetconfig"}
|
||||||
|
|
||||||
|
for a in opt/brother/scanner/brscan5/*.so.* opt/brother/scanner/brscan5/brscan_[cg]netconfig; do
|
||||||
|
if ! test -L $a; then
|
||||||
|
patchelf --set-rpath ${lib.makeLibraryPath buildInputs} $a
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# driver is hardcoded to look in /opt/brother/scanner/brscan5/models for model metadata.
|
||||||
|
# patch it to look in /etc/opt/brother/scanner/models instead, so nixos environment.etc can make it available
|
||||||
|
printf '/etc/opt/brother/scanner/models\x00' | dd of=opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 bs=1 seek=84632 conv=notrunc
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = with lib; ''
|
||||||
|
runHook preInstall
|
||||||
|
PATH_TO_BRSCAN5="opt/brother/scanner/brscan5"
|
||||||
|
mkdir -p $out/$PATH_TO_BRSCAN5
|
||||||
|
cp -rp $PATH_TO_BRSCAN5/* $out/$PATH_TO_BRSCAN5
|
||||||
|
|
||||||
|
|
||||||
|
pushd $out/$PATH_TO_BRSCAN5
|
||||||
|
ln -s libLxBsDeviceAccs.so.1.0.0 libLxBsDeviceAccs.so.1
|
||||||
|
ln -s libLxBsNetDevAccs.so.1.0.0 libLxBsNetDevAccs.so.1
|
||||||
|
ln -s libLxBsScanCoreApi.so.3.0.0 libLxBsScanCoreApi.so.3
|
||||||
|
ln -s libLxBsUsbDevAccs.so.1.0.0 libLxBsUsbDevAccs.so.1
|
||||||
|
ln -s libsane-brother5.so.1.0.7 libsane-brother5.so.1
|
||||||
|
popd
|
||||||
|
|
||||||
|
mkdir -p $out/lib/sane
|
||||||
|
for file in $out/$PATH_TO_BRSCAN5/*.so.* ; do
|
||||||
|
ln -s $file $out/lib/sane/
|
||||||
|
done
|
||||||
|
|
||||||
|
makeWrapper \
|
||||||
|
"$out/$PATH_TO_BRSCAN5/brsaneconfig5" \
|
||||||
|
"$out/bin/brsaneconfig5" \
|
||||||
|
--suffix-each NIX_REDIRECT ":" "/etc/opt/brother/scanner/brscan5=$out/opt/brother/scanner/brscan5 /opt/brother/scanner/brscan5=$out/opt/brother/scanner/brscan5" \
|
||||||
|
--set LD_PRELOAD ${libredirect}/lib/libredirect.so
|
||||||
|
|
||||||
|
mkdir -p $out/etc/sane.d/dll.d
|
||||||
|
echo "brother5" > $out/etc/sane.d/dll.d/brother5.conf
|
||||||
|
|
||||||
|
mkdir -p $out/etc/udev/rules.d
|
||||||
|
cp -p $PATH_TO_BRSCAN5/udev-rules/NN-brother-mfp-brscan5-1.0.2-2.rules \
|
||||||
|
$out/etc/udev/rules.d/49-brother-mfp-brscan5-1.0.2-2.rules
|
||||||
|
|
||||||
|
ETCDIR=$out/etc/opt/brother/scanner/brscan5
|
||||||
|
mkdir -p $ETCDIR
|
||||||
|
cp -rp $PATH_TO_BRSCAN5/{models,brscan5.ini,brsanenetdevice.cfg} $ETCDIR/
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Brother brscan5 sane backend driver";
|
||||||
|
homepage = "https://www.brother.com";
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = with lib.maintainers; [ mattchrist ];
|
||||||
|
};
|
||||||
|
}
|
24
third_party/nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix
vendored
Normal file
24
third_party/nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, akonadi
|
||||||
|
, calendarsupport
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation {
|
||||||
|
pname = "akonadi-calendar-tools";
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/KDE/akonadi-calendar-tools";
|
||||||
|
description = "Console applications and utilities for managing calendars in Akonadi";
|
||||||
|
license = with lib.licenses; [ gpl2Plus cc0 ];
|
||||||
|
maintainers = with lib.maintainers; [ kennyballou ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
akonadi
|
||||||
|
calendarsupport
|
||||||
|
];
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
}
|
|
@ -68,6 +68,7 @@ let
|
||||||
in {
|
in {
|
||||||
akonadi = callPackage ./akonadi {};
|
akonadi = callPackage ./akonadi {};
|
||||||
akonadi-calendar = callPackage ./akonadi-calendar.nix {};
|
akonadi-calendar = callPackage ./akonadi-calendar.nix {};
|
||||||
|
akonadi-calendar-tools = callPackage ./akonadi-calendar-tools.nix {};
|
||||||
akonadi-contacts = callPackage ./akonadi-contacts.nix {};
|
akonadi-contacts = callPackage ./akonadi-contacts.nix {};
|
||||||
akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix {};
|
akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix {};
|
||||||
akonadi-mime = callPackage ./akonadi-mime.nix {};
|
akonadi-mime = callPackage ./akonadi-mime.nix {};
|
||||||
|
@ -93,6 +94,7 @@ let
|
||||||
incidenceeditor = callPackage ./incidenceeditor.nix {};
|
incidenceeditor = callPackage ./incidenceeditor.nix {};
|
||||||
k3b = callPackage ./k3b.nix {};
|
k3b = callPackage ./k3b.nix {};
|
||||||
kaccounts-integration = callPackage ./kaccounts-integration.nix {};
|
kaccounts-integration = callPackage ./kaccounts-integration.nix {};
|
||||||
|
kaccounts-providers = callPackage ./kaccounts-providers.nix {};
|
||||||
kaddressbook = callPackage ./kaddressbook.nix {};
|
kaddressbook = callPackage ./kaddressbook.nix {};
|
||||||
kalarm = callPackage ./kalarm.nix {};
|
kalarm = callPackage ./kalarm.nix {};
|
||||||
kalarmcal = callPackage ./kalarmcal.nix {};
|
kalarmcal = callPackage ./kalarmcal.nix {};
|
||||||
|
@ -137,6 +139,7 @@ let
|
||||||
kipi-plugins = callPackage ./kipi-plugins.nix {};
|
kipi-plugins = callPackage ./kipi-plugins.nix {};
|
||||||
kitinerary = callPackage ./kitinerary.nix {};
|
kitinerary = callPackage ./kitinerary.nix {};
|
||||||
kio-extras = callPackage ./kio-extras.nix {};
|
kio-extras = callPackage ./kio-extras.nix {};
|
||||||
|
kio-gdrive = callPackage ./kio-gdrive.nix {};
|
||||||
kldap = callPackage ./kldap.nix {};
|
kldap = callPackage ./kldap.nix {};
|
||||||
kleopatra = callPackage ./kleopatra.nix {};
|
kleopatra = callPackage ./kleopatra.nix {};
|
||||||
klettres = callPackage ./klettres.nix {};
|
klettres = callPackage ./klettres.nix {};
|
||||||
|
|
44
third_party/nixpkgs/pkgs/applications/kde/kaccounts-providers.nix
vendored
Normal file
44
third_party/nixpkgs/pkgs/applications/kde/kaccounts-providers.nix
vendored
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, lib
|
||||||
|
, accounts-qt
|
||||||
|
, extra-cmake-modules
|
||||||
|
, intltool
|
||||||
|
, kaccounts-integration
|
||||||
|
, kcmutils
|
||||||
|
, kcoreaddons
|
||||||
|
, kdeclarative
|
||||||
|
, kdoctools
|
||||||
|
, kio
|
||||||
|
, kpackage
|
||||||
|
, kwallet
|
||||||
|
, qtwebengine
|
||||||
|
, signond
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation {
|
||||||
|
pname = "kaccounts-providers";
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
|
||||||
|
description = "Online account providers";
|
||||||
|
maintainers = with maintainers; [ kennyballou ];
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
intltool
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
accounts-qt
|
||||||
|
kaccounts-integration
|
||||||
|
kcmutils
|
||||||
|
kcoreaddons
|
||||||
|
kdeclarative
|
||||||
|
kio
|
||||||
|
kpackage
|
||||||
|
kwallet
|
||||||
|
qtwebengine
|
||||||
|
signond
|
||||||
|
];
|
||||||
|
}
|
36
third_party/nixpkgs/pkgs/applications/kde/kio-gdrive.nix
vendored
Normal file
36
third_party/nixpkgs/pkgs/applications/kde/kio-gdrive.nix
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, lib
|
||||||
|
, extra-cmake-modules
|
||||||
|
, kdoctools
|
||||||
|
, kio
|
||||||
|
, libkgapi
|
||||||
|
, kcalendarcore
|
||||||
|
, kcontacts
|
||||||
|
, qtkeychain
|
||||||
|
, libsecret
|
||||||
|
, kaccounts-integration
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation {
|
||||||
|
pname = "kio-gdrive";
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/KDE/kio-gdrive";
|
||||||
|
description = "KIO slave for Google APIs";
|
||||||
|
maintainers = with maintainers; [ kennyballou ];
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [
|
||||||
|
extra-cmake-modules
|
||||||
|
kdoctools
|
||||||
|
];
|
||||||
|
buildInputs = [
|
||||||
|
kcalendarcore
|
||||||
|
kcontacts
|
||||||
|
kaccounts-integration
|
||||||
|
libkgapi
|
||||||
|
libsecret
|
||||||
|
kio
|
||||||
|
qtkeychain
|
||||||
|
];
|
||||||
|
}
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dbeaver";
|
pname = "dbeaver";
|
||||||
version = "21.0.5"; # When updating also update fetchedMavenDeps.sha256
|
version = "21.1.0"; # When updating also update fetchedMavenDeps.sha256
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dbeaver";
|
owner = "dbeaver";
|
||||||
repo = "dbeaver";
|
repo = "dbeaver";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-WMXhGXGHNjMJqob6A5S4+t9MDdJydAjdoY0u7T3ANbw=";
|
sha256 = "sha256-MHfW6gZFB2osE+8Ek7I40fg2cdowph3hvKqkjG7+rY4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchedMavenDeps = stdenv.mkDerivation {
|
fetchedMavenDeps = stdenv.mkDerivation {
|
||||||
|
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||||
dontFixup = true;
|
dontFixup = true;
|
||||||
outputHashAlgo = "sha256";
|
outputHashAlgo = "sha256";
|
||||||
outputHashMode = "recursive";
|
outputHashMode = "recursive";
|
||||||
outputHash = "sha256-RspJTWVM0ZpAz4yDeKsG7wSHZ//bi3SSV5c0gbsqZKY=";
|
outputHash = "sha256-FdWQ+2U5bIXSASm3SaLjyQlaRc1AkYPpFJSP4PnCWJw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "gpxsee";
|
pname = "gpxsee";
|
||||||
version = "9.0";
|
version = "9.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tumic0";
|
owner = "tumic0";
|
||||||
repo = "GPXSee";
|
repo = "GPXSee";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-4MzRXpxvJcj5KptTBH6rSr2ZyQ13nV7Yq96ti+CMytw=";
|
sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = (substituteAll {
|
patches = (substituteAll {
|
||||||
|
@ -39,6 +39,6 @@ mkDerivation rec {
|
||||||
changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
|
changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
|
||||||
license = licenses.gpl3Only;
|
license = licenses.gpl3Only;
|
||||||
maintainers = with maintainers; [ womfoo sikmir ];
|
maintainers = with maintainers; [ womfoo sikmir ];
|
||||||
platforms = with platforms; linux ++ darwin;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,45 @@
|
||||||
{ lib, stdenv, fetchurl, gtk2, glib, pkg-config, libgnome, libgnomeui, vte
|
{ lib
|
||||||
, curl, cdparanoia, libid3tag, ncurses, libtool }:
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, gtk2
|
||||||
|
, glib
|
||||||
|
, pkg-config
|
||||||
|
, libgnome
|
||||||
|
, libgnomeui
|
||||||
|
, vte
|
||||||
|
, curl
|
||||||
|
, cdparanoia
|
||||||
|
, libid3tag
|
||||||
|
, ncurses
|
||||||
|
, libtool
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "grip-4.2.0";
|
name = "grip-4.2.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/grip/${name}.tar.gz";
|
url = "mirror://sourceforge/grip/${name}.tar.gz";
|
||||||
sha256 = "1si5kidwg0i2jg0brzyvjrzw24v3km2hdgd4kda1adzq81a3p1cs";
|
sha256 = "sha256-3bFJURPbq9rzLsJCppRjSARhcOJxC4eSfw5VxvZgQ3Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config libtool ];
|
||||||
buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia
|
buildInputs = [
|
||||||
libid3tag ncurses libtool ];
|
gtk2
|
||||||
|
glib
|
||||||
hardeningDisable = [ "format" ];
|
libgnome
|
||||||
|
libgnomeui
|
||||||
# glib-2.62 deprecations
|
vte
|
||||||
NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
|
curl
|
||||||
|
cdparanoia
|
||||||
|
libid3tag
|
||||||
|
ncurses
|
||||||
|
];
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "GTK-based audio CD player/ripper";
|
description = "GTK-based audio CD player/ripper";
|
||||||
homepage = "http://nostatic.org/grip";
|
homepage = "http://nostatic.org/grip";
|
||||||
license = lib.licenses.gpl2;
|
license = lib.licenses.gpl2Plus;
|
||||||
|
|
||||||
maintainers = with lib.maintainers; [ marcweber peti ];
|
maintainers = with lib.maintainers; [ marcweber peti ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "xplr";
|
pname = "xplr";
|
||||||
version = "0.10.1";
|
version = "0.13.1";
|
||||||
|
|
||||||
src = fetchCrate {
|
src = fetchCrate {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "17x514pwbkzkkrd47a66a4iz3bxrxvm8hk5hphsfbhgzqfnf9iy7";
|
sha256 = "1aanw0l8b4ak0kikkixmb817qw48ypviq9dxdivzwc29rjvgp152";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
||||||
|
|
||||||
cargoSha256 = "03y2fk174rdjvw8wdzwc0hhj0zqwpap7qcga51yhq877rgyxbxir";
|
cargoSha256 = "16iaj1pqvqwi0rq4k3lmqwd8skbjf55133ri69hj26gz88k4q43w";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A hackable, minimal, fast TUI file explorer";
|
description = "A hackable, minimal, fast TUI file explorer";
|
||||||
|
|
|
@ -165,14 +165,10 @@ let
|
||||||
./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
|
./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
|
||||||
# Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
|
# Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
|
||||||
./patches/fix-missing-atspi2-dependency.patch
|
./patches/fix-missing-atspi2-dependency.patch
|
||||||
] ++ optionals (chromiumVersionAtLeast "91") [
|
|
||||||
./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch
|
./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = lib.optionalString (chromiumVersionAtLeast "91") ''
|
postPatch = ''
|
||||||
# Required for patchShebangs (unsupported):
|
|
||||||
chmod -x third_party/webgpu-cts/src/tools/deno
|
|
||||||
'' + ''
|
|
||||||
# remove unused third-party
|
# remove unused third-party
|
||||||
for lib in ${toString gnSystemLibraries}; do
|
for lib in ${toString gnSystemLibraries}; do
|
||||||
if [ -d "third_party/$lib" ]; then
|
if [ -d "third_party/$lib" ]; then
|
||||||
|
@ -191,6 +187,7 @@ let
|
||||||
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
|
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
|
||||||
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
|
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
|
||||||
fi
|
fi
|
||||||
|
chmod -x third_party/webgpu-cts/src/tools/deno
|
||||||
|
|
||||||
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
|
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
|
||||||
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
|
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
|
||||||
|
|
|
@ -44,19 +44,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ungoogled-chromium": {
|
"ungoogled-chromium": {
|
||||||
"version": "90.0.4430.212",
|
"version": "91.0.4472.77",
|
||||||
"sha256": "17nmhrkl81qqvzbh861k2mmifncx4wg1mv1fmn52f8gzn461vqdb",
|
"sha256": "0c8vj3gq3nmb7ssiwj6875g0a8hcprss1a4gqw9h7llqywza9ma5",
|
||||||
"sha256bin64": "1y33c5829s22yfj0qmsj8fpcxnjhcm3fsxz7744csfsa9cy4fjr7",
|
"sha256bin64": "0caf47xam5igdnbhipal1iyicnxxvadhi61k199rwysrvyv5sdad",
|
||||||
"deps": {
|
"deps": {
|
||||||
"gn": {
|
"gn": {
|
||||||
"version": "2021-02-09",
|
"version": "2021-04-06",
|
||||||
"url": "https://gn.googlesource.com/gn",
|
"url": "https://gn.googlesource.com/gn",
|
||||||
"rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
|
"rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
|
||||||
"sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
|
"sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
|
||||||
},
|
},
|
||||||
"ungoogled-patches": {
|
"ungoogled-patches": {
|
||||||
"rev": "90.0.4430.212-1",
|
"rev": "91.0.4472.77-1",
|
||||||
"sha256": "05jh05a4g50ws7pr18dl5pwi95knygh6xywp7kyydir7wy1pbin8"
|
"sha256": "1jfmmkw1y4rcjfgsm7b4v2lrgd3sks5qpajvq0djflbhkpsqxfk0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,13 +13,13 @@ assert enablePython -> python != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "elinks";
|
pname = "elinks";
|
||||||
version = "0.14.0";
|
version = "0.14.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rkd77";
|
owner = "rkd77";
|
||||||
repo = "felinks";
|
repo = "felinks";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
|
sha256 = "sha256-D7dUVHgYGzY4FXEnOzXw0Fao3gLgfFuCl8LJdLVpcSM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -7,10 +7,10 @@ in
|
||||||
rec {
|
rec {
|
||||||
firefox = common rec {
|
firefox = common rec {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
ffversion = "88.0.1";
|
ffversion = "89.0";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
||||||
sha512 = "e2d7fc950ba49f225c83ee1d799d6318fcf16c33a3b7f40b85c49d5b7865f7e632c703e5fd227a303b56e2565d0796283ebb12d7fd1a02781dcaa45e84cea934";
|
sha512 = "5089720feda15d054d0aa4c3bdeb84760314dadd6381d7360e688d8e396154868220c6315add650d8d2a42652cb8a9bfeb833885812ef0bd70a74ee58ad18aa3";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -19,13 +19,13 @@ let
|
||||||
in
|
in
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "argo";
|
pname = "argo";
|
||||||
version = "3.0.6";
|
version = "3.0.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "argoproj";
|
owner = "argoproj";
|
||||||
repo = "argo";
|
repo = "argo";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-QD5V6Bz/wfbyNPoXizjhPGyHN7ieotsYbwLTz2ADfcY=";
|
sha256 = "sha256-lZTSUNtmJZKONt0Bv42dBAc+87L14HaPxvPxhFe8nyc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg=";
|
vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg=";
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cni-plugin-dnsname";
|
pname = "cni-plugin-dnsname";
|
||||||
version = "1.1.1";
|
version = "1.2.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "containers";
|
owner = "containers";
|
||||||
repo = "dnsname";
|
repo = "dnsname";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "090kpq2ppan9ayajdk5vwbvww30nphylgajn2p3441d4jg2nvsm3";
|
sha256 = "sha256-hHkQOHDso92gXFCz40iQ7j2cHTEAMsaeW8MCJV2Otqo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./hardcode-dnsmasq-path.patch ];
|
patches = [ ./hardcode-dnsmasq-path.patch ];
|
||||||
|
|
|
@ -5,13 +5,13 @@ buildGoModule rec {
|
||||||
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
||||||
running in development environment and try to serve assets from the
|
running in development environment and try to serve assets from the
|
||||||
source tree, which is not there once build completes. */
|
source tree, which is not there once build completes. */
|
||||||
version = "0.18.10";
|
version = "0.20.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tilt-dev";
|
owner = "tilt-dev";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
|
sha256 = "sha256-pUKKHrShED7yp5WSmHSbS+eiYs22Nm2/ouc2a8WYc38=";
|
||||||
};
|
};
|
||||||
vendorSha256 = null;
|
vendorSha256 = null;
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
|
||||||
hash = "sha256-qq8cZplt5YWUwsXUShMDhQm3RGH2kCEBk64x6bOa50E=";
|
hash = "sha256-qq8cZplt5YWUwsXUShMDhQm3RGH2kCEBk64x6bOa50E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/CasualX/obfstr/blob/v0.2.4/build.rs#L5
|
||||||
|
# obfstr 0.2.4 fails to set RUSTC_BOOTSTRAP in its build script because cargo
|
||||||
|
# build scripts are forbidden from setting RUSTC_BOOTSTRAP since rustc 1.52.0
|
||||||
|
# https://github.com/rust-lang/rust/blob/1.52.0/RELEASES.md#compatibility-notes
|
||||||
|
RUSTC_BOOTSTRAP = 1;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# Post install tries to generate an icon cache & update the
|
# Post install tries to generate an icon cache & update the
|
||||||
# desktop database. The gtk setup hook drop-icon-theme-cache.sh
|
# desktop database. The gtk setup hook drop-icon-theme-cache.sh
|
||||||
|
|
|
@ -4,13 +4,13 @@ let
|
||||||
arch = if stdenv.is64bit then "amd64" else "x86";
|
arch = if stdenv.is64bit then "amd64" else "x86";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "teamspeak-server";
|
pname = "teamspeak-server";
|
||||||
version = "3.13.3";
|
version = "3.13.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
|
url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
|
||||||
sha256 = if stdenv.is64bit
|
sha256 = if stdenv.is64bit
|
||||||
then "sha256-+b9S0ekQmXF5KwvVcmHIDpp0iZRO2W1ls8eYhDzjUUw="
|
then "sha256-2tSX/ET2lZsi0mVB3KnbnBXMSTRsneGUA8w6mZ6TmlY="
|
||||||
else "sha256-Qu6xPzbUdqO93j353cfQILlFYqmwFSnFWG9TjniX0+c=";
|
else "sha256-RdxG4nGXTTSY+P5oZu4uP5l7gKcU9C6uIILyNldSK50=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ stdenv.cc.cc postgresql.lib ];
|
buildInputs = [ stdenv.cc.cc postgresql.lib ];
|
||||||
|
@ -18,6 +18,8 @@ in stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ autoPatchelfHook ];
|
nativeBuildInputs = [ autoPatchelfHook ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
# Install files.
|
# Install files.
|
||||||
mkdir -p $out/lib/teamspeak
|
mkdir -p $out/lib/teamspeak
|
||||||
mv * $out/lib/teamspeak/
|
mv * $out/lib/teamspeak/
|
||||||
|
@ -26,18 +28,20 @@ in stdenv.mkDerivation rec {
|
||||||
mkdir -p $out/bin/
|
mkdir -p $out/bin/
|
||||||
ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server
|
ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server
|
||||||
ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver
|
ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = writeScript "update-teampeak-server" ''
|
passthru.updateScript = writeScript "update-teampeak-server" ''
|
||||||
#!/usr/bin/env nix-shell
|
#!/usr/bin/env nix-shell
|
||||||
#!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused
|
#!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused jq pup
|
||||||
|
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
|
||||||
version=$( \
|
version=$( \
|
||||||
curl -s "https://www.teamspeak.de/download/teamspeak-3-amd64-server-linux/" \
|
curl https://www.teamspeak.com/en/downloads/ \
|
||||||
| grep softwareVersion \
|
| pup "#server .linux .version json{}" \
|
||||||
| sed -E -e 's/^.*<span itemprop="softwareVersion">([^<]+)<\/span>.*$/\1/' \
|
| jq -r ".[0].text"
|
||||||
)
|
)
|
||||||
|
|
||||||
versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version")
|
versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version")
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "catgirl";
|
pname = "catgirl";
|
||||||
version = "1.7";
|
version = "1.8";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
|
url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-3shSdeq4l6Y5DEJZEVMHAngp6vjnkPjzpLpcp407X/0=";
|
sha256 = "0svpd2nqsr55ac98vczyhihs6pvgw7chspf6bdlwl98gch39dxif";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ ctags pkg-config ];
|
nativeBuildInputs = [ ctags pkg-config ];
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
From 5dd2593369645b11a9dc03e1930617d2f5dbd039 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
|
|
||||||
Date: Wed, 11 Nov 2020 11:48:49 +0100
|
|
||||||
Subject: [PATCH] hardcode json file path
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
|
|
||||||
---
|
|
||||||
wee_slack.py | 8 +-------
|
|
||||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/wee_slack.py b/wee_slack.py
|
|
||||||
index a3d779c..5942289 100644
|
|
||||||
--- a/wee_slack.py
|
|
||||||
+++ b/wee_slack.py
|
|
||||||
@@ -5136,13 +5136,7 @@ def create_slack_debug_buffer():
|
|
||||||
|
|
||||||
def load_emoji():
|
|
||||||
try:
|
|
||||||
- weechat_dir = w.info_get('weechat_dir', '')
|
|
||||||
- weechat_sharedir = w.info_get('weechat_sharedir', '')
|
|
||||||
- local_weemoji, global_weemoji = ('{}/weemoji.json'.format(path)
|
|
||||||
- for path in (weechat_dir, weechat_sharedir))
|
|
||||||
- path = (global_weemoji if os.path.exists(global_weemoji) and
|
|
||||||
- not os.path.exists(local_weemoji) else local_weemoji)
|
|
||||||
- with open(path, 'r') as ef:
|
|
||||||
+ with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
|
|
||||||
emojis = json.loads(ef.read())
|
|
||||||
if 'emoji' in emojis:
|
|
||||||
print_error('The weemoji.json file is in an old format. Please update it.')
|
|
||||||
--
|
|
||||||
2.29.0
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "wee-slack";
|
pname = "wee-slack";
|
||||||
version = "2.7.0";
|
version = "2.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "wee-slack";
|
repo = "wee-slack";
|
||||||
owner = "wee-slack";
|
owner = "wee-slack";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-6Z/H15bKe0PKpNe9PCgc5mLOii3CILCAVon7EgzIkx8=";
|
sha256 = "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -16,10 +16,13 @@ stdenv.mkDerivation rec {
|
||||||
src = ./libpath.patch;
|
src = ./libpath.patch;
|
||||||
env = "${buildEnv {
|
env = "${buildEnv {
|
||||||
name = "wee-slack-env";
|
name = "wee-slack-env";
|
||||||
paths = with python3Packages; [ websocket_client six ];
|
paths = with python3Packages; [
|
||||||
|
websocket_client
|
||||||
|
six
|
||||||
|
];
|
||||||
}}/${python3Packages.python.sitePackages}";
|
}}/${python3Packages.python.sitePackages}";
|
||||||
})
|
})
|
||||||
./0001-hardcode-json-file-path.patch
|
./load_weemoji_path.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
diff --git a/wee_slack.py b/wee_slack.py
|
diff --git a/wee_slack.py b/wee_slack.py
|
||||||
index dbe6446..d1b7546 100644
|
index e4716b4..f673b7c 100644
|
||||||
--- a/wee_slack.py
|
--- a/wee_slack.py
|
||||||
+++ b/wee_slack.py
|
+++ b/wee_slack.py
|
||||||
@@ -25,6 +25,8 @@ import random
|
@@ -31,6 +31,8 @@ import string
|
||||||
import socket
|
# See https://github.com/numpy/numpy/issues/11925
|
||||||
import string
|
sys.modules["numpy"] = None
|
||||||
|
|
||||||
+sys.path.append('@env@')
|
+sys.path.append('@env@')
|
||||||
+
|
+
|
||||||
from websocket import ABNF, create_connection, WebSocketConnectionClosedException
|
from websocket import ( # noqa: E402
|
||||||
|
ABNF,
|
||||||
try:
|
create_connection,
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
diff --git a/wee_slack.py b/wee_slack.py
|
||||||
|
index e4716b4..ffd122d 100644
|
||||||
|
--- a/wee_slack.py
|
||||||
|
+++ b/wee_slack.py
|
||||||
|
@@ -6092,19 +6092,7 @@ def create_slack_debug_buffer():
|
||||||
|
|
||||||
|
def load_emoji():
|
||||||
|
try:
|
||||||
|
- weechat_dir = w.info_get("weechat_data_dir", "") or w.info_get(
|
||||||
|
- "weechat_dir", ""
|
||||||
|
- )
|
||||||
|
- weechat_sharedir = w.info_get("weechat_sharedir", "")
|
||||||
|
- local_weemoji, global_weemoji = (
|
||||||
|
- "{}/weemoji.json".format(path) for path in (weechat_dir, weechat_sharedir)
|
||||||
|
- )
|
||||||
|
- path = (
|
||||||
|
- global_weemoji
|
||||||
|
- if os.path.exists(global_weemoji) and not os.path.exists(local_weemoji)
|
||||||
|
- else local_weemoji
|
||||||
|
- )
|
||||||
|
- with open(path, "r") as ef:
|
||||||
|
+ with open("@out@/share/wee-slack/weemoji.json", "r") as ef:
|
||||||
|
emojis = json.loads(ef.read())
|
||||||
|
if "emoji" in emojis:
|
||||||
|
print_error(
|
|
@ -1,10 +1,12 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, installShellFiles, libiconv, ruby ? null }:
|
{ coreutils, fetchFromGitHub, fetchpatch, file, gawk, gnugrep, gnused
|
||||||
|
, installShellFiles, less, lib, libiconv, makeWrapper, nano, stdenv, ruby
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "mblaze";
|
pname = "mblaze";
|
||||||
version = "1.1";
|
version = "1.1";
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||||
buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
|
@ -22,6 +24,24 @@ stdenv.mkDerivation rec {
|
||||||
installShellCompletion contrib/_mblaze
|
installShellCompletion contrib/_mblaze
|
||||||
'' + lib.optionalString (ruby != null) ''
|
'' + lib.optionalString (ruby != null) ''
|
||||||
install -Dt $out/bin contrib/msuck contrib/mblow
|
install -Dt $out/bin contrib/msuck contrib/mblow
|
||||||
|
|
||||||
|
# The following wrappings are used to preserve the executable
|
||||||
|
# names (the value of $0 in a script). The script mcom is
|
||||||
|
# designed to be run directly or via symlinks such as mrep. Using
|
||||||
|
# symlinks changes the value of $0 in the script, and makes it
|
||||||
|
# behave differently. When using the wrapProgram tool, the resulting
|
||||||
|
# wrapper breaks this behaviour. The following wrappers preserve it.
|
||||||
|
|
||||||
|
mkdir -p $out/wrapped
|
||||||
|
for x in mcom mbnc mfwd mrep; do
|
||||||
|
mv $out/bin/$x $out/wrapped
|
||||||
|
makeWrapper $out/wrapped/$x $out/bin/$x \
|
||||||
|
--argv0 $out/bin/$x \
|
||||||
|
--prefix PATH : $out/bin \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [
|
||||||
|
coreutils file gawk gnugrep gnused
|
||||||
|
]}
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
|
{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, fetchpatch
|
||||||
, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
|
, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
|
||||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
|
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
|
||||||
}:
|
}:
|
||||||
|
@ -14,6 +14,14 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY=";
|
sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "CVE-2021-32055.patch";
|
||||||
|
url = "https://github.com/neomutt/neomutt/commit/fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc.patch";
|
||||||
|
sha256 = "0bb7gisjynq3w7hhl6vxa469h609bcz6fkdi8vf740pqrwhk68yn";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
cyrus_sasl gss gpgme libkrb5 libidn ncurses
|
cyrus_sasl gss gpgme libkrb5 libidn ncurses
|
||||||
notmuch openssl perl lmdb
|
notmuch openssl perl lmdb
|
||||||
|
|
|
@ -20,13 +20,13 @@
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "nextcloud-client";
|
pname = "nextcloud-client";
|
||||||
version = "3.2.1";
|
version = "3.2.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nextcloud";
|
owner = "nextcloud";
|
||||||
repo = "desktop";
|
repo = "desktop";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-I31w79GDZxSGlT6YPKSpq0aiyGnJiJBVdTyWI+DUoz4=";
|
sha256 = "sha256-UPWr5P6oEBtDK/Cuz8nZlHqKFyGEf44vbMfrphxNkMU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -13,10 +13,24 @@
|
||||||
, gettext
|
, gettext
|
||||||
, gobject-introspection
|
, gobject-introspection
|
||||||
, gdk-pixbuf
|
, gdk-pixbuf
|
||||||
|
, texlive
|
||||||
|
, imagemagick
|
||||||
|
, perlPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
documentation_deps = [
|
||||||
|
(texlive.combine {
|
||||||
|
inherit (texlive) scheme-small wrapfig was;
|
||||||
|
})
|
||||||
|
xvfb-run
|
||||||
|
imagemagick
|
||||||
|
perlPackages.Po4a
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src sample_documents;
|
||||||
pname = "paperwork";
|
pname = "paperwork";
|
||||||
|
|
||||||
sourceRoot = "source/paperwork-gtk";
|
sourceRoot = "source/paperwork-gtk";
|
||||||
|
@ -52,9 +66,16 @@ python3Packages.buildPythonApplication rec {
|
||||||
for i in $site/data/paperwork_*.png; do
|
for i in $site/data/paperwork_*.png; do
|
||||||
ln -s $i $site/icon/out;
|
ln -s $i $site/icon/out;
|
||||||
done
|
done
|
||||||
|
|
||||||
|
export XDG_DATA_DIRS=$XDG_DATA_DIRS:${gnome.adwaita-icon-theme}/share
|
||||||
|
# build the user manual
|
||||||
|
PATH=$out/bin:$PATH PAPERWORK_TEST_DOCUMENTS=${sample_documents} make data
|
||||||
|
for i in src/paperwork_gtk/model/help/out/*.pdf; do
|
||||||
|
install -Dt $site/model/help/out $i
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
checkInputs = [ xvfb-run dbus.daemon ];
|
checkInputs = [ dbus.daemon ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
|
@ -62,7 +83,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
(lib.getBin gettext)
|
(lib.getBin gettext)
|
||||||
which
|
which
|
||||||
gdk-pixbuf # for the setup hook
|
gdk-pixbuf # for the setup hook
|
||||||
];
|
] ++ documentation_deps;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gnome.adwaita-icon-theme
|
gnome.adwaita-icon-theme
|
||||||
|
@ -78,13 +99,20 @@ python3Packages.buildPythonApplication rec {
|
||||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
runHook preCheck
|
||||||
|
|
||||||
# A few parts of chkdeps need to have a display and a dbus session, so we not
|
# A few parts of chkdeps need to have a display and a dbus session, so we not
|
||||||
# only need to run a virtual X server + dbus but also have a large enough
|
# only need to run a virtual X server + dbus but also have a large enough
|
||||||
# resolution, because the Cairo test tries to draw a 200x200 window.
|
# resolution, because the Cairo test tries to draw a 200x200 window.
|
||||||
preCheck = ''
|
|
||||||
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
|
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
|
||||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
||||||
$out/bin/paperwork-gtk chkdeps
|
$out/bin/paperwork-gtk chkdeps
|
||||||
|
|
||||||
|
# content of make test, without the dep on make install
|
||||||
|
python -m unittest discover --verbose -s tests
|
||||||
|
|
||||||
|
runHook postCheck
|
||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
@ -98,6 +126,8 @@ python3Packages.buildPythonApplication rec {
|
||||||
setuptools
|
setuptools
|
||||||
];
|
];
|
||||||
|
|
||||||
|
disallowedRequisites = documentation_deps;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A personal document manager for scanned documents";
|
description = "A personal document manager for scanned documents";
|
||||||
homepage = "https://openpaper.work/";
|
homepage = "https://openpaper.work/";
|
||||||
|
|
|
@ -1,12 +1,22 @@
|
||||||
{fetchFromGitLab}:
|
{fetchFromGitLab}:
|
||||||
rec {
|
rec {
|
||||||
version = "2.0.2";
|
version = "2.0.3";
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
repo = "paperwork";
|
repo = "paperwork";
|
||||||
group = "World";
|
group = "World";
|
||||||
owner = "OpenPaperwork";
|
owner = "OpenPaperwork";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1di7nnl8ywyiwfpl5m1kvip1m0hvijbmqmkdpviwqw7ajizrr1ly";
|
sha256 = "02c2ysca75j59v87n1axqfncvs167kmdr40m0f05asdh2akwrbi9";
|
||||||
};
|
};
|
||||||
|
sample_documents = fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
repo = "paperwork-test-documents";
|
||||||
|
group = "World";
|
||||||
|
owner = "OpenPaperwork";
|
||||||
|
# https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/blob/master/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh see TEST_DOCS_TAG
|
||||||
|
rev = "1.0";
|
||||||
|
sha256 = "155nhw2jmlgfi6c3wm241vrr3yma6lw85k9lxn844z96kyi7wbpr";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
51
third_party/nixpkgs/pkgs/applications/radio/sdrplay/default.nix
vendored
Normal file
51
third_party/nixpkgs/pkgs/applications/radio/sdrplay/default.nix
vendored
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
{ stdenv, lib, fetchurl, autoPatchelfHook, udev }:
|
||||||
|
let
|
||||||
|
arch = if stdenv.isx86_64 then "x86_64"
|
||||||
|
else if stdenv.isi686 then "i686"
|
||||||
|
else throw "unsupported architecture";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "sdrplay";
|
||||||
|
version = "3.07.1";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${version}.run";
|
||||||
|
sha256 = "1a25c7rsdkcjxr7ffvx2lwj7fxdbslg9qhr8ghaq1r53rcrqgzmf";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoPatchelfHook ];
|
||||||
|
|
||||||
|
buildInputs = [ udev stdenv.cc.cc.lib ];
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
sh "$src" --noexec --target source
|
||||||
|
'';
|
||||||
|
|
||||||
|
sourceRoot = "source";
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/{bin,lib,include,lib/udev/rules.d}
|
||||||
|
majorVersion="${lib.concatStringsSep "." (lib.take 1 (builtins.splitVersion version))}"
|
||||||
|
majorMinorVersion="${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}"
|
||||||
|
libName="libsdrplay_api"
|
||||||
|
cp "${arch}/$libName.so.$majorMinorVersion" $out/lib/
|
||||||
|
ln -s "$out/lib/$libName.so.$majorMinorVersion" "$out/lib/$libName.so.$majorVersion"
|
||||||
|
ln -s "$out/lib/$libName.so.$majorVersion" "$out/lib/$libName.so"
|
||||||
|
cp "${arch}/sdrplay_apiService" $out/bin/
|
||||||
|
cp -r inc/* $out/include/
|
||||||
|
cp 66-mirics.rules $out/lib/udev/rules.d/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "SDRplay API";
|
||||||
|
longDescription = ''
|
||||||
|
Proprietary library and api service for working with SDRplay devices. For documentation and licensing details see
|
||||||
|
https://www.sdrplay.com/docs/SDRplay_API_Specification_v${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}.pdf
|
||||||
|
'';
|
||||||
|
homepage = "https://www.sdrplay.com/downloads/";
|
||||||
|
license = licenses.unfree;
|
||||||
|
maintainers = [ maintainers.pmenke ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
29
third_party/nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix
vendored
Normal file
29
third_party/nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, soapysdr, sdrplay }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "soapysdr-sdrplay3";
|
||||||
|
version = "20210425";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pothosware";
|
||||||
|
repo = "SoapySDRPlay3";
|
||||||
|
rev = "e6fdb719b611b1dfb7f26c56a4df1e241bd10129";
|
||||||
|
sha256 = "0rrylp3ikrva227hjy60v4n6d6yvdavjsad9kszw9s948mwiashi";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
||||||
|
buildInputs = [ soapysdr sdrplay ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Soapy SDR module for SDRplay";
|
||||||
|
homepage = "https://github.com/pothosware/SoapySDRPlay3";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = [ maintainers.pmenke ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,20 +1,17 @@
|
||||||
{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
|
{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
|
||||||
, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
|
, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
|
||||||
, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
|
, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123
|
||||||
let
|
} :
|
||||||
|
|
||||||
version = "2.2";
|
|
||||||
|
|
||||||
in mkDerivation {
|
|
||||||
|
|
||||||
|
mkDerivation rec {
|
||||||
pname = "welle-io";
|
pname = "welle-io";
|
||||||
inherit version;
|
version = "2.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "AlbrechtL";
|
owner = "AlbrechtL";
|
||||||
repo = "welle.io";
|
repo = "welle.io";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
|
sha256 = "1xl1lanw0xgmgks67dbfb2h52jxnrd1i2zik56v0q8dwsr7f0daw";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
|
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
|
||||||
mv html/en/_static{,.tmp}
|
mv html/en/_static{,.tmp}
|
||||||
for _dir in `find -name _static` ; do
|
for _dir in `find -name _static` ; do
|
||||||
rm -r $_dir
|
rm -r $_dir
|
||||||
ln -s html/en/_static $_dir
|
ln -rs html/en/_static $_dir
|
||||||
done
|
done
|
||||||
mv html/en/_static{.tmp,}
|
mv html/en/_static{.tmp,}
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -16,9 +16,6 @@ stdenv.mkDerivation rec {
|
||||||
./undefined_behavior.patch
|
./undefined_behavior.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
# patch needs to updated due to version bump
|
|
||||||
#CXXFLAGS = "-Werror=return-type";
|
|
||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
# Fix F77LD to workaround for a following build error:
|
# Fix F77LD to workaround for a following build error:
|
||||||
#
|
#
|
||||||
|
@ -48,8 +45,6 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc";
|
NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc";
|
||||||
NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc";
|
NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc";
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
|
{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "gitui";
|
pname = "gitui";
|
||||||
version = "0.15.0";
|
version = "0.16.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "extrawurst";
|
owner = "extrawurst";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-KJXYkOHR50Zap0Ou+jVi09opHuZBfHN/ToZbasZ3IE4=";
|
sha256 = "sha256-XPXldkNLlxgUBdDDR+n3JAO75JQQOvKoduwnWvIompY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "sha256-N6Yr+TqxWwl/6SgjizIyZJoVsjn/R9yjxUKCqwt8UJg=";
|
cargoSha256 = "sha256-jHrjAdghuFADf/Gd3GeUOpPBG5tqsBG/Q4R0pNxHAps=";
|
||||||
|
|
||||||
nativeBuildInputs = [ python3 perl ];
|
nativeBuildInputs = [ python3 perl ];
|
||||||
buildInputs = [ openssl ]
|
buildInputs = [ openssl ]
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, makeWrapper
|
{ lib, stdenv, fetchFromGitHub, makeWrapper, nix-update-script
|
||||||
, python3, git, gnupg, less
|
, python3, git, gnupg, less
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "git-repo";
|
pname = "git-repo";
|
||||||
version = "2.14.5";
|
version = "2.15.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "android";
|
owner = "android";
|
||||||
|
@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "sha256-3FSkWpHda1jVhy/633B+ippWcbKd83IlQcJYS9Qx5wQ=";
|
sha256 = "sha256-3FSkWpHda1jVhy/633B+ippWcbKd83IlQcJYS9Qx5wQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./import-ssl-module.patch ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
buildInputs = [ python3 ];
|
buildInputs = [ python3 ];
|
||||||
|
|
||||||
|
@ -25,8 +23,12 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp repo $out/bin/repo
|
cp repo $out/bin/repo
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Important runtime dependencies
|
# Important runtime dependencies
|
||||||
|
@ -35,6 +37,12 @@ stdenv.mkDerivation rec {
|
||||||
"${lib.makeBinPath [ git gnupg less ]}"
|
"${lib.makeBinPath [ git gnupg less ]}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
updateScript = nix-update-script {
|
||||||
|
attrPath = "gitRepo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Android's repo management tool";
|
description = "Android's repo management tool";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -45,7 +53,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
homepage = "https://android.googlesource.com/tools/repo";
|
homepage = "https://android.googlesource.com/tools/repo";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = [ ];
|
maintainers = with maintainers; [ otavio ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
diff --git a/repo b/repo
|
|
||||||
index 8b05def..f394b3e 100755
|
|
||||||
--- a/repo
|
|
||||||
+++ b/repo
|
|
||||||
@@ -236,6 +236,7 @@ import optparse
|
|
||||||
import re
|
|
||||||
import shutil
|
|
||||||
import stat
|
|
||||||
+import ssl
|
|
||||||
|
|
||||||
if sys.version_info[0] == 3:
|
|
||||||
import urllib.request
|
|
|
@ -1,60 +1,38 @@
|
||||||
{ lib, stdenv, fetchurl, makeWrapper, python27Packages, git
|
{ lib, stdenv, fetchurl, makeWrapper, buildGoModule, git
|
||||||
, docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy
|
, asciidoctor, ruby
|
||||||
, breezy ? null, cvs ? null, darcs ? null, fossil ? null
|
}:
|
||||||
, mercurial ? null, monotone ? null, rcs ? null
|
|
||||||
, subversion ? null, cvs_fast_export ? null }:
|
|
||||||
|
|
||||||
with stdenv; with lib;
|
buildGoModule rec {
|
||||||
let
|
pname = "reposurgeon";
|
||||||
inherit (python27Packages) python;
|
version = "4.26";
|
||||||
in mkDerivation rec {
|
|
||||||
name = "reposurgeon-${meta.version}";
|
|
||||||
meta = {
|
|
||||||
description = "A tool for editing version-control repository history";
|
|
||||||
version = "3.44";
|
|
||||||
license = licenses.bsd3;
|
|
||||||
homepage = "http://www.catb.org/esr/reposurgeon/";
|
|
||||||
maintainers = with maintainers; [ dfoxfranke ];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-3.44.tar.xz";
|
url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-${version}.tar.xz";
|
||||||
sha256 = "0il6hwrsm2qgg0vp5fcjh478y2x4zyw3mx2apcwc7svfj86pf7pn";
|
sha256 = "sha256-FuL5pvIM468hEm6rUBKGW6+WlYv4DPHNnpwpRGzMwlY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# install fails because the files README.md, NEWS, and TODO were not included in the source distribution
|
vendorSha256 = "sha256-KpdXI2Znhe0iCp0DjSZXzUYDZIz2KBRv1/SpaRTFMAc=";
|
||||||
patches = [ ./fix-makefile.patch ];
|
|
||||||
|
|
||||||
buildInputs =
|
subPackages = [ "." ];
|
||||||
[ docbook_xml_dtd_412 docbook_xsl asciidoc xmlto makeWrapper pypy ];
|
|
||||||
|
|
||||||
preBuild = ''
|
runVend = true;
|
||||||
makeFlagsArray=(
|
|
||||||
XML_CATALOG_FILES="${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml"
|
nativeBuildInputs = [ asciidoctor ruby ];
|
||||||
prefix="$out"
|
|
||||||
pyinclude="-I${python}/include/python2.7"
|
postBuild = ''
|
||||||
pylib="-L${python}/lib -lpython2.7"
|
patchShebangs .
|
||||||
)
|
make all HTMLFILES=
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall =
|
postInstall = ''
|
||||||
let
|
make install prefix=$out HTMLFILES=
|
||||||
binpath = makeBinPath (
|
'';
|
||||||
filter (x: x != null)
|
|
||||||
[ out git breezy cvs darcs fossil mercurial
|
meta = {
|
||||||
monotone rcs src subversion cvs_fast_export ]
|
description = "A tool for editing version-control repository history";
|
||||||
);
|
license = lib.licenses.bsd3;
|
||||||
pythonpath = makeSearchPathOutput "lib" python.sitePackages (
|
homepage = "http://www.catb.org/esr/reposurgeon/";
|
||||||
filter (x: x != null)
|
maintainers = with lib.maintainers; [ dfoxfranke ];
|
||||||
[ python27Packages.readline or null python27Packages.hglib or null ]
|
platforms = lib.platforms.all;
|
||||||
);
|
};
|
||||||
in ''
|
|
||||||
for prog in reposurgeon repodiffer repotool; do
|
|
||||||
wrapProgram $out/bin/$prog \
|
|
||||||
--prefix PATH : "${binpath}" \
|
|
||||||
--prefix PYTHONPATH : "${pythonpath}"
|
|
||||||
done
|
|
||||||
''
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ lib, fetchFromGitHub, appstream-glib, desktop-file-utils, glib
|
{ lib, fetchFromGitHub, appstream-glib, desktop-file-utils, glib
|
||||||
, gobject-introspection, gst_all_1, gtk3, libhandy, librsvg, meson, ninja
|
, gobject-introspection, gst_all_1, gtk4, libadwaita, librsvg, meson, ninja
|
||||||
, pkg-config, python3, wrapGAppsHook }:
|
, pkg-config, python3, wrapGAppsHook }:
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "kooha";
|
pname = "kooha";
|
||||||
version = "1.1.3";
|
version = "1.2.1";
|
||||||
format = "other";
|
format = "other";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "SeaDve";
|
owner = "SeaDve";
|
||||||
repo = "Kooha";
|
repo = "Kooha";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "14lrx6wplvlk3cg3wij88h4ydp3m69pw7lvvzrq3j9qnh431bs36";
|
sha256 = "1qwbzdn0n1nxcfci1bhhkfchdhw5yz74fdvsa84cznyyx2jils8w";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -19,8 +19,8 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
gst_all_1.gstreamer
|
gst_all_1.gstreamer
|
||||||
gst_all_1.gst-plugins-base
|
gst_all_1.gst-plugins-base
|
||||||
gtk3
|
gtk4
|
||||||
libhandy
|
libadwaita
|
||||||
librsvg
|
librsvg
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -48,6 +48,10 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
patchShebangs build-aux/meson/postinstall.py
|
patchShebangs build-aux/meson/postinstall.py
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
installCheckPhase = ''
|
||||||
|
$out/bin/kooha --help
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Simple screen recorder";
|
description = "Simple screen recorder";
|
||||||
homepage = "https://github.com/SeaDve/Kooha";
|
homepage = "https://github.com/SeaDve/Kooha";
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
, v4l-utils }:
|
, v4l-utils }:
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "webcamoid";
|
pname = "webcamoid";
|
||||||
version = "8.7.1";
|
version = "8.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
sha256 = "1d8g7mq0wf0ycds87xpdhr3zkljgjmb94n3ak9kkxj2fqp9242d2";
|
sha256 = "0a8M9GQ6Ea9jBCyfbORVyB6HC/O6jdcIZruQZj9Aai4=";
|
||||||
rev = version;
|
rev = version;
|
||||||
repo = "webcamoid";
|
repo = "webcamoid";
|
||||||
owner = "webcamoid";
|
owner = "webcamoid";
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, installShellFiles
|
, installShellFiles
|
||||||
, makeWrapper
|
|
||||||
, buildGoModule
|
, buildGoModule
|
||||||
, gpgme
|
, gpgme
|
||||||
, lvm2
|
, lvm2
|
||||||
|
@ -37,7 +36,7 @@ buildGoModule rec {
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
|
nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
|
||||||
|
|
||||||
buildInputs = lib.optionals stdenv.isLinux [
|
buildInputs = lib.optionals stdenv.isLinux [
|
||||||
btrfs-progs
|
btrfs-progs
|
||||||
|
@ -70,15 +69,23 @@ buildGoModule rec {
|
||||||
installShellCompletion --zsh completions/zsh/*
|
installShellCompletion --zsh completions/zsh/*
|
||||||
MANDIR=$man/share/man make install.man-nobuild
|
MANDIR=$man/share/man make install.man-nobuild
|
||||||
'' + lib.optionalString stdenv.isLinux ''
|
'' + lib.optionalString stdenv.isLinux ''
|
||||||
wrapProgram $out/bin/podman \
|
install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.d
|
||||||
--prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
|
|
||||||
install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
|
install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
|
||||||
install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system
|
install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system
|
||||||
'' + ''
|
'' + ''
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests = { inherit (nixosTests) podman; };
|
postFixup = lib.optionalString stdenv.isLinux ''
|
||||||
|
RPATH=$(patchelf --print-rpath $out/bin/podman)
|
||||||
|
patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/podman
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
inherit (nixosTests) podman;
|
||||||
|
# related modules
|
||||||
|
inherit (nixosTests) podman-tls-ghostunnel;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://podman.io/";
|
homepage = "https://podman.io/";
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
, util-linux # nsenter
|
, util-linux # nsenter
|
||||||
, cni-plugins # not added to path
|
, cni-plugins # not added to path
|
||||||
, iptables
|
, iptables
|
||||||
|
, iproute2
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -25,6 +26,7 @@ let
|
||||||
fuse-overlayfs
|
fuse-overlayfs
|
||||||
util-linux
|
util-linux
|
||||||
iptables
|
iptables
|
||||||
|
iproute2
|
||||||
] ++ extraPackages);
|
] ++ extraPackages);
|
||||||
|
|
||||||
in runCommand podman.name {
|
in runCommand podman.name {
|
||||||
|
@ -48,6 +50,7 @@ in runCommand podman.name {
|
||||||
ln -s ${podman.man} $man
|
ln -s ${podman.man} $man
|
||||||
|
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
|
ln -s ${podman-unwrapped}/etc $out/etc
|
||||||
ln -s ${podman-unwrapped}/lib $out/lib
|
ln -s ${podman-unwrapped}/lib $out/lib
|
||||||
ln -s ${podman-unwrapped}/share $out/share
|
ln -s ${podman-unwrapped}/share $out/share
|
||||||
makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
|
makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
|
||||||
|
|
|
@ -15,11 +15,11 @@ with lib;
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "singularity";
|
pname = "singularity";
|
||||||
version = "3.7.3";
|
version = "3.7.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
|
url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
|
||||||
sha256 = "sha256-ZmfriHXStm1zUE9AyVa0KxNRdE9IjRZCBDdiFdiF2lw=";
|
sha256 = "sha256-wmY2movydH9E4HWYWMP8OyMluXWogYsmaPC5exJNAWQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
goPackagePath = "github.com/sylabs/singularity";
|
goPackagePath = "github.com/sylabs/singularity";
|
||||||
|
|
|
@ -9,10 +9,22 @@
|
||||||
, lib
|
, lib
|
||||||
, stdenvNoCC
|
, stdenvNoCC
|
||||||
, bintools ? null, libc ? null, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
|
, bintools ? null, libc ? null, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
|
||||||
|
, netbsd ? null, netbsdCross ? null
|
||||||
|
, sharedLibraryLoader ?
|
||||||
|
if libc == null then
|
||||||
|
null
|
||||||
|
else if stdenvNoCC.targetPlatform.isNetBSD then
|
||||||
|
if libc != targetPackages.netbsdCross.headers then
|
||||||
|
targetPackages.netbsdCross.ld_elf_so
|
||||||
|
else
|
||||||
|
null
|
||||||
|
else
|
||||||
|
lib.getLib libc
|
||||||
, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
||||||
, propagateDoc ? bintools != null && bintools ? man
|
, propagateDoc ? bintools != null && bintools ? man
|
||||||
, extraPackages ? [], extraBuildCommands ? ""
|
, extraPackages ? [], extraBuildCommands ? ""
|
||||||
, buildPackages ? {}
|
, buildPackages ? {}
|
||||||
|
, targetPackages ? {}
|
||||||
, useMacosReexportHack ? false
|
, useMacosReexportHack ? false
|
||||||
|
|
||||||
# Darwin code signing support utilities
|
# Darwin code signing support utilities
|
||||||
|
@ -54,19 +66,19 @@ let
|
||||||
# The dynamic linker has different names on different platforms. This is a
|
# The dynamic linker has different names on different platforms. This is a
|
||||||
# shell glob that ought to match it.
|
# shell glob that ought to match it.
|
||||||
dynamicLinker =
|
dynamicLinker =
|
||||||
/**/ if libc == null then null
|
/**/ if sharedLibraryLoader == null then null
|
||||||
else if targetPlatform.libc == "musl" then "${libc_lib}/lib/ld-musl-*"
|
else if targetPlatform.libc == "musl" then "${sharedLibraryLoader}/lib/ld-musl-*"
|
||||||
else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker"
|
else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker"
|
||||||
else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64"
|
else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64"
|
||||||
else if targetPlatform.libc == "nblibc" then "${libc_lib}/libexec/ld.elf_so"
|
else if targetPlatform.libc == "nblibc" then "${sharedLibraryLoader}/libexec/ld.elf_so"
|
||||||
else if targetPlatform.system == "i686-linux" then "${libc_lib}/lib/ld-linux.so.2"
|
else if targetPlatform.system == "i686-linux" then "${sharedLibraryLoader}/lib/ld-linux.so.2"
|
||||||
else if targetPlatform.system == "x86_64-linux" then "${libc_lib}/lib/ld-linux-x86-64.so.2"
|
else if targetPlatform.system == "x86_64-linux" then "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2"
|
||||||
else if targetPlatform.system == "powerpc64le-linux" then "${libc_lib}/lib/ld64.so.2"
|
else if targetPlatform.system == "powerpc64le-linux" then "${sharedLibraryLoader}/lib/ld64.so.2"
|
||||||
# ARM with a wildcard, which can be "" or "-armhf".
|
# ARM with a wildcard, which can be "" or "-armhf".
|
||||||
else if (with targetPlatform; isAarch32 && isLinux) then "${libc_lib}/lib/ld-linux*.so.3"
|
else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3"
|
||||||
else if targetPlatform.system == "aarch64-linux" then "${libc_lib}/lib/ld-linux-aarch64.so.1"
|
else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
|
||||||
else if targetPlatform.system == "powerpc-linux" then "${libc_lib}/lib/ld.so.1"
|
else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1"
|
||||||
else if targetPlatform.isMips then "${libc_lib}/lib/ld.so.1"
|
else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1"
|
||||||
else if targetPlatform.isDarwin then "/usr/lib/dyld"
|
else if targetPlatform.isDarwin then "/usr/lib/dyld"
|
||||||
else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1"
|
else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1"
|
||||||
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
|
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
|
||||||
|
@ -224,10 +236,10 @@ stdenv.mkDerivation {
|
||||||
##
|
##
|
||||||
## Dynamic linker support
|
## Dynamic linker support
|
||||||
##
|
##
|
||||||
+ ''
|
+ optionalString (sharedLibraryLoader != null) ''
|
||||||
if [[ -z ''${dynamicLinker+x} ]]; then
|
if [[ -z ''${dynamicLinker+x} ]]; then
|
||||||
echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2
|
echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2
|
||||||
local dynamicLinker="${libc_lib}/lib/ld*.so.?"
|
local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?"
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
|
|
||||||
|
@ -246,9 +258,9 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
${if targetPlatform.isDarwin then ''
|
${if targetPlatform.isDarwin then ''
|
||||||
printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook
|
printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook
|
||||||
'' else ''
|
'' else lib.optionalString (sharedLibraryLoader != null) ''
|
||||||
if [ -e ${libc_lib}/lib/32/ld-linux.so.2 ]; then
|
if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then
|
||||||
echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
|
echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
|
||||||
fi
|
fi
|
||||||
touch $out/nix-support/ld-set-dynamic-linker
|
touch $out/nix-support/ld-set-dynamic-linker
|
||||||
''}
|
''}
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <spawn.h>
|
#include <spawn.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
#define MAX_REDIRECTS 128
|
#define MAX_REDIRECTS 128
|
||||||
|
|
||||||
|
@ -189,9 +190,85 @@ int posix_spawnp(pid_t * pid, const char * file,
|
||||||
return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp);
|
return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int execv(const char *path, char *const argv[])
|
int execv(const char * path, char * const argv[])
|
||||||
{
|
{
|
||||||
int (*execv_real) (const char *path, char *const argv[]) = dlsym(RTLD_NEXT, "execv");
|
int (*execv_real) (const char * path, char * const argv[]) = dlsym(RTLD_NEXT, "execv");
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
return execv_real(rewrite(path, buf), argv);
|
return execv_real(rewrite(path, buf), argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int execvp(const char * path, char * const argv[])
|
||||||
|
{
|
||||||
|
int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp");
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
return _execvp(rewrite(path, buf), argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
int execve(const char * path, char * const argv[], char * const envp[])
|
||||||
|
{
|
||||||
|
int (*_execve) (const char *, char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "execve");
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
return _execve(rewrite(path, buf), argv, envp);
|
||||||
|
}
|
||||||
|
|
||||||
|
DIR * opendir(const char * path)
|
||||||
|
{
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
DIR * (*_opendir) (const char*) = dlsym(RTLD_NEXT, "opendir");
|
||||||
|
|
||||||
|
return _opendir(rewrite(path, buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SYSTEM_CMD_MAX 512
|
||||||
|
|
||||||
|
char *replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) {
|
||||||
|
char head[SYSTEM_CMD_MAX] = {0};
|
||||||
|
strncpy(head, source, start_ptr - source);
|
||||||
|
|
||||||
|
char tail[SYSTEM_CMD_MAX] = {0};
|
||||||
|
if(suffix_ptr < source + strlen(source)) {
|
||||||
|
strcpy(tail, suffix_ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(buf, "%s%s%s", head, replace_string, tail);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *replace_string(char * buf, char * from, char * to) {
|
||||||
|
int num_matches = 0;
|
||||||
|
char * matches[SYSTEM_CMD_MAX];
|
||||||
|
int from_len = strlen(from);
|
||||||
|
for(int i=0; i<strlen(buf); i++){
|
||||||
|
char *cmp_start = buf + i;
|
||||||
|
if(strncmp(from, cmp_start, from_len) == 0){
|
||||||
|
matches[num_matches] = cmp_start;
|
||||||
|
num_matches++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int len_diff = strlen(to) - strlen(from);
|
||||||
|
for(int n = 0; n < num_matches; n++) {
|
||||||
|
char replaced[SYSTEM_CMD_MAX];
|
||||||
|
replace_substring(buf, replaced, to, matches[n], matches[n]+from_len);
|
||||||
|
strcpy(buf, replaced);
|
||||||
|
for(int nn = n+1; nn < num_matches; nn++) {
|
||||||
|
matches[nn] += len_diff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rewriteSystemCall(const char * command, char * buf) {
|
||||||
|
strcpy(buf, command);
|
||||||
|
for (int n = 0; n < nrRedirects; ++n) {
|
||||||
|
replace_string(buf, from[n], to[n]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int system(const char *command)
|
||||||
|
{
|
||||||
|
int (*_system) (const char*) = dlsym(RTLD_NEXT, "system");
|
||||||
|
|
||||||
|
char newCommand[SYSTEM_CMD_MAX];
|
||||||
|
rewriteSystemCall(command, newCommand);
|
||||||
|
return _system(newCommand);
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <spawn.h>
|
#include <spawn.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
@ -31,6 +32,10 @@ void test_execv(void) {
|
||||||
assert(execv(TESTPATH, argv) == 0);
|
assert(execv(TESTPATH, argv) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_system(void) {
|
||||||
|
assert(system(TESTPATH) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
FILE *testfp;
|
FILE *testfp;
|
||||||
|
@ -50,6 +55,7 @@ int main(void)
|
||||||
assert(stat(TESTPATH, &testsb) != -1);
|
assert(stat(TESTPATH, &testsb) != -1);
|
||||||
|
|
||||||
test_spawn();
|
test_spawn();
|
||||||
|
test_system();
|
||||||
test_execv();
|
test_execv();
|
||||||
|
|
||||||
/* If all goes well, this is never reached because test_execv() replaces
|
/* If all goes well, this is never reached because test_execv() replaces
|
||||||
|
|
|
@ -822,45 +822,6 @@ rec {
|
||||||
/* The set of supported Dpkg-based distributions. */
|
/* The set of supported Dpkg-based distributions. */
|
||||||
|
|
||||||
debDistros = {
|
debDistros = {
|
||||||
|
|
||||||
# Interestingly, the SHA-256 hashes provided by Ubuntu in
|
|
||||||
# http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are
|
|
||||||
# wrong, but the SHA-1 and MD5 hashes are correct. Intrepid is fine.
|
|
||||||
|
|
||||||
ubuntu1204i386 = {
|
|
||||||
name = "ubuntu-12.04-precise-i386";
|
|
||||||
fullName = "Ubuntu 12.04 Precise (i386)";
|
|
||||||
packagesLists =
|
|
||||||
[ (fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/precise/main/binary-i386/Packages.bz2";
|
|
||||||
sha256 = "18ns9h4qhvjfcip9z55grzi371racxavgqkp6b5kfkdq2wwwax2d";
|
|
||||||
})
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/precise/universe/binary-i386/Packages.bz2";
|
|
||||||
sha256 = "085lkzbnzkc74kfdmwdc32sfqyfz8dr0rbiifk8kx9jih3xjw2jk";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
urlPrefix = "mirror://ubuntu";
|
|
||||||
packages = commonDebPackages ++ [ "diffutils" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
ubuntu1204x86_64 = {
|
|
||||||
name = "ubuntu-12.04-precise-amd64";
|
|
||||||
fullName = "Ubuntu 12.04 Precise (amd64)";
|
|
||||||
packagesLists =
|
|
||||||
[ (fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/precise/main/binary-amd64/Packages.bz2";
|
|
||||||
sha256 = "1aabpn0hdih6cbabyn87yvhccqj44q9k03mqmjsb920iqlckl3fc";
|
|
||||||
})
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/precise/universe/binary-amd64/Packages.bz2";
|
|
||||||
sha256 = "0x4hz5aplximgb7gnpvrhkw8m7a40s80rkm5b8hil0afblwlg4vr";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
urlPrefix = "mirror://ubuntu";
|
|
||||||
packages = commonDebPackages ++ [ "diffutils" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
ubuntu1404i386 = {
|
ubuntu1404i386 = {
|
||||||
name = "ubuntu-14.04-trusty-i386";
|
name = "ubuntu-14.04-trusty-i386";
|
||||||
fullName = "Ubuntu 14.04 Trusty (i386)";
|
fullName = "Ubuntu 14.04 Trusty (i386)";
|
||||||
|
@ -929,40 +890,6 @@ rec {
|
||||||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
ubuntu1710i386 = {
|
|
||||||
name = "ubuntu-17.10-artful-i386";
|
|
||||||
fullName = "Ubuntu 17.10 Artful (i386)";
|
|
||||||
packagesLists =
|
|
||||||
[ (fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/artful/main/binary-i386/Packages.xz";
|
|
||||||
sha256 = "18yrj4kqdzm39q0527m97h5ing58hkm9yq9iyj636zh2rclym3c8";
|
|
||||||
})
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/artful/universe/binary-i386/Packages.xz";
|
|
||||||
sha256 = "1v0njw2w80xfmxi7by76cs8hyxlla5h3gqajlpdw5srjgx2qrm2g";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
urlPrefix = "mirror://ubuntu";
|
|
||||||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
ubuntu1710x86_64 = {
|
|
||||||
name = "ubuntu-17.10-artful-amd64";
|
|
||||||
fullName = "Ubuntu 17.10 Artful (amd64)";
|
|
||||||
packagesLists =
|
|
||||||
[ (fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/artful/main/binary-amd64/Packages.xz";
|
|
||||||
sha256 = "104g57j1l3vi8wb5f7rgjvjhf82ccs0vwhc59jfc4ynd51z7fqjk";
|
|
||||||
})
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://ubuntu/dists/artful/universe/binary-amd64/Packages.xz";
|
|
||||||
sha256 = "1qzs95wfy9inaskfx9cf1l5yd3aaqwzy72zzi9xyvkxi75k5gcn4";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
urlPrefix = "mirror://ubuntu";
|
|
||||||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
ubuntu1804i386 = {
|
ubuntu1804i386 = {
|
||||||
name = "ubuntu-18.04-bionic-i386";
|
name = "ubuntu-18.04-bionic-i386";
|
||||||
fullName = "Ubuntu 18.04 Bionic (i386)";
|
fullName = "Ubuntu 18.04 Bionic (i386)";
|
||||||
|
@ -997,51 +924,83 @@ rec {
|
||||||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
debian8i386 = {
|
ubuntu2004i386 = {
|
||||||
name = "debian-8.11-jessie-i386";
|
name = "ubuntu-20.04-focal-i386";
|
||||||
fullName = "Debian 8.11 Jessie (i386)";
|
fullName = "Ubuntu 20.04 Focal (i386)";
|
||||||
packagesList = fetchurl {
|
packagesLists =
|
||||||
url = "mirror://debian/dists/jessie/main/binary-i386/Packages.xz";
|
[ (fetchurl {
|
||||||
sha256 = "0adblarhx50yga900il6m25ng0csa81i3wid1dxxmydbdmri7v7d";
|
url = "mirror://ubuntu/dists/focal/main/binary-i386/Packages.xz";
|
||||||
};
|
sha256 = "sha256-7RAYURoN3RKYQAHpwBS9TIV6vCmpURpphyMJQmV4wLc=";
|
||||||
urlPrefix = "mirror://debian";
|
})
|
||||||
packages = commonDebianPackages;
|
(fetchurl {
|
||||||
|
url = "mirror://ubuntu/dists/focal/universe/binary-i386/Packages.xz";
|
||||||
|
sha256 = "sha256-oA551xVE80volUPgkMyvzpQ1d+GhuZd4DAe7dXZnULM=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
urlPrefix = "mirror://ubuntu";
|
||||||
|
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
debian8x86_64 = {
|
ubuntu2004x86_64 = {
|
||||||
name = "debian-8.11-jessie-amd64";
|
name = "ubuntu-20.04-focal-amd64";
|
||||||
fullName = "Debian 8.11 Jessie (amd64)";
|
fullName = "Ubuntu 20.04 Focal (amd64)";
|
||||||
packagesList = fetchurl {
|
packagesLists =
|
||||||
url = "mirror://debian/dists/jessie/main/binary-amd64/Packages.xz";
|
[ (fetchurl {
|
||||||
sha256 = "09y1mv4kqllhxpk1ibjsyl5jig5bp0qxw6pp4sn56rglrpygmn5x";
|
url = "mirror://ubuntu/dists/focal/main/binary-amd64/Packages.xz";
|
||||||
};
|
sha256 = "sha256-d1eSH/j+7Zw5NKDJk21EG6SiOL7j6myMHfXLzUP8mGE=";
|
||||||
urlPrefix = "mirror://debian";
|
})
|
||||||
packages = commonDebianPackages;
|
(fetchurl {
|
||||||
|
url = "mirror://ubuntu/dists/focal/universe/binary-amd64/Packages.xz";
|
||||||
|
sha256 = "sha256-RqdG2seJvZU3rKVNsWgLnf9RwkgVMRE1A4IZnX2WudE=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
urlPrefix = "mirror://ubuntu";
|
||||||
|
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
debian9i386 = {
|
debian9i386 = {
|
||||||
name = "debian-9.8-stretch-i386";
|
name = "debian-9.13-stretch-i386";
|
||||||
fullName = "Debian 9.8 Stretch (i386)";
|
fullName = "Debian 9.13 Stretch (i386)";
|
||||||
packagesList = fetchurl {
|
packagesList = fetchurl {
|
||||||
url = "http://snapshot.debian.org/archive/debian/20200301T030401Z/dists/stretch/main/binary-i386/Packages.xz";
|
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-i386/Packages.xz";
|
||||||
sha256 = "1jglr1d1jys3xddp8f7w9j05db39fah8xy4gfkpqbd1b5d2caslz";
|
sha256 = "sha256-fFRumd20wuVaYxzw0VPkAw5mQo8kIg+eXII15VSz9wA=";
|
||||||
};
|
};
|
||||||
urlPrefix = "mirror://debian";
|
urlPrefix = "mirror://debian";
|
||||||
packages = commonDebianPackages;
|
packages = commonDebianPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
debian9x86_64 = {
|
debian9x86_64 = {
|
||||||
name = "debian-9.8-stretch-amd64";
|
name = "debian-9.13-stretch-amd64";
|
||||||
fullName = "Debian 9.8 Stretch (amd64)";
|
fullName = "Debian 9.13 Stretch (amd64)";
|
||||||
packagesList = fetchurl {
|
packagesList = fetchurl {
|
||||||
url = "http://snapshot.debian.org/archive/debian/20190503T090946Z/dists/stretch/main/binary-amd64/Packages.xz";
|
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-amd64/Packages.xz";
|
||||||
sha256 = "01q00nl47p12n7wx0xclx59wf3zlkzrgj3zxpshyvb91xdnw5sh6";
|
sha256 = "sha256-1p4DEVpTGlBE3PtbQ90kYw4QNHkW0F4rna/Xz+ncMhw=";
|
||||||
};
|
};
|
||||||
urlPrefix = "mirror://debian";
|
urlPrefix = "mirror://debian";
|
||||||
packages = commonDebianPackages;
|
packages = commonDebianPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debian10i386 = {
|
||||||
|
name = "debian-10.9-buster-i386";
|
||||||
|
fullName = "Debian 10.9 Buster (i386)";
|
||||||
|
packagesList = fetchurl {
|
||||||
|
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/buster/main/binary-i386/Packages.xz";
|
||||||
|
sha256 = "sha256-zlkbKV+IGBCyWKD4v4LFM/EUA4TYS9fkLBPuF6MgUDo=";
|
||||||
|
};
|
||||||
|
urlPrefix = "mirror://debian";
|
||||||
|
packages = commonDebianPackages;
|
||||||
|
};
|
||||||
|
|
||||||
|
debian10x86_64 = {
|
||||||
|
name = "debian-10.9-buster-amd64";
|
||||||
|
fullName = "Debian 10.9 Buster (amd64)";
|
||||||
|
packagesList = fetchurl {
|
||||||
|
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/buster/main/binary-amd64/Packages.xz";
|
||||||
|
sha256 = "sha256-k13toY1b3CX7GBPQ7Jm24OMqCEsgPlGK8M99x57o69o=";
|
||||||
|
};
|
||||||
|
urlPrefix = "mirror://debian";
|
||||||
|
packages = commonDebianPackages;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1168,7 +1127,7 @@ rec {
|
||||||
"passwd"
|
"passwd"
|
||||||
];
|
];
|
||||||
|
|
||||||
commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" "mktemp" ];
|
commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" ];
|
||||||
|
|
||||||
|
|
||||||
/* A set of functions that build the Linux distributions specified
|
/* A set of functions that build the Linux distributions specified
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
|
{ lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "20200910";
|
|
||||||
pname = "numix-solarized-gtk-theme";
|
pname = "numix-solarized-gtk-theme";
|
||||||
|
version = "20210522";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Ferdi265";
|
owner = "Ferdi265";
|
||||||
repo = "numix-solarized-gtk-theme";
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "05h1563sy6sfz76jadxsf730mav6bbjsk9xnadv49r16b8n8p9a9";
|
sha256 = "0hin73fmfir4w1z0j87k5hahhf2blhcq4r7gf89gz4slnl18cvjh";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
|
nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
|
||||||
|
@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
|
||||||
buildPhase = "true";
|
buildPhase = "true";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
HOME="$NIX_BUILD_ROOT" # shut up inkscape's warnings
|
runHook preInstall
|
||||||
for theme in *.colors; do
|
for theme in *.colors; do
|
||||||
make THEME="''${theme/.colors/}" install
|
make THEME="''${theme/.colors/}" install
|
||||||
done
|
done
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
|
homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
|
||||||
downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
|
downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3Only;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.offline ];
|
maintainers = [ maintainers.offline ];
|
||||||
};
|
};
|
||||||
|
|
28
third_party/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
vendored
Normal file
28
third_party/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
vendored
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja, python3, gtk3, gnome }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "yaru-remix";
|
||||||
|
version = "40";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Muqtxdir";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0xilhw5gbxsyy80ixxgj0nw6w782lz9dsinhi24026li1xny804c";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
|
||||||
|
buildInputs = [ gtk3 gnome.gnome-themes-extra ];
|
||||||
|
|
||||||
|
dontDropIconThemeCache = true;
|
||||||
|
|
||||||
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Fork of the Yaru GTK theme";
|
||||||
|
homepage = "https://github.com/Muqtxdir/yaru-remix";
|
||||||
|
license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ hoppla20 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "cinnamon-translations";
|
pname = "cinnamon-translations";
|
||||||
version = "4.8.3";
|
version = "5.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "linuxmint";
|
owner = "linuxmint";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-o/JFfwloXLUOy9YQzHtMCuzK7yBp/G43VS/RguxiTPY=";
|
hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
, intltool
|
, intltool
|
||||||
, shared-mime-info
|
, shared-mime-info
|
||||||
, cinnamon-translations
|
, cinnamon-translations
|
||||||
|
, libgsf
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "nemo";
|
pname = "nemo";
|
||||||
version = "4.8.6";
|
version = "5.0.0";
|
||||||
|
|
||||||
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
|
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
|
||||||
|
|
||||||
|
@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
owner = "linuxmint";
|
owner = "linuxmint";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-OUv7l+klu5l1Y7m+iHiq/dDyxH3/hT4k7F9gDuUiGds=";
|
sha256 = "07n9p93iyrzb7636qqwknq8dd3im1y6wb9jfvif96mbvvdwsnfyz";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
|
||||||
libexif
|
libexif
|
||||||
exempi
|
exempi
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
|
libgsf
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -63,7 +63,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
|
elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
|
||||||
inherit erlang;
|
erlang = pkgs.beam.interpreters.erlangR23;
|
||||||
debugInfo = true;
|
debugInfo = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -83,7 +83,6 @@ let
|
||||||
# without helper functions buildRebar3 and buildMix.
|
# without helper functions buildRebar3 and buildMix.
|
||||||
hex = callPackage ./hex { };
|
hex = callPackage ./hex { };
|
||||||
webdriver = callPackage ./webdriver { };
|
webdriver = callPackage ./webdriver { };
|
||||||
relxExe = callPackage ../tools/erlang/relx-exe { };
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
makeExtensible packages
|
makeExtensible packages
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, lib }:
|
{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, lib }:
|
||||||
let
|
let
|
||||||
version = "0.15.0";
|
version = "0.16.0";
|
||||||
owner = "erlang-ls";
|
owner = "erlang-ls";
|
||||||
repo = "erlang_ls";
|
repo = "erlang_ls";
|
||||||
deps = import ./rebar-deps.nix {
|
deps = import ./rebar-deps.nix {
|
||||||
|
@ -12,7 +12,7 @@ in rebar3Relx {
|
||||||
inherit version;
|
inherit version;
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
inherit owner repo;
|
inherit owner repo;
|
||||||
sha256 = "1s6zk8r5plm7ajifz17mvfrnk5mzbhj7alayink9phqbmzrypnfg";
|
sha256 = "0l09yhj3rsb9zj4cs6a1bcfmi6zbyb3xk1lv494xbyiv5d61vkwm";
|
||||||
rev = version;
|
rev = version;
|
||||||
};
|
};
|
||||||
releaseType = "escript";
|
releaseType = "escript";
|
||||||
|
|
|
@ -113,11 +113,11 @@ in { builder ? fetchOnly, fetchHex, fetchFromGitHub }: rec {
|
||||||
};
|
};
|
||||||
ranch = builder {
|
ranch = builder {
|
||||||
name = "ranch";
|
name = "ranch";
|
||||||
version = "1.7.1";
|
version = "2.0.0";
|
||||||
src = fetchHex {
|
src = fetchHex {
|
||||||
pkg = "ranch";
|
pkg = "ranch";
|
||||||
version = "1.7.1";
|
version = "2.0.0";
|
||||||
sha256 = "sha256-RR2FJ3h99xbZncNhYvygWTSRXbC2FBu9rC6o08evx9c=";
|
sha256 = "sha256-wgpIQMfWYjwZgS06fIKLLxvRU+8PEky2nFT+UdikKuA=";
|
||||||
};
|
};
|
||||||
beamDeps = [ ];
|
beamDeps = [ ];
|
||||||
};
|
};
|
||||||
|
@ -131,6 +131,17 @@ in { builder ? fetchOnly, fetchHex, fetchFromGitHub }: rec {
|
||||||
};
|
};
|
||||||
beamDeps = [ ];
|
beamDeps = [ ];
|
||||||
};
|
};
|
||||||
|
erlfmt = builder {
|
||||||
|
name = "erlfmt";
|
||||||
|
version = "git";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "whatsapp";
|
||||||
|
repo = "erlfmt";
|
||||||
|
rev = "2e93fc4a646111357642b0179a2a63151868d890";
|
||||||
|
sha256 = "0n7kygycn05aqdp5dyj192mja89l4nxv2wg16qg2c0bmw9s7j2mr";
|
||||||
|
};
|
||||||
|
beamDeps = [ ];
|
||||||
|
};
|
||||||
ephemeral = builder {
|
ephemeral = builder {
|
||||||
name = "ephemeral";
|
name = "ephemeral";
|
||||||
version = "2.0.4";
|
version = "2.0.4";
|
||||||
|
|
|
@ -41,7 +41,17 @@ llvmPackages.stdenv.mkDerivation rec {
|
||||||
# Note: only openblas and not atlas part of this Nix expression
|
# Note: only openblas and not atlas part of this Nix expression
|
||||||
# see pkgs/development/libraries/science/math/liblapack/3.5.0.nix
|
# see pkgs/development/libraries/science/math/liblapack/3.5.0.nix
|
||||||
# to get a hint howto setup atlas instead of openblas
|
# to get a hint howto setup atlas instead of openblas
|
||||||
buildInputs = [ llvmPackages.llvm libpng libjpeg mesa eigen openblas ];
|
buildInputs = [
|
||||||
|
llvmPackages.llvm
|
||||||
|
llvmPackages.lld
|
||||||
|
llvmPackages.openmp
|
||||||
|
llvmPackages.libclang
|
||||||
|
libpng
|
||||||
|
libjpeg
|
||||||
|
mesa
|
||||||
|
eigen
|
||||||
|
openblas
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ in stdenv.mkDerivation (rec {
|
||||||
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
|
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
|
doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV);
|
||||||
|
|
||||||
checkTarget = "check-all";
|
checkTarget = "check-all";
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ in stdenv.mkDerivation (rec {
|
||||||
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
|
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = stdenv.isLinux && (!stdenv.isx86_32);
|
doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV);
|
||||||
|
|
||||||
checkTarget = "check-all";
|
checkTarget = "check-all";
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ import ./default.nix {
|
||||||
x86_64-apple-darwin = "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4";
|
x86_64-apple-darwin = "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4";
|
||||||
aarch64-apple-darwin = "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f";
|
aarch64-apple-darwin = "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f";
|
||||||
powerpc64le-unknown-linux-gnu = "7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680";
|
powerpc64le-unknown-linux-gnu = "7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680";
|
||||||
|
riscv64gc-unknown-linux-gnu = "9d0c2c4ab2397e78758de8b6b57051482bcf20b6748e0e16d9d5bd23ce73d72a";
|
||||||
};
|
};
|
||||||
|
|
||||||
selectRustPackage = pkgs: pkgs.rust_1_52;
|
selectRustPackage = pkgs: pkgs.rust_1_52;
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
"armv7l" = "armv7";
|
"armv7l" = "armv7";
|
||||||
"armv6l" = "arm";
|
"armv6l" = "arm";
|
||||||
"armv5tel" = "armv5te";
|
"armv5tel" = "armv5te";
|
||||||
|
"riscv64" = "riscv64gc";
|
||||||
}.${cpu.name} or cpu.name;
|
}.${cpu.name} or cpu.name;
|
||||||
in platform.rustc.config
|
in platform.rustc.config
|
||||||
or "${cpu_}-${vendor.name}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
|
or "${cpu_}-${vendor.name}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
|
||||||
|
|
|
@ -18,6 +18,7 @@ PLATFORMS=(
|
||||||
x86_64-apple-darwin
|
x86_64-apple-darwin
|
||||||
aarch64-apple-darwin
|
aarch64-apple-darwin
|
||||||
powerpc64le-unknown-linux-gnu
|
powerpc64le-unknown-linux-gnu
|
||||||
|
riscv64gc-unknown-linux-gnu
|
||||||
)
|
)
|
||||||
BASEURL=https://static.rust-lang.org/dist
|
BASEURL=https://static.rust-lang.org/dist
|
||||||
VERSION=${1:-}
|
VERSION=${1:-}
|
||||||
|
|
38
third_party/nixpkgs/pkgs/development/coq-modules/topology/default.nix
vendored
Normal file
38
third_party/nixpkgs/pkgs/development/coq-modules/topology/default.nix
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ lib, mkCoqDerivation, coq, mathcomp, zorns-lemma, version ? null }:
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
mkCoqDerivation rec {
|
||||||
|
pname = "topology";
|
||||||
|
|
||||||
|
releaseRev = v: "v${v}";
|
||||||
|
|
||||||
|
release."8.12.0".sha256 = "sha256-ypHmHwzwZ6MQPYwuS3QyZmVOEPUCSbO2lhVaA6TypgQ=";
|
||||||
|
release."8.10.0".sha256 = "sha256-mCLF3JYIiO3AEW9yvlcLeF7zN4SjW3LG+Y5vYB0l55A=";
|
||||||
|
release."8.9.0".sha256 = "sha256-ZJh1BM34iZOQ75zqLIA+KtBjO2y33y0UpAw/ydCWQYc=";
|
||||||
|
release."8.8.0".sha256 = "sha256-Yfm3UymEP1e+BKMNPhdRFLdFhynMirtQ8E0HXnRiqHU=";
|
||||||
|
release."8.7.0".sha256 = "sha256-qcZQKvMRs5wWIAny8ciF9TrmEQfKKO9fWhwIRL+s7VA=";
|
||||||
|
release."8.6.0".sha256 = "sha256-eu/dBEFo3y6vnXlJljUD4hds6+qgAPQVvsuspyGHcj8=";
|
||||||
|
|
||||||
|
inherit version;
|
||||||
|
defaultVersion = with versions; switch coq.coq-version [
|
||||||
|
{ case = isGe "8.12"; out = "8.12.0"; }
|
||||||
|
{ case = "8.11"; out = "8.12.0"; }
|
||||||
|
{ case = "8.10"; out = "8.10.0"; }
|
||||||
|
{ case = "8.9"; out = "8.9.0"; }
|
||||||
|
{ case = "8.8"; out = "8.8.0"; }
|
||||||
|
{ case = "8.7"; out = "8.7.0"; }
|
||||||
|
{ case = "8.6"; out = "8.6.0"; }
|
||||||
|
] null;
|
||||||
|
|
||||||
|
propagatedBuildInputs = optional (versions.isLe "8.12" defaultVersion) zorns-lemma;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "General topology in Coq";
|
||||||
|
longDescription = ''
|
||||||
|
This library develops some of the basic concepts and results of
|
||||||
|
general topology in Coq.
|
||||||
|
'';
|
||||||
|
maintainers = with maintainers; [ siraben ];
|
||||||
|
license = licenses.lgpl21Plus;
|
||||||
|
};
|
||||||
|
}
|
38
third_party/nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix
vendored
Normal file
38
third_party/nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ lib, mkCoqDerivation, coq, version ? null }:
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
mkCoqDerivation {
|
||||||
|
pname = "zorns-lemma";
|
||||||
|
|
||||||
|
releaseRev = v: "v${v}";
|
||||||
|
|
||||||
|
release."8.11.0".sha256 = "sha256-2Hf7YwRcFmP/DqwFtF1p78MCNV50qUWfMVQtZbwKd0k=";
|
||||||
|
release."8.10.0".sha256 = "sha256-qLPLK2ZLJQ4SmJX2ADqFiP4kgHuQFJTeNXkBbjiFS+4=";
|
||||||
|
release."8.9.0".sha256 = "sha256-lEh978cXehglFX9D92RVltEuvN8umfPo/hvmFZm2NGo=";
|
||||||
|
release."8.8.0".sha256 = "sha256-ikXGzABu8VW7O0xNtCNvIq29c+mlDUm4k/ygVcsgDOI=";
|
||||||
|
release."8.7.0".sha256 = "sha256-jozvkkKLFBllN6K4oeYD0lNG+MdnOuKrDUPDocHUG6c=";
|
||||||
|
release."8.6.0".sha256 = "sha256-jozvkkKLFBllN6K4oeYD0lNG+MdnOuKrDUPDocHUG6c=";
|
||||||
|
release."8.5.0".sha256 = "sha256-mH/v02ObMjbVPYx2H+Jhz+Xp0XRKN67iMAdA1VNFzso=";
|
||||||
|
|
||||||
|
inherit version;
|
||||||
|
defaultVersion = with versions; switch coq.coq-version [
|
||||||
|
{ case = isGe "8.11"; out = "8.11.0"; }
|
||||||
|
{ case = "8.10"; out = "8.10.0"; }
|
||||||
|
{ case = "8.9"; out = "8.9.0"; }
|
||||||
|
{ case = "8.8"; out = "8.8.0"; }
|
||||||
|
{ case = "8.7"; out = "8.7.0"; }
|
||||||
|
{ case = "8.6"; out = "8.6.0"; }
|
||||||
|
{ case = "8.5"; out = "8.5.0"; }
|
||||||
|
] null;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Development of basic set theory";
|
||||||
|
longDescription = ''
|
||||||
|
This Coq library develops some basic set theory. The main
|
||||||
|
purpose the author had in writing it was as support for the
|
||||||
|
Topology library.
|
||||||
|
'';
|
||||||
|
maintainers = with maintainers; [ siraben ];
|
||||||
|
license = licenses.lgpl21Plus;
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "babashka";
|
pname = "babashka";
|
||||||
version = "0.4.1";
|
version = "0.4.3";
|
||||||
|
|
||||||
reflectionJson = fetchurl {
|
reflectionJson = fetchurl {
|
||||||
name = "reflection.json";
|
name = "reflection.json";
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||||
sha256 = "sha256-tKMxi0umMmM99NusSSE9tT95TBcfXm1lfo95fQRUBrs=";
|
sha256 = "sha256-teZKAwSv9wliVFKdT76yQjMC5g7SGPAqcq/jZ07sYjQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
|
@ -110,9 +110,15 @@ stdenv.mkDerivation rec {
|
||||||
- Batteries included (tools.cli, cheshire, ...)
|
- Batteries included (tools.cli, cheshire, ...)
|
||||||
- Library support via popular tools like the clojure CLI
|
- Library support via popular tools like the clojure CLI
|
||||||
'';
|
'';
|
||||||
homepage = "https://github.com/borkdude/babashka";
|
homepage = "https://github.com/babashka/babashka";
|
||||||
license = licenses.epl10;
|
license = licenses.epl10;
|
||||||
platforms = graalvm11-ce.meta.platforms;
|
platforms = graalvm11-ce.meta.platforms;
|
||||||
maintainers = with maintainers; [ bandresen bhougland DerGuteMoritz jlesquembre ];
|
maintainers = with maintainers; [
|
||||||
|
bandresen
|
||||||
|
bhougland
|
||||||
|
DerGuteMoritz
|
||||||
|
jlesquembre
|
||||||
|
thiagokokada
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
lua5_4 = callPackage ./interpreter.nix {
|
lua5_4 = callPackage ./interpreter.nix {
|
||||||
sourceVersion = { major = "5"; minor = "4"; patch = "2"; };
|
sourceVersion = { major = "5"; minor = "4"; patch = "3"; };
|
||||||
hash = "0ksj5zpj74n0jkamy3di1p6l10v4gjnd2zjnb453qc6px6bhsmqi";
|
hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
|
||||||
|
|
||||||
patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
|
patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ self, callPackage, lib }:
|
{ self, callPackage, lib }:
|
||||||
callPackage ./default.nix {
|
callPackage ./default.nix {
|
||||||
inherit self;
|
inherit self;
|
||||||
version = "2.0.5-2021-05-17";
|
version = "2.0.5-2021-05-29";
|
||||||
rev = "44684fa71d8af6fa8b3051c7d763bbfdcf7915d7";
|
rev = "c2cfa04231785116d9d198462830f41ef94147c0";
|
||||||
isStable = true;
|
isStable = true;
|
||||||
sha256 = "049d3l0miv4n0cnm35ml8flrb9vs12zvbda2743vypckymidliqp";
|
sha256 = "1fw64pv0dvzb9bgr2zwcv9q8gqgsmfnvrcrmrdfgj4ncamgdnilj";
|
||||||
extraMeta = { # this isn't precise but it at least stops the useless Hydra build
|
extraMeta = { # this isn't precise but it at least stops the useless Hydra build
|
||||||
platforms = with lib; filter (p: p != "aarch64-linux")
|
platforms = with lib; filter (p: p != "aarch64-linux")
|
||||||
(platforms.linux ++ platforms.darwin);
|
(platforms.linux ++ platforms.darwin);
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ self, callPackage }:
|
{ self, callPackage }:
|
||||||
callPackage ./default.nix {
|
callPackage ./default.nix {
|
||||||
inherit self;
|
inherit self;
|
||||||
version = "2.1.0-2021-05-22";
|
version = "2.1.0-2021-05-29";
|
||||||
rev = "5783ba1bf73c53ca56e64ed0c462c62224f0393c";
|
rev = "839fb5bd72341d8e67b6cfc2053e2acffdb75567";
|
||||||
isStable = false;
|
isStable = false;
|
||||||
sha256 = "1j25xnbradks58lwsqnxcc7k29wsk2hnky0b1vjzpadrj0sxxc42";
|
sha256 = "1gyzq4n0fwah0245wazv4c43q9in1mwbk3dhh6cb1ijnjcxp2bb6";
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "armadillo";
|
pname = "armadillo";
|
||||||
version = "10.5.0";
|
version = "10.5.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||||
sha256 = "sha256-6pkMNNxtcNfJW0NU2fOwgZveJX27Z3ljSOkeGWCCy4c=";
|
sha256 = "sha256-lq1uHLzyjz0cH/ly3ixA2t3b12gyVrrVAtPEY9L2TN8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue