Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2021-03-19 00:41:08 +00:00 committed by GitHub
commit 8c03075f07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
374 changed files with 6106 additions and 2325 deletions

View file

@ -603,6 +603,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({
free = false; free = false;
}; };
odbl = spdx {
spdxId = "ODbL-1.0";
fullName = "Open Data Commons Open Database License v1.0";
};
ofl = spdx { ofl = spdx {
spdxId = "OFL-1.1"; spdxId = "OFL-1.1";
fullName = "SIL Open Font License 1.1"; fullName = "SIL Open Font License 1.1";

View file

@ -1859,6 +1859,12 @@
fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C"; fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C";
}]; }];
}; };
collares = {
email = "mauricio@collares.org";
github = "collares";
githubId = 244239;
name = "Mauricio Collares";
};
copumpkin = { copumpkin = {
email = "pumpkingod@gmail.com"; email = "pumpkingod@gmail.com";
github = "copumpkin"; github = "copumpkin";
@ -2889,6 +2895,12 @@
githubId = 3787281; githubId = 3787281;
name = "Erik Rybakken"; name = "Erik Rybakken";
}; };
erin = {
name = "Erin van der Veen";
email = "erin@erinvanderveen.nl";
github = "ErinvanderVeen";
githubId = 10973664;
};
erosennin = { erosennin = {
email = "ag@sologoc.com"; email = "ag@sologoc.com";
github = "erosennin"; github = "erosennin";
@ -4153,6 +4165,12 @@
github = "j0hax"; github = "j0hax";
githubId = 3802620; githubId = 3802620;
}; };
j4m3s = {
name = "James Landrein";
email = "github@j4m3s.eu";
github = "j4m3s-s";
githubId = 9413812;
};
jacg = { jacg = {
name = "Jacek Generowicz"; name = "Jacek Generowicz";
email = "jacg@my-post-office.net"; email = "jacg@my-post-office.net";
@ -6987,6 +7005,12 @@
githubId = 3359345; githubId = 3359345;
name = "obadz"; name = "obadz";
}; };
obsidian-systems-maintenance = {
name = "Obsidian Systems Maintenance";
email = "maintainer@obsidian.systems";
github = "obsidian-systems-maintenance";
githubId = 80847921;
};
odi = { odi = {
email = "oliver.dunkl@gmail.com"; email = "oliver.dunkl@gmail.com";
github = "odi"; github = "odi";

View file

@ -514,7 +514,7 @@ def update_plugins(editor: Editor):
) )
for plugin_line in args.add_plugins: for plugin_line in args.add_plugins:
rewrite_input(args.input_fil, editor.deprecated, append=(plugin_line + "\n",)) rewrite_input(args.input_file, editor.deprecated, append=(plugin_line + "\n",))
update() update()
plugin = fetch_plugin_from_pluginline(plugin_line) plugin = fetch_plugin_from_pluginline(plugin_line)
commit( commit(

View file

@ -134,6 +134,7 @@ with lib.maintainers; {
timokau timokau
omasanori omasanori
raskin raskin
collares
]; ];
scope = "Maintain SageMath and the dependencies that are likely to break it."; scope = "Maintain SageMath and the dependencies that are likely to break it.";
}; };

View file

@ -288,7 +288,7 @@ foreach my $u (values %usersOut) {
push @shadowNew, join(":", $u->{name}, $hashedPassword, "1::::::") . "\n"; push @shadowNew, join(":", $u->{name}, $hashedPassword, "1::::::") . "\n";
} }
updateFile("/etc/shadow", \@shadowNew, 0600); updateFile("/etc/shadow", \@shadowNew, 0640);
{ {
my $uid = getpwnam "root"; my $uid = getpwnam "root";
my $gid = getgrnam "shadow"; my $gid = getgrnam "shadow";

View file

@ -177,6 +177,7 @@
./programs/tmux.nix ./programs/tmux.nix
./programs/traceroute.nix ./programs/traceroute.nix
./programs/tsm-client.nix ./programs/tsm-client.nix
./programs/turbovnc.nix
./programs/udevil.nix ./programs/udevil.nix
./programs/usbtop.nix ./programs/usbtop.nix
./programs/vim.nix ./programs/vim.nix
@ -882,6 +883,7 @@
./services/web-apps/atlassian/confluence.nix ./services/web-apps/atlassian/confluence.nix
./services/web-apps/atlassian/crowd.nix ./services/web-apps/atlassian/crowd.nix
./services/web-apps/atlassian/jira.nix ./services/web-apps/atlassian/jira.nix
./services/web-apps/bookstack.nix
./services/web-apps/convos.nix ./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix ./services/web-apps/cryptpad.nix
./services/web-apps/documize.nix ./services/web-apps/documize.nix

View file

@ -90,7 +90,7 @@ in {
rxvt-unicode # For backward compatibility (old default terminal) rxvt-unicode # For backward compatibility (old default terminal)
]; ];
defaultText = literalExample '' defaultText = literalExample ''
with pkgs; [ swaylock swayidle xwayland rxvt-unicode dmenu ]; with pkgs; [ swaylock swayidle rxvt-unicode alacritty dmenu ];
''; '';
example = literalExample '' example = literalExample ''
with pkgs; [ with pkgs; [

View file

@ -0,0 +1,54 @@
# Global configuration for the SSH client.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.turbovnc;
in
{
options = {
programs.turbovnc = {
ensureHeadlessSoftwareOpenGL = mkOption {
type = types.bool;
default = false;
description = ''
Whether to set up NixOS such that TurboVNC's built-in software OpenGL
implementation works.
This will enable <option>hardware.opengl.enable</option> so that OpenGL
programs can find Mesa's llvmpipe drivers.
Setting this option to <code>false</code> does not mean that software
OpenGL won't work; it may still work depending on your system
configuration.
This option is also intended to generate warnings if you are using some
configuration that's incompatible with using headless software OpenGL
in TurboVNC.
'';
};
};
};
config = mkIf cfg.ensureHeadlessSoftwareOpenGL {
# TurboVNC has builtin support for Mesa llvmpipe's `swrast`
# software rendering to implemnt GLX (OpenGL on Xorg).
# However, just building TurboVNC with support for that is not enough
# (it only takes care of the X server side part of OpenGL);
# the indiviudual applications (e.g. `glxgears`) also need to directly load
# the OpenGL libs.
# Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
# can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
# This comment exists to explain why `hardware.` is involved,
# even though 100% software rendering is used.
hardware.opengl.enable = true;
};
}

View file

@ -274,6 +274,15 @@ in
''; '';
}; };
etcSlurm = mkOption {
type = types.path;
internal = true;
default = etcSlurm;
description = ''
Path to directory with slurm config files. This option is set by default from the
Slurm module and is meant to make the Slurm config file available to other modules.
'';
};
}; };
@ -308,7 +317,7 @@ in
#!/bin/sh #!/bin/sh
if [ -z "$SLURM_CONF" ] if [ -z "$SLURM_CONF" ]
then then
SLURM_CONF="${etcSlurm}/slurm.conf" "$EXE" "\$@" SLURM_CONF="${cfg.etcSlurm}/slurm.conf" "$EXE" "\$@"
else else
"$EXE" "\$0" "$EXE" "\$0"
fi fi

View file

