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;
};
odbl = spdx {
spdxId = "ODbL-1.0";
fullName = "Open Data Commons Open Database License v1.0";
};
ofl = spdx {
spdxId = "OFL-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";
}];
};
collares = {
email = "mauricio@collares.org";
github = "collares";
githubId = 244239;
name = "Mauricio Collares";
};
copumpkin = {
email = "pumpkingod@gmail.com";
github = "copumpkin";
@ -2889,6 +2895,12 @@
githubId = 3787281;
name = "Erik Rybakken";
};
erin = {
name = "Erin van der Veen";
email = "erin@erinvanderveen.nl";
github = "ErinvanderVeen";
githubId = 10973664;
};
erosennin = {
email = "ag@sologoc.com";
github = "erosennin";
@ -4153,6 +4165,12 @@
github = "j0hax";
githubId = 3802620;
};
j4m3s = {
name = "James Landrein";
email = "github@j4m3s.eu";
github = "j4m3s-s";
githubId = 9413812;
};
jacg = {
name = "Jacek Generowicz";
email = "jacg@my-post-office.net";
@ -6987,6 +7005,12 @@
githubId = 3359345;
name = "obadz";
};
obsidian-systems-maintenance = {
name = "Obsidian Systems Maintenance";
email = "maintainer@obsidian.systems";
github = "obsidian-systems-maintenance";
githubId = 80847921;
};
odi = {
email = "oliver.dunkl@gmail.com";
github = "odi";

View File

@ -514,7 +514,7 @@ def update_plugins(editor: Editor):
)
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()
plugin = fetch_plugin_from_pluginline(plugin_line)
commit(

View File

@ -134,6 +134,7 @@ with lib.maintainers; {
timokau
omasanori
raskin
collares
];
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";
}
updateFile("/etc/shadow", \@shadowNew, 0600);
updateFile("/etc/shadow", \@shadowNew, 0640);
{
my $uid = getpwnam "root";
my $gid = getgrnam "shadow";

View File

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

View File

@ -90,7 +90,7 @@ in {
rxvt-unicode # For backward compatibility (old default terminal)
];
defaultText = literalExample ''
with pkgs; [ swaylock swayidle xwayland rxvt-unicode dmenu ];
with pkgs; [ swaylock swayidle rxvt-unicode alacritty dmenu ];
'';
example = literalExample ''
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
if [ -z "$SLURM_CONF" ]
then
SLURM_CONF="${etcSlurm}/slurm.conf" "$EXE" "\$@"
SLURM_CONF="${cfg.etcSlurm}/slurm.conf" "$EXE" "\$@"
else
"$EXE" "\$0"
fi

View File

@ -30,12 +30,49 @@ in
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 = {
environment.DATA_SOURCE_NAME = cfg.dataSourceName;
serviceConfig = {
DynamicUser = false;
User = mkIf cfg.runAsLocalSuperUser (mkForce "postgres");
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
ExecStart = ''
${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \
--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.
for i in ${toString (mapAttrsToList (n: v: v.unit) units)}; do
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
ln -sfn /dev/null $out/$fn
else

View File

@ -408,6 +408,7 @@ in
trickster = handleTest ./trickster.nix {};
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
ucg = handleTest ./ucg.nix {};
udisks2 = handleTest ./udisks2.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
, fftwSinglePrec
, flac
, glibc
, glibmm
, graphviz
, gtkmm2

View File

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

View File

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

View File

@ -75,5 +75,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
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
pname = "plexamp";
version = "3.4.3";
version = "3.4.4";
name = "${pname}-${version}";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
sha256 = "1rzhrc5yr5f6bxydgmcjwrg85vkbkn6lqj72512lyhq5gg7zmm1w";
sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
};
appimageContents = appimageTools.extractType2 {
@ -32,7 +32,7 @@ in appimageTools.wrapType2 {
meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
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;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];

View File

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
}
else
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 ];
@ -47,6 +47,16 @@ stdenv.mkDerivation rec {
mkdir $out/bin
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 = ''
@ -61,6 +71,9 @@ stdenv.mkDerivation rec {
--set-rpath $out/lib \
$path
done
substituteInPlace $out/share/applications/renoise.desktop \
--replace Exec=renoise Exec=$out/bin/renoise
'';
meta = {

View File

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

View File

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

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "surge";
version = "1.7.1";
version = "1.8.1";
src = fetchFromGitHub {
owner = "surge-synthesizer";
repo = pname;
rev = "release_${version}";
sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
leaveDotGit = true; # for SURGE_VERSION
fetchSubmodules = true;
};
@ -20,9 +20,10 @@ stdenv.mkDerivation rec {
postPatch = ''
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 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 = ''

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
#!/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 List::Util qw(reduce);

View File

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem
, unzip, libsecret, libXScrnSaver, wrapGAppsHook
, unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
, 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);
runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];

View File

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

View File

@ -1,48 +1,113 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkg-config, mpi,
spaceNavSupport ? true, libspnav, qtx11extras }:
{ lib
, mkDerivation
, fetchFromGitHub
, fetchpatch
, 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
pythonPackages = python3Packages;
in mkDerivation rec {
pname = "freecad-unstable";
version = "2020-12-08";
mkDerivation rec {
pname = "freecad";
version = "0.19.1";
src = fetchFromGitHub {
owner = "FreeCAD";
repo = "FreeCAD";
rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7";
sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina";
rev = version;
hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
pythonPackages.pyside2-tools
pyside2-tools
wrapQtAppsHook
];
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
scipy pyyaml # (at least for) PyrateWorkbench
]) ++ lib.optionals spaceNavSupport [ libspnav qtx11extras ];
boost
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 = [
"-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
"-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
+ ";${pythonPackages.pyside2}/include/PySide2/QtCore"
+ ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
+ ";${pythonPackages.pyside2}/include/PySide2/QtGui"
("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+ ";${pyside2}/include/PySide2/QtCore"
+ ";${pyside2}/include/PySide2/QtWidgets"
+ ";${pyside2}/include/PySide2/QtGui"
)
"-DPYSIDE_LIBRARY=PySide2::pyside2"
];
@ -65,13 +130,31 @@ in mkDerivation rec {
postFixup = ''
mv $out/share/doc $out
ln -s $out/bin/FreeCAD $out/bin/freecad
ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
'';
meta = with lib; {
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
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;
maintainers = with maintainers; [ viric gebner ];
maintainers = with maintainers; [ viric gebner AndersonTorres ];
platforms = platforms.linux;
};
}

View File

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

View File

@ -1,31 +1,53 @@
{ lib
, mkDerivation
, fetchFromGitHub
, fetchurl
, qmake
, qttools
, zlib
}:
/*
To use aditional parts libraries
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";
version = "19.07.1";
version = "21.03";
src = fetchFromGitHub {
owner = "leozide";
repo = "leocad";
rev = "v${version}";
sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2";
sha256 = "sha256-69Ocfk5dBXwcRqAZWEP9Xg41o/tAQo76dIOk9oYhCUE=";
};
nativeBuildInputs = [ qmake4Hook ];
buildInputs = [ qt4 zlib ];
postPatch = ''
export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
'';
nativeBuildInputs = [ qmake qttools ];
buildInputs = [ zlib ];
qmakeFlags = [
"INSTALL_PREFIX=${placeholder "out"}"
"DISABLE_UPDATE_CHECK=1"
];
qtWrapperArgs = [
"--set-default LEOCAD_LIB ${parts}"
];
meta = with lib; {
description = "CAD program for creating virtual LEGO models";
homepage = "https://www.leocad.org/";
license = licenses.gpl2;
license = licenses.gpl2Only;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
};
}

View File

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

View File

@ -36,11 +36,15 @@ mkDerivation rec {
--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; {
description = "Mail system tray notification icon for Thunderbird";
homepage = "https://github.com/gyunaev/birdtray";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ Flakebi ];
maintainers = with maintainers; [ Flakebi oxalica ];
platforms = platforms.linux;
};
}

View File

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

View File

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

View File

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

View File

@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
multiPkgs = null; # no 32bit needed
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.libsecret
p.xlibs.libxkbfile
p.xorg.libxkbfile
];
# 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 {
pname = "qcad";
version = "3.25.2.0";
version = "3.26.0.1";
src = fetchFromGitHub {
owner = "qcad";
repo = "qcad";
rev = "v${version}";
sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
sha256 = "sha256-V+QlwM8BWmcarwZtqJfc+MYHOZgIH1W5R8m2EHhNJls=";
};
patches = [
# Patch directory lookup, remove __DATE__ and executable name
./application-dir.patch
];
@ -90,12 +91,10 @@ mkDerivationWith stdenv.mkDerivation rec {
qttools
];
enableParallelBuilding = true;
meta = with lib; {
description = "2D CAD package based on Qt";
homepage = "https://qcad.org";
license = licenses.gpl3;
license = licenses.gpl3Only;
maintainers = with maintainers; [ yvesf ];
platforms = qtbase.meta.platforms;
};

View File

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

View File

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

View File

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

View File

@ -90,11 +90,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.21.76";
version = "1.21.77";
src = fetchurl {
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;

View File

@ -89,5 +89,6 @@ mkChromiumDerivation (base: rec {
then ["aarch64-linux" "x86_64-linux"]
else [];
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": {
"version": "90.0.4430.19",
"sha256": "174isyx4g62d8ggn9imp41dfklcbxi3y5nfprm4jbjmn5cb7v8xa",
"sha256bin64": "0z665iykdsmjrjbijsrcq80y2anvcfykasznf8w4brg9l9k59wv8",
"version": "90.0.4430.30",
"sha256": "01b6naziii72pvw35wphfqz3inih75is038yf1mdp1847jbvxpwp",
"sha256bin64": "0k48mfzmyjb0w75fkm2j7ll340qgmzvmskz12awc2l19hgnw1s8p",
"deps": {
"gn": {
"version": "2021-02-09",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -17,11 +17,11 @@
stdenv.mkDerivation rec {
pname = "filezilla";
version = "3.51.0";
version = "3.52.2";
src = fetchurl {
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

View File

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

View File

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

View File

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

View File

@ -87,8 +87,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Matrix group messaging app";
homepage = "https://gitlab.gnome.org/GNOME/fractal";
license = licenses.gpl3Plus;
broken = stdenv.isDarwin;
license = licenses.gpl3;
# 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 ];
};
}

View File

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

View File

@ -1,5 +1,5 @@
{ 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
fullPath = lib.makeLibraryPath [
alsaLib
@ -13,7 +13,7 @@ let
gdk-pixbuf
glib
gnome2.GConf
gnome2.gtk
gtk2
nspr
nss
pango

View File

@ -82,6 +82,11 @@ stdenv.mkDerivation rec {
echo "Adding runtime dependencies to RPATH of Node module $mod"
patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
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; {

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl
, gnome3
, glade
, gnunet
, gnutls
, gtk3
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gnome3.glade
glade
gnunet
gnutls
gtk3
@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
meta = gnunet.meta // {
description = "GNUnet GTK User Interface";
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
# Build options
, enableGTK3 ? false
, gnome3
, gtk3
, xorg
, wrapGAppsHook
, enableQt ? false
@ -65,7 +65,7 @@ in stdenv.mkDerivation {
pcre
]
++ 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 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";
license = licenses.lgpl21;
platforms = platforms.linux;
broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
};
}

View File

@ -21,7 +21,7 @@
# Runtime dependencies;
# A few additional ones (e.g. Node) are already shipped together with the
# 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
@ -56,7 +56,7 @@ in stdenv.mkDerivation {
alsaLib
dbus-glib
fuse
gnome3.gtk
gtk3
libdbusmenu-gtk2
nss
udev
@ -92,7 +92,7 @@ in stdenv.mkDerivation {
# This is required for the file picker dialog - otherwise pcloud just
# 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"
EOF

View File

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

View File

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

View File

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

View File

@ -24,11 +24,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.51.1";
version = "0.51.2";
src = fetchurl {
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 = [

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
, mpg123, SDL2, gnome3, faad2, pcre
, mpg123, SDL2, gtkmm3, faad2, pcre
} :
stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ faad2 mpg123 SDL2 gnome3.gtkmm pcre ];
buildInputs = [ faad2 mpg123 SDL2 gtkmm3 pcre ];
meta = with lib; {
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 {
pname = "sambamba";
version = "0.7.1";
version = "0.8.0";
src = fetchFromGitHub {
owner = "biod";
repo = "sambamba";
rev = "v${version}";
sha256 = "0k5wy06zrbsc40x6answgz7rz2phadyqwlhi9nqxbfqanbg9kq20";
sha256 = "sha256:0kx5a0fmvv9ldz2hnh7qavgf7711kqc73zxf51k4cca4hr58zxr9";
fetchSubmodules = true;
};
nativeBuildInputs = [ which python3 dmd ldc ];
nativeBuildInputs = [ which python3 ldc ];
buildInputs = [ zlib ];
# Upstream's install target is broken; copy manually

View File

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

View File

@ -1,6 +1,7 @@
{ lib, stdenv
, fetchFromGitLab
, gnome3
, dconf
, wxGTK30
, wxGTK31
, makeWrapper
@ -186,12 +187,12 @@ stdenv.mkDerivation rec {
makeWrapperArgs = with passthru.libraries; [
"--prefix XDG_DATA_DIRS : ${base}/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 : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
# wrapGAppsHook did these two as well, no idea if it matters...
"--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 KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"

View File

@ -127,7 +127,7 @@ self = stdenv.mkDerivation {
buildInputs = [ ncurses ] ++ ocamlBuildInputs
++ optionals buildIde
(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 ]);
postPatch = ''

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
{ 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 ? ""
}:
@ -14,7 +14,7 @@ stdenv.mkDerivation {
};
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
];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,8 +2,6 @@
, yacc, libtool, fontconfig, pango, gd, libwebp
}:
assert libpng != null && libjpeg != null && expat != null;
stdenv.mkDerivation rec {
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