Merge branch 'master' into staging-next

This commit is contained in:
Jan Tojnar 2019-10-12 00:50:21 +02:00
commit 6c8aed6391
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
440 changed files with 19793 additions and 9783 deletions

View File

@ -2282,7 +2282,7 @@
name = "Frede Emil"; name = "Frede Emil";
}; };
freepotion = { freepotion = {
email = "free.potion@yandex.ru"; email = "42352817+freepotion@users.noreply.github.com";
github = "freepotion"; github = "freepotion";
githubId = 42352817; githubId = 42352817;
name = "Free Potion"; name = "Free Potion";
@ -6522,6 +6522,12 @@
githubId = 224674; githubId = 224674;
name = "Thomas Pham"; name = "Thomas Pham";
}; };
Thra11 = {
email = "tahall256@protonmail.ch";
github = "Thra11";
githubId = 1391883;
name = "Tom Hall";
};
tilpner = { tilpner = {
email = "till@hoeppner.ws"; email = "till@hoeppner.ws";
github = "tilpner"; github = "tilpner";
@ -7065,6 +7071,12 @@
githubId = 36407913; githubId = 36407913;
name = "Uli Baum"; name = "Uli Baum";
}; };
xfix = {
email = "konrad@borowski.pw";
github = "xfix";
githubId = 1297598;
name = "Konrad Borowski";
};
xnaveira = { xnaveira = {
email = "xnaveira@gmail.com"; email = "xnaveira@gmail.com";
github = "xnaveira"; github = "xnaveira";

View File

@ -68,7 +68,7 @@
If you would like to continue the installation from a different machine you If you would like to continue the installation from a different machine you
need to activate the SSH daemon via <command>systemctl start need to activate the SSH daemon via <command>systemctl start
sshd</command>. You then must set a password for either <literal>root</literal> or sshd</command>. You then must set a password for either <literal>root</literal> or
<literal>nixos</literal> with <command>passwd></command> to be able to login. <literal>nixos</literal> with <command>passwd</command> to be able to login.
</para> </para>
</section> </section>
</section> </section>

View File

@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0" version="5.0"
xml:id="sec-release-19.09"> xml:id="sec-release-19.09">
<title>Release 19.09 (“Loris”, 2019/09/??)</title> <title>Release 19.09 (“Loris”, 2019/10/09)</title>
<section xmlns="http://docbook.org/ns/docbook" <section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
@ -23,6 +23,26 @@
End of support is planned for end of April 2020, handing over to 20.03. End of support is planned for end of April 2020, handing over to 20.03.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Nix has been updated to 2.3; see its
<link xlink:href="https://nixos.org/nix/manual/#ssec-relnotes-2.3">release
notes</link>.
</para>
</listitem>
<listitem>
<para>Core version changes:</para>
<para>systemd: 239 -&gt; 243</para>
<para>gcc: 7 -&gt; 8</para>
<para>glibc: 2.27 (unchanged)</para>
<para>linux: 4.19 LTS (unchanged)</para>
<para>openssl: 1.0 -&gt; 1.1</para>
</listitem>
<listitem>
<para>Desktop version changes:</para>
<para>plasma5: 5.14 -&gt; 5.16</para>
<para>gnome3: 3.30 -&gt; 3.32</para>
</listitem>
<listitem> <listitem>
<para> <para>
PHP now defaults to PHP 7.3, updated from 7.2. PHP now defaults to PHP 7.3, updated from 7.2.

View File

@ -24,7 +24,7 @@ in {
Specifies Unix ODBC drivers to be registered in Specifies Unix ODBC drivers to be registered in
<filename>/etc/odbcinst.ini</filename>. You may also want to <filename>/etc/odbcinst.ini</filename>. You may also want to
add <literal>pkgs.unixODBC</literal> to the system path to get add <literal>pkgs.unixODBC</literal> to the system path to get
a command line client to connnect to ODBC databases. a command line client to connect to ODBC databases.
''; '';
}; };
}; };

View File

@ -1,6 +1,6 @@
{ {
x86_64-linux = "/nix/store/3ds3cgji9vjxdbgp10av6smyym1126d1-nix-2.3"; x86_64-linux = "/nix/store/6chjfy4j6hjwj5f8zcbbdg02i21x1qsi-nix-2.3.1";
i686-linux = "/nix/store/ln1ndqvfpc9cdl03vqxi6kvlxm9wfv9g-nix-2.3"; i686-linux = "/nix/store/xa8z7fwszjjm4kiwrxfc8xv9c1pzzm7a-nix-2.3.1";
aarch64-linux = "/nix/store/n8a1rwzrp20qcr2c4hvyn6c5q9zx8csw-nix-2.3"; aarch64-linux = "/nix/store/8cac1ivcnchlpzmdjby2f71l1fwpnymr-nix-2.3.1";
x86_64-darwin = "/nix/store/jq6npmpld02sz4rgniz0qrsdfnm6j17a-nix-2.3"; x86_64-darwin = "/nix/store/6639l9815ggdnb4aka22qcjy7p8w4hb9-nix-2.3.1";
} }

View File