@ -30,12 +30,49 @@ in
Whether to run the exporter as the local 'postgres' super user. Whether to run the exporter as the local 'postgres' super user.
''; '';
}; };
# TODO perhaps LoadCredential would be more appropriate
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/root/prometheus-postgres-exporter.env";
description = ''
Environment file as defined in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>.
Secrets may be passed to the service without adding them to the
world-readable Nix store, by specifying placeholder variables as
the option value in Nix and setting these variables accordingly in the
environment file.
Environment variables from this file will be interpolated into the
config file using envsubst with this syntax:
<literal>$ENVIRONMENT ''${VARIABLE}</literal>
The main use is to set the DATA_SOURCE_NAME that contains the
postgres password
note that contents from this file will override dataSourceName
if you have set it from nix.
<programlisting>
# Content of the environment file
DATA_SOURCE_NAME=postgresql://username:password@localhost:5432/postgres?sslmode=disable
</programlisting>
Note that this file needs to be available on the host on which
this exporter is running.
'';
};
}; };
serviceOpts = { serviceOpts = {
environment.DATA_SOURCE_NAME = cfg.dataSourceName; environment.DATA_SOURCE_NAME = cfg.dataSourceName;
serviceConfig = { serviceConfig = {
DynamicUser = false; DynamicUser = false;
User = mkIf cfg.runAsLocalSuperUser (mkForce "postgres"); User = mkIf cfg.runAsLocalSuperUser (mkForce "postgres");
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
ExecStart = '' ExecStart = ''
${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \ ${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \

View file

@ -0,0 +1,365 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.bookstack;
bookstack = pkgs.bookstack.override {
dataDir = cfg.dataDir;
};
db = cfg.database;
mail = cfg.mail;
user = cfg.user;
group = cfg.group;
# shell script for local administration
artisan = pkgs.writeScriptBin "bookstack" ''
#! ${pkgs.runtimeShell}
cd ${bookstack}
sudo=exec
if [[ "$USER" != ${user} ]]; then
sudo='exec /run/wrappers/bin/sudo -u ${user}'
fi
$sudo ${pkgs.php}/bin/php artisan $*
'';
in {
options.services.bookstack = {
enable = mkEnableOption "BookStack";
user = mkOption {
default = "bookstack";
description = "User bookstack runs as.";
type = types.str;
};
group = mkOption {
default = "bookstack";
description = "Group bookstack runs as.";
type = types.str;
};
appKeyFile = mkOption {
description = ''
A file containing the AppKey.
Used for encryption where needed. Can be generated with <code>head -c 32 /dev/urandom| base64</code> and must be prefixed with <literal>base64:</literal>.
'';
example = "/run/keys/bookstack-appkey";
type = types.path;
};
appURL = mkOption {
description = ''
The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
'';
example = "https://example.com";
type = types.str;
};
cacheDir = mkOption {
description = "BookStack cache directory";
default = "/var/cache/bookstack";
type = types.path;
};
dataDir = mkOption {
description = "BookStack data directory";
default = "/var/lib/bookstack";
type = types.path;
};
database = {
host = mkOption {
type = types.str;
default = "localhost";
description = "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
description = "Database host port.";
};
name = mkOption {
type = types.str;
default = "bookstack";
description = "Database name.";
};
user = mkOption {
type = types.str;
default = user;
defaultText = "\${user}";
description = "Database username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
};
createLocally = mkOption {
type = types.bool;
default = false;
description = "Create the database and database user locally.";
};
};
mail = {
driver = mkOption {
type = types.enum [ "smtp" "sendmail" ];
default = "smtp";
description = "Mail driver to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
description = "Mail host address.";
};
port = mkOption {
type = types.port;
default = 1025;
description = "Mail host port.";
};
fromName = mkOption {
type = types.str;
default = "BookStack";
description = "Mail \"from\" name.";
};
from = mkOption {
type = types.str;
default = "mail@bookstackapp.com";
description = "Mail \"from\" email.";
};
user = mkOption {
type = with types; nullOr str;
default = null;
example = "bookstack";
description = "Mail username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-mailpassword";
description = ''
A file containing the password corresponding to
<option>mail.user</option>.
'';
};
encryption = mkOption {
type = with types; nullOr (enum [ "tls" ]);
default = null;
description = "SMTP encryption mechanism to use.";
};
};
maxUploadSize = mkOption {
type = types.str;
default = "18M";
example = "1G";
description = "The maximum size for uploads (e.g. images).";
};
poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
description = ''
Options for the bookstack PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives.
'';
};
nginx = mkOption {
type = types.submodule (
recursiveUpdate
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
);
default = {};
example = {
serverAliases = [
"bookstack.\${config.networking.domain}"
];
# To enable encryption and let let's encrypt take care of certificate
forceSSL = true;
enableACME = true;
};
description = ''
With this option, you can customize the nginx virtualHost settings.
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
ALLOWED_IFRAME_HOSTS="https://example.com"
WKHTMLTOPDF=/home/user/bins/wkhtmltopdf
'';
description = ''
Lines to be appended verbatim to the BookStack configuration.
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/> for details on supported values.
'';
};
};
config = mkIf cfg.enable {
assertions = [
{ assertion = db.createLocally -> db.user == user;
message = "services.bookstack.database.user must be set to ${user} if services.mediawiki.database.createLocally is set true.";
}
{ assertion = db.createLocally -> db.passwordFile == null;
message = "services.bookstack.database.passwordFile cannot be specified if services.bookstack.database.createLocally is set to true.";
}
];
environment.systemPackages = [ artisan ];
services.mysql = mkIf db.createLocally {
enable = true;
package = mkDefault pkgs.mariadb;
ensureDatabases = [ db.name ];
ensureUsers = [
{ name = db.user;
ensurePermissions = { "${db.name}.*" = "ALL PRIVILEGES"; };
}
];
};
services.phpfpm.pools.bookstack = {
inherit user;
inherit group;
phpOptions = ''
log_errors = on
post_max_size = ${cfg.maxUploadSize}
upload_max_filesize = ${cfg.maxUploadSize}
'';
settings = {
"listen.mode" = "0660";
"listen.owner" = user;
"listen.group" = group;
} // cfg.poolConfig;
};
services.nginx = {
enable = mkDefault true;
virtualHosts.bookstack = mkMerge [ cfg.nginx {
root = mkForce "${bookstack}/public";
extraConfig = optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
locations = {
"/" = {
index = "index.php";
extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
};
"~ \.php$" = {
extraConfig = ''
try_files $uri $uri/ /index.php?$query_string;
include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
'';
};
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
}];
};
systemd.services.bookstack-setup = {
description = "Preperation tasks for BookStack";
before = [ "phpfpm-bookstack.service" ];
after = optional db.createLocally "mysql.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
User = user;
WorkingDirectory = "${bookstack}";
};
script = ''
# create .env file
echo "
APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
APP_URL=${cfg.appURL}
DB_HOST=${db.host}
DB_PORT=${toString db.port}
DB_DATABASE=${db.name}
DB_USERNAME=${db.user}
MAIL_DRIVER=${mail.driver}
MAIL_FROM_NAME=\"${mail.fromName}\"
MAIL_FROM=${mail.from}
MAIL_HOST=${mail.host}
MAIL_PORT=${toString mail.port}
${optionalString (mail.user != null) "MAIL_USERNAME=${mail.user};"}
${optionalString (mail.encryption != null) "MAIL_ENCRYPTION=${mail.encryption};"}
${optionalString (db.passwordFile != null) "DB_PASSWORD=$(head -n1 ${db.passwordFile})"}
${optionalString (mail.passwordFile != null) "MAIL_PASSWORD=$(head -n1 ${mail.passwordFile})"}
APP_SERVICES_CACHE=${cfg.cacheDir}/services.php
APP_PACKAGES_CACHE=${cfg.cacheDir}/packages.php
APP_CONFIG_CACHE=${cfg.cacheDir}/config.php
APP_ROUTES_CACHE=${cfg.cacheDir}/routes-v7.php
APP_EVENTS_CACHE=${cfg.cacheDir}/events.php
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
${toString cfg.extraConfig}
" > "${cfg.dataDir}/.env"
# set permissions
chmod 700 "${cfg.dataDir}/.env"
# migrate db
${pkgs.php}/bin/php artisan migrate --force
# create caches
${pkgs.php}/bin/php artisan config:cache
${pkgs.php}/bin/php artisan route:cache
${pkgs.php}/bin/php artisan view:cache
'';
};
systemd.tmpfiles.rules = [
"d ${cfg.cacheDir} 0700 ${user} ${group} - -"
"d ${cfg.dataDir} 0710 ${user} ${group} - -"
"d ${cfg.dataDir}/public 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/public/uploads 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/storage 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/app 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/fonts 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/cache 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/sessions 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/views 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/logs 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/uploads 0700 ${user} ${group} - -"
];
users = {
users = mkIf (user == "bookstack") {
bookstack = {
inherit group;
isSystemUser = true;
};
"${config.services.nginx.user}".extraGroups = [ group ];
};
groups = mkIf (group == "bookstack") {
bookstack = {};
};
};
};
meta.maintainers = with maintainers; [ ymarkus ];
}

View file

@ -182,7 +182,18 @@ in rec {
# upstream unit. # upstream unit.
for i in ${toString (mapAttrsToList (n: v: v.unit) units)}; do for i in ${toString (mapAttrsToList (n: v: v.unit) units)}; do
fn=$(basename $i/*) fn=$(basename $i/*)
if [ -e $out/$fn ]; then
case $fn in
# if file name is a template specialization, use the template's name
*@?*.service)
# remove @foo.service and replace it with @.service
ofn="''${fn%@*.service}@.service"
;;
*)
ofn="$fn"
esac
if [ -e $out/$ofn ]; then
if [ "$(readlink -f $i/$fn)" = /dev/null ]; then if [ "$(readlink -f $i/$fn)" = /dev/null ]; then
ln -sfn /dev/null $out/$fn ln -sfn /dev/null $out/$fn
else else

View file

@ -408,6 +408,7 @@ in
trickster = handleTest ./trickster.nix {}; trickster = handleTest ./trickster.nix {};
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tuptime = handleTest ./tuptime.nix {}; tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
ucg = handleTest ./ucg.nix {}; ucg = handleTest ./ucg.nix {};
udisks2 = handleTest ./udisks2.nix {}; udisks2 = handleTest ./udisks2.nix {};
unbound = handleTest ./unbound.nix {}; unbound = handleTest ./unbound.nix {};

View file

@ -0,0 +1,41 @@
import ./make-test-python.nix {
name = "systemd-template-override";
machine = { pkgs, lib, ... }: let
touchTmp = pkgs.writeTextFile {
name = "touch-tmp@.service";
text = ''
[Service]
Type=oneshot
ExecStart=${pkgs.coreutils}/bin/touch /tmp/%I
'';
destination = "/etc/systemd/system/touch-tmp@.service";
};
in {
systemd.packages = [ touchTmp ];
systemd.services."touch-tmp@forbidden" = {
serviceConfig.ExecStart = [ "" ''
${pkgs.coreutils}/bin/true
''];
};
systemd.services."touch-tmp@intercept" = {
serviceConfig.ExecStart = [ "" ''
${pkgs.coreutils}/bin/touch /tmp/renamed
''];
};
};
testScript = ''
machine.wait_for_unit("default.target")
machine.succeed("systemctl start touch-tmp@normal")
machine.succeed("systemctl start touch-tmp@forbbidden")
machine.succeed("systemctl start touch-tmp@intercept")
machine.succeed("[ -e /tmp/normal ]")
machine.succeed("[ ! -e /tmp/forbidden ]")
machine.succeed("[ -e /tmp/renamed ]")
'';
}

View file

@ -0,0 +1,171 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "turbovnc-headless-server";
meta = {
maintainers = with lib.maintainers; [ nh2 ];
};
machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
glxinfo
procps # for `pkill`, `pidof` in the test
scrot # for screenshotting Xorg
turbovnc
];
programs.turbovnc.ensureHeadlessSoftwareOpenGL = true;
networking.firewall = {
# Reject instead of drop, for failures instead of hangs.
rejectPackets = true;
allowedTCPPorts = [
5900 # VNC :0, for seeing what's going on in the server
];
};
# So that we can ssh into the VM, see e.g.
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
services.openssh.enable = true;
services.openssh.permitRootLogin = "yes";
users.extraUsers.root.password = "";
users.mutableUsers = false;
};
testScript = ''
def wait_until_terminated_or_succeeds(
termination_check_shell_command,
success_check_shell_command,
get_detail_message_fn,
retries=60,
retry_sleep=0.5,
):
def check_success():
command_exit_code, _output = machine.execute(success_check_shell_command)
return command_exit_code == 0
for _ in range(retries):
exit_check_exit_code, _output = machine.execute(termination_check_shell_command)
is_terminated = exit_check_exit_code != 0
if is_terminated:
if check_success():
return
else:
details = get_detail_message_fn()
raise Exception(
f"termination check ({termination_check_shell_command}) triggered without command succeeding ({success_check_shell_command}); details: {details}"
)
else:
if check_success():
return
time.sleep(retry_sleep)
if not check_success():
details = get_detail_message_fn()
raise Exception(
f"action timed out ({success_check_shell_command}); details: {details}"
)
# Below we use the pattern:
# (cmd | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log
# to capture both stderr and stdout while also teeing them, see:
# https://unix.stackexchange.com/questions/6430/how-to-redirect-stderr-and-stdout-to-different-files-and-also-display-in-termina/6431#6431
# Starts headless VNC server, backgrounding it.
def start_xvnc():
xvnc_command = " ".join(
[
"Xvnc",
":0",
"-iglx",
"-auth /root/.Xauthority",
"-geometry 1240x900",
"-depth 24",
"-rfbwait 5000",
"-deferupdate 1",
"-verbose",
"-securitytypes none",
# We don't enforce localhost listening such that we
# can connect from outside the VM using
# env QEMU_NET_OPTS=hostfwd=tcp::5900-:5900 $(nix-build nixos/tests/turbovnc-headless-server.nix -A driver)/bin/nixos-test-driver
# for testing purposes, and so that we can in the future
# add another test case that connects the TurboVNC client.
# "-localhost",
]
)
machine.execute(
# Note trailing & for backgrounding.
f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr &",
)
# Waits until the server log message that tells us that GLX is ready
# (requires `-verbose` above), avoiding screenshoting racing below.
def wait_until_xvnc_glx_ready():
machine.wait_until_succeeds("test -f /tmp/Xvnc.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof Xvnc",
success_check_shell_command="grep 'GLX: Initialized DRISWRAST' /tmp/Xvnc.stderr",
get_detail_message_fn=lambda: "Contents of /tmp/Xvnc.stderr:\n"
+ machine.succeed("cat /tmp/Xvnc.stderr"),
)
# Checks that we detect glxgears failing when
# `LIBGL_DRIVERS_PATH=/nonexistent` is set
# (in which case software rendering should not work).
def test_glxgears_failing_with_bad_driver_path():
machine.execute(
# Note trailing & for backgrounding.
"(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof glxgears",
success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
)
machine.wait_until_fails("pidof glxgears")
# Starts glxgears, backgrounding it. Waits until it prints the `GL_RENDERER`.
# Does not quit glxgears.
def test_glxgears_prints_renderer():
machine.execute(
# Note trailing & for backgrounding.
"(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof glxgears",
success_check_shell_command="grep 'GL_RENDERER' /tmp/glxgears.stdout",
get_detail_message_fn=lambda: "Contents of /tmp/glxgears.stderr:\n"
+ machine.succeed("cat /tmp/glxgears.stderr"),
)
with subtest("Start Xvnc"):
start_xvnc()
wait_until_xvnc_glx_ready()
with subtest("Ensure bad driver path makes glxgears fail"):
test_glxgears_failing_with_bad_driver_path()
with subtest("Run 3D application (glxgears)"):
test_glxgears_prints_renderer()
# Take screenshot; should display the glxgears.
machine.succeed("scrot --display :0 /tmp/glxgears.png")
# Copy files down.
machine.copy_from_vm("/tmp/glxgears.png")
machine.copy_from_vm("/tmp/glxgears.stdout")
machine.copy_from_vm("/tmp/glxgears-should-fail.stdout")
machine.copy_from_vm("/tmp/glxgears-should-fail.stderr")
machine.copy_from_vm("/tmp/Xvnc.stdout")
machine.copy_from_vm("/tmp/Xvnc.stderr")
'';
})

View file

@ -8,7 +8,6 @@
, doxygen , doxygen
, fftwSinglePrec , fftwSinglePrec
, flac , flac
, glibc
, glibmm , glibmm
, graphviz , graphviz
, gtkmm2 , gtkmm2

View file

@ -11,14 +11,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "callaudiod"; pname = "callaudiod";
version = "0.0.4"; version = "0.1.0";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.com"; domain = "gitlab.com";
owner = "mobian1"; owner = "mobian1";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "07k7xp5a9c4d4lq7amaj6cg6b3gsd77x9wvf7nzcf4vpaph4yiyj"; sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -8,13 +8,13 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cheesecutter"; pname = "cheesecutter";
version = "unstable-2020-04-03"; version = "unstable-2021-02-27";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "theyamo"; owner = "theyamo";
repo = "CheeseCutter"; repo = "CheeseCutter";
rev = "68d6518f0e6249a2a5d122fc80201578337c1277"; rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
sha256 = "0xspzjhc6cp3m0yd0mwxncg8n1wklizamxvidrnn21jgj3mnaq2q"; sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
}; };
patches = [ patches = [

View file

@ -75,5 +75,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = teams.gnome.members; maintainers = teams.gnome.members;
platforms = platforms.unix; platforms = platforms.unix;
# couldn't read /build/source/build/podcasts-gtk/resources/resources.gresource: No such file or directory (os error 2)
broken = true;
}; };
} }

View file

@ -2,13 +2,13 @@
let let
pname = "plexamp"; pname = "plexamp";
version = "3.4.3"; version = "3.4.4";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage"; url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage"; name="${pname}-${version}.AppImage";
sha256 = "1rzhrc5yr5f6bxydgmcjwrg85vkbkn6lqj72512lyhq5gg7zmm1w"; sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
}; };
appimageContents = appimageTools.extractType2 { appimageContents = appimageTools.extractType2 {
@ -32,7 +32,7 @@ in appimageTools.wrapType2 {
meta = with lib; { meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters"; description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/"; homepage = "https://plexamp.com/";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/25"; changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/26";
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ]; maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];

View file

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
} }
else else
releasePath releasePath
else throw "Platform is not supported by Renoise"; else throw "Platform is not supported. Use instalation native to your platform https://www.renoise.com/";
buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ]; buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
@ -47,6 +47,16 @@ stdenv.mkDerivation rec {
mkdir $out/bin mkdir $out/bin
ln -s $out/renoise $out/bin/renoise ln -s $out/renoise $out/bin/renoise
# Desktop item
mkdir -p $out/share/applications
cp -r Installer/renoise.desktop $out/share/applications/renoise.desktop
# Desktop item icons
mkdir -p $out/share/icons/hicolor/{48x48,64x64,128x128}/apps
cp Installer/renoise-48.png $out/share/icons/hicolor/48x48/apps/renoise.png
cp Installer/renoise-64.png $out/share/icons/hicolor/64x64/apps/renoise.png
cp Installer/renoise-128.png $out/share/icons/hicolor/128x128/apps/renoise.png
''; '';
postFixup = '' postFixup = ''
@ -61,6 +71,9 @@ stdenv.mkDerivation rec {
--set-rpath $out/lib \ --set-rpath $out/lib \
$path $path
done done
substituteInPlace $out/share/applications/renoise.desktop \
--replace Exec=renoise Exec=$out/bin/renoise
''; '';
meta = { meta = {

View file

@ -35,13 +35,13 @@
mkDerivation rec { mkDerivation rec {
pname = "strawberry"; pname = "strawberry";
version = "0.8.5"; version = "0.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jonaski"; owner = "jonaski";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-+ZQ80J94Teqt4Gy6fw/pS7FwILK/TPehtJDy72Bdy1E="; sha256 = "sha256-1aXHMvjLK5WiE0mut/a3ynuMfNHgPbUzAZdmaVJBDXQ=";
}; };
buildInputs = [ buildInputs = [

View file

@ -44,5 +44,7 @@ stdenv.mkDerivation rec {
homepage = "http://www.warmplace.ru/soft/sunvox/"; homepage = "http://www.warmplace.ru/soft/sunvox/";
maintainers = with maintainers; [ puffnfresh ]; maintainers = with maintainers; [ puffnfresh ];
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" ];
# hash mismatch
broken = true;
}; };
} }

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "surge"; pname = "surge";
version = "1.7.1"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "surge-synthesizer"; owner = "surge-synthesizer";
repo = pname; repo = pname;
rev = "release_${version}"; rev = "release_${version}";
sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s"; sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
leaveDotGit = true; # for SURGE_VERSION leaveDotGit = true; # for SURGE_VERSION
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -20,9 +20,10 @@ stdenv.mkDerivation rec {
postPatch = '' postPatch = ''
substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge" substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity' substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
patchShebangs scripts/linux/emit-vector-piggy
patchShebangs scripts/linux/generate-lv2-ttl
''; '';
installPhase = '' installPhase = ''

View file

@ -2,12 +2,12 @@
let let
pname = "ledger-live-desktop"; pname = "ledger-live-desktop";
version = "2.23.0"; version = "2.24.0";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage"; url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
sha256 = "0id9zbpfq3knv8qwkhplbl9pwrvdkn212pafwh4vpjbbp4yimhq5"; sha256 = "1xdqj825vwh3kg35v7568zr1jhvldb4wcazzgzcaawkr4qzfdb2n";
}; };
appimageContents = appimageTools.extractType2 { appimageContents = appimageTools.extractType2 {

View file

@ -10,15 +10,13 @@
, randomx, zeromq, libgcrypt, libgpgerror , randomx, zeromq, libgcrypt, libgpgerror
, hidapi, rapidjson, quirc , hidapi, rapidjson, quirc
, trezorSupport ? true , trezorSupport ? true
, libusb1 ? null , libusb1
, protobuf ? null , protobuf
, python3 ? null , python3
}: }:
with lib; with lib;
assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
let let
arch = if stdenv.isx86_64 then "x86-64" arch = if stdenv.isx86_64 then "x86-64"
else if stdenv.isi686 then "i686" else if stdenv.isi686 then "i686"

View file

@ -2,39 +2,39 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "edit-nightly"; pname = "edit-nightly";
version = "20160425"; version = "20180228";
src = fetchgit { src = fetchgit {
url = "git://c9x.me/ed.git"; url = "git://c9x.me/ed.git";
rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484"; rev = "77d96145b163d79186c722a7ffccfff57601157c";
sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v"; sha256 = "0rsmp7ydmrq3xx5q19566is9a2v2w5yfsphivfc7j4ljp32jlyyy";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [
buildInputs = [ unzip
pkg-config pkg-config
ncurses cwebbin
libX11
libXft
cwebbin
]; ];
buildPhase = '' buildInputs = [
ncurses
libX11
libXft
];
preBuild = ''
ctangle *.w ctangle *.w
make
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin/ install -Dm755 obj/edit -t $out/bin
cp obj/edit $out/bin/edit
''; '';
meta = with lib; { meta = with lib; {
description = "A relaxing mix of Vi and ACME"; description = "A relaxing mix of Vi and ACME";
homepage = "http://c9x.me/edit"; homepage = "https://c9x.me/edit";
license = licenses.publicDomain; license = licenses.publicDomain;
maintainers = [ maintainers.vrthra ]; maintainers = [ maintainers.vrthra ];
platforms = platforms.linux; platforms = platforms.all;
}; };
} }

View file

@ -337,7 +337,7 @@ in
name = "mps-${version}"; name = "mps-${version}";
version = "2020.3.1"; /* updated by script */ version = "2020.3.1"; /* updated by script */
description = "Create your own domain-specific language"; description = "Create your own domain-specific language";
license = lib.licenses.unfree; license = lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz"; url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz";
sha256 = "0qvl724mm53rxfhafl6561rhpwppcadmwr9sh0hpsfgsprh2xznv"; /* updated by script */ sha256 = "0qvl724mm53rxfhafl6561rhpwppcadmwr9sh0hpsfgsprh2xznv"; /* updated by script */

View file

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp #!nix-shell -i perl -p perl perlPackages.LWPProtocolHttps perlPackages.FileSlurp
use strict; use strict;
use List::Util qw(reduce); use List::Util qw(reduce);

View file

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem { stdenv, lib, makeDesktopItem
, unzip, libsecret, libXScrnSaver, wrapGAppsHook , unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
, systemd, fontconfig, libdbusmenu , systemd, fontconfig, libdbusmenu
@ -60,7 +60,7 @@ in
''; '';
}; };
buildInputs = [ libsecret libXScrnSaver ] buildInputs = [ libsecret libXScrnSaver libxshmfence ]
++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages); ++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages);
runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ]; runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fondo"; pname = "fondo";
version = "1.5.1"; version = "1.5.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "calo001"; owner = "calo001";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-eGHgZm9Q6JnY6OQNAyrFvRsuyuFnruMJNckOCCiO4Ug="; sha256 = "sha256-EATZRmYSGUzWYaPqFT4mLTGGvwUp+Mn93yMF2JsPaYo=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,48 +1,113 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d, { lib
xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook, , mkDerivation
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig, , fetchFromGitHub
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkg-config, mpi, , fetchpatch
spaceNavSupport ? true, libspnav, qtx11extras }: , cmake
, ninja
, GitPython
, boost
, coin3d
, eigen
, gfortran
, gts
, hdf5
, libGLU
, libXmu
, libf2c
, libspnav
, matplotlib
, medfile
, mpi
, ode
, opencascade-occt
, pivy
, pkg-config
, pycollada
, pyside2
, pyside2-tools
, python
, pyyaml
, qtbase
, qttools
, qtwebengine
, qtx11extras
, qtxmlpatterns
, scipy
, shiboken2
, soqt
, spaceNavSupport ? true
, swig
, vtk
, wrapQtAppsHook
, xercesc
, zlib
}:
let mkDerivation rec {
pythonPackages = python3Packages; pname = "freecad";
in mkDerivation rec { version = "0.19.1";
pname = "freecad-unstable";
version = "2020-12-08";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FreeCAD"; owner = "FreeCAD";
repo = "FreeCAD"; repo = "FreeCAD";
rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7"; rev = version;
sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina"; hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
ninja ninja
pkg-config pkg-config
pythonPackages.pyside2-tools pyside2-tools
wrapQtAppsHook wrapQtAppsHook
]; ];
buildInputs = [ buildInputs = [
coin3d xercesc ode eigen opencascade-occt gts
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
] ++ (with pythonPackages; [
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
GitPython # for addon manager GitPython # for addon manager
scipy pyyaml # (at least for) PyrateWorkbench boost
]) ++ lib.optionals spaceNavSupport [ libspnav qtx11extras ]; coin3d
eigen
gfortran
gts
hdf5
libGLU
libXmu
libf2c
matplotlib
medfile
mpi
ode
opencascade-occt
pivy
pycollada
pyside2
pyside2-tools
python
pyyaml # (at least for) PyrateWorkbench
qtbase
qttools
qtwebengine
qtxmlpatterns
scipy
shiboken2
soqt
swig
vtk
xercesc
zlib
] ++ lib.optionals spaceNavSupport [
libspnav
qtx11extras
];
cmakeFlags = [ cmakeFlags = [
"-DBUILD_QT5=ON" "-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include" "-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken" "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include" ("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+ ";${pythonPackages.pyside2}/include/PySide2/QtCore" + ";${pyside2}/include/PySide2/QtCore"
+ ";${pythonPackages.pyside2}/include/PySide2/QtWidgets" + ";${pyside2}/include/PySide2/QtWidgets"
+ ";${pythonPackages.pyside2}/include/PySide2/QtGui" + ";${pyside2}/include/PySide2/QtGui"
) )
"-DPYSIDE_LIBRARY=PySide2::pyside2" "-DPYSIDE_LIBRARY=PySide2::pyside2"
]; ];
@ -65,13 +130,31 @@ in mkDerivation rec {
postFixup = '' postFixup = ''
mv $out/share/doc $out mv $out/share/doc $out
ln -s $out/bin/FreeCAD $out/bin/freecad
ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
''; '';
meta = with lib; { meta = with lib; {
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
homepage = "https://www.freecadweb.org/"; homepage = "https://www.freecadweb.org/";
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
longDescription = ''
FreeCAD is an open-source parametric 3D modeler made primarily to design
real-life objects of any size. Parametric modeling allows you to easily
modify your design by going back into your model history and changing its
parameters.
FreeCAD allows you to sketch geometry constrained 2D shapes and use them
as a base to build other objects. It contains many components to adjust
dimensions or extract design details from 3D models to create high quality
production ready drawings.
FreeCAD is designed to fit a wide range of uses including product design,
mechanical engineering and architecture. Whether you are a hobbyist, a
programmer, an experienced CAD user, a student or a teacher, you will feel
right at home with FreeCAD.
'';
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;
maintainers = with maintainers; [ viric gebner ]; maintainers = with maintainers; [ viric gebner AndersonTorres ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -1,6 +1,7 @@
{ stdenv { stdenv
, lib , lib
, fetchurl , fetchurl
, fetchpatch
, substituteAll , substituteAll
, autoreconfHook , autoreconfHook
, pkg-config , pkg-config
@ -72,6 +73,12 @@ in stdenv.mkDerivation rec {
# Use absolute paths instead of relying on PATH # Use absolute paths instead of relying on PATH
# to make sure plug-ins are loaded by the correct interpreter. # to make sure plug-ins are loaded by the correct interpreter.
./hardcode-plugin-interpreters.patch ./hardcode-plugin-interpreters.patch
# Fix crash without dot.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,31 +1,53 @@
{ lib
, mkDerivation
, fetchFromGitHub
, fetchurl
, qmake
, qttools
, zlib
}:
/* /*
To use aditional parts libraries To use aditional parts libraries
set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/ set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
*/ */
{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, zlib }: let
parts = fetchurl {
url = "https://web.archive.org/web/20190715142541/https://www.ldraw.org/library/updates/complete.zip";
sha256 = "sha256-PW3XCbFwRaNkx4EgCnl2rXH7QgmpNgjTi17kZ5bladA=";
};
stdenv.mkDerivation rec { in
mkDerivation rec {
pname = "leocad"; pname = "leocad";
version = "19.07.1"; version = "21.03";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "leozide"; owner = "leozide";
repo = "leocad"; repo = "leocad";
rev = "v${version}"; rev = "v${version}";
sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2"; sha256 = "sha256-69Ocfk5dBXwcRqAZWEP9Xg41o/tAQo76dIOk9oYhCUE=";
}; };
nativeBuildInputs = [ qmake4Hook ]; nativeBuildInputs = [ qmake qttools ];
buildInputs = [ qt4 zlib ];
postPatch = '' buildInputs = [ zlib ];
export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
''; qmakeFlags = [
"INSTALL_PREFIX=${placeholder "out"}"
"DISABLE_UPDATE_CHECK=1"
];
qtWrapperArgs = [
"--set-default LEOCAD_LIB ${parts}"
];
meta = with lib; { meta = with lib; {
description = "CAD program for creating virtual LEGO models"; description = "CAD program for creating virtual LEGO models";
homepage = "https://www.leocad.org/"; homepage = "https://www.leocad.org/";
license = licenses.gpl2; license = licenses.gpl2Only;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -2,12 +2,12 @@
, pango, fribidi, harfbuzz, pcre, pkg-config , pango, fribidi, harfbuzz, pcre, pkg-config
, ncursesSupport ? true, ncurses ? null , ncursesSupport ? true, ncurses ? null
, waylandSupport ? true, wayland ? null, wayland-protocols ? null , waylandSupport ? true, wayland ? null, wayland-protocols ? null
, x11Support ? true, xlibs ? null, xorg ? null , x11Support ? true, xorg ? null
}: }:
assert ncursesSupport -> ncurses != null; assert ncursesSupport -> ncurses != null;
assert waylandSupport -> ! lib.elem null [wayland wayland-protocols]; assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
assert x11Support -> xlibs != null && xorg != null; assert x11Support -> xorg != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bemenu"; pname = "bemenu";
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
] ++ optional ncursesSupport ncurses ] ++ optional ncursesSupport ncurses
++ optionals waylandSupport [ wayland wayland-protocols ] ++ optionals waylandSupport [ wayland wayland-protocols ]
++ optionals x11Support [ ++ optionals x11Support [
xlibs.libX11 xlibs.libXinerama xlibs.libXft xorg.libX11 xorg.libXinerama xorg.libXft
xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
]; ];

View file

@ -36,11 +36,15 @@ mkDerivation rec {
--subst-var-by qttranslations ${qttranslations} --subst-var-by qttranslations ${qttranslations}
''; '';
# Wayland support is broken.
# https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315
qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];
meta = with lib; { meta = with lib; {
description = "Mail system tray notification icon for Thunderbird"; description = "Mail system tray notification icon for Thunderbird";
homepage = "https://github.com/gyunaev/birdtray"; homepage = "https://github.com/gyunaev/birdtray";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ Flakebi ]; maintainers = with maintainers; [ Flakebi oxalica ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -5,7 +5,7 @@
let let
perlDeps = perlDeps =
[ perlPackages.MIMEtools perlPackages.HTMLParser ] [ perlPackages.MIMETools perlPackages.HTMLParser ]
++ lib.optional cursesSupport perlPackages.CursesUI ++ lib.optional cursesSupport perlPackages.CursesUI
++ lib.optional uriFindSupport perlPackages.URIFind; ++ lib.optional uriFindSupport perlPackages.URIFind;

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
JSON JSON
ImageExifTool ImageExifTool
librelative librelative
LWPUserAgent LWP
LWPProtocolHttps LWPProtocolHttps
MP3Info MP3Info
MP3Tag MP3Tag

View file

@ -18,14 +18,14 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "jrnl"; pname = "jrnl";
version = "2.7"; version = "2.7.1";
format = "pyproject"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jrnl-org"; owner = "jrnl-org";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1hyjjw9mxy73n3pkliaaif135h2sd4iy43pw9d5zynid5abnr3yz"; sha256 = "1m1shgnvwzzs0g6ph7rprwxd7w8zj0x4sbgiqsv9z41k6li7xj4r";
}; };
nativeBuildInputs = [ poetry ]; nativeBuildInputs = [ poetry ];

View file

@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
multiPkgs = null; # no 32bit needed multiPkgs = null; # no 32bit needed
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.libsecret p.libsecret
p.xlibs.libxkbfile p.xorg.libxkbfile
]; ];
# Strip version from binary name. # Strip version from binary name.

View file

@ -0,0 +1,61 @@
{ lib
, python3
, fetchFromGitLab
, appstream
, desktop-file-utils
, glib
, gobject-introspection
, gtk3
, libhandy
, librsvg
, meson
, ninja
, pkg-config
, poppler_gi
, wrapGAppsHook
}:
python3.pkgs.buildPythonApplication rec {
pname = "metadata-cleaner";
version = "1.0.3";
format = "other";
src = fetchFromGitLab {
owner = "rmnvgr";
repo = "metadata-cleaner";
rev = "v${version}";
sha256 = "06dzfcnjb1xd8lk0r7bi4i784gfj8r7habbjbk2c4vn2847v71lf";
};
nativeBuildInputs = [
appstream
desktop-file-utils
glib
gtk3
meson
ninja
pkg-config
wrapGAppsHook
];
buildInputs = [
gobject-introspection
gtk3
libhandy
librsvg
poppler_gi
];
propagatedBuildInputs = with python3.pkgs; [
mat2
pygobject3
];
meta = with lib; {
description = "Python GTK application to view and clean metadata in files, using mat2";
homepage = "https://gitlab.com/rmnvgr/metadata-cleaner";
license = with licenses; [ gpl3Plus cc-by-sa-40 ];
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -15,16 +15,17 @@
mkDerivationWith stdenv.mkDerivation rec { mkDerivationWith stdenv.mkDerivation rec {
pname = "qcad"; pname = "qcad";
version = "3.25.2.0"; version = "3.26.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qcad"; owner = "qcad";
repo = "qcad"; repo = "qcad";
rev = "v${version}"; rev = "v${version}";
sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz"; sha256 = "sha256-V+QlwM8BWmcarwZtqJfc+MYHOZgIH1W5R8m2EHhNJls=";
}; };
patches = [ patches = [
# Patch directory lookup, remove __DATE__ and executable name
./application-dir.patch ./application-dir.patch
]; ];
@ -90,12 +91,10 @@ mkDerivationWith stdenv.mkDerivation rec {
qttools qttools
]; ];
enableParallelBuilding = true;
meta = with lib; { meta = with lib; {
description = "2D CAD package based on Qt"; description = "2D CAD package based on Qt";
homepage = "https://qcad.org"; homepage = "https://qcad.org";
license = licenses.gpl3; license = licenses.gpl3Only;
maintainers = with maintainers; [ yvesf ]; maintainers = with maintainers; [ yvesf ];
platforms = qtbase.meta.platforms; platforms = qtbase.meta.platforms;
}; };

View file

@ -6,7 +6,7 @@
, pkg-config , pkg-config
, glib , glib
, gtk3 , gtk3
, gnome3 , libgee
, meson , meson
, ninja , ninja
, gobject-introspection , gobject-introspection
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
pantheon.elementary-icon-theme pantheon.elementary-icon-theme
pantheon.granite pantheon.granite
glib glib
gnome3.libgee libgee
gsettings-desktop-schemas gsettings-desktop-schemas
gtk3 gtk3
]; ];

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tickrs"; pname = "tickrs";
version = "0.14.2"; version = "0.14.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tarkah"; owner = "tarkah";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-8m4mIXTqc6rDMIjODbHJL7ipH5Y4WwgsWcSmw/SaiIo="; sha256 = "sha256-mHMBhYI9pJkuK/6tCg1fXPjTfGFe0gkMzplesuFvl5M=";
}; };
cargoSha256 = "sha256-ZcRFQT2CxqpO35UqK79g2Jq5SPOLZ88WiG36issC5kY="; cargoSha256 = "sha256-XmLobbVTYO8dA8YVtI/ntlD1RB9sO3poP6NBdDOPIlE=";
nativeBuildInputs = [ perl ]; nativeBuildInputs = [ perl ];

View file

@ -6,7 +6,7 @@
, jbig2dec , jbig2dec
, libjpeg , libjpeg
, mupdf , mupdf
, openjpeg_2 , openjpeg
, pkg-config , pkg-config
, zathura_core , zathura_core
}: }:
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
jbig2dec jbig2dec
libjpeg libjpeg
mupdf mupdf
openjpeg_2 openjpeg
zathura_core zathura_core
] ++ lib.optional stdenv.isDarwin gtk-mac-integration; ] ++ lib.optional stdenv.isDarwin gtk-mac-integration;

View file

@ -90,11 +90,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "brave"; pname = "brave";
version = "1.21.76"; version = "1.21.77";
src = fetchurl { src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "JFZaPS9NmwZeyEdDqOrKG9VEQP7wIyqkR/Sk44GVxps="; sha256 = "Q7paeGAvdmc4+FP28ASLlJhN1ui7M5fDpxnrh+gbEm4=";
}; };
dontConfigure = true; dontConfigure = true;

View file

@ -89,5 +89,6 @@ mkChromiumDerivation (base: rec {
then ["aarch64-linux" "x86_64-linux"] then ["aarch64-linux" "x86_64-linux"]
else []; else [];
timeout = 172800; # 48 hours (increased from the Hydra default of 10h) timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
broken = elem channel [ "beta" "dev" ]; # Build requires LLVM 12
}; };
}) })

View file

@ -18,9 +18,9 @@
} }
}, },
"beta": { "beta": {
"version": "90.0.4430.19", "version": "90.0.4430.30",
"sha256": "174isyx4g62d8ggn9imp41dfklcbxi3y5nfprm4jbjmn5cb7v8xa", "sha256": "01b6naziii72pvw35wphfqz3inih75is038yf1mdp1847jbvxpwp",
"sha256bin64": "0z665iykdsmjrjbijsrcq80y2anvcfykasznf8w4brg9l9k59wv8", "sha256bin64": "0k48mfzmyjb0w75fkm2j7ll340qgmzvmskz12awc2l19hgnw1s8p",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-02-09", "version": "2021-02-09",

View file

@ -3,7 +3,6 @@
, fetchFromGitLab , fetchFromGitLab
, meson , meson
, ninja , ninja
, cmake
, pkg-config , pkg-config
, libhandy , libhandy
, modemmanager , modemmanager
@ -13,35 +12,46 @@
, feedbackd , feedbackd
, callaudiod , callaudiod
, evolution-data-server , evolution-data-server
, glib
, folks , folks
, desktop-file-utils , desktop-file-utils
, appstream-glib
, libpeas , libpeas
, dbus , dbus
, vala , vala
, wrapGAppsHook , wrapGAppsHook
, xvfb_run , xvfb_run
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, gobject-introspection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "calls"; pname = "calls";
version = "0.2.0"; version = "0.3.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 = "1qmjdhnr95dawccw1ss8hc3lk0cypj86xg2amjq7avzn86ryd76l"; sha256 = "0igap5ynq269xqaky6fqhdg2dpsvxa008z953ywa4s5b5g5dk3dd";
}; };
outputs = [ "out" "devdoc" ];
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pkg-config pkg-config
desktop-file-utils desktop-file-utils
appstream-glib
vala vala
cmake
wrapGAppsHook wrapGAppsHook
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
]; ];
buildInputs = [ buildInputs = [
@ -62,10 +72,10 @@ stdenv.mkDerivation rec {
xvfb_run xvfb_run
]; ];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
mesonFlags = [ mesonFlags = [
# docs fail to build "-Dgtk_doc=true"
# https://source.puri.sm/Librem5/calls/issues/99
"-Dgtk_doc=false"
]; ];
doCheck = true; doCheck = true;
@ -73,6 +83,7 @@ stdenv.mkDerivation rec {
checkPhase = '' checkPhase = ''
runHook preCheck runHook preCheck
NO_AT_BRIDGE=1 \ NO_AT_BRIDGE=1 \
XDG_DATA_DIRS=${folks}/share/gsettings-schemas/${folks.name} \
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
--config-file=${dbus.daemon}/share/dbus-1/session.conf \ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
meson test --print-errorlogs meson test --print-errorlogs

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "fluxctl"; pname = "fluxctl";
version = "1.21.2"; version = "1.22.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "weaveworks"; owner = "weaveworks";
repo = "flux"; repo = "flux";
rev = version; rev = version;
sha256 = "sha256-pI/LGAjTWFXiDKSV+dZl0wXK/TZmN9DuWf5Nu8EYNYc="; sha256 = "sha256-7uS8704YZ7lQTSSnbVvc6T5iadl02TeVpwVPf2uS9L4=";
}; };
vendorSha256 = "sha256-Q8gIhJSZqdjBXrIcJfCd25BniDScwVzUwZ9Vc8p/z3c="; vendorSha256 = "sha256-oqfJaQA8ybh0UNWYJ2ukoWkwdgORwvXzRCquGstwA4M=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -2,12 +2,12 @@
let let
pname = "lens"; pname = "lens";
version = "3.6.7"; version = "4.1.4";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.AppImage"; url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage";
sha256 = "0var7d31ab6lq2vq6brk2dnhlnhqjp2gdqhygif567cdmcpn4vz8"; sha256 = "0g7k3sld6m31qi0zc9z5gydi60waw7ykwz48qnyg77xz1cpm6z5x";
name="${pname}.AppImage"; name="${pname}.AppImage";
}; };

View file

@ -3,7 +3,7 @@
pkgs.mkShell { pkgs.mkShell {
buildInputs = [ buildInputs = [
pkgs.poetry2nix.cli pkgs.poetry2nix.cli
pkgs.pkgconfig pkgs.pkg-config
pkgs.libvirt pkgs.libvirt
pkgs.poetry pkgs.poetry
]; ];

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "terragrunt"; pname = "terragrunt";
version = "0.28.12"; version = "0.28.15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-oHujPgnS76FYihzZV5ZzPP+4+77zNtYozH9jhqJJyVI="; sha256 = "sha256-PhTFgYoSaGv54uak8QB7p963OBSgo9s1UM9/XBmYC8g=";
}; };
vendorSha256 = "sha256-SVrDBDGK809O+RaE3gOa9U1agY6hSGI/k3FUCgm+5PA="; vendorSha256 = "sha256-vHKqowc3euQQyvgfaTbIgSXOhPcf2nSoteQK0a574Kc=";
doCheck = false; doCheck = false;

View file

@ -2,17 +2,17 @@
buildGoModule rec { buildGoModule rec {
pname = "waypoint"; pname = "waypoint";
version = "0.2.3"; version = "0.2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hashicorp"; owner = "hashicorp";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-FTBBDKFUoyC+Xdm3+2QWXK57fLwitYrFP89OvAyHHVY="; sha256 = "sha256-6sV2e/m0qVSRWgdvVZ9VxEL/J57nTcTClxHF5X8/8PQ=";
}; };
deleteVendor = true; deleteVendor = true;
vendorSha256 = "sha256-ihelAumTRgLALevJdVq3V3SISitiRPCQZUh2h5/eczA="; vendorSha256 = "sha256-NPE3YHulqllWDGrxQgPmy/KKE7xFPOUorLQNIU8cP50=";
nativeBuildInputs = [ go-bindata ]; nativeBuildInputs = [ go-bindata ];

