Project import generated by Copybara.

GitOrigin-RevId: c6c4a3d45ab200f17805d2d86a1ff1cc7ca2b186
This commit is contained in:
Default email 2021-07-16 21:40:57 +02:00
parent 9dfb1d205d
commit 0fe1cd7bea
222 changed files with 17302 additions and 2022 deletions

View file

@ -18,6 +18,8 @@
Additional commands to be executed for finalizing the derivation with runner script. Additional commands to be executed for finalizing the derivation with runner script.
- `runScript` - `runScript`
A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to `bash`. A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to `bash`.
- `profile`
Optional script for `/etc/profile` within the sandbox.
One can create a simple environment using a `shell.nix` like that: One can create a simple environment using a `shell.nix` like that:

View file

@ -7888,6 +7888,12 @@
githubId = 757752; githubId = 757752;
name = "Jonas Heinrich"; name = "Jonas Heinrich";
}; };
ony = {
name = "Mykola Orliuk";
email = "virkony@gmail.com";
github = "ony";
githubId = 11265;
};
OPNA2608 = { OPNA2608 = {
email = "christoph.neidahl@gmail.com"; email = "christoph.neidahl@gmail.com";
github = "OPNA2608"; github = "OPNA2608";
@ -10678,6 +10684,16 @@
githubId = 9853194; githubId = 9853194;
name = "Philipp Bartsch"; name = "Philipp Bartsch";
}; };
toastal = {
email = "toastal+nix@posteo.net";
github = "toastal";
githubId = 561087;
name = "toastal";
keys = [{
longkeyid = "ed25519/5CCE6F1466D47C9E";
fingerprint = "7944 74B7 D236 DAB9 C9EF E7F9 5CCE 6F14 66D4 7C9E";
}];
};
tobim = { tobim = {
email = "nix@tobim.fastmail.fm"; email = "nix@tobim.fastmail.fm";
github = "tobim"; github = "tobim";
@ -11878,12 +11894,6 @@
githubId = 8686360; githubId = 8686360;
name = "Illia Shestakov"; name = "Illia Shestakov";
}; };
foxit64 = {
email = "o4nsxy05@gmail.com";
github = "foxit64";
githubId = 56247270;
name = "Foxit";
};
masaeedu = { masaeedu = {
email = "masaeedu@gmail.com"; email = "masaeedu@gmail.com";
github = "masaeedu"; github = "masaeedu";

View file

@ -486,7 +486,7 @@
</itemizedlist> </itemizedlist>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<itemizedlist spacing="compact"> <itemizedlist>
<listitem> <listitem>
<para> <para>
<literal>yggdrasil</literal> was upgraded to a new major <literal>yggdrasil</literal> was upgraded to a new major
@ -495,6 +495,14 @@
changelog</link>. changelog</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>icingaweb2</literal> was upgraded to a new release
which requires a manual database upgrade, see
<link xlink:href="https://github.com/Icinga/icingaweb2/releases/tag/v2.9.0">upstream
changelog</link>.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-notable-changes"> <section xml:id="sec-release-21.11-notable-changes">
@ -538,6 +546,22 @@
<literal>claws-mail-gtk2</literal> package. <literal>claws-mail-gtk2</literal> package.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The wordpress module provides a new interface which allows to
use different webservers with the new option
<link xlink:href="options.html#opt-services.wordpress.webserver"><literal>services.wordpress.webserver</literal></link>.
Currently <literal>httpd</literal> and
<literal>nginx</literal> are supported. The definitions of
wordpress sites should now be set in
<link xlink:href="options.html#opt-services.wordpress.sites"><literal>services.wordpress.sites</literal></link>.
</para>
<para>
Sites definitions that use the old interface are automatically
migrated in the new option. This backward compatibility will
be removed in 22.05.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View file

@ -124,6 +124,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `yggdrasil` was upgraded to a new major release with breaking changes, see [upstream changelog](https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.4.0). - `yggdrasil` was upgraded to a new major release with breaking changes, see [upstream changelog](https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.4.0).
- `icingaweb2` was upgraded to a new release which requires a manual database upgrade, see [upstream changelog](https://github.com/Icinga/icingaweb2/releases/tag/v2.9.0).
## Other Notable Changes {#sec-release-21.11-notable-changes} ## Other Notable Changes {#sec-release-21.11-notable-changes}
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets. - The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
@ -133,3 +135,7 @@ In addition to numerous new and upgraded packages, this release has the followin
- Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly. - Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly.
- The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package. - The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package.
- The wordpress module provides a new interface which allows to use different webservers with the new option [`services.wordpress.webserver`](options.html#opt-services.wordpress.webserver). Currently `httpd` and `nginx` are supported. The definitions of wordpress sites should now be set in [`services.wordpress.sites`](options.html#opt-services.wordpress.sites).
Sites definitions that use the old interface are automatically migrated in the new option. This backward compatibility will be removed in 22.05.

View file

@ -10,14 +10,16 @@ in
{ {
options.programs.xwayland = { options.programs.xwayland = {
enable = mkEnableOption '' enable = mkEnableOption "Xwayland (an X server for interfacing X11 apps with the Wayland protocol)";
Xwayland X server allows running X programs on a Wayland compositor.
'';
defaultFontPath = mkOption { defaultFontPath = mkOption {
type = types.str; type = types.str;
default = optionalString config.fonts.fontDir.enable default = optionalString config.fonts.fontDir.enable
"/run/current-system/sw/share/X11/fonts"; "/run/current-system/sw/share/X11/fonts";
defaultText = literalExample ''
optionalString config.fonts.fontDir.enable
"/run/current-system/sw/share/X11/fonts";
'';
description = '' description = ''
Default font path. Setting this option causes Xwayland to be rebuilt. Default font path. Setting this option causes Xwayland to be rebuilt.
''; '';
@ -25,7 +27,15 @@ in
package = mkOption { package = mkOption {
type = types.path; type = types.path;
description = "The Xwayland package"; default = pkgs.xwayland.override (oldArgs: {
inherit (cfg) defaultFontPath;
});
defaultText = literalExample ''
pkgs.xwayland.override (oldArgs: {
inherit (config.programs.xwayland) defaultFontPath;
});
'';
description = "The Xwayland package to use.";
}; };
}; };
@ -37,9 +47,5 @@ in
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
programs.xwayland.package = pkgs.xwayland.override (oldArgs: {
inherit (cfg) defaultFontPath;
});
}; };
} }

View file

@ -35,10 +35,20 @@ in
token = mkOption { token = mkOption {
type = types.str; type = types.str;
description = "The k3s token to use when connecting to the server. This option only makes sense for an agent."; description = ''
The k3s token to use when connecting to the server. This option only makes sense for an agent.
WARNING: This option will expose store your token unencrypted world-readable in the nix store.
If this is undesired use the tokenFile option instead.
'';
default = ""; default = "";
}; };
tokenFile = mkOption {
type = types.nullOr types.path;
description = "File path containing k3s token to use when connecting to the server. This option only makes sense for an agent.";
default = null;
};
docker = mkOption { docker = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -68,8 +78,8 @@ in
message = "serverAddr should be set if role is 'agent'"; message = "serverAddr should be set if role is 'agent'";
} }
{ {
assertion = cfg.role == "agent" -> cfg.token != ""; assertion = cfg.role == "agent" -> cfg.token != "" || cfg.tokenFile != null;
message = "token should be set if role is 'agent'"; message = "token or tokenFile should be set if role is 'agent'";
} }
]; ];
@ -105,7 +115,12 @@ in
"${cfg.package}/bin/k3s ${cfg.role}" "${cfg.package}/bin/k3s ${cfg.role}"
] ++ (optional cfg.docker "--docker") ] ++ (optional cfg.docker "--docker")
++ (optional cfg.disableAgent "--disable-agent") ++ (optional cfg.disableAgent "--disable-agent")
++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} --token ${cfg.token}") ++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} ${
if cfg.tokenFile != null then
"--token-file ${cfg.tokenFile}"
else
"--token ${cfg.token}"
}")
++ [ cfg.extraFlags ] ++ [ cfg.extraFlags ]
); );
}; };

View file

@ -475,21 +475,16 @@ in
plugins = lib.mkOption { plugins = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
default = []; default = [];
example = '' example = lib.literalExample ''
[ with config.services.discourse.package.plugins; [
(pkgs.fetchFromGitHub { discourse-canned-replies
owner = "discourse"; discourse-github
repo = "discourse-spoiler-alert";
rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
})
]; ];
''; '';
description = '' description = ''
<productname>Discourse</productname> plugins to install as a Plugins to install as part of
list of derivations. As long as a plugin supports the <productname>Discourse</productname>, expressed as a list of
standard install method, packaging it should only require derivations.
fetching its source with an appropriate fetcher.
''; '';
}; };

View file

@ -262,9 +262,31 @@ services.discourse = {
<para> <para>
You can install <productname>Discourse</productname> plugins You can install <productname>Discourse</productname> plugins
using the <xref linkend="opt-services.discourse.plugins" /> using the <xref linkend="opt-services.discourse.plugins" />
option. As long as a plugin supports the standard install option. Pre-packaged plugins are provided in
method, packaging it should only require fetching its source <literal>&lt;your_discourse_package_here&gt;.plugins</literal>. If
with an appropriate fetcher. you want the full suite of plugins provided through
<literal>nixpkgs</literal>, you can also set the <xref
linkend="opt-services.discourse.package" /> option to
<literal>pkgs.discourseAllPlugins</literal>.
</para>
<para>
Plugins can be built with the
<literal>&lt;your_discourse_package_here&gt;.mkDiscoursePlugin</literal>
function. Normally, it should suffice to provide a
<literal>name</literal> and <literal>src</literal> attribute. If
the plugin has Ruby dependencies, however, they need to be
packaged in accordance with the <link
xlink:href="https://nixos.org/manual/nixpkgs/stable/#developing-with-ruby">Developing
with Ruby</link> section of the Nixpkgs manual and the
appropriate gem options set in <literal>bundlerEnvArgs</literal>
(normally <literal>gemdir</literal> is sufficient). A plugin's
Ruby dependencies are listed in its
<filename>plugin.rb</filename> file as function calls to
<literal>gem</literal>. To construct the corresponding
<filename>Gemfile</filename>, run <command>bundle
init</command>, then add the <literal>gem</literal> lines to it
verbatim.
</para> </para>
<para> <para>
@ -280,7 +302,10 @@ services.discourse = {
<para> <para>
For example, to add the <link For example, to add the <link
xlink:href="https://github.com/discourse/discourse-spoiler-alert">discourse-spoiler-alert</link> xlink:href="https://github.com/discourse/discourse-spoiler-alert">discourse-spoiler-alert</link>
plugin and disable it by default: and <link
xlink:href="https://github.com/discourse/discourse-solved">discourse-solved</link>
plugins, and disable <literal>discourse-spoiler-alert</literal>
by default:
<programlisting> <programlisting>
services.discourse = { services.discourse = {
@ -301,13 +326,9 @@ services.discourse = {
<link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file"; <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">mail.incoming.enable</link> = true;
<link linkend="opt-services.discourse.mail.incoming.enable">plugins</link> = [ <link linkend="opt-services.discourse.mail.incoming.enable">plugins</link> = with config.services.discourse.package.plugins; [
(pkgs.fetchFromGitHub { discourse-spoiler-alert
owner = "discourse"; discourse-solved
repo = "discourse-spoiler-alert";
rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
})
]; ];
<link linkend="opt-services.discourse.siteSettings">siteSettings</link> = { <link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
plugins = { plugins = {

View file

@ -23,6 +23,16 @@ in {
''; '';
}; };
libraryPaths = mkOption {
type = attrsOf package;
default = { };
description = ''
Libraries to add to the Icingaweb2 library path.
The name of the attribute is the name of the library, the value
is the package to add.
'';
};
virtualHost = mkOption { virtualHost = mkOption {
type = nullOr str; type = nullOr str;
default = "icingaweb2"; default = "icingaweb2";
@ -167,6 +177,9 @@ in {
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") { services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
${poolName} = { ${poolName} = {
user = "icingaweb2"; user = "icingaweb2";
phpEnv = {
ICINGAWEB_LIBDIR = toString (pkgs.linkFarm "icingaweb2-libdir" (mapAttrsToList (name: path: { inherit name path; }) cfg.libraryPaths));
};
phpPackage = pkgs.php.withExtensions ({ enabled, all }: [ all.imagick ] ++ enabled); phpPackage = pkgs.php.withExtensions ({ enabled, all }: [ all.imagick ] ++ enabled);
phpOptions = '' phpOptions = ''
date.timezone = "${cfg.timezone}" date.timezone = "${cfg.timezone}"
@ -184,6 +197,11 @@ in {
}; };
}; };
services.icingaweb2.libraryPaths = {
ipl = pkgs.icingaweb2-ipl;
thirdparty = pkgs.icingaweb2-thirdparty;
};
systemd.services."phpfpm-${poolName}".serviceConfig.ReadWritePaths = [ "/etc/icingaweb2" ]; systemd.services."phpfpm-${poolName}".serviceConfig.ReadWritePaths = [ "/etc/icingaweb2" ];
services.nginx = { services.nginx = {

View file

@ -3,13 +3,18 @@
let let
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types; inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
inherit (lib) any attrValues concatMapStringsSep flatten literalExample; inherit (lib) any attrValues concatMapStringsSep flatten literalExample;
inherit (lib) mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString; inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
eachSite = config.services.wordpress; cfg = migrateOldAttrs config.services.wordpress;
eachSite = cfg.sites;
user = "wordpress"; user = "wordpress";
group = config.services.httpd.group; webserver = config.services.${cfg.webserver};
stateDir = hostName: "/var/lib/wordpress/${hostName}"; stateDir = hostName: "/var/lib/wordpress/${hostName}";
# Migrate config.services.wordpress.<hostName> to config.services.wordpress.sites.<hostName>
oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec { pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
pname = "wordpress-${hostName}"; pname = "wordpress-${hostName}";
version = src.version; version = src.version;
@ -261,21 +266,48 @@ in
# interface # interface
options = { options = {
services.wordpress = mkOption { services.wordpress = mkOption {
type = types.attrsOf (types.submodule siteOpts); type = types.submodule {
# Used to support old interface
freeformType = types.attrsOf (types.submodule siteOpts);
# New interface
options.sites = mkOption {
type = types.attrsOf (types.submodule siteOpts);
default = {};
description = "Specification of one or more WordPress sites to serve";
};
options.webserver = mkOption {
type = types.enum [ "httpd" "nginx" ];
default = "httpd";
description = ''
Whether to use apache2 or nginx for virtual host management.
Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.&lt;name&gt;</literal>.
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
'';
};
};
default = {}; default = {};
description = "Specification of one or more WordPress sites to serve via Apache."; description = "Wordpress configuration";
}; };
}; };
# implementation # implementation
config = mkIf (eachSite != {}) { config = mkIf (eachSite != {}) (mkMerge [{
assertions = mapAttrsToList (hostName: cfg: assertions = mapAttrsToList (hostName: cfg:
{ assertion = cfg.database.createLocally -> cfg.database.user == user; { assertion = cfg.database.createLocally -> cfg.database.user == user;
message = "services.wordpress.${hostName}.database.user must be ${user} if the database is to be automatically provisioned"; message = ''services.wordpress.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned'';
} }
) eachSite; ) eachSite;
warnings = mapAttrsToList (hostName: _: ''services.wordpress."${hostName}" is deprecated use services.wordpress.sites."${hostName}"'') (oldSites cfg);
services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) { services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) {
enable = true; enable = true;
package = mkDefault pkgs.mariadb; package = mkDefault pkgs.mariadb;
@ -289,14 +321,18 @@ in
services.phpfpm.pools = mapAttrs' (hostName: cfg: ( services.phpfpm.pools = mapAttrs' (hostName: cfg: (
nameValuePair "wordpress-${hostName}" { nameValuePair "wordpress-${hostName}" {
inherit user group; inherit user;
group = webserver.group;
settings = { settings = {
"listen.owner" = config.services.httpd.user; "listen.owner" = webserver.user;
"listen.group" = config.services.httpd.group; "listen.group" = webserver.group;
} // cfg.poolConfig; } // cfg.poolConfig;
} }
)) eachSite; )) eachSite;
}
(mkIf (cfg.webserver == "httpd") {
services.httpd = { services.httpd = {
enable = true; enable = true;
extraModules = [ "proxy_fcgi" ]; extraModules = [ "proxy_fcgi" ];
@ -332,11 +368,13 @@ in
''; '';
} ]) eachSite; } ]) eachSite;
}; };
})
{
systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
"d '${stateDir hostName}' 0750 ${user} ${group} - -" "d '${stateDir hostName}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.uploadsDir}' 0750 ${user} ${group} - -" "d '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
"Z '${cfg.uploadsDir}' 0750 ${user} ${group} - -" "Z '${cfg.uploadsDir}' 0750 ${user} ${webserver.group} - -"
]) eachSite); ]) eachSite);
systemd.services = mkMerge [ systemd.services = mkMerge [
@ -350,7 +388,7 @@ in
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
User = user; User = user;
Group = group; Group = webserver.group;
}; };
})) eachSite) })) eachSite)
@ -360,9 +398,65 @@ in
]; ];
users.users.${user} = { users.users.${user} = {
group = group; group = webserver.group;
isSystemUser = true; isSystemUser = true;
}; };
}
}; (mkIf (cfg.webserver == "nginx") {
services.nginx = {
enable = true;
virtualHosts = mapAttrs (hostName: cfg: {
serverName = mkDefault hostName;
root = "${pkg hostName cfg}/share/wordpress";
extraConfig = ''
index index.php;
'';
locations = {
"/" = {
priority = 200;
extraConfig = ''
try_files $uri $uri/ /index.php$is_args$args;
'';
};
"~ \\.php$" = {
priority = 500;
extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools."wordpress-${hostName}".socket};
fastcgi_index index.php;
include "${config.services.nginx.package}/conf/fastcgi.conf";
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
'';
};
"~ /\\." = {
priority = 800;
extraConfig = "deny all;";
};
"~* /(?:uploads|files)/.*\\.php$" = {
priority = 900;
extraConfig = "deny all;";
};
"~* \\.(js|css|png|jpg|jpeg|gif|ico)$" = {
priority = 1000;
extraConfig = ''
expires max;
log_not_found off;
'';
};
};
}) eachSite;
};
})
]);
} }