@ -111,7 +111,7 @@ buildHostCmd() {
if [ -z "$buildHost" ]; then if [ -z "$buildHost" ]; then
"$@" "$@"
elif [ -n "$remoteNix" ]; then elif [ -n "$remoteNix" ]; then
ssh $SSHOPTS "$buildHost" PATH="$remoteNix:$PATH" "$@" ssh $SSHOPTS "$buildHost" env PATH="$remoteNix:$PATH" "$@"
else else
ssh $SSHOPTS "$buildHost" "$@" ssh $SSHOPTS "$buildHost" "$@"
fi fi

View File

@ -128,7 +128,10 @@ in {
# directory creation needs to be separated from main service # directory creation needs to be separated from main service
# because ReadWritePaths fails when the directory doesn't already exist # because ReadWritePaths fails when the directory doesn't already exist
systemd.tmpfiles.rules = [ "d ${dirOf cfg.output} 0755 root root -" ]; systemd.tmpfiles.rules =
let dir = dirOf cfg.output; in
mkIf (dir != "/var/cache")
[ "d ${dir} 0755 root root -" ];
systemd.services.update-locatedb = systemd.services.update-locatedb =
{ description = "Update Locate Database"; { description = "Update Locate Database";

View File

@ -142,7 +142,6 @@
./programs/seahorse.nix ./programs/seahorse.nix
./programs/slock.nix ./programs/slock.nix
./programs/shadow.nix ./programs/shadow.nix
./programs/shell.nix
./programs/spacefm.nix ./programs/spacefm.nix
./programs/singularity.nix ./programs/singularity.nix
./programs/ssh.nix ./programs/ssh.nix

View File

@ -1,54 +0,0 @@
# This module defines a standard configuration for NixOS shells.
{ config, lib, ... }:
with lib;
{
config = {
environment.shellInit =
''
# Set up the per-user profile.
mkdir -m 0755 -p "$NIX_USER_PROFILE_DIR"
if [ "$(stat -c '%u' "$NIX_USER_PROFILE_DIR")" != "$(id -u)" ]; then
echo "WARNING: the per-user profile dir $NIX_USER_PROFILE_DIR should belong to user id $(id -u)" >&2
fi
if [ -w "$HOME" ]; then
if ! [ -L "$HOME/.nix-profile" ]; then
if [ "$USER" != root ]; then
ln -s "$NIX_USER_PROFILE_DIR/profile" "$HOME/.nix-profile"
else
# Root installs in the system-wide profile by default.
ln -s /nix/var/nix/profiles/default "$HOME/.nix-profile"
fi
fi
# Subscribe the root user to the NixOS channel by default.
if [ "$USER" = root -a ! -e "$HOME/.nix-channels" ]; then
echo "${config.system.defaultChannel} nixos" > "$HOME/.nix-channels"
fi
# Create the per-user garbage collector roots directory.
NIX_USER_GCROOTS_DIR="/nix/var/nix/gcroots/per-user/$USER"
mkdir -m 0755 -p "$NIX_USER_GCROOTS_DIR"
if [ "$(stat -c '%u' "$NIX_USER_GCROOTS_DIR")" != "$(id -u)" ]; then
echo "WARNING: the per-user gcroots dir $NIX_USER_GCROOTS_DIR should belong to user id $(id -u)" >&2
fi
# Set up a default Nix expression from which to install stuff.
if [ ! -e "$HOME/.nix-defexpr" -o -L "$HOME/.nix-defexpr" ]; then
rm -f "$HOME/.nix-defexpr"
mkdir -p "$HOME/.nix-defexpr"
if [ "$USER" != root ]; then
ln -s /nix/var/nix/profiles/per-user/root/channels "$HOME/.nix-defexpr/channels_root"
fi
fi
fi
'';
};
}

View File

@ -181,7 +181,7 @@ in
}; };
configFile = mkOption { configFile = mkOption {
type = types.nullOr types.str; type = types.nullOr types.path;
default = null; default = null;
description = "Config file used for the whole dovecot configuration."; description = "Config file used for the whole dovecot configuration.";
apply = v: if v != null then v else pkgs.writeText "dovecot.conf" dovecotConf; apply = v: if v != null then v else pkgs.writeText "dovecot.conf" dovecotConf;

View File

@ -7,6 +7,11 @@ let
ruby = cfg.packages.gitlab.ruby; ruby = cfg.packages.gitlab.ruby;
postgresqlPackage = if config.services.postgresql.enable then
config.services.postgresql.package
else
pkgs.postgresql;
gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket"; gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket"; gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url; pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url;
@ -22,6 +27,9 @@ let
} // cfg.extraDatabaseConfig; } // cfg.extraDatabaseConfig;
}; };
# We only want to create a database if we're actually going to connect to it.
databaseActuallyCreateLocally = cfg.databaseCreateLocally && cfg.databaseHost == "";
gitalyToml = pkgs.writeText "gitaly.toml" '' gitalyToml = pkgs.writeText "gitaly.toml" ''
socket_path = "${lib.escape ["\""] gitalySocket}" socket_path = "${lib.escape ["\""] gitalySocket}"
bin_dir = "${cfg.packages.gitaly}/bin" bin_dir = "${cfg.packages.gitaly}/bin"
@ -138,7 +146,7 @@ let
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rake $out/bin/gitlab-rake \ makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rake $out/bin/gitlab-rake \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package pkgs.coreutils pkgs.procps ]}:$PATH' \ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \ --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab' --run 'cd ${cfg.packages.gitlab}/share/gitlab'
''; '';
@ -153,7 +161,7 @@ let
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \ makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package pkgs.coreutils pkgs.procps ]}:$PATH' \ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab' --run 'cd ${cfg.packages.gitlab}/share/gitlab'
''; '';
}; };
@ -266,8 +274,8 @@ in {
description = '' description = ''
Whether a database should be automatically created on the Whether a database should be automatically created on the
local host. Set this to <literal>false</literal> if you plan local host. Set this to <literal>false</literal> if you plan
on provisioning a local database yourself or use an external on provisioning a local database yourself. This has no effect
one. if <option>services.gitlab.databaseHost</option> is customized.
''; '';
}; };
@ -557,8 +565,8 @@ in {
assertions = [ assertions = [
{ {
assertion = cfg.databaseCreateLocally -> (cfg.user == cfg.databaseUsername); assertion = databaseActuallyCreateLocally -> (cfg.user == cfg.databaseUsername);
message = "For local automatic database provisioning services.gitlab.user and services.gitlab.databaseUsername should be identical."; message = ''For local automatic database provisioning (services.gitlab.databaseCreateLocally == true) with peer authentication (services.gitlab.databaseHost == "") to work services.gitlab.user and services.gitlab.databaseUsername must be identical.'';
} }
{ {
assertion = (cfg.databaseHost != "") -> (cfg.databasePasswordFile != null); assertion = (cfg.databaseHost != "") -> (cfg.databasePasswordFile != null);
@ -592,14 +600,14 @@ in {
services.redis.enable = mkDefault true; services.redis.enable = mkDefault true;
# We use postgres as the main data store. # We use postgres as the main data store.
services.postgresql = optionalAttrs cfg.databaseCreateLocally { services.postgresql = optionalAttrs databaseActuallyCreateLocally {
enable = true; enable = true;
ensureUsers = singleton { name = cfg.databaseUsername; }; ensureUsers = singleton { name = cfg.databaseUsername; };
}; };
# The postgresql module doesn't currently support concepts like # The postgresql module doesn't currently support concepts like
# objects owners and extensions; for now we tack on what's needed # objects owners and extensions; for now we tack on what's needed
# here. # here.
systemd.services.postgresql.postStart = mkAfter (optionalString cfg.databaseCreateLocally '' systemd.services.postgresql.postStart = mkAfter (optionalString databaseActuallyCreateLocally ''
$PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"' $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'") current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
@ -675,7 +683,7 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment = gitlabEnv; environment = gitlabEnv;
path = with pkgs; [ path = with pkgs; [
config.services.postgresql.package postgresqlPackage
gitAndTools.git gitAndTools.git
ruby ruby
openssh openssh
@ -756,81 +764,13 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment = gitlabEnv; environment = gitlabEnv;
path = with pkgs; [ path = with pkgs; [
config.services.postgresql.package postgresqlPackage
gitAndTools.git gitAndTools.git
openssh openssh
nodejs nodejs
procps procps
gnupg gnupg
]; ];
preStart = ''
cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
rm -rf ${cfg.statePath}/db/*
cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
${cfg.packages.gitlab-shell}/bin/install
${optionalString cfg.smtp.enable ''
install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
${optionalString (cfg.smtp.passwordFile != null) ''
smtp_password=$(<'${cfg.smtp.passwordFile}')
${pkgs.replace}/bin/replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
''}
''}
(
umask u=rwx,g=,o=
${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
${if cfg.databasePasswordFile != null then ''
export db_password="$(<'${cfg.databasePasswordFile}')"
if [[ -z "$db_password" ]]; then
>&2 echo "Database password was an empty string!"
exit 1
fi
${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
'.production.password = $ENV.db_password' \
>'${cfg.statePath}/config/database.yml'
''
else ''
${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
>'${cfg.statePath}/config/database.yml'
''
}
${utils.genJqSecretsReplacementSnippet
gitlabConfig
"${cfg.statePath}/config/gitlab.yml"
}
if [[ -h '${cfg.statePath}/config/secrets.yml' ]]; then
rm '${cfg.statePath}/config/secrets.yml'
fi
export secret="$(<'${cfg.secrets.secretFile}')"
export db="$(<'${cfg.secrets.dbFile}')"
export otp="$(<'${cfg.secrets.otpFile}')"
export jws="$(<'${cfg.secrets.jwsFile}')"
${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
otp_key_base: $ENV.otp,
db_key_base: $ENV.db,
openid_connect_signing_key: $ENV.jws}}' \
> '${cfg.statePath}/config/secrets.yml'
)
initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}'
# We remove potentially broken links to old gitlab-shell versions
rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
${pkgs.git}/bin/git config --global core.autocrlf "input"
'';
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
@ -839,6 +779,89 @@ in {
TimeoutSec = "infinity"; TimeoutSec = "infinity";
Restart = "on-failure"; Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab"; WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStartPre = let
preStartFullPrivileges = ''
shopt -s dotglob nullglob
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
'';
preStart = ''
cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
rm -rf ${cfg.statePath}/db/*
rm -rf ${cfg.statePath}/config/initializers/*
cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
${cfg.packages.gitlab-shell}/bin/install
${optionalString cfg.smtp.enable ''
install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
${optionalString (cfg.smtp.passwordFile != null) ''
smtp_password=$(<'${cfg.smtp.passwordFile}')
${pkgs.replace}/bin/replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
''}
''}
(
umask u=rwx,g=,o=
${pkgs.openssl}/bin/openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
if [[ -h '${cfg.statePath}/config/database.yml' ]]; then
rm '${cfg.statePath}/config/database.yml'
fi
${if cfg.databasePasswordFile != null then ''
export db_password="$(<'${cfg.databasePasswordFile}')"
if [[ -z "$db_password" ]]; then
>&2 echo "Database password was an empty string!"
exit 1
fi
${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
'.production.password = $ENV.db_password' \
>'${cfg.statePath}/config/database.yml'
''
else ''
${pkgs.jq}/bin/jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
>'${cfg.statePath}/config/database.yml'
''
}
${utils.genJqSecretsReplacementSnippet
gitlabConfig
"${cfg.statePath}/config/gitlab.yml"
}
if [[ -h '${cfg.statePath}/config/secrets.yml' ]]; then
rm '${cfg.statePath}/config/secrets.yml'
fi
export secret="$(<'${cfg.secrets.secretFile}')"
export db="$(<'${cfg.secrets.dbFile}')"
export otp="$(<'${cfg.secrets.otpFile}')"
export jws="$(<'${cfg.secrets.jwsFile}')"
${pkgs.jq}/bin/jq -n '{production: {secret_key_base: $ENV.secret,
otp_key_base: $ENV.otp,
db_key_base: $ENV.db,
openid_connect_signing_key: $ENV.jws}}' \
> '${cfg.statePath}/config/secrets.yml'
)
initial_root_password="$(<'${cfg.initialRootPasswordFile}')"
${gitlab-rake}/bin/gitlab-rake gitlab:db:configure GITLAB_ROOT_PASSWORD="$initial_root_password" \
GITLAB_ROOT_EMAIL='${cfg.initialRootEmail}' > /dev/null
# We remove potentially broken links to old gitlab-shell versions
rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
${pkgs.git}/bin/git config --global core.autocrlf "input"
'';
in [
"+${pkgs.writeShellScript "gitlab-pre-start-full-privileges" preStartFullPrivileges}"
"${pkgs.writeShellScript "gitlab-pre-start" preStart}"
];
ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/unicorn -c ${cfg.statePath}/config/unicorn.rb -E production"; ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/unicorn -c ${cfg.statePath}/config/unicorn.rb -E production";
}; };

View File

@ -10,7 +10,6 @@ let
nixVersion = getVersion nix; nixVersion = getVersion nix;
isNix20 = versionAtLeast nixVersion "2.0pre";
isNix23 = versionAtLeast nixVersion "2.3pre"; isNix23 = versionAtLeast nixVersion "2.3pre";
makeNixBuildUser = nr: makeNixBuildUser = nr:
@ -28,39 +27,26 @@ let
nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers); nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
nixConf = nixConf =
let assert versionAtLeast nixVersion "2.2";
# In Nix < 2.0, If we're using sandbox for builds, then provide pkgs.runCommand "nix.conf" { preferLocalBuild = true; extraOptions = cfg.extraOptions; } (
# /bin/sh in the sandbox as a bind-mount to bash. This means we ''
# also need to include the entire closure of bash. Nix >= 2.0
# provides a /bin/sh by default.
sh = pkgs.runtimeShell;
binshDeps = pkgs.writeReferencesToFile sh;
in
pkgs.runCommand "nix.conf" { preferLocalBuild = true; extraOptions = cfg.extraOptions; } (''
${optionalString (!isNix20) ''
extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done)
''}
cat > $out <<END cat > $out <<END
# WARNING: this file is generated from the nix.* options in # WARNING: this file is generated from the nix.* options in
# your NixOS configuration, typically # your NixOS configuration, typically
# /etc/nixos/configuration.nix. Do not edit it! # /etc/nixos/configuration.nix. Do not edit it!
build-users-group = nixbld build-users-group = nixbld
${if isNix20 then "max-jobs" else "build-max-jobs"} = ${toString (cfg.maxJobs)} max-jobs = ${toString (cfg.maxJobs)}
${if isNix20 then "cores" else "build-cores"} = ${toString (cfg.buildCores)} cores = ${toString (cfg.buildCores)}
${if isNix20 then "sandbox" else "build-use-sandbox"} = ${if (builtins.isBool cfg.useSandbox) then boolToString cfg.useSandbox else cfg.useSandbox} sandbox = ${if (builtins.isBool cfg.useSandbox) then boolToString cfg.useSandbox else cfg.useSandbox}
${if isNix20 then "extra-sandbox-paths" else "build-sandbox-paths"} = ${toString cfg.sandboxPaths} ${optionalString (!isNix20) "/bin/sh=${sh} $(echo $extraPaths)"} extra-sandbox-paths = ${toString cfg.sandboxPaths}
${if isNix20 then "substituters" else "binary-caches"} = ${toString cfg.binaryCaches} substituters = ${toString cfg.binaryCaches}
${if isNix20 then "trusted-substituters" else "trusted-binary-caches"} = ${toString cfg.trustedBinaryCaches} trusted-substituters = ${toString cfg.trustedBinaryCaches}
${if isNix20 then "trusted-public-keys" else "binary-cache-public-keys"} = ${toString cfg.binaryCachePublicKeys} trusted-public-keys = ${toString cfg.binaryCachePublicKeys}
auto-optimise-store = ${boolToString cfg.autoOptimiseStore} auto-optimise-store = ${boolToString cfg.autoOptimiseStore}
${if isNix20 then '' require-sigs = ${if cfg.requireSignedBinaryCaches then "true" else "false"}
require-sigs = ${if cfg.requireSignedBinaryCaches then "true" else "false"}
'' else ''
signed-binary-caches = ${if cfg.requireSignedBinaryCaches then "*" else ""}
''}
trusted-users = ${toString cfg.trustedUsers} trusted-users = ${toString cfg.trustedUsers}
allowed-users = ${toString cfg.allowedUsers} allowed-users = ${toString cfg.allowedUsers}
${optionalString (isNix20 && !cfg.distributedBuilds) '' ${optionalString (!cfg.distributedBuilds) ''
builders = builders =
''} ''}
system-features = ${toString cfg.systemFeatures} system-features = ${toString cfg.systemFeatures}
@ -422,8 +408,7 @@ in
systemd.services.nix-daemon = systemd.services.nix-daemon =
{ path = [ nix pkgs.utillinux config.programs.ssh.package ] { path = [ nix pkgs.utillinux config.programs.ssh.package ]
++ optionals cfg.distributedBuilds [ pkgs.gzip ] ++ optionals cfg.distributedBuilds [ pkgs.gzip ];
++ optionals (!isNix20) [ pkgs.openssl.bin ];
environment = cfg.envVars environment = cfg.envVars
// { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; } // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; }
@ -440,34 +425,13 @@ in
restartTriggers = [ nixConf ]; restartTriggers = [ nixConf ];
}; };
nix.envVars =
optionalAttrs (!isNix20) {
NIX_CONF_DIR = "/etc/nix";
# Enable the copy-from-other-stores substituter, which allows
# builds to be sped up by copying build results from remote
# Nix stores. To do this, mount the remote file system on a
# subdirectory of /run/nix/remote-stores.
NIX_OTHER_STORES = "/run/nix/remote-stores/*/nix";
}
// optionalAttrs (cfg.distributedBuilds && !isNix20) {
NIX_BUILD_HOOK = "${nix}/libexec/nix/build-remote.pl";
};
# Set up the environment variables for running Nix. # Set up the environment variables for running Nix.
environment.sessionVariables = cfg.envVars // environment.sessionVariables = cfg.envVars //
{ NIX_PATH = cfg.nixPath; { NIX_PATH = cfg.nixPath;
}; };
environment.extraInit = optionalString (!isNix20) environment.extraInit =
'' ''
# Set up secure multi-user builds: non-root users build through the
# Nix daemon.
if [ "$USER" != root -o ! -w /nix/var/nix/db ]; then
export NIX_REMOTE=daemon
fi
'' + ''
if [ -e "$HOME/.nix-defexpr/channels" ]; then if [ -e "$HOME/.nix-defexpr/channels" ]; then
export NIX_PATH="$HOME/.nix-defexpr/channels''${NIX_PATH:+:$NIX_PATH}" export NIX_PATH="$HOME/.nix-defexpr/channels''${NIX_PATH:+:$NIX_PATH}"
fi fi
@ -479,21 +443,15 @@ in
services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers; services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers;
# FIXME: use systemd-tmpfiles to create Nix directories.
system.activationScripts.nix = stringAfter [ "etc" "users" ] system.activationScripts.nix = stringAfter [ "etc" "users" ]
'' ''
# Nix initialisation. # Create directories in /nix.
install -m 0755 -d \ ${nix}/bin/nix ping-store --no-net
/nix/var/nix/gcroots \
/nix/var/nix/temproots \ # Subscribe the root user to the NixOS channel by default.
/nix/var/nix/userpool \ if [ ! -e "/root/.nix-channels" ]; then
/nix/var/nix/profiles \ echo "${config.system.defaultChannel} nixos" > "/root/.nix-channels"
/nix/var/nix/db \ fi
/nix/var/log/nix/drvs
install -m 1777 -d \
/nix/var/nix/gcroots/per-user \
/nix/var/nix/profiles/per-user \
/nix/var/nix/gcroots/tmp
''; '';
nix.systemFeatures = mkDefault ( nix.systemFeatures = mkDefault (

View File

@ -3,6 +3,15 @@
with lib; with lib;
let let
isMa1sd =
package:
lib.hasPrefix "ma1sd" package.name;
isMxisd =
package:
lib.hasPrefix "mxisd" package.name;
cfg = config.services.mxisd; cfg = config.services.mxisd;
server = optionalAttrs (cfg.server.name != null) { inherit (cfg.server) name; } server = optionalAttrs (cfg.server.name != null) { inherit (cfg.server) name; }
@ -12,37 +21,41 @@ let
matrix.domain = cfg.matrix.domain; matrix.domain = cfg.matrix.domain;
key.path = "${cfg.dataDir}/signing.key"; key.path = "${cfg.dataDir}/signing.key";
storage = { storage = {
provider.sqlite.database = "${cfg.dataDir}/mxisd.db"; provider.sqlite.database = if isMa1sd cfg.package
then "${cfg.dataDir}/ma1sd.db"
else "${cfg.dataDir}/mxisd.db";
}; };
} // optionalAttrs (server != {}) { inherit server; }; } // optionalAttrs (server != {}) { inherit server; };
# merges baseConfig and extraConfig into a single file # merges baseConfig and extraConfig into a single file
fullConfig = recursiveUpdate baseConfig cfg.extraConfig; fullConfig = recursiveUpdate baseConfig cfg.extraConfig;
configFile = pkgs.writeText "mxisd-config.yaml" (builtins.toJSON fullConfig); configFile = if isMa1sd cfg.package
then pkgs.writeText "ma1sd-config.yaml" (builtins.toJSON fullConfig)
else pkgs.writeText "mxisd-config.yaml" (builtins.toJSON fullConfig);
in { in {
options = { options = {
services.mxisd = { services.mxisd = {
enable = mkEnableOption "mxisd matrix federated identity server"; enable = mkEnableOption "matrix federated identity server";
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.mxisd; default = pkgs.mxisd;
defaultText = "pkgs.mxisd"; defaultText = "pkgs.mxisd";
description = "The mxisd package to use"; description = "The mxisd/ma1sd package to use";
}; };
dataDir = mkOption { dataDir = mkOption {
type = types.str; type = types.str;
default = "/var/lib/mxisd"; default = "/var/lib/mxisd";
description = "Where data mxisd uses resides"; description = "Where data mxisd/ma1sd uses resides";
}; };
extraConfig = mkOption { extraConfig = mkOption {
type = types.attrs; type = types.attrs;
default = {}; default = {};
description = "Extra options merged into the mxisd configuration"; description = "Extra options merged into the mxisd/ma1sd configuration";
}; };
matrix = { matrix = {
@ -62,7 +75,7 @@ in {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
description = '' description = ''
Public hostname of mxisd, if different from the Matrix domain. Public hostname of mxisd/ma1sd, if different from the Matrix domain.
''; '';
}; };
@ -103,11 +116,13 @@ in {
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = let
executable = if isMa1sd cfg.package then "ma1sd" else "mxisd";
in {
Type = "simple"; Type = "simple";
User = "mxisd"; User = "mxisd";
Group = "mxisd"; Group = "mxisd";
ExecStart = "${cfg.package}/bin/mxisd -c ${configFile}"; ExecStart = "${cfg.package}/bin/${executable} -c ${configFile}";
WorkingDirectory = cfg.dataDir; WorkingDirectory = cfg.dataDir;
Restart = "on-failure"; Restart = "on-failure";
}; };

View File

@ -61,7 +61,10 @@ let
${optionalString (cfg.httpConfig == "" && cfg.config == "") '' ${optionalString (cfg.httpConfig == "" && cfg.config == "") ''
http { http {
include ${cfg.package}/conf/mime.types; # The mime type definitions included with nginx are very incomplete, so
# we use a list of mime types from the mailcap package, which is also
# used by most other Linux distributions by default.
include ${pkgs.mailcap}/etc/nginx/mime.types;
include ${cfg.package}/conf/fastcgi.conf; include ${cfg.package}/conf/fastcgi.conf;
include ${cfg.package}/conf/uwsgi_params; include ${cfg.package}/conf/uwsgi_params;
@ -119,6 +122,14 @@ let
include ${recommendedProxyConfig}; include ${recommendedProxyConfig};
''} ''}
${optionalString (cfg.mapHashBucketSize != null) ''
map_hash_bucket_size ${toString cfg.mapHashBucketSize};
''}
${optionalString (cfg.mapHashMaxSize != null) ''
map_hash_max_size ${toString cfg.mapHashMaxSize};
''}
# $connection_upgrade is used for websocket proxying # $connection_upgrade is used for websocket proxying
map $http_upgrade $connection_upgrade { map $http_upgrade $connection_upgrade {
default upgrade; default upgrade;
@ -507,6 +518,23 @@ in
''; '';
}; };
mapHashBucketSize = mkOption {
type = types.nullOr (types.enum [ 32 64 128 ]);
default = null;
description = ''
Sets the bucket size for the map variables hash tables. Default
value depends on the processors cache line size.
'';
};
mapHashMaxSize = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
Sets the maximum size of the map variables hash tables.
'';
};
resolver = mkOption { resolver = mkOption {
type = types.submodule { type = types.submodule {
options = { options = {

View File

@ -183,7 +183,8 @@ in
++ lib.optional config.hardware.pulseaudio.enable plasma-pa ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
++ lib.optional config.powerManagement.enable powerdevil ++ lib.optional config.powerManagement.enable powerdevil
++ lib.optional config.services.colord.enable colord-kde ++ lib.optional config.services.colord.enable colord-kde
++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]; ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
++ lib.optional config.services.xserver.wacom.enable wacomtablet;
environment.pathsToLink = [ environment.pathsToLink = [
# FIXME: modules should link subdirs of `/share` rather than relying on this # FIXME: modules should link subdirs of `/share` rather than relying on this

View File

@ -165,12 +165,12 @@ in
"rc-local.service" "rc-local.service"
"systemd-machined.service" "systemd-machined.service"
"systemd-user-sessions.service" "systemd-user-sessions.service"
"getty@tty1.service" "getty@tty${gdm.initialVT}.service"
"plymouth-quit.service" "plymouth-quit.service"
"plymouth-start.service" "plymouth-start.service"
]; ];
systemd.services.display-manager.conflicts = [ systemd.services.display-manager.conflicts = [
"getty@tty1.service" "getty@tty${gdm.initialVT}.service"
"plymouth-quit.service" "plymouth-quit.service"
]; ];
systemd.services.display-manager.onFailure = [ systemd.services.display-manager.onFailure = [

View File

@ -220,6 +220,42 @@ in
exec ${lightdm}/sbin/lightdm exec ${lightdm}/sbin/lightdm
''; '';
# Replaces getty and plymouth quit since it quits plymouth on it's own.
systemd.services.display-manager.conflicts = [
"getty@tty7.service"
"plymouth-quit.service"
];
# Pull in dependencies of services we replace.
systemd.services.display-manager.after = [
"rc-local.service"
"systemd-machined.service"
"systemd-user-sessions.service"
"getty@tty7.service"
"user.slice"
];
# user.slice needs to be present
systemd.services.display-manager.requires = [
"user.slice"
];
# lightdm stops plymouth so when it fails make sure plymouth stops.
systemd.services.display-manager.onFailure = [
"plymouth-quit.service"
];
systemd.services.display-manager.serviceConfig = {
BusName = "org.freedesktop.DisplayManager";
IgnoreSIGPIPE = "no";
# This allows lightdm to pass the LUKS password through to PAM.
# login keyring is unlocked automatic when autologin is used.
KeyringMode = "shared";
KillMode = "mixed";
StandardError = "inherit";
StandardOutput = "syslog";
};
environment.etc."lightdm/lightdm.conf".source = lightdmConf; environment.etc."lightdm/lightdm.conf".source = lightdmConf;
environment.etc."lightdm/users.conf".source = usersConf; environment.etc."lightdm/users.conf".source = usersConf;

View File

@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.cwm;
in
{
options = {
services.xserver.windowManager.cwm.enable = mkEnableOption "cwm";
};
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton
{ name = "cwm";
start =
''
cwm &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.cwm ];
};
}

View File

@ -11,6 +11,7 @@ in
./2bwm.nix ./2bwm.nix
./afterstep.nix ./afterstep.nix
./bspwm.nix ./bspwm.nix
./cwm.nix
./dwm.nix ./dwm.nix
./evilwm.nix ./evilwm.nix
./exwm.nix ./exwm.nix

View File

@ -5,17 +5,20 @@ with lib;
let let
inherit (pkgs) plymouth; inherit (pkgs) plymouth;
inherit (pkgs) nixos-icons;
cfg = config.boot.plymouth; cfg = config.boot.plymouth;
breezePlymouth = pkgs.breeze-plymouth.override { nixosBreezePlymouth = pkgs.breeze-plymouth.override {
nixosBranding = true; logoFile = cfg.logo;
nixosVersion = config.system.nixos.release; logoName = "nixos";
osName = "NixOS";
osVersion = config.system.nixos.release;
}; };
themesEnv = pkgs.buildEnv { themesEnv = pkgs.buildEnv {
name = "plymouth-themes"; name = "plymouth-themes";
paths = [ plymouth breezePlymouth ] ++ cfg.themePackages; paths = [ plymouth ] ++ cfg.themePackages;
}; };
configFile = pkgs.writeText "plymouthd.conf" '' configFile = pkgs.writeText "plymouthd.conf" ''
@ -35,7 +38,7 @@ in
enable = mkEnableOption "Plymouth boot splash screen"; enable = mkEnableOption "Plymouth boot splash screen";
themePackages = mkOption { themePackages = mkOption {
default = []; default = [ nixosBreezePlymouth ];
type = types.listOf types.package; type = types.listOf types.package;
description = '' description = ''
Extra theme packages for plymouth. Extra theme packages for plymouth.
@ -52,10 +55,7 @@ in
logo = mkOption { logo = mkOption {
type = types.path; type = types.path;
default = pkgs.fetchurl { default = "${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
url = "https://nixos.org/logo/nixos-hires.png";
sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";
};
defaultText = ''pkgs.fetchurl { defaultText = ''pkgs.fetchurl {
url = "https://nixos.org/logo/nixos-hires.png"; url = "https://nixos.org/logo/nixos-hires.png";
sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si"; sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si";

View File

@ -142,7 +142,7 @@ fi
# Record the boot configuration. # Record the boot configuration.
ln -sfn "$systemConfig" /run/booted-system ln -sfn "$systemConfig" /run/booted-system
# Prevent the booted system form being garbage-collected If it weren't # Prevent the booted system from being garbage-collected. If it weren't
# a gcroot, if we were running a different kernel, switched system, # a gcroot, if we were running a different kernel, switched system,
# and garbage collected all, we could not load kernel modules anymore. # and garbage collected all, we could not load kernel modules anymore.
ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system

View File

@ -871,8 +871,8 @@ in
"tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf";
"tmpfiles.d/static-nodes-permissions.conf".source = "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf"; "tmpfiles.d/static-nodes-permissions.conf".source = "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf";
"tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf"; "tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf";
"tmpfiles.d/systemd-nspawn.conf".source = "${systemd}/example/tmpfiles.d/system-nspawn.conf"; "tmpfiles.d/systemd-nspawn.conf".source = "${systemd}/example/tmpfiles.d/systemd-nspawn.conf";
"tmpfiles.d/systemd-tmp.conf".source = "${systemd}/example/tmpfiles.d/system-tmp.conf"; "tmpfiles.d/systemd-tmp.conf".source = "${systemd}/example/tmpfiles.d/systemd-tmp.conf";
"tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf";
"tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf";

View File

@ -35,6 +35,7 @@ in
boot-stage1 = handleTest ./boot-stage1.nix {}; boot-stage1 = handleTest ./boot-stage1.nix {};
borgbackup = handleTest ./borgbackup.nix {}; borgbackup = handleTest ./borgbackup.nix {};
buildbot = handleTest ./buildbot.nix {}; buildbot = handleTest ./buildbot.nix {};
caddy = handleTest ./caddy.nix {};
cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {}; cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
cassandra = handleTest ./cassandra.nix {}; cassandra = handleTest ./cassandra.nix {};
ceph = handleTestOn ["x86_64-linux"] ./ceph.nix {}; ceph = handleTestOn ["x86_64-linux"] ./ceph.nix {};

82
nixos/tests/caddy.nix Normal file
View File

@ -0,0 +1,82 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "caddy";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ xfix ];
};
nodes = {
webserver = { pkgs, lib, ... }: {
services.caddy.enable = true;
services.caddy.config = ''
http://localhost {
gzip
root ${
pkgs.runCommand "testdir" {} ''
mkdir "$out"
echo hello world > "$out/example.html"
''
}
}
'';
nesting.clone = [
{
services.caddy.config = lib.mkForce ''
http://localhost {
gzip
root ${
pkgs.runCommand "testdir2" {} ''
mkdir "$out"
echo changed > "$out/example.html"
''
}
}
'';
}
{
services.caddy.config = ''
http://localhost:8080 {
}
'';
}
];
};
};
testScript = { nodes, ... }: let
etagSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-1";
justReloadSystem = "${nodes.webserver.config.system.build.toplevel}/fine-tune/child-2";
in ''
my $url = 'http://localhost/example.html';
$webserver->waitForUnit("caddy");
$webserver->waitForOpenPort("80");
sub checkEtag {
my $etag = $webserver->succeed(
'curl -v '.$url.' 2>&1 | sed -n -e "s/^< [Ee][Tt][Aa][Gg]: *//p"'
);
$etag =~ s/\r?\n$//;
my $httpCode = $webserver->succeed(
'curl -w "%{http_code}" -X HEAD -H \'If-None-Match: '.$etag.'\' '.$url
);
die "HTTP code is not 304" unless $httpCode == 304;
return $etag;
}
subtest "check ETag if serving Nix store paths", sub {
my $oldEtag = checkEtag;
$webserver->succeed("${etagSystem}/bin/switch-to-configuration test >&2");
$webserver->sleep(1); # race condition
my $newEtag = checkEtag;
die "Old ETag $oldEtag is the same as $newEtag" if $oldEtag eq $newEtag;
};
subtest "config is reloaded on nixos-rebuild switch", sub {
$webserver->succeed("${justReloadSystem}/bin/switch-to-configuration test >&2");
$webserver->waitForOpenPort("8080");
};
'';
})

View File

@ -23,6 +23,7 @@ import ./make-test.nix ({ pkgs, ...} : {
networking = { networking = {
dhcpcd.enable = false; dhcpcd.enable = false;
useNetworkd = true; useNetworkd = true;
useDHCP = false;
interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ]; interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ]; interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
}; };

View File

@ -10,12 +10,22 @@ import ./make-test.nix ({ pkgs, ... } : {
services.mxisd.enable = true; services.mxisd.enable = true;
services.mxisd.matrix.domain = "example.org"; services.mxisd.matrix.domain = "example.org";
}; };
server_ma1sd = args : {
services.mxisd.enable = true;
services.mxisd.matrix.domain = "example.org";
services.mxisd.package = pkgs.ma1sd;
};
}; };
testScript = '' testScript = ''
startAll; startAll;
$server_mxisd->waitForUnit("mxisd.service"); $server_mxisd->waitForUnit("mxisd.service");
$server_mxisd->waitForOpenPort(8090); $server_mxisd->waitForOpenPort(8090);
$server_mxisd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"") $server_mxisd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"");
$server_ma1sd->waitForUnit("mxisd.service");
$server_ma1sd->waitForOpenPort(8090);
$server_ma1sd->succeed("curl -Ssf \"http://127.0.0.1:8090/_matrix/identity/api/v1\"")
''; '';
}) })

View File

@ -450,6 +450,7 @@ let
name = "Virtual"; name = "Virtual";
machine = { machine = {
networking.useNetworkd = networkd; networking.useNetworkd = networkd;
networking.useDHCP = false;
networking.interfaces.tap0 = { networking.interfaces.tap0 = {
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ]; ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ]; ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];

View File

@ -1,6 +1,8 @@
{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, qt5, autoconf, pkgconfig }: { stdenv, fetchurl, alsaLib, fluidsynth, libjack2, autoconf, pkgconfig
, mkDerivation, qtbase, qttools, qtx11extras
}:
stdenv.mkDerivation rec { mkDerivation rec {
pname = "qsynth"; pname = "qsynth";
version = "0.5.7"; version = "0.5.7";
@ -11,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoconf pkgconfig ]; nativeBuildInputs = [ autoconf pkgconfig ];
buildInputs = [ alsaLib fluidsynth libjack2 qt5.qtbase qt5.qttools qt5.qtx11extras ]; buildInputs = [ alsaLib fluidsynth libjack2 qtbase qttools qtx11extras ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -65,5 +65,6 @@ python3.pkgs.buildPythonApplication rec {
maintainers = with maintainers; [ coroa sauyon ]; maintainers = with maintainers; [ coroa sauyon ];
homepage = https://quodlibet.readthedocs.io/en/latest/; homepage = https://quodlibet.readthedocs.io/en/latest/;
broken = true;
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "samplv1"; pname = "samplv1";
version = "0.9.9"; version = "0.9.10";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
sha256 = "1y61wb0bzm1cz7y8xxv6hp8mrkfb9zm9irg6zs4g6aanw539r6l8"; sha256 = "04p5jkighmc8rf7fzzy8ch6knqbxv03vhjzdfh9dva2mlzw9rvjj";
}; };
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];

View File

@ -100,5 +100,6 @@ mkDerivation rec {
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ Phlogistique kamilchm ]; maintainers = with lib.maintainers; [ Phlogistique kamilchm ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
broken = true;
}; };
} }

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "spotifyd"; pname = "spotifyd";
version = "0.2.18"; version = "0.2.19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Spotifyd"; owner = "Spotifyd";
repo = "spotifyd"; repo = "spotifyd";
rev = "v${version}"; rev = "v${version}";
sha256 = "12826b0wf31m9vw1s7bcd1hb4ygb1xn4sdknn1y9kzc68brsq94v"; sha256 = "063b28ysj224m6ngns9i574i7vnp1x4g07cqjw908ch04yngcg1c";
}; };
cargoSha256 = "0ar4bfwn3qxa6wsz2hd7nv1wr824h74jy3xqba2qsy0rsfwy1bmm"; cargoSha256 = "0pqxqd5dyw9mjclrqkxzfnzsz74xl4bg0b86v5q6kc0a91zd49b9";
cargoBuildFlags = [ cargoBuildFlags = [
"--no-default-features" "--no-default-features"
@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
description = "An open source Spotify client running as a UNIX daemon"; description = "An open source Spotify client running as a UNIX daemon";
homepage = "https://github.com/Spotifyd/spotifyd"; homepage = "https://github.com/Spotifyd/spotifyd";
license = with licenses; [ gpl3 ]; license = with licenses; [ gpl3 ];
maintainers = [ maintainers.anderslundstedt ]; maintainers = [ maintainers.anderslundstedt maintainers.marsam ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "synthv1"; pname = "synthv1";
version = "0.9.9"; version = "0.9.10";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
sha256 = "0cvamqzg74qfr7kzk3skimskmv0j3d1rmmpbpsmfcrg8srvyx9r2"; sha256 = "1ssdm7aiaz908ydqwdx9khxnnd0yfacjgvbxg5p9s9xhkbqqc2f2";
}; };
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, ninja , ninja
, vala
, pkgconfig , pkgconfig
, pantheon , pantheon
, gtk3 , gtk3
@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
cmake cmake
libxml2 libxml2
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }: , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "20190714"; version = "20190820";
pname = "x42-plugins"; pname = "x42-plugins";
src = fetchurl { src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz"; url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
sha256 = "1mifmdy9pi1lg0h4nsvyjjnnni41vhgg34lks94mrx46wq90bgx4"; sha256 = "0dqsa5yxm3nx50j9k28iillj4sx2mjndzyspymxx0ghir1qmi4vh";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "jormungandr"; pname = "jormungandr";
version = "0.5.5"; version = "0.5.6";
src = fetchgit { src = fetchgit {
url = "https://github.com/input-output-hk/${pname}"; url = "https://github.com/input-output-hk/${pname}";
rev = "v${version}"; rev = "v${version}+lock";
sha256 = "1fzhmkx60b5fnx4x81g5ls93iixd3126m4q1smrpq8ksidw5xifa"; sha256 = "0l6rxr1xjp5hfkf0qfx8qsa1slxn0ly28akci1rwgdhlzjn43zqr";
fetchSubmodules = true; fetchSubmodules = true;
}; };
cargoSha256 = "1hkbzxp6ic1655cq45zv6dcyrk9rbmvscdl8wm8fbidabz4x8vqd"; cargoSha256 = "0590gsghr25bzfmxfyrpg58a0l77y88jwnrkgjxf06x3d66kkn3l";
nativeBuildInputs = [ pkgconfig protobuf ]; nativeBuildInputs = [ pkgconfig protobuf ];
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];

View File

@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.akru ]; maintainers = [ maintainers.akru ];
platforms = platforms.linux; platforms = platforms.linux;
broken = true;
}; };
} }

View File

@ -1,8 +1,11 @@
{ channel, pname, version, build, sha256Hash }: { channel, pname, version, build, sha256Hash }:
{ bash { alsaLib
, bash
, buildFHSUserEnv , buildFHSUserEnv
, coreutils , coreutils
, dbus
, expat
, fetchurl , fetchurl
, findutils , findutils
, file , file
@ -19,16 +22,24 @@
, libpulseaudio , libpulseaudio
, libGL , libGL
, libX11 , libX11
, libxcb
, libXcomposite
, libXcursor
, libXdamage
, libXext , libXext
, libXfixes
, libXi , libXi
, libXrandr , libXrandr
, libXrender , libXrender
, libXtst , libXtst
, makeWrapper , makeWrapper
, nspr
, nss
, pciutils , pciutils
, pkgsi686Linux , pkgsi686Linux
, setxkbmap , setxkbmap
, stdenv , stdenv
, systemd
, unzip , unzip
, which , which
, runCommand , runCommand
@ -99,9 +110,20 @@ let
libXrandr libXrandr
# For Android emulator # For Android emulator
alsaLib
dbus
expat
libpulseaudio libpulseaudio
libX11 libX11
libxcb
libXcomposite
libXcursor
libXdamage
libXfixes
libGL libGL
nspr
nss
systemd
# For GTKLookAndFeel # For GTKLookAndFeel
gtk2 gtk2

View File

@ -12,11 +12,11 @@ let
build = "191.5900203"; build = "191.5900203";
sha256Hash = "0afxlif8pkrl6m1lhiqri1qv4vf5mfm1yg6qk5rad0442hm3kz4l"; sha256Hash = "0afxlif8pkrl6m1lhiqri1qv4vf5mfm1yg6qk5rad0442hm3kz4l";
}; };
betaVersion = stableVersion; betaVersion = latestVersion;
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.6.0.12"; # "Android Studio 3.6 Canary 12" version = "3.6.0.13"; # "Android Studio 3.6 Beta 1"
build = "192.5871855"; build = "192.5916306";
sha256Hash = "0pxvpxqdxv37sl72p7gml70k6kl717k6avw9p0l00cys0zbvb3zq"; sha256Hash = "0kvz3mgpfb3wqr1pw9847d5syswlzls3b4nilzgk6w127k2zmkfy";
}; };
in { in {
# Attributes are named by their corresponding release channels # Attributes are named by their corresponding release channels

View File

@ -38,11 +38,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-builder"; pname = "gnome-builder";
version = "3.34.0"; version = "3.34.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "19i2ipgw48fpd50wacwyhj35hajlg7qcyxpj8rsqk4g21ijfykrg"; sha256 = "19018pq94cxf6fywd7fsmy98x56by5zfmh140pl530gaaw84cvhb";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -26,7 +26,8 @@ stdenv.mkDerivation rec {
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://sourceforge.net/projects/nedit; homepage = "https://sourceforge.net/projects/nedit";
description = "A fast, compact Motif/X11 plain text editor";
platforms = with platforms; linux ++ darwin; platforms = with platforms; linux ++ darwin;
license = licenses.gpl2; license = licenses.gpl2;
}; };

