Merge branch 'staging-next' into staging

This commit is contained in:
Jan Tojnar 2021-03-01 19:30:56 +01:00
commit 913394a1d9
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
138 changed files with 6595 additions and 4660 deletions

View File

@ -1554,9 +1554,9 @@ Following rules are desired to be respected:
* Python libraries are called from `python-packages.nix` and packaged with * Python libraries are called from `python-packages.nix` and packaged with
`buildPythonPackage`. The expression of a library should be in `buildPythonPackage`. The expression of a library should be in
`pkgs/development/python-modules/<name>/default.nix`. Libraries in `pkgs/development/python-modules/<name>/default.nix`.
`pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid * Libraries in `pkgs/top-level/python-packages.nix` are sorted
merge conflicts. alphanumerically to avoid merge conflicts and ease locating attributes.
* Python applications live outside of `python-packages.nix` and are packaged * Python applications live outside of `python-packages.nix` and are packaged
with `buildPythonApplication`. with `buildPythonApplication`.
* Make sure libraries build for all Python interpreters. * Make sure libraries build for all Python interpreters.
@ -1570,3 +1570,4 @@ Following rules are desired to be respected:
[PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This [PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This
means that characters should be converted to lowercase and `.` and `_` should means that characters should be converted to lowercase and `.` and `_` should
be replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz ) be replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz )
* Attribute names in `python-packages.nix` should be sorted alphanumerically.

View File

@ -2417,6 +2417,16 @@
githubId = 6806011; githubId = 6806011;
name = "Robert Schütz"; name = "Robert Schütz";
}; };
dottedmag = {
email = "dottedmag@dottedmag.net";
github = "dottedmag";
githubId = 16120;
name = "Misha Gusarov";
keys = [{
longkeyid = "rsa4096/0x9D20F6503E338888";
fingerprint = "A8DF 1326 9E5D 9A38 E57C FAC2 9D20 F650 3E33 8888";
}];
};
doublec = { doublec = {
email = "chris.double@double.co.nz"; email = "chris.double@double.co.nz";
github = "doublec"; github = "doublec";
@ -6055,7 +6065,7 @@
name = "Celine Mercier"; name = "Celine Mercier";
}; };
metadark = { metadark = {
email = "kira.bruneau@gmail.com"; email = "kira.bruneau@pm.me";
name = "Kira Bruneau"; name = "Kira Bruneau";
github = "metadark"; github = "metadark";
githubId = 382041; githubId = 382041;
@ -8039,6 +8049,12 @@
githubId = 3708689; githubId = 3708689;
name = "Roberto Di Remigio"; name = "Roberto Di Remigio";
}; };
robertoszek = {
email = "robertoszek@robertoszek.xyz";
github = "robertoszek";
githubId = 1080963;
name = "Roberto";
};
robgssp = { robgssp = {
email = "robgssp@gmail.com"; email = "robgssp@gmail.com";
github = "robgssp"; github = "robgssp";

View File

@ -523,6 +523,13 @@ self: super:
as an hardware RNG, as it will automatically run the krngd task to periodically collect random as an hardware RNG, as it will automatically run the krngd task to periodically collect random
data from the device and mix it into the kernel's RNG. data from the device and mix it into the kernel's RNG.
</para> </para>
<para>
The default SMTP port for GitLab has been changed to
<literal>25</literal> from its previous default of
<literal>465</literal>. If you depended on this default, you
should now set the <xref linkend="opt-services.gitlab.smtp.port" />
option.
</para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>

View File

@ -23,6 +23,6 @@ stdenv.mkDerivation {
# Generate the squashfs image. # Generate the squashfs image.
mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \ mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \
-keep-as-directory -all-root -b 1048576 -comp ${comp} -no-hardlinks -keep-as-directory -all-root -b 1048576 -comp ${comp}
''; '';
} }

View File

@ -1,69 +0,0 @@
worker_processes 3
listen ENV["UNICORN_PATH"] + "/tmp/sockets/gitlab.socket", :backlog => 1024
listen "/run/gitlab/gitlab.socket", :backlog => 1024
working_directory ENV["GITLAB_PATH"]
pid ENV["UNICORN_PATH"] + "/tmp/pids/unicorn.pid"
timeout 60
# combine Ruby 2.0.0dev or REE with "preload_app true" for memory savings
# http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
preload_app true
GC.respond_to?(:copy_on_write_friendly=) and
GC.copy_on_write_friendly = true
check_client_connection false
before_fork do |server, worker|
# the following is highly recommended for Rails + "preload_app true"
# as there's no need for the master process to hold a connection
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
# The following is only recommended for memory/DB-constrained
# installations. It is not needed if your system can house
# twice as many worker_processes as you have configured.
#
# This allows a new master process to incrementally
# phase out the old master process with SIGTTOU to avoid a
# thundering herd (especially in the "preload_app false" case)
# when doing a transparent upgrade. The last worker spawned
# will then kill off the old master process with a SIGQUIT.
old_pid = "#{server.config[:pid]}.oldbin"
if old_pid != server.pid
begin
sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
Process.kill(sig, File.read(old_pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
end
end
# Throttle the master from forking too quickly by sleeping. Due
# to the implementation of standard Unix signal handlers, this
# helps (but does not completely) prevent identical, repeated signals
# from being lost when the receiving process is busy.
# sleep 1
end
after_fork do |server, worker|
# per-process listener ports for debugging/admin/migrations
# addr = "127.0.0.1:#{9293 + worker.nr}"
# server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true)
# the following is *required* for Rails + "preload_app true",
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
# reset prometheus client, this will cause any opened metrics files to be closed
defined?(::Prometheus::Client.reinitialize_on_pid_change) &&
Prometheus::Client.reinitialize_on_pid_change
# if preload_app is true, then you may also want to check and
# restart any other shared sockets/descriptors such as Memcached,
# and Redis. TokyoCabinet file handles are safe to reuse
# between any number of forked children (assuming your kernel
# correctly implements pread()/pwrite() system calls)
end

View File

@ -142,7 +142,7 @@ let
gitlabEnv = { gitlabEnv = {
HOME = "${cfg.statePath}/home"; HOME = "${cfg.statePath}/home";
UNICORN_PATH = "${cfg.statePath}/"; PUMA_PATH = "${cfg.statePath}/";
GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/"; GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/";
SCHEMA = "${cfg.statePath}/db/structure.sql"; SCHEMA = "${cfg.statePath}/db/structure.sql";
GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads"; GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
@ -424,7 +424,7 @@ in {
port = mkOption { port = mkOption {
type = types.int; type = types.int;
default = 465; default = 25;
description = "Port of the SMTP server for Gitlab."; description = "Port of the SMTP server for Gitlab.";
}; };
@ -641,6 +641,11 @@ in {
environment.systemPackages = [ pkgs.git gitlab-rake gitlab-rails cfg.packages.gitlab-shell ]; environment.systemPackages = [ pkgs.git gitlab-rake gitlab-rails cfg.packages.gitlab-shell ];
systemd.targets.gitlab = {
description = "Common target for all GitLab services.";
wantedBy = [ "multi-user.target" ];
};
# Redis is required for the sidekiq queue runner. # Redis is required for the sidekiq queue runner.
services.redis.enable = mkDefault true; services.redis.enable = mkDefault true;
@ -655,36 +660,45 @@ in {
# here. # here.
systemd.services.gitlab-postgresql = let pgsql = config.services.postgresql; in mkIf databaseActuallyCreateLocally { systemd.services.gitlab-postgresql = let pgsql = config.services.postgresql; in mkIf databaseActuallyCreateLocally {
after = [ "postgresql.service" ]; after = [ "postgresql.service" ];
wantedBy = [ "multi-user.target" ]; bindsTo = [ "postgresql.service" ];
path = [ pgsql.package ]; wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
path = [
pgsql.package
pkgs.util-linux
];
script = '' script = ''
set -eu set -eu
PSQL="${pkgs.util-linux}/bin/runuser -u ${pgsql.superUser} -- psql --port=${toString pgsql.port}" PSQL() {
psql --port=${toString pgsql.port} "$@"
}
$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
$PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"' PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"'
if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" ]]; then if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" ]]; then
echo "Reassigning ownership of database ${cfg.databaseName} to user ${cfg.databaseUsername} failed on last boot. Failing..." echo "Reassigning ownership of database ${cfg.databaseName} to user ${cfg.databaseUsername} failed on last boot. Failing..."
exit 1 exit 1
fi fi
touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
$PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\"" PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\""
rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
fi fi
$PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm" PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
$PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS btree_gist;" PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS btree_gist;"
''; '';
serviceConfig = { serviceConfig = {
User = pgsql.superUser;
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true;
}; };
}; };
# Use postfix to send out mails. # Use postfix to send out mails.
services.postfix.enable = mkDefault true; services.postfix.enable = mkDefault (cfg.smtp.enable && cfg.smtp.address == "localhost");
users.users.${cfg.user} = users.users.${cfg.user} =
{ group = cfg.group; { group = cfg.group;
@ -703,7 +717,6 @@ in {
"d ${cfg.statePath} 0750 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath} 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/builds 0750 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath}/builds 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/config 0750 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath}/config 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/config/initializers 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/db 0750 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath}/db 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/log 0750 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath}/log 0750 ${cfg.user} ${cfg.group} -"
"d ${cfg.statePath}/repositories 2770 ${cfg.user} ${cfg.group} -" "d ${cfg.statePath}/repositories 2770 ${cfg.user} ${cfg.group} -"
@ -726,13 +739,156 @@ in {
"L+ /run/gitlab/uploads - - - - ${cfg.statePath}/uploads" "L+ /run/gitlab/uploads - - - - ${cfg.statePath}/uploads"
"L+ /run/gitlab/shell-config.yml - - - - ${pkgs.writeText "config.yml" (builtins.toJSON gitlabShellConfig)}" "L+ /run/gitlab/shell-config.yml - - - - ${pkgs.writeText "config.yml" (builtins.toJSON gitlabShellConfig)}"
"L+ ${cfg.statePath}/config/unicorn.rb - - - - ${./defaultUnicornConfig.rb}"
]; ];
systemd.services.gitlab-config = {
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
path = with pkgs; [
jq
openssl
replace
git
];
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
RemainAfterExit = true;
ExecStartPre = let
preStartFullPrivileges = ''
shopt -s dotglob nullglob
set -eu
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
if [[ -n "$(ls -A '${cfg.statePath}'/config/)" ]]; then
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
fi
'';
in "+${pkgs.writeShellScript "gitlab-pre-start-full-privileges" preStartFullPrivileges}";
ExecStart = pkgs.writeShellScript "gitlab-config" ''
set -eu
umask u=rwx,g=rx,o=
cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
rm -rf ${cfg.statePath}/db/*
rm -f ${cfg.statePath}/lib
find '${cfg.statePath}/config/' -maxdepth 1 -mindepth 1 -type d -execdir rm -rf {} \;
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
ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
${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}')
replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
''}
''}
(
umask u=rwx,g=,o=
openssl rand -hex 32 > ${cfg.statePath}/gitlab_shell_secret
rm -f '${cfg.statePath}/config/database.yml'
${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
jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
'.production.password = $ENV.db_password' \
>'${cfg.statePath}/config/database.yml'
''
else ''
jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \
>'${cfg.statePath}/config/database.yml'
''
}
${utils.genJqSecretsReplacementSnippet
gitlabConfig
"${cfg.statePath}/config/gitlab.yml"
}
rm -f '${cfg.statePath}/config/secrets.yml'
export secret="$(<'${cfg.secrets.secretFile}')"
export db="$(<'${cfg.secrets.dbFile}')"
export otp="$(<'${cfg.secrets.otpFile}')"
export jws="$(<'${cfg.secrets.jwsFile}')"
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'
)
# We remove potentially broken links to old gitlab-shell versions
rm -Rf ${cfg.statePath}/repositories/**/*.git/hooks
git config --global core.autocrlf "input"
'';
};
};
systemd.services.gitlab-db-config = {
after = [ "gitlab-config.service" "gitlab-postgresql.service" "postgresql.service" ];
bindsTo = [
"gitlab-config.service"
] ++ optional (cfg.databaseHost == "") "postgresql.service"
++ optional databaseActuallyCreateLocally "gitlab-postgresql.service";
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
TimeoutSec = "infinity";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
RemainAfterExit = true;
ExecStart = pkgs.writeShellScript "gitlab-db-config" ''
set -eu
umask u=rwx,g=rx,o=
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
'';
};
};
systemd.services.gitlab-sidekiq = { systemd.services.gitlab-sidekiq = {
after = [ "network.target" "redis.service" "gitlab.service" ]; after = [
wantedBy = [ "multi-user.target" ]; "network.target"
"redis.service"
"postgresql.service"
"gitlab-config.service"
"gitlab-db-config.service"
];
bindsTo = [
"redis.service"
"gitlab-config.service"
"gitlab-db-config.service"
] ++ optional (cfg.databaseHost == "") "postgresql.service";
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
environment = gitlabEnv; environment = gitlabEnv;
path = with pkgs; [ path = with pkgs; [
postgresqlPackage postgresqlPackage
@ -758,9 +914,10 @@ in {
}; };
systemd.services.gitaly = { systemd.services.gitaly = {
after = [ "network.target" "gitlab.service" ]; after = [ "network.target" "gitlab-config.service" ];
bindsTo = [ "gitlab.service" ]; bindsTo = [ "gitlab-config.service" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
path = with pkgs; [ path = with pkgs; [
openssh openssh
procps # See https://gitlab.com/gitlab-org/gitaly/issues/1562 procps # See https://gitlab.com/gitlab-org/gitaly/issues/1562
@ -783,8 +940,10 @@ in {
systemd.services.gitlab-pages = mkIf (gitlabConfig.production.pages.enabled or false) { systemd.services.gitlab-pages = mkIf (gitlabConfig.production.pages.enabled or false) {
description = "GitLab static pages daemon"; description = "GitLab static pages daemon";
after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs after = [ "network.target" "gitlab-config.service" ];
wantedBy = [ "multi-user.target" ]; bindsTo = [ "gitlab-config.service" ];
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
path = [ pkgs.unzip ]; path = [ pkgs.unzip ];
@ -803,7 +962,8 @@ in {
systemd.services.gitlab-workhorse = { systemd.services.gitlab-workhorse = {
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
path = with pkgs; [ path = with pkgs; [
exiftool exiftool
git git
@ -832,8 +992,10 @@ in {
systemd.services.gitlab-mailroom = mkIf (gitlabConfig.production.incoming_email.enabled or false) { systemd.services.gitlab-mailroom = mkIf (gitlabConfig.production.incoming_email.enabled or false) {
description = "GitLab incoming mail daemon"; description = "GitLab incoming mail daemon";
after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs after = [ "network.target" "redis.service" "gitlab-config.service" ];
wantedBy = [ "multi-user.target" ]; bindsTo = [ "gitlab-config.service" ];
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
environment = gitlabEnv; environment = gitlabEnv;
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
@ -842,15 +1004,26 @@ in {
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.packages.gitlab}/share/gitlab/config.dist/mail_room.yml"; ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.statePath}/config/mail_room.yml";
WorkingDirectory = gitlabEnv.HOME; WorkingDirectory = gitlabEnv.HOME;
}; };
}; };
systemd.services.gitlab = { systemd.services.gitlab = {
after = [ "gitlab-workhorse.service" "network.target" "gitlab-postgresql.service" "redis.service" ]; after = [
requires = [ "gitlab-sidekiq.service" ]; "gitlab-workhorse.service"
wantedBy = [ "multi-user.target" ]; "network.target"
"redis.service"
"gitlab-config.service"
"gitlab-db-config.service"
];
bindsTo = [
"redis.service"
"gitlab-config.service"
"gitlab-db-config.service"
] ++ optional (cfg.databaseHost == "") "postgresql.service";
wantedBy = [ "gitlab.target" ];
partOf = [ "gitlab.target" ];
environment = gitlabEnv; environment = gitlabEnv;
path = with pkgs; [ path = with pkgs; [
postgresqlPackage postgresqlPackage
@ -868,96 +1041,7 @@ 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 ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/puma -C ${cfg.statePath}/config/puma.rb -e production";
preStartFullPrivileges = ''
shopt -s dotglob nullglob
set -eu
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/*
chown --no-dereference '${cfg.user}':'${cfg.group}' '${cfg.statePath}'/config/*
'';
preStart = ''
set -eu
cp -f ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
rm -rf ${cfg.statePath}/db/*
rm -rf ${cfg.statePath}/config/initializers/*
rm -f ${cfg.statePath}/lib
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
ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
${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";
}; };
}; };

View File

@ -37,6 +37,11 @@ let
. /etc/profile . /etc/profile
cd "$HOME" cd "$HOME"
# Allow the user to execute commands at the beginning of the X session.
if test -f ~/.xprofile; then
source ~/.xprofile
fi
${optionalString cfg.displayManager.job.logToJournal '' ${optionalString cfg.displayManager.job.logToJournal ''
if [ -z "$_DID_SYSTEMD_CAT" ]; then if [ -z "$_DID_SYSTEMD_CAT" ]; then
export _DID_SYSTEMD_CAT=1 export _DID_SYSTEMD_CAT=1
@ -64,22 +69,23 @@ let
# Speed up application start by 50-150ms according to # Speed up application start by 50-150ms according to
# http://kdemonkey.blogspot.nl/2008/04/magic-trick.html # http://kdemonkey.blogspot.nl/2008/04/magic-trick.html
rm -rf "$HOME/.compose-cache" compose_cache="''${XCOMPOSECACHE:-$HOME/.compose-cache}"
mkdir "$HOME/.compose-cache" mkdir -p "$compose_cache"
# To avoid accidentally deleting a wrongly set up XCOMPOSECACHE directory,
# defensively try to delete cache *files* only, following the file format specified in
# https://gitlab.freedesktop.org/xorg/lib/libx11/-/blob/master/modules/im/ximcp/imLcIm.c#L353-358
# sprintf (*res, "%s/%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(), XIM_CACHE_VERSION, (unsigned int)sizeof (DefTree), hash, hash2);
${pkgs.findutils}/bin/find "$compose_cache" -maxdepth 1 -regextype posix-extended -regex '.*/[Bl][0-9]+_[0-9a-f]{3}_[0-9a-f]{8}_[0-9a-f]{8}' -delete
unset compose_cache
# Work around KDE errors when a user first logs in and # Work around KDE errors when a user first logs in and
# .local/share doesn't exist yet. # .local/share doesn't exist yet.
mkdir -p "$HOME/.local/share" mkdir -p "''${XDG_DATA_HOME:-$HOME/.local/share}"
unset _DID_SYSTEMD_CAT unset _DID_SYSTEMD_CAT
${cfg.displayManager.sessionCommands} ${cfg.displayManager.sessionCommands}
# Allow the user to execute commands at the beginning of the X session.
if test -f ~/.xprofile; then
source ~/.xprofile
fi
# Start systemd user services for graphical sessions # Start systemd user services for graphical sessions
/run/current-system/systemd/bin/systemctl --user start graphical-session.target /run/current-system/systemd/bin/systemctl --user start graphical-session.target

View File

@ -66,7 +66,7 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = ''
enables various settings to avoid common pitfalls when Enables various settings to avoid common pitfalls when
running containers requiring many file operations. running containers requiring many file operations.
Fixes errors like "Too many open files" or Fixes errors like "Too many open files" or
"neighbour: ndisc_cache: neighbor table overflow!". "neighbour: ndisc_cache: neighbor table overflow!".
@ -74,6 +74,17 @@ in {
for details. for details.
''; '';
}; };
startTimeout = mkOption {
type = types.int;
default = 600;
apply = toString;
description = ''
Time to wait (in seconds) for LXD to become ready to process requests.
If LXD does not reply within the configured time, lxd.service will be
considered failed and systemd will attempt to restart it.
'';
};
}; };
}; };
@ -81,40 +92,58 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
security.apparmor = { # Note: the following options are also declared in virtualisation.lxc, but
enable = true; # the latter can't be simply enabled to reuse the formers, because it
profiles = [ # does a bunch of unrelated things.
"${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start" systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
"${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
]; security.apparmor.packages = [ pkgs.lxcPackage ];
packages = [ cfg.lxcPackage ]; security.apparmor.profiles = [
}; "${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
"${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start"
];
# TODO: remove once LXD gets proper support for cgroupsv2 # TODO: remove once LXD gets proper support for cgroupsv2
# (currently most of the e.g. CPU accounting stuff doesn't work) # (currently most of the e.g. CPU accounting stuff doesn't work)
systemd.enableUnifiedCgroupHierarchy = false; systemd.enableUnifiedCgroupHierarchy = false;
systemd.sockets.lxd = {
description = "LXD UNIX socket";
wantedBy = [ "sockets.target" ];
socketConfig = {
ListenStream = "/var/lib/lxd/unix.socket";
SocketMode = "0660";
SocketGroup = "lxd";
Service = "lxd.service";
};
};
systemd.services.lxd = { systemd.services.lxd = {
description = "LXD Container Management Daemon"; description = "LXD Container Management Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "systemd-udev-settle.service" ]; after = [ "network-online.target" "lxcfs.service" ];
requires = [ "network-online.target" "lxd.socket" "lxcfs.service" ];
documentation = [ "man:lxd(1)" ];
path = lib.optional config.boot.zfs.enabled config.boot.zfs.package; path = optional cfg.zfsSupport config.boot.zfs.package;
preStart = ''
mkdir -m 0755 -p /var/lib/lxc/rootfs
'';
serviceConfig = { serviceConfig = {
ExecStart = "@${cfg.package}/bin/lxd lxd --group lxd"; ExecStart = "@${cfg.package}/bin/lxd lxd --group lxd";
Type = "simple"; ExecStartPost = "${cfg.package}/bin/lxd waitready --timeout=${cfg.startTimeout}";
ExecStop = "${cfg.package}/bin/lxd shutdown";
KillMode = "process"; # when stopping, leave the containers alone KillMode = "process"; # when stopping, leave the containers alone
LimitMEMLOCK = "infinity"; LimitMEMLOCK = "infinity";
LimitNOFILE = "1048576"; LimitNOFILE = "1048576";
LimitNPROC = "infinity"; LimitNPROC = "infinity";
TasksMax = "infinity"; TasksMax = "infinity";
Restart = "on-failure";
TimeoutStartSec = "${cfg.startTimeout}s";
TimeoutStopSec = "30s";
# By default, `lxd` loads configuration files from hard-coded # By default, `lxd` loads configuration files from hard-coded
# `/usr/share/lxc/config` - since this is a no-go for us, we have to # `/usr/share/lxc/config` - since this is a no-go for us, we have to
# explicitly tell it where the actual configuration files are # explicitly tell it where the actual configuration files are

View File

@ -11,6 +11,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
nodes = { nodes = {
gitlab = { ... }: { gitlab = { ... }: {
imports = [ common/user-account.nix ];
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047; virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
systemd.services.gitlab.serviceConfig.Restart = mkForce "no"; systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no"; systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
@ -27,11 +29,31 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
}; };
}; };
services.dovecot2 = {
enable = true;
enableImap = true;
};
services.gitlab = { services.gitlab = {
enable = true; enable = true;
databasePasswordFile = pkgs.writeText "dbPassword" "xo0daiF4"; databasePasswordFile = pkgs.writeText "dbPassword" "xo0daiF4";
initialRootPasswordFile = pkgs.writeText "rootPassword" initialRootPassword; initialRootPasswordFile = pkgs.writeText "rootPassword" initialRootPassword;
smtp.enable = true; smtp.enable = true;
extraConfig = {
incoming_email = {
enabled = true;
mailbox = "inbox";
address = "alice@localhost";
user = "alice";
password = "foobar";
host = "localhost";
port = 143;
};
pages = {
enabled = true;
host = "localhost";
};
};
secrets = { secrets = {
secretFile = pkgs.writeText "secret" "r8X9keSKynU7p4aKlh4GO1Bo77g5a7vj"; secretFile = pkgs.writeText "secret" "r8X9keSKynU7p4aKlh4GO1Bo77g5a7vj";
otpFile = pkgs.writeText "otpsecret" "Zu5hGx3YvQx40DvI8WoZJQpX2paSDOlG"; otpFile = pkgs.writeText "otpsecret" "Zu5hGx3YvQx40DvI8WoZJQpX2paSDOlG";
@ -64,12 +86,16 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
in in
'' ''
gitlab.start() gitlab.start()
gitlab.wait_for_unit("gitaly.service") gitlab.wait_for_unit("gitaly.service")
gitlab.wait_for_unit("gitlab-workhorse.service") gitlab.wait_for_unit("gitlab-workhorse.service")
gitlab.wait_for_unit("gitlab-pages.service")
gitlab.wait_for_unit("gitlab-mailroom.service")
gitlab.wait_for_unit("gitlab.service") gitlab.wait_for_unit("gitlab.service")
gitlab.wait_for_unit("gitlab-sidekiq.service") gitlab.wait_for_unit("gitlab-sidekiq.service")
gitlab.wait_for_file("/var/gitlab/state/tmp/sockets/gitlab.socket") gitlab.wait_for_file("/var/gitlab/state/tmp/sockets/gitlab.socket")
gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in") gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in")
gitlab.succeed( gitlab.succeed(
"curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in" "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in"
) )

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ergo"; pname = "ergo";
version = "4.0.0"; version = "4.0.7";
src = fetchurl { src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar"; url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
sha256 = "sha256-M0kgd/txqc04WNLNZiq+imHMM9YGFd12jMWJyY2ExrY="; sha256 = "sha256-CDNH7vYLG7Gn22yl+cXtGAD+c8tbNU52FmdxneTM2u4=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -72,8 +72,8 @@ let
installPhase = '' installPhase = ''
cp -r . $out cp -r . $out
wrapProgram $out/bin/studio.sh \ wrapProgram $out/bin/studio.sh \
--set-default JAVA_HOME "$out/jre" \
--set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \ --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
--set JAVA_HOME "$out/jre" \
--set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \ --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
--set FONTCONFIG_FILE ${fontsConf} \ --set FONTCONFIG_FILE ${fontsConf} \
--prefix PATH : "${lib.makeBinPath [ --prefix PATH : "${lib.makeBinPath [

View File

@ -14,13 +14,13 @@ let
sha256Hash = "1f9bclvyvm3sg9an7wxlfwd8jwnb9cl726dvggmysa6r7shc7xw9"; sha256Hash = "1f9bclvyvm3sg9an7wxlfwd8jwnb9cl726dvggmysa6r7shc7xw9";
}; };
betaVersion = { betaVersion = {
version = "4.2.0.20"; # "Android Studio 4.2 Beta 4" version = "4.2.0.21"; # "Android Studio 4.2 Beta 5"
build = "202.7094744"; build = "202.7141121";
sha256Hash = "10c4qfq6d9ggs88s8h3pryhlnzw17m60qci78rjbh32wmm02sciz"; sha256Hash = "05610xf9zz3yxarx6fv83fynlvqw9jl7h2a40yj3xx5kb7mzdnf2";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "2020.3.1.5"; # "Android Studio Arctic Fox (2020.3.1) Canary 5" version = "2020.3.1.7"; # "Android Studio Arctic Fox (2020.3.1) Canary 7"
sha256Hash = "0x749sbg7qa5ncwwaywcldlhyyyyfh05bms2czz1rv6h7zgq16vq"; sha256Hash = "03gq4s8rmg7si0r2y1w26v9bjwhj6gzmrdny5z3j5pq8xsfjfqiw";
}; };
in { in {
# Attributes are named by their corresponding release channels # Attributes are named by their corresponding release channels

View File

@ -685,10 +685,10 @@
elpaBuild { elpaBuild {
pname = "csv-mode"; pname = "csv-mode";
ename = "csv-mode"; ename = "csv-mode";
version = "1.14"; version = "1.15";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/csv-mode-1.14.tar"; url = "https://elpa.gnu.org/packages/csv-mode-1.15.tar";
sha256 = "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp"; sha256 = "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -726,16 +726,16 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
dash = callPackage ({ elpaBuild, fetchurl, lib }: dash = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "dash"; pname = "dash";
ename = "dash"; ename = "dash";
version = "2.12.0"; version = "2.18.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/dash-2.12.0.tar"; url = "https://elpa.gnu.org/packages/dash-2.18.1.tar";
sha256 = "02r547vian59zr55z6ri4p2b7q5y5k256wi9j8a317vjzyh54m05"; sha256 = "17mrvmrfh5c3kri4r3gf1c3gz4i5vl9ac60grpx4103b56y4cgra";
}; };
packageRequires = []; packageRequires = [ emacs ];
meta = { meta = {
homepage = "https://elpa.gnu.org/packages/dash.html"; homepage = "https://elpa.gnu.org/packages/dash.html";
license = lib.licenses.free; license = lib.licenses.free;
@ -2373,10 +2373,10 @@
elpaBuild { elpaBuild {
pname = "oauth2"; pname = "oauth2";
ename = "oauth2"; ename = "oauth2";
version = "0.15"; version = "0.16";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/oauth2-0.15.el"; url = "https://elpa.gnu.org/packages/oauth2-0.16.tar";
sha256 = "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"; sha256 = "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316";
}; };
packageRequires = [ cl-lib nadvice ]; packageRequires = [ cl-lib nadvice ];
meta = { meta = {
@ -2714,6 +2714,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
pyim = callPackage ({ async, elpaBuild, emacs, fetchurl, lib, xr }:
elpaBuild {
pname = "pyim";
ename = "pyim";
version = "3.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-3.2.tar";
sha256 = "1rr9mq334dqf7mx1ii7910zkigw7chl63iws4sw0qsn014kjlb0a";
};
packageRequires = [ async emacs xr ];
meta = {
homepage = "https://elpa.gnu.org/packages/pyim.html";
license = lib.licenses.free;
};
}) {};
python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "python"; pname = "python";
@ -3058,10 +3073,10 @@
elpaBuild { elpaBuild {
pname = "rt-liberation"; pname = "rt-liberation";
ename = "rt-liberation"; ename = "rt-liberation";
version = "2.1"; version = "2.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/rt-liberation-2.1.tar"; url = "https://elpa.gnu.org/packages/rt-liberation-2.2.tar";
sha256 = "1ahl1ys72rvqs2bf9zv9648h65fx0283ibqlk1b8ayahc04w6qbl"; sha256 = "01nkkrgygq5p5s0pfxpcn794jr6ln65ad809v9mvzz7972xw625s";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -3563,10 +3578,10 @@
elpaBuild { elpaBuild {
pname = "tramp"; pname = "tramp";
ename = "tramp"; ename = "tramp";
version = "2.5.0.1"; version = "2.5.0.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.5.0.1.tar"; url = "https://elpa.gnu.org/packages/tramp-2.5.0.2.tar";
sha256 = "0kqlc03bbsdywp0m3mf0m62hqyam8vg81phh7nqmpdjzskrdc1yy"; sha256 = "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3604,6 +3619,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
transient = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "transient";
ename = "transient";
version = "0.3.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/transient-0.3.0.tar";
sha256 = "1a457apfl762nn5xf1h3hbvrgs9hybkxh0jwb2y713zkhhck66cp";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/transient.html";
license = lib.licenses.free;
};
}) {};
trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }: trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
elpaBuild { elpaBuild {
pname = "trie"; pname = "trie";
@ -4062,10 +4092,10 @@
elpaBuild { elpaBuild {
pname = "xr"; pname = "xr";
ename = "xr"; ename = "xr";
version = "1.20"; version = "1.21";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/xr-1.20.tar"; url = "https://elpa.gnu.org/packages/xr-1.21.tar";
sha256 = "0i3vfsp110z60gabn9x9rv21fvm7nnr234mvmpp7gx4l4hpadvzy"; sha256 = "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View File

@ -4,10 +4,10 @@
elpaBuild { elpaBuild {
pname = "org"; pname = "org";
ename = "org"; ename = "org";
version = "20210208"; version = "20210301";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-20210208.tar"; url = "https://orgmode.org/elpa/org-20210301.tar";
sha256 = "1awqk2dk3sgglq6fqgaz8y8rqw3p5rcnkp7i6m15n7wlq9nx7njp"; sha256 = "0930km35lvbw89ifrqmcv96fjmp4fi12yv3spn51q27sfsmzqsrj";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -19,10 +19,10 @@
elpaBuild { elpaBuild {
pname = "org-plus-contrib"; pname = "org-plus-contrib";
ename = "org-plus-contrib"; ename = "org-plus-contrib";
version = "20210208"; version = "20210301";
src = fetchurl { src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20210208.tar"; url = "https://orgmode.org/elpa/org-plus-contrib-20210301.tar";
sha256 = "13yrzx7sdndf38hamm1m82kfgnqgm8752mjxmmqw1iqr3r33ihi3"; sha256 = "11mwar5x848iwc1cdssr3vyx0amji840x6f0dmjpigngpcnj02m8";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "spicetify-cli"; pname = "spicetify-cli";
version = "1.2.0"; version = "1.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "khanhas"; owner = "khanhas";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Gkq19OlX6ci2i5mno77O/v3VfUkv6FRQFcH98qaUuXs="; sha256 = "sha256-HASFaPqm/A1QQ4nkd2hgeyqWplwE1RTrWA937rJA5Oo=";
}; };
vendorSha256 = "sha256-ARhWKYh8Wy2UEYGabn6l/kbnJ0nHYTIt4hn9wuVgBkw="; vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
# used at runtime, but not installed by default # used at runtime, but not installed by default
postInstall = '' postInstall = ''

View File

@ -91,19 +91,19 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source # Upstream source
version = "10.0.9"; version = "10.0.12";
lang = "en-US"; lang = "en-US";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
sha256 = "Dtlfm/memHSxir5XkUGkJICGEM+tPs//ET4PdVM1HPM="; sha256 = "0i5g997kgn7n6ji7pxbyvkx33nqfi2s1val680fp5hh1zz31yvfv";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
sha256 = "GZywFEX/5Br+Zu1w6pegoNOTrSIVQNE2LINsa3Vdlxs="; sha256 = "16915fvvq3d16v1bzclnb52sa6yyaalihk3gv93jcnph9vsz8ags";
}; };
}; };
in in

View File

@ -2,14 +2,14 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "1.8.5"; version = "1.8.6";
commit = "28aea3dfdede00443b52cc584814d80e8f896200"; commit = "28aea3dfdede00443b52cc584814d80e8f896200";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-JjxibnGSDTjd0E9L3X2wnl9G713IYBs+O449RdrT19w="; sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
}; };
vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA="; vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";

View File

@ -1,4 +1,5 @@
{ lib { lib
, stdenv
, rustPlatform , rustPlatform
, fetchFromGitLab , fetchFromGitLab
, meson , meson
@ -17,18 +18,22 @@
, gst_all_1 , gst_all_1
}: }:
rustPlatform.buildRustPackage rec { stdenv.mkDerivation rec {
pname = "newsflash"; pname = "newsflash";
version = "1.2.2"; version = "1.3.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "news-flash"; owner = "news-flash";
repo = "news_flash_gtk"; repo = "news_flash_gtk";
rev = version; rev = version;
hash = "sha256-TeheK14COX1NIrql74eI8Wx4jtpUP1eO5mugT5LzlPY="; hash = "sha256-Vu8PXdnayrglAFVfO+WZTzk4Qrb/3uqzQIwClnRHto8=";
}; };
cargoHash = "sha256-Fbj4sabrwpfa0QNEN4l91y/6AuPIKu7QPzYNUO6RtU0="; cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-dWumQi/Bk7w2C8zVVExxguWchZU+K2qTC02otsiK9jA=";
};
patches = [ patches = [
# Post install tries to generate an icon cache & update the # Post install tries to generate an icon cache & update the
@ -54,7 +59,11 @@ rustPlatform.buildRustPackage rec {
# Provides glib-compile-resources to compile gresources # Provides glib-compile-resources to compile gresources
glib glib
]; ] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [ buildInputs = [
gtk3 gtk3
@ -76,13 +85,6 @@ rustPlatform.buildRustPackage rec {
gst-plugins-bad gst-plugins-bad
]); ]);
# Unset default rust phases to use meson & ninja instead
configurePhase = null;
buildPhase = null;
checkPhase = null;
installPhase = null;
installCheckPhase = null;
meta = with lib; { meta = with lib; {
description = "A modern feed reader designed for the GNOME desktop"; description = "A modern feed reader designed for the GNOME desktop";
homepage = "https://gitlab.com/news-flash/news_flash_gtk"; homepage = "https://gitlab.com/news-flash/news_flash_gtk";

View File

@ -3,13 +3,12 @@
libksane libksane
}: }:
let mkDerivation rec {
minorVersion = "2.2"; pname = "skanlite";
in mkDerivation rec { version = "2.2.0";
name = "skanlite-2.2.0";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/skanlite/${minorVersion}/${name}.tar.xz"; url = "mirror://kde/stable/skanlite/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "VP7MOZdUe64XIVr3r0aKIl1IPds3vjBTZzOS3N3VhOQ="; sha256 = "VP7MOZdUe64XIVr3r0aKIl1IPds3vjBTZzOS3N3VhOQ=";
}; };
@ -23,8 +22,8 @@ in mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "KDE simple image scanning application"; description = "KDE simple image scanning application";
homepage = "http://www.kde.org/applications/graphics/skanlite/"; homepage = "https://apps.kde.org/skanlite";
license = licenses.gpl2; license = licenses.gpl2Plus;
maintainers = with maintainers; [ pshendry ]; maintainers = with maintainers; [ pshendry ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View File

@ -55,13 +55,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ]; nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
meta = { meta = with lib; {
description = "Office program originally named Kingsoft Office"; description = "Office suite, formerly Kingsoft Office";
homepage = "http://wps-community.org/"; homepage = "https://www.wps.com/";
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
hydraPlatforms = []; hydraPlatforms = [];
license = lib.licenses.unfreeRedistributable; license = licenses.unfreeRedistributable;
maintainers = with lib.maintainers; [ mlatus th0rgal ]; maintainers = with maintainers; [ mlatus th0rgal ];
}; };
buildInputs = with xorg; [ buildInputs = with xorg; [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lean"; pname = "lean";
version = "3.26.0"; version = "3.27.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "leanprover-community"; owner = "leanprover-community";
repo = "lean"; repo = "lean";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xCULu6ljfyrA/Idr/BJ+3rLVmQqJZPoo+a7s++u50zU="; sha256 = "sha256-DSIWuMlweu9dsah5EdVCNQ9ADjYoEZongfw/Yh7/N/A=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ghq"; pname = "ghq";
version = "1.1.6"; version = "1.1.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "x-motemen"; owner = "x-motemen";
repo = "ghq"; repo = "ghq";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-6oRyT/i+PndmjWBNJQzgrysE7jXiL/hAwwN++uCs6ZI="; sha256 = "sha256-kEs844gj1/PW7Kkpn1tvxfruznRIh2pjHCoSWGF1upQ=";
}; };
vendorSha256 = "sha256-5Eth9v98z1gxf1Fz5Lbn2roX7dSBmA7GRzg8uvT0hTI="; vendorSha256 = "sha256-5Eth9v98z1gxf1Fz5Lbn2roX7dSBmA7GRzg8uvT0hTI=";

View File

@ -2,12 +2,12 @@
let let
pname = "radicle-upstream"; pname = "radicle-upstream";
version = "0.1.6"; version = "0.1.11";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage"; url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
sha256 = "1s299rxala6gqj69j5q4d4n5wfdk2zsb4r9qrhml0m79b4f79yar"; sha256 = "1j0xc9ns3andycbrrzkn6ql6739b1dimzlxq17wwpmqhni9nh673";
}; };
contents = appimageTools.extractType2 { inherit name src; }; contents = appimageTools.extractType2 { inherit name src; };

View File

@ -137,6 +137,7 @@ stdenv.mkDerivation {
sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
mv config/puma.rb.example config/puma.rb
# Always require lib-files and application.rb through their store # Always require lib-files and application.rb through their store
# path, not their relative state directory path. This gets rid of # path, not their relative state directory path. This gets rid of
# warnings and means we don't have to link back to lib from the # warnings and means we don't have to link back to lib from the

View File

@ -1,8 +1,8 @@
diff --git a/config/environments/production.rb b/config/environments/production.rb diff --git a/config/environments/production.rb b/config/environments/production.rb
index c5cbfcf64c..4d01f6fab8 100644 index d9b3ee354b0..1eb0507488b 100644
--- a/config/environments/production.rb --- a/config/environments/production.rb
+++ b/config/environments/production.rb +++ b/config/environments/production.rb
@@ -70,10 +70,10 @@ Rails.application.configure do @@ -69,10 +69,10 @@
config.action_mailer.delivery_method = :sendmail config.action_mailer.delivery_method = :sendmail
# Defaults to: # Defaults to:
@ -11,17 +11,17 @@ index c5cbfcf64c..4d01f6fab8 100644
- # # arguments: '-i -t' - # # arguments: '-i -t'
- # # } - # # }
+ config.action_mailer.sendmail_settings = { + config.action_mailer.sendmail_settings = {
+ location: '/usr/sbin/sendmail', + location: '/run/wrappers/bin/sendmail',
+ arguments: '-i -t' + arguments: '-i -t'
+ } + }
config.action_mailer.perform_deliveries = true config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true config.action_mailer.raise_delivery_errors = true
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index bd696a7f2c..44e3863736 100644 index 92e7501d49d..4ee5a1127df 100644
--- a/config/gitlab.yml.example --- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example +++ b/config/gitlab.yml.example
@@ -590,7 +590,7 @@ production: &base @@ -1168,7 +1168,7 @@ production: &base
# CAUTION! # CAUTION!
# Use the default values unless you really know what you are doing # Use the default values unless you really know what you are doing
git: git:
@ -31,10 +31,10 @@ index bd696a7f2c..44e3863736 100644
## Webpack settings ## Webpack settings
# If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 0bea8a4f4b..290248547b 100644 index bbed08f5044..2906e5c44af 100644
--- a/config/initializers/1_settings.rb --- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb
@@ -177,7 +177,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab['user'] @@ -183,7 +183,7 @@
Settings.gitlab['user_home'] ||= begin Settings.gitlab['user_home'] ||= begin
Etc.getpwnam(Settings.gitlab['user']).dir Etc.getpwnam(Settings.gitlab['user']).dir
rescue ArgumentError # no user configured rescue ArgumentError # no user configured
@ -43,7 +43,7 @@ index 0bea8a4f4b..290248547b 100644
end end
Settings.gitlab['time_zone'] ||= nil Settings.gitlab['time_zone'] ||= nil
Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil @@ -751,7 +751,7 @@
# Git # Git
# #
Settings['git'] ||= Settingslogic.new({}) Settings['git'] ||= Settingslogic.new({})
@ -52,37 +52,94 @@ index 0bea8a4f4b..290248547b 100644
# Important: keep the satellites.path setting until GitLab 9.0 at # Important: keep the satellites.path setting until GitLab 9.0 at
# least. This setting is fed to 'rm -rf' in # least. This setting is fed to 'rm -rf' in
diff --git a/config/puma.rb.example b/config/puma.rb.example
index 9fc354a8fe8..2352ca9b58c 100644
--- a/config/puma.rb.example
+++ b/config/puma.rb.example
@@ -5,12 +5,8 @@
# The default is "config.ru".
#
rackup 'config.ru'
-pidfile '/home/git/gitlab/tmp/pids/puma.pid'
-state_path '/home/git/gitlab/tmp/pids/puma.state'
-
-stdout_redirect '/home/git/gitlab/log/puma.stdout.log',
- '/home/git/gitlab/log/puma.stderr.log',
- true
+pidfile ENV['PUMA_PATH'] + '/tmp/pids/puma.pid'
+state_path ENV['PUMA_PATH'] + '/tmp/pids/puma.state'
# Configure "min" to be the minimum number of threads to use to answer
# requests and "max" the maximum.
@@ -31,12 +27,12 @@ queue_requests false
# Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only
# accepted protocols.
-bind 'unix:///home/git/gitlab/tmp/sockets/gitlab.socket'
+bind "unix://#{ENV['PUMA_PATH']}/tmp/sockets/gitlab.socket"
workers 3
-require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
-require_relative "/home/git/gitlab/lib/gitlab/cluster/puma_worker_killer_initializer"
+require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/lifecycle_events"
+require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/puma_worker_killer_initializer"
on_restart do
# Signal application hooks that we're about to restart
@@ -80,7 +76,7 @@ if defined?(nakayoshi_fork)
end
# Use json formatter
-require_relative "/home/git/gitlab/lib/gitlab/puma_logging/json_formatter"
+require_relative ENV['GITLAB_PATH'] + "lib/gitlab/puma_logging/json_formatter"
json_formatter = Gitlab::PumaLogging::JSONFormatter.new
log_formatter do |str|
diff --git a/lib/api/api.rb b/lib/api/api.rb diff --git a/lib/api/api.rb b/lib/api/api.rb
index e953f3d2ec..3a8d9f076b 100644 index ada0da28749..8a3f5824008 100644
--- a/lib/api/api.rb --- a/lib/api/api.rb
+++ b/lib/api/api.rb +++ b/lib/api/api.rb
@@ -2,7 +2,7 @@ module API @@ -4,7 +4,7 @@ module API
class API < Grape::API class API < ::API::Base
include APIGuard include APIGuard
- LOG_FILENAME = Rails.root.join("log", "api_json.log") - LOG_FILENAME = Rails.root.join("log", "api_json.log")
+ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log") + LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log")
NO_SLASH_URL_PART_REGEX = %r{[^/]+} NO_SLASH_URL_PART_REGEX = %r{[^/]+}.freeze
PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze NAMESPACE_OR_PROJECT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
diff --git a/lib/gitlab/authorized_keys.rb b/lib/gitlab/authorized_keys.rb
index 50cd15b7a10..3ac89e5b8e9 100644
--- a/lib/gitlab/authorized_keys.rb
+++ b/lib/gitlab/authorized_keys.rb
@@ -157,7 +157,7 @@ def command(id)
raise KeyError, "Invalid ID: #{id.inspect}"
end
- "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
+ "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
end
def strip(key)
diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
index a42e312b5d..ccaab9229e 100644 index 89a4e36a232..ae379ffb27a 100644
--- a/lib/gitlab/logger.rb --- a/lib/gitlab/logger.rb
+++ b/lib/gitlab/logger.rb +++ b/lib/gitlab/logger.rb
@@ -26,7 +26,7 @@ module Gitlab @@ -37,7 +37,7 @@ def self.build
end end
def self.full_log_path def self.full_log_path
- Rails.root.join("log", file_name) - Rails.root.join("log", file_name)
+ File.join(ENV["GITLAB_LOG_PATH"], file_name) + File.join(ENV["GITLAB_LOG_PATH"], file_name)
end end
def self.cache_key def self.cache_key
diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
index 7d7400bdab..cb25211d44 100644 index e0e7084e27e..19fab855b90 100644
--- a/lib/gitlab/uploads_transfer.rb --- a/lib/gitlab/uploads_transfer.rb
+++ b/lib/gitlab/uploads_transfer.rb +++ b/lib/gitlab/uploads_transfer.rb
@@ -1,7 +1,7 @@ @@ -3,7 +3,7 @@
module Gitlab module Gitlab
class UploadsTransfer < ProjectTransfer class UploadsTransfer < ProjectTransfer
def root_dir def root_dir
@ -92,10 +149,10 @@ index 7d7400bdab..cb25211d44 100644
end end
end end
diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
index 3e0c436d6e..28cefc5514 100644 index 2c108f0c18d..3a16ff52d01 100644
--- a/lib/system_check/app/log_writable_check.rb --- a/lib/system_check/app/log_writable_check.rb
+++ b/lib/system_check/app/log_writable_check.rb +++ b/lib/system_check/app/log_writable_check.rb
@@ -21,7 +21,7 @@ module SystemCheck @@ -23,7 +23,7 @@ def show_error
private private
def log_path def log_path
@ -105,10 +162,10 @@ index 3e0c436d6e..28cefc5514 100644
end end
end end
diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
index 7026d0ba07..c56e1f7ed9 100644 index 54dff63ab61..882da702f29 100644
--- a/lib/system_check/app/uploads_directory_exists_check.rb --- a/lib/system_check/app/uploads_directory_exists_check.rb
+++ b/lib/system_check/app/uploads_directory_exists_check.rb +++ b/lib/system_check/app/uploads_directory_exists_check.rb
@@ -4,12 +4,13 @@ module SystemCheck @@ -6,12 +6,13 @@ class UploadsDirectoryExistsCheck < SystemCheck::BaseCheck
set_name 'Uploads directory exists?' set_name 'Uploads directory exists?'
def check? def check?
@ -120,15 +177,15 @@ index 7026d0ba07..c56e1f7ed9 100644
+ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') + uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
try_fixing_it( try_fixing_it(
- "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads" - "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
+ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" + "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
) )
for_more_information( for_more_information(
see_installation_guide_section 'GitLab' see_installation_guide_section('GitLab')
diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
index 7df6c06025..bb447c16b2 100644 index 2e1cc687c43..ca69d63bcf6 100644
--- a/lib/system_check/app/uploads_path_permission_check.rb --- a/lib/system_check/app/uploads_path_permission_check.rb
+++ b/lib/system_check/app/uploads_path_permission_check.rb +++ b/lib/system_check/app/uploads_path_permission_check.rb
@@ -25,7 +25,7 @@ module SystemCheck @@ -27,7 +27,7 @@ def show_error
private private
def rails_uploads_path def rails_uploads_path
@ -138,10 +195,10 @@ index 7df6c06025..bb447c16b2 100644
def uploads_fullpath def uploads_fullpath
diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
index b276a81eac..070e3ebd81 100644 index 567c7540777..29906b1c132 100644
--- a/lib/system_check/app/uploads_path_tmp_permission_check.rb --- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
+++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb +++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
@@ -33,7 +33,7 @@ module SystemCheck @@ -35,7 +35,7 @@ def upload_path_tmp
end end
def uploads_fullpath def uploads_fullpath
@ -150,14 +207,3 @@ index b276a81eac..070e3ebd81 100644
end end
end end
end end
--- a/lib/gitlab/authorized_keys.rb
+++ b/lib/gitlab/authorized_keys.rb
@@ -157,7 +157,7 @@
raise KeyError, "Invalid ID: #{id.inspect}"
end
- "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
+ "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
end
def strip(key)

View File

@ -15,13 +15,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "tartube"; pname = "tartube";
version = "2.3.085"; version = "2.3.110";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "axcore"; owner = "axcore";
repo = "tartube"; repo = "tartube";
rev = "v${version}"; rev = "v${version}";
sha256 = "bkz64nj6748552ZMRcL/I1lUXGpZjaATUEqv3Kkphck="; sha256 = "0sdbd2lsc4bvgkwi55arjwbzwmq05abfmv6vsrvz4gsdv8s8wha5";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -6,25 +6,26 @@
, dbus , dbus
, libpulseaudio , libpulseaudio
, notmuch , notmuch
, openssl
, ethtool , ethtool
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "i3status-rust"; pname = "i3status-rust";
version = "0.14.3"; version = "0.14.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "greshake"; owner = "greshake";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1k9dgmd4wz9950kr35da31rhph43gmvg8dif7hg1xw41xch6bi60"; sha256 = "1ndqh4bzwim32n8psgsgdd47xmlb45rhvcwla1wm506byb21nk4c";
}; };
cargoSha256 = "0qqkcgl9iz4kxl1a2vv2p7vy7wxn970y28jynf3n7hfp16i3liy2"; cargoSha256 = "098dzwqwbhcyswm73m880z0w03i7xrq56x79vfyvacw4k27q2zm9";
nativeBuildInputs = [ pkg-config makeWrapper ]; nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ dbus libpulseaudio notmuch ]; buildInputs = [ dbus libpulseaudio notmuch openssl ];
cargoBuildFlags = [ cargoBuildFlags = [
"--features=notmuch" "--features=notmuch"

View File

@ -10,7 +10,7 @@ let
(builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ])); (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "${name}-bin"; pname = "${name}-bin";
version = "5.0.3"; version = "5.0.4";
src = fetchurl { src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip"; url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";

View File

@ -1,26 +1,26 @@
# This file was autogenerated. DO NOT EDIT! # This file was autogenerated. DO NOT EDIT!
{ {
iosevka = "1w1y543iypvhwx27qswkvhhiwzd3ik2jklapz2g497f3ppj834g4"; iosevka = "0g32pzxij72fjy0ycwzy23dg06ypmxcg24dk4scvhjp9b5ajx79k";
iosevka-aile = "12dybqmcpq83xiw4k9m9fmkhj204sxb9hnqndb212vvgj3vbl0fm"; iosevka-aile = "0yynkwhanza4y593ajn8hkshk46dl9g84qf1shmy21wd3lqr7psx";
iosevka-curly = "09rl8l9jkqhq811h35x15s4gssig0xrzvas154gg5igrdqha5kk8"; iosevka-curly = "0zd5hh0hr6prn32yd7fibl2wighv9f6p7jwgfrwcizljai44adnx";
iosevka-curly-slab = "19l13inmnaysz2mp7x4rh4zffa5n8qd3n727j54dd2581g9f0n9c"; iosevka-curly-slab = "147bzw9lr8f54yh0hv8887sxy4571563mxjcag0dfw8z3rfffw8c";
iosevka-etoile = "0flsdjdq0jsfblnazdw82kflzwvjvqaxzsyifgbn4flgjwy46mhm"; iosevka-etoile = "04jjg4vp0fag7xgiqxnql60gyvlpjmgqqj5q4j3rys9nyw3pl0gi";
iosevka-slab = "04wg7aklybwrbali53c22fs5xfgacyfkxw20bhnxqbfcsykriz11"; iosevka-slab = "10qwardvknnw6l3yiyji9v02450vfj76lvnlszijv78lfm1xp1qk";
iosevka-ss01 = "07a6ghjzk8kf266bgqv8khx54cxl2hfkqnjq6n5s3bbahbs3fh4x"; iosevka-ss01 = "12z1yjspzcbzgs224n1dxis4ghybfkzpw4dwr1wzza553kplwz6w";
iosevka-ss02 = "06prf0jigh1xi00lg46qw4kp416psv1xkijdpbvjkmxgmcbnqx2s"; iosevka-ss02 = "08vrlzcyqa83mn2155p4h6hsk20jx3sv0yqimxfsyrwcalc63dcq";
iosevka-ss03 = "03ga07y7nmcky3dschlk4cjg3lcxjqra6wvsb8q9vc39qz01cnxr"; iosevka-ss03 = "0rhp4rdza36hazs20h4bk524xsgx54pxbw69k235km71m9x6ba59";
iosevka-ss04 = "0d17p18kbh78f4w0pvslh3r0a52d207dyp4njrqxnpzjn2w8w1kg"; iosevka-ss04 = "1ijjcy8z0fbfrw2fjqnmxbi9l6r41sixk72h3vp75gzrkq7dbh86";
iosevka-ss05 = "1qh1z1kffid718h2mc0f6wygkwkpc1rlj29h2ljigv8kdp4kcik6"; iosevka-ss05 = "06q9wxkyp7iv9pz3xj6d3v8ay82425wcgl9dybr3dfp4mcsdn7zz";
iosevka-ss06 = "0b6gn7j5qa23qpay08ri6z9jrqkcsb8m67d84bqs419rw0wdhmfr"; iosevka-ss06 = "10pdw28dgdk5343rzbbj5mgmagv4ndl2gg4f02kzq0vlv5xh8vj6";
iosevka-ss07 = "0f5bj8vn9frmmhg5b971gav7379xwlg439sm2vi79vjqlp5ls5gy"; iosevka-ss07 = "16xym710sq398zi223cjzxpcblc851ypl7v2dzhvskgsasvj4ypr";
iosevka-ss08 = "0vqhywgly5w2j0nwmspa2ba7rk1n4jsb3lidngnpkpvpkr2w1n7z"; iosevka-ss08 = "14mqs6gi71p544asr1sz48g6q9zl6zj6sadhhcf8gdsnwa475ds2";
iosevka-ss09 = "1ysb28qwqjkxissqsiz67l3fj5kflf94baxwjjvqqi67f72kq8m4"; iosevka-ss09 = "049va8vpzjczslirsxklwcpcsiaqrpc2zm9rmnf5qfyf7f1rn4yd";
iosevka-ss10 = "11sdzyplb1bf8blzmj40brdnvy6z6yghvh91k27bf73rgdby7svk"; iosevka-ss10 = "1g8s9d7vlb2yx5d8cgsxcl5hb38g1f80d3l04lj2gr22lzk0y271";
iosevka-ss11 = "0jrn998c8jrkjw7sa429kkgpfp897gdbikr0j9sc5b0fyjci0qdx"; iosevka-ss11 = "15j3wfz8ybszp702c8ycv8kwnbdpa07w8kw9njhsfzvb5iw1xx0i";
iosevka-ss12 = "1qrnp3s3abxryi2nf8x4m5l7z83iklksr8mgwcxi07cfi8ix87jr"; iosevka-ss12 = "1k5250sik2yfa5s5dxaqp0s45wfbxh1s1xn06qjj81ywmw9hy6yg";
iosevka-ss13 = "0hs3m1vc3l54xj4flgyr8m4mklgqlzf3ffcvwlp8i4a5b9cdxczh"; iosevka-ss13 = "1ym8mn2qqwys01wrkplx11kajkfi0x5vzn8m234cbzn8drlgh0l5";
iosevka-ss14 = "112l7skaplmrn16h8lw5288ivcw1wm7mvilqrmdgswmvyxkpqdzg"; iosevka-ss14 = "0wkc7kwz6bzxxijycm4d4samy83zsghd8lyq0yn6g48rb6kj9fgw";
iosevka-ss15 = "13bbgjmw20d1dr6h8ckc2zaq0bilx494g5p94a2ighdm5d4sbk4y"; iosevka-ss15 = "0j46sr85vcq25n8ia7nk8rgr3rmgr69wwf7pgllllscablacw73k";
iosevka-ss16 = "180qfpp9ixjznk7srijbj1l2dzshb9wayqgvfmgqhl94fif23bja"; iosevka-ss16 = "017vipi1cmcjglx0x6da6ans1bsr3xlr43n4mv5qj7h50j1dv3l6";
iosevka-ss17 = "0f1r0zad32mdqgd0ik08q07ni46w6dm93npz633azn3l9ch6hd41"; iosevka-ss17 = "0kbvy54v543znrzb9584mv6h96hfp9fndxb6wg32clqhzm2yh7fw";
} }

View File

@ -1,4 +1,5 @@
{ lib { lib
, stdenv
, rustPlatform , rustPlatform
, gettext , gettext
, meson , meson
@ -15,9 +16,11 @@
, gnome3 , gnome3
, libhandy , libhandy
, librsvg , librsvg
, rustc
, cargo
}: }:
rustPlatform.buildRustPackage rec { stdenv.mkDerivation rec {
pname = "gnome-tour"; pname = "gnome-tour";
version = "3.38.0"; version = "3.38.0";
@ -30,6 +33,7 @@ rustPlatform.buildRustPackage rec {
nativeBuildInputs = [ nativeBuildInputs = [
appstream-glib appstream-glib
cargo
desktop-file-utils desktop-file-utils
gettext gettext
glib # glib-compile-resources glib # glib-compile-resources
@ -37,6 +41,8 @@ rustPlatform.buildRustPackage rec {
ninja ninja
pkg-config pkg-config
python3 python3
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook wrapGAppsHook
]; ];
@ -48,12 +54,6 @@ rustPlatform.buildRustPackage rec {
librsvg librsvg
]; ];
# Don't use buildRustPackage phases, only use it for rust deps setup
configurePhase = null;
buildPhase = null;
checkPhase = null;
installPhase = null;
postPatch = '' postPatch = ''
chmod +x build-aux/meson_post_install.py chmod +x build-aux/meson_post_install.py
patchShebangs build-aux/meson_post_install.py patchShebangs build-aux/meson_post_install.py

View File

@ -2,13 +2,13 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "gleam"; pname = "gleam";
version = "0.14.0"; version = "0.14.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gleam-lang"; owner = "gleam-lang";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ujQ7emfGhzpRGeZ6RGZ57hFX4aIflTcwE9IEUMYb/ZI="; sha256 = "sha256-KAcb+YNfdNc5LJIApuzjXKnPTFOK0C5Jui32nij4O4U=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ] ++ buildInputs = [ openssl ] ++
lib.optionals stdenv.isDarwin [ Security ]; lib.optionals stdenv.isDarwin [ Security ];
cargoSha256 = "sha256-/SudEQynLkLl7Y731Uqm9AkEugTCnq4PFFRQcwz+qL8="; cargoSha256 = "sha256-Hxat6UZziIxHGLPydnnmgzdwtvjaeeqOgD+ZC823uJU=";
meta = with lib; { meta = with lib; {
description = "A statically typed language for the Erlang VM"; description = "A statically typed language for the Erlang VM";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "armadillo"; pname = "armadillo";
version = "10.2.1"; version = "10.2.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz"; url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
sha256 = "sha256-fY500kh2mvI/yJTYu4jwXjIxeTPL5NqPPFa+j4mp/MQ="; sha256 = "sha256-lClfxi7MQ3PlqWx7Yrkj/XGoHzFaqVl7KCqv2FWelDU=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -1,8 +1,6 @@
{ {
# general # general
lib lib
, callPackage
, runCommand
, resholvePackage , resholvePackage
, bash , bash
, shellcheck , shellcheck
@ -46,7 +44,9 @@ resholvePackage rec {
inherit src; inherit src;
installPhase = '' installPhase = ''
runHook preInstall
install -Dt $out/bin bashup.events install -Dt $out/bin bashup.events
runHook postInstall
''; '';
inherit doCheck; inherit doCheck;
@ -54,9 +54,11 @@ resholvePackage rec {
# check based on https://github.com/bashup/events/blob/master/.dkrc # check based on https://github.com/bashup/events/blob/master/.dkrc
checkPhase = '' checkPhase = ''
runHook preCheck
SHELLCHECK_OPTS='-e SC2016,SC2145' ${shellcheck}/bin/shellcheck ./bashup.events SHELLCHECK_OPTS='-e SC2016,SC2145' ${shellcheck}/bin/shellcheck ./bashup.events
${bash}/bin/bash -n ./bashup.events ${bash}/bin/bash -n ./bashup.events
${bash}/bin/bash ./bashup.events ${bash}/bin/bash ./bashup.events
runHook postCheck
''; '';
solutions = { solutions = {
@ -70,7 +72,11 @@ resholvePackage rec {
inherit doInstallCheck; inherit doInstallCheck;
installCheckInputs = [ bash ]; installCheckInputs = [ bash ];
installCheckPhase = installCheck "${bash}/bin/bash"; installCheckPhase = ''
runHook preInstallCheck
${installCheck "${bash}/bin/bash"}
runHook postInstallCheck
'';
meta = with lib; { meta = with lib; {
inherit branch; inherit branch;

View File

@ -21,6 +21,14 @@ stdenv.mkDerivation rec {
substituteInPlace GNUmakefile \ substituteInPlace GNUmakefile \
--replace "AR = libtool" "AR = ar" \ --replace "AR = libtool" "AR = ar" \
--replace "ARFLAGS = -static -o" "ARFLAGS = -cru" --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
# See https://github.com/weidai11/cryptopp/issues/1011
substituteInPlace GNUmakefile \
--replace "ZOPT = -O0" "ZOPT ="
'';
preConfigure = ''
sh TestScripts/configure.sh
''; '';
makeFlags = [ "PREFIX=${placeholder "out"}" ]; makeFlags = [ "PREFIX=${placeholder "out"}" ];

View File

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, python }: { lib, stdenv, fetchurl, python }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "geos-3.9.1"; pname = "geos";
version = "3.9.1";
src = fetchurl { src = fetchurl {
url = "https://download.osgeo.org/geos/${name}.tar.bz2"; url = "https://download.osgeo.org/geos/${pname}-${version}.tar.bz2";
sha256 = "sha256-fmMFB9ysncB1ZdJJom8GoVyfWwxS3SkSmg49OB1+OCo="; sha256 = "sha256-fmMFB9ysncB1ZdJJom8GoVyfWwxS3SkSmg49OB1+OCo=";
}; };
@ -18,6 +19,6 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "C++ port of the Java Topology Suite (JTS)"; description = "C++ port of the Java Topology Suite (JTS)";
homepage = "https://trac.osgeo.org/geos"; homepage = "https://trac.osgeo.org/geos";
license = licenses.lgpl21; license = licenses.lgpl21Only;
}; };
} }

View File

@ -0,0 +1,61 @@
{ lib
, stdenv
, fetchurl
, bash-completion
, pkg-config
, perl
, libxml2
, fuse
, gnutls
}:
stdenv.mkDerivation rec {
pname = "libnbd";
version = "1.7.2";
src = fetchurl {
url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-development/${pname}-${version}.tar.gz";
hash = "sha256-+xC4wDEeWi3RteF04C/qjMmjM+lmhtrtXZZyM1UUli4=";
};
nativeBuildInputs = [
bash-completion
pkg-config
perl
];
buildInputs = [
fuse
gnutls
libxml2
];
installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
meta = with lib; {
homepage = "https://gitlab.com/nbdkit/libnbd";
description = "Network Block Device client library in userspace";
longDescription = ''
NBD Network Block Device is a protocol for accessing Block Devices
(hard disks and disk-like things) over a Network. This is the NBD client
library in userspace, a simple library for writing NBD clients.
The key features are:
- Synchronous API for ease of use.
- Asynchronous API for writing non-blocking, multithreaded clients. You
can mix both APIs freely.
- High performance.
- Minimal dependencies for the basic library.
- Well-documented, stable API.
- Bindings in several programming languages.
- Shell (nbdsh) for command line and scripting.
'';
license = with licenses; lgpl21Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; linux;
};
}
# TODO: NBD URI support apparently is not enabled
# TODO: package the 1.6-stable version too
# TODO: git version needs ocaml
# TODO: bindings for go, ocaml and python

View File

@ -0,0 +1,30 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, perl }:
stdenv.mkDerivation rec {
pname = "libxcrypt";
version = "4.4.18";
src = fetchFromGitHub {
owner = "besser82";
repo = "libxcrypt";
rev = "v${version}";
sha256 = "4015bf1b3a2aab31da5a544424be36c1a0f0ffc1eaa219c0e7b048e4cdcbbfe1";
};
preConfigure = ''
patchShebangs autogen.sh
./autogen.sh
'';
nativeBuildInputs = [ autoconf automake libtool pkg-config perl ];
doCheck = true;
meta = with lib; {
description = "Extended crypt library for descrypt, md5crypt, bcrypt, and others";
homepage = "https://github.com/besser82/libxcrypt/";
platforms = platforms.all;
maintainers = with maintainers; [ dottedmag ];
license = licenses.lgpl21Plus;
};
}

View File

@ -99,6 +99,7 @@ let
sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n"; sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
}) })
./qtwebkit.patch ./qtwebkit.patch
./qtwebkit-icu68.patch
./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-readline.patch
./qtwebkit-darwin-no-qos-classes.patch ./qtwebkit-darwin-no-qos-classes.patch

View File

@ -0,0 +1,170 @@
Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
ucnv_setFallback(m_converterICU, TRUE);
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
--- a/Source/WebCore/platform/text/icu/UTextProvider.h
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h
@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
text->chunkOffset = text->chunkLength;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
} else {
@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex <= 0 && !text->chunkNativeStart) {
text->chunkOffset = 0;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
}
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (index >= length && uText->chunkNativeLimit == length) {
// Off the end of the buffer, but we can't get it.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return FALSE;
+ return false;
}
} else {
if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (!index && !uText->chunkNativeStart) {
// Already at the beginning; can't go any farther.
uText->chunkOffset = 0;
- return FALSE;
+ return false;
}
}
@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
uText->nativeIndexingLimit = uText->chunkLength;
- return TRUE;
+ return true;
}
static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
ASSERT(newContext == UTextProviderContext::PriorContext);
textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
ASSERT(newContext == UTextProviderContext::PriorContext);
textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)

View File

@ -112,6 +112,7 @@ let
sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n"; sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
}) })
./qtwebkit.patch ./qtwebkit.patch
./qtwebkit-icu68.patch
] ++ optionals stdenv.isDarwin [ ] ++ optionals stdenv.isDarwin [
./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-readline.patch
./qtwebkit-darwin-no-qos-classes.patch ./qtwebkit-darwin-no-qos-classes.patch

View File

@ -0,0 +1,170 @@
Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
ucnv_setFallback(m_converterICU, TRUE);
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
--- a/Source/WebCore/platform/text/icu/UTextProvider.h
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h
@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
text->chunkOffset = text->chunkLength;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
} else {
@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex <= 0 && !text->chunkNativeStart) {
text->chunkOffset = 0;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
}
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (index >= length && uText->chunkNativeLimit == length) {
// Off the end of the buffer, but we can't get it.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return FALSE;
+ return false;
}
} else {
if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (!index && !uText->chunkNativeStart) {
// Already at the beginning; can't go any farther.
uText->chunkOffset = 0;
- return FALSE;
+ return false;
}
}
@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
uText->nativeIndexingLimit = uText->chunkLength;
- return TRUE;
+ return true;
}
static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
ASSERT(newContext == UTextProviderContext::PriorContext);
textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
ASSERT(newContext == UTextProviderContext::PriorContext);
textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)

View File

@ -95,6 +95,7 @@ let
sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n"; sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
}) })
./qtwebkit.patch ./qtwebkit.patch
./qtwebkit-icu68.patch
] ++ optionals stdenv.isDarwin [ ] ++ optionals stdenv.isDarwin [
./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-readline.patch
./qtwebkit-darwin-no-qos-classes.patch ./qtwebkit-darwin-no-qos-classes.patch

View File

@ -0,0 +1,170 @@
Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:31:
Source/WebCore/platform/text/TextCodecICU.cpp:311:42: error: use of undeclared identifier 'TRUE'
ucnv_setFallback(m_converterICU, TRUE);
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:40:
In file included from Source/WebCore/platform/text/icu/UTextProvider.cpp:27:
Source/WebCore/platform/text/icu/UTextProvider.h:83:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:88:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:97:28: error: use of undeclared identifier 'TRUE'
isAccessible = TRUE;
^
Source/WebCore/platform/text/icu/UTextProvider.h:102:28: error: use of undeclared identifier 'FALSE'
isAccessible = FALSE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:41:
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:103:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:114:20: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:119:20: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:147:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:339:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:359:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
In file included from Source/WebCore/platform/text/TextAllInOne.cpp:42:
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:128:16: error: use of undeclared identifier 'FALSE'
return FALSE;
^
Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp:148:12: error: use of undeclared identifier 'TRUE'
return TRUE;
^
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
--- a/Source/WebCore/platform/text/icu/UTextProvider.h
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h
@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
text->chunkOffset = text->chunkLength;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
} else {
@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex <= 0 && !text->chunkNativeStart) {
text->chunkOffset = 0;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
}
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (index >= length && uText->chunkNativeLimit == length) {
// Off the end of the buffer, but we can't get it.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return FALSE;
+ return false;
}
} else {
if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (!index && !uText->chunkNativeStart) {
// Already at the beginning; can't go any farther.
uText->chunkOffset = 0;
- return FALSE;
+ return false;
}
}
@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
uText->nativeIndexingLimit = uText->chunkLength;
- return TRUE;
+ return true;
}
static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
ASSERT(newContext == UTextProviderContext::PriorContext);
textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
ASSERT(newContext == UTextProviderContext::PriorContext);
textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)

View File

@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "06pfq5wa8d25i9bdjkp4xhms5101dsrbg82riz7rz1a0a32pqxgj"; sha256 = "06pfq5wa8d25i9bdjkp4xhms5101dsrbg82riz7rz1a0a32pqxgj";
}; };
postPatch = ''
substituteInPlace install-sh \
--replace "stripprog=" "stripprog=\$STRIP # "
'';
meta = { meta = {
homepage = "https://www.astro.caltech.edu/~mcs/tecla/"; homepage = "https://www.astro.caltech.edu/~mcs/tecla/";
description = "Command-line editing library"; description = "Command-line editing library";

View File

@ -60,13 +60,13 @@ rec {
# resholve's primary dependency is this developer build of the oil shell. # resholve's primary dependency is this developer build of the oil shell.
oildev = python27Packages.buildPythonPackage rec { oildev = python27Packages.buildPythonPackage rec {
pname = "oildev-unstable"; pname = "oildev-unstable";
version = "2020-03-31"; version = "2021-02-26";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "oilshell"; owner = "oilshell";
repo = "oil"; repo = "oil";
rev = "ea80cdad7ae1152a25bd2a30b87fe3c2ad32394a"; rev = "11c6bd3ca0e126862c7a1f938c8510779837affa";
sha256 = "0pxn0f8qbdman4gppx93zwml7s5byqfw560n079v68qjgzh2brq2"; hash = "sha256-UTQywtx+Dn1/qx5uocqgGn7oFYW4R5DbuiRNF8t/BzY=";
/* /*
It's not critical to drop most of these; the primary target is It's not critical to drop most of these; the primary target is

View File

@ -11,12 +11,12 @@
, doCheck ? true , doCheck ? true
}: }:
let let
version = "0.4.2"; version = "0.5.0";
rSrc = fetchFromGitHub { rSrc = fetchFromGitHub {
owner = "abathur"; owner = "abathur";
repo = "resholve"; repo = "resholve";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-ArUQjqh4LRvFLzHiTIcae0q/VFxFF/X9eOFeRnYmTO0="; hash = "sha256-dscmT0ss1buP56QzQtfs2HANr9oWWMxCS+fwBIKBxv4=";
}; };
deps = callPackage ./deps.nix { deps = callPackage ./deps.nix {
/* /*
@ -29,6 +29,9 @@ let
"${rSrc}/0002-add_MANIFEST_in.patch" "${rSrc}/0002-add_MANIFEST_in.patch"
"${rSrc}/0003-fix_codegen_shebang.patch" "${rSrc}/0003-fix_codegen_shebang.patch"
"${rSrc}/0004-disable-internal-py-yajl-for-nix-built.patch" "${rSrc}/0004-disable-internal-py-yajl-for-nix-built.patch"
"${rSrc}/0005_revert_libc_locale.patch"
"${rSrc}/0006_disable_failing_libc_tests.patch"
"${rSrc}/0007_restore_root_init_py.patch"
]; ];
}; };
in in

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,11 @@
{ lib, fetchFromGitHub, buildDunePackage }: { lib, fetchFromGitHub, buildDunePackage, ocaml }:
buildDunePackage rec { buildDunePackage rec {
pname = "ppx_derivers"; pname = "ppx_derivers";
version = "1.2.1"; version = "1.2.1";
useDune2 = lib.versionAtLeast ocaml.version "4.08";
minimumOCamlVersion = "4.02"; minimumOCamlVersion = "4.02";
src = fetchFromGitHub { src = fetchFromGitHub {

View File

@ -3,8 +3,8 @@
buildPecl { buildPecl {
pname = "xdebug"; pname = "xdebug";
version = "3.0.2"; version = "3.0.3";
sha256 = "05sfgkw55ym7mg0b54l9x3i9598kf2bkp4z3sdl1hd31q3g4cv89"; sha256 = "sha256-5yZagVGOOX+XLcki50bRpIRTcXf/SJVDUWfRCeKTJDI=";
doCheck = true; doCheck = true;
checkTarget = "test"; checkTarget = "test";

View File

@ -1,14 +1,16 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, pythonOlder
, mpmath , mpmath
, numpy , numpy
, pipdate
, pybind11 , pybind11
, pyfma , pyfma
, eigen , eigen
, importlib-metadata
, pytestCheckHook , pytestCheckHook
, matplotlib , matplotlib
, dufte
, isPy27 , isPy27
}: }:
@ -22,20 +24,24 @@ buildPythonPackage rec {
sha256 = "36506aca53154528997ac22aee6292c83da0f4850bb375c149512b5284bd4948"; sha256 = "36506aca53154528997ac22aee6292c83da0f4850bb375c149512b5284bd4948";
}; };
nativeBuildInputs = [
pybind11
];
buildInputs = [ buildInputs = [
pybind11 eigen eigen
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
mpmath mpmath
numpy numpy
pipdate
pyfma pyfma
]; ] ++ lib.optional (pythonOlder "3.8") importlib-metadata;
checkInputs = [ checkInputs = [
pytestCheckHook pytestCheckHook
matplotlib matplotlib
dufte
]; ];
postConfigure = '' postConfigure = ''

View File

@ -17,14 +17,19 @@ buildPythonPackage rec {
sha256 = "1qg7dgl81yq0sp50pkhgvmf8az1svx20zmpkfa68ka9d0ssh1wjw"; sha256 = "1qg7dgl81yq0sp50pkhgvmf8az1svx20zmpkfa68ka9d0ssh1wjw";
}; };
# Skip date-dependent test. See
# https://github.com/adobe-type-tools/afdko/pull/1232
# https://github.com/NixOS/nixpkgs/pull/98158#issuecomment-704321117
patches = [ patches = [
# Skip date-dependent test. See
# https://github.com/adobe-type-tools/afdko/pull/1232
# https://github.com/NixOS/nixpkgs/pull/98158#issuecomment-704321117
(fetchpatch { (fetchpatch {
url = "https://github.com/adobe-type-tools/afdko/commit/2c36ad10f9d964759f643e8ed7b0972a27aa26bd.patch"; url = "https://github.com/adobe-type-tools/afdko/commit/2c36ad10f9d964759f643e8ed7b0972a27aa26bd.patch";
sha256 = "0p6a485mmzrbfldfbhgfghsypfiad3cabcw7qlw2rh993ivpnibf"; sha256 = "0p6a485mmzrbfldfbhgfghsypfiad3cabcw7qlw2rh993ivpnibf";
}) })
# fix tests for fonttools 4.21.1
(fetchpatch {
url = "https://github.com/adobe-type-tools/afdko/commit/0919e7454a0a05a1b141c23bf8134c67e6b688fc.patch";
sha256 = "0glly85swyl1kcc0mi8i0w4bm148bb001jz1winz5drfrw3a63jp";
})
]; ];
nativeBuildInputs = [ setuptools_scm ]; nativeBuildInputs = [ setuptools_scm ];

View File

@ -7,14 +7,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ailment"; pname = "ailment";
version = "9.0.5739"; version = "9.0.5903";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "angr"; owner = "angr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1fjwksia6h7w7m5zhys65yr4zxvyfgp9hr1k5dn802p9kvz34bpc"; sha256 = "sha256-75Ul9JfMFYv3AfBlgmer6IDyfgOAS4AdXexznoxi35Y=";
}; };
propagatedBuildInputs = [ pyvex ]; propagatedBuildInputs = [ pyvex ];

View File

@ -0,0 +1,38 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, numpy
, pythonOlder
, sqlitedict
, websockets
}:
buildPythonPackage rec {
pname = "aiopylgtv";
version = "0.4.0";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "bendavid";
repo = pname;
rev = version;
sha256 = "0x0xcnlz42arsp53zlq5wyv9pwif1in8j2pv48gh0pkdnz9s86b6";
};
propagatedBuildInputs = [
numpy
sqlitedict
websockets
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "aiopylgtv" ];
meta = with lib; {
description = "Python library to control webOS based LG TV units";
homepage = "https://github.com/bendavid/aiopylgtv";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -7,13 +7,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "archinfo"; pname = "archinfo";
version = "9.0.5739"; version = "9.0.5903";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "angr"; owner = "angr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-6qjX0r2vLYgJdrKBVKedplfa1yhWv9tBvTu5BsViXBc="; sha256 = "sha256-4e+ZGIt/ouZj5rsmaVxUrz8gAq4Yq2+Qx4jdOojB4Sw=";
}; };
checkInputs = [ checkInputs = [

View File

@ -7,14 +7,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "asteval"; pname = "asteval";
version = "0.9.22"; version = "0.9.23";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "newville"; owner = "newville";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-93IBv6beYE/VTKJCWUbA1QTRdmQdn2kg35KBw6kmDis="; sha256 = "sha256-9Zxb2EzB6nxDQHdlryFiwyNW+76VvysLUB78bXKzfv0=";
}; };
checkInputs = [ pytestCheckHook ]; checkInputs = [ pytestCheckHook ];

View File

@ -5,11 +5,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "asysocks"; pname = "asysocks";
version = "0.1.0"; version = "0.1.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-NH53FaOJx79q5IIYeiz976H9Q8Vnw13qFw4zgRc2TTw="; sha256 = "sha256-7EzSALAJcx8BNHX44FeeiSPRcTe9UFHXQ4IoSKxMU8w=";
}; };
# Upstream hasn't release the tests yet # Upstream hasn't release the tests yet

View File

@ -13,11 +13,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "boto3"; pname = "boto3";
version = "1.17.12"; # N.B: if you change this, change botocore too version = "1.17.17"; # N.B: if you change this, change botocore and awscli to a matching version
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-YvBs0eenjYqqTlJ8MnZT6abBr0FbWYNgSKkMKKJ+Xwk="; sha256 = "sha256-RSPqs3/wBdUXQIO1k4LP1ia3iQwI1WzhYqS9kq99RN8=";
}; };
propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ]; propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];

View File

@ -12,11 +12,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "botocore"; pname = "botocore";
version = "1.20.12"; # N.B: if you change this, change boto3 and awscli to a matching version version = "1.20.17"; # N.B: if you change this, change boto3 and awscli to a matching version
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-OakjFaF6b4vBkU27Ag9S6SnxjluZpPocXYeF+RNCftg="; sha256 = "sha256-F4zjFdGf4O8z6M5nVKSC0Ano0TLFrcxFf1zx2ZqYdTs=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -0,0 +1,32 @@
{ lib
, buildPythonPackage
, fetchPypi
, google-api-core
, grpcio
}:
buildPythonPackage rec {
pname = "chirpstack-api";
version = "3.9.4";
src = fetchPypi {
inherit pname version;
sha256 = "08djidy3fyhghyzvndcjas3hb1s9d7719gvmgbl8bzxjm4h2c433";
};
propagatedBuildInputs = [
google-api-core
grpcio
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "chirpstack_api" ];
meta = with lib; {
description = "ChirpStack gRPC API message and service wrappers for Python";
homepage = "https://github.com/brocaar/chirpstack-api";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "claripy"; pname = "claripy";
version = "9.0.5739"; version = "9.0.5903";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "angr"; owner = "angr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1aym01f99zwb9w8qwy8gz631ka7g6akzdld0m4ykc5ip0rq70mki"; sha256 = "sha256-NIKWUx1VT5TjnuqppuT6VzwNRwcBLc0xI5k3F2Nmj8A=";
}; };
# Use upstream z3 implementation # Use upstream z3 implementation

View File

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "databricks-connect"; pname = "databricks-connect";
version = "7.3.8"; version = "7.3.9";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0c0f036cf30e00fdc47c983875c72d16a3073ae9be9bcf39371514280f00a82d"; sha256 = "f789515f3be1bd1f88043110d62859b01a9661e384a81f1768fca4e4bb49a358";
}; };
sourceRoot = "."; sourceRoot = ".";

View File

@ -0,0 +1,36 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, cython
}:
buildPythonPackage rec {
pname = "editdistance";
version = "0.5.3";
src = fetchFromGitHub {
owner = "roy-ht";
repo = pname;
rev = "v${version}";
sha256 = "0vk8vz41p2cs7s7zbaw3cnw2jnvy5rhy525xral68dh14digpgsd";
};
nativeBuildInputs = [ cython ];
preBuild = ''
cythonize --inplace editdistance/bycython.pyx
'';
checkInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "editdistance" ];
meta = with lib; {
description = "Python implementation of the edit distance (Levenshtein distance)";
homepage = "https://github.com/roy-ht/editdistance";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -0,0 +1,40 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, httpx
, poetry-core
, pythonOlder
, yarl
}:
buildPythonPackage rec {
pname = "elmax";
version = "0.1.1";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "home-assistant-ecosystem";
repo = "python-elmax";
rev = version;
sha256 = "sha256-vDISJ/CVOjpM+GPF2TCm3/AMFTWTM0b/+ZPCpAEvNvY=";
};
nativeBuildInputs = [ poetry-core ];
propagatedBuildInputs = [
httpx
yarl
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "elmax" ];
meta = with lib; {
description = "Python API client for the Elmax Cloud services";
homepage = "https://github.com/home-assistant-ecosystem/python-elmax";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -1,4 +1,4 @@
{ lib, buildPythonPackage, fetchPypi, pythonOlder { lib, buildPythonPackage, isPy27, fetchPypi, pythonOlder
, importlib-metadata }: , importlib-metadata }:
buildPythonPackage rec { buildPythonPackage rec {
@ -6,6 +6,8 @@ buildPythonPackage rec {
version = "0.7.1"; version = "0.7.1";
format = "pyproject"; format = "pyproject";
disabled = isPy27;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-vnSso3vmPIjX7JX+NwoxguwqwPHocJACeh5H0ClPcUI="; sha256 = "sha256-vnSso3vmPIjX7JX+NwoxguwqwPHocJACeh5H0ClPcUI=";

View File

@ -20,14 +20,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "fonttools"; pname = "fonttools";
version = "4.20.0"; version = "4.21.1";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0yj83vsjh23g7gkmq6svbgc898x3qgygkhvpcbpycvmpwxxqxh1v"; sha256 = "1x9qrg6ppqhm5214ymwvn0r34qdz8pqvyxd0sj7rkp06wa757z2i";
}; };
# all dependencies are optional, but # all dependencies are optional, but
@ -67,9 +67,10 @@ buildPythonPackage rec {
-k 'not ttcompile_timestamp_calcs and not recalc_timestamp' -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
''; '';
meta = { meta = with lib; {
homepage = "https://github.com/fonttools/fonttools"; homepage = "https://github.com/fonttools/fonttools";
description = "A library to manipulate font files from Python"; description = "A library to manipulate font files from Python";
license = lib.licenses.mit; license = licenses.mit;
maintainers = [ maintainers.sternenseemann ];
}; };
} }

View File

@ -1,6 +1,5 @@
{ lib, stdenv { lib, stdenv
, buildPythonPackage , buildPythonPackage
, darwin
, grpc , grpc
, six , six
, protobuf , protobuf
@ -20,8 +19,7 @@ buildPythonPackage rec {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ cython pkg-config ] nativeBuildInputs = [ cython pkg-config ];
++ lib.optional stdenv.isDarwin darwin.cctools;
buildInputs = [ c-ares openssl zlib ]; buildInputs = [ c-ares openssl zlib ];
propagatedBuildInputs = [ six protobuf ] propagatedBuildInputs = [ six protobuf ]

View File

@ -18,14 +18,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "httpx"; pname = "httpx";
version = "0.16.1"; version = "0.17.0";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "encode"; owner = "encode";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "00gmq45fckcqkj910bvd7pyqz1mvgsdvz4s0k7dzbnc5czzq1f4a"; sha256 = "sha256-pRdhPAxKZOVbRhOm4881Dn+IRtpX5T3oFuYdtWp3cgY=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -1,22 +1,33 @@
{ lib, buildPythonPackage, fetchPypi }: { lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, editdistance
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "identify"; pname = "identify";
version = "1.6.1"; version = "1.6.1";
src = fetchPypi {
inherit pname version; src = fetchFromGitHub {
sha256 = "7b435803dc79a0f0ce887887a62ad360f3a9e8162ac0db9ee649d5d24085bf30"; owner = "pre-commit";
repo = pname;
rev = "v${version}";
sha256 = "1sqhqqjp53dwm8yq4nrgggxbvzs3szbg49z5sj2ss9xzlgmimclm";
}; };
pythonImportsCheck = [ "identify" ]; checkInputs = [
editdistance
pytestCheckHook
];
# Tests not included in PyPI tarball pythonImportsCheck = [ "identify" ];
doCheck = false;
meta = with lib; { meta = with lib; {
description = "File identification library for Python"; description = "File identification library for Python";
homepage = "https://github.com/chriskuehl/identify"; homepage = "https://github.com/chriskuehl/identify";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ fab ];
}; };
} }

View File

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ircrobots"; pname = "ircrobots";
version = "0.3.6"; version = "0.3.7";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jesopo"; owner = "jesopo";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1c8h8b78gmnfipppr9dxp7sl6wd9lx4l3pdwykaib1f49dqwavys"; sha256 = "0cm4hcmprca24d979ydbzwn9mfxw16jki6ld7yykxryf0983nqc7";
}; };
postPatch = '' postPatch = ''

View File

@ -1,19 +1,34 @@
{ buildPythonPackage, fetchPypi, isPy27, setuptools_scm, six, more-itertools }: { lib, buildPythonPackage, fetchFromGitHub, isPy27
, setuptools_scm, toml
, more-itertools
, pytestCheckHook
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "jaraco.classes"; pname = "jaraco.classes";
version = "3.1.1"; version = "3.1.1";
disabled = isPy27; disabled = isPy27;
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "jaraco";
sha256 = "92bf5d4e6957b17f21034c956dc90977f8ef496c3919ccb165f457f0e2f63cac"; repo = "jaraco.classes";
rev = "v${version}";
sha256 = "0wzrcsxi9gb65inayg0drm08iaw37jm1lqxhz3860i6pwjh503pr";
}; };
pythonNamespaces = [ "jaraco" ]; pythonNamespaces = [ "jaraco" ];
nativeBuildInputs = [ setuptools_scm ]; SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = [ six more-itertools ];
doCheck = false; nativeBuildInputs = [ setuptools_scm toml ];
propagatedBuildInputs = [ more-itertools ];
checkInputs = [ pytestCheckHook ];
meta = with lib; {
description = "Utility functions for Python class constructs";
homepage = "https://github.com/jaraco/jaraco.classes";
license = licenses.mit;
};
} }

View File

@ -8,25 +8,23 @@
, service-identity , service-identity
, zope_interface , zope_interface
, isPy3k , isPy3k
, pythonAtLeast
, python , python
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "ldaptor"; pname = "ldaptor";
version = "20.1.1"; version = "21.2.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "778f45d68a0b5d63a892c804c05e57b464413a41d8ae52f92ae569321473ab67"; sha256 = "sha256-jEnrGTddSqs+W4NYYGFODLF+VrtaIOGHSAj6W+xno1g=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
twisted passlib pyopenssl pyparsing service-identity zope_interface twisted passlib pyopenssl pyparsing service-identity zope_interface
]; ];
# https://github.com/twisted/ldaptor/pull/210 disabled = !isPy3k;
disabled = !isPy3k || pythonAtLeast "3.9";
checkPhase = '' checkPhase = ''
${python.interpreter} -m twisted.trial ldaptor ${python.interpreter} -m twisted.trial ldaptor

View File

@ -34,6 +34,8 @@ buildPythonPackage rec {
inherit pname version; inherit pname version;
sha256 = "14ed84b463e9b84c8ff9308a79b04bf591ae3122a376ee0f62c68a1bd917a773"; sha256 = "14ed84b463e9b84c8ff9308a79b04bf591ae3122a376ee0f62c68a1bd917a773";
}; };
# See https://github.com/scipy/scipy/issues/13585 and https://github.com/pandas-dev/pandas/pull/40020
patches = [ ./fix-tests.patch ];
nativeBuildInputs = [ cython ]; nativeBuildInputs = [ cython ];
buildInputs = lib.optional stdenv.isDarwin libcxx; buildInputs = lib.optional stdenv.isDarwin libcxx;
@ -59,16 +61,6 @@ buildPythonPackage rec {
# https://github.com/NixOS/nixpkgs/issues/39687 # https://github.com/NixOS/nixpkgs/issues/39687
hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow"; hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
# For OSX, we need to add a dependency on libcxx, which provides
# `complex.h` and other libraries that pandas depends on to build.
postPatch = lib.optionalString stdenv.isDarwin ''
cpp_sdk="${libcxx}/include/c++/v1";
echo "Adding $cpp_sdk to the setup.py common_include variable"
substituteInPlace setup.py \
--replace "['pandas/src/klib', 'pandas/src']" \
"['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
'';
# Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next # Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next
# release. https://github.com/pandas-dev/pandas/pull/30862 # release. https://github.com/pandas-dev/pandas/pull/30862
setupPyBuildFlags = lib.optionals (!(isPy38 && stdenv.isDarwin)) [ setupPyBuildFlags = lib.optionals (!(isPy38 && stdenv.isDarwin)) [

View File

@ -0,0 +1,12 @@
diff --color -ur a/pandas/tests/arrays/sparse/test_array.py b/pandas/tests/arrays/sparse/test_array.py
--- a/pandas/tests/arrays/sparse/test_array.py 2020-12-07 12:42:08.000000000 +0100
+++ b/pandas/tests/arrays/sparse/test_array.py 2021-02-27 21:48:16.483903149 +0100
@@ -1188,7 +1188,7 @@
row = [0, 3, 1, 0]
col = [0, 3, 1, 2]
data = [4, 5, 7, 9]
- sp_array = scipy.sparse.coo_matrix((data, (row, col)))
+ sp_array = scipy.sparse.coo_matrix((data, (row, col)), dtype="int")
result = pd.Series.sparse.from_coo(sp_array)
index = pd.MultiIndex.from_arrays([[0, 0, 1, 3], [0, 2, 1, 3]])

View File

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, requests-mock
, oauthlib
, requests_oauthlib
, requests
, pyaml
}:
buildPythonPackage rec {
pname = "pleroma-bot";
version = "0.8.6";
src = fetchFromGitHub {
owner = "robertoszek";
repo = "pleroma-bot";
rev = version;
sha256 = "1q0xhgqq41zbqiawpd4kbdx41zhwxxp5ipn1c2rc8d7pjyb5p75w";
};
propagatedBuildInputs = [ pyaml requests requests_oauthlib oauthlib ];
checkInputs = [ pytestCheckHook requests-mock ];
pythonImportsCheck = [ "pleroma_bot" ];
meta = with lib; {
homepage = "https://robertoszek.github.io/pleroma-bot/";
description = "Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon";
license = licenses.mit;
maintainers = with maintainers; [ robertoszek ];
};
}

View File

@ -1,5 +1,12 @@
{ lib, buildPythonPackage, pythonOlder, fetchPypi, prompt_toolkit, appdirs, docopt, jedi { lib, buildPythonPackage, pythonOlder, fetchPypi
, pygments, importlib-metadata, isPy3k }: , appdirs
, black
, importlib-metadata
, isPy3k
, jedi
, prompt_toolkit
, pygments
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "ptpython"; pname = "ptpython";
@ -11,8 +18,13 @@ buildPythonPackage rec {
sha256 = "4b0f6e381a8251ec8d6aa94fe12f3400bf6edf789f89c8a6099f8a91d4a5d2e1"; sha256 = "4b0f6e381a8251ec8d6aa94fe12f3400bf6edf789f89c8a6099f8a91d4a5d2e1";
}; };
propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ] propagatedBuildInputs = [
++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]; appdirs
black # yes, this is in install_requires
jedi
prompt_toolkit
pygments
] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
# no tests to run # no tests to run
doCheck = false; doCheck = false;

View File

@ -1,44 +1,45 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub
, ujson
, email_validator , email_validator
, typing-extensions , fetchFromGitHub
, python
, isPy3k
, pytest
, pytestcov
, pytest-mock , pytest-mock
, pytestCheckHook
, python-dotenv
, pythonOlder
, typing-extensions
, ujson
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pydantic"; pname = "pydantic";
version = "1.7.3"; version = "1.8";
disabled = !isPy3k; disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "samuelcolvin"; owner = "samuelcolvin";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "xihEDmly0vprmA+VdeCoGXg9PjWRPmBWAwk/9f2DLts="; sha256 = "sha256-+HfnM/IrFlUyQJdiOYyaJUNenh8dLtd8CUJWSbn6hwQ=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
ujson
email_validator email_validator
python-dotenv
typing-extensions typing-extensions
ujson
]; ];
checkInputs = [ checkInputs = [
pytest
pytestcov
pytest-mock pytest-mock
pytestCheckHook
]; ];
checkPhase = '' preCheck = ''
pytest export HOME=$(mktemp -d)
''; '';
pythonImportsCheck = [ "pydantic" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/samuelcolvin/pydantic"; homepage = "https://github.com/samuelcolvin/pydantic";
description = "Data validation and settings management using Python type hinting"; description = "Data validation and settings management using Python type hinting";

View File

@ -1,15 +1,19 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, isPy27
, fetchPypi , fetchPypi
, pybind11 , pybind11
, exdown
, numpy , numpy
, pytest , pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyfma"; pname = "pyfma";
version = "0.1.2"; version = "0.1.2";
disabled = isPy27;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "3a9e2503fd01baa4978af5f491b79b7646d7872df9ecc7ab63ba10c250c50d8a"; sha256 = "3a9e2503fd01baa4978af5f491b79b7646d7872df9ecc7ab63ba10c250c50d8a";
@ -20,17 +24,12 @@ buildPythonPackage rec {
]; ];
checkInputs = [ checkInputs = [
exdown
numpy numpy
pytest pytestCheckHook
]; ];
preBuild = '' pythonImportsCheck = [ "pyfma" ];
export HOME=$(mktemp -d)
'';
checkPhase = ''
pytest test
'';
meta = with lib; { meta = with lib; {
description = "Fused multiply-add for Python"; description = "Fused multiply-add for Python";

View File

@ -0,0 +1,36 @@
{ lib
, async-timeout
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, xmltodict
}:
buildPythonPackage rec {
pname = "pymediaroom";
version = "0.6.4.1";
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "dgomes";
repo = pname;
rev = version;
sha256 = "1klf2dxd8rlq3n4b9m03lzwcsasn9vi6m3hzrjqhqnprhrnp0xmy";
};
propagatedBuildInputs = [
async-timeout
xmltodict
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "pymediaroom" ];
meta = with lib; {
description = "Python Remote Control for Mediaroom STB";
homepage = "https://github.com/dgomes/pymediaroom";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -1,20 +1,33 @@
{ lib, buildPythonPackage, fetchPypi, httpx, pytest }: { lib
, buildPythonPackage
, fetchFromGitHub
, httpx
, pytest
, pytest-asyncio
, pytestCheckHook
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytest-httpx"; pname = "pytest-httpx";
version = "0.10.1"; version = "0.11.0";
src = fetchPypi { src = fetchFromGitHub {
inherit version; owner = "Colin-b";
pname = "pytest_httpx"; repo = "pytest_httpx";
extension = "tar.gz"; rev = "v${version}";
sha256 = "13ld6nnsc3f7i4zl4qm1jh358z0awr6xfk05azwgngmjb7jmcz0a"; sha256 = "08idd3y6khxjqkn46diqvkjvsl4w4pxhl6z1hspbkrj0pqwf9isi";
}; };
propagatedBuildInputs = [ httpx pytest ]; propagatedBuildInputs = [
httpx
pytest
];
checkInputs = [
pytest-asyncio
pytestCheckHook
];
# not in pypi tarball
doCheck = false;
pythonImportsCheck = [ "pytest_httpx" ]; pythonImportsCheck = [ "pytest_httpx" ];
meta = with lib; { meta = with lib; {

View File

@ -1,29 +1,38 @@
{ lib, buildPythonPackage, fetchPypi, isPy27 { lib
, buildPythonPackage
, click , click
, fetchPypi
, ipython , ipython
, pytest
, sh
, typing
, mock , mock
, pytestCheckHook
, pythonOlder
, sh
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-dotenv"; pname = "python-dotenv";
version = "0.15.0"; version = "0.15.0";
disabled = pythonOlder "3.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "587825ed60b1711daea4832cf37524dfd404325b7db5e25ebe88c495c9f807a0"; sha256 = "587825ed60b1711daea4832cf37524dfd404325b7db5e25ebe88c495c9f807a0";
}; };
propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ]; propagatedBuildInputs = [ click ];
checkInputs = [ ipython mock pytest sh ]; checkInputs = [
ipython
mock
pytestCheckHook
sh
];
# cli tests are impure disabledTests = [
checkPhase = '' "cli"
pytest tests/ -k 'not cli' ];
'';
pythonImportsCheck = [ "dotenv" ];
meta = with lib; { meta = with lib; {
description = "Add .env support to your django/flask apps in development and deployments"; description = "Add .env support to your django/flask apps in development and deployments";

View File

@ -1,28 +1,32 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, isPyPy , fetchFromGitHub
, pkgs , libuv
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyuv"; pname = "pyuv";
version = "1.2.0"; version = "1.4.0";
disabled = isPyPy; # see https://github.com/saghul/pyuv/issues/49
src = pkgs.fetchurl { src = fetchFromGitHub {
url = "https://github.com/saghul/pyuv/archive/${pname}-${version}.tar.gz"; owner = "saghul";
sha256 = "19yl1l5l6dq1xr8xcv6dhx1avm350nr4v2358iggcx4ma631rycx"; repo = "pyuv";
rev = "pyuv-${version}";
sha256 = "1wiwwdylz66lfsjh6p4iv7pfhzvnhwjk332625njizfhz3gq9fwr";
}; };
patches = [ ./pyuv-external-libuv.patch ]; setupPyBuildFlags = [ "--use-system-libuv" ];
buildInputs = [ pkgs.libuv ]; buildInputs = [ libuv ];
doCheck = false; # doesn't work in sandbox
pythonImportsCheck = [ "pyuv" ];
meta = with lib; { meta = with lib; {
description = "Python interface for libuv"; description = "Python interface for libuv";
homepage = "https://github.com/saghul/pyuv"; homepage = "https://github.com/saghul/pyuv";
repositories.git = "git://github.com/saghul/pyuv.git";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
}; };
} }

View File

@ -1,25 +0,0 @@
diff --git a/setup.py b/setup.py
index 5071c3b..4b4a176 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,6 @@ try:
from setuptools import setup, Extension
except ImportError:
from distutils.core import setup, Extension
-from setup_libuv import libuv_build_ext, libuv_sdist
def get_version():
@@ -35,11 +34,10 @@ setup(name = "pyuv",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4"
],
- cmdclass = {'build_ext': libuv_build_ext,
- 'sdist' : libuv_sdist},
packages = ['pyuv'],
ext_modules = [Extension('pyuv._cpyuv',
sources = ['src/pyuv.c'],
+ libraries = ['uv']
)]
)

View File

@ -1,4 +1,5 @@
{ lib { lib
, stdenv
, archinfo , archinfo
, bitstring , bitstring
, fetchPypi , fetchPypi
@ -14,7 +15,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "aa12e546599be3cce18d7daef70e93555bf681bd04f6449aa5a6e2bfebb8276b"; sha256 = "sha256-qhLlRlmb48zhjX2u9w6TVVv2gb0E9kSapabiv+u4J2s=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -35,5 +36,7 @@ buildPythonPackage rec {
homepage = "https://github.com/angr/pyvex"; homepage = "https://github.com/angr/pyvex";
license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ]; license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ];
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
# ERROR: pyvex-X-py3-none-manylinux1_aarch64.whl is not a supported wheel on this platform.
broken = stdenv.isAarch64;
}; };
} }

View File

@ -14,11 +14,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sagemaker"; pname = "sagemaker";
version = "2.25.2"; version = "2.26.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-oacqDLgt11fplc6e3ruCrwDV/iRhoTgx1mu3Pm/5kmw="; sha256 = "sha256-CT0vXt6x+cp4yHZtfBiRq+/Aurd4Q7Zagn4lNRqji/o=";
}; };
pythonImportsCheck = [ pythonImportsCheck = [

View File

@ -34,7 +34,7 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
]; ];
# environment variable used in shapely/_buildcfg.py # Environment variable used in shapely/_buildcfg.py
GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}"; GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
patches = [ patches = [
@ -48,18 +48,12 @@ buildPythonPackage rec {
".travis.yml" ".travis.yml"
]; ];
}) })
# Patch to search form GOES .so/.dylib files in a Nix-aware way # Patch to search form GOES .so/.dylib files in a Nix-aware way
(substituteAll { (substituteAll {
src = ./library-paths.patch; src = ./library-paths.patch;
libgeos_c = GEOS_LIBRARY_PATH; libgeos_c = GEOS_LIBRARY_PATH;
libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6"; libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
}) })
# included in next release.
(fetchpatch {
url = "https://github.com/Toblerity/Shapely/commit/ea5b05a0c87235d3d8f09930ad47c396a76c8b0c.patch";
sha256 = "sha256-egdydlV+tpXosSQwQFHaXaeBhXEHAs+mn7vLUDpvybA=";
})
]; ];
preCheck = '' preCheck = ''
@ -70,9 +64,12 @@ buildPythonPackage rec {
"test_collection" "test_collection"
]; ];
pythonImportsCheck = [ "shapely" ];
meta = with lib; { meta = with lib; {
description = "Geometric objects, predicates, and operations"; description = "Geometric objects, predicates, and operations";
maintainers = with maintainers; [ knedlsepp ];
homepage = "https://pypi.python.org/pypi/Shapely/"; homepage = "https://pypi.python.org/pypi/Shapely/";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ knedlsepp ];
}; };
} }

View File

@ -1,6 +1,6 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchFromGitHub
, boto3 , boto3
, diskcache , diskcache
, enum34 , enum34
@ -10,7 +10,7 @@
, requests , requests
, scikitimage , scikitimage
, six , six
, pytest , pytestCheckHook
, isPy27 , isPy27
, tifffile , tifffile
}: }:
@ -19,9 +19,11 @@ buildPythonPackage rec {
pname = "slicedimage"; pname = "slicedimage";
version = "4.1.1"; version = "4.1.1";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "spacetx";
sha256 = "7369f1d7fa09f6c9969625c4b76a8a63d2507a94c6fc257183da1c10261703e9"; repo = pname;
rev = version;
sha256 = "1vpg8varvfx0nj6xscdfm7m118hzsfz7qfzn28r9rsfvrhr0dlcw";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -36,13 +38,13 @@ buildPythonPackage rec {
] ++ lib.optionals isPy27 [ pathlib enum34 ]; ] ++ lib.optionals isPy27 [ pathlib enum34 ];
checkInputs = [ checkInputs = [
pytest pytestCheckHook
]; ];
# ignore tests which require setup # Ignore tests which require setup, check again if disabledTestFiles can be used
checkPhase = '' pytestFlagsArray = [ "--ignore tests/io_" ];
pytest --ignore tests/io_
''; pythonImportsCheck = [ "slicedimage" ];
meta = with lib; { meta = with lib; {
description = "Library to access sliced imaging data"; description = "Library to access sliced imaging data";

View File

@ -1,12 +1,15 @@
{ buildPythonPackage { buildPythonPackage
, coveralls
, fetchFromGitHub , fetchFromGitHub
, flake8 , fetchpatch
, graphviz , graphviz
, ifaddr
, isPy27
, lib , lib
, mock , mock
, nix-update-script
, pytestCheckHook , pytestCheckHook
, requests , requests
, requests-mock
, sphinx , sphinx
, sphinx_rtd_theme , sphinx_rtd_theme
, toml , toml
@ -15,7 +18,8 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "soco"; pname = "soco";
version = "0.20"; version = "0.21.2";
disabled = isPy27;
# N.B. We fetch from GitHub because the PyPI tarball doesn't contain the # N.B. We fetch from GitHub because the PyPI tarball doesn't contain the
# required files to run the tests. # required files to run the tests.
@ -23,34 +27,46 @@ buildPythonPackage rec {
owner = "SoCo"; owner = "SoCo";
repo = "SoCo"; repo = "SoCo";
rev = "v${version}"; rev = "v${version}";
sha256 = "0p87aw7wxgdjz0m0nqqcfvbn24hlbq1hh1zxdq2c0k2jcbmaj8zc"; sha256 = "sha256-CCgkzUkt9YqTJt9tPBLmYXW6ZuRoMDd7xahYmNXgfM0=";
}; };
patches = [(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/SoCo/SoCo/pull/811.patch";
sha256 = "sha256-GBd74c8zc25ROO411SZ9TTa+bi8yXJaaOQqY9FM1qj4=";
})];
# N.B. These exist because: # N.B. These exist because:
# 1. Upstream's pinning isn't well maintained, leaving dependency versions no # 1. Upstream's pinning isn't well maintained, leaving dependency versions no
# longer in nixpkgs. # longer in nixpkgs.
# 2. There is no benefit for us to be running linting and coverage tests. # 2. There is no benefit for us to be running linting and coverage tests.
postPatch = '' postPatch = ''
sed -i "/black/d" ./requirements-dev.txt sed -i "/black/d" ./requirements-dev.txt
sed -i "/coveralls/d" ./requirements-dev.txt
sed -i "/flake8/d" ./requirements-dev.txt
sed -i "/pylint/d" ./requirements-dev.txt sed -i "/pylint/d" ./requirements-dev.txt
sed -i "/pytest-cov/d" ./requirements-dev.txt sed -i "/pytest-cov/d" ./requirements-dev.txt
''; '';
propagatedBuildInputs = [ propagatedBuildInputs = [
ifaddr
requests requests
toml toml
xmltodict xmltodict
]; ];
checkInputs = [ checkInputs = [
pytestCheckHook pytestCheckHook
coveralls
flake8
graphviz graphviz
mock mock
requests-mock
sphinx sphinx
sphinx_rtd_theme sphinx_rtd_theme
]; ];
passthru.updateScript = nix-update-script {
attrPath = "python3Packages.${pname}";
};
meta = with lib; { meta = with lib; {
homepage = "http://python-soco.com/"; homepage = "http://python-soco.com/";
description = "A CLI and library to control Sonos speakers"; description = "A CLI and library to control Sonos speakers";

View File

@ -51,6 +51,9 @@ buildPythonPackage rec {
''; '';
meta = with lib; { meta = with lib; {
# scikit-learn in pythonPackages is too new for textacy
# remove as soon as textacy support scikit-learn >= 0.24
broken = true;
description = "Higher-level text processing, built on spaCy"; description = "Higher-level text processing, built on spaCy";
homepage = "https://textacy.readthedocs.io/"; homepage = "https://textacy.readthedocs.io/";
license = licenses.asl20; license = licenses.asl20;

View File

@ -1,6 +1,7 @@
{ lib, stdenv { lib, stdenv
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, fetchpatch
, argh , argh
, pathtools , pathtools
, pyyaml , pyyaml
@ -11,13 +12,21 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "watchdog"; pname = "watchdog";
version = "2.0.1"; version = "2.0.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0d1c763652c255e2af00d76cf7d05c7b4867e960092b2696db031f69661c0785"; sha256 = "sha256-Uy/t2ZPnVVRnH6o2zQTFgM7T+uCEJUp3mvu9iq8AVms=";
}; };
patches = [
(fetchpatch {
# Fix test flakiness on Apple Silicon, remove after upgrade to 2.0.6.
url = "https://github.com/gorakhargosh/watchdog/commit/331fd7c2c819663be39bc146e78ce67553f265fa.patch";
sha256 = "sha256-pLkZmbPN3qRNHs53OP0HIyDxqYCPPo6yOcBLD3aO2YE=";
})
];
buildInputs = lib.optionals stdenv.isDarwin buildInputs = lib.optionals stdenv.isDarwin
[ pkgs.darwin.apple_sdk.frameworks.CoreServices ]; [ pkgs.darwin.apple_sdk.frameworks.CoreServices ];

View File

@ -2,18 +2,18 @@
buildGoModule rec { buildGoModule rec {
pname = "azure-storage-azcopy"; pname = "azure-storage-azcopy";
version = "10.8.0"; version = "10.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Azure"; owner = "Azure";
repo = "azure-storage-azcopy"; repo = "azure-storage-azcopy";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-zA0/5lpVefZD0m7g7SfqSRAFkQm2b+g/F3doCl9oAn8="; sha256 = "sha256-IVbvBqp/7Y3La0pP6gbWl0ATfEvkCuR4J9ChTDPNhB0=";
}; };
subPackages = [ "." ]; subPackages = [ "." ];
vendorSha256 = "sha256-t7PluxN6naDB35eC59Xus1hgZflgViWF2yFog9mkaOA="; vendorSha256 = "sha256-mj1TvNuFFPJGAJCBTQtU5WWPhHbiXUxRiMZQ/XvEy0U=";
doCheck = false; doCheck = false;

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "bazel-kazel"; pname = "bazel-kazel";
version = "0.2.0"; version = "0.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = "repo-infra"; repo = "repo-infra";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-YWTWw5vDkDvIHOTqZM2xH8VPaVRuB2oyynvwWNmvPXs="; sha256 = "sha256-g7jfuWe4UeAbNf+kOa0Y9BamUnGEbOGxZ+KdQWdWl48=";
}; };
vendorSha256 = "sha256-1+7Mx1Zh1WolqTpWNe560PRzRYaWVUVLvNvUOysaW5I="; vendorSha256 = "sha256-1+7Mx1Zh1WolqTpWNe560PRzRYaWVUVLvNvUOysaW5I=";

View File

@ -1,4 +1,4 @@
{ lib, python3, fetchFromGitHub, git, pkg-config }: { lib, stdenv, python3, fetchFromGitHub, git, pkg-config, fetchpatch }:
# Note: # Note:
# Conan has specific dependency demands; check # Conan has specific dependency demands; check
@ -20,6 +20,13 @@ let newPython = python3.override {
inherit version; inherit version;
sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j"; sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
}; };
patches = oldAttrs.patches or [] ++ [
# Don't raise import error on non-linux os. Remove after upgrading to distro≥1.2.0
(fetchpatch {
url = "https://github.com/nir0s/distro/commit/25aa3f8c5934346dc838387fc081ce81baddeb95.patch";
sha256 = "0m09ldf75gacazh2kr04cifgsqfxg670vk4ypl62zv7fp3nyd5dc";
})
];
}); });
node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec { node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
version = "0.6.1"; version = "0.6.1";
@ -69,7 +76,7 @@ in newPython.pkgs.buildPythonApplication rec {
six six
tqdm tqdm
urllib3 urllib3
]; ] ++ lib.optionals stdenv.isDarwin [ idna cryptography pyopenssl ];
checkInputs = [ checkInputs = [
pkg-config pkg-config
@ -90,6 +97,9 @@ in newPython.pkgs.buildPythonApplication rec {
substituteInPlace conans/requirements.txt \ substituteInPlace conans/requirements.txt \
--replace "PyYAML>=3.11, <3.14.0" "PyYAML" \ --replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
--replace "deprecation>=2.0, <2.1" "deprecation" \ --replace "deprecation>=2.0, <2.1" "deprecation" \
--replace "idna==2.6" "idna" \
--replace "cryptography>=1.3.4, <2.4.0" "cryptography" \
--replace "pyOpenSSL>=16.0.0, <19.0.0" "pyOpenSSL" \
--replace "six>=1.10.0,<=1.14.0" "six" --replace "six>=1.10.0,<=1.14.0" "six"
''; '';
@ -98,6 +108,5 @@ in newPython.pkgs.buildPythonApplication rec {
description = "Decentralized and portable C/C++ package manager"; description = "Decentralized and portable C/C++ package manager";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ HaoZeke ]; maintainers = with maintainers; [ HaoZeke ];
platforms = platforms.linux;
}; };
} }

View File

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "doctl"; pname = "doctl";
version = "1.56.0"; version = "1.57.0";
vendorSha256 = null; vendorSha256 = null;
@ -32,7 +32,7 @@ buildGoModule rec {
owner = "digitalocean"; owner = "digitalocean";
repo = "doctl"; repo = "doctl";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-rBUao5j4Bofn6uSB20TTN7G1JgKu3mQpISJp+hX28mw="; sha256 = "sha256-waaBillxI7tKQAugyolAWQWf4CG+uIkjtvNXNNFpqRY=";
}; };
meta = with lib; { meta = with lib; {

View File

@ -1,12 +1,12 @@
{ stdenv, lib, fetchzip, jdk, makeWrapper, coreutils, curl }: { stdenv, lib, fetchzip, jdk, makeWrapper, coreutils, curl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.66.0"; version = "0.66.1";
pname = "jbang"; pname = "jbang";
src = fetchzip { src = fetchzip {
url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar"; url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
sha256 = "sha256-iWM9IcvrcsX/rTzouT7rQbuGSFTIVPnHSCmAHxzFOQo="; sha256 = "sha256-D7xZbuxSdE1zcyVZ9hqNOgq1oZDSFjBeITNqKXEpjyU=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubectx"; pname = "kubectx";
version = "0.9.2"; version = "0.9.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ahmetb"; owner = "ahmetb";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-a2w4SXF6oOo4ZLYwF8I3mkqW9ktSbHiV/tym8b8Ng4U="; sha256 = "sha256-anTogloat0YJN6LR6mww5IPwokHYoDY6L7i2pMzI8/M=";
}; };
vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg="; vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg=";

View File

@ -0,0 +1,22 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "cargo-criterion";
version = "1.0.0";
src = fetchFromGitHub {
owner = "bheisler";
repo = pname;
rev = version;
sha256 = "0czagclrn4yhlvlh06wsyiybz69r7mmk3182fywzn9vd0xlclxpi";
};
cargoSha256 = "sha256-XZuZ81hB/GQDopJyfSkxQiehSwJz7VWoJR6/m3WLil8=";
meta = with lib; {
description = "Cargo extension for running Criterion.rs benchmarks";
homepage = "https://github.com/bheisler/cargo-criterion";
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ humancalico ];
};
}

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-deny"; pname = "cargo-deny";
version = "0.8.7"; version = "0.8.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "EmbarkStudios"; owner = "EmbarkStudios";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-LXc4PFJ1FbdF3yotqqOkhhe+MKGZ4sqJgxAvDml9GeA="; sha256 = "sha256-8wmH9DeI+tm3c/6n7bwMe5SslGNCUg4d5BE0+wQ7KTU=";
}; };
cargoSha256 = "sha256-4FFyRhmMpzKmKrvU2bmGHWUnLAbTDU1bPv7RfhQfYeY="; cargoSha256 = "sha256-f0Wisel7NQOyfbhhs0GwyTBiUfydPMSVAysrov/RxxI=";
doCheck = false; doCheck = false;

View File

@ -0,0 +1,25 @@
{ fetchFromGitHub, lib, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "cargo-play";
version = "0.5.0";
src = fetchFromGitHub {
owner = "fanzeyi";
repo = pname;
rev = "v${version}";
sha256 = "01r00akfmvpzp924yqqybd9s0pwiwxy8vklsg4m9ypzljc3nlv02";
};
cargoSha256 = "0fvsdyivq5991ka6avh12aqdkjx0myk61kmzlr19p2vlfpg70q07";
# some tests require internet access
doCheck = false;
meta = with lib; {
description = "Run your rust code without setting up cargo";
homepage = "https://github.com/fanzeyi/cargo-play";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "crate2nix"; pname = "crate2nix";
version = "0.8.0"; version = "0.9.0";
src = fetchFromGitHub src = fetchFromGitHub
{ {
owner = "kolloch"; owner = "kolloch";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-pqg1BsEq3kGmUzt1zpQvXgdnRcIsiuIyvtUBi3VxtZ4="; sha256 = "sha256-dB8wa3CQFw8ckD420zpBGw4TnsLrHqXf+ff/WuhPsVM=";
} + "/crate2nix"; } + "/crate2nix";
cargoSha256 = "sha256-dAMWrGNMleQ3lDbG46Hr4qvCyxR+QcPOUZw9r2/CxV4="; cargoSha256 = "sha256-6V0ifH63/s5XLo4BCexPtvlUH0UQPHFW8YHF8OCH3ik=";
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

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