View file

@ -10,48 +10,68 @@ import ./make-test-python.nix ({ pkgs, ... }:
]; ];
}; };
machine = nodes = {
{ ... }: wp_httpd = { ... }: {
{ services.httpd.adminAddr = "webmaster@site.local"; services.httpd.adminAddr = "webmaster@site.local";
services.httpd.logPerVirtualHost = true; services.httpd.logPerVirtualHost = true;
services.wordpress."site1.local" = { services.wordpress = {
database.tablePrefix = "site1_"; # Test support for old interface
}; "site1.local" = {
database.tablePrefix = "site1_";
services.wordpress."site2.local" = { };
database.tablePrefix = "site2_"; sites = {
"site2.local" = {
database.tablePrefix = "site2_";
};
};
}; };
networking.firewall.allowedTCPPorts = [ 80 ];
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
}; };
wp_nginx = { ... }: {
services.wordpress.webserver = "nginx";
services.wordpress.sites = {
"site1.local" = {
database.tablePrefix = "site1_";
};
"site2.local" = {
database.tablePrefix = "site2_";
};
};
networking.firewall.allowedTCPPorts = [ 80 ];
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
};
};
testScript = '' testScript = ''
import re import re
start_all() start_all()
machine.wait_for_unit("httpd") wp_httpd.wait_for_unit("httpd")
wp_nginx.wait_for_unit("nginx")
machine.wait_for_unit("phpfpm-wordpress-site1.local")
machine.wait_for_unit("phpfpm-wordpress-site2.local")
site_names = ["site1.local", "site2.local"] site_names = ["site1.local", "site2.local"]
with subtest("website returns welcome screen"): for machine in (wp_httpd, wp_nginx):
for site_name in site_names: for site_name in site_names:
assert "Welcome to the famous" in machine.succeed(f"curl -fL {site_name}") machine.wait_for_unit(f"phpfpm-wordpress-{site_name}")
with subtest("wordpress-init went through"): with subtest("website returns welcome screen"):
for site_name in site_names: assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
info = machine.get_unit_info(f"wordpress-init-{site_name}")
assert info["Result"] == "success"
with subtest("secret keys are set"): with subtest("wordpress-init went through"):
pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE) info = machine.get_unit_info(f"wordpress-init-{site_name}")
for site_name in site_names: assert info["Result"] == "success"
assert pattern.search(
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php") with subtest("secret keys are set"):
) pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
assert pattern.search(
machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
)
''; '';
}) })

View file

@ -0,0 +1,75 @@
{ stdenv, fetchurl, alsa-lib, cairo, dpkg, freetype
, gdk-pixbuf, glib, gtk3, lib, xorg
, libglvnd, libjack2, ffmpeg
, libxkbcommon, xdg-utils, zlib, pulseaudio
, wrapGAppsHook, makeWrapper }:
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "4.0";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "38381c1a382abd9543931f34d5ae1789c31ec1217a1c852b5c5c442ccaf97063";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
unpackCmd = ''
mkdir -p root
dpkg-deb -x $curSrc root
'';
dontBuild = true;
dontWrapGApps = true; # we only want $gappsWrapperArgs here
buildInputs = with xorg; [
alsa-lib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r opt/bitwig-studio $out/libexec
ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
cp -r usr/share $out/share
substitute usr/share/applications/com.bitwig.BitwigStudio.desktop \
$out/share/applications/com.bitwig.BitwigStudio.desktop \
--replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
runHook postInstall
'';
postFixup = ''
# patchelf fails to set rpath on BitwigStudioEngine, so we use
# the LD_LIBRARY_PATH way
find $out -type f -executable \
-not -name '*.so.*' \
-not -name '*.so' \
-not -name '*.jar' \
-not -path '*/resources/*' | \
while IFS= read -r f ; do
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
wrapProgram $f \
"''${gappsWrapperArgs[@]}" \
--prefix PATH : "${lib.makeBinPath [ xdg-utils ffmpeg ]}" \
--suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}"
done
'';
meta = with lib; {
description = "A digital audio workstation";
longDescription = ''
Bitwig Studio is a multi-platform music-creation system for
production, performance and DJing, with a focus on flexible
editing tools and a super-fast workflow.
'';
homepage = "https://www.bitwig.com/";
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ bfortz michalrus mrVanDalo ];
};
}

View file

@ -1,4 +1,4 @@
{ fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeWrapper, openssl, freetype { fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeWrapper, wrapGAppsHook, openssl, freetype
, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify , glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curl, zlib, gnome , libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curl, zlib, gnome
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon , at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
@ -82,7 +82,7 @@ stdenv.mkDerivation {
sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149"; sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149";
}; };
nativeBuildInputs = [ makeWrapper squashfsTools ]; nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;
@ -109,6 +109,9 @@ stdenv.mkDerivation {
runHook postUnpack runHook postUnpack
''; '';
# Prevent double wrapping
dontWrapGApps = true;
installPhase = installPhase =
'' ''
runHook preInstall runHook preInstall
@ -138,6 +141,7 @@ stdenv.mkDerivation {
librarypath="${lib.makeLibraryPath deps}:$libdir" librarypath="${lib.makeLibraryPath deps}:$libdir"
wrapProgram $out/share/spotify/spotify \ wrapProgram $out/share/spotify/spotify \
''${gappsWrapperArgs[@]} \
--prefix LD_LIBRARY_PATH : "$librarypath" \ --prefix LD_LIBRARY_PATH : "$librarypath" \
--prefix PATH : "${gnome.zenity}/bin" --prefix PATH : "${gnome.zenity}/bin"

View file

@ -1,21 +1,22 @@
{ lib, stdenv { lib
, stdenv
, fetchurl , fetchurl
, pkg-config
, autoreconfHook , autoreconfHook
, pkg-config
, util-linux
, hexdump
, wrapQtAppsHook ? null
, boost
, libevent
, miniupnpc
, zeromq
, zlib
, db48 , db48
, sqlite , sqlite
, boost , qrencode
, zeromq
, hexdump
, zlib
, miniupnpc
, qtbase ? null , qtbase ? null
, qttools ? null , qttools ? null
, wrapQtAppsHook ? null
, util-linux
, python3 , python3
, qrencode
, libevent
, nixosTests , nixosTests
, withGui , withGui
, withWallet ? true , withWallet ? true
@ -43,13 +44,14 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = nativeBuildInputs =
[ pkg-config autoreconfHook ] [ autoreconfHook pkg-config ]
++ optional stdenv.isDarwin hexdump
++ optional withGui wrapQtAppsHook;
buildInputs = [ boost zlib zeromq miniupnpc libevent ]
++ optionals stdenv.isLinux [ util-linux ] ++ optionals stdenv.isLinux [ util-linux ]
++ optionals stdenv.isDarwin [ hexdump ]
++ optionals withGui [ wrapQtAppsHook ];
buildInputs = [ boost libevent miniupnpc zeromq zlib ]
++ optionals withWallet [ db48 sqlite ] ++ optionals withWallet [ db48 sqlite ]
++ optionals withGui [ qtbase qttools qrencode ]; ++ optionals withGui [ qrencode qtbase qttools ];
postInstall = optional withGui '' postInstall = optional withGui ''
install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop

View file

@ -0,0 +1,86 @@
{ lib
, stdenv
, fetchurl
, autoreconfHook
, pkg-config
, util-linux
, hexdump
, wrapQtAppsHook ? null
, boost
, libevent
, miniupnpc
, zeromq
, zlib
, db48
, sqlite
, qrencode
, qtbase ? null
, qttools ? null
, python3
, openssl
, withGui
, withWallet ? true
}:
with lib;
stdenv.mkDerivation rec {
pname = if withGui then "elements" else "elementsd";
version = "0.18.1.12";
src = fetchurl {
url = "https://github.com/ElementsProject/elements/archive/elements-${version}.tar.gz";
sha256 = "84a51013596b09c62913649ac90373622185f779446ee7e65b4b258a2876609f";
};
nativeBuildInputs =
[ autoreconfHook pkg-config ]
++ optionals stdenv.isLinux [ util-linux ]
++ optionals stdenv.isDarwin [ hexdump ]
++ optionals withGui [ wrapQtAppsHook ];
buildInputs = [ boost libevent miniupnpc zeromq zlib openssl ]
++ optionals withWallet [ db48 sqlite ]
++ optionals withGui [ qrencode qtbase qttools ];
configureFlags = [
"--with-boost-libdir=${boost.out}/lib"
"--disable-bench"
] ++ optionals (!doCheck) [
"--disable-tests"
"--disable-gui-tests"
] ++ optionals (!withWallet) [
"--disable-wallet"
] ++ optionals withGui [
"--with-gui=qt5"
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
];
checkInputs = [ python3 ];
doCheck = true;
checkFlags =
[ "LC_ALL=C.UTF-8" ]
# QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
# See also https://github.com/NixOS/nixpkgs/issues/24256
++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
enableParallelBuilding = true;
meta = {
description = "Open Source implementation of advanced blockchain features extending the Bitcoin protocol";
longDescription= ''
The Elements blockchain platform is a collection of feature experiments and extensions to the
Bitcoin protocol. This platform enables anyone to build their own businesses or networks
pegged to Bitcoin as a sidechain or run as a standalone blockchain with arbitrary asset
tokens.
'';
homepage = "https://www.github.com/ElementsProject/elements";
maintainers = with maintainers; [ prusnak ];
license = licenses.mit;
platforms = platforms.unix;
# Qt GUI is currently broken in upstream
# No rule to make target 'qt/res/rendered_icons/about.png', needed by 'qt/qrc_bitcoin.cpp'.
broken = withGui;
};
}

View file

@ -9,14 +9,9 @@
, boost, libunwind, libsodium, pcsclite , boost, libunwind, libsodium, pcsclite
, randomx, zeromq, libgcrypt, libgpgerror , randomx, zeromq, libgcrypt, libgpgerror
, hidapi, rapidjson, quirc , hidapi, rapidjson, quirc
, trezorSupport ? true , trezorSupport ? true, libusb1, protobuf, python3
, libusb1
, protobuf
, python3
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "monero-gui"; pname = "monero-gui";
version = "0.17.2.2"; version = "0.17.2.2";
@ -30,7 +25,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
cmake pkg-config wrapQtAppsHook cmake pkg-config wrapQtAppsHook
(getDev qttools) (lib.getDev qttools)
]; ];
buildInputs = [ buildInputs = [
@ -41,8 +36,8 @@ stdenv.mkDerivation rec {
randomx libgcrypt libgpgerror randomx libgcrypt libgpgerror
boost libunwind libsodium pcsclite boost libunwind libsodium pcsclite
zeromq hidapi rapidjson quirc zeromq hidapi rapidjson quirc
] ++ optionals trezorSupport [ libusb1 protobuf python3 ] ] ++ lib.optionals trezorSupport [ libusb1 protobuf python3 ]
++ optionals stdenv.isDarwin [ qtmacextras ]; ++ lib.optionals stdenv.isDarwin [ qtmacextras ];
postUnpack = '' postUnpack = ''
# copy monero sources here # copy monero sources here
@ -98,7 +93,7 @@ stdenv.mkDerivation rec {
done; done;
''; '';
meta = { meta = with lib; {
description = "Private, secure, untraceable currency"; description = "Private, secure, untraceable currency";
homepage = "https://getmonero.org/"; homepage = "https://getmonero.org/";
license = licenses.bsd3; license = licenses.bsd3;

View file

@ -4,17 +4,9 @@
, zeromq, pcsclite, readline, libsodium, hidapi , zeromq, pcsclite, readline, libsodium, hidapi
, randomx, rapidjson , randomx, rapidjson
, CoreData, IOKit, PCSC , CoreData, IOKit, PCSC
, trezorSupport ? true , trezorSupport ? true, libusb1, protobuf, python3
, libusb1 ? null
, protobuf ? null
, python3 ? null
}: }:
with lib;
assert stdenv.isDarwin -> IOKit != null;
assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "monero"; pname = "monero";
version = "0.17.2.0"; version = "0.17.2.0";
@ -45,8 +37,8 @@ stdenv.mkDerivation rec {
zeromq pcsclite readline zeromq pcsclite readline
libsodium hidapi randomx rapidjson libsodium hidapi randomx rapidjson
protobuf protobuf
] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ] ] ++ lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ]
++ optionals trezorSupport [ libusb1 protobuf python3 ]; ++ lib.optionals trezorSupport [ libusb1 protobuf python3 ];
cmakeFlags = [ cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_BUILD_TYPE=Release"
@ -54,7 +46,7 @@ stdenv.mkDerivation rec {
"-DBUILD_GUI_DEPS=ON" "-DBUILD_GUI_DEPS=ON"
"-DReadline_ROOT_DIR=${readline.dev}" "-DReadline_ROOT_DIR=${readline.dev}"
"-DRandomX_ROOT_DIR=${randomx}" "-DRandomX_ROOT_DIR=${randomx}"
] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF"; ] ++ lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
outputs = [ "out" "source" ]; outputs = [ "out" "source" ];

View file

@ -0,0 +1,67 @@
{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch
, cmake, pkg-config
, boost, openssl, unbound
, pcsclite, readline, libsodium, hidapi
, rapidjson
, curl, sqlite
, trezorSupport ? true
, libusb1
, protobuf
, python3
}:
stdenv.mkDerivation rec {
pname = "oxen";
version = "9.1.3";
src = fetchFromGitHub {
owner = "oxen-io";
repo = "oxen-core";
rev = "v${version}";
sha256 = "11g3wqn0syk47yfcsdql5737kpad8skwdxhifn2yaz9zy8n3xqqb";
fetchSubmodules = true;
};
# Required for static linking, the only supported install path
lbzmqsrc = fetchurl {
url = "https://github.com/zeromq/libzmq/releases/download/v4.3.3/zeromq-4.3.3.tar.gz";
sha512 = "4c18d784085179c5b1fcb753a93813095a12c8d34970f2e1bfca6499be6c9d67769c71c68b7ca54ff181b20390043170e89733c22f76ff1ea46494814f7095b1";
};
postPatch = ''
# remove vendored libraries
rm -r external/rapidjson
sed -i s,/lib/,/lib64/, external/loki-mq/cmake/local-libzmq//LocalLibzmq.cmake
'';
postInstall = ''
rm -R $out/lib $out/include
'';
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
boost openssl unbound
pcsclite readline
libsodium hidapi rapidjson
protobuf curl sqlite
] ++ lib.optionals trezorSupport [ libusb1 protobuf python3 ];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
# "-DUSE_DEVICE_TREZOR=ON"
# "-DBUILD_GUI_DEPS=ON"
"-DReadline_ROOT_DIR=${readline.dev}"
# It build with shared libs but doesn't install them. Fail.
# "-DBUILD_SHARED_LIBS=ON"
"-DLIBZMQ_TARBALL_URL=${lbzmqsrc}"
] ++ lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
meta = with lib; {
description = "Private cryptocurrency based on Monero";
homepage = "https://oxen.io/";
license = licenses.bsd3;
platforms = platforms.all;
maintainers = [ maintainers.viric ];
};
}

View file

@ -21,7 +21,7 @@ formats commits for you.
*/ */
{ lib, stdenv, texinfo, writeText }: { lib, stdenv, texinfo, writeText, gcc }:
self: let self: let
@ -32,7 +32,7 @@ self: let
}; };
elpaBuild = import ../../../../build-support/emacs/elpa.nix { elpaBuild = import ../../../../build-support/emacs/elpa.nix {
inherit lib stdenv texinfo writeText; inherit lib stdenv texinfo writeText gcc;
inherit (self) emacs; inherit (self) emacs;
}; };

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
sha256 = "06fj725xfhf3fwrf7dya7ijmxq3v76kfmd4lr2067a92zhlwr5pv"; sha256 = "06fj725xfhf3fwrf7dya7ijmxq3v76kfmd4lr2067a92zhlwr5pv";
}; };
phases = [ "installPhase" ]; dontConfigure = true;
installPhase = '' installPhase = ''
tar xf ${src} tar xf ${src}

View file

@ -1,6 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchurl , fetchurl
, fetchpatch
, ghostscript , ghostscript
, libpng , libpng
, makeWrapper , makeWrapper
@ -20,6 +21,15 @@ stdenv.mkDerivation rec {
sha256 = "1bm75lf9j54qpbjx8hzp6ixaayp1x9w4v3yxl6vxyw8g5m4sqdk3"; sha256 = "1bm75lf9j54qpbjx8hzp6ixaayp1x9w4v3yxl6vxyw8g5m4sqdk3";
}; };
patches = [
(fetchpatch {
name = "CVE-2021-3561.patch";
# Using Debian patch since it is not possible to download it directly from Sourceforge
url = "https://sources.debian.org/data/main/f/fig2dev/1:3.2.8-3/debian/patches/33_sanitize-color.patch";
sha256 = "1bppr3li03nj4qjibnddr2f38mpk55pcn5z6k98pf00gabq33fgs";
})
];
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [ libpng ]; buildInputs = [ libpng ];

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];
phases = [ "unpackPhase" "installPhase" ]; dontConfigure = true;
installPhase = let installPhase = let

View file

@ -1,24 +1,26 @@
{ { mkDerivation, lib
mkDerivation, lib, , extra-cmake-modules, kdoctools
extra-cmake-modules, kdoctools, , ki18n, xcb-util-cursor
ki18n, xcb-util-cursor, , kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins
kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins, , knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi
knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi, , qtbase, qtx11extras, knewstuff, kwayland, qttools, kcolorpicker, kimageannotator
qtx11extras, knewstuff, kwayland, qttools
}: }:
mkDerivation { mkDerivation {
pname = "spectacle"; pname = "spectacle";
meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
nativeBuildInputs = [ extra-cmake-modules kdoctools ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ buildInputs = [
kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor
knewstuff kwayland knewstuff kwayland kcolorpicker kimageannotator
]; ];
postPatch = '' postPatch = ''
substituteInPlace desktop/org.kde.spectacle.desktop.cmake \ substituteInPlace desktop/org.kde.spectacle.desktop.cmake \
--replace "Exec=@QtBinariesDir@/qdbus" "Exec=${lib.getBin qttools}/bin/qdbus" --replace "Exec=@QtBinariesDir@/qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
''; '';
propagatedUserEnvPkgs = [ kipi-plugins libkipi ]; propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
meta = with lib; {
maintainers = with maintainers; [ ttuegel ];
broken = versionOlder qtbase.version "5.15";
};
} }

View file

@ -21,11 +21,11 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "archivy"; pname = "archivy";
version = "1.3.1"; version = "1.4.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-g7H22zJOQuxSmoJ3373eRcbderC67vkuiLN1CgaytFM="; sha256 = "sha256-wQuR7cltDLr2u8BQ851MSjKmeLW8mQ/3bdEF5c9nxL0=";
}; };
# Relax some dependencies # Relax some dependencies
@ -38,7 +38,10 @@ buildPythonApplication rec {
--replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \ --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \
--replace 'requests ==' 'requests >=' \ --replace 'requests ==' 'requests >=' \
--replace 'validators ==' 'validators >=' \ --replace 'validators ==' 'validators >=' \
--replace 'tinydb ==' 'tinydb >=' --replace 'tinydb ==' 'tinydb >=' \
--replace 'Flask_WTF == 0.14.3' 'Flask_WTF' \
--replace 'Werkzeug ==' 'Werkzeug >=' \
--replace 'Flask ==' 'Flask >='
''; '';
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -1,5 +1,6 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, cairo, pango, pkg-config, wayland-protocols { lib, stdenv, fetchFromGitHub, meson, ninja, cairo, pango, pkg-config, wayland-protocols
, glib, wayland, libxkbcommon, makeWrapper , glib, wayland, libxkbcommon, makeWrapper, wayland-scanner
, fetchpatch
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,9 +16,19 @@ stdenv.mkDerivation rec {
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
nativeBuildInputs = [ meson ninja pkg-config makeWrapper ]; depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config makeWrapper wayland-scanner ];
buildInputs = [ cairo pango wayland-protocols glib wayland libxkbcommon ]; buildInputs = [ cairo pango wayland-protocols glib wayland libxkbcommon ];
# Patch to support cross-compilation, see https://github.com/nyyManni/dmenu-wayland/pull/23/
patches = [
# can be removed when https://github.com/nyyManni/dmenu-wayland/pull/23 is included
(fetchpatch {
url = "https://github.com/nyyManni/dmenu-wayland/commit/3434410de5dcb007539495395f7dc5421923dd3a.patch";
sha256 = "sha256-im16kU8RWrCY0btYOYjDp8XtfGEivemIPlhwPX0C77o=";
})
];
postInstall = '' postInstall = ''
wrapProgram $out/bin/dmenu-wl_run \ wrapProgram $out/bin/dmenu-wl_run \
--prefix PATH : $out/bin --prefix PATH : $out/bin

View file

@ -36,7 +36,7 @@ buildGoModule rec {
description = "Command line todo list with super-reliable git sync"; description = "Command line todo list with super-reliable git sync";
homepage = src.meta.homepage; homepage = src.meta.homepage;
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ stianlagstad foxit64 ]; maintainers = with maintainers; [ stianlagstad ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -19,7 +19,6 @@ buildGoModule rec {
description = "A simple text-based Minecraft modpack manager"; description = "A simple text-based Minecraft modpack manager";
license = licenses.agpl3; license = licenses.agpl3;
homepage = src.meta.homepage; homepage = src.meta.homepage;
maintainers = with maintainers; [ foxit64 ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -0,0 +1,41 @@
{ lib, python3Packages, fetchFromGitHub, gtk-layer-shell, gtk3, gobject-introspection, wrapGAppsHook, wlr-randr }:
python3Packages.buildPythonPackage rec {
pname = "nwg-wrapper";
version = "0.0.1";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = pname;
rev = "v${version}";
sha256 = "1rpkcjr0chmgsfkan88lsi476bamg9a6y7h0x9zsh60a9rdf7dl8";
};
nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
buildInputs = [ gtk3 gtk-layer-shell ];
propagatedBuildInputs = with python3Packages; [ i3ipc pygobject3 ];
# ValueError: Namespace GtkLayerShell not available
strictDeps = false;
# No tests
doCheck = false;
preFixup = ''
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
--prefix PATH : "${lib.makeBinPath [ wlr-randr ]}"
)
'';
pythonImportsCheck = [ "nwg_wrapper" ];
meta = with lib; {
description = "Wrapper to display a script output or a text file content on the desktop in sway or other wlroots-based compositors";
homepage = "https://github.com/nwg-piotr/nwg-wrapper/";
license = licenses.mit;
maintainers = with maintainers; [ artturin ];
};
}

View file

@ -36,14 +36,14 @@ let
}); });
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "phoc"; pname = "phoc";
version = "0.7.0"; version = "0.7.1";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "source.puri.sm"; domain = "source.puri.sm";
owner = "Librem5"; owner = "Librem5";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0afiyr2slg38ksrqn19zygsmjy9k5bpwv6n7zjas3s5djr6hch45"; sha256 = "0n188xa2pwl4258naxhz45cvipcid8y1zvlbddll9xydrrh9bwqn";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -19,14 +19,14 @@ for entry in feed.entries:
continue continue
url = requests.get(entry.link).url.split('?')[0] url = requests.get(entry.link).url.split('?')[0]
content = entry.content[0].value content = entry.content[0].value
content = html_tags.sub('', content) # Remove any HTML tags
if re.search(r'Linux', content) is None: if re.search(r'Linux', content) is None:
continue continue
#print(url) # For debugging purposes #print(url) # For debugging purposes
version = re.search(r'\d+(\.\d+){3}', content).group(0) version = re.search(r'\d+(\.\d+){3}', content).group(0)
print('chromium: TODO -> ' + version) print('chromium: TODO -> ' + version)
print('\n' + url) print('\n' + url)
if fixes := re.search(r'This update includes .+ security fixes\.', content): if fixes := re.search(r'This update includes .+ security fixes\.', content).group(0):
fixes = html_tags.sub('', fixes.group(0))
zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content) zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content)
if zero_days: if zero_days:
fixes += " " + zero_days.group(0) fixes += " " + zero_days.group(0)

View file

@ -1,8 +1,8 @@
{ {
"stable": { "stable": {
"version": "91.0.4472.114", "version": "91.0.4472.164",
"sha256": "0wbyiwbdazgjjgj9vs56x26q3g9r80a57gfl0f2rfl1j7xwgxiy1", "sha256": "1g96hk72ds2b0aymgw7yjr0akgx7mkp17i99nk511ncnmni6zrc4",
"sha256bin64": "00ac1dyqxpxy1j11jvc5j35bgc629n2f2pll3912gzih4ir0vrys", "sha256bin64": "1j6p2gqlikaibcwa40k46dsm9jlrpbj21lv1snnjw8apjnjfd2wr",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-04-06", "version": "2021-04-06",
@ -18,9 +18,9 @@
} }
}, },
"beta": { "beta": {
"version": "92.0.4515.93", "version": "92.0.4515.101",
"sha256": "077i1rw84cgcmg2k0p1ycg5pwvnhgsa3qdfsr7icrn7gmagagqd0", "sha256": "1jcas265hhlqd9f63h4zw4n4xsl26c5zmjlmbf1px5icvcjfb2xd",
"sha256bin64": "1gf4qv8wvaagdgsinf2gprx9wcfgm8jql6870k50bi26mjqv9800", "sha256bin64": "0sb5l5nzfzisvrnhcfwhdh9rn6z6pkzqz4p92c40q2mlhmjrfhj0",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-05-07", "version": "2021-05-07",

View file

@ -32,10 +32,10 @@ rec {
firefox-esr-78 = common rec { firefox-esr-78 = common rec {
pname = "firefox-esr"; pname = "firefox-esr";
ffversion = "78.11.0esr"; ffversion = "78.12.0esr";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4"; sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a";
}; };
meta = { meta = {

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "cloudflared"; pname = "cloudflared";
version = "2021.6.0"; version = "2021.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cloudflare"; owner = "cloudflare";
repo = "cloudflared"; repo = "cloudflared";
rev = version; rev = version;
sha256 = "sha256-cX0kdBPDgwjHphxGWrnXohHPp1nzs4SnvCry4AxMtp0="; sha256 = "sha256-FQejuKBDUCCcEq9ZmSMigdvqowTurCYEhOiXQN7exIE=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -2,7 +2,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "octant"; pname = "octant";
version = "0.21.0"; version = "0.22.0";
src = src =
let let
@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
}; };
in in
fetchsrc version { fetchsrc version {
x86_64-linux = "sha256-Ben2wAquHADWBv1MEfPWxs96pLz1bK2F6bLoYVTSkng="; x86_64-linux = "sha256-1/vyV6pUqovVpovTYFF4d75wJvtTNdrbLZyjw1lLacA=";
aarch64-linux = "sha256-1kK0Gu4cQYk+QDJJJiiDan4SnP3Xjr8nLOBtv26UDV4="; aarch64-linux = "sha256-1duNW0Edj0jrpv/RMrebtZF4ph6j3PXCJ2RFejOopGQ=";
x86_64-darwin = "sha256-gOkHpUTWKrikKYZmkfgck3Lf3g5Pakcn0i2A9Hd07UE="; x86_64-darwin = "sha256-Ur5jBPk5hA6cGg+pPf36Ijh94gWEdaWlJK3yCMBYyEU=";
aarch64-darwin = "sha256-Xpl8odVXw4WzF7CEZ+Bbxa6oQDBv9VMzHCNOjIcFGzE="; aarch64-darwin = "sha256-RaiXW+MUihk291UWmrf6gLpyrd5stIkhyWNFEQ0daCk=";
}; };
dontConfigure = true; dontConfigure = true;

View file

@ -2,7 +2,7 @@
let let
pname = "octant-desktop"; pname = "octant-desktop";
version = "0.21.0"; version = "0.22.0";
name = "${pname}-${version}"; name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system; inherit (stdenv.hostPlatform) system;
@ -15,8 +15,8 @@ let
src = fetchurl { src = fetchurl {
url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/Octant-${version}.${suffix}"; url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/Octant-${version}.${suffix}";
sha256 = { sha256 = {
x86_64-linux = "sha256-Woridi8uGsxvccdeaDzVLs+2YrRKUnm3WbX5LhorM1Y="; x86_64-linux = "sha256-xMdNoH0UE/KLIQ0DjJfb+ZB/q2F+kyFEncrQ9YYJgE0=";
x86_64-darwin = "sha256-NF3bm8WFEs4kgrUp+7qCbj6Z6pUMRUp7h4nhJQDJnoY="; x86_64-darwin = "sha256-y3fmxrsQ0hCa1wuMiRGHf79kpi25qXv/idKrVT87oc0=";
}.${system}; }.${system};
}; };

View file

@ -2,20 +2,18 @@
buildGoModule rec { buildGoModule rec {
pname = "tektoncd-cli"; pname = "tektoncd-cli";
version = "0.19.1"; version = "0.20.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tektoncd"; owner = "tektoncd";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-duJSTk5LmJWbaVYybZZHWDe8E/ZqZLCCsdPIiH5d/G4="; sha256 = "sha256-aVR1xNmL6M/m+1znt70vrCtuABCqDz0sDp8mDFI2uIg=";
}; };
vendorSha256 = null; vendorSha256 = null;
preBuild = '' ldflags = [ "-s" "-w" "-X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}" ];
buildFlagsArray+=("-ldflags" "-s -w -X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}")
'';
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
@ -27,7 +25,7 @@ buildGoModule rec {
# Some tests try to write to the home dir # Some tests try to write to the home dir
export HOME="$TMPDIR" export HOME="$TMPDIR"
# Change the golden files to match our desired version # Change the golden files to match our desired version
sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden sed -i "s/dev/${version}/" pkg/cmd/version/testdata/{TestGetVersions-,TestGetComponentVersions/}*.golden
''; '';
postInstall = '' postInstall = ''
@ -43,8 +41,7 @@ buildGoModule rec {
installCheckPhase = '' installCheckPhase = ''
runHook preInstallCheck runHook preInstallCheck
$out/bin/tkn --help $out/bin/tkn --help
# New tkn version functionality outputs empty https://github.com/tektoncd/cli/issues/1389 $out/bin/tkn version | grep "Client version: ${version}"
# $out/bin/tkn version | grep "Client version: ${version}"
runHook postInstallCheck runHook postInstallCheck
''; '';

View file

@ -5,6 +5,7 @@
, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence
, mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu , mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu
, writeScript, common-updater-scripts
}: }:
let let
@ -71,7 +72,15 @@ in stdenv.mkDerivation rec {
mimeType = "x-scheme-handler/discord"; mimeType = "x-scheme-handler/discord";
}; };
passthru.updateScript = ./update-discord.sh; passthru.updateScript = writeScript "discord-update-script" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
set -eou pipefail;
url=$(curl -sI "https://discordapp.com/api/download/${builtins.replaceStrings ["discord-" "discord"] ["" "stable"] pname}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
version=''${url##https://dl*.discordapp.net/apps/linux/}
version=''${version%%/*.tar.gz}
update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix
'';
meta = with lib; { meta = with lib; {
description = "All-in-one cross-platform voice and text chat for gamers"; description = "All-in-one cross-platform voice and text chat for gamers";

View file

@ -27,10 +27,10 @@ in {
pname = "discord-canary"; pname = "discord-canary";
binaryName = "DiscordCanary"; binaryName = "DiscordCanary";
desktopName = "Discord Canary"; desktopName = "Discord Canary";
version = "0.0.125"; version = "0.0.126";
src = fetchurl { src = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "0ly5a6l7rvl54mc39xma14jrcrf11q3ndnkkr16by5hy3palmz9g"; sha256 = "EraTDRKd6t0c9U68tSRdGkeB1hfqNS4KUewEXwkL8io=";
}; };
}; };
}.${branch} }.${branch}

View file

@ -1,36 +0,0 @@
#!/usr/bin/env bash
# script to generate ./default.nix
set -e
exec >"${BASH_SOURCE%/*}/default.nix"
cat <<EOF
{ branch ? "stable", pkgs }:
# Generated by ./update-discord.sh
let
inherit (pkgs) callPackage fetchurl;
in {
EOF
for branch in "" ptb canary; do
url=$(curl -sI "https://discordapp.com/api/download${branch:+/}${branch}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
version=${url##https://dl*.discordapp.net/apps/linux/}
version=${version%%/*.tar.gz}
echo " ${branch:-stable} = callPackage ./base.nix rec {"
echo " pname = \"discord${branch:+-}${branch}\";"
case $branch in
"") suffix="" ;;
ptb) suffix="PTB" ;;
canary) suffix="Canary" ;;
esac
echo " binaryName = \"Discord${suffix}\";"
echo " desktopName = \"Discord${suffix:+ }${suffix}\";"
echo " version = \"${version}\";"
echo " src = fetchurl {"
echo " url = \"${url//${version}/\$\{version\}}\";"
echo " sha256 = \"$(nix-prefetch-url "$url")\";"
echo " };"
echo " };"
done
echo "}.\${branch}"

View file

@ -3,56 +3,58 @@
, fetchFromGitLab , fetchFromGitLab
, pkg-config , pkg-config
, cmake , cmake
, qtquickcontrols2
, qtmultimedia
, qtgraphicaleffects
, qtkeychain
, libpulseaudio
, olm
, libsecret
, cmark , cmark
, extra-cmake-modules , extra-cmake-modules
, kconfig
, kdbusaddons
, ki18n
, kirigami2 , kirigami2
, kitemmodels , kitemmodels
, ki18n
, knotifications , knotifications
, kdbusaddons
, kconfig
, libquotient
, kquickimageedit , kquickimageedit
, libpulseaudio
, libquotient
, libsecret
, olm
, qqc2-desktop-style
, qtgraphicaleffects
, qtkeychain
, qtmultimedia
, qtquickcontrols2
}: }:
mkDerivation rec { mkDerivation rec {
pname = "neochat"; pname = "neochat";
version = "1.1.1"; version = "1.2";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "invent.kde.org"; domain = "invent.kde.org";
owner = "network"; owner = "network";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-HvLPsU+fxlyPDP7i9OSnZ/C1RjouOQCp+4WCl6FlFJo="; sha256 = "sha256-Kpv7BY/qS0A3xFlYFhz1RRNwQVsyhOTHHGDbWRTTv1I=";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
buildInputs = [ buildInputs = [
qtkeychain
qtquickcontrols2
qtmultimedia
qtgraphicaleffects
olm
libsecret
cmark cmark
kconfig
kdbusaddons
ki18n
kirigami2 kirigami2
kitemmodels kitemmodels
ki18n
knotifications knotifications
kdbusaddons
kconfig
libquotient
kquickimageedit kquickimageedit
libpulseaudio libpulseaudio
libquotient
libsecret
olm
qtgraphicaleffects
qtkeychain
qtmultimedia
qtquickcontrols2
qqc2-desktop-style
]; ];
meta = with lib; { meta = with lib; {

View file

@ -2,8 +2,9 @@
, gtkspell2, aspell , gtkspell2, aspell
, gst_all_1, startupnotification, gettext , gst_all_1, startupnotification, gettext
, perlPackages, libxml2, nss, nspr, farstream , perlPackages, libxml2, nss, nspr, farstream
, libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn , libXScrnSaver, avahi, dbus, dbus-glib, intltool, libidn
, lib, python, libICE, libXext, libSM , lib, python3, libICE, libXext, libSM
, libgnt, ncurses
, cyrus_sasl ? null , cyrus_sasl ? null
, openssl ? null , openssl ? null
, gnutls ? null , gnutls ? null
@ -16,28 +17,27 @@
let unwrapped = stdenv.mkDerivation rec { let unwrapped = stdenv.mkDerivation rec {
pname = "pidgin"; pname = "pidgin";
majorVersion = "2"; majorVersion = "2";
version = "${majorVersion}.13.0"; version = "${majorVersion}.14.6";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2"; url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2";
sha256 = "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"; sha256 = "bb45f7c032f9efd6922a5dbf2840995775e5584771b23992d04f6eff7dff5336";
}; };
inherit nss ncurses;
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
buildInputs = let buildInputs = let
python-with-dbus = python.withPackages (pp: with pp; [ dbus-python ]); python-with-dbus = python3.withPackages (pp: with pp; [ dbus-python ]);
in [ in [
aspell startupnotification aspell startupnotification
gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
libxml2 nss nspr libxml2 nss nspr
libXScrnSaver ncurses python-with-dbus libXScrnSaver python-with-dbus
avahi dbus dbus-glib intltool libidn avahi dbus dbus-glib intltool libidn
libICE libXext libSM cyrus_sasl libICE libXext libSM cyrus_sasl
libgnt ncurses # optional: build finch - the console UI
] ]
++ (lib.optional (openssl != null) openssl) ++ (lib.optional (openssl != null) openssl)
++ (lib.optional (gnutls != null) gnutls) ++ (lib.optional (gnutls != null) gnutls)
@ -62,6 +62,7 @@ let unwrapped = stdenv.mkDerivation rec {
"--disable-meanwhile" "--disable-meanwhile"
"--disable-nm" "--disable-nm"
"--disable-tcl" "--disable-tcl"
"--disable-gevolution"
] ]
++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ]) ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]) ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])

View file

@ -1,14 +1,45 @@
{ lib, mkDerivation, fetchFromGitHub, cmake { lib
, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine , mkDerivation
, libidn, qca-qt5, libXScrnSaver, hunspell , fetchFromGitHub
, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c , cmake
, qtbase
, qtmultimedia
, qtx11extras
, qttools
, libidn
, qca-qt5
, libXScrnSaver
, hunspell
, libsecret
, libgcrypt
, libotr
, html-tidy
, libgpgerror
, libsignal-protocol-c
, usrsctp , usrsctp
# Voice messages , chatType ? "basic" # See the assertion below for available options
, qtwebkit
, qtwebengine
, enablePlugins ? true
# Voice messages
, voiceMessagesSupport ? true , voiceMessagesSupport ? true
, gst_all_1 , gst_all_1
, enablePsiMedia ? false
, pkg-config
}: }:
assert builtins.elem (lib.toLower chatType) [
"basic" # Basic implementation, no web stuff involved
"webkit" # Legacy one, based on WebKit (see https://wiki.qt.io/Qt_WebKit)
"webengine" # QtWebEngine (see https://wiki.qt.io/QtWebEngine)
];
assert enablePsiMedia -> enablePlugins;
mkDerivation rec { mkDerivation rec {
pname = "psi-plus"; pname = "psi-plus";
version = "1.5.1549"; version = "1.5.1549";
@ -21,19 +52,40 @@ mkDerivation rec {
}; };
cmakeFlags = [ cmakeFlags = [
"-DENABLE_PLUGINS=ON" "-DCHAT_TYPE=${chatType}"
"-DENABLE_PLUGINS=${if enablePlugins then "ON" else "OFF"}"
"-DBUILD_PSIMEDIA=${if enablePsiMedia then "ON" else "OFF"}"
]; ];
nativeBuildInputs = [ cmake qttools ]; nativeBuildInputs = [
cmake
qttools
] ++ lib.optionals enablePsiMedia [
pkg-config
];
buildInputs = [ buildInputs = [
qtbase qtmultimedia qtx11extras qtwebengine qtbase
libidn qca-qt5 libXScrnSaver hunspell qtmultimedia
libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c qtx11extras
libidn
qca-qt5
libXScrnSaver
hunspell
libsecret
libgcrypt
libotr
html-tidy
libgpgerror
libsignal-protocol-c
usrsctp usrsctp
] ++ lib.optionals voiceMessagesSupport [ ] ++ lib.optionals voiceMessagesSupport [
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good gst_all_1.gst-plugins-good
] ++ lib.optionals (chatType == "webkit") [
qtwebkit
] ++ lib.optionals (chatType == "webengine") [
qtwebengine
]; ];
preFixup = lib.optionalString voiceMessagesSupport '' preFixup = lib.optionalString voiceMessagesSupport ''

View file

@ -28,7 +28,7 @@ let
else ""); else "");
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; pname = "signal-desktop";
version = "5.8.0"; # Please backport all updates to the stable channel. version = "5.9.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "0icwmlnnnlsj2g1p2q4lf7hlhys3rakaim7bah5qkmhwkrzkk30y"; sha256 = "1pmyi9b0b5h6mi6dwml41x4igy8rfpsv6j67izh78m5gla8wp34h";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -36,9 +36,9 @@ appimageTools.wrapType2 {
git git
glib glib
glibc glibc
gnome.gdk_pixbuf gdk-pixbuf
gnome.gtk gtk3
gnome.gtk.dev gtk3.dev
gnome.zenity gnome.zenity
gnome2.GConf gnome2.GConf
gnumake gnumake
@ -48,7 +48,7 @@ appimageTools.wrapType2 {
gtk3.dev gtk3.dev
gtk3-x11 gtk3-x11
gtk3-x11.dev gtk3-x11.dev
kdialog plasma5Packages.kdialog
libappindicator-gtk2.out libappindicator-gtk2.out
libexif libexif
(libjpeg.override { enableJpeg8 = true; }).out (libjpeg.override { enableJpeg8 = true; }).out
@ -70,12 +70,12 @@ appimageTools.wrapType2 {
sqlite.dev sqlite.dev
udev udev
unzip unzip
utillinux util-linux
watch watch
wget wget
which which
wrapGAppsHook wrapGAppsHook
xdg_utils xdg-utils
xorg.libX11 xorg.libX11
xorg.libXau xorg.libXau
xorg.libXaw xorg.libXaw

View file

@ -4,8 +4,8 @@ stdenv.mkDerivation {
name = "gappa-1.4.0"; name = "gappa-1.4.0";
src = fetchurl { src = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/file/38044/gappa-1.4.0.tar.gz"; url = "https://gforge.inria.fr/frs/download.php/file/38436/gappa-1.4.0.tar.gz";
sha256 = "sha256-/IDIf5XnFBqVllgH5GtQ6C8g7vxheaVcXNoZiXlsPGA="; sha256 = "12x42z901pr05ldmparqdi8sq9s7fxbavhzk2dbq3l6hy247dwbb";
}; };
buildInputs = [ gmp mpfr boost.dev ]; buildInputs = [ gmp mpfr boost.dev ];

View file

@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
sha256 = "169kshjq4cf4i9v92azv0xaflrnik5686w7fwcgdhd6qkbzflzl6"; sha256 = "169kshjq4cf4i9v92azv0xaflrnik5686w7fwcgdhd6qkbzflzl6";
}; };
dontConfigure = true;
dontStrip = true; dontStrip = true;
phases = "unpackPhase installPhase";
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp -R bin $out/libexec cp -R bin $out/libexec

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; dontConfigure = true;
installPhase = '' installPhase = ''
mkdir -p $out/share mkdir -p $out/share
@ -28,6 +28,5 @@ stdenv.mkDerivation rec {
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ timor ]; maintainers = with lib.maintainers; [ timor ];
inherit version;
}; };
} }

View file

@ -8,10 +8,10 @@ let allVersions = with lib; flip map
# N.B. Versions in this list should be ordered from newest to oldest. # N.B. Versions in this list should be ordered from newest to oldest.
[ [
{ {
version = "12.3.0"; version = "12.3.1";
lang = "en"; lang = "en";
language = "English"; language = "English";
sha256 = "045df045f6e796ded59f64eb2e0f1949ac88dcba1d5b6e05fb53ea0a4aed7215"; sha256 = "51b9cab12fd91b009ea7ad4968a2c8a59e94dc55d2e6cc1d712acd5ba2c4d509";
} }
{ {
version = "11.3.0"; version = "11.3.0";

View file

@ -1,6 +1,27 @@
{ lib, stdenv, fetchurl, fetchpatch, cmake, pcre, pkg-config, python2 { lib
, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, xz, gsl_1, xxHash , stdenv
, Cocoa, OpenGL, noSplash ? false }: , fetchurl
, fetchpatch
, cmake
, pcre
, pkg-config
, python2
, libX11
, libXpm
, libXft
, libXext
, libGLU
, libGL
, zlib
, libxml2
, lz4
, xz
, gsl_1
, xxHash
, Cocoa
, OpenGL
, noSplash ? false
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "root"; pname = "root";
@ -15,7 +36,7 @@ stdenv.mkDerivation rec {
buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash ] buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash ]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ] ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ] ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
; ;
patches = [ patches = [
./sw_vers_root5.patch ./sw_vers_root5.patch

View file

@ -1,23 +1,73 @@
{ stdenv, lib, fetchurl, makeWrapper, cmake, git, ftgl, gl2ps, glew, gsl { stdenv
, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre, nlohmann_json , lib
, pkg-config, python, xxHash, zlib, zstd , fetchurl
, libAfterImage, giflib, libjpeg, libtiff, libpng , makeWrapper
, Cocoa, CoreSymbolication, OpenGL, noSplash ? false }: , cmake
, git
, ftgl
, gl2ps
, glew
, gsl
, libX11
, libXpm
, libXft
, libXext
, libGLU
, libGL
, libxml2
, lz4
, xz
, pcre
, nlohmann_json
, pkg-config
, python
, xxHash
, zlib
, zstd
, libAfterImage
, giflib
, libjpeg
, libtiff
, libpng
, Cocoa
, CoreSymbolication
, OpenGL
, noSplash ? false
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "root"; pname = "root";
version = "6.24.00"; version = "6.24.02";
src = fetchurl { src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz"; url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
sha256 = "12crjzd7pzx5qpk2pb3z0rhmxlw5gsqaqzfl48qiq8c9l940b8wx"; sha256 = "sha256-BQfhCV4nnMxyQPZR0llmAkMlF5+oWhJZtpS1ZyOtfBw=";
}; };
nativeBuildInputs = [ makeWrapper cmake pkg-config git ]; nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
buildInputs = [ ftgl gl2ps glew pcre zlib zstd libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng nlohmann_json python.pkgs.numpy ] buildInputs = [
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ] ftgl
++ lib.optionals (stdenv.isDarwin) [ Cocoa CoreSymbolication OpenGL ] gl2ps
; glew
pcre
zlib
zstd
libxml2
lz4
xz
gsl
xxHash
libAfterImage
giflib
libjpeg
libtiff
libpng
nlohmann_json
python.pkgs.numpy
]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa CoreSymbolication OpenGL ]
;
patches = [ patches = [
./sw_vers.patch ./sw_vers.patch

View file

@ -1,15 +1,14 @@
{ lib, stdenv, fetchFromGitHub, coreutils, gnugrep, gnused, makeWrapper, git { lib, stdenv, fetchFromGitHub, coreutils, git, gnugrep, gnused, makeWrapper, inotify-tools }:
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "git-sync"; pname = "git-sync";
version = "20151024"; version = "unstable-2021-07-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "simonthum"; owner = "simonthum";
repo = "git-sync"; repo = "git-sync";
rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7"; rev = "7d3d34bf3ee2483fba00948f5b97f964b849a590";
sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz"; sha256 = "sha256-PuYREW5NBkYF1tlcLTbOI8570nvHn5ifN8OIInfNNxI=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -18,10 +17,11 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp -a git-sync $out/bin/git-sync cp -a git-* $out/bin/
''; '';
wrapperPath = with lib; makeBinPath [ wrapperPath = with lib; makeBinPath [
inotify-tools
coreutils coreutils
git git
gnugrep gnugrep

View file

@ -16,12 +16,12 @@ with lib;
buildGoPackage rec { buildGoPackage rec {
pname = "gitea"; pname = "gitea";
version = "1.14.4"; version = "1.14.5";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI # not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl { src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz"; url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-sl/Vml8QmwZEAd2PIYWQcP7s6NYeomGJQGKhRiddtoo="; sha256 = "sha256-8nwLVpe/5IjXJqO179lN80B/3WGUL3LKM8OWdh/bYOE=";
}; };
unpackPhase = '' unpackPhase = ''

View file

@ -13,11 +13,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gitkraken"; pname = "gitkraken";
version = "7.6.1"; version = "7.7.0";
src = fetchzip { src = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz"; url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
sha256 = "sha256-wpfTozXxanZkYtYQHY950PLsVO4lXLt5OOP/xDCrFEw="; sha256 = "0zb94ipi777qkznxpgb7ah31mx9b63713k92vhxhz4glna59lvk3";
}; };
dontBuild = true; dontBuild = true;

View file

@ -8,7 +8,7 @@ rec {
, moby-src , moby-src
, runcRev, runcSha256 , runcRev, runcSha256
, containerdRev, containerdSha256 , containerdRev, containerdSha256
, tiniRev, tiniSha256, buildxSupport ? false , tiniRev, tiniSha256, buildxSupport ? true
# package dependencies # package dependencies
, stdenv, fetchFromGitHub, buildGoPackage , stdenv, fetchFromGitHub, buildGoPackage
, makeWrapper, installShellFiles, pkg-config, glibc , makeWrapper, installShellFiles, pkg-config, glibc
@ -77,6 +77,10 @@ rec {
extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]); extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]);
postPatch = ''
patchShebangs hack/make.sh hack/make/
'';
buildPhase = '' buildPhase = ''
export GOCACHE="$TMPDIR/go-cache" export GOCACHE="$TMPDIR/go-cache"
# build engine # build engine
@ -88,11 +92,6 @@ rec {
cd - cd -
''; '';
postPatch = ''
patchShebangs .
substituteInPlace ./hack/make.sh --replace libsystemd-journal libsystemd
'';
installPhase = '' installPhase = ''
cd ./go/src/${goPackagePath} cd ./go/src/${goPackagePath}
install -Dm755 ./bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd install -Dm755 ./bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
@ -144,6 +143,14 @@ rec {
sqlite lvm2 btrfs-progs systemd libseccomp sqlite lvm2 btrfs-progs systemd libseccomp
] ++ optionals (buildxSupport) [ docker-buildx ]; ] ++ optionals (buildxSupport) [ docker-buildx ];
postPatch = ''
patchShebangs man scripts/build/
substituteInPlace ./scripts/build/.variables --replace "set -eu" ""
'' + optionalString buildxSupport ''
substituteInPlace ./cli-plugins/manager/manager_unix.go --replace /usr/libexec/docker/cli-plugins \
${lib.strings.makeSearchPathOutput "bin" "libexec/docker/cli-plugins" [docker-buildx]}
'';
# Keep eyes on BUILDTIME format - https://github.com/docker/cli/blob/${version}/scripts/build/.variables # Keep eyes on BUILDTIME format - https://github.com/docker/cli/blob/${version}/scripts/build/.variables
buildPhase = '' buildPhase = ''
export GOCACHE="$TMPDIR/go-cache" export GOCACHE="$TMPDIR/go-cache"
@ -162,14 +169,6 @@ rec {
cd - cd -
''; '';
postPatch = ''
patchShebangs .
substituteInPlace ./scripts/build/.variables --replace "set -eu" ""
'' + optionalString buildxSupport ''
substituteInPlace ./cli-plugins/manager/manager_unix.go --replace /usr/libexec/docker/cli-plugins \
${lib.strings.makeSearchPathOutput "bin" "libexec/docker/cli-plugins" [docker-buildx]}
'';
outputs = ["out" "man"]; outputs = ["out" "man"];
installPhase = '' installPhase = ''
@ -211,7 +210,7 @@ rec {
homepage = "https://www.docker.com/"; homepage = "https://www.docker.com/";
description = "An open source project to pack, ship and run any application as a lightweight container"; description = "An open source project to pack, ship and run any application as a lightweight container";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ offline tailhook vdemeester periklis ]; maintainers = with maintainers; [ offline tailhook vdemeester periklis mikroskeem ];
platforms = with platforms; linux ++ darwin; platforms = with platforms; linux ++ darwin;
}; };
@ -222,14 +221,14 @@ rec {
# Get revisions from # Get revisions from
# https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/* # https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
docker_20_10 = callPackage dockerGen rec { docker_20_10 = callPackage dockerGen rec {
version = "20.10.6"; version = "20.10.7";
rev = "v${version}"; rev = "v${version}";
sha256 = "15kknb26vyzjgqmn8r81a1sy1i5br6bvngqd5xljihppnxvp2gvl"; sha256 = "1r854jrjph4v1n5lr82z0cl0241ycili4qr3qh3k3bmqx790cds3";
moby-src = fetchFromGitHub { moby-src = fetchFromGitHub {
owner = "moby"; owner = "moby";
repo = "moby"; repo = "moby";
rev = "v${version}"; rev = "v${version}";
sha256 = "1l4ra9bsvydaxd2fy7dgxp7ynpp0mrlwvcdhxiafw596559ab6qk"; sha256 = "0xhn11kgcbzda4z9j0rflvq0nfivizh3jrzhanwn5vnghafy4zqw";
}; };
runcRev = "b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7"; # v1.0.0-rc95 runcRev = "b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7"; # v1.0.0-rc95
runcSha256 = "18sbvmlvb6kird4w3rqsfrjdj7n25firabvdxsl0rxjfy9r1g2xb"; runcSha256 = "18sbvmlvb6kird4w3rqsfrjdj7n25firabvdxsl0rxjfy9r1g2xb";

View file

@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, pkg-config { lib, stdenv, fetchurl, pkg-config
, libjpeg, libtiff, libpng, freetype , libtiff
, fltk, gtk , fltk, gtk
, libX11, libXext, libICE , libICE, libSM
, dbus , dbus
, fetchpatch , fetchpatch
}: }:
@ -24,8 +24,16 @@ stdenv.mkDerivation rec {
}) })
]; ];
postPatch = ''
# Causes fatal ldconfig cache generation attempt on non-NixOS Linux
for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do
substituteInPlace $mkfile \
--replace 'test -w /etc' 'false'
done
'';
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ libjpeg libtiff libpng freetype fltk gtk libX11 libXext libICE dbus dbus ]; buildInputs = [ libtiff fltk gtk libICE libSM dbus ];
# A strange type of bug: dbus is not immediately found by pkg-config # A strange type of bug: dbus is not immediately found by pkg-config
preConfigure = '' preConfigure = ''

View file

@ -37,14 +37,14 @@ let
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "phosh"; pname = "phosh";
version = "0.11.0"; version = "0.12.0";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "source.puri.sm"; domain = "source.puri.sm";
owner = "Librem5"; owner = "Librem5";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "104qib4blh32s7bg6j3xza3s9syrxrvyh2wpyh5yx7v5wqarr20x"; sha256 = "1s0lgq04qz562iri535wpwvfkmmngdpclyl329cf7rc9ihy1kjvs";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,6 +1,6 @@
# builder for Emacs packages built for packages.el # builder for Emacs packages built for packages.el
{ lib, stdenv, emacs, texinfo, writeText }: { lib, stdenv, emacs, texinfo, writeText, gcc }:
with lib; with lib;
@ -19,7 +19,7 @@ let
in in
import ./generic.nix { inherit lib stdenv emacs texinfo writeText; } ({ import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; } ({
phases = "installPhase fixupPhase distPhase"; phases = "installPhase fixupPhase distPhase";

View file

@ -1,6 +1,6 @@
# generic builder for Emacs packages # generic builder for Emacs packages
{ lib, stdenv, emacs, texinfo, writeText, ... }: { lib, stdenv, emacs, texinfo, writeText, gcc, ... }:
with lib; with lib;
@ -72,6 +72,8 @@ stdenv.mkDerivation ({
LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib"; LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
nativeBuildInputs = [ gcc ];
addEmacsNativeLoadPath = true; addEmacsNativeLoadPath = true;
postInstall = '' postInstall = ''

View file

@ -1,7 +1,7 @@
# builder for Emacs packages built for packages.el # builder for Emacs packages built for packages.el
# using MELPA package-build.el # using MELPA package-build.el
{ lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText }: { lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText, gcc }:
with lib; with lib;
@ -28,7 +28,7 @@ let
in in
import ./generic.nix { inherit lib stdenv emacs texinfo writeText; } ({ import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; } ({
ename = ename =
if ename == null if ename == null

View file

@ -32,7 +32,7 @@ in customEmacsPackages.emacs.pkgs.withPackages (epkgs: [ epkgs.evil epkgs.magit
*/ */
{ lib, lndir, makeWrapper, runCommand }: self: { lib, lndir, makeWrapper, runCommand, gcc }: self:
with lib; with lib;
@ -65,7 +65,10 @@ runCommand
# Store all paths we want to add to emacs here, so that we only need to add # Store all paths we want to add to emacs here, so that we only need to add
# one path to the load lists # one path to the load lists
deps = runCommand "emacs-packages-deps" deps = runCommand "emacs-packages-deps"
{ inherit explicitRequires lndir emacs; } {
inherit explicitRequires lndir emacs;
nativeBuildInputs = lib.optional nativeComp gcc;
}
'' ''
findInputsOld() { findInputsOld() {
local pkg="$1"; shift local pkg="$1"; shift

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "kanit";
version = "unstable-2020-06-16";
src = fetchFromGitHub {
owner = "cadsondemak";
repo = pname;
rev = "467dfe842185681d8042cd608b8291199dd37cda";
sha256 = "0p0klb0376r8ki4ap2j99j7jcsq6wgb7m1hf3j1dkncwm7ikmg3h";
};
installPhase = ''
mkdir -p $out/share/doc/${pname}/css/ $out/share/fonts/{opentype,truetype}
cp $src/OFL.txt $src/documentation/{BRIEF.md,features.html} $out/share/doc/${pname}
cp $src/documentation/css/fonts.css $out/share/doc/${pname}/css
cp $src/fonts/otf/*.otf $out/share/fonts/opentype
cp $src/fonts/ttf/*.ttf $out/share/fonts/truetype
'';
meta = with lib; {
homepage = "https://cadsondemak.github.io/kanit/";
description = "A loopless Thai and sans serif Latin typeface for contemporary and futuristic uses";
longDescription = ''
Kanit means mathematics in Thai, and the Kanit typeface family is a formal
Loopless Thai and Sans Latin design. It is a combination of concepts,
mixing a Humanist Sans Serif motif with the curves of Capsulated Geometric
styles that makes it suitable for various uses, contemporary and
futuristic. A notable detail is that the stroke terminals have flat angles,
which allows the design to enjoy decreased spacing between letters while
preserving readability and legibility at smaller point sizes.
'';
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ maintainers.toastal ];
};
}

View file

@ -1,32 +1,39 @@
{ lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }: { lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "qogir-icon-theme"; pname = "qogir-icon-theme";
version = "2020-11-22"; version = "2021-07-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinceliuice"; owner = "vinceliuice";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "04rkpsiz8jg9i55mslsh7a6wgyp30ja3xss7qacqimdab236300d"; sha256 = "0anma2ss3yqr9njx4ay2nyxjkgnj7ky17c93ipwgrvgsv8jk5nn2";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [ gtk3 jdupes ];
propagatedBuildInputs = [ hicolor-icon-theme ]; propagatedBuildInputs = [ hicolor-icon-theme ];
dontDropIconThemeCache = true; dontDropIconThemeCache = true;
# These fixup steps are slow and unnecessary.
dontPatchELF = true;
dontRewriteSymlinks = true;
installPhase = '' installPhase = ''
runHook preInstall
patchShebangs install.sh patchShebangs install.sh
mkdir -p $out/share/icons mkdir -p $out/share/icons
name= ./install.sh -d $out/share/icons name= ./install.sh -d $out/share/icons
jdupes -l -r $out/share/icons
runHook postInstall
''; '';
meta = with lib; { meta = with lib; {
description = "Flat colorful design icon theme"; description = "Flat colorful design icon theme";
homepage = "https://github.com/vinceliuice/Qogir-icon-theme"; homepage = "https://github.com/vinceliuice/Qogir-icon-theme";
license = with licenses; [ gpl3 ]; license = with licenses; [ gpl3Only ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ romildo ]; maintainers = with maintainers; [ romildo ];
}; };

View file

@ -52,13 +52,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "arcan"; pname = "arcan";
version = "0.6.1pre1+unstable=2021-07-07"; version = "0.6.1pre1+unstable=2021-07-10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "letoram"; owner = "letoram";
repo = "arcan"; repo = "arcan";
rev = "f3341ab94b32d02f3d15c3b91a512b2614e950a5"; rev = "25da999e6e03688c71c7df3852314c01ed610e0d";
hash = "sha256-YBtRA5uCk4tjX3Bsu5vMkaNaCLRlM6HVQ53sna3gDsY="; hash = "sha256-+ZF6mD/Z0N/5QCjXe80z4L6JOE33+Yv4ZlwKvlG/c44=";
}; };
postUnpack = '' postUnpack = ''

View file

@ -37,6 +37,6 @@ rec {
everyone-wrapped = callPackage ./wrapper.nix { everyone-wrapped = callPackage ./wrapper.nix {
name = "everyone-wrapped"; name = "everyone-wrapped";
appls = [ durden pipeworld prio ]; appls = [ durden pipeworld ];
}; };
} }

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "durden"; pname = "durden";
version = "0.6.1+unstable=2021-06-25"; version = "0.6.1+unstable=2021-07-11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "letoram"; owner = "letoram";
repo = pname; repo = pname;
rev = "fb618fccc57a68b6ce933b4df5822acd1965d591"; rev = "8e0a5c07cade9ad9f606781615c9ebae7b28b6d5";
hash = "sha256-PovI837Xca4wV0g0s4tYUMFGVUDf+f8HcdvM1+0aDxk="; hash = "sha256-4cGuCAeYmmr4ACWt2akVQu2cPqqyE6p+XFaKWcFf3t0=";
}; };
installPhase = '' installPhase = ''

View file

@ -21,7 +21,7 @@ symlinkJoin rec {
--set ARCAN_LIBPATH "${placeholder "out"}/lib/" \ --set ARCAN_LIBPATH "${placeholder "out"}/lib/" \
--set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \ --set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \
--set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \ --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \
--set ARCAN_STATEBASEPATH "$HOME/.arcan/resources/savestates/" --set ARCAN_STATEBASEPATH "\$HOME/.arcan/resources/savestates/"
done done
''; '';
} }

View file

@ -312,7 +312,7 @@ lib.makeScope pkgs.newScope (self: with self; {
# added 2019-02-08 # added 2019-02-08
inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3 inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4 libgtop libgudev libhttpseverywhere librsvg libsecret gdk-pixbuf gtksourceview gtksourceviewmm gtksourceview4
easytag meld orca rhythmbox shotwell gnome-usage easytag meld orca rhythmbox shotwell gnome-usage
clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl; clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16 inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16

View file

@ -11,15 +11,17 @@
, glib , glib
, granite , granite
, libgee , libgee
, libhandy
, elementary-icon-theme , elementary-icon-theme
, elementary-gtk-theme , elementary-gtk-theme
, gettext , gettext
, wrapGAppsHook , wrapGAppsHook
, appstream
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-feedback"; pname = "elementary-feedback";
version = "1.0"; version = "6.0.0";
repoName = "feedback"; repoName = "feedback";
@ -27,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU="; sha256 = "1fh9a0nfvbrxamki9avm9by760csj2nqy4ya7wzbnqbrrvjwd3fv";
}; };
passthru = { passthru = {
@ -47,11 +49,13 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ buildInputs = [
appstream
elementary-icon-theme elementary-icon-theme
granite granite
gtk3 gtk3
elementary-gtk-theme elementary-gtk-theme
libgee libgee
libhandy
glib glib
]; ];

View file

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, nix-update-script , nix-update-script
, pantheon , pantheon
, pkg-config , pkg-config
@ -16,6 +15,7 @@
, json-glib , json-glib
, libgda , libgda
, libgpod , libgpod
, libhandy
, libnotify , libnotify
, libpeas , libpeas
, libsoup , libsoup
@ -31,7 +31,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-music"; pname = "elementary-music";
version = "5.0.5"; version = "5.1.0";
repoName = "music"; repoName = "music";
@ -39,17 +39,9 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE="; sha256 = "13v7rii9ardyd661s6d4hvvs4ig44v7s3qd1bx7imaigr72gg58b";
}; };
patches = [
# Fix build with latest Vala.
(fetchpatch {
url = "https://github.com/elementary/music/commit/9ed3bbb3a0d68e289a772b4603f58e52a4973316.patch";
sha256 = "fFO97SQzTc2fYFJFGfFPSUCdkCgZxfX1fjDQ7GH4BUs=";
})
];
passthru = { passthru = {
updateScript = nix-update-script { updateScript = nix-update-script {
attrPath = "pantheon.${pname}"; attrPath = "pantheon.${pname}";
@ -82,6 +74,7 @@ stdenv.mkDerivation rec {
libgda libgda
libgee libgee
libgpod libgpod
libhandy
libnotify libnotify
libpeas libpeas
libsignon-glib libsignon-glib

View file

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, nix-update-script , nix-update-script
, pantheon , pantheon
, meson , meson
@ -12,6 +11,7 @@
, libaccounts-glib , libaccounts-glib
, libexif , libexif
, libgee , libgee
, libhandy
, geocode-glib , geocode-glib
, gexiv2 , gexiv2
, libgphoto2 , libgphoto2
@ -35,7 +35,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-photos"; pname = "elementary-photos";
version = "2.7.0"; version = "2.7.1";
repoName = "photos"; repoName = "photos";
@ -43,17 +43,9 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY="; sha256 = "1dql14k43rv3in451amiwv4z71hz3ailx67hd8gw1ka3yw12128p";
}; };
patches = [
# Fix build with latest Vala.
(fetchpatch {
url = "https://github.com/elementary/photos/commit/27e529fc96da828982563e2e19a6f0cef883a29e.patch";
sha256 = "w39wh45VHggCs62TN6wpUEyz/hJ1y7qL1Ox+sp0Pt2s=";
})
];
passthru = { passthru = {
updateScript = nix-update-script { updateScript = nix-update-script {
attrPath = "pantheon.${pname}"; attrPath = "pantheon.${pname}";
@ -88,6 +80,7 @@ stdenv.mkDerivation rec {
libgee libgee
libgphoto2 libgphoto2
libgudev libgudev
libhandy
libraw libraw
librest librest
libsoup libsoup

View file

@ -20,7 +20,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-videos"; pname = "elementary-videos";
version = "2.7.2"; version = "2.7.3";
repoName = "videos"; repoName = "videos";
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0="; sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
}; };
passthru = { passthru = {

View file

@ -13,7 +13,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-icon-theme"; pname = "elementary-icon-theme";
version = "5.3.1"; version = "6.0.0";
repoName = "icons"; repoName = "icons";
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = repoName; repo = repoName;
rev = version; rev = version;
sha256 = "sha256-6XFzjpuHpGIZ+azkPuFcSF7p66sDonwLwjvlNBZDRmc="; sha256 = "0k94zi8fzi0nf5q471fmrlz8jjkv8m6vav1spzv7ynkg2hik8d9b";
}; };
passthru = { passthru = {

View file

@ -18,7 +18,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "granite"; pname = "granite";
version = "6.0.0"; version = "6.1.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
owner = "elementary"; owner = "elementary";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-RGukXeFmtnyCfK8pKdvTHL0t8yhEYwAiiPelTy1Xcf0="; sha256 = "02hn4abnsn6fm2m33pjmlnkj8dljsm292z62vn8ccvy7l8f9my6l";
}; };
passthru = { passthru = {

View file

@ -48,7 +48,8 @@ stdenv.mkDerivation rec {
postInstall = let postInstall = let
includedLibs = [ "base" "contrib" "network" "prelude" ]; includedLibs = [ "base" "contrib" "network" "prelude" ];
name = "${pname}-${version}"; name = "${pname}-${version}";
packagePaths = builtins.map (l: "$out/${name}/" + l) includedLibs; packagePaths =
builtins.map (l: "$out/${name}/${l}-${version}") includedLibs;
additionalIdris2Paths = builtins.concatStringsSep ":" packagePaths; additionalIdris2Paths = builtins.concatStringsSep ":" packagePaths;
in '' in ''
# Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH # Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "dqlite"; pname = "dqlite";
version = "1.7.0"; version = "1.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "canonical"; owner = "canonical";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-lCMTmKnDv/fb5fP/Ch8AwpuNfmR+gecxeIweO6hHj5U="; sha256 = "0ghvwlgj5574kpgc53bfhqp4437xxvr05061wwxplpjxn37hy26d";
}; };
nativeBuildInputs = [ autoreconfHook file pkg-config ]; nativeBuildInputs = [ autoreconfHook file pkg-config ];

View file

@ -1,52 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, xorgproto, libXi import ./common.nix rec {
, freeglut, libGLU, libGL, libjpeg, zlib, libXft, libpng version = "1.4.x-2021-07-04";
, libtiff, freetype, Cocoa, AGL, GLUT rev = "1008cdfab27609a6f6a0e82dadad9fd9cbd8a66d";
}: sha256 = "1h057dyhd04b9bjci952b2l7brxv183l9jw9i50mn9qjfljmvqim";
let
version = "1.4.x-r13121";
in
stdenv.mkDerivation {
pname = "fltk";
inherit version;
src = fetchurl {
url = "https://www.fltk.org/pub/fltk/snapshots/fltk-${version}.tar.gz";
sha256 = "1v8wxvxcbk99i82x2v5fpqg5vj8n7g8a38g30ry7nzcjn5sf3r63";
};
patches = lib.optionals stdenv.isDarwin [ ./nsosv.patch ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libGLU libGL libjpeg zlib libpng libXft ]
++ lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ];
propagatedBuildInputs = [ xorgproto ]
++ (if stdenv.isDarwin
then [ freetype libtiff ]
else [ xlibsWrapper libXi freeglut ]);
configureFlags = [
"--enable-gl"
"--enable-largefile"
"--enable-shared"
"--enable-threads"
"--enable-xft"
];
preConfigure = ''
make clean
rm VERSION
'';
enableParallelBuilding = true;
meta = with lib; {
description = "A C++ cross-platform lightweight GUI library";
homepage = "https://www.fltk.org";
platforms = platforms.linux ++ platforms.darwin;
license = licenses.gpl2;
};
} }

View file

@ -0,0 +1,205 @@
{ version, rev, sha256 }:
{ stdenv
, lib
, fetchFromGitHub
, cmake
, pkg-config
, zlib
, libjpeg
, libpng
, fontconfig
, freetype
, libX11
, libXext
, libXinerama
, libXfixes
, libXcursor
, libXft
, libXrender
, ApplicationServices
, Carbon
, Cocoa
, withGL ? true
, libGL
, libGLU
, glew
, OpenGL
, withCairo ? true
, cairo
, withPango ? (lib.strings.versionAtLeast version "1.4" && stdenv.hostPlatform.isLinux)
, pango
, withDocs ? true
, doxygen
, graphviz
, texlive
, withExamples ? true
, withShared ? true
}:
let
onOff = value: if value then "ON" else "OFF";
tex = texlive.combine {
inherit (texlive)
scheme-medium varwidth multirow hanging adjustbox collectbox stackengine
sectsty tocloft newunicodechar etoc;
};
in
stdenv.mkDerivation rec {
pname = "fltk";
inherit version;
src = fetchFromGitHub {
owner = "fltk";
repo = "fltk";
inherit rev sha256;
};
outputs = [ "out" ]
++ lib.optional withExamples "bin"
++ lib.optional withDocs "doc";
# Manually move example & test binaries to $bin to avoid cyclic dependencies on dev binaries
outputBin = lib.optionalString withExamples "out";
patches = lib.optionals stdenv.hostPlatform.isDarwin [
./nsosv.patch
];
postPatch = ''
patchShebangs documentation/make_*
'';
nativeBuildInputs = [
cmake
pkg-config
] ++ lib.optionals withDocs [
doxygen
graphviz
tex
];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
ApplicationServices
Carbon
] ++ lib.optionals (withGL && !stdenv.hostPlatform.isDarwin) [
libGL
libGLU
] ++ lib.optionals (withExamples && withGL) [
glew
];
propagatedBuildInputs = [
zlib
libjpeg
libpng
] ++ lib.optionals stdenv.hostPlatform.isLinux [
freetype
fontconfig
libX11
libXext
libXinerama
libXfixes
libXcursor
libXft
libXrender
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
] ++ lib.optionals (withGL && stdenv.hostPlatform.isDarwin) [
OpenGL
] ++ lib.optionals withCairo [
cairo
] ++ lib.optionals withPango [
pango
];
cmakeFlags = [
# Common
"-DOPTION_BUILD_SHARED_LIBS=${onOff withShared}"
"-DOPTION_USE_SYSTEM_ZLIB=ON"
"-DOPTION_USE_SYSTEM_LIBJPEG=ON"
"-DOPTION_USE_SYSTEM_LIBPNG=ON"
# X11
"-DOPTION_USE_XINERAMA=${onOff stdenv.hostPlatform.isLinux}"
"-DOPTION_USE_XFIXES=${onOff stdenv.hostPlatform.isLinux}"
"-DOPTION_USE_XCURSOR=${onOff stdenv.hostPlatform.isLinux}"
"-DOPTION_USE_XFT=${onOff stdenv.hostPlatform.isLinux}"
"-DOPTION_USE_XRENDER=${onOff stdenv.hostPlatform.isLinux}"
"-DOPTION_USE_XDBE=${onOff stdenv.hostPlatform.isLinux}"
# GL
"-DOPTION_USE_GL=${onOff withGL}"
"-DOpenGL_GL_PREFERENCE=GLVND"
# Cairo
"-DOPTION_CAIRO=${onOff withCairo}"
"-DOPTION_CAIROEXT=${onOff withCairo}"
# Pango
"-DOPTION_USE_PANGO=${onOff withPango}"
# Examples & Tests
"-DFLTK_BUILD_EXAMPLES=${onOff withExamples}"
# Docs
"-DOPTION_BUILD_HTML_DOCUMENTATION=${onOff withDocs}"
"-DOPTION_BUILD_PDF_DOCUMENTATION=${onOff withDocs}"
"-DOPTION_INSTALL_HTML_DOCUMENTATION=${onOff withDocs}"
"-DOPTION_INSTALL_PDF_DOCUMENTATION=${onOff withDocs}"
"-DOPTION_INCLUDE_DRIVER_DOCUMENTATION=${onOff withDocs}"
];
preBuild = lib.optionalString (withCairo && withShared && stdenv.hostPlatform.isDarwin) ''
# unresolved symbols in cairo dylib without this: https://github.com/fltk/fltk/issues/250
export NIX_LDFLAGS="$NIX_LDFLAGS -undefined dynamic_lookup"
'';
postBuild = lib.optionalString withDocs ''
make docs
'';
postInstall = lib.optionalString withExamples ''
mkdir -p $bin/bin
mv bin/{test,examples}/* $bin/bin/
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Library/Frameworks
mv $out{,/Library/Frameworks}/FLTK.framework
moveAppBundles() {
echo "Moving and symlinking $1"
appname="$(basename "$1")"
binname="$(basename "$(find "$1"/Contents/MacOS/ -type f -executable | head -n1)")"
curpath="$(dirname "$1")"
mkdir -p "$curpath"/../Applications/
mv "$1" "$curpath"/../Applications/
[ -f "$curpath"/"$binname" ] && rm "$curpath"/"$binname"
ln -s ../Applications/"$appname"/Contents/MacOS/"$binname" "$curpath"/"$binname"
}
rm $out/bin/fluid.icns
for app in $out/bin/*.app ${lib.optionalString withExamples "$bin/bin/*.app"}; do
moveAppBundles "$app"
done
'';
postFixup = ''
substituteInPlace $out/bin/fltk-config \
--replace "/$out/" "/"
'';
meta = with lib; {
description = "A C++ cross-platform lightweight GUI library";
homepage = "https://www.fltk.org";
platforms = platforms.unix;
# LGPL2 with static linking exception
# https://www.fltk.org/COPYING.php
license = licenses.lgpl2Only;
};
}

View file

@ -1,46 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, xorgproto, libXi import ./common.nix rec {
, freeglut, libGL, libGLU, libjpeg, zlib, libXft, libpng version = "1.3.6";
, libtiff, freetype, Cocoa, AGL, GLUT rev = "release-${version}";
}: sha256 = "0vzk4d6j927v7dxywr5xlqlf70myal1xikkdfvd11p94rcdf9bsv";
let
version = "1.3.5";
in
stdenv.mkDerivation {
pname = "fltk";
inherit version;
src = fetchurl {
url = "https://www.fltk.org/pub/fltk/${version}/fltk-${version}-source.tar.gz";
sha256 = "00jp24z1818k9n6nn6lx7qflqf2k13g4kxr0p8v1d37kanhb4ac7";
};
patches = lib.optionals stdenv.isDarwin [ ./nsosv.patch ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libGLU libGL libjpeg zlib libpng libXft ]
++ lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ];
propagatedBuildInputs = [ xorgproto ]
++ (if stdenv.isDarwin
then [ freetype libtiff ]
else [ xlibsWrapper libXi freeglut ]);
configureFlags = [
"--enable-gl"
"--enable-largefile"
"--enable-shared"
"--enable-threads"
"--enable-xft"
];
enableParallelBuilding = true;
meta = with lib; {
description = "A C++ cross-platform lightweight GUI library";
homepage = "https://www.fltk.org";
platforms = platforms.linux ++ platforms.darwin;
license = licenses.gpl2;
};
} }

View file

@ -0,0 +1,24 @@
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase }:
mkDerivation rec {
pname = "kcolorpicker";
version = "0.1.6";
src = fetchFromGitHub {
owner = "ksnip";
repo = "kColorPicker";
rev = "v${version}";
sha256 = "1167xwk75yiz697vddbz3lq42l7ckhyl2cvigy4m05qgg9693ksd";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qtbase ];
meta = with lib; {
description = "Qt based Color Picker with popup menu";
homepage = "https://github.com/ksnip/kColorPicker";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ fliegendewurst ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,24 @@
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, kcolorpicker, qttools }:
mkDerivation rec {
pname = "kimageannotator";
version = "0.5.1";
src = fetchFromGitHub {
owner = "ksnip";
repo = "kImageAnnotator";
rev = "v${version}";
sha256 = "0hfvrd78lgwd7bccz0fx2pr7g0v3s401y5plra63rxwk55ffkxf8";
};
nativeBuildInputs = [ cmake qttools ];
buildInputs = [ qtbase kcolorpicker ];
meta = with lib; {
description = "Tool for annotating images";
homepage = "https://github.com/ksnip/kImageAnnotator";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ fliegendewurst ];
platforms = platforms.linux;
};
}

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
configureFlags = lib.optional stdenv.targetPlatform.isWindows "--disable-examples"; configureFlags = lib.optional (stdenv.targetPlatform.isWindows || stdenv.hostPlatform.isStatic) "--disable-examples";
meta = with lib; { meta = with lib; {
homepage = "http://www.hyperrealm.com/libconfig"; homepage = "http://www.hyperrealm.com/libconfig";

View file

@ -0,0 +1,37 @@
{ stdenv, lib, fetchurl, meson, ninja, pkg-config
, gtk-doc, docbook-xsl-nons
, glib, ncurses, libxml2
, buildDocs ? true
}:
stdenv.mkDerivation rec {
pname = "libgnt";
version = "2.14.1";
outputs = [ "out" "dev" ] ++ lib.optional buildDocs "devdoc";
src = fetchurl {
url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.xz";
sha256 = "1n2bxg0ignn53c08cp69pj4sdg53kwlqn23rincyjmpr327fdhsy";
};
nativeBuildInputs = [ meson ninja pkg-config ]
++ lib.optionals buildDocs [ gtk-doc docbook-xsl-nons ];
buildInputs = [ glib ncurses libxml2 ];
postPatch = ''
substituteInPlace meson.build --replace \
"ncurses_sys_prefix = '/usr'" \
"ncurses_sys_prefix = '${lib.getDev ncurses}'"
'' + lib.optionalString (!buildDocs) ''
sed "/^subdir('doc')$/d" -i meson.build
'';
meta = with lib; {
description = "An ncurses toolkit for creating text-mode graphical user interfaces";
homepage = "https://keep.imfreedom.org/libgnt/libgnt/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with lib.maintainers; [ ony ];
};
}

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--disable-mac-universal" "--enable-cxx" ]; configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-const-int-float-conversion -Wno-error=nullability-completeness-on-arrays"; NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=deprecated-declarations -Wno-error=implicit-const-int-float-conversion -Wno-error=nullability-completeness-on-arrays";
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ]; propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ];

View file

@ -0,0 +1,36 @@
{ lib, fetchFromGitLab, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "tezos-rust-libs";
version = "1.0";
src = fetchFromGitLab {
owner = "tezos";
repo = "tezos-rust-libs";
rev = "v${version}";
sha256 = "1ffkzbvb0ls4wk9205g3xh2c26cmwnl68x43gh6dm9z4xsic94v5";
};
cargoSha256 = "0dgyqfr3dvvdwdi1wvpd7v9j21740jy4zwrwiwknw7csb4bq9wfx";
preBuild = ''
mkdir .cargo
mv cargo-config .cargo/config
'';
postInstall = ''
mkdir $out/lib/tezos-rust-libs
cp -r rustc-bls12-381/include $out/include
cp $out/lib/librustc_bls12_381.a $out/lib/tezos-rust-libs
cp $out/lib/librustzcash.a $out/lib/tezos-rust-libs
'';
doCheck = true;
meta = {
homepage = "https://gitlab.com/tezos/tezos-rust-libs";
description = "Tezos: all rust dependencies and their dependencies";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -35,6 +35,24 @@ let
''; '';
}; };
hyperspace-cli = super."@hyperspace/cli".override {
nativeBuildInputs = with pkgs; [
makeWrapper
libtool
autoconf
automake
];
buildInputs = with pkgs; [
nodePackages.node-gyp-build
nodejs
];
postInstall = ''
wrapProgram "$out/bin/hyp" --prefix PATH : ${
pkgs.lib.makeBinPath [ pkgs.nodejs ]
}
'';
};
coc-imselect = super.coc-imselect.override { coc-imselect = super.coc-imselect.override {
meta.broken = since "10"; meta.broken = since "10";
}; };
@ -107,6 +125,19 @@ let
nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ]; nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ];
}); });
jsonplaceholder = super.jsonplaceholder.override (drv: {
buildInputs = [ nodejs ];
postInstall = ''
exe=$out/bin/jsonplaceholder
mkdir -p $out/bin
cat >$exe <<EOF
#!${pkgs.runtimeShell}
exec -a jsonplaceholder ${nodejs}/bin/node $out/lib/node_modules/jsonplaceholder/index.js
EOF
chmod a+x $exe
'';
});
makam = super.makam.override { makam = super.makam.override {
buildInputs = [ pkgs.nodejs pkgs.makeWrapper ]; buildInputs = [ pkgs.nodejs pkgs.makeWrapper ];
postFixup = '' postFixup = ''
@ -277,7 +308,7 @@ let
}; };
teck-programmer = super.teck-programmer.override { teck-programmer = super.teck-programmer.override {
buildInputs = [ pkgs.libusb ]; buildInputs = [ pkgs.libusb1 ];
}; };
vega-cli = super.vega-cli.override { vega-cli = super.vega-cli.override {

View file

@ -3,6 +3,7 @@
, "@antora/cli" , "@antora/cli"
, "@antora/site-generator-default" , "@antora/site-generator-default"
, "@bitwarden/cli" , "@bitwarden/cli"
, "@hyperspace/cli"
, "@nestjs/cli" , "@nestjs/cli"
, "@vue/cli" , "@vue/cli"
, "@webassemblyjs/cli" , "@webassemblyjs/cli"
@ -139,6 +140,7 @@
, "json-refs" , "json-refs"
, "json-server" , "json-server"
, "jsonlint" , "jsonlint"
, "jsonplaceholder"
, "kaput-cli" , "kaput-cli"
, "katex" , "katex"
, "karma" , "karma"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,38 @@
{ lib, fetchFromGitLab, buildDunePackage, ff, zarith, ctypes, tezos-rust-libs, alcotest }:
buildDunePackage rec {
pname = "bls12-381";
version = "0.3.15";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-bls12-381";
rev = version;
sha256 = "1s8n657fsl2gs01p7v2ffpcfzymavifhhpriyx1gq5qh4zvvw4vr";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ff
zarith
ctypes
tezos-rust-libs
];
checkInputs = [
alcotest
];
# This is a hack to work around the hack used in the dune files
OPAM_SWITCH_PREFIX = "${tezos-rust-libs}";
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "OCaml binding for bls12-381 from librustzcash";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchFromGitLab, buildDunePackage, zarith, alcotest }:
buildDunePackage rec {
pname = "ff";
version = "0.4.0";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-ff";
rev = version;
sha256 = "1ik29srzkd0pl48p1si9p1c4f8vmx5rgm02yv2arj3vg0a1nfhdv";
};
useDune2 = true;
propagatedBuildInputs = [
zarith
];
checkInputs = [
alcotest
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-ff";
description = "OCaml implementation of Finite Field operations";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -1,16 +1,16 @@
{ lib, fetchurl, buildDunePackage { lib, fetchurl, buildDunePackage
, repr, ppx_repr, fmt, logs, mtime, stdlib-shims , repr, ppx_repr, fmt, logs, mtime, stdlib-shims
, cmdliner, progress, semaphore-compat , cmdliner, progress, semaphore-compat, optint
, alcotest, crowbar, re , alcotest, crowbar, re
}: }:
buildDunePackage rec { buildDunePackage rec {
pname = "index"; pname = "index";
version = "1.3.1"; version = "1.4.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz"; url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz";
sha256 = "sha256-ycZi/TFLoGRloSpjYqH5FCHWP3eyiTCIDLESEn5inuI="; sha256 = "13xd858c50fs651p1y8x70323ff0gzbf6zgc0a25f6xh3rsmkn4c";
}; };
minimumOCamlVersion = "4.08"; minimumOCamlVersion = "4.08";
@ -28,6 +28,7 @@ buildDunePackage rec {
progress progress
repr repr
semaphore-compat semaphore-compat
optint
]; ];
checkInputs = [ checkInputs = [

View file

@ -1,5 +1,5 @@
{ lib, buildDunePackage { lib, buildDunePackage
, alcotest-lwt, index, irmin, irmin-layers, irmin-test, ocaml_lwt, fpath , alcotest-lwt, index, irmin, irmin-layers, irmin-test, ocaml_lwt, fpath, optint
}: }:
buildDunePackage rec { buildDunePackage rec {
@ -12,7 +12,7 @@ buildDunePackage rec {
useDune2 = true; useDune2 = true;
buildInputs = [ fpath ]; buildInputs = [ fpath ];
propagatedBuildInputs = [ index irmin irmin-layers ocaml_lwt ]; propagatedBuildInputs = [ index irmin irmin-layers ocaml_lwt optint ];
checkInputs = [ alcotest-lwt irmin-test ]; checkInputs = [ alcotest-lwt irmin-test ];

View file

@ -2,11 +2,11 @@
buildDunePackage rec { buildDunePackage rec {
pname = "ppx_irmin"; pname = "ppx_irmin";
version = "2.6.0"; version = "2.7.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz"; url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
sha256 = "1db134221e82c424260a0e206b640fcb82902be35eea4137af2bcd9c98d3ac0f"; sha256 = "fac7c032f472fb369378ad2d8fe77e7cd3b3c1c6a0d7bf59980b69528891b399";
}; };
minimumOCamlVersion = "4.08"; minimumOCamlVersion = "4.08";

View file

@ -0,0 +1,30 @@
{ lib
, fetchFromGitLab
, buildDunePackage
, lwt
}:
buildDunePackage rec {
pname = "lwt-watcher";
version = "0.1";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = pname;
rev = "v${version}";
sha256 = "0kaf7py02i0dn9rvrbzxh4ljfg059wc8xvm093m9wy7lsa68rax9";
};
useDune2 = true;
propagatedBuildInputs = [
lwt
];
doCheck = true;
meta = {
description = "One-to-many broadcast in Lwt";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -2,11 +2,11 @@
buildDunePackage rec { buildDunePackage rec {
pname = "repr"; pname = "repr";
version = "0.3.0"; version = "0.4.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-fuzz-${version}.tbz"; url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-fuzz-${version}.tbz";
sha256 = "sha256-2b0v5RwutvyidzEDTEb5p33IvJ+3t2IW+KVxYD1ufXQ="; sha256 = "1kpwgncyxcrq90dn7ilja7c5i88whc3fz4fmq1lwr0ar95d7d48p";
}; };
minimumOCamlVersion = "4.08"; minimumOCamlVersion = "4.08";

View file

@ -1,4 +1,4 @@
{ buildDunePackage, ppx_deriving, ppxlib, repr, alcotest, hex }: { lib, buildDunePackage, ppx_deriving, ppxlib, repr, alcotest, hex }:
buildDunePackage { buildDunePackage {
pname = "ppx_repr"; pname = "ppx_repr";

View file

@ -0,0 +1,13 @@
{ lib, buildDunePackage, resto, uri }:
buildDunePackage {
pname = "resto-acl";
inherit (resto) src version meta useDune2 doCheck;
minimalOCamlVersion = "4.05";
propagatedBuildInputs = [
resto
uri
];
}

View file

@ -0,0 +1,20 @@
{ buildDunePackage
, resto
, resto-directory
, resto-cohttp
, uri
, lwt
}:
buildDunePackage {
pname = "resto-cohttp-client";
inherit (resto) src version meta useDune2 doCheck;
propagatedBuildInputs = [
resto
resto-directory
resto-cohttp
uri
lwt
];
}

View file

@ -0,0 +1,27 @@
{ lib
, buildDunePackage
, resto
, resto-directory
, resto-acl
, resto-cohttp
, resto-cohttp-client
, resto-cohttp-server
, uri
, lwt
}:
buildDunePackage {
pname = "resto-cohttp-self-serving-client";
inherit (resto) src version meta useDune2 doCheck;
propagatedBuildInputs = [
resto
resto-directory
resto-acl
resto-cohttp
resto-cohttp-client
resto-cohttp-server
uri
lwt
];
}

View file

@ -0,0 +1,25 @@
{ lib
, buildDunePackage
, resto
, resto-directory
, resto-acl
, resto-cohttp
, cohttp-lwt-unix
, conduit-lwt-unix
, lwt
}:
buildDunePackage {
pname = "resto-cohttp-server";
inherit (resto) src version meta useDune2 doCheck;
propagatedBuildInputs = [
resto
resto-directory
resto-acl
resto-cohttp
cohttp-lwt-unix
conduit-lwt-unix
lwt
];
}

Some files were not shown because too many files have changed in this diff Show more