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;
|
||||
name = "devhell";
|
||||
};
|
||||
devins2518 = {
|
||||
email = "drsingh2518@icloud.com";
|
||||
github = "devins2518";
|
||||
githubId = 17111639;
|
||||
name = "Devin Singh";
|
||||
};
|
||||
dezgeg = {
|
||||
email = "tuomas.tynkkynen@iki.fi";
|
||||
github = "dezgeg";
|
||||
|
@ -4115,6 +4121,12 @@
|
|||
githubId = 362833;
|
||||
name = "Hongchang Wu";
|
||||
};
|
||||
hoppla20 = {
|
||||
email = "privat@vincentcui.de";
|
||||
github = "hoppla20";
|
||||
githubId = 25618740;
|
||||
name = "Vincent Cui";
|
||||
};
|
||||
hoverbear = {
|
||||
email = "operator+nix@hoverbear.org";
|
||||
github = "hoverbear";
|
||||
|
@ -5172,6 +5184,16 @@
|
|||
githubId = 37185887;
|
||||
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 = {
|
||||
email = "jameschristopherkent@gmail.com";
|
||||
github = "kentjames";
|
||||
|
@ -6258,6 +6280,12 @@
|
|||
githubId = 11810057;
|
||||
name = "Matt Snider";
|
||||
};
|
||||
mattchrist = {
|
||||
email = "nixpkgs-matt@christ.systems";
|
||||
github = "mattchrist";
|
||||
githubId = 952712;
|
||||
name = "Matt Christ";
|
||||
};
|
||||
matthewbauer = {
|
||||
email = "mjbauer95@gmail.com";
|
||||
github = "matthewbauer";
|
||||
|
@ -8795,6 +8823,12 @@
|
|||
githubId = 506953;
|
||||
name = "Ruud van Asseldonk";
|
||||
};
|
||||
rvarago = {
|
||||
email = "rafael.varago@gmail.com";
|
||||
github = "rvarago";
|
||||
githubId = 7365864;
|
||||
name = "Rafael Varago";
|
||||
};
|
||||
rvl = {
|
||||
email = "dev+nix@rodney.id.au";
|
||||
github = "rvl";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<para>
|
||||
<emphasis>Stable channels</emphasis>, such as
|
||||
<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,
|
||||
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
|
||||
|
@ -38,7 +38,7 @@
|
|||
<para>
|
||||
<emphasis>Small channels</emphasis>, such as
|
||||
<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
|
||||
<literal
|
||||
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
|
||||
|
@ -63,8 +63,8 @@
|
|||
<para>
|
||||
When you first install NixOS, you’re automatically subscribed to the NixOS
|
||||
channel that corresponds to your installation source. For instance, if you
|
||||
installed from a 20.09 ISO, you will be subscribed to the
|
||||
<literal>nixos-20.09</literal> channel. To see which NixOS channel you’re
|
||||
installed from a 21.05 ISO, you will be subscribed to the
|
||||
<literal>nixos-21.05</literal> channel. To see which NixOS channel you’re
|
||||
subscribed to, run the following as root:
|
||||
<screen>
|
||||
<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
|
||||
</screen>
|
||||
(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>
|
||||
<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>
|
||||
If you have a server, you may want to use the “small” channel instead:
|
||||
<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>
|
||||
And if you want to live on the bleeding edge:
|
||||
<screen>
|
||||
|
@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable
|
|||
kernel, initrd or kernel modules.
|
||||
You can also specify a channel explicitly, e.g.
|
||||
<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>
|
||||
</para>
|
||||
</section>
|
||||
|
|
|
@ -3,8 +3,11 @@
|
|||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
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"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
|
@ -18,114 +21,81 @@
|
|||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support is planned until the end of December 2021, handing over to 21.11.
|
||||
Core version changes:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
gcc: 9.3.0 -> 10.3.0
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
glibc: 2.30 -> 2.32
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
default linux: 5.4 -> 5.10, all supported kernels available
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
Python optimizations were disabled again. Builds with optimizations enabled
|
||||
are not reproducible. Optimizations can now be enabled with an option.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
Python optimizations were disabled again. Builds with optimizations enabled
|
||||
are not reproducible. Optimizations can now be enabled with an option.
|
||||
</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>
|
||||
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
@ -141,6 +111,20 @@
|
|||
</para>
|
||||
|
||||
<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>
|
||||
<para>
|
||||
<link xlink:href="https://www.keycloak.org/">Keycloak</link>,
|
||||
|
@ -193,6 +177,10 @@
|
|||
</para>
|
||||
|
||||
<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>
|
||||
<para>
|
||||
If you are using <option>services.udev.extraRules</option> to assign
|
||||
|
@ -600,7 +588,7 @@ http://some.json-exporter.host:7979/probe?target=https://example.com/some/json/e
|
|||
<programlisting>
|
||||
self: super:
|
||||
{
|
||||
mpi = super.mpich;
|
||||
mpi = super.mpich;
|
||||
}
|
||||
</programlisting>
|
||||
</para>
|
||||
|
@ -804,6 +792,16 @@ environment.systemPackages = [
|
|||
the deprecated <option>services.radicale.config</option> is used.
|
||||
</para>
|
||||
</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>
|
||||
</section>
|
||||
|
||||
|
@ -823,6 +821,85 @@ environment.systemPackages = [
|
|||
for details.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
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.
|
||||
See its <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/">release notes</link>.
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
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>
|
||||
|
|
|
@ -74,11 +74,9 @@ pkgs.stdenv.mkDerivation {
|
|||
return 1
|
||||
fi
|
||||
|
||||
echo "Resizing to minimum allowed size"
|
||||
resize2fs -M $img
|
||||
|
||||
# And a final fsck, because of the previous truncating.
|
||||
fsck.ext4 -n -f $img
|
||||
# We may want to shrink the file system and resize the image to
|
||||
# get rid of the unnecessary slack here--but see
|
||||
# https://github.com/NixOS/nixpkgs/issues/125121 for caveats.
|
||||
|
||||
if [ ${builtins.toString compressImage} ]; then
|
||||
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)
|
||||
|
||||
|
||||
def retry(fn: Callable) -> None:
|
||||
def retry(fn: Callable, timeout: int = 900) -> None:
|
||||
"""Call the given function repeatedly, with 1 second intervals,
|
||||
until it returns True or a timeout is reached.
|
||||
"""
|
||||
|
||||
for _ in range(900):
|
||||
for _ in range(timeout):
|
||||
if fn(False):
|
||||
return
|
||||
time.sleep(1)
|
||||
|
||||
if not fn(True):
|
||||
raise Exception("action timed out")
|
||||
raise Exception(f"action timed out after {timeout} seconds")
|
||||
|
||||
|
||||
class Logger:
|
||||
|
|
|
@ -398,6 +398,7 @@
|
|||
./services/hardware/ratbagd.nix
|
||||
./services/hardware/sane.nix
|
||||
./services/hardware/sane_extra_backends/brscan4.nix
|
||||
./services/hardware/sane_extra_backends/brscan5.nix
|
||||
./services/hardware/sane_extra_backends/dsseries.nix
|
||||
./services/hardware/spacenavd.nix
|
||||
./services/hardware/tcsd.nix
|
||||
|
@ -547,6 +548,7 @@
|
|||
./services/misc/ripple-data-api.nix
|
||||
./services/misc/serviio.nix
|
||||
./services/misc/safeeyes.nix
|
||||
./services/misc/sdrplay.nix
|
||||
./services/misc/sickbeard.nix
|
||||
./services/misc/siproxd.nix
|
||||
./services/misc/snapper.nix
|
||||
|
@ -1112,6 +1114,7 @@
|
|||
./virtualisation/openvswitch.nix
|
||||
./virtualisation/parallels-guest.nix
|
||||
./virtualisation/podman.nix
|
||||
./virtualisation/podman-network-socket-ghostunnel.nix
|
||||
./virtualisation/qemu-guest-agent.nix
|
||||
./virtualisation/railcar.nix
|
||||
./virtualisation/spice-usb-redirection.nix
|
||||
|
|
|
@ -152,7 +152,7 @@ let
|
|||
);
|
||||
renewOpts = escapeShellArgs (
|
||||
commonOpts
|
||||
++ [ "renew" "--reuse-key" ]
|
||||
++ [ "renew" ]
|
||||
++ optionals data.ocspMustStaple [ "--must-staple" ]
|
||||
++ data.extraLegoRenewFlags
|
||||
);
|
||||
|
|
|
@ -238,8 +238,7 @@ in
|
|||
in
|
||||
optionalString (cfg.privateSshKeyPath != null) ''
|
||||
mkdir -m 0700 -p "${sshDir}"
|
||||
cp -f "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
||||
chmod 600 "${sshDir}"/id_rsa
|
||||
install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
|
||||
'' + ''
|
||||
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
|
||||
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
|
||||
noDesktopIcon=true
|
||||
noBackup=${cfg.noBackup}
|
||||
noBackup=${lib.boolToString cfg.noBackup}
|
||||
|
||||
[Network]
|
||||
# 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: ''
|
||||
# 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
|
||||
umask 0177
|
||||
echo "<?php" >> "${hostStateDir}/secret-keys.php"
|
||||
|
|
|
@ -160,7 +160,7 @@ in {
|
|||
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
|
||||
"allow ${e}") cfg.allowedBridges;
|
||||
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" ];
|
||||
|
|
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
|
||||
cfg = config.virtualisation.podman;
|
||||
toml = pkgs.formats.toml { };
|
||||
|
@ -25,6 +25,7 @@ let
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
./podman-network-socket.nix
|
||||
(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 {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
@ -92,7 +107,7 @@ in
|
|||
environment.systemPackages = [ cfg.package ]
|
||||
++ 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 = {
|
||||
enable = true; # Enable common /etc/containers configuration
|
||||
|
@ -111,14 +126,36 @@ in
|
|||
};
|
||||
|
||||
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 = [
|
||||
{
|
||||
assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
|
||||
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 {};
|
||||
podgrab = handleTest ./podgrab.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 {};
|
||||
postfix = handleTest ./postfix.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;
|
||||
|
||||
# To test docker socket support
|
||||
virtualisation.podman.dockerSocket.enable = true;
|
||||
environment.systemPackages = [
|
||||
pkgs.docker-client
|
||||
];
|
||||
|
||||
users.users.alice = {
|
||||
isNormalUser = true;
|
||||
home = "/home/alice";
|
||||
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
|
||||
|
||||
|
||||
def su_cmd(cmd):
|
||||
def su_cmd(cmd, user = "alice"):
|
||||
cmd = shlex.quote(cmd)
|
||||
return f"su alice -l -c {cmd}"
|
||||
return f"su {user} -l -c {cmd}"
|
||||
|
||||
|
||||
podman.wait_for_unit("sockets.target")
|
||||
|
@ -105,6 +118,27 @@ import ./make-test-python.nix (
|
|||
assert pid == "1"
|
||||
pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
|
||||
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 {
|
||||
inherit pname;
|
||||
version = if isStereo
|
||||
then "2.76" # stereo
|
||||
else "2.75"; # normal
|
||||
then "2.77" # stereo
|
||||
else "2.76"; # normal
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
|
||||
sha256 = if isStereo
|
||||
then "12cz3780x5k047jqdv69n6rjgbfiwv67z850kfl4i37lxja432l7" # stereo
|
||||
else "1km97nl7qvk6qc5l5j69wncbm76hf86j47sgzgr968423g0bxxlk"; # normal
|
||||
then "1hiig2d152sv9kazwz33i56x1c54h5sh21ipkqnp6qlnwj8x1ksy" # stereo
|
||||
else "0d7a3han4jw4bwiba3j87racswaajgl3pj4sb5lawdqdxicv3dn1"; # normal
|
||||
};
|
||||
sourceRoot = (if isStereo then "gt2stereo/trunk" else "goattrk2") + "/src";
|
||||
sourceRoot = "src";
|
||||
|
||||
nativeBuildInputs = [ copyDesktopItems unzip imagemagick ];
|
||||
buildInputs = [ SDL ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "GxPlugins.lv2";
|
||||
version = "0.8";
|
||||
version = "0.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "brummer10";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
|
||||
sha256 = "02fksl8wr443ygwgcd1c2zab8kp67a6ps12k71ysqx7szv4zq877";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://github.com/brummer10/GxPlugins.lv2";
|
||||
description = "A set of extra lv2 plugins from the guitarix project";
|
||||
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";
|
||||
version = "unstable-2014-04-23";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
# fetchzip does not accept urls that do not end with .zip.
|
||||
url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
|
||||
sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magnetophon";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0xbvicfk1rgp01nlg6hlym9bnygry0nrbv88mv7w6hnacvl63ba4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
buildInputs = [ lv2 ];
|
||||
|
||||
unpackPhase = ''
|
||||
unzip $src
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
make -C Molot_Mono_Lite
|
||||
make -C Molot_Stereo_Lite
|
||||
'';
|
||||
makeFlags = [ "INSTALL_DIR=$out/lib/lv2" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
|
||||
make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
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;
|
||||
maintainers = [ maintainers.magnetophon ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -14,16 +14,16 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ncspot";
|
||||
version = "0.7.1";
|
||||
version = "0.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = "v${version}";
|
||||
sha256 = "1qhdhybbgnn7ky9qdxwi07flwzjagp22qmlccbz1z3lhznm9a971";
|
||||
sha256 = "0ww7ipyvcdphbkzjpvdqs1s3bqk3rj3jdy1n3bnk76csw9vgn2zi";
|
||||
};
|
||||
|
||||
cargoSha256 = "1kv37ib0klykmjabm1qyz55frs7djkx225alj4rk4a92xq9m8i9v";
|
||||
cargoSha256 = "1mrjp5p3iryxzgg6ca9zjwm8n6w0ljs108ll0wkwgfih6rip7ba4";
|
||||
|
||||
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,
|
||||
gst_all_1, withGstPlugins ? true,
|
||||
xineBackend ? false, xine-lib,
|
||||
|
@ -9,15 +9,13 @@
|
|||
let optionals = lib.optionals; in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "quodlibet${tag}";
|
||||
version = "4.3.0";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
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 ];
|
||||
|
||||
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 = ''
|
||||
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
|
||||
# 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
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
||||
configureFlags = [ "--enable-dependency-tracking" ];
|
||||
configureFlags = [ "--enable-dependency-tracking" ]
|
||||
++ lib.optional stdenv.isDarwin "--disable-sdltest";
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook python ];
|
||||
|
||||
|
|
|
@ -19,20 +19,20 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pika-backup";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "pika-backup";
|
||||
rev = "v${version}";
|
||||
sha256 = "0cr3axfp15nzwmsqyz6j781qhr2gsn9p69m0jfzy89pl83d6vcz0";
|
||||
sha256 = "sha256-dKVyvB4s1MZHri0dFJDBUXQKsi2KgP30ZhsJ486M+og=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "1z0cbrkhxyzwf7vjjsvdppb7zhflpkw4m5cy90a2315nbll3hpbp";
|
||||
sha256 = "1vsh8vqgmfady82d7wfxkknmrp7mq7nizpif2zwg3kqbl964mp3y";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -54,15 +54,7 @@ let
|
|||
|
||||
|
||||
configurePatched = configure // {
|
||||
packages.nix = {
|
||||
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;
|
||||
customRC = pluginRc + customRC + (configure.customRC or "");
|
||||
};
|
||||
|
||||
# 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.";
|
||||
|
||||
wrapNeovimUnstable neovim (res // {
|
||||
wrapperArgs = lib.escapeShellArgs (
|
||||
res.wrapperArgs ++ lib.optionals (configure != {}) [
|
||||
"--add-flags" "-u ${writeText "init.vim" res.neovimRcContent}"
|
||||
]) + " " + extraMakeWrapperArgs
|
||||
;
|
||||
wrapperArgs = lib.escapeShellArgs res.wrapperArgs + extraMakeWrapperArgs;
|
||||
wrapRc = (configure != {});
|
||||
});
|
||||
in
|
||||
{
|
||||
|
|
|
@ -107,6 +107,7 @@ let
|
|||
'')
|
||||
+ ''
|
||||
rm $out/bin/nvim
|
||||
touch $out/rplugin.vim
|
||||
makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
|
||||
'';
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ let
|
|||
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 == "powerpc64le-linux" then "ppc64le"
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
else null;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
configureFlags =
|
||||
[ "--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.optionals (ghostscript != null)
|
||||
[ "--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 == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
|
||||
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
else null;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
configureFlags =
|
||||
[ "--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.optionals (ghostscript != null)
|
||||
[ "--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 {
|
||||
akonadi = callPackage ./akonadi {};
|
||||
akonadi-calendar = callPackage ./akonadi-calendar.nix {};
|
||||
akonadi-calendar-tools = callPackage ./akonadi-calendar-tools.nix {};
|
||||
akonadi-contacts = callPackage ./akonadi-contacts.nix {};
|
||||
akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix {};
|
||||
akonadi-mime = callPackage ./akonadi-mime.nix {};
|
||||
|
@ -93,6 +94,7 @@ let
|
|||
incidenceeditor = callPackage ./incidenceeditor.nix {};
|
||||
k3b = callPackage ./k3b.nix {};
|
||||
kaccounts-integration = callPackage ./kaccounts-integration.nix {};
|
||||
kaccounts-providers = callPackage ./kaccounts-providers.nix {};
|
||||
kaddressbook = callPackage ./kaddressbook.nix {};
|
||||
kalarm = callPackage ./kalarm.nix {};
|
||||
kalarmcal = callPackage ./kalarmcal.nix {};
|
||||
|
@ -137,6 +139,7 @@ let
|
|||
kipi-plugins = callPackage ./kipi-plugins.nix {};
|
||||
kitinerary = callPackage ./kitinerary.nix {};
|
||||
kio-extras = callPackage ./kio-extras.nix {};
|
||||
kio-gdrive = callPackage ./kio-gdrive.nix {};
|
||||
kldap = callPackage ./kldap.nix {};
|
||||
kleopatra = callPackage ./kleopatra.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 {
|
||||
pname = "dbeaver";
|
||||
version = "21.0.5"; # When updating also update fetchedMavenDeps.sha256
|
||||
version = "21.1.0"; # When updating also update fetchedMavenDeps.sha256
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dbeaver";
|
||||
repo = "dbeaver";
|
||||
rev = version;
|
||||
sha256 = "sha256-WMXhGXGHNjMJqob6A5S4+t9MDdJydAjdoY0u7T3ANbw=";
|
||||
sha256 = "sha256-MHfW6gZFB2osE+8Ek7I40fg2cdowph3hvKqkjG7+rY4=";
|
||||
};
|
||||
|
||||
fetchedMavenDeps = stdenv.mkDerivation {
|
||||
|
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
|||
dontFixup = true;
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-RspJTWVM0ZpAz4yDeKsG7wSHZ//bi3SSV5c0gbsqZKY=";
|
||||
outputHash = "sha256-FdWQ+2U5bIXSASm3SaLjyQlaRc1AkYPpFJSP4PnCWJw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "gpxsee";
|
||||
version = "9.0";
|
||||
version = "9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "GPXSee";
|
||||
rev = version;
|
||||
sha256 = "sha256-4MzRXpxvJcj5KptTBH6rSr2ZyQ13nV7Yq96ti+CMytw=";
|
||||
sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
|
||||
};
|
||||
|
||||
patches = (substituteAll {
|
||||
|
@ -39,6 +39,6 @@ mkDerivation rec {
|
|||
changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
|
||||
license = licenses.gpl3Only;
|
||||
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
|
||||
, curl, cdparanoia, libid3tag, ncurses, libtool }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, gtk2
|
||||
, glib
|
||||
, pkg-config
|
||||
, libgnome
|
||||
, libgnomeui
|
||||
, vte
|
||||
, curl
|
||||
, cdparanoia
|
||||
, libid3tag
|
||||
, ncurses
|
||||
, libtool
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "grip-4.2.0";
|
||||
name = "grip-4.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/grip/${name}.tar.gz";
|
||||
sha256 = "1si5kidwg0i2jg0brzyvjrzw24v3km2hdgd4kda1adzq81a3p1cs";
|
||||
sha256 = "sha256-3bFJURPbq9rzLsJCppRjSARhcOJxC4eSfw5VxvZgQ3Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia
|
||||
libid3tag ncurses libtool ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
# glib-2.62 deprecations
|
||||
NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
|
||||
nativeBuildInputs = [ pkg-config libtool ];
|
||||
buildInputs = [
|
||||
gtk2
|
||||
glib
|
||||
libgnome
|
||||
libgnomeui
|
||||
vte
|
||||
curl
|
||||
cdparanoia
|
||||
libid3tag
|
||||
ncurses
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "GTK-based audio CD player/ripper";
|
||||
homepage = "http://nostatic.org/grip";
|
||||
license = lib.licenses.gpl2;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = with lib.maintainers; [ marcweber peti ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "xplr";
|
||||
version = "0.10.1";
|
||||
version = "0.13.1";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "17x514pwbkzkkrd47a66a4iz3bxrxvm8hk5hphsfbhgzqfnf9iy7";
|
||||
sha256 = "1aanw0l8b4ak0kikkixmb817qw48ypviq9dxdivzwc29rjvgp152";
|
||||
};
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
||||
|
||||
cargoSha256 = "03y2fk174rdjvw8wdzwc0hhj0zqwpap7qcga51yhq877rgyxbxir";
|
||||
cargoSha256 = "16iaj1pqvqwi0rq4k3lmqwd8skbjf55133ri69hj26gz88k4q43w";
|
||||
|
||||
meta = with lib; {
|
||||
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
|
||||
# Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
|
||||
./patches/fix-missing-atspi2-dependency.patch
|
||||
] ++ optionals (chromiumVersionAtLeast "91") [
|
||||
./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString (chromiumVersionAtLeast "91") ''
|
||||
# Required for patchShebangs (unsupported):
|
||||
chmod -x third_party/webgpu-cts/src/tools/deno
|
||||
'' + ''
|
||||
postPatch = ''
|
||||
# remove unused third-party
|
||||
for lib in ${toString gnSystemLibraries}; do
|
||||
if [ -d "third_party/$lib" ]; then
|
||||
|
@ -191,6 +187,7 @@ let
|
|||
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
|
||||
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
|
||||
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
|
||||
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
|
||||
|
|
|
@ -44,19 +44,19 @@
|
|||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "90.0.4430.212",
|
||||
"sha256": "17nmhrkl81qqvzbh861k2mmifncx4wg1mv1fmn52f8gzn461vqdb",
|
||||
"sha256bin64": "1y33c5829s22yfj0qmsj8fpcxnjhcm3fsxz7744csfsa9cy4fjr7",
|
||||
"version": "91.0.4472.77",
|
||||
"sha256": "0c8vj3gq3nmb7ssiwj6875g0a8hcprss1a4gqw9h7llqywza9ma5",
|
||||
"sha256bin64": "0caf47xam5igdnbhipal1iyicnxxvadhi61k199rwysrvyv5sdad",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-02-09",
|
||||
"version": "2021-04-06",
|
||||
"url": "https://gn.googlesource.com/gn",
|
||||
"rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
|
||||
"sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
|
||||
"rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
|
||||
"sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "90.0.4430.212-1",
|
||||
"sha256": "05jh05a4g50ws7pr18dl5pwi95knygh6xywp7kyydir7wy1pbin8"
|
||||
"rev": "91.0.4472.77-1",
|
||||
"sha256": "1jfmmkw1y4rcjfgsm7b4v2lrgd3sks5qpajvq0djflbhkpsqxfk0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,13 +13,13 @@ assert enablePython -> python != null;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elinks";
|
||||
version = "0.14.0";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rkd77";
|
||||
repo = "felinks";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
|
||||
sha256 = "sha256-D7dUVHgYGzY4FXEnOzXw0Fao3gLgfFuCl8LJdLVpcSM=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -7,10 +7,10 @@ in
|
|||
rec {
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
ffversion = "88.0.1";
|
||||
ffversion = "89.0";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
||||
sha512 = "e2d7fc950ba49f225c83ee1d799d6318fcf16c33a3b7f40b85c49d5b7865f7e632c703e5fd227a303b56e2565d0796283ebb12d7fd1a02781dcaa45e84cea934";
|
||||
sha512 = "5089720feda15d054d0aa4c3bdeb84760314dadd6381d7360e688d8e396154868220c6315add650d8d2a42652cb8a9bfeb833885812ef0bd70a74ee58ad18aa3";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -19,13 +19,13 @@ let
|
|||
in
|
||||
buildGoModule rec {
|
||||
pname = "argo";
|
||||
version = "3.0.6";
|
||||
version = "3.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-QD5V6Bz/wfbyNPoXizjhPGyHN7ieotsYbwLTz2ADfcY=";
|
||||
sha256 = "sha256-lZTSUNtmJZKONt0Bv42dBAc+87L14HaPxvPxhFe8nyc=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg=";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cni-plugin-dnsname";
|
||||
version = "1.1.1";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "dnsname";
|
||||
rev = "v${version}";
|
||||
sha256 = "090kpq2ppan9ayajdk5vwbvww30nphylgajn2p3441d4jg2nvsm3";
|
||||
sha256 = "sha256-hHkQOHDso92gXFCz40iQ7j2cHTEAMsaeW8MCJV2Otqo=";
|
||||
};
|
||||
|
||||
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
|
||||
running in development environment and try to serve assets from the
|
||||
source tree, which is not there once build completes. */
|
||||
version = "0.18.10";
|
||||
version = "0.20.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tilt-dev";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
|
||||
sha256 = "sha256-pUKKHrShED7yp5WSmHSbS+eiYs22Nm2/ouc2a8WYc38=";
|
||||
};
|
||||
vendorSha256 = null;
|
||||
|
||||
|
|
|
@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
|
|||
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 = [
|
||||
# Post install tries to generate an icon cache & update the
|
||||
# desktop database. The gtk setup hook drop-icon-theme-cache.sh
|
||||
|
|
|
@ -4,13 +4,13 @@ let
|
|||
arch = if stdenv.is64bit then "amd64" else "x86";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "teamspeak-server";
|
||||
version = "3.13.3";
|
||||
version = "3.13.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
|
||||
sha256 = if stdenv.is64bit
|
||||
then "sha256-+b9S0ekQmXF5KwvVcmHIDpp0iZRO2W1ls8eYhDzjUUw="
|
||||
else "sha256-Qu6xPzbUdqO93j353cfQILlFYqmwFSnFWG9TjniX0+c=";
|
||||
then "sha256-2tSX/ET2lZsi0mVB3KnbnBXMSTRsneGUA8w6mZ6TmlY="
|
||||
else "sha256-RdxG4nGXTTSY+P5oZu4uP5l7gKcU9C6uIILyNldSK50=";
|
||||
};
|
||||
|
||||
buildInputs = [ stdenv.cc.cc postgresql.lib ];
|
||||
|
@ -18,6 +18,8 @@ in stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# Install files.
|
||||
mkdir -p $out/lib/teamspeak
|
||||
mv * $out/lib/teamspeak/
|
||||
|
@ -26,18 +28,20 @@ in stdenv.mkDerivation rec {
|
|||
mkdir -p $out/bin/
|
||||
ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server
|
||||
ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = writeScript "update-teampeak-server" ''
|
||||
#!/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
|
||||
|
||||
version=$( \
|
||||
curl -s "https://www.teamspeak.de/download/teamspeak-3-amd64-server-linux/" \
|
||||
| grep softwareVersion \
|
||||
| sed -E -e 's/^.*<span itemprop="softwareVersion">([^<]+)<\/span>.*$/\1/' \
|
||||
curl https://www.teamspeak.com/en/downloads/ \
|
||||
| pup "#server .linux .version json{}" \
|
||||
| jq -r ".[0].text"
|
||||
)
|
||||
|
||||
versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version")
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "catgirl";
|
||||
version = "1.7";
|
||||
version = "1.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-3shSdeq4l6Y5DEJZEVMHAngp6vjnkPjzpLpcp407X/0=";
|
||||
sha256 = "0svpd2nqsr55ac98vczyhihs6pvgw7chspf6bdlwl98gch39dxif";
|
||||
};
|
||||
|
||||
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 {
|
||||
pname = "wee-slack";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "wee-slack";
|
||||
owner = "wee-slack";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6Z/H15bKe0PKpNe9PCgc5mLOii3CILCAVon7EgzIkx8=";
|
||||
sha256 = "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -16,10 +16,13 @@ stdenv.mkDerivation rec {
|
|||
src = ./libpath.patch;
|
||||
env = "${buildEnv {
|
||||
name = "wee-slack-env";
|
||||
paths = with python3Packages; [ websocket_client six ];
|
||||
paths = with python3Packages; [
|
||||
websocket_client
|
||||
six
|
||||
];
|
||||
}}/${python3Packages.python.sitePackages}";
|
||||
})
|
||||
./0001-hardcode-json-file-path.patch
|
||||
./load_weemoji_path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
diff --git a/wee_slack.py b/wee_slack.py
|
||||
index dbe6446..d1b7546 100644
|
||||
index e4716b4..f673b7c 100644
|
||||
--- a/wee_slack.py
|
||||
+++ b/wee_slack.py
|
||||
@@ -25,6 +25,8 @@ import random
|
||||
import socket
|
||||
import string
|
||||
@@ -31,6 +31,8 @@ import string
|
||||
# See https://github.com/numpy/numpy/issues/11925
|
||||
sys.modules["numpy"] = None
|
||||
|
||||
+sys.path.append('@env@')
|
||||
+
|
||||
from websocket import ABNF, create_connection, WebSocketConnectionClosedException
|
||||
|
||||
try:
|
||||
from websocket import ( # noqa: E402
|
||||
ABNF,
|
||||
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 {
|
||||
pname = "mblaze";
|
||||
version = "1.1";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||
buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -22,6 +24,24 @@ stdenv.mkDerivation rec {
|
|||
installShellCompletion contrib/_mblaze
|
||||
'' + lib.optionalString (ruby != null) ''
|
||||
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; {
|
||||
|
|
|
@ -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
|
||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
|
||||
}:
|
||||
|
@ -14,6 +14,14 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2021-32055.patch";
|
||||
url = "https://github.com/neomutt/neomutt/commit/fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc.patch";
|
||||
sha256 = "0bb7gisjynq3w7hhl6vxa469h609bcz6fkdi8vf740pqrwhk68yn";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cyrus_sasl gss gpgme libkrb5 libidn ncurses
|
||||
notmuch openssl perl lmdb
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "nextcloud-client";
|
||||
version = "3.2.1";
|
||||
version = "3.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nextcloud";
|
||||
repo = "desktop";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-I31w79GDZxSGlT6YPKSpq0aiyGnJiJBVdTyWI+DUoz4=";
|
||||
sha256 = "sha256-UPWr5P6oEBtDK/Cuz8nZlHqKFyGEf44vbMfrphxNkMU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -13,10 +13,24 @@
|
|||
, gettext
|
||||
, gobject-introspection
|
||||
, 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 {
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src sample_documents;
|
||||
pname = "paperwork";
|
||||
|
||||
sourceRoot = "source/paperwork-gtk";
|
||||
|
@ -52,9 +66,16 @@ python3Packages.buildPythonApplication rec {
|
|||
for i in $site/data/paperwork_*.png; do
|
||||
ln -s $i $site/icon/out;
|
||||
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 = [
|
||||
wrapGAppsHook
|
||||
|
@ -62,7 +83,7 @@ python3Packages.buildPythonApplication rec {
|
|||
(lib.getBin gettext)
|
||||
which
|
||||
gdk-pixbuf # for the setup hook
|
||||
];
|
||||
] ++ documentation_deps;
|
||||
|
||||
buildInputs = [
|
||||
gnome.adwaita-icon-theme
|
||||
|
@ -78,13 +99,20 @@ python3Packages.buildPythonApplication rec {
|
|||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
# 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
|
||||
# resolution, because the Cairo test tries to draw a 200x200 window.
|
||||
preCheck = ''
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
# 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
|
||||
# resolution, because the Cairo test tries to draw a 200x200 window.
|
||||
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
|
||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
||||
$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; [
|
||||
|
@ -98,6 +126,8 @@ python3Packages.buildPythonApplication rec {
|
|||
setuptools
|
||||
];
|
||||
|
||||
disallowedRequisites = documentation_deps;
|
||||
|
||||
meta = {
|
||||
description = "A personal document manager for scanned documents";
|
||||
homepage = "https://openpaper.work/";
|
||||
|
|
|
@ -1,12 +1,22 @@
|
|||
{fetchFromGitLab}:
|
||||
rec {
|
||||
version = "2.0.2";
|
||||
version = "2.0.3";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
repo = "paperwork";
|
||||
group = "World";
|
||||
owner = "OpenPaperwork";
|
||||
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
|
||||
, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
|
||||
, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
|
||||
let
|
||||
|
||||
version = "2.2";
|
||||
|
||||
in mkDerivation {
|
||||
, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123
|
||||
} :
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "welle-io";
|
||||
inherit version;
|
||||
version = "2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AlbrechtL";
|
||||
repo = "welle.io";
|
||||
rev = "v${version}";
|
||||
sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
|
||||
sha256 = "1xl1lanw0xgmgks67dbfb2h52jxnrd1i2zik56v0q8dwsr7f0daw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
|
|
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
|
|||
mv html/en/_static{,.tmp}
|
||||
for _dir in `find -name _static` ; do
|
||||
rm -r $_dir
|
||||
ln -s html/en/_static $_dir
|
||||
ln -rs html/en/_static $_dir
|
||||
done
|
||||
mv html/en/_static{.tmp,}
|
||||
'';
|
||||
|
|
|
@ -16,9 +16,6 @@ stdenv.mkDerivation rec {
|
|||
./undefined_behavior.patch
|
||||
];
|
||||
|
||||
# patch needs to updated due to version bump
|
||||
#CXXFLAGS = "-Werror=return-type";
|
||||
|
||||
preConfigure =
|
||||
# Fix F77LD to workaround for a following build error:
|
||||
#
|
||||
|
@ -48,8 +45,6 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc";
|
||||
NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc";
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gitui";
|
||||
version = "0.15.0";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "extrawurst";
|
||||
repo = pname;
|
||||
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 ];
|
||||
buildInputs = [ openssl ]
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper
|
||||
{ lib, stdenv, fetchFromGitHub, makeWrapper, nix-update-script
|
||||
, python3, git, gnupg, less
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-repo";
|
||||
version = "2.14.5";
|
||||
version = "2.15.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "android";
|
||||
|
@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-3FSkWpHda1jVhy/633B+ippWcbKd83IlQcJYS9Qx5wQ=";
|
||||
};
|
||||
|
||||
patches = [ ./import-ssl-module.patch ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ python3 ];
|
||||
|
||||
|
@ -25,8 +23,12 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp repo $out/bin/repo
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Important runtime dependencies
|
||||
|
@ -35,6 +37,12 @@ stdenv.mkDerivation rec {
|
|||
"${lib.makeBinPath [ git gnupg less ]}"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "gitRepo";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Android's repo management tool";
|
||||
longDescription = ''
|
||||
|
@ -45,7 +53,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://android.googlesource.com/tools/repo";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ ];
|
||||
maintainers = with maintainers; [ otavio ];
|
||||
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
|
||||
, docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy
|
||||
, breezy ? null, cvs ? null, darcs ? null, fossil ? null
|
||||
, mercurial ? null, monotone ? null, rcs ? null
|
||||
, subversion ? null, cvs_fast_export ? null }:
|
||||
{ lib, stdenv, fetchurl, makeWrapper, buildGoModule, git
|
||||
, asciidoctor, ruby
|
||||
}:
|
||||
|
||||
with stdenv; with lib;
|
||||
let
|
||||
inherit (python27Packages) python;
|
||||
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;
|
||||
};
|
||||
buildGoModule rec {
|
||||
pname = "reposurgeon";
|
||||
version = "4.26";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-3.44.tar.xz";
|
||||
sha256 = "0il6hwrsm2qgg0vp5fcjh478y2x4zyw3mx2apcwc7svfj86pf7pn";
|
||||
url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-${version}.tar.xz";
|
||||
sha256 = "sha256-FuL5pvIM468hEm6rUBKGW6+WlYv4DPHNnpwpRGzMwlY=";
|
||||
};
|
||||
|
||||
# install fails because the files README.md, NEWS, and TODO were not included in the source distribution
|
||||
patches = [ ./fix-makefile.patch ];
|
||||
vendorSha256 = "sha256-KpdXI2Znhe0iCp0DjSZXzUYDZIz2KBRv1/SpaRTFMAc=";
|
||||
|
||||
buildInputs =
|
||||
[ docbook_xml_dtd_412 docbook_xsl asciidoc xmlto makeWrapper pypy ];
|
||||
subPackages = [ "." ];
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray=(
|
||||
XML_CATALOG_FILES="${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml"
|
||||
prefix="$out"
|
||||
pyinclude="-I${python}/include/python2.7"
|
||||
pylib="-L${python}/lib -lpython2.7"
|
||||
)
|
||||
runVend = true;
|
||||
|
||||
nativeBuildInputs = [ asciidoctor ruby ];
|
||||
|
||||
postBuild = ''
|
||||
patchShebangs .
|
||||
make all HTMLFILES=
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
let
|
||||
binpath = makeBinPath (
|
||||
filter (x: x != null)
|
||||
[ out git breezy cvs darcs fossil mercurial
|
||||
monotone rcs src subversion cvs_fast_export ]
|
||||
);
|
||||
pythonpath = makeSearchPathOutput "lib" python.sitePackages (
|
||||
filter (x: x != null)
|
||||
[ python27Packages.readline or null python27Packages.hglib or null ]
|
||||
);
|
||||
in ''
|
||||
for prog in reposurgeon repodiffer repotool; do
|
||||
wrapProgram $out/bin/$prog \
|
||||
--prefix PATH : "${binpath}" \
|
||||
--prefix PYTHONPATH : "${pythonpath}"
|
||||
done
|
||||
''
|
||||
;
|
||||
postInstall = ''
|
||||
make install prefix=$out HTMLFILES=
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A tool for editing version-control repository history";
|
||||
license = lib.licenses.bsd3;
|
||||
homepage = "http://www.catb.org/esr/reposurgeon/";
|
||||
maintainers = with lib.maintainers; [ dfoxfranke ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{ 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 }:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "kooha";
|
||||
version = "1.1.3";
|
||||
version = "1.2.1";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SeaDve";
|
||||
repo = "Kooha";
|
||||
rev = "v${version}";
|
||||
sha256 = "14lrx6wplvlk3cg3wij88h4ydp3m69pw7lvvzrq3j9qnh431bs36";
|
||||
sha256 = "1qwbzdn0n1nxcfci1bhhkfchdhw5yz74fdvsa84cznyyx2jils8w";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -19,8 +19,8 @@ python3.pkgs.buildPythonApplication rec {
|
|||
gobject-introspection
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gtk3
|
||||
libhandy
|
||||
gtk4
|
||||
libadwaita
|
||||
librsvg
|
||||
];
|
||||
|
||||
|
@ -48,6 +48,10 @@ python3.pkgs.buildPythonApplication rec {
|
|||
patchShebangs build-aux/meson/postinstall.py
|
||||
'';
|
||||
|
||||
installCheckPhase = ''
|
||||
$out/bin/kooha --help
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple screen recorder";
|
||||
homepage = "https://github.com/SeaDve/Kooha";
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
, v4l-utils }:
|
||||
mkDerivation rec {
|
||||
pname = "webcamoid";
|
||||
version = "8.7.1";
|
||||
version = "8.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "1d8g7mq0wf0ycds87xpdhr3zkljgjmb94n3ak9kkxj2fqp9242d2";
|
||||
sha256 = "0a8M9GQ6Ea9jBCyfbORVyB6HC/O6jdcIZruQZj9Aai4=";
|
||||
rev = version;
|
||||
repo = "webcamoid";
|
||||
owner = "webcamoid";
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, installShellFiles
|
||||
, makeWrapper
|
||||
, buildGoModule
|
||||
, gpgme
|
||||
, lvm2
|
||||
|
@ -37,7 +36,7 @@ buildGoModule rec {
|
|||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
|
||||
nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
btrfs-progs
|
||||
|
@ -70,15 +69,23 @@ buildGoModule rec {
|
|||
installShellCompletion --zsh completions/zsh/*
|
||||
MANDIR=$man/share/man make install.man-nobuild
|
||||
'' + lib.optionalString stdenv.isLinux ''
|
||||
wrapProgram $out/bin/podman \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
|
||||
install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.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
|
||||
'' + ''
|
||||
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; {
|
||||
homepage = "https://podman.io/";
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
, util-linux # nsenter
|
||||
, cni-plugins # not added to path
|
||||
, iptables
|
||||
, iproute2
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -25,6 +26,7 @@ let
|
|||
fuse-overlayfs
|
||||
util-linux
|
||||
iptables
|
||||
iproute2
|
||||
] ++ extraPackages);
|
||||
|
||||
in runCommand podman.name {
|
||||
|
@ -48,6 +50,7 @@ in runCommand podman.name {
|
|||
ln -s ${podman.man} $man
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s ${podman-unwrapped}/etc $out/etc
|
||||
ln -s ${podman-unwrapped}/lib $out/lib
|
||||
ln -s ${podman-unwrapped}/share $out/share
|
||||
makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
|
||||
|
|
|
@ -15,11 +15,11 @@ with lib;
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "singularity";
|
||||
version = "3.7.3";
|
||||
version = "3.7.4";
|
||||
|
||||
src = fetchurl {
|
||||
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";
|
||||
|
|
|
@ -9,10 +9,22 @@
|
|||
, lib
|
||||
, stdenvNoCC
|
||||
, 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 ? ""
|
||||
, propagateDoc ? bintools != null && bintools ? man
|
||||
, extraPackages ? [], extraBuildCommands ? ""
|
||||
, buildPackages ? {}
|
||||
, targetPackages ? {}
|
||||
, useMacosReexportHack ? false
|
||||
|
||||
# Darwin code signing support utilities
|
||||
|
@ -54,19 +66,19 @@ let
|
|||
# The dynamic linker has different names on different platforms. This is a
|
||||
# shell glob that ought to match it.
|
||||
dynamicLinker =
|
||||
/**/ if libc == null then null
|
||||
else if targetPlatform.libc == "musl" then "${libc_lib}/lib/ld-musl-*"
|
||||
/**/ if sharedLibraryLoader == null then null
|
||||
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.is64bit) then "/system/bin/linker64"
|
||||
else if targetPlatform.libc == "nblibc" then "${libc_lib}/libexec/ld.elf_so"
|
||||
else if targetPlatform.system == "i686-linux" then "${libc_lib}/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 == "powerpc64le-linux" then "${libc_lib}/lib/ld64.so.2"
|
||||
else if targetPlatform.libc == "nblibc" then "${sharedLibraryLoader}/libexec/ld.elf_so"
|
||||
else if targetPlatform.system == "i686-linux" then "${sharedLibraryLoader}/lib/ld-linux.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 "${sharedLibraryLoader}/lib/ld64.so.2"
|
||||
# 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 targetPlatform.system == "aarch64-linux" then "${libc_lib}/lib/ld-linux-aarch64.so.1"
|
||||
else if targetPlatform.system == "powerpc-linux" then "${libc_lib}/lib/ld.so.1"
|
||||
else if targetPlatform.isMips then "${libc_lib}/lib/ld.so.1"
|
||||
else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3"
|
||||
else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
|
||||
else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/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.isFreeBSD then "/libexec/ld-elf.so.1"
|
||||
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
|
||||
|
@ -224,10 +236,10 @@ stdenv.mkDerivation {
|
|||
##
|
||||
## Dynamic linker support
|
||||
##
|
||||
+ ''
|
||||
+ optionalString (sharedLibraryLoader != null) ''
|
||||
if [[ -z ''${dynamicLinker+x} ]]; then
|
||||
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
|
||||
''
|
||||
|
||||
|
@ -246,9 +258,9 @@ stdenv.mkDerivation {
|
|||
|
||||
${if targetPlatform.isDarwin then ''
|
||||
printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook
|
||||
'' else ''
|
||||
if [ -e ${libc_lib}/lib/32/ld-linux.so.2 ]; then
|
||||
echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
|
||||
'' else lib.optionalString (sharedLibraryLoader != null) ''
|
||||
if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then
|
||||
echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
|
||||
fi
|
||||
touch $out/nix-support/ld-set-dynamic-linker
|
||||
''}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <spawn.h>
|
||||
#include <dirent.h>
|
||||
|
||||
#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);
|
||||
}
|
||||
|
||||
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];
|
||||
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 <spawn.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
@ -31,6 +32,10 @@ void test_execv(void) {
|
|||
assert(execv(TESTPATH, argv) == 0);
|
||||
}
|
||||
|
||||
void test_system(void) {
|
||||
assert(system(TESTPATH) == 0);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
FILE *testfp;
|
||||
|
@ -50,6 +55,7 @@ int main(void)
|
|||
assert(stat(TESTPATH, &testsb) != -1);
|
||||
|
||||
test_spawn();
|
||||
test_system();
|
||||
test_execv();
|
||||
|
||||
/* If all goes well, this is never reached because test_execv() replaces
|
||||
|
|
|
@ -822,45 +822,6 @@ rec {
|
|||
/* The set of supported Dpkg-based distributions. */
|
||||
|
||||
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 = {
|
||||
name = "ubuntu-14.04-trusty-i386";
|
||||
fullName = "Ubuntu 14.04 Trusty (i386)";
|
||||
|
@ -929,40 +890,6 @@ rec {
|
|||
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 = {
|
||||
name = "ubuntu-18.04-bionic-i386";
|
||||
fullName = "Ubuntu 18.04 Bionic (i386)";
|
||||
|
@ -997,51 +924,83 @@ rec {
|
|||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||
};
|
||||
|
||||
debian8i386 = {
|
||||
name = "debian-8.11-jessie-i386";
|
||||
fullName = "Debian 8.11 Jessie (i386)";
|
||||
packagesList = fetchurl {
|
||||
url = "mirror://debian/dists/jessie/main/binary-i386/Packages.xz";
|
||||
sha256 = "0adblarhx50yga900il6m25ng0csa81i3wid1dxxmydbdmri7v7d";
|
||||
};
|
||||
urlPrefix = "mirror://debian";
|
||||
packages = commonDebianPackages;
|
||||
ubuntu2004i386 = {
|
||||
name = "ubuntu-20.04-focal-i386";
|
||||
fullName = "Ubuntu 20.04 Focal (i386)";
|
||||
packagesLists =
|
||||
[ (fetchurl {
|
||||
url = "mirror://ubuntu/dists/focal/main/binary-i386/Packages.xz";
|
||||
sha256 = "sha256-7RAYURoN3RKYQAHpwBS9TIV6vCmpURpphyMJQmV4wLc=";
|
||||
})
|
||||
(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 = {
|
||||
name = "debian-8.11-jessie-amd64";
|
||||
fullName = "Debian 8.11 Jessie (amd64)";
|
||||
packagesList = fetchurl {
|
||||
url = "mirror://debian/dists/jessie/main/binary-amd64/Packages.xz";
|
||||
sha256 = "09y1mv4kqllhxpk1ibjsyl5jig5bp0qxw6pp4sn56rglrpygmn5x";
|
||||
};
|
||||
urlPrefix = "mirror://debian";
|
||||
packages = commonDebianPackages;
|
||||
ubuntu2004x86_64 = {
|
||||
name = "ubuntu-20.04-focal-amd64";
|
||||
fullName = "Ubuntu 20.04 Focal (amd64)";
|
||||
packagesLists =
|
||||
[ (fetchurl {
|
||||
url = "mirror://ubuntu/dists/focal/main/binary-amd64/Packages.xz";
|
||||
sha256 = "sha256-d1eSH/j+7Zw5NKDJk21EG6SiOL7j6myMHfXLzUP8mGE=";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "mirror://ubuntu/dists/focal/universe/binary-amd64/Packages.xz";
|
||||
sha256 = "sha256-RqdG2seJvZU3rKVNsWgLnf9RwkgVMRE1A4IZnX2WudE=";
|
||||
})
|
||||
];
|
||||
urlPrefix = "mirror://ubuntu";
|
||||
packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
|
||||
};
|
||||
|
||||
debian9i386 = {
|
||||
name = "debian-9.8-stretch-i386";
|
||||
fullName = "Debian 9.8 Stretch (i386)";
|
||||
name = "debian-9.13-stretch-i386";
|
||||
fullName = "Debian 9.13 Stretch (i386)";
|
||||
packagesList = fetchurl {
|
||||
url = "http://snapshot.debian.org/archive/debian/20200301T030401Z/dists/stretch/main/binary-i386/Packages.xz";
|
||||
sha256 = "1jglr1d1jys3xddp8f7w9j05db39fah8xy4gfkpqbd1b5d2caslz";
|
||||
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-i386/Packages.xz";
|
||||
sha256 = "sha256-fFRumd20wuVaYxzw0VPkAw5mQo8kIg+eXII15VSz9wA=";
|
||||
};
|
||||
urlPrefix = "mirror://debian";
|
||||
packages = commonDebianPackages;
|
||||
};
|
||||
|
||||
debian9x86_64 = {
|
||||
name = "debian-9.8-stretch-amd64";
|
||||
fullName = "Debian 9.8 Stretch (amd64)";
|
||||
name = "debian-9.13-stretch-amd64";
|
||||
fullName = "Debian 9.13 Stretch (amd64)";
|
||||
packagesList = fetchurl {
|
||||
url = "http://snapshot.debian.org/archive/debian/20190503T090946Z/dists/stretch/main/binary-amd64/Packages.xz";
|
||||
sha256 = "01q00nl47p12n7wx0xclx59wf3zlkzrgj3zxpshyvb91xdnw5sh6";
|
||||
url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-amd64/Packages.xz";
|
||||
sha256 = "sha256-1p4DEVpTGlBE3PtbQ90kYw4QNHkW0F4rna/Xz+ncMhw=";
|
||||
};
|
||||
urlPrefix = "mirror://debian";
|
||||
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"
|
||||
];
|
||||
|
||||
commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" "mktemp" ];
|
||||
commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" ];
|
||||
|
||||
|
||||
/* 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 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20200910";
|
||||
pname = "numix-solarized-gtk-theme";
|
||||
version = "20210522";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ferdi265";
|
||||
repo = "numix-solarized-gtk-theme";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "05h1563sy6sfz76jadxsf730mav6bbjsk9xnadv49r16b8n8p9a9";
|
||||
sha256 = "0hin73fmfir4w1z0j87k5hahhf2blhcq4r7gf89gz4slnl18cvjh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
|
||||
|
@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
|
|||
buildPhase = "true";
|
||||
|
||||
installPhase = ''
|
||||
HOME="$NIX_BUILD_ROOT" # shut up inkscape's warnings
|
||||
runHook preInstall
|
||||
for theme in *.colors; do
|
||||
make THEME="''${theme/.colors/}" install
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
|
||||
downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
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 {
|
||||
pname = "cinnamon-translations";
|
||||
version = "4.8.3";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-o/JFfwloXLUOy9YQzHtMCuzK7yBp/G43VS/RguxiTPY=";
|
||||
hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -17,11 +17,12 @@
|
|||
, intltool
|
||||
, shared-mime-info
|
||||
, cinnamon-translations
|
||||
, libgsf
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nemo";
|
||||
version = "4.8.6";
|
||||
version = "5.0.0";
|
||||
|
||||
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
|
||||
|
||||
|
@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-OUv7l+klu5l1Y7m+iHiq/dDyxH3/hT4k7F9gDuUiGds=";
|
||||
sha256 = "07n9p93iyrzb7636qqwknq8dd3im1y6wb9jfvif96mbvvdwsnfyz";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
|
|||
libexif
|
||||
exempi
|
||||
gobject-introspection
|
||||
libgsf
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -63,7 +63,7 @@ let
|
|||
};
|
||||
|
||||
elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
|
||||
inherit erlang;
|
||||
erlang = pkgs.beam.interpreters.erlangR23;
|
||||
debugInfo = true;
|
||||
};
|
||||
|
||||
|
@ -83,7 +83,6 @@ let
|
|||
# without helper functions buildRebar3 and buildMix.
|
||||
hex = callPackage ./hex { };
|
||||
webdriver = callPackage ./webdriver { };
|
||||
relxExe = callPackage ../tools/erlang/relx-exe { };
|
||||
};
|
||||
in
|
||||
makeExtensible packages
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, lib }:
|
||||
let
|
||||
version = "0.15.0";
|
||||
version = "0.16.0";
|
||||
owner = "erlang-ls";
|
||||
repo = "erlang_ls";
|
||||
deps = import ./rebar-deps.nix {
|
||||
|
@ -12,7 +12,7 @@ in rebar3Relx {
|
|||
inherit version;
|
||||
src = fetchFromGitHub {
|
||||
inherit owner repo;
|
||||
sha256 = "1s6zk8r5plm7ajifz17mvfrnk5mzbhj7alayink9phqbmzrypnfg";
|
||||
sha256 = "0l09yhj3rsb9zj4cs6a1bcfmi6zbyb3xk1lv494xbyiv5d61vkwm";
|
||||
rev = version;
|
||||
};
|
||||
releaseType = "escript";
|
||||
|
|
|
@ -113,11 +113,11 @@ in { builder ? fetchOnly, fetchHex, fetchFromGitHub }: rec {
|
|||
};
|
||||
ranch = builder {
|
||||
name = "ranch";
|
||||
version = "1.7.1";
|
||||
version = "2.0.0";
|
||||
src = fetchHex {
|
||||
pkg = "ranch";
|
||||
version = "1.7.1";
|
||||
sha256 = "sha256-RR2FJ3h99xbZncNhYvygWTSRXbC2FBu9rC6o08evx9c=";
|
||||
version = "2.0.0";
|
||||
sha256 = "sha256-wgpIQMfWYjwZgS06fIKLLxvRU+8PEky2nFT+UdikKuA=";
|
||||
};
|
||||
beamDeps = [ ];
|
||||
};
|
||||
|
@ -131,6 +131,17 @@ in { builder ? fetchOnly, fetchHex, fetchFromGitHub }: rec {
|
|||
};
|
||||
beamDeps = [ ];
|
||||
};
|
||||
erlfmt = builder {
|
||||
name = "erlfmt";
|
||||
version = "git";
|
||||
src = fetchFromGitHub {
|
||||
owner = "whatsapp";
|
||||
repo = "erlfmt";
|
||||
rev = "2e93fc4a646111357642b0179a2a63151868d890";
|
||||
sha256 = "0n7kygycn05aqdp5dyj192mja89l4nxv2wg16qg2c0bmw9s7j2mr";
|
||||
};
|
||||
beamDeps = [ ];
|
||||
};
|
||||
ephemeral = builder {
|
||||
name = "ephemeral";
|
||||
version = "2.0.4";
|
||||
|
|
|
@ -41,7 +41,17 @@ llvmPackages.stdenv.mkDerivation rec {
|
|||
# Note: only openblas and not atlas part of this Nix expression
|
||||
# see pkgs/development/libraries/science/math/liblapack/3.5.0.nix
|
||||
# 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 ];
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ in stdenv.mkDerivation (rec {
|
|||
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";
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ in stdenv.mkDerivation (rec {
|
|||
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";
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ import ./default.nix {
|
|||
x86_64-apple-darwin = "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4";
|
||||
aarch64-apple-darwin = "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f";
|
||||
powerpc64le-unknown-linux-gnu = "7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680";
|
||||
riscv64gc-unknown-linux-gnu = "9d0c2c4ab2397e78758de8b6b57051482bcf20b6748e0e16d9d5bd23ce73d72a";
|
||||
};
|
||||
|
||||
selectRustPackage = pkgs: pkgs.rust_1_52;
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
"armv7l" = "armv7";
|
||||
"armv6l" = "arm";
|
||||
"armv5tel" = "armv5te";
|
||||
"riscv64" = "riscv64gc";
|
||||
}.${cpu.name} or cpu.name;
|
||||
in platform.rustc.config
|
||||
or "${cpu_}-${vendor.name}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
|
||||
|
|
|
@ -18,6 +18,7 @@ PLATFORMS=(
|
|||
x86_64-apple-darwin
|
||||
aarch64-apple-darwin
|
||||
powerpc64le-unknown-linux-gnu
|
||||
riscv64gc-unknown-linux-gnu
|
||||
)
|
||||
BASEURL=https://static.rust-lang.org/dist
|
||||
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 {
|
||||
pname = "babashka";
|
||||
version = "0.4.1";
|
||||
version = "0.4.3";
|
||||
|
||||
reflectionJson = fetchurl {
|
||||
name = "reflection.json";
|
||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-tKMxi0umMmM99NusSSE9tT95TBcfXm1lfo95fQRUBrs=";
|
||||
sha256 = "sha256-teZKAwSv9wliVFKdT76yQjMC5g7SGPAqcq/jZ07sYjQ=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
@ -110,9 +110,15 @@ stdenv.mkDerivation rec {
|
|||
- Batteries included (tools.cli, cheshire, ...)
|
||||
- Library support via popular tools like the clojure CLI
|
||||
'';
|
||||
homepage = "https://github.com/borkdude/babashka";
|
||||
homepage = "https://github.com/babashka/babashka";
|
||||
license = licenses.epl10;
|
||||
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 {
|
||||
lua5_4 = callPackage ./interpreter.nix {
|
||||
sourceVersion = { major = "5"; minor = "4"; patch = "2"; };
|
||||
hash = "0ksj5zpj74n0jkamy3di1p6l10v4gjnd2zjnb453qc6px6bhsmqi";
|
||||
sourceVersion = { major = "5"; minor = "4"; patch = "3"; };
|
||||
hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
|
||||
|
||||
patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
|
||||
};
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{ self, callPackage, lib }:
|
||||
callPackage ./default.nix {
|
||||
inherit self;
|
||||
version = "2.0.5-2021-05-17";
|
||||
rev = "44684fa71d8af6fa8b3051c7d763bbfdcf7915d7";
|
||||
version = "2.0.5-2021-05-29";
|
||||
rev = "c2cfa04231785116d9d198462830f41ef94147c0";
|
||||
isStable = true;
|
||||
sha256 = "049d3l0miv4n0cnm35ml8flrb9vs12zvbda2743vypckymidliqp";
|
||||
sha256 = "1fw64pv0dvzb9bgr2zwcv9q8gqgsmfnvrcrmrdfgj4ncamgdnilj";
|
||||
extraMeta = { # this isn't precise but it at least stops the useless Hydra build
|
||||
platforms = with lib; filter (p: p != "aarch64-linux")
|
||||
(platforms.linux ++ platforms.darwin);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ self, callPackage }:
|
||||
callPackage ./default.nix {
|
||||
inherit self;
|
||||
version = "2.1.0-2021-05-22";
|
||||
rev = "5783ba1bf73c53ca56e64ed0c462c62224f0393c";
|
||||
version = "2.1.0-2021-05-29";
|
||||
rev = "839fb5bd72341d8e67b6cfc2053e2acffdb75567";
|
||||
isStable = false;
|
||||
sha256 = "1j25xnbradks58lwsqnxcc7k29wsk2hnky0b1vjzpadrj0sxxc42";
|
||||
sha256 = "1gyzq4n0fwah0245wazv4c43q9in1mwbk3dhh6cb1ijnjcxp2bb6";
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "armadillo";
|
||||
version = "10.5.0";
|
||||
version = "10.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||
sha256 = "sha256-6pkMNNxtcNfJW0NU2fOwgZveJX27Z3ljSOkeGWCCy4c=";
|
||||
sha256 = "sha256-lq1uHLzyjz0cH/ly3ixA2t3b12gyVrrVAtPEY9L2TN8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue