Merge branch 'staging-next' into staging
This commit is contained in:
commit
913394a1d9
@ -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.
|
||||||
|
@ -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";
|
||||||
|
@ -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>
|
||||||
|
@ -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}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
@ -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";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
)
|
)
|
||||||
|
@ -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 ];
|
||||||
|
@ -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 [
|
||||||
|
@ -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
|
||||||
|
@ -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 = {
|
||||||
|
@ -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 = {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -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 = ''
|
||||||
|
@ -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
|
||||||
|
@ -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=";
|
||||||
|
@ -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";
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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; [
|
||||||
|
@ -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 ];
|
||||||
|
@ -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=";
|
||||||
|
@ -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; };
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
|
||||||
|
@ -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 = [
|
||||||
|
@ -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"
|
||||||
|
@ -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";
|
||||||
|
@ -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";
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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";
|
||||||
|
@ -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 ];
|
||||||
|
@ -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;
|
||||||
|
@ -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"}" ];
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
61
pkgs/development/libraries/libnbd/default.nix
Normal file
61
pkgs/development/libraries/libnbd/default.nix
Normal 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
|
||||||
|
|
30
pkgs/development/libraries/libxcrypt/default.nix
Normal file
30
pkgs/development/libraries/libxcrypt/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
@ -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
|
||||||
|
170
pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch
Normal file
170
pkgs/development/libraries/qt-5/5.12/qtwebkit-icu68.patch
Normal 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)
|
@ -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
|
||||||
|
170
pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch
Normal file
170
pkgs/development/libraries/qt-5/5.14/qtwebkit-icu68.patch
Normal 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)
|
@ -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
|
||||||
|
170
pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch
Normal file
170
pkgs/development/libraries/qt-5/5.15/qtwebkit-icu68.patch
Normal 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)
|
@ -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";
|
||||||
|
6
pkgs/development/misc/resholve/deps.nix
generated
6
pkgs/development/misc/resholve/deps.nix
generated
@ -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
|
||||||
|
@ -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
|
||||||
|
4643
pkgs/development/node-packages/node-packages.nix
generated
4643
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -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 {
|
||||||
|
@ -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";
|
||||||
|
@ -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 = ''
|
||||||
|
@ -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 ];
|
||||||
|
@ -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 ];
|
||||||
|
38
pkgs/development/python-modules/aiopylgtv/default.nix
Normal file
38
pkgs/development/python-modules/aiopylgtv/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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 = [
|
||||||
|
@ -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 ];
|
||||||
|
@ -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
|
||||||
|
@ -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 ];
|
||||||
|
@ -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 = [
|
||||||
|
32
pkgs/development/python-modules/chirpstack-api/default.nix
Normal file
32
pkgs/development/python-modules/chirpstack-api/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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
|
||||||
|
@ -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 = ".";
|
||||||
|
36
pkgs/development/python-modules/editdistance/default.nix
Normal file
36
pkgs/development/python-modules/editdistance/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
40
pkgs/development/python-modules/elmax/default.nix
Normal file
40
pkgs/development/python-modules/elmax/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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=";
|
||||||
|
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 ]
|
||||||
|
@ -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 = [
|
||||||
|
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 = ''
|
||||||
|
@ -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;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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)) [
|
||||||
|
12
pkgs/development/python-modules/pandas/fix-tests.patch
Normal file
12
pkgs/development/python-modules/pandas/fix-tests.patch
Normal 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]])
|
34
pkgs/development/python-modules/pleroma-bot/default.nix
Normal file
34
pkgs/development/python-modules/pleroma-bot/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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;
|
||||||
|
@ -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";
|
||||||
|
@ -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";
|
||||||
|
36
pkgs/development/python-modules/pymediaroom/default.nix
Normal file
36
pkgs/development/python-modules/pymediaroom/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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; {
|
||||||
|
@ -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";
|
||||||
|
@ -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 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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']
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 = [
|
||||||
|
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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";
|
||||||
|
@ -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";
|
||||||
|
@ -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;
|
||||||
|
@ -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 ];
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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=";
|
||||||
|
@ -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;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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; {
|
||||||
|
@ -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 ];
|
||||||
|
@ -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=";
|
||||||
|
22
pkgs/development/tools/rust/cargo-criterion/default.nix
Normal file
22
pkgs/development/tools/rust/cargo-criterion/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
25
pkgs/development/tools/rust/cargo-play/default.nix
Normal file
25
pkgs/development/tools/rust/cargo-play/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -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
Loading…
Reference in New Issue
Block a user