View file

@ -17,11 +17,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "filezilla"; pname = "filezilla";
version = "3.51.0"; version = "3.52.2";
src = fetchurl { src = fetchurl {
url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2"; url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
sha256 = "0k3c7gm16snc6dr9a3xgq14ajyqj4hxcrd6hk6jk5fsi9x51rgl2"; sha256 = "sha256-wHiIFpKKJuiGPH3CaxWGROcb7ylAbffS7aN9xIENbN8=";
}; };
# https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769 # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769

View file

@ -2,7 +2,7 @@
"name": "element-desktop", "name": "element-desktop",
"productName": "Element", "productName": "Element",
"main": "src/electron-main.js", "main": "src/electron-main.js",
"version": "1.7.22", "version": "1.7.23",
"description": "A feature-rich client for Matrix.org", "description": "A feature-rich client for Matrix.org",
"author": "Element", "author": "Element",
"repository": { "repository": {

View file

@ -8,12 +8,12 @@
let let
executableName = "element-desktop"; executableName = "element-desktop";
version = "1.7.22"; version = "1.7.23";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vector-im"; owner = "vector-im";
repo = "element-desktop"; repo = "element-desktop";
rev = "v${version}"; rev = "v${version}";
sha256 = "152ggkkk997pg3xdcdzn3samv3vsb6qifgkyl82bnwchy8y3611d"; sha256 = "0vvjbh81h6sg6dbm9d6ffav0dim9sadvs67jcm702677qgigkc53";
}; };
in mkYarnPackage rec { in mkYarnPackage rec {
name = "element-desktop-${version}"; name = "element-desktop-${version}";

View file

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "element-web"; pname = "element-web";
version = "1.7.22"; version = "1.7.23";
src = fetchurl { src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz"; url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
sha256 = "1aaa986h38kkrnyhb1y65d73idsxmkmi201511az9zlz9210ih59"; sha256 = "10n899gc3qcjy2cskk0whwz60pnvh500x1b57kn22l9bhkg9xkvp";
}; };
installPhase = '' installPhase = ''

View file

@ -87,8 +87,9 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Matrix group messaging app"; description = "Matrix group messaging app";
homepage = "https://gitlab.gnome.org/GNOME/fractal"; homepage = "https://gitlab.gnome.org/GNOME/fractal";
license = licenses.gpl3Plus; license = licenses.gpl3;
broken = stdenv.isDarwin; # couldn't read /build/source/build/podcasts-gtk/resources/resources.gresource: No such file or directory (os error 2)
broken = true;
maintainers = with maintainers; [ dtzWill worldofpeace ]; maintainers = with maintainers; [ dtzWill worldofpeace ];
}; };
} }

View file

@ -4,7 +4,7 @@
, autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null , autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null
, notifySupport ? true, libnotify ? null, gdk-pixbuf ? null , notifySupport ? true, libnotify ? null, gdk-pixbuf ? null
, traySupport ? true, gnome2 ? null , traySupport ? true, gtk2 ? null
, pgpSupport ? true, gpgme ? null , pgpSupport ? true, gpgme ? null
, pythonPluginSupport ? true, python ? null , pythonPluginSupport ? true, python ? null
, omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null , omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null
@ -12,7 +12,7 @@
assert autoAwaySupport -> libXScrnSaver != null && libX11 != null; assert autoAwaySupport -> libXScrnSaver != null && libX11 != null;
assert notifySupport -> libnotify != null && gdk-pixbuf != null; assert notifySupport -> libnotify != null && gdk-pixbuf != null;
assert traySupport -> gnome2 != null; assert traySupport -> gtk2 != null;
assert pgpSupport -> gpgme != null; assert pgpSupport -> gpgme != null;
assert pythonPluginSupport -> python != null; assert pythonPluginSupport -> python != null;
assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null; assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null;
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
curl libmesode cmocka libmicrohttpd sqlite curl libmesode cmocka libmicrohttpd sqlite
] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ] ] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ]
++ optionals notifySupport [ libnotify gdk-pixbuf ] ++ optionals notifySupport [ libnotify gdk-pixbuf ]
++ optionals traySupport [ gnome2.gtk ] ++ optionals traySupport [ gtk2 ]
++ optionals pgpSupport [ gpgme ] ++ optionals pgpSupport [ gpgme ]
++ optionals pythonPluginSupport [ python ] ++ optionals pythonPluginSupport [ python ]
++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ]; ++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig { lib, stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
, freetype, gdk-pixbuf, glib, gnome2, nspr, nss, pango, udev, xorg }: , freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
let let
fullPath = lib.makeLibraryPath [ fullPath = lib.makeLibraryPath [
alsaLib alsaLib
@ -13,7 +13,7 @@ let
gdk-pixbuf gdk-pixbuf
glib glib
gnome2.GConf gnome2.GConf
gnome2.gtk gtk2
nspr nspr
nss nss
pango pango

View file

@ -82,6 +82,11 @@ stdenv.mkDerivation rec {
echo "Adding runtime dependencies to RPATH of Node module $mod" echo "Adding runtime dependencies to RPATH of Node module $mod"
patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod" patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
done; done;
# fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406
# while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue
# another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning
substituteInPlace "$out/bin/teams" --replace '.teams-wrapped" --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox'
''; '';
meta = with lib; { meta = with lib; {

View file

@ -22,13 +22,13 @@ let
pname = "wire-desktop"; pname = "wire-desktop";
version = { version = {
x86_64-darwin = "3.21.3959"; x86_64-darwin = "3.23.4046";
x86_64-linux = "3.22.2937"; x86_64-linux = "3.23.2938";
}.${system} or throwSystem; }.${system} or throwSystem;
sha256 = { sha256 = {
x86_64-darwin = "0fgzzqf1wnkjbcr0j0vjn6sggkz0z1kx6w4gi7gk4c4markdicm1"; x86_64-darwin = "19k8102chh4yphk89kiz83yarawnzdnsq0hbsqpjdhbmarqjcd9s";
x86_64-linux = "1pl2dsrgckkd8mm0cpxrz8i8rn4jfx7b9lvdyc8392sbq4chjcb7"; x86_64-linux = "1cx5azl5dvya1hf0gayafm4rg6ccmmq978xsgm6lf0rlb4kirj65";
}.${system} or throwSystem; }.${system} or throwSystem;
meta = with lib; { meta = with lib; {

View file

@ -28,7 +28,7 @@ perlPackages.buildPerlPackage rec {
propagatedBuildInputs = [ openssl ]; propagatedBuildInputs = [ openssl ];
checkInputs = with perlPackages; [ TestDeep TestMore ]; checkInputs = with perlPackages; [ TestDeep ];
postPatch = '' postPatch = ''
patchShebangs script/convos patchShebangs script/convos

View file

@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "msmtp"; pname = "msmtp";
version = "1.8.14"; version = "1.8.15";
src = fetchurl { src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
sha256 = "1W8GXXEUhunCNGGFFaAqSKSNq0BRs08+EI++y2+3c7Q="; sha256 = "sha256-ImXcY56/Lt8waf/+CjvXZ0n4tY9AAdXN6uGYc5SQmc4=";
}; };
patches = [ patches = [

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl { stdenv, fetchurl
, gnome3 , glade
, gnunet , gnunet
, gnutls , gnutls
, gtk3 , gtk3
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ buildInputs = [
gnome3.glade glade
gnunet gnunet
gnutls gnutls
gtk3 gtk3
@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
meta = gnunet.meta // { meta = gnunet.meta // {
description = "GNUnet GTK User Interface"; description = "GNUnet GTK User Interface";
homepage = "https://git.gnunet.org/gnunet-gtk.git"; homepage = "https://git.gnunet.org/gnunet-gtk.git";
# configure: error: compiling gnunet-gtk requires GNUnet core headers
broken = true;
}; };
} }

View file

@ -12,7 +12,7 @@
, pcre , pcre
# Build options # Build options
, enableGTK3 ? false , enableGTK3 ? false
, gnome3 , gtk3
, xorg , xorg
, wrapGAppsHook , wrapGAppsHook
, enableQt ? false , enableQt ? false
@ -65,7 +65,7 @@ in stdenv.mkDerivation {
pcre pcre
] ]
++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ] ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ] ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
++ lib.optionals enableSystemd [ systemd ] ++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ] ++ lib.optionals stdenv.isLinux [ inotify-tools ]
; ;

View file

@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol"; description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
license = licenses.lgpl21; license = licenses.lgpl21;
platforms = platforms.linux; platforms = platforms.linux;
broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
}; };
} }