View File

@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
license = licenses.gpl2; license = licenses.gpl2;
description = "A hex editor";
maintainers = with maintainers; [ peterhoeg bkchr ]; maintainers = with maintainers; [ peterhoeg bkchr ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3 { stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, vala
, gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon , gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
, libgee, discount, wrapGAppsHook }: , libgee, discount, wrapGAppsHook }:
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
desktop-file-utils desktop-file-utils
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -136,6 +136,15 @@ stdenv.mkDerivation {
find $out/share/man \( -name eVim.1 -or -name xxd.1 \) -delete find $out/share/man \( -name eVim.1 -or -name xxd.1 \) -delete
''; '';
# We rely on the user's Xcode install to build. It may be located in an arbitrary place, and
# it's not clear what system-level components it may require, so for now we'll just allow full
# filesystem access. This way the package still can't access the network.
sandboxProfile = ''
(allow file-read* file-write* process-exec mach-lookup)
; block homebrew dependencies
(deny file-read* file-write* process-exec mach-lookup (subpath "/usr/local") (with no-log))
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Vim - the text editor - for macOS"; description = "Vim - the text editor - for macOS";
homepage = https://github.com/macvim-dev/macvim; homepage = https://github.com/macvim-dev/macvim;

View File

@ -11,13 +11,13 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = { sha256 = {
x86_64-linux = "1wxaxz2q4qizh6f23ipz8ihay6bpjdq0545vijqd84fqazcji6sq"; x86_64-linux = "06yrcn7857fw1dvwj0fhj6b2pb224i0r1m2diqg49a0jaj15mnak";
x86_64-darwin = "1gb9w3hvw3avn852an5v8m1ia64fkavnvaawjfc3455b248iiqvk"; x86_64-darwin = "0gq2lazjlzf7wmmdlpg5zg60lmwlmq5rm65lb815r0dpqqj0dizn";
}.${system}; }.${system};
in in
callPackage ./generic.nix rec { callPackage ./generic.nix rec {
version = "1.38.1"; version = "1.39.1";
pname = "vscode"; pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders"; executableName = "code" + lib.optionalString isInsiders "-insiders";

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, fetchpatch , fetchpatch
, pantheon , pantheon
, vala
, pkgconfig , pkgconfig
, meson , meson
, ninja , ninja
@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -1,6 +1,7 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch , fetchpatch
, vala
, pkgconfig , pkgconfig
, python3 , python3
, glib , glib
@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
desktop-file-utils desktop-file-utils
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -14,13 +14,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "openimageio"; pname = "openimageio";
version = "2.0.10"; version = "2.0.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenImageIO"; owner = "OpenImageIO";
repo = "oiio"; repo = "oiio";
rev = "Release-${version}"; rev = "Release-${version}";
sha256 = "0k60kgfahsqcgmydsf1kh1qzshn8mksaw772z48a40qnx28pfjys"; sha256 = "1kasp9as81wjvys9qrx10mgdf9bjbdgryhdgjqn05zdmv2rs95nc";
}; };
outputs = [ "bin" "out" "dev" "doc" ]; outputs = [ "bin" "out" "dev" "doc" ];

View File

@ -51,6 +51,6 @@ stdenv.mkDerivation {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = [ maintainers.MtP ]; maintainers = [ maintainers.MtP ];
platforms = platforms.linux; platforms = platforms.linux;
broken = stdenv.isAarch64; broken = true;
}; };
} }

View File

@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, vala
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
gettext gettext
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -4,13 +4,13 @@
mkDerivation rec { mkDerivation rec {
pname = "barrier"; pname = "barrier";
version = "2.3.1"; version = "2.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "debauchee"; owner = "debauchee";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1dakpgs4jcwg06f45xg6adc83jd2qnpywmjm1z7g0hzd2vd0qg4k"; sha256 = "1gbg3p7c0vcsdzsjj1ssx6k8xpj3rpyvais12266f0xvnbvihczd";
}; };
buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ]; buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ];

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, meson , meson
, ninja , ninja
, vala
, pkgconfig , pkgconfig
, pantheon , pantheon
, python3 , python3
@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
gettext gettext
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -138,5 +138,6 @@ in stdenv.mkDerivation rec {
vidbina vidbina
]; ];
platforms = platforms.linux; platforms = platforms.linux;
broken = true;
}; };
} }

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, meson , meson
, ninja , ninja
, vala
, pkgconfig , pkgconfig
, pantheon , pantheon
, python3 , python3
@ -42,7 +43,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, pantheon { stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, pantheon
, gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }: , gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -2,14 +2,14 @@
gettext, glib, portaudio }: gettext, glib, portaudio }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "opencpn"; pname = "opencpn-unstable";
version = "5.0.0"; version = "2019-05-15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenCPN"; owner = "OpenCPN";
repo = "OpenCPN"; repo = "OpenCPN";
rev = "v${version}"; rev = "83a3c4b5ff011d4eb070f009e0a46d194b177047";
sha256 = "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja"; sha256 = "00s1mxnkf1gg41hrz0zp8ypkp98py0m1c22im2zd09k6lcddxw5p";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -58,6 +58,7 @@ in stdenv.mkDerivation {
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ elitak ]; maintainers = with maintainers; [ elitak ];
broken = true;
}; };
} }

View File

@ -45,5 +45,6 @@ llvmPackages.stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ tmplt ]; maintainers = with maintainers; [ tmplt ];
broken = true;
}; };
} }

View File

@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, vala
, gettext , gettext
, libxml2 , libxml2
, pkgconfig , pkgconfig
@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pantheon.vala vala
gettext gettext
gobject-introspection gobject-introspection
libxml2 libxml2

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sakura"; pname = "sakura";
version = "3.6.0"; version = "3.7.0";
src = fetchurl { src = fetchurl {
url = "https://launchpad.net/sakura/trunk/${version}/+download/${pname}-${version}.tar.bz2"; url = "https://launchpad.net/sakura/trunk/${version}/+download/${pname}-${version}.tar.gz";
sha256 = "1q463qm41ym7jb3kbzjz7b6x549vmgkb70arpkhsf86yxly1y5m1"; sha256 = "15gskj5yv5qs3cj4ps43735kfx2nzjlhq4dk9ghirl8lvhhxsm5m";
}; };
nativeBuildInputs = [ cmake perl pkgconfig ]; nativeBuildInputs = [ cmake perl pkgconfig ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub { stdenv, fetchFromGitHub
, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils , vala, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }: , gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }:
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
sha256 = "16vc3v9qls9fxg9h8fsi67z68s4acl5hj14gbcrnqm7mf3kmk3aw"; sha256 = "16vc3v9qls9fxg9h8fsi67z68s4acl5hj14gbcrnqm7mf3kmk3aw";
}; };
nativeBuildInputs = [ meson ninja pkgconfig pantheon.vala gettext wrapGAppsHook python3 desktop-file-utils ]; nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libssh2 ]; buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libssh2 ];

View File

@ -1,8 +1,8 @@
{ stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }: { stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
let let
pname = "sidequest"; pname = "sidequest";
version = "0.3.1"; version = "0.7.2";
desktopItem = makeDesktopItem rec { desktopItem = makeDesktopItem rec {
name = "SideQuest"; name = "SideQuest";
exec = "SideQuest"; exec = "SideQuest";
@ -15,17 +15,17 @@
inherit pname version; inherit pname version;
src = fetchurl { src = fetchurl {
url = "https://github.com/the-expanse/SideQuest/releases/download/${version}/SideQuest-linux-x64.tar.gz"; url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
sha256 = "1hj398zzp1x74zhp9rlhqzm9a0ck6zh9bj39g6fpvc38zab5dj1p"; sha256 = "035grhzqm3qdfcq5vn4a85lgb188rg60wlgc02r44cnj4sbsyyzj";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];
buildCommand = '' buildCommand = ''
mkdir -p "$out/lib/SideQuest" "$out/bin" mkdir -p "$out/lib/SideQuest" "$out/bin"
tar -xzf "$src" -C "$out/lib/SideQuest" --strip-components 1 tar -xJf "$src" -C "$out/lib/SideQuest" --strip-components 1
ln -s "$out/lib/SideQuest/SideQuest" "$out/bin" ln -s "$out/lib/SideQuest/sidequest" "$out/bin"
fixupPhase fixupPhase
@ -35,7 +35,7 @@
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}/lib:${lib.makeLibraryPath [libuuid at-spi2-atk]}:$out/lib/SideQuest" \ --set-rpath "${atomEnv.libPath}/lib:${lib.makeLibraryPath [libuuid at-spi2-atk]}:$out/lib/SideQuest" \
"$out/lib/SideQuest/SideQuest" "$out/lib/SideQuest/sidequest"
''; '';
}; };
in buildFHSUserEnv { in buildFHSUserEnv {
@ -49,11 +49,11 @@
homepage = "https://github.com/the-expanse/SideQuest"; homepage = "https://github.com/the-expanse/SideQuest";
downloadPage = "https://github.com/the-expanse/SideQuest/releases"; downloadPage = "https://github.com/the-expanse/SideQuest/releases";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.joepie91 ]; maintainers = with maintainers; [ joepie91 rvolosatovs ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
}; };
targetPkgs = pkgs: [ targetPkgs = pkgs: [
sidequest sidequest
# Needed in the environment on runtime, to make QuestSaberPatch work # Needed in the environment on runtime, to make QuestSaberPatch work
@ -62,8 +62,8 @@
extraInstallCommands = '' extraInstallCommands = ''
mkdir -p "$out/share/applications" mkdir -p "$out/share/applications"
ln -s "${desktopItem}/share/applications/*" "$out/share/applications" ln -s ${desktopItem}/share/applications/* "$out/share/applications"
''; '';
runScript = "SideQuest"; runScript = "sidequest";
} }

View File

@ -37,6 +37,7 @@ in stdenv.mkDerivation {
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.all; platforms = platforms.all;
maintainers = [ maintainers.krav ]; maintainers = [ maintainers.krav ];
broken = true;
}; };
} }

View File

@ -64,6 +64,8 @@ in stdenv.mkDerivation rec {
outputs = [ "out" "terminfo" ]; outputs = [ "out" "terminfo" ];
passthru = { inherit vte-ng; };
postInstall = '' postInstall = ''
mkdir -p $terminfo/share mkdir -p $terminfo/share
mv $out/share/terminfo $terminfo/share/terminfo mv $out/share/terminfo $terminfo/share/terminfo

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tmatrix"; pname = "tmatrix";
version = "1.0"; version = "1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "M4444"; owner = "M4444";
repo = "TMatrix"; repo = "TMatrix";
rev = "v${version}"; rev = "v${version}";
sha256 = "1g0gn4p02vjc6l8lc78wlx4xkd74ha7ybx9fvvdr6mizk0cyjili"; sha256 = "1x9drk3wdsd6vzcypk3x068sqcbgis488s9fhcpsv8xgb496rd6y";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub { stdenv, fetchFromGitHub
, meson, ninja, pkgconfig, python3, libgee, gsettings-desktop-schemas , vala, meson, ninja, pkgconfig, python3, libgee, gsettings-desktop-schemas
, gnome3, pantheon, gobject-introspection, wrapGAppsHook , gnome3, pantheon, gobject-introspection, wrapGAppsHook
, gtk3, json-glib, glib, glib-networking , gtk3, json-glib, glib, glib-networking
}: }:
@ -23,7 +23,7 @@ in stdenv.mkDerivation {
ninja ninja
pkgconfig pkgconfig
python3 python3
pantheon.vala vala
wrapGAppsHook wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wmc-mpris"; pname = "wmc-mpris";
version = "unstable-2019-07-24"; version = "0.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "f1u77y"; owner = "f1u77y";
repo = pname; repo = pname;
rev = "3b92847c576662732984ad791d6c7899a39f7787"; rev = "v${version}";
sha256 = "0q19z0zx53pd237x529rif21kliklwzjrdddx8jfr9hgghjv9giq"; sha256 = "1zcnaf9g55cbj9d2zlsr0i15qh0w9gp5jmxkm6dcp1j6yd7j3ymc";
}; };
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];

View File

@ -17,5 +17,7 @@ buildGoPackage rec {
meta = { meta = {
license = stdenv.lib.licenses.isc; license = stdenv.lib.licenses.isc;
homepage = "https://github.com/schachmat/wego";
description = "Weather app for the terminal";
}; };
} }

View File

@ -7,7 +7,7 @@
buildGoModule rec { buildGoModule rec {
pname = "wtf"; pname = "wtf";
version = "0.22.0"; version = "0.23.0";
overrideModAttrs = _oldAttrs : _oldAttrs // { overrideModAttrs = _oldAttrs : _oldAttrs // {
preBuild = ''export GOPROXY="https://gocenter.io"''; preBuild = ''export GOPROXY="https://gocenter.io"'';
@ -17,10 +17,10 @@ buildGoModule rec {
owner = "wtfutil"; owner = "wtfutil";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1d8lp94cw8rh9r9y64awxafhw9fmp33v3m761gzy500hrxal2rzb"; sha256 = "0bhk81jmv6rq8h898lmvrh9v356310fbi82lvakmgay7nvzk9a1c";
}; };
modSha256 = "0m180571j4564py5mzdcbyypk71fdlp2vkfdwi6q85nd2q94sx6h"; modSha256 = "1ndb7zbhaq0cnd8fd05fvb62qi0mxilgydz42qqz2z4fkbx9gp3m";
buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];

View File

@ -107,7 +107,7 @@ let
base = rec { base = rec {
name = "${packageName}-unwrapped-${version}"; name = "${packageName}-unwrapped-${version}";
inherit (upstream-info) version; inherit (upstream-info) channel version;
inherit packageName buildType buildPath; inherit packageName buildType buildPath;
src = upstream-info.main; src = upstream-info.main;
@ -125,19 +125,22 @@ let
glib gtk3 dbus-glib glib gtk3 dbus-glib
libXScrnSaver libXcursor libXtst libGLU_combined libXScrnSaver libXcursor libXtst libGLU_combined
pciutils protobuf speechd libXdamage at-spi2-core pciutils protobuf speechd libXdamage at-spi2-core
jdk.jre
] ++ optional gnomeKeyringSupport libgnome-keyring3 ] ++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
++ optionals cupsSupport [ libgcrypt cups ] ++ optionals cupsSupport [ libgcrypt cups ]
++ optional useVaapi libva ++ optional useVaapi libva
++ optional pulseSupport libpulseaudio ++ optional pulseSupport libpulseaudio;
++ optional (versionAtLeast version "72") jdk.jre;
patches = [ patches = [
./patches/nix_plugin_paths_68.patch ./patches/nix_plugin_paths_68.patch
./patches/remove-webp-include-69.patch ./patches/remove-webp-include-69.patch
./patches/jumbo-sorted.patch
./patches/no-build-timestamps.patch ./patches/no-build-timestamps.patch
] ++ optionals (channel == "stable" || channel == "beta") [
./patches/widevine.patch ./patches/widevine.patch
] ++ optionals (channel == "dev") [
./patches/widevine-79.patch
] ++ optionals (channel == "stable") [
# Revert "Implement GetFallbackFont on Linux" to fix a performance regression # Revert "Implement GetFallbackFont on Linux" to fix a performance regression
# Remove after https://bugs.chromium.org/p/chromium/issues/detail?id=1003997 is fixed # Remove after https://bugs.chromium.org/p/chromium/issues/detail?id=1003997 is fixed
(fetchpatch { (fetchpatch {
@ -153,6 +156,7 @@ let
# - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium # - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium
# - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits # - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits
# #
# ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
# ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
] ++ optionals (useVaapi) [ ] ++ optionals (useVaapi) [
# source: https://aur.archlinux.org/cgit/aur.git/plain/chromium-vaapi.patch?h=chromium-vaapi # source: https://aur.archlinux.org/cgit/aur.git/plain/chromium-vaapi.patch?h=chromium-vaapi
@ -234,9 +238,6 @@ let
use_gold = true; use_gold = true;
gold_path = "${stdenv.cc}/bin"; gold_path = "${stdenv.cc}/bin";
is_debug = false; is_debug = false;
# Use jumbo for a 2x (at least) compilation speedup, except where it is currently broken:
# https://gist.github.com/ivan/6fe7014c1b1cc35dec133fa6de0549d9
use_jumbo_build = (version != "78.0.3904.17");
proprietary_codecs = false; proprietary_codecs = false;
use_sysroot = false; use_sysroot = false;

View File

@ -62,7 +62,7 @@ in let
if upstream-info.channel == "stable" then if upstream-info.channel == "stable" then
"./opt/google/chrome/libwidevinecdm.so" "./opt/google/chrome/libwidevinecdm.so"
else if upstream-info.channel == "beta" then else if upstream-info.channel == "beta" then
"./opt/google/chrome-beta/libwidevinecdm.so" "./opt/google/chrome-beta/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
else if upstream-info.channel == "dev" then else if upstream-info.channel == "dev" then
"./opt/google/chrome-unstable/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so" "./opt/google/chrome-unstable/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
else else

View File

@ -1,11 +0,0 @@
--- chromium-70.0.3538.67/build/config/merge_for_jumbo.py.old 2018-10-25 19:15:54.578222230 +0300
+++ chromium-70.0.3538.67/build/config/merge_for_jumbo.py 2018-10-25 19:20:44.397613032 +0300
@@ -132,6 +132,8 @@
assert not inputs
continue
+ inputs.sort()
+ outputs.sort()
write_jumbo_files(inputs, outputs, written_input_set, written_output_set)
assert set(args.outputs) == written_output_set, "Did not fill all outputs"

View File

@ -0,0 +1,11 @@
diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
index dd6efed02646..4d8b2b7d85f7 100644
--- a/third_party/widevine/cdm/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/widevine_cdm_version.h
@@ -11,5 +11,6 @@
// If the Widevine CDM is available define the following:
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "undefined"
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory. # This file is autogenerated from update.sh in the same directory.
{ {
beta = { beta = {
sha256 = "1hzgzmrn0d6cqvqnqayl048zwlcx0f7azg2rhvm7p13lvyqzsk00"; sha256 = "0al26nfcxa00gvgn02iasjm53wq089r3c6b3rqqanljffng565y7";
sha256bin64 = "0p3275ii8800swlfmljbdrvyqjd5nlw0vgv2my4r8ccszgbhidbd"; sha256bin64 = "0qfj08adqn19sxsgd98fy5l23cikvfkpzkz9mqq90mlabmhhrp0z";
version = "77.0.3865.90"; version = "78.0.3904.50";
}; };
dev = { dev = {
sha256 = "0zka01ml3hbximswzkkqbqq8wpiz8f4fq4wx5fys002hi69l296l"; sha256 = "0ck52j5acdns7vqqvb665xpc68yl6qz0ca8lwjfhriw5hn8g1pjy";
sha256bin64 = "0nrip45s0ylri34vlpf16xlwv3ybmy2jg7dz8l9rvgbdwwdzdb75"; sha256bin64 = "073gxyfayrb1dqsq8ngmnrs8ajwwrr2qbs311ns64davn1z3sscf";
version = "78.0.3904.17"; version = "79.0.3928.4";
}; };
stable = { stable = {
sha256 = "1hzgzmrn0d6cqvqnqayl048zwlcx0f7azg2rhvm7p13lvyqzsk00"; sha256 = "1y3ay0ppwakbw2hqrmxbv4ykil8dahf62ypld17ddkqxkfqgk4np";
sha256bin64 = "1npx867j39mdyivf8nlkcfwgq7j34hl7s948vf6h2kqni0y50hzl"; sha256bin64 = "0j1sk36nfmhx6nk8lmsdi93vcrmn58pidhb5hzkapx8mgk6xraq7";
version = "77.0.3865.90"; version = "77.0.3865.120";
}; };
} }

View File

@ -1,6 +1,7 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, desktop-file-utils , desktop-file-utils
, vala
, gettext , gettext
, glib , glib
, gtk3 , gtk3
@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
gettext gettext
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -3,14 +3,14 @@
, glib-networking, python3, fetchpatch }: , glib-networking, python3, fetchpatch }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.0.1"; version = "1.0.2";
pname = "cawbird"; pname = "cawbird";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "IBBoard"; owner = "IBBoard";
repo = "cawbird"; repo = "cawbird";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256:0bk33fh32nnv6ya6j0ij34abw6a3g6m8fq13303slhhja8xhvmb1"; sha256 = "sha256:0b79ngwilicqkgacva93cir4rmk15yzgsih56yb3a4n6bqjispay";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -22,14 +22,6 @@ stdenv.mkDerivation rec {
glib gtk3 json-glib sqlite libsoup gettext gnome3.dconf gnome3.gspell glib-networking glib gtk3 json-glib sqlite libsoup gettext gnome3.dconf gnome3.gspell glib-networking
] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad (gst-plugins-good.override { gtkSupport = true; }) gst-libav ]); ] ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad (gst-plugins-good.override { gtkSupport = true; }) gst-libav ]);
patches = [
# Fix build with vala 0.46
(fetchpatch {
url = "https://github.com/IBBoard/cawbird/commit/7b88f8856d108b9555ba7b855c7daed7b9e745ca.patch";
sha256 = "10kfdy91yas4xyz0hd057q6nsqfrkljcj7pql81xgm43qaff31y0";
})
];
postPatch = '' postPatch = ''
chmod +x data/meson_post_install.py # patchShebangs requires executable file chmod +x data/meson_post_install.py # patchShebangs requires executable file
patchShebangs data/meson_post_install.py patchShebangs data/meson_post_install.py

View File

@ -97,8 +97,8 @@ in rec {
terraform_0_11-full = terraform_0_11.full; terraform_0_11-full = terraform_0_11.full;
terraform_0_12 = pluggable (generic { terraform_0_12 = pluggable (generic {
version = "0.12.9"; version = "0.12.10";
sha256 = "14js4n08rg30y0jrm0na79syglpb64cb7cxys0x3w47pcbgymrka"; sha256 = "0bmqcmzjsrpvvnd9pn40f774c8jy6j810qz0njxqh60yh27f5rhx";
patches = [ ./provider-path.patch ]; patches = [ ./provider-path.patch ];
passthru = { inherit plugins; }; passthru = { inherit plugins; };
}); });

View File

@ -53,5 +53,6 @@ rustPlatform.buildRustPackage rec {
maintainers = with maintainers; [ dotlambda nicknovitski ]; maintainers = with maintainers; [ dotlambda nicknovitski ];
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
broken = true;
}; };
} }

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, vala
, gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }: , gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pantheon.vala vala
gobject-introspection gobject-introspection
meson meson
ninja ninja

View File

@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ orivej ]; maintainers = with maintainers; [ orivej ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
broken = true;
}; };
} }

View File

@ -58,7 +58,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; pname = "signal-desktop";
version = "1.27.3"; # Please backport all updates to the stable channel. version = "1.27.4"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -68,7 +68,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1c9arwnwa0lirvkwm0rfknabqn5gkznihxl1p2m6j7cs7hwhhsn2"; sha256 = "1aza1s70xzx9qkv7b5mpfi4zgdn5dq3rl03lx3jixij3x3pxg5sj";
}; };
phases = [ "unpackPhase" "installPhase" ]; phases = [ "unpackPhase" "installPhase" ];

View File

@ -1,14 +1,14 @@
{ mkDerivation, lib, fetchFromGitHub, fetchsvn, fetchpatch { mkDerivation, lib, fetchFromGitHub, fetchsvn, fetchpatch
, pkgconfig, pythonPackages, cmake, wrapGAppsHook, wrapQtAppsHook, gcc9 , pkgconfig, pythonPackages, cmake, wrapGAppsHook, wrapQtAppsHook, gcc9
, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils , qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 , dee, ffmpeg_4, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
}: }:
with lib; with lib;
mkDerivation rec { mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "1.8.13"; version = "1.8.15";
# Note: Due to our strong dependency on the Arch patches it's probably best # Note: Due to our strong dependency on the Arch patches it's probably best
# to also wait for the Arch update (especially if the patches don't apply). # to also wait for the Arch update (especially if the patches don't apply).
@ -17,7 +17,7 @@ mkDerivation rec {
owner = "telegramdesktop"; owner = "telegramdesktop";
repo = "tdesktop"; repo = "tdesktop";
rev = "v${version}"; rev = "v${version}";
sha256 = "19p4cjzk7jyhrd4sd8dq1r1zksff23zyg5rh5vlr3kqd372bffzz"; sha256 = "03173y2nlkf757llgpia8p2dkkwsjra7b6qm5nhmkcwcm8kmsvyy";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -59,7 +59,7 @@ mkDerivation rec {
buildInputs = [ buildInputs = [
qtbase qtimageformats gtk3 libappindicator-gtk3 qtbase qtimageformats gtk3 libappindicator-gtk3
dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3 dee ffmpeg_4 openalSoft minizip libopus alsaLib libpulseaudio range-v3
]; ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
description = "Link-local XMPP connection manager for Telepathy"; description = "Link-local XMPP connection manager for Telepathy";
platforms = platforms.gnu ++ platforms.linux; # Random choice platforms = platforms.gnu ++ platforms.linux; # Random choice
maintainers = [ maintainers.lethalman ]; maintainers = [ maintainers.lethalman ];
broken = true;
}; };
} }

View File

@ -25,5 +25,6 @@ stdenv.mkDerivation {
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ mog ]; maintainers = with maintainers; [ mog ];
broken = true;
}; };
} }

View File

@ -71,14 +71,10 @@ stdenv.mkDerivation rec {
mv opt/Mullvad\ VPN/* $out/share/mullvad mv opt/Mullvad\ VPN/* $out/share/mullvad
sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop
sed -i 's|\/opt\/Mullvad.*VPN/resources|'$out'/bin|g' $out/share/mullvad/resources/mullvad-daemon.service
ln -s $out/share/mullvad/mullvad-vpn $out/bin/mullvad-vpn ln -s $out/share/mullvad/mullvad-vpn $out/bin/mullvad-vpn
ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon
mkdir -p $out/etc/systemd/system
ln -s $out/share/mullvad/resources/mullvad-daemon.service $out/etc/systemd/system/mullvad-daemon.service
runHook postInstall runHook postInstall
''; '';
@ -88,6 +84,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md"; changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
license = licenses.gpl3; license = licenses.gpl3;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.xfix ];
}; };
} }

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig, mkDerivation { stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig, qt5
, qtbase, qttools, qtsvg, qmake, avahi, boost, libopus, libsndfile, protobuf, speex, libcap , avahi, boost, libopus, libsndfile, protobuf, speex, libcap
, alsaLib, python , alsaLib, python
, jackSupport ? false, libjack2 ? null , jackSupport ? false, libjack2 ? null
, speechdSupport ? false, speechd ? null , speechdSupport ? false, speechd ? null
@ -14,12 +14,12 @@ assert iceSupport -> zeroc-ice != null;
with stdenv.lib; with stdenv.lib;
let let
generic = overrides: source: mkDerivation (source // overrides // { generic = overrides: source: qt5.mkDerivation (source // overrides // {
name = "${overrides.type}-${source.version}"; name = "${overrides.type}-${source.version}";
patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch; patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch;
nativeBuildInputs = [ pkgconfig python qmake ] nativeBuildInputs = [ pkgconfig python qt5.qmake ]
++ (overrides.nativeBuildInputs or [ ]); ++ (overrides.nativeBuildInputs or [ ]);
buildInputs = [ boost protobuf avahi ] buildInputs = [ boost protobuf avahi ]
@ -72,8 +72,8 @@ let
client = source: generic { client = source: generic {
type = "mumble"; type = "mumble";
nativeBuildInputs = [ qttools ]; nativeBuildInputs = [ qt5.qttools ];
buildInputs = [ libopus libsndfile speex qtsvg ] buildInputs = [ libopus libsndfile speex qt5.qtsvg ]
++ optional stdenv.isLinux alsaLib ++ optional stdenv.isLinux alsaLib
++ optional jackSupport libjack2 ++ optional jackSupport libjack2
++ optional speechdSupport speechd ++ optional speechdSupport speechd

View File

@ -10,13 +10,13 @@ with lib;
mkDerivation rec { mkDerivation rec {
pname = "qbittorrent"; pname = "qbittorrent";
version = "4.1.7"; version = "4.1.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qbittorrent"; owner = "qbittorrent";
repo = "qbittorrent"; repo = "qbittorrent";
rev = "release-${version}"; rev = "release-${version}";
sha256 = "1z4k64h3ik1a7ir4v9g3ar1wq8zfh4r2pq43hr2wvlamm2111gdv"; sha256 = "1mx59mazfmd5yaqdgb6cm8hr5sbp2xgzz3y3yipq1fwq85dj3r5w";
}; };
# NOTE: 2018-05-31: CMake is working but it is not officially supported # NOTE: 2018-05-31: CMake is working but it is not officially supported

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, pkgconfig , pkgconfig
, vala
, pantheon , pantheon
, curl , curl
, glib , glib
@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pantheon.vala vala
pkgconfig pkgconfig
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, meson , meson
, ninja , ninja
, vala
, pkgconfig , pkgconfig
, pantheon , pantheon
, python3 , python3
@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
python3 python3
wrapGAppsHook wrapGAppsHook

View File

@ -23,7 +23,7 @@
, gtk_engines , gtk_engines
, alsaLib , alsaLib
, zlib , zlib
, version ? "19.8.0" , version ? "19.10.0"
}: }:
let let
@ -48,7 +48,7 @@ let
x86hash = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf"; x86hash = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf";
x64suffix = "60"; x64suffix = "60";
x86suffix = "60"; x86suffix = "60";
homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html; homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest.html;
}; };
"19.8.0" = { "19.8.0" = {
@ -59,7 +59,18 @@ let
x86hash = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn"; x86hash = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn";
x64suffix = "20"; x64suffix = "20";
x86suffix = "20"; x86suffix = "20";
homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html; homepage = https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest1.html;
};
"19.10.0" = {
major = "19";
minor = "10";
patch = "0";
x64hash = "1l4q4pmfiw9gmml6j5b3hls2101xf5m8p6855nhfhvqlisrj9h14";
x86hash = "000zjik8wf8b6fadnsai0p77b4n2l95544zx503iyrb9pv53bj3y";
x64suffix = "15";
x86suffix = "15";
homepage = https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest1.html;
}; };
}; };

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, meson , meson
, ninja , ninja
, vala
, pkgconfig , pkgconfig
, gtk3 , gtk3
, python3 , python3
@ -31,7 +32,7 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ nativeBuildInputs = [
appstream-glib appstream-glib
desktop-file-utils desktop-file-utils
pantheon.vala vala
gettext gettext
gobject-introspection # For setup hook gobject-introspection # For setup hook
libxml2 libxml2

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3 { stdenv, vala, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3
, desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook }: , desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
ninja ninja
pkgconfig pkgconfig
python3 python3
pantheon.vala vala
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pantheon, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk { stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk
, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }: , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
ninja ninja
pkgconfig pkgconfig
python3 python3
pantheon.vala vala
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
homepage = https://kmymoney.org/; homepage = https://kmymoney.org/;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
broken = true;
}; };
} }

View File

@ -1,4 +1,19 @@
{ stdenv, fetchFromGitHub, pantheon, pkgconfig, cmake, ninja, gtk3, gtksourceview3, webkitgtk, gtkspell3, glib, libgee, sqlite, discount, wrapGAppsHook { stdenv
, fetchFromGitHub
, pantheon
, pkgconfig
, vala
, cmake
, ninja
, gtk3
, gtksourceview3
, webkitgtk
, gtkspell3
, glib
, libgee
, sqlite
, discount
, wrapGAppsHook
, withPantheon ? false }: , withPantheon ? false }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +30,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
ninja ninja
pantheon.vala vala
pkgconfig pkgconfig
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -37,5 +37,6 @@ mkDerivation rec {
license = with licenses; [ gpl3 ]; license = with licenses; [ gpl3 ];
maintainers = with maintainers; [ joko ]; maintainers = with maintainers; [ joko ];
homepage = https://skrooge.org/; homepage = https://skrooge.org/;
broken = true;
}; };
} }

View File

@ -3,6 +3,7 @@
, cmake , cmake
, gdk-pixbuf , gdk-pixbuf
, gtk3 , gtk3
, vala
, gettext , gettext
, ninja , ninja
, pantheon , pantheon
@ -12,7 +13,8 @@
, libevdev , libevdev
, libgee , libgee
, libsoup , libsoup
, wrapGAppsHook }: , wrapGAppsHook
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "spice-up"; pname = "spice-up";
@ -32,7 +34,7 @@ stdenv.mkDerivation rec {
gettext gettext
ninja ninja
pkgconfig pkgconfig
pantheon.vala vala
wrapGAppsHook wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [

View File

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, glib , glib
, gtk3 , gtk3
, vala
, json-glib , json-glib
, libgee , libgee
, meson , meson
@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
meson meson
ninja ninja
pkgconfig pkgconfig
pantheon.vala vala
python3 python3
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -6,13 +6,13 @@
mkDerivation rec { mkDerivation rec {
pname = "stellarium"; pname = "stellarium";
version = "0.19.1"; version = "0.19.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Stellarium"; owner = "Stellarium";
repo = "stellarium"; repo = "stellarium";
rev = "v${version}"; rev = "v${version}";
sha256 = "0hf1wv2bb5j7ny2xh29mj9m4hjblhn02zylay8gl85w7xlqs7s5r"; sha256 = "1ki3s4smazr6xfkr0grrmjp2s8yjprismiaq7l54d0il7rkvhibd";
}; };
nativeBuildInputs = [ cmake perl wrapQtAppsHook ]; nativeBuildInputs = [ cmake perl wrapQtAppsHook ];

View File

@ -26,5 +26,6 @@ stdenv.mkDerivation rec { pname = "EZminc";
maintainers = with maintainers; [ bcdarwin ]; maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix; platforms = platforms.unix;
license = licenses.free; license = licenses.free;
broken = true;
}; };
} }

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