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:
Dmitry Kalinkin 2021-04-08 22:42:26 -04:00
commit 219590673c
No known key found for this signature in database
GPG key ID: 5157B3EC8B2CA333
127 changed files with 8479 additions and 625 deletions

6
.github/CODEOWNERS vendored
View file

@ -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

View file

@ -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";

View file

@ -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>

View file

@ -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

View file

@ -266,7 +266,7 @@ in
gitMinimal
openssh
util-linux
iproute
iproute2
ethtool
thin-provisioning-tools
iptables

View file

@ -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>.
'';
};

View file

@ -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 ];
}

View file

@ -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

View file

@ -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";

View file

@ -28,7 +28,7 @@ with lib;
"systemd-resolved.service"
];
path = [
pkgs.iproute
pkgs.iproute2
# Needed for ping
"/run/wrappers"
];

View file

@ -119,7 +119,7 @@ in
path = cfg.extraPackages ++ (with pkgs; [
# Client mode requires at least the following:
coreutils
iproute
iproute2
iptables
]);

View file

@ -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

View file

@ -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;
};
};

View file

@ -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;

View file

@ -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

View file

@ -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>

View file

@ -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;

View file

@ -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

View file

@ -1144,7 +1144,7 @@ in
environment.systemPackages =
[ pkgs.host
pkgs.iproute
pkgs.iproute2
pkgs.iputils
pkgs.nettools
]

View file

@ -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;
};

View file

@ -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;
};

View file

@ -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 ];

View file

@ -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 {};

197
nixos/tests/discourse.nix Normal file
View file

@ -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\' '
)
'';
})

View file

@ -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}")
'';
})

View file

@ -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;
}

View file

@ -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")
'';
})

View file

@ -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")
'';
})

View file

@ -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")
'';
})

View file

@ -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";
};

View file

@ -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";

View file

@ -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";

View file

@ -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 ];
};
}

View file

@ -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";

View file

@ -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 = [

View file

@ -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",

View file

@ -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;
};

View file

@ -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 ];

View file

@ -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=";

View file

@ -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 ];
};
}

View file

@ -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 = ''

View file

@ -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 ''

View file

@ -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" ];

View file

@ -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; {

View file

@ -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

View file

@ -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;
};
})

View file

@ -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;
};

View file

@ -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; {

View file

@ -8,7 +8,7 @@ let
pname = "clang";
inherit version;
src = fetch "clang" "11ay72f81ffygil5ficq7mzplck4gffm77p0yj4ib3dgiqbb1qbw";
src = fetch "clang" "185r9rr254v75ja33nmm53j85lcnkj7bzsl18wvnd37jmz2nfxa5";
inherit clang-tools-extra_src;
unpackPhase = ''

View file

@ -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;

View file

@ -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; });

View file

@ -6,7 +6,7 @@ stdenv.mkDerivation {
pname = "libc++";
inherit version;
src = fetch "libcxx" "0ai91zls1738502c3b2frhawmjpi73rm3m677hh540wrjp3xv0ql";
src = fetch "libcxx" "01abh553dvjgk5cjzzp0ghmg00laqbr4ar4frdhyhpbwhhmwc880";
postUnpack = ''
unpackFile ${libcxxabi.src}

View file

@ -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;

View file

@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
pname = "libunwind";
inherit version;
src = fetch pname "1a5db1lxw98a430b8mnaclc0w98y6cc8k587kgjhn0nghl40l40i";
src = fetch pname "0kaq75ygzv9dqfsx27pi5a0clipdjq6a9vghhb89d8k1rf20lslh";
postUnpack = ''
unpackFile ${libcxx.src}

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
pname = "lld";
inherit version;
src = fetch pname "0r9pxhvinipirv9s5k8fnsnqd30zfniwqjkvw5sac3lq29rn2lp1";
src = fetch pname "044lv1d9am2xmbc3pvssxkkiyxyv72n2xkgk8z3p9k72h3ay00q3";
nativeBuildInputs = [ cmake ];
buildInputs = [ llvm libxml2 ];

View file

@ -25,7 +25,7 @@ stdenv.mkDerivation (rec {
pname = "lldb";
inherit version;
src = fetch pname "0943gan83mldizwbhksd07w4h90z4djjpv5f8v49caz8y9113svg";
src = fetch pname "0q4p4s5ws1zszs3i4da5w5fnxkpny0q3fr1s1sh7jp9wcwxbxiqq";
patches = [ ./lldb-procfs.patch ];

View file

@ -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

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
pname = "openmp";
inherit version;
src = fetch pname "07g2rsfhli3szv3chzy6y37p2176ywdb6w3k2fv9g2r416cpxjdz";
src = fetch pname "1d16r5whjb2n4n28rg8wn2g9krlc92q6nb0qmnnbzhqhx0rbkjfb";
nativeBuildInputs = [ cmake perl ];
buildInputs = [ llvm ];

View file

@ -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"

View file

@ -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/";

View file

@ -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;
}
)

View file

@ -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 ];

View file

@ -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__)

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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 = [

View file

@ -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" ];

View file

@ -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";

View file

@ -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 ];

View file

@ -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 ];
};
}

View file

@ -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";

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;";
};
});
}

View file

@ -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"
}

View file

@ -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; [ ];
};

View file

@ -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

View file

@ -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 = [

View file

@ -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;
};
}

View file

@ -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;

View file

@ -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;

View file

@ -40,8 +40,6 @@ stdenv.mkDerivation rec {
"-Duse_sys_tree_sitter=true"
];
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config meson ninja cmake ];
buildInputs = [

View file

@ -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; {

View file

@ -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;

View file

@ -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}/*)
'') + ''

View file

@ -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 ]

View file

@ -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/";
};

View file

@ -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

View file

@ -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>.
'';
}

View file

@ -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

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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