View file

@ -21,7 +21,7 @@
# Runtime dependencies; # Runtime dependencies;
# A few additional ones (e.g. Node) are already shipped together with the # A few additional ones (e.g. Node) are already shipped together with the
# AppImage, so we don't have to duplicate them here. # AppImage, so we don't have to duplicate them here.
alsaLib, dbus-glib, fuse, gnome3, libdbusmenu-gtk2, udev, nss alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss
}: }:
let let
@ -56,7 +56,7 @@ in stdenv.mkDerivation {
alsaLib alsaLib
dbus-glib dbus-glib
fuse fuse
gnome3.gtk gtk3
libdbusmenu-gtk2 libdbusmenu-gtk2
nss nss
udev udev
@ -92,7 +92,7 @@ in stdenv.mkDerivation {
# This is required for the file picker dialog - otherwise pcloud just # This is required for the file picker dialog - otherwise pcloud just
# crashes # crashes
export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gnome3.gtk}/share/gsettings-schemas/${gnome3.gtk.name}:$XDG_DATA_DIRS" export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
exec "$out/app/pcloud" exec "$out/app/pcloud"
EOF EOF

View file

@ -18,13 +18,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "freerdp"; pname = "freerdp";
version = "2.3.1"; version = "2.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FreeRDP"; owner = "FreeRDP";
repo = "FreeRDP"; repo = "FreeRDP";
rev = version; rev = version;
sha256 = "sha256-qKvzxIFUiRoX/fCTDoGOGFMfzMTCRq+A5b9K2J2Wnwk="; sha256 = "sha256-qqpdMBDcVfXm/KB54zv23O8raGqBhAKqXo6Kj2VaI8w=";
}; };
postPatch = '' postPatch = ''

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "onedrive"; pname = "onedrive";
version = "2.4.7"; version = "2.4.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "abraunegg"; owner = "abraunegg";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "12g2z6c4f65y8cc7vyhk9nlg1mpbsmlsj7ghlny452qhr13m7qpn"; sha256 = "sha256:0dvxjkni66g82j9wr6yy07sn7d7yr7bbc0py89pxybvsbid88l65";
}; };
nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ]; nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];

View file

@ -15,7 +15,7 @@
, gdk-pixbuf , gdk-pixbuf
, glib , glib
, glibc , glibc
, gnome3 , gsettings-desktop-schemas
, gst_all_1 , gst_all_1
, gtk2 , gtk2
, gtk3 , gtk3
@ -95,7 +95,7 @@ in stdenv.mkDerivation rec {
fontconfig fontconfig
gdk-pixbuf gdk-pixbuf
glib glib
gnome3.gsettings_desktop_schemas gsettings-desktop-schemas
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-base
gst_all_1.gstreamer gst_all_1.gstreamer
gtk2 gtk2

View file

@ -24,11 +24,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "PortfolioPerformance"; pname = "PortfolioPerformance";
version = "0.51.1"; version = "0.51.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "sha256-sQisFv+MVGod/gmF0/EWNDvYzkpF3qbDuL5eDr7w0Bs="; sha256 = "sha256-5wBzGj4DkTOqtN7X8/EBDoiBtbYB6vGJJ5IkuME7a9A=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config { lib, stdenv, fetchFromGitHub, cmake, pkg-config
, mpg123, SDL2, gnome3, faad2, pcre , mpg123, SDL2, gtkmm3, faad2, pcre
} : } :
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ faad2 mpg123 SDL2 gnome3.gtkmm pcre ]; buildInputs = [ faad2 mpg123 SDL2 gtkmm3 pcre ];
meta = with lib; { meta = with lib; {
description = "Play DAB/DAB+ from ETI-NI aligned stream"; description = "Play DAB/DAB+ from ETI-NI aligned stream";

View file

@ -1,18 +1,18 @@
{ lib, stdenv, fetchFromGitHub, python3, which, dmd, ldc, zlib }: { lib, stdenv, fetchFromGitHub, python3, which, ldc, zlib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sambamba"; pname = "sambamba";
version = "0.7.1"; version = "0.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "biod"; owner = "biod";
repo = "sambamba"; repo = "sambamba";
rev = "v${version}"; rev = "v${version}";
sha256 = "0k5wy06zrbsc40x6answgz7rz2phadyqwlhi9nqxbfqanbg9kq20"; sha256 = "sha256:0kx5a0fmvv9ldz2hnh7qavgf7711kqc73zxf51k4cca4hr58zxr9";
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ which python3 dmd ldc ]; nativeBuildInputs = [ which python3 ldc ];
buildInputs = [ zlib ]; buildInputs = [ zlib ];
# Upstream's install target is broken; copy manually # Upstream's install target is broken; copy manually

View file

@ -6,7 +6,7 @@
, epoxy , epoxy
, fetchFromGitHub , fetchFromGitHub
, glm , glm
, gnome3 , gtkmm3
, lib , lib
, libgit2 , libgit2
, librsvg , librsvg
@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
curl curl
epoxy epoxy
glm glm
gnome3.gtkmm gtkmm3
libgit2 libgit2
librsvg librsvg
libuuid libuuid

View file

@ -1,6 +1,7 @@
{ lib, stdenv { lib, stdenv
, fetchFromGitLab , fetchFromGitLab
, gnome3 , gnome3
, dconf
, wxGTK30 , wxGTK30
, wxGTK31 , wxGTK31
, makeWrapper , makeWrapper
@ -186,12 +187,12 @@ stdenv.mkDerivation rec {
makeWrapperArgs = with passthru.libraries; [ makeWrapperArgs = with passthru.libraries; [
"--prefix XDG_DATA_DIRS : ${base}/share" "--prefix XDG_DATA_DIRS : ${base}/share"
"--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share" "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share"
"--prefix XDG_DATA_DIRS : ${gnome3.defaultIconTheme}/share" "--prefix XDG_DATA_DIRS : ${gnome3.adwaita-icon-theme}/share"
"--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}" "--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}"
"--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" "--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
# wrapGAppsHook did these two as well, no idea if it matters... # wrapGAppsHook did these two as well, no idea if it matters...
"--prefix XDG_DATA_DIRS : ${cups}/share" "--prefix XDG_DATA_DIRS : ${cups}/share"
"--prefix GIO_EXTRA_MODULES : ${gnome3.dconf}/lib/gio/modules" "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
"--set-default KISYSMOD ${footprints}/share/kicad/modules" "--set-default KISYSMOD ${footprints}/share/kicad/modules"
"--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library" "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"

View file

@ -127,7 +127,7 @@ self = stdenv.mkDerivation {
buildInputs = [ ncurses ] ++ ocamlBuildInputs buildInputs = [ ncurses ] ++ ocamlBuildInputs
++ optionals buildIde ++ optionals buildIde
(if versionAtLeast "8.10" (if versionAtLeast "8.10"
then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ] then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.adwaita-icon-theme wrapGAppsHook ]
else [ ocamlPackages.lablgtk ]); else [ ocamlPackages.lablgtk ]);
postPatch = '' postPatch = ''

View file

@ -5,6 +5,7 @@
, pkg-config , pkg-config
, autoreconfHook , autoreconfHook
, gnome2 , gnome2
, gtk2
, glib , glib
, libtifiles2 , libtifiles2
, libticables2 , libticables2
@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ buildInputs = [
gnome2.gtk gtk2
gnome2.libglade gnome2.libglade
glib glib
libtifiles2 libtifiles2

View file

@ -32,7 +32,6 @@
, ntl , ntl
, numpy , numpy
, pari , pari
, pkgconfig
, pkg-config , pkg-config
, planarity , planarity
, ppl , ppl
@ -86,7 +85,6 @@ buildPythonPackage rec {
cypari2 cypari2
jinja2 jinja2
numpy numpy
pkgconfig
boost boost
arb arb
brial brial

View file

@ -7,6 +7,7 @@
, intltool , intltool
, glib , glib
, gnome2 , gnome2
, gtk2
, gfm , gfm
, libticables2 , libticables2
, libticalcs2 , libticalcs2
@ -36,7 +37,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
glib glib
gnome2.gtk gtk2
gnome2.libglade gnome2.libglade
gfm gfm
libticables2 libticables2

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchgit, makeWrapper, pkg-config, { lib, stdenv, fetchgit, makeWrapper, pkg-config,
gnome2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg, gnome2, gtk2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
configH ? "" configH ? ""
}: }:
@ -14,7 +14,7 @@ stdenv.mkDerivation {
}; };
buildInputs = [ buildInputs = [
gnome2.vte glib pango gnome2.gtk cairo gdk-pixbuf atk freetype xorg.libX11 gnome2.vte glib pango gtk2 cairo gdk-pixbuf atk freetype xorg.libX11
xorg.xorgproto xorg.libXext makeWrapper pkg-config xorg.xorgproto xorg.libXext makeWrapper pkg-config
]; ];

View file

@ -4,6 +4,7 @@
, fetchFromGitLab , fetchFromGitLab
, gettext , gettext
, gnome3 , gnome3
, libgtop
, gtk3 , gtk3
, libhandy , libhandy
, pcre2 , pcre2
@ -33,7 +34,7 @@ stdenv.mkDerivation {
buildInputs = [ buildInputs = [
gettext gettext
gnome3.libgtop libgtop
gnome3.nautilus gnome3.nautilus
gtk3 gtk3
libhandy libhandy

View file

@ -5,7 +5,7 @@
, ninja , ninja
, python3 , python3
, pkg-config , pkg-config
, dmd , ldc
, dconf , dconf
, dbus , dbus
, gsettings-desktop-schemas , gsettings-desktop-schemas
@ -16,17 +16,18 @@
, glib , glib
, wrapGAppsHook , wrapGAppsHook
, libunwind , libunwind
, appstream
}: }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "tilix"; pname = "tilix";
version = "unstable-2019-10-02"; version = "1.9.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gnunn1"; owner = "gnunn1";
repo = "tilix"; repo = "tilix";
rev = "ffcd31e3c0e1a560ce89468152d8726065e8fb1f"; rev = "${version}";
sha256 = "1bzv7xiqhyblz1rw8ln4zpspmml49vnshn1zsv9di5q7kfgpqrgq"; sha256 = "sha256:020gr4q7kmqq8vnsh8rw97gf1p2n1yq4d7ncyjjh9l13zkaxqqv9";
}; };
# Default upstream else LDC fails to link # Default upstream else LDC fails to link
@ -36,12 +37,13 @@ stdenv.mkDerivation {
nativeBuildInputs = [ nativeBuildInputs = [
desktop-file-utils desktop-file-utils
dmd ldc
meson meson
ninja ninja
pkg-config pkg-config
python3 python3
wrapGAppsHook wrapGAppsHook
appstream
]; ];
buildInputs = [ buildInputs = [

View file

@ -2,18 +2,18 @@
buildGoModule rec { buildGoModule rec {
pname = "lab"; pname = "lab";
version = "0.20.0"; version = "0.21.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zaquestion"; owner = "zaquestion";
repo = "lab"; repo = "lab";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-EQqbWM/4CInFNndfD+k7embPUFLXgxRT44e/+Ik2TDs="; sha256 = "sha256-mkhJmrKpIISd0m0m8fQ9vKuEr6h23BBxK6yo5fB+xcA=";
}; };
subPackages = [ "." ]; subPackages = [ "." ];
vendorSha256 = "sha256-T6kGhje3K2HnR8xRuio6AsYbSwIdbWvAk3ZSnbm1NsA="; vendorSha256 = "sha256-cf+DVnGjSNV2eZ8S/Vk+VPlykoSjngrQuPeA9IshBUg=";
doCheck = false; doCheck = false;

View file

@ -1,11 +1,11 @@
{ {
"version": "13.8.5", "version": "13.8.6",
"repo_hash": "0dpyqynd6rscg07s58y0cjn7vfj2h21h51ja0fm6ll76wb02sbm6", "repo_hash": "0izzvr4bw86nbrqkf44gkcf63ham10cw4vp5yk0ylgm7w0kimv8v",
"owner": "gitlab-org", "owner": "gitlab-org",
"repo": "gitlab", "repo": "gitlab",
"rev": "v13.8.5-ee", "rev": "v13.8.6-ee",
"passthru": { "passthru": {
"GITALY_SERVER_VERSION": "13.8.5", "GITALY_SERVER_VERSION": "13.8.6",
"GITLAB_PAGES_VERSION": "1.34.0", "GITLAB_PAGES_VERSION": "1.34.0",
"GITLAB_SHELL_VERSION": "13.15.1", "GITLAB_SHELL_VERSION": "13.15.1",
"GITLAB_WORKHORSE_VERSION": "8.59.2" "GITLAB_WORKHORSE_VERSION": "8.59.2"

View file

@ -33,14 +33,14 @@ let
}; };
}; };
in buildGoModule rec { in buildGoModule rec {
version = "13.8.5"; version = "13.8.6";
pname = "gitaly"; pname = "gitaly";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitaly"; repo = "gitaly";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-hKIjKltPPmz50Ru7elpHdeoyGAqgp+txR3fKleqY7hM="; sha256 = "sha256-6ocP4SMafvLI2jfvcB8jk1AemAI/TiBQ1iaVxK7I54A=";
}; };
vendorSha256 = "sha256-oVw6vXI3CyOn4l02PkYx3HVpZfzQPi3yBuf9tRvoWoM="; vendorSha256 = "sha256-oVw6vXI3CyOn4l02PkYx3HVpZfzQPi3yBuf9tRvoWoM=";

View file

@ -2,8 +2,6 @@
, yacc, libtool, fontconfig, pango, gd, libwebp , yacc, libtool, fontconfig, pango, gd, libwebp
}: }:
assert libpng != null && libjpeg != null && expat != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "graphviz-2.0"; name = "graphviz-2.0";

View file

@ -0,0 +1,23 @@
{ writeShellScript
, nix
, curl
, gzip
, xmlstarlet
, common-updater-scripts
}:
{ attrPath }:
let
url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz";
updateScript = writeShellScript "update.sh" ''
set -ex
attrPath=$1
namespace=$(${nix}/bin/nix-instantiate $systemArg --eval -E "with import ./. {}; $attrPath.namespace" | tr -d '"')
version=$(${curl}/bin/curl -s -L ${url} | ${gzip}/bin/gunzip -c | ${xmlstarlet}/bin/xml select -T -t -m "//addons/addon[@id='$namespace']" -v @version)
${common-updater-scripts}/bin/update-source-version "$attrPath" "$version"
'';
in
[ updateScript attrPath ]

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "certifi";
namespace = "script.module.certifi";
version = "2019.11.28+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "0vsd68izv1ix0hb1gm74qq3zff0sxmhfhjyh7y9005zzp2gpi62v";
};
passthru.updateScript = addonUpdateScript {
attrPath = "kodi.packages.certifi";
};
meta = with lib; {
homepage = "https://certifi.io";
description = "Python package for providing Mozilla's CA Bundle";
license = licenses.mpl20;
};
}

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "chardet";
namespace = "script.module.chardet";
version = "3.0.4+matrix.3";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "05928dj4fsj2zg8ajdial3sdf8izddq64sr0al3zy1gqw91jp80f";
};
passthru.updateScript = addonUpdateScript {
attrPath = "kodi.packages.chardet";
};
meta = with lib; {
homepage = "https://github.com/Freso/script.module.chardet";
description = "Universal encoding detector";
license = licenses.lgpl2Only;
};
}

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchFromGitHub, controller }:
buildKodiAddon rec {
pname = "game-controller-${controller}";
namespace = "game.controller.${controller}";
version = "1.0.3";
sourceDir = "addons/" + namespace;
src = fetchFromGitHub {
owner = "kodi-game";
repo = "kodi-game-controllers";
rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
};
meta = with lib; {
description = "Add support for different gaming controllers.";
platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ];
};
}

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "idna";
namespace = "script.module.idna";
version = "2.8.1+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "02s75fhfmbs3a38wvxba51aj3lv5bidshjdkl6yjfji6waxpr9xh";
};
passthru.updateScript = addonUpdateScript {
attrPath = "kodi.packages.idna";
};
meta = with lib; {
homepage = "https://github.com/Freso/script.module.idna";
description = "Internationalized Domain Names for Python";
license = licenses.bsd3;
};
}

View file

@ -0,0 +1,28 @@
{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss }:
buildKodiBinaryAddon rec {
pname = "inputstream-adaptive";
namespace = "inputstream.adaptive";
version = "2.6.7";
src = fetchFromGitHub {
owner = "peak3d";
repo = "inputstream.adaptive";
rev = "${version}-${rel}";
sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
};
extraBuildInputs = [ expat ];
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
extraInstallPhase = let n = namespace; in ''
ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
'';
meta = with lib; {
homepage = "https://github.com/peak3d/inputstream.adaptive";
description = "Kodi inputstream addon for several manifest types";
platforms = platforms.all;
maintainers = with maintainers; [ sephalon ];
};
}

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "inputstreamhelper";
namespace = "script.module.inputstreamhelper";
version = "0.5.2+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "18lkksljfa57w69yklbldf7dgyykrm84pd10mdjdqdm88fdiiijk";
};
passthru.updateScript = addonUpdateScript {
attrPath = "kodi.packages.inputstreamhelper";
};
meta = with lib; {
homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
license = licenses.mit;
};
}

View file

@ -0,0 +1,21 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml, udev }:
buildKodiBinaryAddon rec {
pname = namespace;
namespace = "peripheral.joystick";
version = "1.7.1";
src = fetchFromGitHub {
owner = "xbmc";
repo = namespace;
rev = "${version}-${rel}";
sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
};
meta = with lib; {
description = "Binary addon for raw joystick input.";
platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ];
};
extraBuildInputs = [ tinyxml udev ];
}

View file

@ -0,0 +1,15 @@
{ stdenv, fetchFromGitHub, cmake, kodi, libcec_platform, tinyxml }:
stdenv.mkDerivation rec {
pname = "kodi-platform";
version = "17.1";
src = fetchFromGitHub {
owner = "xbmc";
repo = pname;
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ kodi libcec_platform tinyxml ];
}

View file

@ -0,0 +1,21 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "myconnpy";
namespace = "script.module.myconnpy";
version = "8.0.18+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
};
passthru.updateScript = addonUpdateScript {
attrPath = "kodi.packages.myconnpy";
};
meta = with lib; {
homepage = "http://dev.mysql.com/doc/connector-python/en/index.html";
description = "MySQL Connector/Python";
license = licenses.gpl2Only;
};
}

View file

@ -0,0 +1,26 @@
{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstreamhelper, requests, myconnpy }:
buildKodiAddon rec {
pname = "netflix";
namespace = "plugin.video.netflix";
version = "1.14.1";
src = fetchFromGitHub {
owner = "CastagnaIT";
repo = namespace;
rev = "v${version}";
sha256 = "0vv3234gg4brp0gvrsl4vdskmpfbyk4z7cjmmj31zn4m8j33japn";
};
propagatedBuildInputs = [
signals
inputstreamhelper
requests
myconnpy
];
meta = with lib; {
homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
description = "Netflix VOD Services Add-on";
license = licenses.mit;
};
}

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