Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-02-16 00:36:43 +00:00 committed by GitHub
commit 6453fff3de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 277 additions and 54 deletions

View File

@ -24,11 +24,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.50.3";
version = "0.50.4";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "sha256-8sFBxcs3tnIQQ4S39aF8r9SGm9VOHPpgQYyLkUaOscw=";
sha256 = "sha256-ZOw3Zyd6+fT/Z2tndRVqA8tVvgeq/TbdEdoAk9vSM0k=";
};
nativeBuildInputs = [

View File

@ -144,7 +144,7 @@ stdenv.mkDerivation rec {
postFixup = ''
# the .desktop is both invalid and pointless
rm -f $out/share/applications/qemu.desktop
test -e $out/share/applications/qemu.desktop && rm -f $out/share/applications/qemu.desktop
# copy qemu-ga (guest agent) to separate output
mkdir -p $ga/bin

View File

@ -0,0 +1,37 @@
{ lib, mkDerivation, fetchFromGitHub
, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
mkDerivation rec {
pname = "parachute";
version = "0.9.1";
src = fetchFromGitHub {
owner = "tcorreabr";
repo = "parachute";
rev = "v${version}";
sha256 = "QIWb1zIGfkS+Bef7LK+JA6XpwGUW+79XZY47j75nlCE=";
};
buildInputs = [
kcoreaddons kwindowsystem plasma-framework systemsettings
];
dontBuild = true;
# 1. --global still installs to $HOME/.local/share so we use --packageroot
# 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
installPhase = ''
runHook preInstall
plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
install -Dm644 ${src}/metadata.desktop $out/share/kservices5/Parachute.desktop
runHook postInstall
'';
meta = with lib; {
description = "Look at your windows and desktops from above.";
license = licenses.gpl3Only;
maintainers = with maintainers; [ mjlbach ];
inherit (src.meta) homepage;
inherit (kwindowsystem.meta) platforms;
};
}

View File

@ -146,6 +146,7 @@ let
kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { };
kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { };
};
};

View File

@ -0,0 +1,29 @@
{ lib, buildPythonApplication, fetchFromGitHub }:
buildPythonApplication rec {
pname = "ophis";
version = "unstable-2019-04-13";
src = fetchFromGitHub {
owner = "michaelcmartin";
repo = "Ophis";
rev = "99f074da278d4ec80689c0e22e20c5552ea12512";
sha256 = "2x8vwLTSngqQqmVrVh/mM4peATgaRqOSwrfm5XCkg/g=";
};
sourceRoot = "./src";
meta = with lib; {
homepage = "http://michaelcmartin.github.io/Ophis/";
description = "A cross-assembler for the 6502 series of microprocessors";
longDescription = ''
Ophis is an assembler for the 6502 microprocessor - the famous chip used
in the vast majority of the classic 8-bit computers and consoles. Its
primary design goals are code readability and output flexibility - Ophis
has successfully been used to create programs for the Nintendo
Entertainment System, the Atari 2600, and the Commodore 64.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
};
}

View File

@ -243,14 +243,6 @@ let
) args; in self;
in {
ruby_2_5 = generic {
version = rubyVersion "2" "5" "8" "";
sha256 = {
src = "16md4jspjwixjlbhx3pnd5iwpca07p23ghkxkqd82sbchw3xy2vc";
git = "19gkk3q9l33cwkfsp5k8f8fipq7gkyqkqirm9farbvy425519rv2";
};
};
ruby_2_6 = generic {
version = rubyVersion "2" "6" "6" "";
sha256 = {

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchurl, fetchgit
, makeWrapper, autoreconfHook, fetchpatch
, coreutils, libxml2, gnutls, perl, python2, attr, glib, docutils
, coreutils, libxml2, gnutls, perl, python3, attr, glib, docutils
, iproute, readline, lvm2, util-linux, systemd, libpciaccess, gettext
, libtasn1, iptables, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
, dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
buildInputs = [
bash-completion pkg-config
libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl
libxml2 gnutls perl python3 readline gettext libtasn1 libgcrypt yajl
libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus
] ++ optionals stdenv.isLinux [
audit libpciaccess lvm2 util-linux systemd libnl numad zfs
@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
# do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
substituteInPlace src/lxc/lxc_conf.c \
--replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",'
patchShebangs . # fixes /usr/bin/python references
patchShebangs .
''
+ (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));

View File

@ -1,7 +1,6 @@
{ lib, buildPythonPackage, fetchPypi, isPy27, fetchpatch
, aws-xray-sdk
, backports_tempfile
, boto
, boto3
, botocore
, cfn-lint
@ -11,7 +10,6 @@
, jinja2
, jsondiff
, mock
, nose
, pyaml
, python-jose
, pytz
@ -24,34 +22,42 @@
, xmltodict
, parameterized
, idna
, nose
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "moto";
version = "1.3.14";
version = "1.3.16";
src = fetchPypi {
inherit pname version;
sha256 = "0fm09074qic24h8rw9a0paklygyb7xd0ch4890y4v8lj2pnsxbkr";
sha256 = "0zy0prsyip264i6h03lxsn1qg1n3dc8c4iyfawckjqvm24gnns3c";
};
postPatch = ''
substituteInPlace setup.py \
--replace "jsondiff==1.1.2" "jsondiff~=1.1"
sed -i '/datetime/d' setup.py # should be taken care of by std library
--replace "ecdsa<0.15" "ecdsa"
'';
patches = [
# loosen idna upper limit
# Remove dependence on boto. The boto library (long ago superseded by boto3)
# has not had an official release in over two years or even a commit in the
# last 18 months. These patches should be included in the next moto release
# after 1.3.16
(fetchpatch {
url = "https://github.com/spulec/moto/commit/649b497f71cce95a6474a3ff6f3c9c3339efb68f.patch";
sha256 = "03qdybzlskgbdadmlcg6ayxfp821b5iaa8q2542cwkcq7msqbbqc";
url = "https://github.com/spulec/moto/pull/3503/commits/ae85c539fd57034c4d5cfd0f95af41ff19862dd1.patch";
sha256 = "16hr2py6q701d8ih6zcvs3lbanshpbk15ixckgdqngjf160k5m9p";
excludes = ["tests/test_ec2/test_ec2_cloudformation.py"];
})
(fetchpatch {
url = "https://github.com/spulec/moto/pull/3468/commits/6ee39bd7fda4d3623569e10dcd9561bf2cd1d0bd.patch";
sha256 = "10m3xdqxgys7spav9mkbhcn4z0124rlprwxnw6ysb10610xlna0i";
})
];
propagatedBuildInputs = [
aws-xray-sdk
boto
boto3
botocore
cfn-lint
@ -72,26 +78,183 @@ buildPythonPackage rec {
idna
] ++ lib.optionals isPy27 [ backports_tempfile ];
checkInputs = [ boto3 freezegun nose sure parameterized ];
# Next release after 1.3.16 will not require `nose`
checkInputs = [ boto3 nose freezegun pytestCheckHook sure parameterized ];
checkPhase = ''
nosetests -v ./tests/ \
-e test_invoke_function_from_sns \
-e test_invoke_requestresponse_function \
-e test_context_manager \
-e test_decorator_start_and_stop \
-e test_invoke_event_function \
-e test_invoke_function_from_dynamodb \
-e test_invoke_function_from_sqs \
-e test_invoke_lambda_error \
-e test_invoke_async_function \
-e test_passthrough_requests
'';
# Multiple test files still import boto, rather than boto3 like
# boto is long-deprecated and broken on python3.9
# https://github.com/spulec/moto/blob/63ce647123755e4c4693a89f52c254596004c098/tests/test_autoscaling/test_autoscaling.py#L2
# NOTE: This should change to use disabledTestFiles / disabledTestPaths once that
# feature stabalizes: see #113153 (mostly the discussion therein), #113167, #110700
pytestFlagsArray = [
"--ignore=tests/test_awslambda/test_policy.py"
"--ignore=tests/test_autoscaling/test_autoscaling.py"
"--ignore=tests/test_autoscaling/test_cloudformation.py"
"--ignore=tests/test_autoscaling/test_elbv2.py"
"--ignore=tests/test_autoscaling/test_launch_configurations.py"
"--ignore=tests/test_autoscaling/test_policies.py"
"--ignore=tests/test_autoscaling/test_server.py"
"--ignore=tests/test_awslambda/test_lambda.py"
"--ignore=tests/test_awslambda/test_lambda_cloudformation.py"
"--ignore=tests/test_batch/test_cloudformation.py"
"--ignore=tests/test_batch/test_server.py"
"--ignore=tests/test_cloudformation/test_cloudformation_depends_on.py"
"--ignore=tests/test_cloudformation/test_cloudformation_stack_crud.py"
"--ignore=tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py"
"--ignore=tests/test_cloudformation/test_cloudformation_stack_integration.py"
"--ignore=tests/test_cloudformation/test_stack_parsing.py"
"--ignore=tests/test_cloudformation/test_validate.py"
"--ignore=tests/test_cloudwatch/test_cloudwatch.py"
"--ignore=tests/test_cognitoidentity/test_server.py"
"--ignore=tests/test_config/test_config.py"
"--ignore=tests/test_core/test_auth.py"
"--ignore=tests/test_core/test_decorator_calls.py"
"--ignore=tests/test_core/test_nested.py"
"--ignore=tests/test_core/test_server.py"
"--ignore=tests/test_datapipeline/test_datapipeline.py"
"--ignore=tests/test_datapipeline/test_server.py"
"--ignore=tests/test_datasync/test_datasync.py"
"--ignore=tests/test_dynamodb/test_dynamodb.py"
"--ignore=tests/test_dynamodb/test_dynamodb_table_with_range_key.py"
"--ignore=tests/test_dynamodb/test_dynamodb_table_without_range_key.py"
"--ignore=tests/test_dynamodb/test_server.py"
"--ignore=tests/test_dynamodb2/test_dynamodb.py"
"--ignore=tests/test_dynamodb2/test_dynamodb_table_with_range_key.py"
"--ignore=tests/test_dynamodb2/test_dynamodb_table_without_range_key.py"
"--ignore=tests/test_dynamodb2/test_server.py"
"--ignore=tests/test_ec2/test_amazon_dev_pay.py"
"--ignore=tests/test_ec2/test_amis.py"
"--ignore=tests/test_ec2/test_availability_zones_and_regions.py"
"--ignore=tests/test_ec2/test_customer_gateways.py"
"--ignore=tests/test_ec2/test_dhcp_options.py"
"--ignore=tests/test_ec2/test_elastic_block_store.py"
"--ignore=tests/test_ec2/test_elastic_ip_addresses.py"
"--ignore=tests/test_ec2/test_elastic_network_interfaces.py"
"--ignore=tests/test_ec2/test_general.py"
"--ignore=tests/test_ec2/test_instances.py"
"--ignore=tests/test_ec2/test_internet_gateways.py"
"--ignore=tests/test_ec2/test_ip_addresses.py"
"--ignore=tests/test_ec2/test_key_pairs.py"
"--ignore=tests/test_ec2/test_monitoring.py"
"--ignore=tests/test_ec2/test_network_acls.py"
"--ignore=tests/test_ec2/test_placement_groups.py"
"--ignore=tests/test_ec2/test_regions.py"
"--ignore=tests/test_ec2/test_reserved_instances.py"
"--ignore=tests/test_ec2/test_route_tables.py"
"--ignore=tests/test_ec2/test_security_groups.py"
"--ignore=tests/test_ec2/test_spot_instances.py"
"--ignore=tests/test_ec2/test_subnets.py"
"--ignore=tests/test_ec2/test_tags.py"
"--ignore=tests/test_ec2/test_virtual_private_gateways.py"
"--ignore=tests/test_ec2/test_vm_export.py"
"--ignore=tests/test_ec2/test_vm_import.py"
"--ignore=tests/test_ec2/test_vpc_peering.py"
"--ignore=tests/test_ec2/test_vpcs.py"
"--ignore=tests/test_ec2/test_vpn_connections.py"
"--ignore=tests/test_ec2/test_vpn_connections.py"
"--ignore=tests/test_ec2/test_windows.py"
"--ignore=tests/test_ecs/test_ecs_boto3.py"
"--ignore=tests/test_elb/test_elb.py"
"--ignore=tests/test_elb/test_server.py"
"--ignore=tests/test_elbv2/test_elbv2.py"
"--ignore=tests/test_elbv2/test_server.py"
"--ignore=tests/test_emr/test_emr.py"
"--ignore=tests/test_emr/test_server.py"
"--ignore=tests/test_glacier/test_glacier_archives.py"
"--ignore=tests/test_glacier/test_glacier_jobs.py"
"--ignore=tests/test_glacier/test_glacier_vaults.py"
"--ignore=tests/test_iam/test_iam.py"
"--ignore=tests/test_iam/test_iam_cloudformation.py"
"--ignore=tests/test_iam/test_iam_groups.py"
"--ignore=tests/test_iam/test_server.py"
"--ignore=tests/test_iot/test_server.py"
"--ignore=tests/test_iotdata/test_server.py"
"--ignore=tests/test_kinesis/test_kinesis.py"
"--ignore=tests/test_kinesis/test_kinesis_cloudformation.py"
"--ignore=tests/test_kinesis/test_server.py"
"--ignore=tests/test_kinesisvideo/test_server.py"
"--ignore=tests/test_kinesisvideoarchivedmedia/test_server.py"
"--ignore=tests/test_kms/test_kms.py"
"--ignore=tests/test_kms/test_server.py"
"--ignore=tests/test_kms/test_utils.py"
"--ignore=tests/test_logs/test_logs.py"
"--ignore=tests/test_polly/test_server.py"
"--ignore=tests/test_rds/test_rds.py"
"--ignore=tests/test_rds/test_server.py"
"--ignore=tests/test_rds2/test_server.py"
"--ignore=tests/test_redshift/test_redshift.py"
"--ignore=tests/test_redshift/test_server.py"
"--ignore=tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py"
"--ignore=tests/test_route53/test_route53.py"
"--ignore=tests/test_s3/test_s3.py"
"--ignore=tests/test_s3/test_s3_cloudformation.py"
"--ignore=tests/test_s3/test_s3_lifecycle.py"
"--ignore=tests/test_s3/test_s3_storageclass.py"
"--ignore=tests/test_s3/test_s3_utils.py"
"--ignore=tests/test_s3bucket_path/test_s3bucket_path.py"
"--ignore=tests/test_s3bucket_path/test_s3bucket_path_combo.py"
"--ignore=tests/test_secretsmanager/test_server.py"
"--ignore=tests/test_ses/test_server.py"
"--ignore=tests/test_ses/test_ses.py"
"--ignore=tests/test_ses/test_ses_boto3.py"
"--ignore=tests/test_ses/test_ses_sns_boto3.py"
"--ignore=tests/test_sns/test_application.py"
"--ignore=tests/test_sns/test_application_boto3.py"
"--ignore=tests/test_sns/test_publishing.py"
"--ignore=tests/test_sns/test_publishing_boto3.py"
"--ignore=tests/test_sns/test_server.py"
"--ignore=tests/test_sns/test_subscriptions.py"
"--ignore=tests/test_sns/test_subscriptions_boto3.py"
"--ignore=tests/test_sns/test_topics.py"
"--ignore=tests/test_sns/test_topics_boto3.py"
"--ignore=tests/test_sqs/test_server.py"
"--ignore=tests/test_sqs/test_sqs.py"
"--ignore=tests/test_ssm/test_ssm_boto3.py"
"--ignore=tests/test_ssm/test_ssm_docs.py"
"--ignore=tests/test_sts/test_server.py"
"--ignore=tests/test_sts/test_sts.py"
"--ignore=tests/test_swf/models/test_activity_task.py"
"--ignore=tests/test_swf/models/test_decision_task.py"
"--ignore=tests/test_swf/models/test_timeout.py"
"--ignore=tests/test_swf/models/test_workflow_execution.py"
"--ignore=tests/test_swf/responses/test_activity_tasks.py"
"--ignore=tests/test_swf/responses/test_activity_types.py"
"--ignore=tests/test_swf/responses/test_decision_tasks.py"
"--ignore=tests/test_swf/responses/test_domains.py"
"--ignore=tests/test_swf/responses/test_timeouts.py"
"--ignore=tests/test_swf/responses/test_workflow_executions.py"
"--ignore=tests/test_swf/responses/test_workflow_types.py"
];
# Disabling because of 20 failing tests due to https://github.com/spulec/moto/issues/2728
# We should enable these as soon as possible again though. Note the issue
# is unrelated to the docutils 0.16 bump.
doCheck = false;
disabledTests = [
# these tests rely on the network
"test_server"
"test_managedblockchain_nodes"
"test_swf"
"test_simple_instance"
"test_passthrough_requests"
"test_s3_server_get"
"test_s3_server_bucket_create"
"test_s3_server_post_to_bucket"
"test_s3_server_put_ipv6"
"test_s3_server_put_ipv4"
"test_http_proxying_integration"
"test_submit_job_by_name"
"test_submit_job"
"test_list_jobs"
"test_terminate_job"
"test_idtoken_contains_kid_header"
"test_latest_meta_data"
"test_meta_data_iam"
"test_meta_data_security_credentials"
"test_meta_data_default_role"
"test_reset_api"
"test_data_api"
"test_requests_to_amazon_subdomains_dont_work"
"test_get_records_seq"
"test_stream_with_range_key"
"test_create_notebook_instance_bad_volume_size"
];
meta = with lib; {
description = "Allows your tests to easily mock out AWS Services";

View File

@ -6,7 +6,6 @@ let
stdenv = pkgs.stdenv;
rubyVersions = with pkgs; [
ruby_2_5
ruby_2_6
ruby_2_7
];

View File

@ -7,7 +7,6 @@
, withPerl530 ? false, perl530
, withPerl532 ? true, perl532
, withPerldevel ? false, perldevel
, withRuby_2_5 ? false, ruby_2_5
, withRuby_2_6 ? true, ruby_2_6
, withRuby_2_7 ? false, ruby_2_7
, withSSL ? true, openssl ? null
@ -51,7 +50,6 @@ in stdenv.mkDerivation rec {
++ optional withPerl530 perl530
++ optional withPerl532 perl532
++ optional withPerldevel perldevel
++ optional withRuby_2_5 ruby_2_5
++ optional withRuby_2_6 ruby_2_6
++ optional withRuby_2_7 ruby_2_7
++ optional withSSL openssl;
@ -77,7 +75,6 @@ in stdenv.mkDerivation rec {
${optionalString withPerl530 "./configure perl --module=perl530 --perl=${perl530}/bin/perl"}
${optionalString withPerl532 "./configure perl --module=perl532 --perl=${perl532}/bin/perl"}
${optionalString withPerldevel "./configure perl --module=perldev --perl=${perldevel}/bin/perl"}
${optionalString withRuby_2_5 "./configure ruby --module=ruby25 --ruby=${ruby_2_5}/bin/ruby"}
${optionalString withRuby_2_6 "./configure ruby --module=ruby26 --ruby=${ruby_2_6}/bin/ruby"}
${optionalString withRuby_2_7 "./configure ruby --module=ruby27 --ruby=${ruby_2_7}/bin/ruby"}
'';

View File

@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
doCheck = !stdenv.isDarwin;
enableParallelBuilding = true;
meta = with lib; {
description = "An IRCd for unified networks";
homepage = "https://github.com/solanum-ircd/solanum";

View File

@ -576,6 +576,8 @@ mapAliases ({
ruby_2_4 = throw "ruby_2_4 was deprecated in 2019-12: use a newer version of ruby";
ruby_2_5_0 = throw "ruby_2_5_0 was deprecated on 2018-02-13: use a newer version of ruby";
rubyPackages_2_4 = throw "rubyPackages_2_4 was deprecated in 2019-12: use a newer version of rubyPackages instead";
ruby_2_5 = throw "ruby_2_5 was deprecated in 2021-02: use a newer version of ruby";
rubyPackages_2_5 = throw "rubyPackages_2_5 was deprecated in 2021-02: use a newer version of rubyPackages instead";
rubygems = throw "rubygems was deprecated on 2016-03-02: rubygems is now bundled with ruby";
rubyMinimal = throw "rubyMinimal was removed due to being unused";
rxvt_unicode-with-plugins = rxvt-unicode; # added 2020-02-02

View File

@ -6757,6 +6757,8 @@ in
opendylan-bootstrap = opendylan_bin;
};
ophis = python3Packages.callPackage ../development/compilers/ophis { };
opendylan_bin = callPackage ../development/compilers/opendylan/bin.nix { };
open-ecard = callPackage ../tools/security/open-ecard { };
@ -7457,8 +7459,7 @@ in
redir = callPackage ../tools/networking/redir { };
# failed to build websocket-driver gem with ruby 2.6, so sticking to 2.5 for now
redmine = callPackage ../applications/version-management/redmine { ruby = pkgs.ruby_2_5; };
redmine = callPackage ../applications/version-management/redmine { };
redsocks = callPackage ../tools/networking/redsocks { };
@ -8029,7 +8030,9 @@ in
solaar = callPackage ../applications/misc/solaar {};
solanum = callPackage ../servers/irc/solanum {};
solanum = callPackage ../servers/irc/solanum {
autoreconfHook = buildPackages.autoreconfHook269;
};
sourceHighlight = callPackage ../tools/text/source-highlight { };
@ -10145,21 +10148,21 @@ in
go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
inherit (darwin.apple_sdk.frameworks) Security Foundation;
} // lib.optionalAttrs stdenv.isAarch64 {
} // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
stdenv = gcc8Stdenv;
buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
});
go_1_15 = callPackage ../development/compilers/go/1.15.nix ({
inherit (darwin.apple_sdk.frameworks) Security Foundation;
} // lib.optionalAttrs stdenv.isAarch64 {
} // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
stdenv = gcc8Stdenv;
buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
});
go_2-dev = callPackage ../development/compilers/go/2-dev.nix ({
inherit (darwin.apple_sdk.frameworks) Security Foundation;
} // lib.optionalAttrs stdenv.isAarch64 {
} // lib.optionalAttrs (stdenv.cc.isGNU && stdenv.isAarch64) {
stdenv = gcc8Stdenv;
buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
});
@ -11489,14 +11492,12 @@ in
autoreconfHook = buildPackages.autoreconfHook269;
bison = buildPackages.bison_3_5;
})
ruby_2_5
ruby_2_6
ruby_2_7;
ruby = ruby_2_6;
rubyPackages = rubyPackages_2_6;
rubyPackages_2_5 = recurseIntoAttrs ruby_2_5.gems;
rubyPackages_2_6 = recurseIntoAttrs ruby_2_6.gems;
rubyPackages_2_7 = recurseIntoAttrs ruby_2_7.gems;