Merge branch 'staging-next' into staging
Conflicts: pkgs/development/python-modules/panel/default.nix pkgs/os-specific/linux/kernel/generic.nix pkgs/servers/home-assistant/default.nix
This commit is contained in:
commit
219590673c
|
@ -94,6 +94,10 @@
|
|||
/pkgs/applications/science/math/R @peti
|
||||
/pkgs/development/r-modules @peti
|
||||
|
||||
# Ruby
|
||||
/pkgs/development/interpreters/ruby @marsam
|
||||
/pkgs/development/ruby-modules @marsam
|
||||
|
||||
# Rust
|
||||
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
||||
/pkgs/build-support/rust @andir @danieldk @zowoq
|
||||
|
@ -135,7 +139,7 @@
|
|||
/pkgs/development/libraries/qt-5 @ttuegel
|
||||
|
||||
# PostgreSQL and related stuff
|
||||
/pkgs/servers/sql/postgresql @thoughtpolice
|
||||
/pkgs/servers/sql/postgresql @thoughtpolice @marsam
|
||||
/nixos/modules/services/databases/postgresql.xml @thoughtpolice
|
||||
/nixos/modules/services/databases/postgresql.nix @thoughtpolice
|
||||
/nixos/tests/postgresql.nix @thoughtpolice
|
||||
|
|
|
@ -9185,6 +9185,12 @@
|
|||
githubId = 1699155;
|
||||
name = "Steve Elliott";
|
||||
};
|
||||
stephank = {
|
||||
email = "nix@stephank.nl";
|
||||
github = "stephank";
|
||||
githubId = 89950;
|
||||
name = "Stéphan Kochen";
|
||||
};
|
||||
stephenmw = {
|
||||
email = "stephen@q5comm.com";
|
||||
github = "stephenmw";
|
||||
|
|
|
@ -118,6 +118,16 @@
|
|||
<xref linkend="opt-services.samba-wsdd.enable" /> Web Services Dynamic Discovery host daemon
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.discourse.org/">Discourse</link>, a
|
||||
modern and open source discussion platform.
|
||||
</para>
|
||||
<para>
|
||||
See the <link linkend="module-services-discourse">Discourse
|
||||
section of the NixOS manual</link> for more information.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</section>
|
||||
|
|
|
@ -658,6 +658,7 @@
|
|||
./services/networking/dnscrypt-wrapper.nix
|
||||
./services/networking/dnsdist.nix
|
||||
./services/networking/dnsmasq.nix
|
||||
./services/networking/doh-proxy-rust.nix
|
||||
./services/networking/ncdns.nix
|
||||
./services/networking/nomad.nix
|
||||
./services/networking/ejabberd.nix
|
||||
|
@ -897,6 +898,7 @@
|
|||
./services/web-apps/calibre-web.nix
|
||||
./services/web-apps/convos.nix
|
||||
./services/web-apps/cryptpad.nix
|
||||
./services/web-apps/discourse.nix
|
||||
./services/web-apps/documize.nix
|
||||
./services/web-apps/dokuwiki.nix
|
||||
./services/web-apps/engelsystem.nix
|
||||
|
|
|
@ -266,7 +266,7 @@ in
|
|||
gitMinimal
|
||||
openssh
|
||||
util-linux
|
||||
iproute
|
||||
iproute2
|
||||
ethtool
|
||||
thin-provisioning-tools
|
||||
iptables
|
||||
|
|
|
@ -50,10 +50,15 @@ let
|
|||
# List of components used in config
|
||||
extraComponents = filter useComponent availableComponents;
|
||||
|
||||
package = if (cfg.autoExtraComponents && cfg.config != null)
|
||||
testedPackage = if (cfg.autoExtraComponents && cfg.config != null)
|
||||
then (cfg.package.override { inherit extraComponents; })
|
||||
else cfg.package;
|
||||
|
||||
# overridePythonAttrs has to be applied after override
|
||||
package = testedPackage.overridePythonAttrs (oldAttrs: {
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
# If you are changing this, please update the description in applyDefaultConfig
|
||||
defaultConfig = {
|
||||
homeassistant.time_zone = config.time.timeZone;
|
||||
|
@ -183,13 +188,9 @@ in {
|
|||
};
|
||||
|
||||
package = mkOption {
|
||||
default = pkgs.home-assistant.overridePythonAttrs (oldAttrs: {
|
||||
doCheck = false;
|
||||
});
|
||||
default = pkgs.home-assistant;
|
||||
defaultText = literalExample ''
|
||||
pkgs.home-assistant.overridePythonAttrs (oldAttrs: {
|
||||
doCheck = false;
|
||||
})
|
||||
pkgs.home-assistant
|
||||
'';
|
||||
type = types.package;
|
||||
example = literalExample ''
|
||||
|
@ -198,10 +199,12 @@ in {
|
|||
}
|
||||
'';
|
||||
description = ''
|
||||
Home Assistant package to use. By default the tests are disabled, as they take a considerable amout of time to complete.
|
||||
Home Assistant package to use. Tests are automatically disabled, as they take a considerable amout of time to complete.
|
||||
Override <literal>extraPackages</literal> or <literal>extraComponents</literal> in order to add additional dependencies.
|
||||
If you specify <option>config</option> and do not set <option>autoExtraComponents</option>
|
||||
to <literal>false</literal>, overriding <literal>extraComponents</literal> will have no effect.
|
||||
Avoid <literal>home-assistant.overridePythonAttrs</literal> if you use
|
||||
<literal>autoExtraComponents</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.doh-proxy-rust;
|
||||
|
||||
in {
|
||||
|
||||
options.services.doh-proxy-rust = {
|
||||
|
||||
enable = mkEnableOption "doh-proxy-rust";
|
||||
|
||||
flags = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = literalExample [ "--server-address=9.9.9.9:53" ];
|
||||
description = ''
|
||||
A list of command-line flags to pass to doh-proxy. For details on the
|
||||
available options, see <link xlink:href="https://github.com/jedisct1/doh-server#usage"/>.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.doh-proxy-rust = {
|
||||
description = "doh-proxy-rust";
|
||||
after = [ "network.target" "nss-lookup.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.doh-proxy-rust}/bin/doh-proxy ${escapeShellArgs cfg.flags}";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
DynamicUser = true;
|
||||
|
||||
CapabilityBoundingSet = "";
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
NoNewPrivileges = true;
|
||||
ProtectClock = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6";
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallErrorNumber = "EPERM";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged @resources" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ stephank ];
|
||||
|
||||
}
|
|
@ -27,7 +27,7 @@ let
|
|||
text = ''
|
||||
#! /bin/sh
|
||||
|
||||
export PATH=$PATH:${pkgs.iproute}/sbin
|
||||
export PATH=$PATH:${pkgs.iproute2}/sbin
|
||||
|
||||
ip link set $IFNAME up
|
||||
ip address add ${cfg.ipAddress} dev $IFNAME
|
||||
|
|
|
@ -91,7 +91,7 @@ in
|
|||
description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
|
||||
path = [
|
||||
"${pkgs.libreswan}"
|
||||
"${pkgs.iproute}"
|
||||
"${pkgs.iproute2}"
|
||||
"${pkgs.procps}"
|
||||
"${pkgs.nssTools}"
|
||||
"${pkgs.iptables}"
|
||||
|
@ -115,8 +115,8 @@ in
|
|||
ExecStart = "${libexec}/pluto --config ${configFile} --nofork \$PLUTO_OPTIONS";
|
||||
ExecStop = "${libexec}/whack --shutdown";
|
||||
ExecStopPost = [
|
||||
"${pkgs.iproute}/bin/ip xfrm policy flush"
|
||||
"${pkgs.iproute}/bin/ip xfrm state flush"
|
||||
"${pkgs.iproute2}/bin/ip xfrm policy flush"
|
||||
"${pkgs.iproute2}/bin/ip xfrm state flush"
|
||||
"${ipsec} --stopnflog"
|
||||
];
|
||||
ExecReload = "${libexec}/whack --listen";
|
||||
|
|
|
@ -28,7 +28,7 @@ with lib;
|
|||
"systemd-resolved.service"
|
||||
];
|
||||
path = [
|
||||
pkgs.iproute
|
||||
pkgs.iproute2
|
||||
# Needed for ping
|
||||
"/run/wrappers"
|
||||
];
|
||||
|
|
|
@ -119,7 +119,7 @@ in
|
|||
path = cfg.extraPackages ++ (with pkgs; [
|
||||
# Client mode requires at least the following:
|
||||
coreutils
|
||||
iproute
|
||||
iproute2
|
||||
iptables
|
||||
]);
|
||||
|
||||
|
|
|
@ -164,7 +164,7 @@ in
|
|||
preStart = ''
|
||||
install -m 0755 -o quagga -g quagga -d /run/quagga
|
||||
|
||||
${pkgs.iproute}/bin/ip route flush proto zebra
|
||||
${pkgs.iproute2}/bin/ip route flush proto zebra
|
||||
'';
|
||||
}
|
||||
else
|
||||
|
|
|
@ -39,11 +39,11 @@ in {
|
|||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = map ( x:
|
||||
"${pkgs.iproute}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
|
||||
"${pkgs.iproute2}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
|
||||
) cfg.interfaces;
|
||||
|
||||
ExecStop = map ( x:
|
||||
"${pkgs.iproute}/bin/rdma link delete rxe_${x}"
|
||||
"${pkgs.iproute2}/bin/rdma link delete rxe_${x}"
|
||||
) cfg.interfaces;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -57,7 +57,7 @@ let
|
|||
|
||||
preUp = mkOption {
|
||||
example = literalExample ''
|
||||
${pkgs.iproute}/bin/ip netns add foo
|
||||
${pkgs.iproute2}/bin/ip netns add foo
|
||||
'';
|
||||
default = "";
|
||||
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
||||
|
@ -68,7 +68,7 @@ let
|
|||
|
||||
preDown = mkOption {
|
||||
example = literalExample ''
|
||||
${pkgs.iproute}/bin/ip netns del foo
|
||||
${pkgs.iproute2}/bin/ip netns del foo
|
||||
'';
|
||||
default = "";
|
||||
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
||||
|
@ -79,7 +79,7 @@ let
|
|||
|
||||
postUp = mkOption {
|
||||
example = literalExample ''
|
||||
${pkgs.iproute}/bin/ip netns add foo
|
||||
${pkgs.iproute2}/bin/ip netns add foo
|
||||
'';
|
||||
default = "";
|
||||
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
||||
|
@ -90,7 +90,7 @@ let
|
|||
|
||||
postDown = mkOption {
|
||||
example = literalExample ''
|
||||
${pkgs.iproute}/bin/ip netns del foo
|
||||
${pkgs.iproute2}/bin/ip netns del foo
|
||||
'';
|
||||
default = "";
|
||||
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
||||
|
|
|
@ -5,7 +5,7 @@ with lib;
|
|||
let cfg = config.services.cloud-init;
|
||||
path = with pkgs; [
|
||||
cloud-init
|
||||
iproute
|
||||
iproute2
|
||||
nettools
|
||||
openssh
|
||||
shadow
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,323 @@
|
|||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="module-services-discourse">
|
||||
<title>Discourse</title>
|
||||
<para>
|
||||
<link xlink:href="https://www.discourse.org/">Discourse</link> is a
|
||||
modern and open source discussion platform.
|
||||
</para>
|
||||
|
||||
<section xml:id="module-services-discourse-basic-usage">
|
||||
<title>Basic usage</title>
|
||||
<para>
|
||||
A minimal configuration using Let's Encrypt for TLS certificates looks like this:
|
||||
<programlisting>
|
||||
services.discourse = {
|
||||
<link linkend="opt-services.discourse.enable">enable</link> = true;
|
||||
<link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
|
||||
admin = {
|
||||
<link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
|
||||
<link linkend="opt-services.discourse.admin.username">username</link> = "admin";
|
||||
<link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
|
||||
<link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
|
||||
};
|
||||
<link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
|
||||
};
|
||||
<link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
|
||||
<link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Provided a proper DNS setup, you'll be able to connect to the
|
||||
instance at <literal>discourse.example.com</literal> and log in
|
||||
using the credentials provided in
|
||||
<literal>services.discourse.admin</literal>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-tls">
|
||||
<title>Using a regular TLS certificate</title>
|
||||
<para>
|
||||
To set up TLS using a regular certificate and key on file, use
|
||||
the <xref linkend="opt-services.discourse.sslCertificate" />
|
||||
and <xref linkend="opt-services.discourse.sslCertificateKey" />
|
||||
options:
|
||||
|
||||
<programlisting>
|
||||
services.discourse = {
|
||||
<link linkend="opt-services.discourse.enable">enable</link> = true;
|
||||
<link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
|
||||
<link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
|
||||
<link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
|
||||
admin = {
|
||||
<link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
|
||||
<link linkend="opt-services.discourse.admin.username">username</link> = "admin";
|
||||
<link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
|
||||
<link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
|
||||
};
|
||||
<link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-database">
|
||||
<title>Database access</title>
|
||||
<para>
|
||||
<productname>Discourse</productname> uses
|
||||
<productname>PostgreSQL</productname> to store most of its
|
||||
data. A database will automatically be enabled and a database
|
||||
and role created unless <xref
|
||||
linkend="opt-services.discourse.database.host" /> is changed from
|
||||
its default of <literal>null</literal> or <xref
|
||||
linkend="opt-services.discourse.database.createLocally" /> is set
|
||||
to <literal>false</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
External database access can also be configured by setting
|
||||
<xref linkend="opt-services.discourse.database.host" />, <xref
|
||||
linkend="opt-services.discourse.database.username" /> and <xref
|
||||
linkend="opt-services.discourse.database.passwordFile" /> as
|
||||
appropriate. Note that you need to manually create a database
|
||||
called <literal>discourse</literal> (or the name you chose in
|
||||
<xref linkend="opt-services.discourse.database.name" />) and
|
||||
allow the configured database user full access to it.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-mail">
|
||||
<title>Email</title>
|
||||
<para>
|
||||
In addition to the basic setup, you'll want to configure an SMTP
|
||||
server <productname>Discourse</productname> can use to send user
|
||||
registration and password reset emails, among others. You can
|
||||
also optionally let <productname>Discourse</productname> receive
|
||||
email, which enables people to reply to threads and conversations
|
||||
via email.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A basic setup which assumes you want to use your configured <link
|
||||
linkend="opt-services.discourse.hostname">hostname</link> as
|
||||
email domain can be done like this:
|
||||
|
||||
<programlisting>
|
||||
services.discourse = {
|
||||
<link linkend="opt-services.discourse.enable">enable</link> = true;
|
||||
<link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
|
||||
<link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
|
||||
<link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
|
||||
admin = {
|
||||
<link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
|
||||
<link linkend="opt-services.discourse.admin.username">username</link> = "admin";
|
||||
<link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
|
||||
<link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
|
||||
};
|
||||
mail.outgoing = {
|
||||
<link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
|
||||
<link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
|
||||
};
|
||||
<link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
|
||||
<link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
This assumes you have set up an MX record for the address you've
|
||||
set in <link linkend="opt-services.discourse.hostname">hostname</link> and
|
||||
requires proper SPF, DKIM and DMARC configuration to be done for
|
||||
the domain you're sending from, in order for email to be reliably delivered.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you want to use a different domain for your outgoing email
|
||||
(for example <literal>example.com</literal> instead of
|
||||
<literal>discourse.example.com</literal>) you should set
|
||||
<xref linkend="opt-services.discourse.mail.notificationEmailAddress" /> and
|
||||
<xref linkend="opt-services.discourse.mail.contactEmailAddress" /> manually.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Setup of TLS for incoming email is currently only configured
|
||||
automatically when a regular TLS certificate is used, i.e. when
|
||||
<xref linkend="opt-services.discourse.sslCertificate" /> and
|
||||
<xref linkend="opt-services.discourse.sslCertificateKey" /> are
|
||||
set.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-settings">
|
||||
<title>Additional settings</title>
|
||||
<para>
|
||||
Additional site settings and backend settings, for which no
|
||||
explicit <productname>NixOS</productname> options are provided,
|
||||
can be set in <xref linkend="opt-services.discourse.siteSettings" /> and
|
||||
<xref linkend="opt-services.discourse.backendSettings" /> respectively.
|
||||
</para>
|
||||
|
||||
<section xml:id="module-services-discourse-site-settings">
|
||||
<title>Site settings</title>
|
||||
<para>
|
||||
<quote>Site settings</quote> are the settings that can be
|
||||
changed through the <productname>Discourse</productname>
|
||||
UI. Their <emphasis>default</emphasis> values can be set using
|
||||
<xref linkend="opt-services.discourse.siteSettings" />.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Settings are expressed as a Nix attribute set which matches the
|
||||
structure of the configuration in
|
||||
<link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
|
||||
To find a setting's path, you only need to care about the first
|
||||
two levels; i.e. its category (e.g. <literal>login</literal>)
|
||||
and name (e.g. <literal>invite_only</literal>).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Settings containing secret data should be set to an attribute
|
||||
set containing the attribute <literal>_secret</literal> - a
|
||||
string pointing to a file containing the value the option
|
||||
should be set to. See the example.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-backend-settings">
|
||||
<title>Backend settings</title>
|
||||
<para>
|
||||
Settings are expressed as a Nix attribute set which matches the
|
||||
structure of the configuration in
|
||||
<link xlink:href="https://github.com/discourse/discourse/blob/stable/config/discourse_defaults.conf">config/discourse.conf</link>.
|
||||
Empty parameters can be defined by setting them to
|
||||
<literal>null</literal>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="module-services-discourse-settings-example">
|
||||
<title>Example</title>
|
||||
<para>
|
||||
The following example sets the title and description of the
|
||||
<productname>Discourse</productname> instance and enables
|
||||
<productname>GitHub</productname> login in the site settings,
|
||||
and changes a few request limits in the backend settings:
|
||||
<programlisting>
|
||||
services.discourse = {
|
||||
<link linkend="opt-services.discourse.enable">enable</link> = true;
|
||||
<link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
|
||||
<link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
|
||||
<link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
|
||||
admin = {
|
||||
<link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
|
||||
<link linkend="opt-services.discourse.admin.username">username</link> = "admin";
|
||||
<link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
|
||||
<link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
|
||||
};
|
||||
mail.outgoing = {
|
||||
<link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
|
||||
<link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
|
||||
};
|
||||
<link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
|
||||
<link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
|
||||
required = {
|
||||
title = "My Cats";
|
||||
site_description = "Discuss My Cats (and be nice plz)";
|
||||
};
|
||||
login = {
|
||||
enable_github_logins = true;
|
||||
github_client_id = "a2f6dfe838cb3206ce20";
|
||||
github_client_secret._secret = /run/keys/discourse_github_client_secret;
|
||||
};
|
||||
};
|
||||
<link linkend="opt-services.discourse.backendSettings">backendSettings</link> = {
|
||||
max_reqs_per_ip_per_minute = 300;
|
||||
max_reqs_per_ip_per_10_seconds = 60;
|
||||
max_asset_reqs_per_ip_per_10_seconds = 250;
|
||||
max_reqs_per_ip_mode = "warn+block";
|
||||
};
|
||||
<link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
|
||||
};
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
In the resulting site settings file, the
|
||||
<literal>login.github_client_secret</literal> key will be set
|
||||
to the contents of the
|
||||
<filename>/run/keys/discourse_github_client_secret</filename>
|
||||
file.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="module-services-discourse-plugins">
|
||||
<title>Plugins</title>
|
||||
<para>
|
||||
You can install <productname>Discourse</productname> plugins
|
||||
using the <xref linkend="opt-services.discourse.plugins" />
|
||||
option. As long as a plugin supports the standard install
|
||||
method, packaging it should only require fetching its source
|
||||
with an appropriate fetcher.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Some plugins provide <link
|
||||
linkend="module-services-discourse-site-settings">site
|
||||
settings</link>. Their defaults can be configured using <xref
|
||||
linkend="opt-services.discourse.siteSettings" />, just like
|
||||
regular site settings. To find the names of these settings, look
|
||||
in the <literal>config/settings.yml</literal> file of the plugin
|
||||
repo.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For example, to add the <link
|
||||
xlink:href="https://github.com/discourse/discourse-spoiler-alert">discourse-spoiler-alert</link>
|
||||
plugin and disable it by default:
|
||||
|
||||
<programlisting>
|
||||
services.discourse = {
|
||||
<link linkend="opt-services.discourse.enable">enable</link> = true;
|
||||
<link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
|
||||
<link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
|
||||
<link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
|
||||
admin = {
|
||||
<link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
|
||||
<link linkend="opt-services.discourse.admin.username">username</link> = "admin";
|
||||
<link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
|
||||
<link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
|
||||
};
|
||||
mail.outgoing = {
|
||||
<link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
|
||||
<link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
|
||||
<link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
|
||||
};
|
||||
<link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
|
||||
<link linkend="opt-services.discourse.mail.incoming.enable">plugins</link> = [
|
||||
(pkgs.fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-spoiler-alert";
|
||||
rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
|
||||
sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
|
||||
})
|
||||
];
|
||||
<link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
|
||||
plugins = {
|
||||
spoiler_enabled = false;
|
||||
};
|
||||
};
|
||||
<link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
|
@ -397,6 +397,9 @@ in
|
|||
default = pkgs.nginxStable;
|
||||
defaultText = "pkgs.nginxStable";
|
||||
type = types.package;
|
||||
apply = p: p.override {
|
||||
modules = p.modules ++ cfg.additionalModules;
|
||||
};
|
||||
description = "
|
||||
Nginx package to use. This defaults to the stable version. Note
|
||||
that the nginx team recommends to use the mainline version which
|
||||
|
@ -404,6 +407,17 @@ in
|
|||
";
|
||||
};
|
||||
|
||||
additionalModules = mkOption {
|
||||
default = [];
|
||||
type = types.listOf (types.attrsOf types.anything);
|
||||
example = literalExample "[ pkgs.nginxModules.brotli ]";
|
||||
description = ''
|
||||
Additional <link xlink:href="https://www.nginx.com/resources/wiki/modules/">third-party nginx modules</link>
|
||||
to install. Packaged modules are available in
|
||||
<literal>pkgs.nginxModules</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
logError = mkOption {
|
||||
default = "stderr";
|
||||
type = types.str;
|
||||
|
|
|
@ -55,7 +55,7 @@ in
|
|||
# The shared libraries are required for DNS resolution
|
||||
boot.initrd.extraUtilsCommands = ''
|
||||
copy_bin_and_libs ${pkgs.openvpn}/bin/openvpn
|
||||
copy_bin_and_libs ${pkgs.iproute}/bin/ip
|
||||
copy_bin_and_libs ${pkgs.iproute2}/bin/ip
|
||||
|
||||
cp -pv ${pkgs.glibc}/lib/libresolv.so.2 $out/lib
|
||||
cp -pv ${pkgs.glibc}/lib/libnss_dns.so.2 $out/lib
|
||||
|
|
|
@ -1144,7 +1144,7 @@ in
|
|||
|
||||
environment.systemPackages =
|
||||
[ pkgs.host
|
||||
pkgs.iproute
|
||||
pkgs.iproute2
|
||||
pkgs.iputils
|
||||
pkgs.nettools
|
||||
]
|
||||
|
|
|
@ -4,15 +4,7 @@ let
|
|||
|
||||
inherit (lib) mkOption types;
|
||||
|
||||
# Once https://github.com/NixOS/nixpkgs/pull/75584 is merged we can use the TOML generator
|
||||
toTOML = name: value: pkgs.runCommandNoCC name {
|
||||
nativeBuildInputs = [ pkgs.remarshal ];
|
||||
value = builtins.toJSON value;
|
||||
passAsFile = [ "value" ];
|
||||
} ''
|
||||
json2toml "$valuePath" "$out"
|
||||
'';
|
||||
|
||||
toml = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
meta = {
|
||||
|
@ -26,6 +18,11 @@ in
|
|||
[ "virtualisation" "containers" "users" ]
|
||||
"All users with `isNormalUser = true` set now get appropriate subuid/subgid mappings."
|
||||
)
|
||||
(
|
||||
lib.mkRemovedOptionModule
|
||||
[ "virtualisation" "containers" "containersConf" "extraConfig" ]
|
||||
"Use virtualisation.containers.containersConf.settings instead."
|
||||
)
|
||||
];
|
||||
|
||||
options.virtualisation.containers = {
|
||||
|
@ -45,23 +42,10 @@ in
|
|||
description = "Enable the OCI seccomp BPF hook";
|
||||
};
|
||||
|
||||
containersConf = mkOption {
|
||||
default = {};
|
||||
containersConf.settings = mkOption {
|
||||
type = toml.type;
|
||||
default = { };
|
||||
description = "containers.conf configuration";
|
||||
type = types.submodule {
|
||||
options = {
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra configuration that should be put in the containers.conf
|
||||
configuration file
|
||||
'';
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
registries = {
|
||||
|
@ -113,21 +97,19 @@ in
|
|||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
virtualisation.containers.containersConf.settings = {
|
||||
network.cni_plugin_dirs = [ "${pkgs.cni-plugins}/bin/" ];
|
||||
engine = {
|
||||
init_path = "${pkgs.catatonit}/bin/catatonit";
|
||||
} // lib.optionalAttrs cfg.ociSeccompBpfHook.enable {
|
||||
hooks_dir = [ config.boot.kernelPackages.oci-seccomp-bpf-hook ];
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."containers/containers.conf".text = ''
|
||||
[network]
|
||||
cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
|
||||
environment.etc."containers/containers.conf".source =
|
||||
toml.generate "containers.conf" cfg.containersConf.settings;
|
||||
|
||||
[engine]
|
||||
init_path = "${pkgs.catatonit}/bin/catatonit"
|
||||
${lib.optionalString (cfg.ociSeccompBpfHook.enable) ''
|
||||
hooks_dir = [
|
||||
"${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
|
||||
]
|
||||
''}
|
||||
'' + cfg.containersConf.extraConfig;
|
||||
|
||||
environment.etc."containers/registries.conf".source = toTOML "registries.conf" {
|
||||
environment.etc."containers/registries.conf".source = toml.generate "registries.conf" {
|
||||
registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
|
||||
};
|
||||
|
||||
|
|
|
@ -46,6 +46,15 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.libvirt;
|
||||
defaultText = "pkgs.libvirt";
|
||||
description = ''
|
||||
libvirt package to use.
|
||||
'';
|
||||
};
|
||||
|
||||
qemuPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.qemu;
|
||||
|
@ -149,7 +158,7 @@ in {
|
|||
# this file is expected in /etc/qemu and not sysconfdir (/var/lib)
|
||||
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
|
||||
"allow ${e}") cfg.allowedBridges;
|
||||
systemPackages = with pkgs; [ libvirt libressl.nc iptables cfg.qemuPackage ];
|
||||
systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemuPackage ];
|
||||
etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
|
||||
};
|
||||
|
||||
|
@ -169,26 +178,26 @@ in {
|
|||
source = "/run/${dirName}/nix-helpers/qemu-bridge-helper";
|
||||
};
|
||||
|
||||
systemd.packages = [ pkgs.libvirt ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.services.libvirtd-config = {
|
||||
description = "Libvirt Virtual Machine Management Daemon - configuration";
|
||||
script = ''
|
||||
# Copy default libvirt network config .xml files to /var/lib
|
||||
# Files modified by the user will not be overwritten
|
||||
for i in $(cd ${pkgs.libvirt}/var/lib && echo \
|
||||
for i in $(cd ${cfg.package}/var/lib && echo \
|
||||
libvirt/qemu/networks/*.xml libvirt/qemu/networks/autostart/*.xml \
|
||||
libvirt/nwfilter/*.xml );
|
||||
do
|
||||
mkdir -p /var/lib/$(dirname $i) -m 755
|
||||
cp -npd ${pkgs.libvirt}/var/lib/$i /var/lib/$i
|
||||
cp -npd ${cfg.package}/var/lib/$i /var/lib/$i
|
||||
done
|
||||
|
||||
# Copy generated qemu config to libvirt directory
|
||||
cp -f ${qemuConfigFile} /var/lib/${dirName}/qemu.conf
|
||||
|
||||
# stable (not GC'able as in /nix/store) paths for using in <emulator> section of xml configs
|
||||
for emulator in ${pkgs.libvirt}/libexec/libvirt_lxc ${cfg.qemuPackage}/bin/qemu-kvm ${cfg.qemuPackage}/bin/qemu-system-*; do
|
||||
for emulator in ${cfg.package}/libexec/libvirt_lxc ${cfg.qemuPackage}/bin/qemu-kvm ${cfg.qemuPackage}/bin/qemu-system-*; do
|
||||
ln -s --force "$emulator" /run/${dirName}/nix-emulators/
|
||||
done
|
||||
|
||||
|
@ -234,7 +243,7 @@ in {
|
|||
|
||||
systemd.services.libvirt-guests = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ coreutils libvirt gawk ];
|
||||
path = with pkgs; [ coreutils gawk cfg.package ];
|
||||
restartIfChanged = false;
|
||||
|
||||
environment.ON_BOOT = "${cfg.onBoot}";
|
||||
|
@ -249,7 +258,7 @@ in {
|
|||
|
||||
systemd.services.virtlogd = {
|
||||
description = "Virtual machine log manager";
|
||||
serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlogd virtlogd";
|
||||
serviceConfig.ExecStart = "@${cfg.package}/sbin/virtlogd virtlogd";
|
||||
restartIfChanged = false;
|
||||
};
|
||||
|
||||
|
@ -261,7 +270,7 @@ in {
|
|||
|
||||
systemd.services.virtlockd = {
|
||||
description = "Virtual machine lock manager";
|
||||
serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlockd virtlockd";
|
||||
serviceConfig.ExecStart = "@${cfg.package}/sbin/virtlockd virtlockd";
|
||||
restartIfChanged = false;
|
||||
};
|
||||
|
||||
|
|
|
@ -96,13 +96,12 @@ in
|
|||
|
||||
virtualisation.containers = {
|
||||
enable = true; # Enable common /etc/containers configuration
|
||||
containersConf.extraConfig = lib.optionalString cfg.enableNvidia
|
||||
(builtins.readFile (toml.generate "podman.nvidia.containers.conf" {
|
||||
engine = {
|
||||
conmon_env_vars = [ "PATH=${lib.makeBinPath [ pkgs.nvidia-podman ]}" ];
|
||||
runtimes.nvidia = [ "${pkgs.nvidia-podman}/bin/nvidia-container-runtime" ];
|
||||
};
|
||||
}));
|
||||
containersConf.settings = lib.optionalAttrs cfg.enableNvidia {
|
||||
engine = {
|
||||
conmon_env_vars = [ "PATH=${lib.makeBinPath [ pkgs.nvidia-podman ]}" ];
|
||||
runtimes.nvidia = [ "${pkgs.nvidia-podman}/bin/nvidia-container-runtime" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
|
|
@ -88,6 +88,7 @@ in
|
|||
croc = handleTest ./croc.nix {};
|
||||
deluge = handleTest ./deluge.nix {};
|
||||
dhparams = handleTest ./dhparams.nix {};
|
||||
discourse = handleTest ./discourse.nix {};
|
||||
dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
|
||||
dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
|
||||
doas = handleTest ./doas.nix {};
|
||||
|
@ -193,9 +194,7 @@ in
|
|||
keepalived = handleTest ./keepalived.nix {};
|
||||
keepassxc = handleTest ./keepassxc.nix {};
|
||||
kerberos = handleTest ./kerberos/default.nix {};
|
||||
kernel-latest = handleTest ./kernel-latest.nix {};
|
||||
kernel-lts = handleTest ./kernel-lts.nix {};
|
||||
kernel-testing = handleTest ./kernel-testing.nix {};
|
||||
kernel-generic = handleTest ./kernel-generic.nix {};
|
||||
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
|
||||
keycloak = discoverTests (import ./keycloak.nix);
|
||||
keymap = handleTest ./keymap.nix {};
|
||||
|
|
|
@ -0,0 +1,197 @@
|
|||
# This tests Discourse by:
|
||||
# 1. logging in as the admin user
|
||||
# 2. sending a private message to the admin user through the API
|
||||
# 3. replying to that message via email.
|
||||
|
||||
import ./make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
certs = import ./common/acme/server/snakeoil-certs.nix;
|
||||
clientDomain = "client.fake.domain";
|
||||
discourseDomain = certs.domain;
|
||||
adminPassword = "eYAX85qmMJ5GZIHLaXGDAoszD7HSZp5d";
|
||||
secretKeyBase = "381f4ac6d8f5e49d804dae72aa9c046431d2f34c656a705c41cd52fed9b4f6f76f51549f0b55db3b8b0dded7a00d6a381ebe9a4367d2d44f5e743af6628b4d42";
|
||||
admin = {
|
||||
email = "alice@${clientDomain}";
|
||||
username = "alice";
|
||||
fullName = "Alice Admin";
|
||||
passwordFile = "${pkgs.writeText "admin-pass" adminPassword}";
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "discourse";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ talyz ];
|
||||
};
|
||||
|
||||
nodes.discourse =
|
||||
{ nodes, ... }:
|
||||
{
|
||||
virtualisation.memorySize = 2048;
|
||||
|
||||
imports = [ common/user-account.nix ];
|
||||
|
||||
security.pki.certificateFiles = [
|
||||
certs.ca.cert
|
||||
];
|
||||
|
||||
networking.extraHosts = ''
|
||||
127.0.0.1 ${discourseDomain}
|
||||
${nodes.client.config.networking.primaryIPAddress} ${clientDomain}
|
||||
'';
|
||||
|
||||
services.postfix = {
|
||||
enableSubmission = true;
|
||||
enableSubmissions = true;
|
||||
submissionsOptions = {
|
||||
smtpd_sasl_auth_enable = "yes";
|
||||
smtpd_client_restrictions = "permit";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
|
||||
services.discourse = {
|
||||
enable = true;
|
||||
inherit admin;
|
||||
hostname = discourseDomain;
|
||||
sslCertificate = "${certs.${discourseDomain}.cert}";
|
||||
sslCertificateKey = "${certs.${discourseDomain}.key}";
|
||||
secretKeyBaseFile = "${pkgs.writeText "secret-key-base" secretKeyBase}";
|
||||
enableACME = false;
|
||||
mail.outgoing.serverAddress = clientDomain;
|
||||
mail.incoming.enable = true;
|
||||
siteSettings = {
|
||||
posting = {
|
||||
min_post_length = 5;
|
||||
min_first_post_length = 5;
|
||||
min_personal_message_post_length = 5;
|
||||
};
|
||||
};
|
||||
unicornTimeout = 900;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 25 465 ];
|
||||
};
|
||||
|
||||
nodes.client =
|
||||
{ nodes, ... }:
|
||||
{
|
||||
imports = [ common/user-account.nix ];
|
||||
|
||||
security.pki.certificateFiles = [
|
||||
certs.ca.cert
|
||||
];
|
||||
|
||||
networking.extraHosts = ''
|
||||
127.0.0.1 ${clientDomain}
|
||||
${nodes.discourse.config.networking.primaryIPAddress} ${discourseDomain}
|
||||
'';
|
||||
|
||||
services.dovecot2 = {
|
||||
enable = true;
|
||||
protocols = [ "imap" ];
|
||||
modules = [ pkgs.dovecot_pigeonhole ];
|
||||
};
|
||||
|
||||
services.postfix = {
|
||||
enable = true;
|
||||
origin = clientDomain;
|
||||
relayDomains = [ clientDomain ];
|
||||
config = {
|
||||
compatibility_level = "2";
|
||||
smtpd_banner = "ESMTP server";
|
||||
myhostname = clientDomain;
|
||||
mydestination = clientDomain;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
let
|
||||
replyToEmail = pkgs.writeScriptBin "reply-to-email" ''
|
||||
#!${pkgs.python3.interpreter}
|
||||
import imaplib
|
||||
import smtplib
|
||||
import ssl
|
||||
import email.header
|
||||
from email import message_from_bytes
|
||||
from email.message import EmailMessage
|
||||
|
||||
with imaplib.IMAP4('localhost') as imap:
|
||||
imap.login('alice', 'foobar')
|
||||
imap.select()
|
||||
status, data = imap.search(None, 'ALL')
|
||||
assert status == 'OK'
|
||||
|
||||
nums = data[0].split()
|
||||
assert len(nums) == 1
|
||||
|
||||
status, msg_data = imap.fetch(nums[0], '(RFC822)')
|
||||
assert status == 'OK'
|
||||
|
||||
msg = email.message_from_bytes(msg_data[0][1])
|
||||
subject = str(email.header.make_header(email.header.decode_header(msg['Subject'])))
|
||||
reply_to = email.header.decode_header(msg['Reply-To'])[0][0]
|
||||
message_id = email.header.decode_header(msg['Message-ID'])[0][0]
|
||||
date = email.header.decode_header(msg['Date'])[0][0]
|
||||
|
||||
ctx = ssl.create_default_context()
|
||||
with smtplib.SMTP_SSL(host='${discourseDomain}', context=ctx) as smtp:
|
||||
reply = EmailMessage()
|
||||
reply['Subject'] = 'Re: ' + subject
|
||||
reply['To'] = reply_to
|
||||
reply['From'] = 'alice@${clientDomain}'
|
||||
reply['In-Reply-To'] = message_id
|
||||
reply['References'] = message_id
|
||||
reply['Date'] = date
|
||||
reply.set_content("Test reply.")
|
||||
|
||||
smtp.send_message(reply)
|
||||
smtp.quit()
|
||||
'';
|
||||
in
|
||||
[ replyToEmail ];
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 25 ];
|
||||
};
|
||||
|
||||
|
||||
testScript = { nodes }:
|
||||
let
|
||||
request = builtins.toJSON {
|
||||
title = "Private message";
|
||||
raw = "This is a test message.";
|
||||
target_usernames = admin.username;
|
||||
archetype = "private_message";
|
||||
};
|
||||
in ''
|
||||
discourse.start()
|
||||
client.start()
|
||||
|
||||
discourse.wait_for_unit("discourse.service")
|
||||
discourse.wait_for_file("/run/discourse/sockets/unicorn.sock")
|
||||
discourse.wait_until_succeeds("curl -sS -f https://${discourseDomain}")
|
||||
discourse.succeed(
|
||||
"curl -sS -f https://${discourseDomain}/session/csrf -c cookie -b cookie -H 'Accept: application/json' | jq -r '\"X-CSRF-Token: \" + .csrf' > csrf_token",
|
||||
"curl -sS -f https://${discourseDomain}/session -c cookie -b cookie -H @csrf_token -H 'Accept: application/json' -d 'login=${nodes.discourse.config.services.discourse.admin.username}' -d \"password=${adminPassword}\" | jq -e '.user.username == \"${nodes.discourse.config.services.discourse.admin.username}\"'",
|
||||
"curl -sS -f https://${discourseDomain}/login -v -H 'Accept: application/json' -c cookie -b cookie 2>&1 | grep ${nodes.discourse.config.services.discourse.admin.username}",
|
||||
)
|
||||
|
||||
client.wait_for_unit("postfix.service")
|
||||
client.wait_for_unit("dovecot2.service")
|
||||
|
||||
discourse.succeed(
|
||||
"sudo -u discourse discourse-rake api_key:create_master[master] >api_key",
|
||||
'curl -sS -f https://${discourseDomain}/posts -X POST -H "Content-Type: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" -d \'${request}\' ',
|
||||
)
|
||||
|
||||
client.wait_until_succeeds("reply-to-email")
|
||||
|
||||
discourse.wait_until_succeeds(
|
||||
'curl -sS -f https://${discourseDomain}/topics/private-messages/system -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .topic_list.topics[0].id != null then .topic_list.topics[0].id else null end\' >topic_id'
|
||||
)
|
||||
discourse.succeed(
|
||||
'curl -sS -f https://${discourseDomain}/t/$(<topic_id) -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .post_stream.posts[1].cooked == "<p>Test reply.</p>" then true else null end\' '
|
||||
)
|
||||
'';
|
||||
})
|
|
@ -0,0 +1,43 @@
|
|||
import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
name = "doh-proxy-rust";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ stephank ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
machine = { pkgs, lib, ... }: {
|
||||
services.bind = {
|
||||
enable = true;
|
||||
extraOptions = "empty-zones-enable no;";
|
||||
zones = lib.singleton {
|
||||
name = ".";
|
||||
master = true;
|
||||
file = pkgs.writeText "root.zone" ''
|
||||
$TTL 3600
|
||||
. IN SOA ns.example.org. admin.example.org. ( 1 3h 1h 1w 1d )
|
||||
. IN NS ns.example.org.
|
||||
ns.example.org. IN A 192.168.0.1
|
||||
'';
|
||||
};
|
||||
};
|
||||
services.doh-proxy-rust = {
|
||||
enable = true;
|
||||
flags = [
|
||||
"--server-address=127.0.0.1:53"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
url = "http://localhost:3000/dns-query"
|
||||
query = "AAABAAABAAAAAAAAAm5zB2V4YW1wbGUDb3JnAAABAAE=" # IN A ns.example.org.
|
||||
bin_ip = r"$'\xC0\xA8\x00\x01'" # 192.168.0.1, as shell binary string
|
||||
|
||||
machine.wait_for_unit("bind.service")
|
||||
machine.wait_for_unit("doh-proxy-rust.service")
|
||||
machine.wait_for_open_port(53)
|
||||
machine.wait_for_open_port(3000)
|
||||
machine.succeed(f"curl --fail '{url}?dns={query}' | grep -qF {bin_ip}")
|
||||
'';
|
||||
})
|
|
@ -0,0 +1,37 @@
|
|||
{ system ? builtins.currentSystem
|
||||
, config ? { }
|
||||
, pkgs ? import ../.. { inherit system config; }
|
||||
}:
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
let
|
||||
makeKernelTest = version: linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "kernel-${version}";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ nequissimus ];
|
||||
};
|
||||
|
||||
machine = { ... }:
|
||||
{
|
||||
boot.kernelPackages = linuxPackages;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
assert "Linux" in machine.succeed("uname -s")
|
||||
assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
|
||||
'';
|
||||
}));
|
||||
in
|
||||
with pkgs; {
|
||||
linux_4_4 = makeKernelTest "4.4" linuxPackages_4_4;
|
||||
linux_4_9 = makeKernelTest "4.9" linuxPackages_4_9;
|
||||
linux_4_14 = makeKernelTest "4.14" linuxPackages_4_14;
|
||||
linux_4_19 = makeKernelTest "4.19" linuxPackages_4_19;
|
||||
linux_5_4 = makeKernelTest "5.4" linuxPackages_5_4;
|
||||
linux_5_10 = makeKernelTest "5.10" linuxPackages_5_10;
|
||||
linux_5_11 = makeKernelTest "5.11" linuxPackages_5_11;
|
||||
|
||||
linux_testing = makeKernelTest "testing" linuxPackages_testing;
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "kernel-latest";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ nequissimus ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }:
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
assert "Linux" in machine.succeed("uname -s")
|
||||
assert "${pkgs.linuxPackages_latest.kernel.version}" in machine.succeed("uname -a")
|
||||
'';
|
||||
})
|
|
@ -1,17 +0,0 @@
|
|||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "kernel-lts";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ nequissimus ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }:
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
assert "Linux" in machine.succeed("uname -s")
|
||||
assert "${pkgs.linuxPackages.kernel.version}" in machine.succeed("uname -a")
|
||||
'';
|
||||
})
|
|
@ -1,17 +0,0 @@
|
|||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "kernel-testing";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ nequissimus ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }:
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages_testing;
|
||||
};
|
||||
|
||||
testScript =
|
||||
''
|
||||
assert "Linux" in machine.succeed("uname -s")
|
||||
assert "${pkgs.linuxPackages_testing.kernel.modDirVersion}" in machine.succeed("uname -a")
|
||||
'';
|
||||
})
|
|
@ -43,7 +43,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
|
|||
# Everyone on the "isp" machine will be able to add routes to the kernel.
|
||||
security.wrappers.add-dhcpd-lease = {
|
||||
source = pkgs.writeShellScript "add-dhcpd-lease" ''
|
||||
exec ${pkgs.iproute}/bin/ip -6 route replace "$1" via "$2"
|
||||
exec ${pkgs.iproute2}/bin/ip -6 route replace "$1" via "$2"
|
||||
'';
|
||||
capabilities = "cap_net_admin+ep";
|
||||
};
|
||||
|
|
|
@ -1,25 +1,67 @@
|
|||
{ lib, stdenv, fetchurl
|
||||
, pkg-config, cmake, python3, ffmpeg_3, phonon, automoc4
|
||||
, chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
|
||||
, id3lib, taglib, mp4v2, flac, libogg, libvorbis
|
||||
, zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, automoc4
|
||||
, chromaprint
|
||||
, cmake
|
||||
, docbook_xml_dtd_45
|
||||
, docbook_xsl
|
||||
, ffmpeg_3
|
||||
, flac
|
||||
, id3lib
|
||||
, libogg
|
||||
, libvorbis
|
||||
, libxslt
|
||||
, mp4v2
|
||||
, phonon
|
||||
, pkg-config
|
||||
, python3
|
||||
, qtbase
|
||||
, qtmultimedia
|
||||
, qtquickcontrols
|
||||
, qttools
|
||||
, readline
|
||||
, taglib
|
||||
, wrapQtAppsHook
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kid3";
|
||||
version = "3.8.5";
|
||||
version = "3.8.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-DEZ5J1QendgXJ1gBZ3h0LwsVTLL1vPznJ7Nc+97jFB8=";
|
||||
sha256 = "sha256-ce+MWCJzAnN+u+07f0dvn0jnbqiUlS2RbcM9nAj5bgg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
|
||||
buildInputs = [ python3 ffmpeg_3 phonon automoc4 chromaprint
|
||||
docbook_xml_dtd_45 docbook_xsl libxslt id3lib taglib mp4v2 flac
|
||||
libogg libvorbis zlib readline qtbase qttools qtmultimedia
|
||||
qtquickcontrols ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
];
|
||||
buildInputs = [
|
||||
automoc4
|
||||
chromaprint
|
||||
docbook_xml_dtd_45
|
||||
docbook_xsl
|
||||
ffmpeg_3
|
||||
flac
|
||||
id3lib
|
||||
libogg
|
||||
libvorbis
|
||||
libxslt
|
||||
mp4v2
|
||||
phonon
|
||||
python3
|
||||
qtbase
|
||||
qtmultimedia
|
||||
qtquickcontrols
|
||||
qttools
|
||||
readline
|
||||
taglib
|
||||
zlib
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DWITH_APPS=Qt;CLI" ];
|
||||
NIX_LDFLAGS = "-lm -lpthread";
|
||||
|
|
|
@ -57,7 +57,7 @@ let
|
|||
gdbLibPath=$out/clion-${version}/bin/gdb/linux/lib
|
||||
patchelf \
|
||||
--set-rpath "$gdbLibPath" \
|
||||
bin/gdb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
|
||||
bin/gdb/linux/lib/python3.*/lib-dynload/zlib.cpython-*-x86_64-linux-gnu.so
|
||||
patchelf --set-interpreter $interp \
|
||||
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$gdbLibPath" \
|
||||
bin/gdb/linux/bin/gdb
|
||||
|
@ -269,12 +269,12 @@ in
|
|||
|
||||
clion = buildClion rec {
|
||||
name = "clion-${version}";
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "C/C++ IDE. New. Intelligent. Cross-platform";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
|
||||
sha256 = "10s0jkxi892pg7d2slh7cvrd0ch2223qms3c9v1ax0n6ymfkcw14"; /* updated by script */
|
||||
sha256 = "1qq2k14pf2qy93y1xchlv08vvx99zcml8bdcx3h6jnjz6d7gz0px"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-clion";
|
||||
update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
|
||||
|
@ -282,12 +282,12 @@ in
|
|||
|
||||
datagrip = buildDataGrip rec {
|
||||
name = "datagrip-${version}";
|
||||
version = "2020.3.2"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Your Swiss Army Knife for Databases and SQL";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
|
||||
sha256 = "1wjaavgslwpz4jniszswdy10rk3622i1w3awdwhgjlcc6mwkwz1f"; /* updated by script */
|
||||
sha256 = "11am11lkrhgfianr1apkkl4mn8gcsf6p1vz47y7lz4rfm05ac4gj"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-datagrip";
|
||||
update-channel = "DataGrip RELEASE";
|
||||
|
@ -295,12 +295,12 @@ in
|
|||
|
||||
goland = buildGoland rec {
|
||||
name = "goland-${version}";
|
||||
version = "2020.3.4"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Up and Coming Go IDE";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/go/${name}.tar.gz";
|
||||
sha256 = "148rs9w0fqr5xzhnq5bd473j4vnb69kf8yxxjmwdp25z2d7x47ip"; /* updated by script */
|
||||
sha256 = "1hxid7k5b26hiwwdxbvhi1fzhlrvm1xsd5gb0vj0g5zw658y2lzz"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-goland";
|
||||
update-channel = "GoLand RELEASE";
|
||||
|
@ -308,12 +308,12 @@ in
|
|||
|
||||
idea-community = buildIdea rec {
|
||||
name = "idea-community-${version}";
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
|
||||
sha256 = "1msfl8qq0aday4ssip73r0y096mrb89mr7z2j4mpqhkzgsmvpjk0"; /* updated by script */
|
||||
sha256 = "1d7m39rzdgh2fyx50rpifqfsdmvfpi04hjp52pl76m35gyb5hsvs"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-idea-ce";
|
||||
update-channel = "IntelliJ IDEA RELEASE";
|
||||
|
@ -321,12 +321,12 @@ in
|
|||
|
||||
idea-ultimate = buildIdea rec {
|
||||
name = "idea-ultimate-${version}";
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
|
||||
sha256 = "0szq8lqp1h7kci8kqd1bb3g16j3p5f4dfmbccbyrrwsram3hvjgi"; /* updated by script */
|
||||
sha256 = "062kaph42xs5hc01sbmry4cm7nkyjks43qr5m7pbj5a2bgd7zzgx"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-idea";
|
||||
update-channel = "IntelliJ IDEA RELEASE";
|
||||
|
@ -334,12 +334,12 @@ in
|
|||
|
||||
mps = buildMps rec {
|
||||
name = "mps-${version}";
|
||||
version = "2020.3.2"; /* updated by script */
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
description = "Create your own domain-specific language";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz";
|
||||
sha256 = "0vskzia48jq50bjdqw993gizvvd59f3qlszbsdp7xg5a3afbk7p3"; /* updated by script */
|
||||
sha256 = "0sb50f7d4272dzx84njc326xvhbqn3xwrphvdq4zl3pk3wl8f4nz"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-mps";
|
||||
update-channel = "MPS RELEASE";
|
||||
|
@ -347,12 +347,12 @@ in
|
|||
|
||||
phpstorm = buildPhpStorm rec {
|
||||
name = "phpstorm-${version}";
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Professional IDE for Web and PHP developers";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||
sha256 = "0arff0882xw1azbxpn1n3wbc5ncg8gmfim3jf6rq2dky8kp9ylkm"; /* updated by script */
|
||||
sha256 = "052m7mqa1s548my0gda9y2mysi2ijq27c9b3bskrwqsf1pm5ry63"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-phpstorm";
|
||||
update-channel = "PhpStorm RELEASE";
|
||||
|
@ -360,12 +360,12 @@ in
|
|||
|
||||
pycharm-community = buildPycharm rec {
|
||||
name = "pycharm-community-${version}";
|
||||
version = "2020.3.4"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "PyCharm Community Edition";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "0xh0hb0v3ilgqjljh22c75hkllqgqbpppplni2dz2pv9rb3r5dv5"; /* updated by script */
|
||||
sha256 = "1iiglh7s2zm37kj6hzlzxb1jnzh2p0j1f2zzhg3nqyrrakfbyq3h"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm-ce";
|
||||
update-channel = "PyCharm RELEASE";
|
||||
|
@ -373,12 +373,12 @@ in
|
|||
|
||||
pycharm-professional = buildPycharm rec {
|
||||
name = "pycharm-professional-${version}";
|
||||
version = "2020.3.4"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "PyCharm Professional Edition";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "18gkjc52qpghs721rkbsj03kaf6n8c8sxg57b2d82hjckjgm6q10"; /* updated by script */
|
||||
sha256 = "1n3b4mdygzal7w88gwka5wh5jp09bh2zmm4n5rz9s7hr2srz71mz"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm";
|
||||
update-channel = "PyCharm RELEASE";
|
||||
|
@ -386,12 +386,12 @@ in
|
|||
|
||||
rider = buildRider rec {
|
||||
name = "rider-${version}";
|
||||
version = "2020.3.4"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
|
||||
sha256 = "1v99yqj83aw9j400z3v24n7xnyxzw5vm0b3rwd4yb8w3ajl59gq1"; /* updated by script */
|
||||
sha256 = "089j52sig2ac21v6zl9mvb7x4sr9c428nn930b41y3qd6bg52xxx"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-rider";
|
||||
update-channel = "Rider RELEASE";
|
||||
|
@ -399,12 +399,12 @@ in
|
|||
|
||||
ruby-mine = buildRubyMine rec {
|
||||
name = "ruby-mine-${version}";
|
||||
version = "2020.3.2"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "The Most Intelligent Ruby and Rails IDE";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
|
||||
sha256 = "17x3sz4jkz2px25gj813xqrrb2cm7mdl6m5a22zg086phym66g3c"; /* updated by script */
|
||||
sha256 = "12mkb51x1w5wbx436pfnfzcad10qd53y43n0p4l2zg9yx985gm7v"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-rubymine";
|
||||
update-channel = "RubyMine RELEASE";
|
||||
|
@ -412,12 +412,12 @@ in
|
|||
|
||||
webstorm = buildWebStorm rec {
|
||||
name = "webstorm-${version}";
|
||||
version = "2020.3.3"; /* updated by script */
|
||||
version = "2021.1"; /* updated by script */
|
||||
description = "Professional IDE for Web and JavaScript development";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
|
||||
sha256 = "0szq7qz5p1ksmqdy1rma5rfl0d9dy9qmhz8k5id4zdpyz2jsacfb"; /* updated by script */
|
||||
sha256 = "15i521qj2b0y1viqr0xx815ckpq359j6nars4xxq8xvy7cg729yc"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-webstorm";
|
||||
update-channel = "WebStorm RELEASE";
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
{ stdenv, lib, makeWrapper, ghcWithPackages, packages ? (_:[]) }:
|
||||
let
|
||||
blucontrolEnv = ghcWithPackages (self: [ self.blucontrol ] ++ packages self);
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "blucontrol-with-packages";
|
||||
version = blucontrolEnv.version;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildCommand = ''
|
||||
makeWrapper ${blucontrolEnv}/bin/blucontrol $out/bin/blucontrol \
|
||||
--prefix PATH : ${lib.makeBinPath [ blucontrolEnv ]}
|
||||
'';
|
||||
|
||||
# trivial derivation
|
||||
preferLocalBuild = true;
|
||||
allowSubstitues = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Configurable blue light filter";
|
||||
longDescription = ''
|
||||
This application is a blue light filter, with the main focus on configurability.
|
||||
Configuration is done in Haskell in the style of xmonad.
|
||||
Blucontrol makes use of monad transformers and allows monadic calculation of gamma values and recoloring. The user chooses, what will be captured in the monadic state.
|
||||
'';
|
||||
license = licenses.bsd3;
|
||||
homepage = "https://github.com/jumper149/blucontrol";
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ jumper149 ];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, alsaLib
|
||||
|
@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-Htk2NHgYVL622URx67BUtounAUopLTahaSqfAqd3+ZI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ copyDesktopItems pkg-config ];
|
||||
buildInputs = [ gtk3 alsaLib ];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -55,6 +57,29 @@ stdenv.mkDerivation rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "com.thomasokken.free42bin";
|
||||
desktopName = "Free42Bin";
|
||||
genericName = "Calculator";
|
||||
exec = "free42bin";
|
||||
type = "Application";
|
||||
comment = meta.description;
|
||||
categories = "Utility;Calculator;";
|
||||
terminal = "false";
|
||||
})
|
||||
(makeDesktopItem {
|
||||
name = "com.thomasokken.free42dec";
|
||||
desktopName = "Free42Dec";
|
||||
genericName = "Calculator";
|
||||
exec = "free42dec";
|
||||
type = "Application";
|
||||
comment = meta.description;
|
||||
categories = "Utility;Calculator;";
|
||||
terminal = "false";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/thomasokken/free42";
|
||||
description = "A software clone of HP-42S Calculator";
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "metadata-cleaner";
|
||||
version = "1.0.3";
|
||||
version = "1.0.4";
|
||||
|
||||
format = "other";
|
||||
|
||||
|
@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
owner = "rmnvgr";
|
||||
repo = "metadata-cleaner";
|
||||
rev = "v${version}";
|
||||
sha256 = "06dzfcnjb1xd8lk0r7bi4i784gfj8r7habbjbk2c4vn2847v71lf";
|
||||
sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
}
|
||||
},
|
||||
"beta": {
|
||||
"version": "90.0.4430.51",
|
||||
"sha256": "1k87fw0pv0d2zlxm0il9b5p60gdz6l44jssmsns4zy2fmd9316wr",
|
||||
"sha256bin64": "0q5yx7bc266azs3nl29ksz4yafvy2nmzn09ifcgr69fjkvsr1qh7",
|
||||
"version": "90.0.4430.61",
|
||||
"sha256": "01vssy3q64pv9rw4cdxv5rdg7yrxmhyc03a5r75fhxc95fj66iac",
|
||||
"sha256bin64": "07l8dzyv0hav1gls3xw91q9ay2l8xxmsf7yagg940cya9ncl0lhi",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-02-09",
|
||||
|
|
|
@ -16,14 +16,14 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "palemoon";
|
||||
version = "29.1.0";
|
||||
version = "29.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
githubBase = "repo.palemoon.org";
|
||||
owner = "MoonchildProductions";
|
||||
repo = "Pale-Moon";
|
||||
rev = "${version}_Release";
|
||||
sha256 = "02blhk3v7gpnicd7s5l5fpqvdvj2279g3rq8xyhcd4sw6qnms8m6";
|
||||
sha256 = "1ppdmj816zwccb0l0mgpq14ckdwg785wmqz41wran0nl63fg6i1x";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
|
||||
|
||||
let
|
||||
version = "0.11.0";
|
||||
version = "0.12.0";
|
||||
|
||||
manifests = fetchzip {
|
||||
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
|
||||
sha256 = "sha256-nqvFJriNMK3SvAsNzhE8MCzVNR8j/TjYU+f1PbuxkuI=";
|
||||
sha256 = "sha256-8NgKr5uRVFBD1pARaD+vH9wPA5gUNltwMe0i0icED1c=";
|
||||
stripRoot = false;
|
||||
};
|
||||
in
|
||||
|
@ -19,10 +19,10 @@ buildGoModule rec {
|
|||
owner = "fluxcd";
|
||||
repo = "flux2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-V4cZuRlC1Hu4gBG5/8ZNBKlSBFLgOtSJ3GbpjW5/8xM=";
|
||||
sha256 = "sha256-idHMijca1lYQF4aW+RPyzRraLDNdVavMuj4TP6z90Oo=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-aVVvrOjCKxzFer5uZRSu1LCQKkGkPcBdKdebN5uHUUg=";
|
||||
vendorSha256 = "sha256-VrDO8y6omRKf3mPRAnRMZsSMwQHxQxShUa9HZ3dfCgM=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "terragrunt";
|
||||
version = "0.28.18";
|
||||
version = "0.28.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-W0HjGILezhuc1lXvGCHw23h8Sx1uw4YLLsOOBZYGvU8=";
|
||||
sha256 = "sha256-REcVc4u7pDTDHvoI1Fw36Mioyg1D4U29Hq0ih8Bt95s=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-kcRM76xfajtQist1aJTmaRludxRlfvHQ9ucB3LOgnBk=";
|
||||
|
|
|
@ -46,10 +46,12 @@ mkDerivation rec {
|
|||
++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
|
||||
++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
file pkg-config python3Packages.setuptools which
|
||||
];
|
||||
|
||||
buildInputs = with python3Packages; [
|
||||
bison chmlib file python setuptools which xapian zlib
|
||||
buildInputs = [
|
||||
bison chmlib python3Packages.python xapian zlib
|
||||
] ++ lib.optional withGui qtbase
|
||||
++ lib.optional stdenv.isDarwin libiconv;
|
||||
|
||||
|
@ -98,6 +100,6 @@ mkDerivation rec {
|
|||
homepage = "https://www.lesbonscomptes.com/recoll/";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.jcumming ];
|
||||
maintainers = with maintainers; [ jcumming kiyengar ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -16,12 +16,12 @@ with lib;
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "gitea";
|
||||
version = "1.13.6";
|
||||
version = "1.13.7";
|
||||
|
||||
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
|
||||
src = fetchurl {
|
||||
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
|
||||
sha256 = "1f0fsqcmmqygv0r796ddr2fjhh333i9nr0cqk9x2b2kbs1z264vf";
|
||||
sha256 = "sha256-jJbX+kcXqd1v8aXNhmt24mq9mxOpTogCVm263rHVGHw=";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
|
@ -12,8 +12,27 @@
|
|||
, patches ? [ ]
|
||||
, conf ? null
|
||||
, writeText
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
let
|
||||
# Add two patches to fix compile errors with wlroots 0.13:
|
||||
totalPatches = patches ++ [
|
||||
# Fix the renamed constant WLR_KEY_PRESSED => WL_KEYBOARD_KEY_STATE_PRESSED
|
||||
# https://github.com/djpohly/dwl/pull/66
|
||||
(fetchpatch {
|
||||
url = "https://github.com/djpohly/dwl/commit/a42613db9d9f6debfa4fb2363d75af9457d238ed.patch";
|
||||
sha256 = "0h76hx1fhazi07gqg7sljh13f91v6bvjy7m9qqmimhvqgfwdcc0j";
|
||||
})
|
||||
# Use the new signature for wlr_backend_autocreate, which removes an argument:
|
||||
# https://github.com/djpohly/dwl/pull/76
|
||||
(fetchpatch {
|
||||
url = "https://github.com/djpohly/dwl/commit/0ff13cf216056a36a261f4eed53c6a864989a9fb.patch";
|
||||
sha256 = "18clpdb4il1vxf1b0cx0qrwild68s9dism8ab66zpmvxs5qag2dm";
|
||||
})
|
||||
];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dwl";
|
||||
version = "0.2";
|
||||
|
@ -39,7 +58,7 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
# Allow users to set their own list of patches
|
||||
inherit patches;
|
||||
patches = totalPatches;
|
||||
|
||||
# Last line of config.mk enables XWayland
|
||||
prePatch = lib.optionalString enable-xwayland ''
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
, glib
|
||||
, libinput
|
||||
, libxml2
|
||||
, pandoc
|
||||
, pango
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
|
@ -16,20 +15,22 @@
|
|||
, libxcb
|
||||
, libxkbcommon
|
||||
, xwayland
|
||||
, libdrm
|
||||
, scdoc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "labwc";
|
||||
version = "unstable-2021-02-06";
|
||||
version = "unstable-2021-03-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "johanmalm";
|
||||
repo = pname;
|
||||
rev = "4a8fcf5c6d0b730b1e2e17e544ce7d7d3c72cd13";
|
||||
sha256 = "g1ba8dchUN393eis0VAu1bIjQfthDGLaSijSavz4lfU=";
|
||||
rev = "fddeb74527e5b860d9c1a91a237d390041c758b6";
|
||||
sha256 = "0rhniv5j4bypqxxj0nbpa3hclmn8znal9rldv0mrgbizn3wsbs54";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config meson ninja pandoc ];
|
||||
nativeBuildInputs = [ pkg-config meson ninja scdoc ];
|
||||
buildInputs = [
|
||||
cairo
|
||||
glib
|
||||
|
@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
|
|||
libxcb
|
||||
libxkbcommon
|
||||
xwayland
|
||||
libdrm
|
||||
];
|
||||
|
||||
mesonFlags = [ "-Dxwayland=enabled" ];
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
, meson, ninja, pkg-config, wayland, scdoc
|
||||
, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
|
||||
, wlroots, wayland-protocols
|
||||
, wlroots, wayland-protocols, libdrm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sway-unwrapped";
|
||||
version = "1.5.1";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0";
|
||||
sha256 = "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -33,11 +33,12 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [
|
||||
wayland libxkbcommon pcre json_c dbus libevdev
|
||||
pango cairo libinput libcap pam gdk-pixbuf librsvg
|
||||
wlroots wayland-protocols
|
||||
wlroots wayland-protocols libdrm
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Ddefault-wallpaper=false"
|
||||
"-Dsd-bus-provider=libsystemd"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,22 +1,26 @@
|
|||
From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Weiss <dev.primeos@gmail.com>
|
||||
Date: Sat, 27 Apr 2019 14:26:16 +0200
|
||||
From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Hilhorst <git@hilhorst.be>
|
||||
Date: Wed, 31 Mar 2021 21:14:13 +0200
|
||||
Subject: [PATCH] Load configs from /etc but fallback to /nix/store
|
||||
|
||||
This change will load all configuration files from /etc, to make it easy
|
||||
to override them, but fallback to /nix/store/.../etc/sway/config to make
|
||||
Sway work out-of-the-box with the default configuration on non NixOS
|
||||
systems.
|
||||
|
||||
Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst
|
||||
|
||||
Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
|
||||
---
|
||||
meson.build | 3 ++-
|
||||
sway/config.c | 1 +
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
sway/config.c | 3 ++-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 02b5d606..c03a9c0f 100644
|
||||
index b7a29660..8ae8ceb3 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -129,7 +129,8 @@ if scdoc.found()
|
||||
@@ -164,7 +164,8 @@ if scdoc.found()
|
||||
endforeach
|
||||
endif
|
||||
|
||||
|
@ -25,18 +29,20 @@ index 02b5d606..c03a9c0f 100644
|
|||
+add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
|
||||
|
||||
version = '"@0@"'.format(meson.project_version())
|
||||
if git.found()
|
||||
git = find_program('git', native: true, required: false)
|
||||
diff --git a/sway/config.c b/sway/config.c
|
||||
index 4cd21bbc..dd855753 100644
|
||||
index 76b9ec08..fb5b51aa 100644
|
||||
--- a/sway/config.c
|
||||
+++ b/sway/config.c
|
||||
@@ -317,6 +317,7 @@ static char *get_config_path(void) {
|
||||
"$XDG_CONFIG_HOME/i3/config",
|
||||
SYSCONFDIR "/sway/config",
|
||||
SYSCONFDIR "/i3/config",
|
||||
+ NIX_SYSCONFDIR "/sway/config",
|
||||
@@ -374,7 +374,8 @@ static char *get_config_path(void) {
|
||||
{ .prefix = home, .config_folder = ".i3"},
|
||||
{ .prefix = config_home, .config_folder = "i3"},
|
||||
{ .prefix = SYSCONFDIR, .config_folder = "sway"},
|
||||
- { .prefix = SYSCONFDIR, .config_folder = "i3"}
|
||||
+ { .prefix = SYSCONFDIR, .config_folder = "i3"},
|
||||
+ { .prefix = NIX_SYSCONFDIR, .config_folder = "sway"},
|
||||
};
|
||||
|
||||
char *config_home = getenv("XDG_CONFIG_HOME");
|
||||
size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]);
|
||||
--
|
||||
2.19.2
|
||||
2.30.1
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
{ newScope, wayfirePlugins }:
|
||||
{ lib, newScope, wayfirePlugins }:
|
||||
|
||||
let
|
||||
self = with self; {
|
||||
inherit wayfirePlugins;
|
||||
lib.makeExtensible (self: with self; {
|
||||
inherit wayfirePlugins;
|
||||
|
||||
callPackage = newScope self;
|
||||
callPackage = newScope self;
|
||||
|
||||
wayfire = callPackage ./. { };
|
||||
wayfire = callPackage ./. { };
|
||||
|
||||
wcm = callPackage ./wcm.nix {
|
||||
inherit (wayfirePlugins) wf-shell;
|
||||
};
|
||||
|
||||
wrapWayfireApplication = callPackage ./wrapper.nix { };
|
||||
|
||||
withPlugins = selector: self // {
|
||||
wayfire = wrapWayfireApplication wayfire selector;
|
||||
wcm = wrapWayfireApplication wcm selector;
|
||||
};
|
||||
wcm = callPackage ./wcm.nix {
|
||||
inherit (wayfirePlugins) wf-shell;
|
||||
};
|
||||
in
|
||||
self
|
||||
|
||||
wrapWayfireApplication = callPackage ./wrapper.nix { };
|
||||
|
||||
withPlugins = selector: self // {
|
||||
wayfire = wrapWayfireApplication wayfire selector;
|
||||
wcm = wrapWayfireApplication wcm selector;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
{ stdenv, lib, fetchgit, flex, bison, pkg-config, which
|
||||
, pythonSupport ? false, python ? null, swig
|
||||
, pythonSupport ? false, python, swig, libyaml
|
||||
}:
|
||||
|
||||
assert pythonSupport -> python != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dtc";
|
||||
version = "1.6.0";
|
||||
|
@ -14,6 +12,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0li992wwd7kgy71bikanqky49y4hq3p3vx35p2hvyxy1k0wfy7i8";
|
||||
};
|
||||
|
||||
buildInputs = [ libyaml ];
|
||||
nativeBuildInputs = [ flex bison pkg-config which ] ++ lib.optionals pythonSupport [ python swig ];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -23,10 +22,12 @@ stdenv.mkDerivation rec {
|
|||
makeFlags = [ "PYTHON=python" ];
|
||||
installFlags = [ "INSTALL=install" "PREFIX=$(out)" "SETUP_PREFIX=$(out)" ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Device Tree Compiler";
|
||||
homepage = "https://git.kernel.org/cgit/utils/dtc/dtc.git";
|
||||
license = licenses.gpl2; # dtc itself is GPLv2, libfdt is dual GPL/BSD
|
||||
license = licenses.gpl2Plus; # dtc itself is GPLv2, libfdt is dual GPL/BSD
|
||||
maintainers = [ maintainers.dezgeg ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
openjdk11.overrideAttrs (oldAttrs: rec {
|
||||
pname = "jetbrains-jdk";
|
||||
version = "11.0.7-b64";
|
||||
version = "11.0.10-b37";
|
||||
src = fetchFromGitHub {
|
||||
owner = "JetBrains";
|
||||
repo = "JetBrainsRuntime";
|
||||
rev = "jb${lib.replaceStrings ["."] ["_"] version}";
|
||||
sha256 = "1gxqi6dkyriv9j29ppan638w1ns2g9m4q1sq7arf9kwqr05zim90";
|
||||
sha256 = "0bcvwnwi29z000b1bk5dhfkd33xfp9899zc3idzifdwl7q42zi02";
|
||||
};
|
||||
patches = [];
|
||||
meta = with lib; {
|
||||
|
|
|
@ -8,7 +8,7 @@ let
|
|||
pname = "clang";
|
||||
inherit version;
|
||||
|
||||
src = fetch "clang" "11ay72f81ffygil5ficq7mzplck4gffm77p0yj4ib3dgiqbb1qbw";
|
||||
src = fetch "clang" "185r9rr254v75ja33nmm53j85lcnkj7bzsl18wvnd37jmz2nfxa5";
|
||||
inherit clang-tools-extra_src;
|
||||
|
||||
unpackPhase = ''
|
||||
|
|
|
@ -11,7 +11,7 @@ in
|
|||
stdenv.mkDerivation rec {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
src = fetch pname "01dvir3858qkjmqhw2h6jjagq0la0kasnwzqbyv91yixnwx8369z";
|
||||
src = fetch pname "1x0z875nbdpzhr4qb7linm6r9swvdf6dvwqy1s22pbn4wdcw0cvf";
|
||||
|
||||
nativeBuildInputs = [ cmake python3 llvm ];
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
let
|
||||
release_version = "12.0.0";
|
||||
candidate = "rc4"; # empty or "rcN"
|
||||
candidate = "rc5"; # empty or "rcN"
|
||||
dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
|
||||
version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
@ -18,7 +18,7 @@ let
|
|||
inherit sha256;
|
||||
};
|
||||
|
||||
clang-tools-extra_src = fetch "clang-tools-extra" "1m1qga8m967bzqkxwx9xqkw1lkxi9dhlrn6km2k7g2yqyb6k14ag";
|
||||
clang-tools-extra_src = fetch "clang-tools-extra" "1hga9k5m60ywmr7m69jf1v6vj1ra1n6ybv1abzlz94f5q22i1a02";
|
||||
|
||||
tools = lib.makeExtensible (tools: let
|
||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
|
||||
|
|
|
@ -6,7 +6,7 @@ stdenv.mkDerivation {
|
|||
pname = "libc++";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxx" "0ai91zls1738502c3b2frhawmjpi73rm3m677hh540wrjp3xv0ql";
|
||||
src = fetch "libcxx" "01abh553dvjgk5cjzzp0ghmg00laqbr4ar4frdhyhpbwhhmwc880";
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxxabi.src}
|
||||
|
|
|
@ -6,7 +6,7 @@ stdenv.mkDerivation {
|
|||
pname = "libc++abi";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxxabi" "02qp6ndagq7n48p53z93d1rrx0v0v4rsahd4vkv5frid0vm4ah9h";
|
||||
src = fetch "libcxxabi" "0mjj4f63ix4j1b72bgzpcki7mzf3qszrq7snqhiq0c5s73skkwx0";
|
||||
|
||||
nativeBuildInputs = [ cmake python3 ];
|
||||
buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
|
||||
|
|
|
@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
|
|||
pname = "libunwind";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1a5db1lxw98a430b8mnaclc0w98y6cc8k587kgjhn0nghl40l40i";
|
||||
src = fetch pname "0kaq75ygzv9dqfsx27pi5a0clipdjq6a9vghhb89d8k1rf20lslh";
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxx.src}
|
||||
|
|
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||
pname = "lld";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "0r9pxhvinipirv9s5k8fnsnqd30zfniwqjkvw5sac3lq29rn2lp1";
|
||||
src = fetch pname "044lv1d9am2xmbc3pvssxkkiyxyv72n2xkgk8z3p9k72h3ay00q3";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ llvm libxml2 ];
|
||||
|
|
|
@ -25,7 +25,7 @@ stdenv.mkDerivation (rec {
|
|||
pname = "lldb";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "0943gan83mldizwbhksd07w4h90z4djjpv5f8v49caz8y9113svg";
|
||||
src = fetch pname "0q4p4s5ws1zszs3i4da5w5fnxkpny0q3fr1s1sh7jp9wcwxbxiqq";
|
||||
|
||||
patches = [ ./lldb-procfs.patch ];
|
||||
|
||||
|
|
|
@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
|
|||
pname = "llvm";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1jif65i165h41cfcsfvfjy5k1yrnikg61assj5vs0f25pv1vbyvf";
|
||||
polly_src = fetch "polly" "0hk6j6rsal3zsp1f9fla71yzbwmzz9007m63x22hy7qfiwyplvf2";
|
||||
src = fetch pname "088dyv7hppidl3rqfsjdibvn4d3a74896fg2sz4dwaxlg19way93";
|
||||
polly_src = fetch "polly" "1qj7gkfr1yrsrz6j086l9p6d2kyyln15fmfiab4isn96g1dhsfb5";
|
||||
|
||||
unpackPhase = ''
|
||||
unpackFile $src
|
||||
|
|
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||
pname = "openmp";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "07g2rsfhli3szv3chzy6y37p2176ywdb6w3k2fv9g2r416cpxjdz";
|
||||
src = fetch pname "1d16r5whjb2n4n28rg8wn2g9krlc92q6nb0qmnnbzhqhx0rbkjfb";
|
||||
|
||||
nativeBuildInputs = [ cmake perl ];
|
||||
buildInputs = [ llvm ];
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkg-config, re2, openssl, protobuf
|
||||
, gflags, abseil-cpp, libnsl
|
||||
, abseil-cpp, libnsl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.36.4"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
|
||||
version = "1.37.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
|
||||
pname = "grpc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "grpc";
|
||||
repo = "grpc";
|
||||
rev = "v${version}";
|
||||
sha256 = "1zxvdg5vgjgkq5wmzwbxj2zydaj90ja074axs26yzd9x08j0bjxz";
|
||||
sha256 = "0q3hcnq351j0qm0gsbaxbsnz1gd9w3bk4cazkvq4l2lfmmiw7z56";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
patches = [
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
propagatedBuildInputs = [ c-ares re2 zlib abseil-cpp ];
|
||||
buildInputs = [ c-ares.cmake-config openssl protobuf gflags ]
|
||||
buildInputs = [ c-ares.cmake-config openssl protobuf ]
|
||||
++ lib.optionals stdenv.isLinux [ libnsl ];
|
||||
|
||||
cmakeFlags =
|
||||
|
@ -31,7 +31,6 @@ stdenv.mkDerivation rec {
|
|||
"-DgRPC_RE2_PROVIDER=package"
|
||||
"-DgRPC_SSL_PROVIDER=package"
|
||||
"-DgRPC_PROTOBUF_PROVIDER=package"
|
||||
"-DgRPC_GFLAGS_PROVIDER=package"
|
||||
"-DgRPC_ABSL_PROVIDER=package"
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=OFF"
|
||||
|
|
|
@ -1,23 +1,33 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch
|
||||
, doxygen, fontconfig, graphviz-nox, libxml2, pkg-config, which
|
||||
, systemd }:
|
||||
|
||||
let
|
||||
version = "2019-12-08";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openzwave";
|
||||
inherit version;
|
||||
version = "1.6";
|
||||
|
||||
# Use fork by Home Assistant because this package is mainly used for python.pkgs.homeassistant-pyozw.
|
||||
# See https://github.com/OpenZWave/open-zwave/compare/master...home-assistant:hass for the difference.
|
||||
src = fetchFromGitHub {
|
||||
owner = "home-assistant";
|
||||
owner = "OpenZWave";
|
||||
repo = "open-zwave";
|
||||
rev = "2cd2137025c529835e4893a7b87c3d56605b2681";
|
||||
sha256 = "04g8fb4f4ihakvvsmzcnncgfdd2ikmki7s22i9c6layzdwavbwf1";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-strncat-build-failure.patch";
|
||||
url = "https://github.com/OpenZWave/open-zwave/commit/601e5fb16232a7984885e67fdddaf5b9c9dd8105.patch";
|
||||
sha256 = "1n1k5arwk1dyc12xz6xl4n8yw28vghzhv27j65z1nca4zqsxgza1";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-text-uninitialized.patch";
|
||||
url = "https://github.com/OpenZWave/open-zwave/commit/3b029a467e83bc7f0054e4dbba1e77e6eac7bc7f.patch";
|
||||
sha256 = "183mrzjh1zx2b2wzkj4jisiw8br7g7bbs167afls4li0fm01d638";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
nativeBuildInputs = [ doxygen fontconfig graphviz-nox libxml2 pkg-config which ];
|
||||
|
||||
buildInputs = [ systemd ];
|
||||
|
@ -26,13 +36,9 @@ in stdenv.mkDerivation {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
DESTDIR=$out PREFIX= pkgconfigdir=lib/pkgconfig make install $installFlags
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
];
|
||||
|
||||
FONTCONFIG_FILE="${fontconfig.out}/etc/fonts/fonts.conf";
|
||||
FONTCONFIG_PATH="${fontconfig.out}/etc/fonts/";
|
||||
|
@ -42,15 +48,6 @@ in stdenv.mkDerivation {
|
|||
--replace /etc/openzwave $out/etc/openzwave
|
||||
'';
|
||||
|
||||
fixupPhase = ''
|
||||
substituteInPlace $out/lib/pkgconfig/libopenzwave.pc \
|
||||
--replace prefix= prefix=$out \
|
||||
--replace dir= dir=$out
|
||||
|
||||
substituteInPlace $out/bin/ozw_config \
|
||||
--replace pcfile=${pkg-config} pcfile=$out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "C++ library to control Z-Wave Networks via a USB Z-Wave Controller";
|
||||
homepage = "http://www.openzwave.net/";
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
, substituteAll
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (rec {
|
||||
pname = "tracker";
|
||||
version = "3.0.3";
|
||||
|
||||
|
@ -82,7 +82,8 @@ stdenv.mkDerivation rec {
|
|||
"-Ddocs=true"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
# https://gitlab.gnome.org/GNOME/tracker/-/issues/292#note_1075369
|
||||
doCheck = !stdenv.isi686;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs utils/g-ir-merge/g-ir-merge
|
||||
|
@ -133,3 +134,8 @@ stdenv.mkDerivation rec {
|
|||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs stdenv.isi686 {
|
||||
# TMP: fatal error: libtracker-sparql/tracker-sparql-enum-types.h: No such file or directory
|
||||
enableParallelBuilding = false;
|
||||
}
|
||||
)
|
||||
|
|
|
@ -11,23 +11,23 @@ let
|
|||
deps = {
|
||||
"base/trace_event/common" = fetchgit {
|
||||
url = "${git_url}/chromium/src/base/trace_event/common.git";
|
||||
rev = "936ba8a963284a6b3737cf2f0474a7131073abee";
|
||||
sha256 = "14nr22fqdpxma1kzjflj6a865vr3hfnnm2gs4vcixyq4kmfzfcy2";
|
||||
rev = "dab187b372fc17e51f5b9fad8201813d0aed5129";
|
||||
sha256 = "0dmpj9hj4xv3xb0fl1kb9hm4bhpbs2s5csx3z8cgjd5vwvhdzig4";
|
||||
};
|
||||
build = fetchgit {
|
||||
url = "${git_url}/chromium/src/build.git";
|
||||
rev = "325e95d6dae64f35b160b3dc7d73218cee5ec079";
|
||||
sha256 = "0dddyxa76p2xpjhmxif05v63i5ar6h5v684fdl667sg84f5bhhxf";
|
||||
rev = "26e9d485d01d6e0eb9dadd21df767a63494c8fea";
|
||||
sha256 = "1jjvsgj0cs97d26i3ba531ic1f9gqan8x7z4aya8yl8jx02l342q";
|
||||
};
|
||||
"third_party/googletest/src" = fetchgit {
|
||||
url = "${git_url}/external/github.com/google/googletest.git";
|
||||
rev = "5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081";
|
||||
sha256 = "0gmr10042c0xybxnn6g7ndj1na1mmd3l9w7449qlcv4s8gmfs7k6";
|
||||
rev = "e3f0319d89f4cbf32993de595d984183b1a9fc57";
|
||||
sha256 = "18xz71l2xjrqsc0q317whgw4xi1i5db24zcj7v04f5g6r1hyf1a5";
|
||||
};
|
||||
"third_party/icu" = fetchgit {
|
||||
url = "${git_url}/chromium/deps/icu.git";
|
||||
rev = "960f195aa87acaec46e6104ec93a596da7ae0843";
|
||||
sha256 = "073kh6gpcairgjxf3hlhpqljc13gwl2aj8fz91fv220xibwqs834";
|
||||
rev = "f2223961702f00a8833874b0560d615a2cc42738";
|
||||
sha256 = "0z5p53kbrjfkjn0i12dpk55cp8976j2zk7a4wk88423s2c5w87zl";
|
||||
};
|
||||
"third_party/jinja2" = fetchgit {
|
||||
url = "${git_url}/chromium/src/third_party/jinja2.git";
|
||||
|
@ -39,29 +39,31 @@ let
|
|||
rev = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
|
||||
sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
|
||||
};
|
||||
"third_party/zlib" = fetchgit {
|
||||
url = "${git_url}/chromium/src/third_party/zlib.git";
|
||||
rev = "156be8c52f80cde343088b4a69a80579101b6e67";
|
||||
sha256 = "0hxbkkzmlv714fjq2jlp5dd2jc339xyh6gkjx1sz3srwv33mlk92";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "v8";
|
||||
version = "7.4.255";
|
||||
version = "8.4.255";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/RPi-Distro/chromium-browser/master/debian/patches/revert-Xclang-instcombine-lower-dbg-declare.patch";
|
||||
sha256 = "02hczcg43m36q8j1kv5j3hq9czj9niiil9w13w22vzv2f3c67dvn";
|
||||
})
|
||||
./darwin.patch
|
||||
./gcc_arm.patch # Fix building zlib with gcc on aarch64, from https://gist.github.com/Adenilson/d973b6fd96c7709d33ddf08cf1dcb149
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "v8";
|
||||
repo = "v8";
|
||||
rev = version;
|
||||
sha256 = "14i0c71hmffzqnq9n73dh9dnabdxhbjhzkhqpk5yv9y90bwrzi2n";
|
||||
sha256 = "07ymw4kqbz7kv311gpk5bs5q90wj73n2q7jkyfhqk4hvhs1q5bw7";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
|
@ -97,9 +99,7 @@ stdenv.mkDerivation rec {
|
|||
''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
|
||||
] ++ lib.optional stdenv.cc.isClang ''clang_base_path="${stdenv.cc}"'';
|
||||
|
||||
# with gcc8, -Wclass-memaccess became part of -Wall and causes logging limit
|
||||
# to be exceeded
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-class-memaccess";
|
||||
NIX_CFLAGS_COMPILE = "-O2";
|
||||
|
||||
nativeBuildInputs = [ gn ninja pkg-config python ]
|
||||
++ lib.optionals stdenv.isDarwin [ xcbuild darwin.DarwinTools ];
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/third_party/zlib/contrib/optimizations/insert_string.h b/third_party/zlib/contrib/optimizations/insert_string.h
|
||||
index 1826601..d123305 100644
|
||||
--- a/third_party/zlib/contrib/optimizations/insert_string.h
|
||||
+++ b/third_party/zlib/contrib/optimizations/insert_string.h
|
||||
@@ -26,15 +26,23 @@
|
||||
#define _cpu_crc32_u32 _mm_crc32_u32
|
||||
|
||||
#elif defined(CRC32_ARMV8_CRC32)
|
||||
- #if defined(__clang__)
|
||||
+ #if defined(__GNUC__) || defined(__clang__)
|
||||
#undef TARGET_CPU_WITH_CRC
|
||||
- #define __crc32cw __builtin_arm_crc32cw
|
||||
+ #if defined(__clang__)
|
||||
+ #define __crc32cw __builtin_arm_crc32cw
|
||||
+ #elif defined(__GNUC__)
|
||||
+ #define __crc32cw __builtin_aarch64_crc32cw
|
||||
+ #endif
|
||||
#endif
|
||||
|
||||
#define _cpu_crc32_u32 __crc32cw
|
||||
|
||||
#if defined(__aarch64__)
|
||||
- #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
|
||||
+ #if defined(__clang__)
|
||||
+ #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
|
||||
+ #elif defined(__GNUC__)
|
||||
+ #define TARGET_CPU_WITH_CRC __attribute__((target("+crc")))
|
||||
+ #endif
|
||||
#else // !defined(__aarch64__)
|
||||
#define TARGET_CPU_WITH_CRC __attribute__((target("armv8-a,crc")))
|
||||
#endif // defined(__aarch64__)
|
|
@ -0,0 +1,57 @@
|
|||
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
|
||||
, libGL, wayland-protocols, libinput, libxkbcommon, pixman
|
||||
, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
|
||||
, libpng, ffmpeg
|
||||
}:
|
||||
|
||||
# Fixed version derivation.
|
||||
# nixpkgs-update: no auto update
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wlroots";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "wlroots";
|
||||
rev = version;
|
||||
sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
|
||||
};
|
||||
|
||||
# $out for the library and $examples for the example programs (in examples):
|
||||
outputs = [ "out" "examples" ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland ];
|
||||
|
||||
buildInputs = [
|
||||
libGL wayland wayland-protocols libinput libxkbcommon pixman
|
||||
xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
|
||||
libpng ffmpeg
|
||||
];
|
||||
|
||||
mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
|
||||
|
||||
postFixup = ''
|
||||
# Install ALL example programs to $examples:
|
||||
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
|
||||
# screenshot output-layout multi-pointer rotation tablet touch pointer
|
||||
# simple
|
||||
mkdir -p $examples/bin
|
||||
cd ./examples
|
||||
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
|
||||
cp "$binary" "$examples/bin/wlroots-$binary"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modular Wayland compositor library";
|
||||
longDescription = ''
|
||||
Pluggable, composable, unopinionated modules for building a Wayland
|
||||
compositor; or about 50,000 lines of code you were going to write anyway.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
|
@ -1,18 +1,18 @@
|
|||
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner
|
||||
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
|
||||
, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
|
||||
, libpng, ffmpeg
|
||||
, libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wlroots";
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "wlroots";
|
||||
rev = version;
|
||||
sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
|
||||
sha256 = "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy";
|
||||
};
|
||||
|
||||
# $out for the library and $examples for the example programs (in examples):
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [
|
||||
libGL wayland wayland-protocols libinput libxkbcommon pixman
|
||||
xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
|
||||
libpng ffmpeg
|
||||
libpng ffmpeg libuuid xcbutilrenderutil xwayland
|
||||
];
|
||||
|
||||
mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
|
||||
|
@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
|
|||
changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,24 +10,16 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiodiscover";
|
||||
version = "1.3.2";
|
||||
version = "1.3.3";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bdraco";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0qg2wm6ddsfai788chylr5ynrvakwg91q3dszz7dxzbkfdcxixj3";
|
||||
sha256 = "186agrjx818vn00d3pqlka5ir48rgpbfyn1cifkn9ylsxg9cz3ph";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "remove-entry_point.patch";
|
||||
url = "https://github.com/bdraco/aiodiscover/commit/4c497fb7d4c8685a78209c710e92e0bd17f46bb2.patch";
|
||||
sha256 = "0py9alhg6qdncbn6a04mrnjhs4j19kg759dv69knpqzryikcfa63";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
async-dns
|
||||
pyroute2
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, ed25519
|
||||
, fetchFromGitHub
|
||||
, nats-server
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "asyncio-nats-client";
|
||||
version = "0.11.4";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nats-io";
|
||||
repo = "nats.py";
|
||||
rev = "v${version}";
|
||||
sha256 = "1aj57xi2rj1xswq8air13xdsll1ybpi0nmz5f6jq01azm0zy9xyd";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
ed25519
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
nats-server
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "--cov=nats --cov-report html" ""
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
# RuntimeError: Event loop is closed
|
||||
"test_subscribe_no_echo"
|
||||
"test_reconnect_to_new_server_with_auth"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "nats.aio" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python client for NATS.io";
|
||||
homepage = "https://github.com/nats-io/nats.py";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
|
@ -33,11 +33,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bokeh";
|
||||
version = "2.2.3"; # update together with panel which is not straightforward
|
||||
# update together with panel which is not straightforward
|
||||
version = "2.3.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "c4a3f97afe5f525019dd58ee8c4e3d43f53fe1b1ac264ccaae9b02c07b2abc17";
|
||||
sha256 = "dd417708f90702190222b1068a645acae99e66d4b58d7a336d545aeaa04e9b40";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "grpcio-tools";
|
||||
version = "1.36.1";
|
||||
version = "1.37.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "80ef584f7b917f575e4b8f2ec59cd4a4d98c2046e801a735f3136b05742a36a6";
|
||||
sha256 = "3ec510c1b6bfc32effc639acf9a055e72dab7a7b6757bf72f2132790d6a7cf1c";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
|
|
@ -1,6 +1,19 @@
|
|||
{ python_openzwave, fetchPypi }:
|
||||
{ python_openzwave, fetchPypi, openzwave, fetchFromGitHub }:
|
||||
|
||||
python_openzwave.overridePythonAttrs (oldAttrs: rec {
|
||||
(python_openzwave.override {
|
||||
openzwave = openzwave.overrideAttrs (oldAttrs: {
|
||||
version = "unstable-2020-03-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "home-assistant";
|
||||
repo = "open-zwave";
|
||||
rev = "94267fa298c1882f0dc73c0fd08f1f755ba83e83";
|
||||
sha256 = "0p2869fwidz1wcqzfm52cwm9ab96pmwkna3d4yvvh21nh09cvmwk";
|
||||
};
|
||||
|
||||
patches = [ ];
|
||||
});
|
||||
}).overridePythonAttrs (oldAttrs: rec {
|
||||
pname = "homeassistant_pyozw";
|
||||
version = "0.1.10";
|
||||
|
||||
|
|
|
@ -18,7 +18,9 @@ buildPythonPackage rec {
|
|||
sha256 = "929c60d7fb4aa704084c02d8ededc209b8b378e0b3adab46158b7fa6acc24230";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ jupyterlab_server notebook jupyter-packaging nbclassic ];
|
||||
nativeBuildInputs = [ jupyter-packaging ];
|
||||
|
||||
propagatedBuildInputs = [ jupyterlab_server notebook nbclassic ];
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--set" "JUPYTERLAB_DIR" "$out/share/jupyter/lab"
|
||||
|
@ -27,6 +29,8 @@ buildPythonPackage rec {
|
|||
# Depends on npm
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "jupyterlab" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Jupyter lab environment notebook server extension.";
|
||||
license = with licenses; [ bsd3 ];
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, poetry-core
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nats-python";
|
||||
version = "0.8.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gr1N";
|
||||
repo = "nats-python";
|
||||
rev = version;
|
||||
sha256 = "1j7skyxldir3mphvnsyhjxmf3cimv4h7n5v58jl2gff4yd0hdw7g";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Switch to poetry-core, https://github.com/Gr1N/nats-python/pull/19
|
||||
(fetchpatch {
|
||||
name = "use-poetry-core.patch";
|
||||
url = "https://github.com/Gr1N/nats-python/commit/71b25b324212dccd7fc06ba3914491adba22e83f.patch";
|
||||
sha256 = "1fip1qpzk2ka7qgkrdpdr6vnrnb1p8cwapa51xp0h26nm7yis1gl";
|
||||
})
|
||||
];
|
||||
|
||||
# Tests require a running NATS server
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "pynats" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python client for NATS messaging system";
|
||||
homepage = "https://github.com/Gr1N/nats-python";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
|
@ -8,19 +8,39 @@
|
|||
, pyct
|
||||
, testpath
|
||||
, tqdm
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
let
|
||||
node = callPackage ./node {};
|
||||
in buildPythonPackage rec {
|
||||
pname = "panel";
|
||||
version = "0.11.1";
|
||||
# Version 10 attempts to download models from the web during build-time
|
||||
# https://github.com/holoviz/panel/issues/1819
|
||||
|
||||
# Don't forget to also update the node packages
|
||||
# 1. retrieve the package.json file
|
||||
# 2. nix shell nixpkgs#nodePackages.node2nix
|
||||
# 3. node2nix
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "ce531e5c0c8a8ae74d523762aeb1666650caebbe1867aba16129d29791e921f9";
|
||||
};
|
||||
|
||||
# Since 0.10.0 panel attempts to fetch from the web.
|
||||
# We avoid this:
|
||||
# - we use node2nix to fetch assets
|
||||
# - we disable bundling (which also tries to fetch assets)
|
||||
# Downside of disabling bundling is that in an airgapped environment
|
||||
# one may miss assets.
|
||||
# https://github.com/holoviz/panel/issues/1819
|
||||
preBuild = ''
|
||||
substituteInPlace setup.py --replace "bundle_resources()" ""
|
||||
pushd panel
|
||||
ln -s ${node.nodeDependencies}/lib/node_modules
|
||||
export PATH="${node.nodeDependencies}/bin:$PATH"
|
||||
popd
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
bokeh
|
||||
param
|
||||
|
@ -34,6 +54,10 @@ buildPythonPackage rec {
|
|||
# infinite recursion in test dependencies (hvplot)
|
||||
doCheck = false;
|
||||
|
||||
passthru = {
|
||||
inherit node; # For convenience
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A high level dashboarding library for python visualization libraries";
|
||||
homepage = "https://pyviz.org";
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# This file has been generated by node2nix 1.9.0. Do not edit!
|
||||
|
||||
{pkgs ? import <nixpkgs> {
|
||||
inherit system;
|
||||
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
|
||||
|
||||
let
|
||||
nodeEnv = import ./node-env.nix {
|
||||
inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
|
||||
inherit pkgs nodejs;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
||||
};
|
||||
in
|
||||
import ./node-packages.nix {
|
||||
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
|
||||
inherit nodeEnv;
|
||||
}
|
|
@ -0,0 +1,567 @@
|
|||
# This file originates from node2nix
|
||||
|
||||
{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
|
||||
|
||||
let
|
||||
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
|
||||
utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
|
||||
|
||||
python = if nodejs ? python then nodejs.python else python2;
|
||||
|
||||
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
|
||||
tarWrapper = runCommand "tarWrapper" {} ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
cat > $out/bin/tar <<EOF
|
||||
#! ${stdenv.shell} -e
|
||||
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
|
||||
EOF
|
||||
|
||||
chmod +x $out/bin/tar
|
||||
'';
|
||||
|
||||
# Function that generates a TGZ file from a NPM project
|
||||
buildNodeSourceDist =
|
||||
{ name, version, src, ... }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "node-tarball-${name}-${version}";
|
||||
inherit src;
|
||||
buildInputs = [ nodejs ];
|
||||
buildPhase = ''
|
||||
export HOME=$TMPDIR
|
||||
tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/tarballs
|
||||
mv $tgzFile $out/tarballs
|
||||
mkdir -p $out/nix-support
|
||||
echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
};
|
||||
|
||||
includeDependencies = {dependencies}:
|
||||
lib.optionalString (dependencies != [])
|
||||
(lib.concatMapStrings (dependency:
|
||||
''
|
||||
# Bundle the dependencies of the package
|
||||
mkdir -p node_modules
|
||||
cd node_modules
|
||||
|
||||
# Only include dependencies if they don't exist. They may also be bundled in the package.
|
||||
if [ ! -e "${dependency.name}" ]
|
||||
then
|
||||
${composePackage dependency}
|
||||
fi
|
||||
|
||||
cd ..
|
||||
''
|
||||
) dependencies);
|
||||
|
||||
# Recursively composes the dependencies of a package
|
||||
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
|
||||
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
|
||||
DIR=$(pwd)
|
||||
cd $TMPDIR
|
||||
|
||||
unpackFile ${src}
|
||||
|
||||
# Make the base dir in which the target dependency resides first
|
||||
mkdir -p "$(dirname "$DIR/${packageName}")"
|
||||
|
||||
if [ -f "${src}" ]
|
||||
then
|
||||
# Figure out what directory has been unpacked
|
||||
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
|
||||
|
||||
# Restore write permissions to make building work
|
||||
find "$packageDir" -type d -exec chmod u+x {} \;
|
||||
chmod -R u+w "$packageDir"
|
||||
|
||||
# Move the extracted tarball into the output folder
|
||||
mv "$packageDir" "$DIR/${packageName}"
|
||||
elif [ -d "${src}" ]
|
||||
then
|
||||
# Get a stripped name (without hash) of the source directory.
|
||||
# On old nixpkgs it's already set internally.
|
||||
if [ -z "$strippedName" ]
|
||||
then
|
||||
strippedName="$(stripHash ${src})"
|
||||
fi
|
||||
|
||||
# Restore write permissions to make building work
|
||||
chmod -R u+w "$strippedName"
|
||||
|
||||
# Move the extracted directory into the output folder
|
||||
mv "$strippedName" "$DIR/${packageName}"
|
||||
fi
|
||||
|
||||
# Unset the stripped name to not confuse the next unpack step
|
||||
unset strippedName
|
||||
|
||||
# Include the dependencies of the package
|
||||
cd "$DIR/${packageName}"
|
||||
${includeDependencies { inherit dependencies; }}
|
||||
cd ..
|
||||
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||
'';
|
||||
|
||||
pinpointDependencies = {dependencies, production}:
|
||||
let
|
||||
pinpointDependenciesFromPackageJSON = writeTextFile {
|
||||
name = "pinpointDependencies.js";
|
||||
text = ''
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
function resolveDependencyVersion(location, name) {
|
||||
if(location == process.env['NIX_STORE']) {
|
||||
return null;
|
||||
} else {
|
||||
var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
|
||||
|
||||
if(fs.existsSync(dependencyPackageJSON)) {
|
||||
var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
|
||||
|
||||
if(dependencyPackageObj.name == name) {
|
||||
return dependencyPackageObj.version;
|
||||
}
|
||||
} else {
|
||||
return resolveDependencyVersion(path.resolve(location, ".."), name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function replaceDependencies(dependencies) {
|
||||
if(typeof dependencies == "object" && dependencies !== null) {
|
||||
for(var dependency in dependencies) {
|
||||
var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
|
||||
|
||||
if(resolvedVersion === null) {
|
||||
process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
|
||||
} else {
|
||||
dependencies[dependency] = resolvedVersion;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Read the package.json configuration */
|
||||
var packageObj = JSON.parse(fs.readFileSync('./package.json'));
|
||||
|
||||
/* Pinpoint all dependencies */
|
||||
replaceDependencies(packageObj.dependencies);
|
||||
if(process.argv[2] == "development") {
|
||||
replaceDependencies(packageObj.devDependencies);
|
||||
}
|
||||
replaceDependencies(packageObj.optionalDependencies);
|
||||
|
||||
/* Write the fixed package.json file */
|
||||
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
|
||||
'';
|
||||
};
|
||||
in
|
||||
''
|
||||
node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
|
||||
|
||||
${lib.optionalString (dependencies != [])
|
||||
''
|
||||
if [ -d node_modules ]
|
||||
then
|
||||
cd node_modules
|
||||
${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
|
||||
cd ..
|
||||
fi
|
||||
''}
|
||||
'';
|
||||
|
||||
# Recursively traverses all dependencies of a package and pinpoints all
|
||||
# dependencies in the package.json file to the versions that are actually
|
||||
# being used.
|
||||
|
||||
pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
|
||||
''
|
||||
if [ -d "${packageName}" ]
|
||||
then
|
||||
cd "${packageName}"
|
||||
${pinpointDependencies { inherit dependencies production; }}
|
||||
cd ..
|
||||
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||
fi
|
||||
'';
|
||||
|
||||
# Extract the Node.js source code which is used to compile packages with
|
||||
# native bindings
|
||||
nodeSources = runCommand "node-sources" {} ''
|
||||
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
|
||||
mv node-* $out
|
||||
'';
|
||||
|
||||
# Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
|
||||
addIntegrityFieldsScript = writeTextFile {
|
||||
name = "addintegrityfields.js";
|
||||
text = ''
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
function augmentDependencies(baseDir, dependencies) {
|
||||
for(var dependencyName in dependencies) {
|
||||
var dependency = dependencies[dependencyName];
|
||||
|
||||
// Open package.json and augment metadata fields
|
||||
var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
|
||||
var packageJSONPath = path.join(packageJSONDir, "package.json");
|
||||
|
||||
if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
|
||||
console.log("Adding metadata fields to: "+packageJSONPath);
|
||||
var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
|
||||
|
||||
if(dependency.integrity) {
|
||||
packageObj["_integrity"] = dependency.integrity;
|
||||
} else {
|
||||
packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
|
||||
}
|
||||
|
||||
if(dependency.resolved) {
|
||||
packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
|
||||
} else {
|
||||
packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
|
||||
}
|
||||
|
||||
if(dependency.from !== undefined) { // Adopt from property if one has been provided
|
||||
packageObj["_from"] = dependency.from;
|
||||
}
|
||||
|
||||
fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
|
||||
}
|
||||
|
||||
// Augment transitive dependencies
|
||||
if(dependency.dependencies !== undefined) {
|
||||
augmentDependencies(packageJSONDir, dependency.dependencies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(fs.existsSync("./package-lock.json")) {
|
||||
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
|
||||
|
||||
if(![1, 2].includes(packageLock.lockfileVersion)) {
|
||||
process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if(packageLock.dependencies !== undefined) {
|
||||
augmentDependencies(".", packageLock.dependencies);
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
# Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
|
||||
reconstructPackageLock = writeTextFile {
|
||||
name = "addintegrityfields.js";
|
||||
text = ''
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
var packageObj = JSON.parse(fs.readFileSync("package.json"));
|
||||
|
||||
var lockObj = {
|
||||
name: packageObj.name,
|
||||
version: packageObj.version,
|
||||
lockfileVersion: 1,
|
||||
requires: true,
|
||||
dependencies: {}
|
||||
};
|
||||
|
||||
function augmentPackageJSON(filePath, dependencies) {
|
||||
var packageJSON = path.join(filePath, "package.json");
|
||||
if(fs.existsSync(packageJSON)) {
|
||||
var packageObj = JSON.parse(fs.readFileSync(packageJSON));
|
||||
dependencies[packageObj.name] = {
|
||||
version: packageObj.version,
|
||||
integrity: "sha1-000000000000000000000000000=",
|
||||
dependencies: {}
|
||||
};
|
||||
processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
|
||||
}
|
||||
}
|
||||
|
||||
function processDependencies(dir, dependencies) {
|
||||
if(fs.existsSync(dir)) {
|
||||
var files = fs.readdirSync(dir);
|
||||
|
||||
files.forEach(function(entry) {
|
||||
var filePath = path.join(dir, entry);
|
||||
var stats = fs.statSync(filePath);
|
||||
|
||||
if(stats.isDirectory()) {
|
||||
if(entry.substr(0, 1) == "@") {
|
||||
// When we encounter a namespace folder, augment all packages belonging to the scope
|
||||
var pkgFiles = fs.readdirSync(filePath);
|
||||
|
||||
pkgFiles.forEach(function(entry) {
|
||||
if(stats.isDirectory()) {
|
||||
var pkgFilePath = path.join(filePath, entry);
|
||||
augmentPackageJSON(pkgFilePath, dependencies);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
augmentPackageJSON(filePath, dependencies);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
processDependencies("node_modules", lockObj.dependencies);
|
||||
|
||||
fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
|
||||
'';
|
||||
};
|
||||
|
||||
prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
|
||||
let
|
||||
forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
|
||||
in
|
||||
''
|
||||
# Pinpoint the versions of all dependencies to the ones that are actually being used
|
||||
echo "pinpointing versions of dependencies..."
|
||||
source $pinpointDependenciesScriptPath
|
||||
|
||||
# Patch the shebangs of the bundled modules to prevent them from
|
||||
# calling executables outside the Nix store as much as possible
|
||||
patchShebangs .
|
||||
|
||||
# Deploy the Node.js package by running npm install. Since the
|
||||
# dependencies have been provided already by ourselves, it should not
|
||||
# attempt to install them again, which is good, because we want to make
|
||||
# it Nix's responsibility. If it needs to install any dependencies
|
||||
# anyway (e.g. because the dependency parameters are
|
||||
# incomplete/incorrect), it fails.
|
||||
#
|
||||
# The other responsibilities of NPM are kept -- version checks, build
|
||||
# steps, postprocessing etc.
|
||||
|
||||
export HOME=$TMPDIR
|
||||
cd "${packageName}"
|
||||
runHook preRebuild
|
||||
|
||||
${lib.optionalString bypassCache ''
|
||||
${lib.optionalString reconstructLock ''
|
||||
if [ -f package-lock.json ]
|
||||
then
|
||||
echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
|
||||
echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
|
||||
rm package-lock.json
|
||||
else
|
||||
echo "No package-lock.json file found, reconstructing..."
|
||||
fi
|
||||
|
||||
node ${reconstructPackageLock}
|
||||
''}
|
||||
|
||||
node ${addIntegrityFieldsScript}
|
||||
''}
|
||||
|
||||
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
|
||||
|
||||
if [ "''${dontNpmInstall-}" != "1" ]
|
||||
then
|
||||
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
|
||||
rm -f npm-shrinkwrap.json
|
||||
|
||||
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
|
||||
fi
|
||||
'';
|
||||
|
||||
# Builds and composes an NPM package including all its dependencies
|
||||
buildNodePackage =
|
||||
{ name
|
||||
, packageName
|
||||
, version
|
||||
, dependencies ? []
|
||||
, buildInputs ? []
|
||||
, production ? true
|
||||
, npmFlags ? ""
|
||||
, dontNpmInstall ? false
|
||||
, bypassCache ? false
|
||||
, reconstructLock ? false
|
||||
, preRebuild ? ""
|
||||
, dontStrip ? true
|
||||
, unpackPhase ? "true"
|
||||
, buildPhase ? "true"
|
||||
, ... }@args:
|
||||
|
||||
let
|
||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
name = "node_${name}-${version}";
|
||||
buildInputs = [ tarWrapper python nodejs ]
|
||||
++ lib.optional (stdenv.isLinux) utillinux
|
||||
++ lib.optional (stdenv.isDarwin) libtool
|
||||
++ buildInputs;
|
||||
|
||||
inherit nodejs;
|
||||
|
||||
inherit dontStrip; # Stripping may fail a build for some package deployments
|
||||
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
|
||||
|
||||
compositionScript = composePackage args;
|
||||
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
||||
|
||||
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
|
||||
|
||||
installPhase = ''
|
||||
# Create and enter a root node_modules/ folder
|
||||
mkdir -p $out/lib/node_modules
|
||||
cd $out/lib/node_modules
|
||||
|
||||
# Compose the package and all its dependencies
|
||||
source $compositionScriptPath
|
||||
|
||||
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
||||
|
||||
# Create symlink to the deployed executable folder, if applicable
|
||||
if [ -d "$out/lib/node_modules/.bin" ]
|
||||
then
|
||||
ln -s $out/lib/node_modules/.bin $out/bin
|
||||
fi
|
||||
|
||||
# Create symlinks to the deployed manual page folders, if applicable
|
||||
if [ -d "$out/lib/node_modules/${packageName}/man" ]
|
||||
then
|
||||
mkdir -p $out/share
|
||||
for dir in "$out/lib/node_modules/${packageName}/man/"*
|
||||
do
|
||||
mkdir -p $out/share/man/$(basename "$dir")
|
||||
for page in "$dir"/*
|
||||
do
|
||||
ln -s $page $out/share/man/$(basename "$dir")
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Run post install hook, if provided
|
||||
runHook postInstall
|
||||
'';
|
||||
} // extraArgs);
|
||||
|
||||
# Builds a node environment (a node_modules folder and a set of binaries)
|
||||
buildNodeDependencies =
|
||||
{ name
|
||||
, packageName
|
||||
, version
|
||||
, src
|
||||
, dependencies ? []
|
||||
, buildInputs ? []
|
||||
, production ? true
|
||||
, npmFlags ? ""
|
||||
, dontNpmInstall ? false
|
||||
, bypassCache ? false
|
||||
, reconstructLock ? false
|
||||
, dontStrip ? true
|
||||
, unpackPhase ? "true"
|
||||
, buildPhase ? "true"
|
||||
, ... }@args:
|
||||
|
||||
let
|
||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
name = "node-dependencies-${name}-${version}";
|
||||
|
||||
buildInputs = [ tarWrapper python nodejs ]
|
||||
++ lib.optional (stdenv.isLinux) utillinux
|
||||
++ lib.optional (stdenv.isDarwin) libtool
|
||||
++ buildInputs;
|
||||
|
||||
inherit dontStrip; # Stripping may fail a build for some package deployments
|
||||
inherit dontNpmInstall unpackPhase buildPhase;
|
||||
|
||||
includeScript = includeDependencies { inherit dependencies; };
|
||||
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
|
||||
|
||||
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/${packageName}
|
||||
cd $out/${packageName}
|
||||
|
||||
source $includeScriptPath
|
||||
|
||||
# Create fake package.json to make the npm commands work properly
|
||||
cp ${src}/package.json .
|
||||
chmod 644 package.json
|
||||
${lib.optionalString bypassCache ''
|
||||
if [ -f ${src}/package-lock.json ]
|
||||
then
|
||||
cp ${src}/package-lock.json .
|
||||
fi
|
||||
''}
|
||||
|
||||
# Go to the parent folder to make sure that all packages are pinpointed
|
||||
cd ..
|
||||
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||
|
||||
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
|
||||
|
||||
# Expose the executables that were installed
|
||||
cd ..
|
||||
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||
|
||||
mv ${packageName} lib
|
||||
ln -s $out/lib/node_modules/.bin $out/bin
|
||||
'';
|
||||
} // extraArgs);
|
||||
|
||||
# Builds a development shell
|
||||
buildNodeShell =
|
||||
{ name
|
||||
, packageName
|
||||
, version
|
||||
, src
|
||||
, dependencies ? []
|
||||
, buildInputs ? []
|
||||
, production ? true
|
||||
, npmFlags ? ""
|
||||
, dontNpmInstall ? false
|
||||
, bypassCache ? false
|
||||
, reconstructLock ? false
|
||||
, dontStrip ? true
|
||||
, unpackPhase ? "true"
|
||||
, buildPhase ? "true"
|
||||
, ... }@args:
|
||||
|
||||
let
|
||||
nodeDependencies = buildNodeDependencies args;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "node-shell-${name}-${version}";
|
||||
|
||||
buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
cat > $out/bin/shell <<EOF
|
||||
#! ${stdenv.shell} -e
|
||||
$shellHook
|
||||
exec ${stdenv.shell}
|
||||
EOF
|
||||
chmod +x $out/bin/shell
|
||||
'';
|
||||
|
||||
# Provide the dependencies in a development shell through the NODE_PATH environment variable
|
||||
inherit nodeDependencies;
|
||||
shellHook = lib.optionalString (dependencies != []) ''
|
||||
export NODE_PATH=${nodeDependencies}/lib/node_modules
|
||||
export PATH="${nodeDependencies}/bin:$PATH"
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
|
||||
buildNodePackage = lib.makeOverridable buildNodePackage;
|
||||
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
|
||||
buildNodeShell = lib.makeOverridable buildNodeShell;
|
||||
}
|
|
@ -0,0 +1,572 @@
|
|||
# This file has been generated by node2nix 1.9.0. Do not edit!
|
||||
|
||||
{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
|
||||
|
||||
let
|
||||
sources = {
|
||||
"@bokeh/bokehjs-2.3.0" = {
|
||||
name = "_at_bokeh_slash_bokehjs";
|
||||
packageName = "@bokeh/bokehjs";
|
||||
version = "2.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@bokeh/bokehjs/-/bokehjs-2.3.0.tgz";
|
||||
sha512 = "geKBhYUVJ5IaY0UNk9k2P0yiYLCj+DOeNjdDneuTJ8K5R9fs0Rpp4iiaQKUGr1yUyQHGHLU8sk4CFZ+Bd5ZILg==";
|
||||
};
|
||||
};
|
||||
"@bokeh/numbro-1.6.2" = {
|
||||
name = "_at_bokeh_slash_numbro";
|
||||
packageName = "@bokeh/numbro";
|
||||
version = "1.6.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@bokeh/numbro/-/numbro-1.6.2.tgz";
|
||||
sha512 = "owIECPc3T3QXHCb2v5Ez+/uE9SIxI7N4nd9iFlWnfBrOelr0/omvFn09VisRn37AAFAY39sJiCVgECwryHWUPA==";
|
||||
};
|
||||
};
|
||||
"@bokeh/slickgrid-2.4.2702" = {
|
||||
name = "_at_bokeh_slash_slickgrid";
|
||||
packageName = "@bokeh/slickgrid";
|
||||
version = "2.4.2702";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@bokeh/slickgrid/-/slickgrid-2.4.2702.tgz";
|
||||
sha512 = "W9tm8Qdw5BrylbZbaVWaQMgLfW/klesnj6J3FnyWpo18hCCOFApccUD8iOnRv7bF6PHlgWk84mW3JT5RSzYKjA==";
|
||||
};
|
||||
};
|
||||
"@luma.gl/constants-8.4.4" = {
|
||||
name = "_at_luma.gl_slash_constants";
|
||||
packageName = "@luma.gl/constants";
|
||||
version = "8.4.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.4.tgz";
|
||||
sha512 = "4e58QW6UKXkxiIvWSLoAnTc4cT8nvb0PhLzu1h8KiCuaDT5Vq8csOymcNOy/jhpfcIhHlmT1KwowF5m/DcOlKg==";
|
||||
};
|
||||
};
|
||||
"@types/debounce-1.2.0" = {
|
||||
name = "_at_types_slash_debounce";
|
||||
packageName = "@types/debounce";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.0.tgz";
|
||||
sha512 = "bWG5wapaWgbss9E238T0R6bfo5Fh3OkeoSt245CM7JJwVwpw6MEBCbIxLq5z8KzsE3uJhzcIuQkyiZmzV3M/Dw==";
|
||||
};
|
||||
};
|
||||
"@types/gl-matrix-2.4.5" = {
|
||||
name = "_at_types_slash_gl-matrix";
|
||||
packageName = "@types/gl-matrix";
|
||||
version = "2.4.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/gl-matrix/-/gl-matrix-2.4.5.tgz";
|
||||
sha512 = "0L8Mq1+oaIW0oVzGUDbSW+HnTjCNb4CmoIQE5BkoHt/A7x20z0MJ1PnwfH3atty/vbWLGgvJwVu2Mz3SKFiEFw==";
|
||||
};
|
||||
};
|
||||
"@types/jquery-3.5.5" = {
|
||||
name = "_at_types_slash_jquery";
|
||||
packageName = "@types/jquery";
|
||||
version = "3.5.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz";
|
||||
sha512 = "6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==";
|
||||
};
|
||||
};
|
||||
"@types/sizzle-2.3.2" = {
|
||||
name = "_at_types_slash_sizzle";
|
||||
packageName = "@types/sizzle";
|
||||
version = "2.3.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz";
|
||||
sha512 = "7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==";
|
||||
};
|
||||
};
|
||||
"@types/slickgrid-2.1.30" = {
|
||||
name = "_at_types_slash_slickgrid";
|
||||
packageName = "@types/slickgrid";
|
||||
version = "2.1.30";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/slickgrid/-/slickgrid-2.1.30.tgz";
|
||||
sha512 = "9nTqNWD3BtEVK0CP+G+mBtvSrKTfQy3Dg5/al+GdTSVMHFm37UxsHJ1eURwPg7rYu6vc7xU95fGTCKMZbxsD5w==";
|
||||
};
|
||||
};
|
||||
"choices.js-9.0.1" = {
|
||||
name = "choices.js";
|
||||
packageName = "choices.js";
|
||||
version = "9.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/choices.js/-/choices.js-9.0.1.tgz";
|
||||
sha512 = "JgpeDY0Tmg7tqY6jaW/druSklJSt7W68tXFJIw0GSGWmO37SDAL8o60eICNGbzIODjj02VNNtf5h6TgoHDtCsA==";
|
||||
};
|
||||
};
|
||||
"d-1.0.1" = {
|
||||
name = "d";
|
||||
packageName = "d";
|
||||
version = "1.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
|
||||
sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
|
||||
};
|
||||
};
|
||||
"debounce-1.2.1" = {
|
||||
name = "debounce";
|
||||
packageName = "debounce";
|
||||
version = "1.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz";
|
||||
sha512 = "XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==";
|
||||
};
|
||||
};
|
||||
"deepmerge-4.2.2" = {
|
||||
name = "deepmerge";
|
||||
packageName = "deepmerge";
|
||||
version = "4.2.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
|
||||
sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
|
||||
};
|
||||
};
|
||||
"es5-ext-0.10.53" = {
|
||||
name = "es5-ext";
|
||||
packageName = "es5-ext";
|
||||
version = "0.10.53";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
|
||||
sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
|
||||
};
|
||||
};
|
||||
"es6-iterator-2.0.3" = {
|
||||
name = "es6-iterator";
|
||||
packageName = "es6-iterator";
|
||||
version = "2.0.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
|
||||
sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
|
||||
};
|
||||
};
|
||||
"es6-map-0.1.5" = {
|
||||
name = "es6-map";
|
||||
packageName = "es6-map";
|
||||
version = "0.1.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
|
||||
sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
|
||||
};
|
||||
};
|
||||
"es6-promise-4.2.8" = {
|
||||
name = "es6-promise";
|
||||
packageName = "es6-promise";
|
||||
version = "4.2.8";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz";
|
||||
sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==";
|
||||
};
|
||||
};
|
||||
"es6-set-0.1.5" = {
|
||||
name = "es6-set";
|
||||
packageName = "es6-set";
|
||||
version = "0.1.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
|
||||
sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
|
||||
};
|
||||
};
|
||||
"es6-symbol-3.1.1" = {
|
||||
name = "es6-symbol";
|
||||
packageName = "es6-symbol";
|
||||
version = "3.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
|
||||
sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
|
||||
};
|
||||
};
|
||||
"es6-symbol-3.1.3" = {
|
||||
name = "es6-symbol";
|
||||
packageName = "es6-symbol";
|
||||
version = "3.1.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
|
||||
sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
|
||||
};
|
||||
};
|
||||
"es6-weak-map-2.0.3" = {
|
||||
name = "es6-weak-map";
|
||||
packageName = "es6-weak-map";
|
||||
version = "2.0.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
|
||||
sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
|
||||
};
|
||||
};
|
||||
"event-emitter-0.3.5" = {
|
||||
name = "event-emitter";
|
||||
packageName = "event-emitter";
|
||||
version = "0.3.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
|
||||
sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
|
||||
};
|
||||
};
|
||||
"ext-1.4.0" = {
|
||||
name = "ext";
|
||||
packageName = "ext";
|
||||
version = "1.4.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
|
||||
sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
|
||||
};
|
||||
};
|
||||
"fast-deep-equal-2.0.1" = {
|
||||
name = "fast-deep-equal";
|
||||
packageName = "fast-deep-equal";
|
||||
version = "2.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
|
||||
sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
|
||||
};
|
||||
};
|
||||
"fast-json-patch-2.2.1" = {
|
||||
name = "fast-json-patch";
|
||||
packageName = "fast-json-patch";
|
||||
version = "2.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz";
|
||||
sha512 = "4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==";
|
||||
};
|
||||
};
|
||||
"flatbush-3.3.0" = {
|
||||
name = "flatbush";
|
||||
packageName = "flatbush";
|
||||
version = "3.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/flatbush/-/flatbush-3.3.0.tgz";
|
||||
sha512 = "F3EzQvKpdmXUbFwWxLKBpytOFEGYQMCTBLuqZ4GEajFOEAvnOIBiyxW3OFSZXIOtpCS8teN6bFEpNZtnVXuDQA==";
|
||||
};
|
||||
};
|
||||
"flatpickr-4.6.9" = {
|
||||
name = "flatpickr";
|
||||
packageName = "flatpickr";
|
||||
version = "4.6.9";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.9.tgz";
|
||||
sha512 = "F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==";
|
||||
};
|
||||
};
|
||||
"flatqueue-1.2.1" = {
|
||||
name = "flatqueue";
|
||||
packageName = "flatqueue";
|
||||
version = "1.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/flatqueue/-/flatqueue-1.2.1.tgz";
|
||||
sha512 = "X86TpWS1rGuY7m382HuA9vngLeDuWA9lJvhEG+GfgKMV5onSvx5a71cl7GMbXzhWtlN9dGfqOBrpfqeOtUfGYQ==";
|
||||
};
|
||||
};
|
||||
"fuse.js-3.6.1" = {
|
||||
name = "fuse.js";
|
||||
packageName = "fuse.js";
|
||||
version = "3.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz";
|
||||
sha512 = "hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==";
|
||||
};
|
||||
};
|
||||
"gl-matrix-3.3.0" = {
|
||||
name = "gl-matrix";
|
||||
packageName = "gl-matrix";
|
||||
version = "3.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz";
|
||||
sha512 = "COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==";
|
||||
};
|
||||
};
|
||||
"hammerjs-2.0.8" = {
|
||||
name = "hammerjs";
|
||||
packageName = "hammerjs";
|
||||
version = "2.0.8";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz";
|
||||
sha1 = "04ef77862cff2bb79d30f7692095930222bf60f1";
|
||||
};
|
||||
};
|
||||
"htm-3.0.4" = {
|
||||
name = "htm";
|
||||
packageName = "htm";
|
||||
version = "3.0.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/htm/-/htm-3.0.4.tgz";
|
||||
sha512 = "VRdvxX3tmrXuT/Ovt59NMp/ORMFi4bceFMDjos1PV4E0mV+5votuID8R60egR9A4U8nLt238R/snlJGz3UYiTQ==";
|
||||
};
|
||||
};
|
||||
"jquery-3.6.0" = {
|
||||
name = "jquery";
|
||||
packageName = "jquery";
|
||||
version = "3.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz";
|
||||
sha512 = "JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==";
|
||||
};
|
||||
};
|
||||
"jquery-ui-1.12.1" = {
|
||||
name = "jquery-ui";
|
||||
packageName = "jquery-ui";
|
||||
version = "1.12.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz";
|
||||
sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
|
||||
};
|
||||
};
|
||||
"js-tokens-4.0.0" = {
|
||||
name = "js-tokens";
|
||||
packageName = "js-tokens";
|
||||
version = "4.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
|
||||
sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
|
||||
};
|
||||
};
|
||||
"json-formatter-js-2.3.4" = {
|
||||
name = "json-formatter-js";
|
||||
packageName = "json-formatter-js";
|
||||
version = "2.3.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/json-formatter-js/-/json-formatter-js-2.3.4.tgz";
|
||||
sha512 = "gmAzYRtPRmYzeAT4T7+t3NhTF89JOAIioCVDddl9YDb3ls3kWcskirafw/MZGJaRhEU6fRimGJHl7CC7gaAI2Q==";
|
||||
};
|
||||
};
|
||||
"loose-envify-1.4.0" = {
|
||||
name = "loose-envify";
|
||||
packageName = "loose-envify";
|
||||
version = "1.4.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
|
||||
sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
|
||||
};
|
||||
};
|
||||
"mgrs-1.0.0" = {
|
||||
name = "mgrs";
|
||||
packageName = "mgrs";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz";
|
||||
sha1 = "fb91588e78c90025672395cb40b25f7cd6ad1829";
|
||||
};
|
||||
};
|
||||
"next-tick-1.0.0" = {
|
||||
name = "next-tick";
|
||||
packageName = "next-tick";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
|
||||
sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
|
||||
};
|
||||
};
|
||||
"nouislider-14.7.0" = {
|
||||
name = "nouislider";
|
||||
packageName = "nouislider";
|
||||
version = "14.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/nouislider/-/nouislider-14.7.0.tgz";
|
||||
sha512 = "4RtQ1+LHJKesDCNJrXkQcwXAWCrC2aggdLYMstS/G5fEWL+fXZbUA9pwVNHFghMGuFGRATlDLNInRaPeRKzpFQ==";
|
||||
};
|
||||
};
|
||||
"preact-10.5.13" = {
|
||||
name = "preact";
|
||||
packageName = "preact";
|
||||
version = "10.5.13";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/preact/-/preact-10.5.13.tgz";
|
||||
sha512 = "q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==";
|
||||
};
|
||||
};
|
||||
"proj4-2.7.2" = {
|
||||
name = "proj4";
|
||||
packageName = "proj4";
|
||||
version = "2.7.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/proj4/-/proj4-2.7.2.tgz";
|
||||
sha512 = "x/EboBmIq48a9FED0Z9zWCXkd8VIpXHLsyEXljGtsnzeztC41bFjPjJ0S//wBbNLDnDYRe0e6c3FSSiqMCebDA==";
|
||||
};
|
||||
};
|
||||
"redux-4.0.5" = {
|
||||
name = "redux";
|
||||
packageName = "redux";
|
||||
version = "4.0.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
|
||||
sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
|
||||
};
|
||||
};
|
||||
"sprintf-js-1.1.2" = {
|
||||
name = "sprintf-js";
|
||||
packageName = "sprintf-js";
|
||||
version = "1.1.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz";
|
||||
sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==";
|
||||
};
|
||||
};
|
||||
"symbol-observable-1.2.0" = {
|
||||
name = "symbol-observable";
|
||||
packageName = "symbol-observable";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz";
|
||||
sha512 = "e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==";
|
||||
};
|
||||
};
|
||||
"timezone-1.0.23" = {
|
||||
name = "timezone";
|
||||
packageName = "timezone";
|
||||
version = "1.0.23";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/timezone/-/timezone-1.0.23.tgz";
|
||||
sha512 = "yhQgk6qmSLB+TF8HGmApZAVI5bfzR1CoKUGr+WMZWmx75ED1uDewAZA8QMGCQ70TEv4GmM8pDB9jrHuxdaQ1PA==";
|
||||
};
|
||||
};
|
||||
"tslib-1.14.1" = {
|
||||
name = "tslib";
|
||||
packageName = "tslib";
|
||||
version = "1.14.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
|
||||
sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
|
||||
};
|
||||
};
|
||||
"tslib-2.2.0" = {
|
||||
name = "tslib";
|
||||
packageName = "tslib";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
|
||||
sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
|
||||
};
|
||||
};
|
||||
"type-1.2.0" = {
|
||||
name = "type";
|
||||
packageName = "type";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
|
||||
sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
|
||||
};
|
||||
};
|
||||
"type-2.5.0" = {
|
||||
name = "type";
|
||||
packageName = "type";
|
||||
version = "2.5.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/type/-/type-2.5.0.tgz";
|
||||
sha512 = "180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==";
|
||||
};
|
||||
};
|
||||
"underscore.template-0.1.7" = {
|
||||
name = "underscore.template";
|
||||
packageName = "underscore.template";
|
||||
version = "0.1.7";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/underscore.template/-/underscore.template-0.1.7.tgz";
|
||||
sha1 = "3013e0ea181756306f1609e959cafbc722adb3e9";
|
||||
};
|
||||
};
|
||||
"wkt-parser-1.2.4" = {
|
||||
name = "wkt-parser";
|
||||
packageName = "wkt-parser";
|
||||
version = "1.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.4.tgz";
|
||||
sha512 = "ZzKnc7ml/91fOPh5bANBL4vUlWPIYYv11waCtWTkl2TRN+LEmBg60Q1MA8gqV4hEp4MGfSj9JiHz91zw/gTDXg==";
|
||||
};
|
||||
};
|
||||
};
|
||||
args = {
|
||||
name = "_at_holoviz_slash_panel";
|
||||
packageName = "@holoviz/panel";
|
||||
version = "0.11.1";
|
||||
src = ./.;
|
||||
dependencies = [
|
||||
sources."@bokeh/bokehjs-2.3.0"
|
||||
sources."@bokeh/numbro-1.6.2"
|
||||
(sources."@bokeh/slickgrid-2.4.2702" // {
|
||||
dependencies = [
|
||||
sources."tslib-1.14.1"
|
||||
];
|
||||
})
|
||||
sources."@luma.gl/constants-8.4.4"
|
||||
sources."@types/debounce-1.2.0"
|
||||
sources."@types/gl-matrix-2.4.5"
|
||||
sources."@types/jquery-3.5.5"
|
||||
sources."@types/sizzle-2.3.2"
|
||||
sources."@types/slickgrid-2.1.30"
|
||||
sources."choices.js-9.0.1"
|
||||
sources."d-1.0.1"
|
||||
sources."debounce-1.2.1"
|
||||
sources."deepmerge-4.2.2"
|
||||
sources."es5-ext-0.10.53"
|
||||
sources."es6-iterator-2.0.3"
|
||||
sources."es6-map-0.1.5"
|
||||
sources."es6-promise-4.2.8"
|
||||
(sources."es6-set-0.1.5" // {
|
||||
dependencies = [
|
||||
sources."es6-symbol-3.1.1"
|
||||
];
|
||||
})
|
||||
sources."es6-symbol-3.1.3"
|
||||
sources."es6-weak-map-2.0.3"
|
||||
sources."event-emitter-0.3.5"
|
||||
(sources."ext-1.4.0" // {
|
||||
dependencies = [
|
||||
sources."type-2.5.0"
|
||||
];
|
||||
})
|
||||
sources."fast-deep-equal-2.0.1"
|
||||
sources."fast-json-patch-2.2.1"
|
||||
sources."flatbush-3.3.0"
|
||||
sources."flatpickr-4.6.9"
|
||||
sources."flatqueue-1.2.1"
|
||||
sources."fuse.js-3.6.1"
|
||||
sources."gl-matrix-3.3.0"
|
||||
sources."hammerjs-2.0.8"
|
||||
sources."htm-3.0.4"
|
||||
sources."jquery-3.6.0"
|
||||
sources."jquery-ui-1.12.1"
|
||||
sources."js-tokens-4.0.0"
|
||||
sources."json-formatter-js-2.3.4"
|
||||
sources."loose-envify-1.4.0"
|
||||
sources."mgrs-1.0.0"
|
||||
sources."next-tick-1.0.0"
|
||||
sources."nouislider-14.7.0"
|
||||
sources."preact-10.5.13"
|
||||
sources."proj4-2.7.2"
|
||||
sources."redux-4.0.5"
|
||||
sources."sprintf-js-1.1.2"
|
||||
sources."symbol-observable-1.2.0"
|
||||
sources."timezone-1.0.23"
|
||||
sources."tslib-2.2.0"
|
||||
sources."type-1.2.0"
|
||||
sources."underscore.template-0.1.7"
|
||||
sources."wkt-parser-1.2.4"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "A high level dashboarding library for python visualization libraries.";
|
||||
license = "BSD-3-Clause";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
reconstructLock = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
args = args;
|
||||
sources = sources;
|
||||
tarball = nodeEnv.buildNodeSourceDist args;
|
||||
package = nodeEnv.buildNodePackage args;
|
||||
shell = nodeEnv.buildNodeShell args;
|
||||
nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
|
||||
src = stdenv.mkDerivation {
|
||||
name = args.name + "-package-json";
|
||||
src = nix-gitignore.gitignoreSourcePure [
|
||||
"*"
|
||||
"!package.json"
|
||||
"!package-lock.json"
|
||||
] args.src;
|
||||
dontBuild = true;
|
||||
installPhase = "mkdir -p $out; cp -r ./* $out;";
|
||||
};
|
||||
});
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "@holoviz/panel",
|
||||
"version": "0.11.1",
|
||||
"description": "A high level dashboarding library for python visualization libraries.",
|
||||
"license": "BSD-3-Clause",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/holoviz/panel.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@bokeh/bokehjs": "^2.3.0",
|
||||
"@luma.gl/constants": "^8.0.3",
|
||||
"@types/debounce": "^1.2.0",
|
||||
"@types/gl-matrix": "^2.4.5",
|
||||
"debounce": "^1.2.0",
|
||||
"fast-json-patch": "^2.2.1",
|
||||
"gl-matrix": "^3.1.0",
|
||||
"htm": "^3.0.4",
|
||||
"json-formatter-js": "^2.2.1",
|
||||
"preact": "^10.5.12"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"files": [
|
||||
"dist/**/*.{js,js.map,d.ts,json,css}"
|
||||
],
|
||||
"main": "dist/panel.min.js"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchhg
|
||||
, fetchFromGitHub
|
||||
, isPyPy
|
||||
}:
|
||||
|
||||
|
@ -9,15 +9,21 @@ buildPythonPackage rec {
|
|||
pname = "smartypants";
|
||||
disabled = isPyPy;
|
||||
|
||||
src = fetchhg {
|
||||
url = "https://bitbucket.org/livibetter/smartypants.py";
|
||||
src = fetchFromGitHub {
|
||||
owner = "leohemsted";
|
||||
repo = "smartypants.py";
|
||||
rev = "v${version}";
|
||||
sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
|
||||
# remove this file and the name on the next version update
|
||||
extraPostFetch = ''
|
||||
cp ${./hgtags} "$out"/.hgtags
|
||||
'';
|
||||
name = "hg-archive";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python with the SmartyPants";
|
||||
homepage = "https://bitbucket.org/livibetter/smartypants.py";
|
||||
homepage = "https://github.com/leohemsted/smartypants.py";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
47e996532eff9d3bb2c7048aca37d5fd1028e706 v1.5_1.2
|
||||
4ff48eba1d3d37d708005e465cf701b63eb68fd3 v1.5_1.1
|
||||
6ba7f3a14ff77e4e9bf9918413b1710c33deae4d v1.5_1.3.1
|
||||
71006a014216defb21e4db6e03434d289564ea60 v1.5_1.6
|
||||
90950ff693122f80710974abc0f2be64d4105e84 v1.5_1.3
|
||||
a6ecae6541d64f5b12c7b788c65362b0c012278d v1.5_1.0
|
||||
eed4a8a16f116f98e8280dc79128845020bbe766 v1.5_1.5
|
||||
f9a62f541f19ead9be4c3be896b64d1caa0b524c v1.5_1.4
|
||||
fc0bee49a07daf05f034560cfef81a8a8d034d1f v1.5_1.7
|
||||
096ed5f806b6dbc473fae1848643cf45005b9bf1 v1.7.0
|
||||
aaeb8099a24ad7db3f36ebe71ef326d6377730aa v1.7.1
|
||||
fd8ccc937af7280db4e581b2eb1354245f4672ab v1.8.0
|
||||
7839b0eab3e9daf5b346edfa5c54f3cc46fc202a v1.8.1
|
||||
6140b78317beabb6e49cd91b35a779ccb0af7327 v1.8.2
|
||||
c3b1c83c5ddada685b421b8f82f7e92c794bf2f6 v1.8.3
|
||||
460c1add9b9f89831e1ab965f1e1c31325f6e72d v1.8.4
|
||||
78165f4976299c37d6e3dd5463adcd61f9cb2b75 v1.8.5
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "ytmusicapi";
|
||||
version = "0.15.0";
|
||||
version = "0.15.1";
|
||||
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-pVQqoMvuuFc/1QNG5z/AspGlgIGPi9aqjZ3/3eVNhis=";
|
||||
sha256 = "sha256-W/eZubJ/SNLBya1S6wLUwTwZCUD+wCQ5FAuNcSpl+9Y=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -38,7 +38,7 @@ buildRubyGem rec {
|
|||
'';
|
||||
homepage = "https://github.com/manveru/bundix";
|
||||
license = "MIT";
|
||||
maintainers = with lib.maintainers; [ manveru zimbatm ];
|
||||
maintainers = with lib.maintainers; [ manveru marsam zimbatm ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,23 +13,18 @@
|
|||
, file
|
||||
, libzip
|
||||
, xxHash
|
||||
, gtk2 ? null
|
||||
, vte ? null
|
||||
, gtkdialog ? null
|
||||
, python3 ? null
|
||||
, ruby ? null
|
||||
, lua ? null
|
||||
, gtk2
|
||||
, vte
|
||||
, gtkdialog
|
||||
, python3
|
||||
, ruby
|
||||
, lua
|
||||
, useX11 ? false
|
||||
, rubyBindings ? false
|
||||
, pythonBindings ? false
|
||||
, luaBindings ? false
|
||||
}:
|
||||
|
||||
assert useX11 -> (gtk2 != null && vte != null && gtkdialog != null);
|
||||
assert rubyBindings -> ruby != null;
|
||||
assert pythonBindings -> python3 != null;
|
||||
|
||||
|
||||
let
|
||||
inherit (lib) optional;
|
||||
|
||||
|
|
|
@ -35,8 +35,6 @@ mkDerivation rec {
|
|||
qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Free and Open Source Reverse Engineering Platform powered by rizin";
|
||||
homepage = src.meta.homepage;
|
||||
|
|
|
@ -40,8 +40,6 @@ stdenv.mkDerivation rec {
|
|||
"-Duse_sys_tree_sitter=true"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config meson ninja cmake ];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, python3, fetchFromGitHub, git, pkg-config, fetchpatch }:
|
||||
{ lib, stdenv, python3, fetchFromGitHub, git, pkg-config }:
|
||||
|
||||
# Note:
|
||||
# Conan has specific dependency demands; check
|
||||
|
@ -14,20 +14,6 @@
|
|||
|
||||
let newPython = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
distro = super.distro.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.1.0";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
|
||||
};
|
||||
patches = oldAttrs.patches or [] ++ [
|
||||
# Don't raise import error on non-linux os. Remove after upgrading to distro≥1.2.0
|
||||
(fetchpatch {
|
||||
url = "https://github.com/nir0s/distro/commit/25aa3f8c5934346dc838387fc081ce81baddeb95.patch";
|
||||
sha256 = "0m09ldf75gacazh2kr04cifgsqfxg670vk4ypl62zv7fp3nyd5dc";
|
||||
})
|
||||
];
|
||||
});
|
||||
node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "0.6.1";
|
||||
src = oldAttrs.src.override {
|
||||
|
@ -35,25 +21,25 @@ let newPython = python3.override {
|
|||
sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0";
|
||||
};
|
||||
});
|
||||
pluginbase = super.pluginbase.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "0.7";
|
||||
urllib3 = super.urllib3.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.25.11";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
sha256 = "c0abe3218b86533cca287e7057a37481883c07acef7814b70583406938214cc8";
|
||||
sha256 = "18hpzh1am1dqx81fypn57r2wk565fi4g14292qrc5jm1h9dalzld";
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
in newPython.pkgs.buildPythonApplication rec {
|
||||
version = "1.27.0";
|
||||
version = "1.35.0";
|
||||
pname = "conan";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "conan-io";
|
||||
repo = "conan";
|
||||
rev = version;
|
||||
sha256 = "0ncqs1p4g23fmzgdmwppgxr8w275h38hgjdzs456cgivz8xs9rjl";
|
||||
sha256 = "19rgylkjxvv47vz5vgh46rw108xskpv7lmax8y2fnm2wd1j3bq9c";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with newPython.pkgs; [
|
||||
|
@ -95,12 +81,7 @@ in newPython.pkgs.buildPythonApplication rec {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace conans/requirements.txt \
|
||||
--replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
|
||||
--replace "deprecation>=2.0, <2.1" "deprecation" \
|
||||
--replace "idna==2.6" "idna" \
|
||||
--replace "cryptography>=1.3.4, <2.4.0" "cryptography" \
|
||||
--replace "pyOpenSSL>=16.0.0, <19.0.0" "pyOpenSSL" \
|
||||
--replace "six>=1.10.0,<=1.14.0" "six"
|
||||
--replace "deprecation>=2.0, <2.1" "deprecation"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-deny";
|
||||
version = "0.8.9";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmbarkStudios";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-K8lNo2XmHzgbaVCMNvwDwr86hrXBPws9v3HD8ku+D6w=";
|
||||
sha256 = "sha256-ZjXAZN93ij42WVYSOgvKAzFZ/cZ2RTFKT2sr44j7TVc=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-spTy9vzldzqu66904wRVwAeH1rNOQ3WeC6miJkRiAGg=";
|
||||
cargoSha256 = "sha256-eQv9pFegHTjjjFURiD/yN/srtONAwAH3vwfrSY/LM/Q=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "devilutionx";
|
||||
version = "1.2.0";
|
||||
|
@ -7,9 +8,13 @@ stdenv.mkDerivation rec {
|
|||
owner = "diasurgical";
|
||||
repo = "devilutionX";
|
||||
rev = version;
|
||||
sha256 = "03w3bgmzwsbycx3fzvn47fsmabl069gw77yn2fqg89wlgaw1yrr9";
|
||||
sha256 = "034xkz0a7j2nba17mh44r0kamcblvykdwfsjvjwaz2mrcsmzkr9z";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Source/init.cpp --replace "/usr/share/diasurgical/devilutionx/" "${placeholder "out"}/share/diasurgical/devilutionx/"
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-I${SDL2_ttf}/include/SDL2"
|
||||
''-DTTF_FONT_PATH="${placeholder "out"}/share/fonts/truetype/CharisSILB.ttf"''
|
||||
|
@ -17,6 +22,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
cmakeFlags = [
|
||||
"-DBINARY_RELEASE=ON"
|
||||
"-DVERSION_NUM=${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
|
@ -31,6 +37,7 @@ stdenv.mkDerivation rec {
|
|||
'' else ''
|
||||
install -Dm755 -t $out/bin devilutionx
|
||||
install -Dt $out/share/fonts/truetype ../Packaging/resources/CharisSILB.ttf
|
||||
install -Dt $out/share/diasurgical/devilutionx ../Packaging/resources/devilutionx.mpq
|
||||
|
||||
# TODO: icons and .desktop (see Packages/{debian,fedora}/*)
|
||||
'') + ''
|
||||
|
|
|
@ -21,13 +21,13 @@ let
|
|||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "dolphin-emu";
|
||||
version = "5.0-13603";
|
||||
version = "5.0-14002";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dolphin-emu";
|
||||
repo = "dolphin";
|
||||
rev = "7250d6e4e091f4b5b4f2289c2c732349b69a2e8a";
|
||||
sha256 = "0l4vvxmc79x0b5p8k4km7p380wv8wsbmxjnif08rj0p3brbavc1i";
|
||||
rev = "53222560650e4a99eceafcd537d4e04d1c50b3a6";
|
||||
sha256 = "1m71gk9hm011fpv5hmpladf7abkylmawgr60d0czkr276pzg04ky";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ]
|
||||
|
|
|
@ -65,12 +65,12 @@ let
|
|||
|
||||
ale = buildVimPluginFrom2Nix {
|
||||
pname = "ale";
|
||||
version = "2021-03-30";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dense-analysis";
|
||||
repo = "ale";
|
||||
rev = "06f57ca9733aab6e6b67015917fdfd4bf1c70c48";
|
||||
sha256 = "0nsphdv6k5v0qa4p35g4j99pa68fwn7bll4jpvdqs74p82589dhd";
|
||||
rev = "f0887d3e6178482255f11aa378124aef3699245f";
|
||||
sha256 = "0kyfvpwfy4x7mnyb0v8cnjb9byjdj48czd3mzkd1yfpdmz4wgxsg";
|
||||
};
|
||||
meta.homepage = "https://github.com/dense-analysis/ale/";
|
||||
};
|
||||
|
@ -209,12 +209,12 @@ let
|
|||
|
||||
auto-session = buildVimPluginFrom2Nix {
|
||||
pname = "auto-session";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rmagatti";
|
||||
repo = "auto-session";
|
||||
rev = "52f7f0c686188ba132dd362fde64f45c30ef431a";
|
||||
sha256 = "1512gd0z8wl8i6pc3gya9qg2pq9k5bfx9b7h2sgp8v356rjx21ks";
|
||||
rev = "f6cfd92e96e9efb7e3e5249a4e45054fb7dc629b";
|
||||
sha256 = "04771631jgm4f76vpmp5mwwf0nidvbw345ajk3nl5xd8lsq9zp3w";
|
||||
};
|
||||
meta.homepage = "https://github.com/rmagatti/auto-session/";
|
||||
};
|
||||
|
@ -257,12 +257,12 @@ let
|
|||
|
||||
barbar-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "barbar-nvim";
|
||||
version = "2021-04-02";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "romgrk";
|
||||
repo = "barbar.nvim";
|
||||
rev = "9c80bfbce9f9b2bdbb42ad9cebfeba6a3dd9a9a8";
|
||||
sha256 = "10dln43kjafj7vaf7s2yvxvc1vaga7rygnl4819275ardjpgddgs";
|
||||
rev = "c5c67f450921dec675b42c7f6f960169411dc7fc";
|
||||
sha256 = "17gpmyqqskzmfvqilgdmcp5rb2ddgb8hvjz7ihfyaawp8sy11lv0";
|
||||
};
|
||||
meta.homepage = "https://github.com/romgrk/barbar.nvim/";
|
||||
};
|
||||
|
@ -389,12 +389,12 @@ let
|
|||
|
||||
chadtree = buildVimPluginFrom2Nix {
|
||||
pname = "chadtree";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "chadtree";
|
||||
rev = "cd20e2323045c7dda2d42af64fa86a7325752a55";
|
||||
sha256 = "1jhxdfvvdvbar9gdzsjvxs8brckww454f2agf2ariwndakcinqqn";
|
||||
rev = "012e3f21bf60858308db77f68ef3ee83a333587c";
|
||||
sha256 = "1q6f0z0mnwg43ri4dzpdzx8n88hr1j32hp3x06zsmfq47rlf4iij";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/chadtree/";
|
||||
};
|
||||
|
@ -485,12 +485,12 @@ let
|
|||
|
||||
coc-explorer = buildVimPluginFrom2Nix {
|
||||
pname = "coc-explorer";
|
||||
version = "2021-04-01";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "weirongxu";
|
||||
repo = "coc-explorer";
|
||||
rev = "259d681b368dd0ea11e3b62bbb537c4eece2ef6a";
|
||||
sha256 = "1vzfx5ajjd4fq3n9ixj80l7gwq6wmiib899ww27sc5v4fkm5ykf6";
|
||||
rev = "adb0ef3bbefee3747ce7ac96551789ea882832fb";
|
||||
sha256 = "0kcag0sv94fjcvqfsjx6q1bdq5qvnji5iz2rg3pry49ar1igxmj8";
|
||||
};
|
||||
meta.homepage = "https://github.com/weirongxu/coc-explorer/";
|
||||
};
|
||||
|
@ -654,12 +654,12 @@ let
|
|||
|
||||
completion-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "completion-nvim";
|
||||
version = "2021-01-15";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-lua";
|
||||
repo = "completion-nvim";
|
||||
rev = "fc9b2fd2d47bea6a8954de1b1b19f2330545b354";
|
||||
sha256 = "0dip8z6cfhjbz5lvf6f75382lg7d819djrpygbc12lf1s4i66i3z";
|
||||
rev = "8bca7aca91c947031a8f14b038459e35e1755d90";
|
||||
sha256 = "02zqc75p9ggrz6fyiwvzpnzipfd1s5xfr7fli2yypb4kp72mrbaf";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
|
||||
};
|
||||
|
@ -810,12 +810,12 @@ let
|
|||
|
||||
ctrlp-py-matcher = buildVimPluginFrom2Nix {
|
||||
pname = "ctrlp-py-matcher";
|
||||
version = "2017-11-01";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "FelikZ";
|
||||
repo = "ctrlp-py-matcher";
|
||||
rev = "cf63fd546f1e80dd4db3db96afbeaad301d21f13";
|
||||
sha256 = "0hs829x3vxv12y78hz5g4a5qpw05xf42dk0hxxk3ind77mnl1ir1";
|
||||
rev = "24969b88702bca79a6bfd85256450936968cf55d";
|
||||
sha256 = "0fc2i14gsg6srjvmibz1d5dzzg9bry35pl5xs43l80xnhpkdndm8";
|
||||
};
|
||||
meta.homepage = "https://github.com/FelikZ/ctrlp-py-matcher/";
|
||||
};
|
||||
|
@ -894,12 +894,12 @@ let
|
|||
|
||||
defx-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "defx-nvim";
|
||||
version = "2021-03-24";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Shougo";
|
||||
repo = "defx.nvim";
|
||||
rev = "e5a757e2dc2f3409f5ccc4e4df384df93b0ef09d";
|
||||
sha256 = "1qfwpwb7r94hnjidggn1fwcshikac8j0ckf1qb0fppfx1akyf78q";
|
||||
rev = "981804894051a6006b9337978a4f939a46b0c254";
|
||||
sha256 = "05a9cv86qazfgpm4nhw6x9pvpj646i7n9jsbk6qn9jmrq7rm0whp";
|
||||
};
|
||||
meta.homepage = "https://github.com/Shougo/defx.nvim/";
|
||||
};
|
||||
|
@ -1136,12 +1136,12 @@ let
|
|||
|
||||
deoplete-tabnine = buildVimPluginFrom2Nix {
|
||||
pname = "deoplete-tabnine";
|
||||
version = "2021-02-28";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tbodt";
|
||||
repo = "deoplete-tabnine";
|
||||
rev = "6997d621f6bd10351041be8e9dfbc6874009bf1b";
|
||||
sha256 = "17xxxk75w852qj89b1283pff1rsv6qd3siy14sxrz4455x4j1sj5";
|
||||
rev = "181dc9e615e39fa95a722ec21b5604ef3b40c6f3";
|
||||
sha256 = "0xc6kwgfvzfi1apgq6g0zl5wlvwxv51ipnpycrzq93sz618hg78j";
|
||||
};
|
||||
meta.homepage = "https://github.com/tbodt/deoplete-tabnine/";
|
||||
};
|
||||
|
@ -1256,12 +1256,12 @@ let
|
|||
|
||||
dracula-vim = buildVimPluginFrom2Nix {
|
||||
pname = "dracula-vim";
|
||||
version = "2021-03-18";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dracula";
|
||||
repo = "vim";
|
||||
rev = "ab37ffc5aeb1693002f30254b3b9992965f45d5d";
|
||||
sha256 = "0affiaa2ng43r3rj2yzxs50fiilsk5vqkgjah2zqa159lb2058ra";
|
||||
rev = "d82b9198d4dda1ac4a96756570f56125a1f86cb1";
|
||||
sha256 = "1zj6ifair5gm1nn4nh886y6m8snlhiskiwxlfd1cm7j3xafwqapx";
|
||||
};
|
||||
meta.homepage = "https://github.com/dracula/vim/";
|
||||
};
|
||||
|
@ -1647,8 +1647,8 @@ let
|
|||
src = fetchFromGitHub {
|
||||
owner = "lewis6991";
|
||||
repo = "gitsigns.nvim";
|
||||
rev = "f66a368efa3cf605673492fd7afde80117aa2103";
|
||||
sha256 = "1lyjdnizif33g3bfrrmrxwgvavyvn260h08c49ai4il5vpgs8ap4";
|
||||
rev = "5be4faafe18dc808878e127d69b9cd1883b03bee";
|
||||
sha256 = "0k0z9bgrcidk8m1lckh3kkz0i6w6whrlc22v4vf8yfkqa8g7vai1";
|
||||
};
|
||||
meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
|
||||
};
|
||||
|
@ -2028,12 +2028,12 @@ let
|
|||
|
||||
jellybeans-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "jellybeans-nvim";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "metalelf0";
|
||||
repo = "jellybeans-nvim";
|
||||
rev = "736aa1024741871aa5902ae5a7d5fb21192b4fa1";
|
||||
sha256 = "13k3hf2y979xk3j4q4pwwhrxv0mw320ri4nyg3q39j3fprkryxs7";
|
||||
rev = "cef41133874073b35bf7e8061d97a5214623770d";
|
||||
sha256 = "1hd21h48mwsixbx4iw8r86pmml2z79wpc0p0wb8d50jjxlyphgv4";
|
||||
};
|
||||
meta.homepage = "https://github.com/metalelf0/jellybeans-nvim/";
|
||||
};
|
||||
|
@ -2076,12 +2076,12 @@ let
|
|||
|
||||
julia-vim = buildVimPluginFrom2Nix {
|
||||
pname = "julia-vim";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "JuliaEditorSupport";
|
||||
repo = "julia-vim";
|
||||
rev = "21ab5e899db6ad963b30102e14fb13be8eeb454c";
|
||||
sha256 = "1m3jgj47pq21ra3znccpgkln42h03799fc845zrrsv186fhqmrjr";
|
||||
rev = "d589986c9dbb95ef08a1f5a01197fd43687e7031";
|
||||
sha256 = "04hrc9wgdk0rjzx23dhnvjyybkpa7m8lf4p7cqmg5sdhlahqicjr";
|
||||
};
|
||||
meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
|
||||
};
|
||||
|
@ -2232,12 +2232,12 @@ let
|
|||
|
||||
lh-vim-lib = buildVimPluginFrom2Nix {
|
||||
pname = "lh-vim-lib";
|
||||
version = "2021-03-20";
|
||||
version = "2021-04-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "LucHermitte";
|
||||
repo = "lh-vim-lib";
|
||||
rev = "4b59e0470c4b9b359a4f6229c420686d6d8ea65f";
|
||||
sha256 = "0fbzkmargimal2xyjsyrc6kmw6gdl61hcf17arqp9wv3yn18k637";
|
||||
rev = "6cb8f4cbe54b735dfa6dbb708cc9eaddead251d2";
|
||||
sha256 = "0qggqhj2ikq2ki9g93qgwpl2w5nhssafmwc8a2xkwi4qm4k2shqh";
|
||||
};
|
||||
meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
|
||||
};
|
||||
|
@ -2352,12 +2352,12 @@ let
|
|||
|
||||
lualine-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "lualine-nvim";
|
||||
version = "2021-03-31";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hoob3rt";
|
||||
repo = "lualine.nvim";
|
||||
rev = "7f1d7ba3fbd098d2afd0ee445e5889aca0ffe968";
|
||||
sha256 = "0qbv46byksmbnw068q57v5w4ss3bayxm433kidxdabs80msikhhz";
|
||||
rev = "2b32fb090fa09d68e8e5a222646979fa1d54f899";
|
||||
sha256 = "0vkskwgi8vw06j9nv97ndwli3xrvgd4sl046yk3xf3x3ph890wpj";
|
||||
};
|
||||
meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
|
||||
};
|
||||
|
@ -2436,12 +2436,12 @@ let
|
|||
|
||||
mkdx = buildVimPluginFrom2Nix {
|
||||
pname = "mkdx";
|
||||
version = "2021-01-28";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SidOfc";
|
||||
repo = "mkdx";
|
||||
rev = "602a78430aee47881f8c57f73ba96fdded9a3ace";
|
||||
sha256 = "1j4icyp3p20rlb8apyp7ixwxv59q2pdzjg7krh1mc6spr6m779jv";
|
||||
rev = "186cf8cf96777ebdc4976c2de08e7b62a248d2da";
|
||||
sha256 = "01clzfnk86acpm24kfz3xwsy4xcqbx8ar4n0i1i6vvn8hq602mbv";
|
||||
};
|
||||
meta.homepage = "https://github.com/SidOfc/mkdx/";
|
||||
};
|
||||
|
@ -2736,12 +2736,12 @@ let
|
|||
|
||||
neogit = buildVimPluginFrom2Nix {
|
||||
pname = "neogit";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "TimUntersberger";
|
||||
repo = "neogit";
|
||||
rev = "ac8d7e1942a947eb335d77c3e611a526a4e24d4e";
|
||||
sha256 = "1jnyybcj9g26wrwq6i7yq7bpncywfqm957dy4lq0s531yv6m3yly";
|
||||
rev = "fa941274218fb16464072805a17ba80e7c6f2648";
|
||||
sha256 = "12f4f22wdsaa7ac0yzzqzsrrm2vrh0y7jmfir6ngkc9j3l52mg9d";
|
||||
};
|
||||
meta.homepage = "https://github.com/TimUntersberger/neogit/";
|
||||
};
|
||||
|
@ -2988,12 +2988,12 @@ let
|
|||
|
||||
nvcode-color-schemes-vim = buildVimPluginFrom2Nix {
|
||||
pname = "nvcode-color-schemes-vim";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ChristianChiarulli";
|
||||
repo = "nvcode-color-schemes.vim";
|
||||
rev = "29d4a787ad847c267ba836c82e71bfc0a8346c47";
|
||||
sha256 = "0id5abls81yy9n8zvailrqljq5gd70x2wg3vbajrman8phpy7m9z";
|
||||
rev = "383aed3efefb81168a607012006fb4bdcf918956";
|
||||
sha256 = "1mbzcb9iqjia6mwfkznm8bh3c5mvsfnz2ysrvhhr3143nh71m2np";
|
||||
};
|
||||
meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
|
||||
};
|
||||
|
@ -3012,12 +3012,12 @@ let
|
|||
|
||||
nvim-autopairs = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-autopairs";
|
||||
version = "2021-03-24";
|
||||
version = "2021-04-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "windwp";
|
||||
repo = "nvim-autopairs";
|
||||
rev = "b8272f539017ffb6de6a05247e7c333b3721279b";
|
||||
sha256 = "11ng14pb14l0hsv27r24wwkjkw2l77kvd114pij3k5dl8b9zdgv2";
|
||||
rev = "cae76770d1f69b927616313fe1676528adb6d62a";
|
||||
sha256 = "1kh38zfa4x69m0j94f1wzzw4nqxwd89s50inik32zj5948j6licb";
|
||||
};
|
||||
meta.homepage = "https://github.com/windwp/nvim-autopairs/";
|
||||
};
|
||||
|
@ -3036,12 +3036,12 @@ let
|
|||
|
||||
nvim-bufferline-lua = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-bufferline-lua";
|
||||
version = "2021-04-02";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "akinsho";
|
||||
repo = "nvim-bufferline.lua";
|
||||
rev = "2043d254017002c4862afefbacd5d1bd7fe94e55";
|
||||
sha256 = "062kg1vq3b09b009n75kijfs9hlfmlj1yfsnd517imm9n5xhvfmr";
|
||||
rev = "224f2627c471f319626fc7c1ab85f9d7d91bb98a";
|
||||
sha256 = "0yxby3p82pjkz8n0vnavbhw0qlva8mfq3nqff4bf1sg9iw0jpfkm";
|
||||
};
|
||||
meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
|
||||
};
|
||||
|
@ -3072,12 +3072,12 @@ let
|
|||
|
||||
nvim-compe = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-compe";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrsh7th";
|
||||
repo = "nvim-compe";
|
||||
rev = "9fc416854685a8e05836b70d477d9bbbddefcd3b";
|
||||
sha256 = "1irasadwqdijqixbbbysd50qh1rfhfkhfljz2438hiv3ayvj4aad";
|
||||
rev = "e2f1caba42f5b1af07ef9d729ae75d74855ac5d4";
|
||||
sha256 = "0xk8hm3m8aywky7p2jm36a9sf495pa52lixmp14c7qj2s0wrki1c";
|
||||
};
|
||||
meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
|
||||
};
|
||||
|
@ -3096,12 +3096,12 @@ let
|
|||
|
||||
nvim-dap = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-dap";
|
||||
version = "2021-03-24";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mfussenegger";
|
||||
repo = "nvim-dap";
|
||||
rev = "cd0afafc788f9d4d9df5fef5d348841906b295d6";
|
||||
sha256 = "1zh35qjxmkf37khagn8722byzjq2pns20cbmc821hfqdkj6q3pc8";
|
||||
rev = "06e201849605dabf5dd28f972d2b7c507a8aff1f";
|
||||
sha256 = "19mk9r2h491gqf0q9jv3yrlznfxwfz2q4h7jqq6yai740nx5yhzj";
|
||||
};
|
||||
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
|
||||
};
|
||||
|
@ -3276,24 +3276,24 @@ let
|
|||
|
||||
nvim-tree-lua = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-tree-lua";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyazdani42";
|
||||
repo = "nvim-tree.lua";
|
||||
rev = "3350e4e97e51be10de9aca0617b665c9259d3089";
|
||||
sha256 = "1vp6nsyhnwhnqkpgqll4b2x4pcxc8wsc7xy0nq2i1a5qjrpbb4ss";
|
||||
rev = "bbb8d6070f2a35ae85d1790fa3f8fff56c06d4ec";
|
||||
sha256 = "0xsvbpq8sygl6d8nkw4vaj20bdnrx1x97sjr8y4p76kmqqrch09s";
|
||||
};
|
||||
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
|
||||
};
|
||||
|
||||
nvim-treesitter = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-treesitter";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-treesitter";
|
||||
repo = "nvim-treesitter";
|
||||
rev = "11e1db3ec29abb5711556085766cb6912814c6dc";
|
||||
sha256 = "0fsmbf8hnhcxxp8m738lmm75wg2ijxj8z0755aj0mcs8s735pjxz";
|
||||
rev = "1f00ecdfa36ef5e43a4feaf189e8c2c003118c00";
|
||||
sha256 = "1fidjwl7w1msg38b470cahjblcy7lgg885wbmswl380kf9c8118l";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
|
||||
};
|
||||
|
@ -3336,36 +3336,36 @@ let
|
|||
|
||||
nvim-ts-rainbow = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-ts-rainbow";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "p00f";
|
||||
repo = "nvim-ts-rainbow";
|
||||
rev = "d463320156e7e3d85a98aca1f5292422fd3b5b12";
|
||||
sha256 = "08sc8vd0arwyw3zpbnkmdp884fksw73yqzbw5fwddr3wn47sdckc";
|
||||
rev = "97798465743459cb5f7d82e54c693bebc84e73f8";
|
||||
sha256 = "0wibgcrpxb5hqbjig1sgisnxik0f8wv7ap4l2xv5mhwm8yz6x4gn";
|
||||
};
|
||||
meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
|
||||
};
|
||||
|
||||
nvim-web-devicons = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-web-devicons";
|
||||
version = "2021-04-05";
|
||||
version = "2021-04-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyazdani42";
|
||||
repo = "nvim-web-devicons";
|
||||
rev = "95c6d6bc3a9b969578d555b98a7be8619c65908e";
|
||||
sha256 = "15rw8qr52gi169x9cgs68dkm1f4blgqdrdmcqb7frqn8qjzaib9s";
|
||||
rev = "ecc0ec031ec4330c7c4eaf3ed2efdf1abbaff834";
|
||||
sha256 = "1m4bhwb1vg75lizdj8dkai9zcrxgky2g1gm6ivzj7i1y7p1k1ccv";
|
||||
};
|
||||
meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
|
||||
};
|
||||
|
||||
nvim-whichkey-setup-lua = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-whichkey-setup-lua";
|
||||
version = "2021-03-26";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AckslD";
|
||||
repo = "nvim-whichkey-setup.lua";
|
||||
rev = "59aa0a4287adf6c2c9faabf912cdc005230e7c98";
|
||||
sha256 = "093yjj28ak1ifbkn1s69wx8ldinj4v2bpf82fhqziw6d58ghwang";
|
||||
rev = "7299ebd2bcfb412630a18356a653def7e72f162d";
|
||||
sha256 = "1kxg7ss95cijf9i8nbsp3jkpmx9x3c4qp52d0ckwcdbyvskkal9y";
|
||||
};
|
||||
meta.homepage = "https://github.com/AckslD/nvim-whichkey-setup.lua/";
|
||||
};
|
||||
|
@ -3484,8 +3484,8 @@ let
|
|||
src = fetchFromGitHub {
|
||||
owner = "wbthomason";
|
||||
repo = "packer.nvim";
|
||||
rev = "b495895dffca9aabfead066a860b87ab3a67cf7e";
|
||||
sha256 = "08anlafdhmxc66yi4h13fkvqpkq1chazmyy8c18nx41af4b0p9bn";
|
||||
rev = "fdf1851c6121dee98294791c72aebff92b99b733";
|
||||
sha256 = "1ylwr70z7jlga260ydah03ngh47kf8jh7zgpl9iclih01nz6xwci";
|
||||
};
|
||||
meta.homepage = "https://github.com/wbthomason/packer.nvim/";
|
||||
};
|
||||
|
@ -3576,12 +3576,12 @@ let
|
|||
|
||||
plenary-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "plenary-nvim";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-lua";
|
||||
repo = "plenary.nvim";
|
||||
rev = "720c304dc41da563857610e737ff281c250681ac";
|
||||
sha256 = "0gcd88v2jykdgp7mqf10n9ydpg8gfb7258mxysjaf67313idh626";
|
||||
rev = "d0d291f87bed757f6be05c8bf753cb0e9602a478";
|
||||
sha256 = "0xjz85yzcvxd0dynygxdb1b9jkzmy1m52s4rc5w67jidqc7hs8ii";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
|
||||
};
|
||||
|
@ -3793,12 +3793,12 @@ let
|
|||
|
||||
registers-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "registers-nvim";
|
||||
version = "2021-03-31";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tversteeg";
|
||||
repo = "registers.nvim";
|
||||
rev = "b8f6283724d3ccacf2c7add61f3fcb9c02e7d61d";
|
||||
sha256 = "1b1amy9k6j2ilcm79pp30gcqqjhbd2zfwxm5vbcra29p9s4f14y2";
|
||||
rev = "105200aea2edd8c7ba995a76789a03e7dab83a85";
|
||||
sha256 = "0vvr1mdrnybgrbvs7r5yrzwab35viz488gyibzdjl3b5wisxqwxh";
|
||||
};
|
||||
meta.homepage = "https://github.com/tversteeg/registers.nvim/";
|
||||
};
|
||||
|
@ -3877,12 +3877,12 @@ let
|
|||
|
||||
rust-tools-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "rust-tools-nvim";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "simrat39";
|
||||
repo = "rust-tools.nvim";
|
||||
rev = "42a9fb0441630ea640b7d3e967d6ad5c7f41b520";
|
||||
sha256 = "0mcjcxhq2ri1galva5xjx4f0z98jyskmwypxc77gizisl2fjplnz";
|
||||
rev = "ea210456f8eac176822c8777619d2f05797dc708";
|
||||
sha256 = "14ygid112wwpgf429j1i65k72a1bn3pd6b7c1vpvyvvzdyfwnhiw";
|
||||
};
|
||||
meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
|
||||
};
|
||||
|
@ -4081,12 +4081,12 @@ let
|
|||
|
||||
SpaceCamp = buildVimPluginFrom2Nix {
|
||||
pname = "SpaceCamp";
|
||||
version = "2021-03-16";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jaredgorski";
|
||||
repo = "SpaceCamp";
|
||||
rev = "ce034929763903937396cf6b2c9912eb209e6b39";
|
||||
sha256 = "07a1441gccilbhnk99lz66nvaiv14vdn34ink3jjd27d2mkf3skb";
|
||||
rev = "376af5c2204de61726ea86b596acb2dab9795e1f";
|
||||
sha256 = "0h3wxkswd5z9y46d6272sr210i73j5pwf5faw7qhr1plilfgx4gb";
|
||||
};
|
||||
meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
|
||||
};
|
||||
|
@ -4394,12 +4394,12 @@ let
|
|||
|
||||
telescope-fzy-native-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "telescope-fzy-native-nvim";
|
||||
version = "2020-12-31";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope-fzy-native.nvim";
|
||||
rev = "654dffd924b29fb9a9252dcbd63528b1498ac9fb";
|
||||
sha256 = "01x9z3n03qharjw778cxb16gw1dsxzmsxph4xsbfy1avf21c6x9g";
|
||||
rev = "7b3d2528102f858036627a68821ccf5fc1d78ce4";
|
||||
sha256 = "1mb47ixnpgd7ygrq1cldp9anc6gxqly4amj0l1pgh8cllj63393v";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-telescope/telescope-fzy-native.nvim/";
|
||||
|
@ -4407,12 +4407,12 @@ let
|
|||
|
||||
telescope-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "telescope-nvim";
|
||||
version = "2021-04-04";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-telescope";
|
||||
repo = "telescope.nvim";
|
||||
rev = "d0cf646f65746415294f570ec643ffd0101ca3ab";
|
||||
sha256 = "02l65jxd50x4jc7mv1d9bsqasa7m0vkil0b36jamhvp1syzkwhkj";
|
||||
rev = "64e59060b1750d0c86761693b6847c3db07afcd2";
|
||||
sha256 = "0racv0zqklfn3dh7jvkw8hx9rh85mkrljixjh528h12qfv53arw7";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
|
||||
};
|
||||
|
@ -5212,12 +5212,12 @@ let
|
|||
|
||||
vim-clap = buildVimPluginFrom2Nix {
|
||||
pname = "vim-clap";
|
||||
version = "2021-04-03";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "liuchengxu";
|
||||
repo = "vim-clap";
|
||||
rev = "97a2649ecb75cbad4081a9f575b2bb7f17582a3c";
|
||||
sha256 = "0jn8iyhw80xasnp7b09yqjxa46jkcrfmy2r8b7ynxan9a37b206i";
|
||||
rev = "ee7e6a5782ec7033f361311f8f61f23146822e62";
|
||||
sha256 = "0gr2sh6fbc8qfz0xlv5rhkg8jxh81wb2lb141m0hyc0fk1n2pya7";
|
||||
};
|
||||
meta.homepage = "https://github.com/liuchengxu/vim-clap/";
|
||||
};
|
||||
|
@ -5920,12 +5920,12 @@ let
|
|||
|
||||
vim-fugitive = buildVimPluginFrom2Nix {
|
||||
pname = "vim-fugitive";
|
||||
version = "2021-04-04";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpope";
|
||||
repo = "vim-fugitive";
|
||||
rev = "f29c9e50795cdfcc2b31b1e76ab6bd202e476298";
|
||||
sha256 = "0wn3c4jads0201433kc8f9mnlg1phhgamr218yz1q70waj60ns2n";
|
||||
rev = "8ede0aaf57e1dbb5416ddbe30d0bfdde762e90bf";
|
||||
sha256 = "1aa7cqkp2pkpn175y67gfjbd0p3jxca42n7iysykzi9hcgkshqm2";
|
||||
};
|
||||
meta.homepage = "https://github.com/tpope/vim-fugitive/";
|
||||
};
|
||||
|
@ -6714,12 +6714,12 @@ let
|
|||
|
||||
vim-lsp-cxx-highlight = buildVimPluginFrom2Nix {
|
||||
pname = "vim-lsp-cxx-highlight";
|
||||
version = "2021-03-14";
|
||||
version = "2021-04-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jackguo380";
|
||||
repo = "vim-lsp-cxx-highlight";
|
||||
rev = "00818f0d8b7c87d3a1ecd81cc4ff1ab782355c2b";
|
||||
sha256 = "1pjricwcqsbw466anwcndhj97g6qbblk95jaa8yg3a2fs8gdz8iz";
|
||||
rev = "130fd4189e0328630be7ad4aa7e1d98a0a503170";
|
||||
sha256 = "1nsac8f2c0lj42a77wxcv3k6i8sbpm5ghip6nx7yz0dj7zd4xm10";
|
||||
};
|
||||
meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/";
|
||||
};
|
||||
|
@ -7049,6 +7049,18 @@ let
|
|||
meta.homepage = "https://github.com/rakr/vim-one/";
|
||||
};
|
||||
|
||||
vim-opencl = buildVimPluginFrom2Nix {
|
||||
pname = "vim-opencl";
|
||||
version = "2018-06-13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "petRUShka";
|
||||
repo = "vim-opencl";
|
||||
rev = "7668b018fe9461c6b51e0b736ed84aa84d6bafce";
|
||||
sha256 = "0z8qasymkkaa272bjxmkp4sgd8qr4ypcqxlyzxgh5imp3gmrc6n1";
|
||||
};
|
||||
meta.homepage = "https://github.com/petRUShka/vim-opencl/";
|
||||
};
|
||||
|
||||
vim-operator-replace = buildVimPluginFrom2Nix {
|
||||
pname = "vim-operator-replace";
|
||||
version = "2015-02-24";
|
||||
|
@ -7531,24 +7543,24 @@ let
|
|||
|
||||
vim-rhubarb = buildVimPluginFrom2Nix {
|
||||
pname = "vim-rhubarb";
|
||||
version = "2021-04-03";
|
||||
version = "2021-04-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tpope";
|
||||
repo = "vim-rhubarb";
|
||||
rev = "71d5c3598e0d14af3fbaf2530c061c306db5a962";
|
||||
sha256 = "03izgmaa150159lp43hsn17yqx0w8r8wa04cf1rnk1zw00zr2073";
|
||||
rev = "1c36bf8668e329b51f8baf752c4ffe42f8d524ab";
|
||||
sha256 = "1ad0ypfv7bsla964q8jd1mds62vr2rfd5309bq7dybbi8z3bz6fp";
|
||||
};
|
||||
meta.homepage = "https://github.com/tpope/vim-rhubarb/";
|
||||
};
|
||||
|
||||
vim-rooter = buildVimPluginFrom2Nix {
|
||||
pname = "vim-rooter";
|
||||
version = "2021-03-11";
|
||||
version = "2021-04-08";
|
||||
src = fetchFromGitHub {
|
||||
owner = "airblade";
|
||||
repo = "vim-rooter";
|
||||
rev = "544e701066c69bbeb45297d0285c2719e125440b";
|
||||
sha256 = "0mj5zvfsi4n8qi8cq0h99j1zb11xmrpkm31ll4q1bm5mf57kbmxa";
|
||||
rev = "e122cb925b2d0e4f44f289fbdffd6a6ebb837a11";
|
||||
sha256 = "0hc3k5338az962b2slia6lc5dkby79iqf1mvpxh57j9jp3gn9b3s";
|
||||
};
|
||||
meta.homepage = "https://github.com/airblade/vim-rooter/";
|
||||
};
|
||||
|
@ -7963,12 +7975,12 @@ let
|
|||
|
||||
vim-swap = buildVimPluginFrom2Nix {
|
||||
pname = "vim-swap";
|
||||
version = "2021-03-18";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "machakann";
|
||||
repo = "vim-swap";
|
||||
rev = "f363ea636f4e18b4a3382ff352d3cf2e2ac5840e";
|
||||
sha256 = "1pa5crmamama4v3yzcjfbizvpx03wb67zbjx1mn5rz6dcar903f6";
|
||||
rev = "e75fb91c4940447758902f8cab95d13f8be84d0e";
|
||||
sha256 = "0z8mlcjhp1r2v9hs69h6kpk7yfyi7c2y7ck096y5y0hbcwrarn6n";
|
||||
};
|
||||
meta.homepage = "https://github.com/machakann/vim-swap/";
|
||||
};
|
||||
|
@ -8624,12 +8636,12 @@ let
|
|||
|
||||
vimspector = buildVimPluginFrom2Nix {
|
||||
pname = "vimspector";
|
||||
version = "2021-03-30";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "puremourning";
|
||||
repo = "vimspector";
|
||||
rev = "caeb6610ed9f209490fbfacacc99e720847e6130";
|
||||
sha256 = "014xvr14kxk0js4qwdzv0ljzrz6dji9qrkjyjpr1qfx6r8kz2j1z";
|
||||
rev = "7d83419a4f813aee826eee994b8e419b6ff102b0";
|
||||
sha256 = "05xlpf3rm54kb6vxkm4gngbxabd58736najdawjxf8y7b6ajv39z";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
meta.homepage = "https://github.com/puremourning/vimspector/";
|
||||
|
@ -8637,12 +8649,12 @@ let
|
|||
|
||||
vimtex = buildVimPluginFrom2Nix {
|
||||
pname = "vimtex";
|
||||
version = "2021-04-06";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lervag";
|
||||
repo = "vimtex";
|
||||
rev = "b31d4e3ed3942c98fcb928ca65bf9e9427608439";
|
||||
sha256 = "0vl0a71in04pi3v9h61piny6qrd91z8anmzv724dznqkc4ydp9hx";
|
||||
rev = "83b8e2998c6f0554b7eb4a04cfe783b8eab86c88";
|
||||
sha256 = "08k9in6xg0vbihwgcyy2c3gfsc91iz3lw2r3awg0zwgd41699qby";
|
||||
};
|
||||
meta.homepage = "https://github.com/lervag/vimtex/";
|
||||
};
|
||||
|
@ -8879,12 +8891,12 @@ let
|
|||
|
||||
zig-vim = buildVimPluginFrom2Nix {
|
||||
pname = "zig-vim";
|
||||
version = "2021-03-16";
|
||||
version = "2021-04-07";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ziglang";
|
||||
repo = "zig.vim";
|
||||
rev = "33b62b688ef4f0b3810c4d3d1b3901f572488691";
|
||||
sha256 = "0dsc1h8ih5jgfni5szm8dby368naxh3igndm80yrciy2glcj1ayn";
|
||||
rev = "fc32adfada0fac7a2f6088672e177d410c9e3ae1";
|
||||
sha256 = "051l2dig6861xzl6zg41d6a776jhms7v6a86cap1ipd2rxkqh5yh";
|
||||
};
|
||||
meta.homepage = "https://github.com/ziglang/zig.vim/";
|
||||
};
|
||||
|
|
|
@ -465,6 +465,7 @@ pearofducks/ansible-vim
|
|||
peitalin/vim-jsx-typescript
|
||||
peterbjorgensen/sved
|
||||
peterhoeg/vim-qml
|
||||
petRUShka/vim-opencl
|
||||
phaazon/hop.nvim
|
||||
phanviet/vim-monokai-pro
|
||||
plasticboy/vim-markdown
|
||||
|
|
|
@ -56,4 +56,10 @@ stdenv.mkDerivation rec {
|
|||
lgpl2Plus # libfuse
|
||||
];
|
||||
};
|
||||
|
||||
passthru.warning = ''
|
||||
macFUSE is required for this package to work on macOS. To install macFUSE,
|
||||
use the installer from the <link xlink:href="https://osxfuse.github.io/">
|
||||
project website</link>.
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
, autoModules ? stdenv.hostPlatform.linux-kernel.autoModules
|
||||
, preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
|
||||
, kernelArch ? stdenv.hostPlatform.linuxArch
|
||||
|
||||
, kernelTests ? []
|
||||
, ...
|
||||
}:
|
||||
|
||||
|
@ -175,11 +175,12 @@ let
|
|||
|
||||
passthru = {
|
||||
features = kernelFeatures;
|
||||
inherit commonStructuredConfig isZen isHardened isLibre;
|
||||
inherit commonStructuredConfig isZen isHardened isLibre modDirVersion;
|
||||
isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true;
|
||||
kernelOlder = lib.versionOlder version;
|
||||
kernelAtLeast = lib.versionAtLeast version;
|
||||
passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
|
||||
tests = kernelTests;
|
||||
};
|
||||
|
||||
in lib.extendDerivation true passthru kernel
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,4 +15,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "0nw1jf6x5a990n69aw2da4s4lc1c7mnwiwcda40bl2rkmd24s1qm";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,4 +15,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "0z5pgal8775rf7pvpxq47dnghr42al2k9py0s9jl3js2wamgdyix";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
|
||||
{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.4.264";
|
||||
|
@ -8,4 +8,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "1b0d735qnk0bcqn9gdsjqxhk8pkb3597ya9f34lv1vjfaqkkxk7l";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
|
||||
{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.9.264";
|
||||
|
@ -8,4 +8,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "1df2dv26c9z6zsdlqzbcc60f2pszh0hx1n94v65jswlb72a2mipc";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,4 +15,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,4 +15,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1fc3yl4srzla3cbihgnry0pqmgcc17zv0zlkk9zpx99371hpay0a";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_11 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
|
||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,4 +15,6 @@ buildLinux (args // rec {
|
|||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1vmpc6yrr2zm4m3naflwik5111jr8hy0mnyddwk31l0p4xbg8smc";
|
||||
};
|
||||
|
||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
|
||||
} // (args.argsOverride or {}))
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue