vagrant: Build from source

This is not quite as elegant as using `bundlerApp`,
which I could not get working.
However, this still uses most of the Ruby infrastructure,
including stock bundix, and should be fairly reasonable to maintain.

This means no more hacks to work around wrong embedded binaries,
and no need for an old version of Ruby.

Note that `vagrant share` is no longer included,
as that functionality is closed-source
and not present in the upstream source code.

The Vagrant maintainers publish official Vagrant installers,
which they prefer people use as most platforms don't
have great support for pinning known-good dependencies.
When run outside one of the offical installers,
Vagrant normally prints a warning to that effect.
However, Vagrant does run outside the installer environment
(nominally to support Vagrant development),
and this has the effect of functioning better by respecting
OS certs and shared libraries,
as opposed to trying to use bundled versions.
To keep these postive side effects without having to see the warning
on every Vagrant invocation, patch out the call to print the warning.

Note that I have reset the maintainers since the implementation is
totally redone; I'm happy to re-add any of the current maintainers.
gstqt5
Aneesh Agrawal 2017-10-29 23:21:07 -07:00
parent 0750c5aee4
commit 8c3553b88d
6 changed files with 667 additions and 131 deletions

View File

@ -0,0 +1,2 @@
source "https://rubygems.org"
gem 'vagrant'

View File

@ -0,0 +1,149 @@
GIT
remote: https://github.com/mitchellh/vagrant-spec.git
revision: 7ac8b4191de578e345b29acaf62ecc72c8e73be1
specs:
vagrant-spec (0.0.1)
childprocess (~> 0.6.0)
log4r (~> 1.1.9)
rspec (~> 3.5.0)
thor (~> 0.18.1)
PATH
remote: .
specs:
vagrant (2.0.1)
childprocess (~> 0.6.0)
erubis (~> 2.7.0)
hashicorp-checkpoint (~> 0.1.1)
i18n (>= 0.6.0, <= 0.8.0)
listen (~> 3.1.5)
log4r (~> 1.1.9, < 1.1.11)
net-scp (~> 1.2.0)
net-sftp (~> 2.1)
net-ssh (~> 4.1.0)
rb-kqueue (~> 0.2.0)
rest-client (>= 1.6.0, < 3.0)
ruby_dep (<= 1.3.1)
wdm (~> 0.1.0)
winrm (~> 2.1)
winrm-elevated (~> 1.1)
winrm-fs (~> 1.0)
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
builder (3.2.3)
childprocess (0.6.3)
ffi (~> 1.0, >= 1.0.11)
crack (0.4.3)
safe_yaml (~> 1.0.0)
diff-lcs (1.3)
domain_name (0.5.20170404)
unf (>= 0.0.5, < 1.0.0)
erubis (2.7.0)
fake_ftp (0.1.1)
ffi (1.9.18)
gssapi (1.2.0)
ffi (>= 1.0.1)
gyoku (1.3.1)
builder (>= 2.1.2)
hashdiff (0.3.7)
hashicorp-checkpoint (0.1.4)
http-cookie (1.0.3)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (0.8.0)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
little-plugger (1.1.4)
log4r (1.1.10)
logging (2.2.2)
little-plugger (~> 1.1)
multi_json (~> 1.10)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
multi_json (1.12.2)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
net-ssh (4.1.0)
netrc (0.11.0)
nori (2.6.0)
public_suffix (3.0.1)
rake (12.0.0)
rb-fsevent (0.10.2)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rb-kqueue (0.2.5)
ffi (>= 0.5.0)
rest-client (2.0.2)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rspec (3.5.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
rspec-mocks (~> 3.5.0)
rspec-core (3.5.4)
rspec-support (~> 3.5.0)
rspec-expectations (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-its (1.2.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-support (3.5.0)
ruby_dep (1.3.1)
rubyntlm (0.6.2)
rubyzip (1.2.1)
safe_yaml (1.0.4)
thor (0.18.1)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.4)
wdm (0.1.1)
webmock (2.3.2)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff
winrm (2.2.3)
builder (>= 2.1.2)
erubis (~> 2.7)
gssapi (~> 1.2)
gyoku (~> 1.0)
httpclient (~> 2.2, >= 2.2.0.2)
logging (>= 1.6.1, < 3.0)
nori (~> 2.0)
rubyntlm (~> 0.6.0, >= 0.6.1)
winrm-elevated (1.1.0)
winrm (~> 2.0)
winrm-fs (~> 1.0)
winrm-fs (1.1.1)
erubis (~> 2.7)
logging (>= 1.6.1, < 3.0)
rubyzip (~> 1.1)
winrm (~> 2.0)
PLATFORMS
ruby
DEPENDENCIES
fake_ftp (~> 0.1.1)
rake (~> 12.0.0)
rspec (~> 3.5.0)
rspec-its (~> 1.2.0)
vagrant!
vagrant-spec!
webmock (~> 2.3.1)
BUNDLED WITH
1.14.6

View File

@ -1,141 +1,55 @@
{ stdenv, fetchurl, fetchpatch, dpkg, curl, libarchive, openssl, rake, ruby, buildRubyGem, libiconv
, libxml2, libxslt, libffi, makeWrapper, p7zip, xar, gzip, cpio }:
{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby }:
let
version = "2.0.1";
url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
sha256 = "1fjfl00n4rsq6khypm56g0vq6l153q128r35zky2ba30bz292ar1";
url = if stdenv.isLinux
then "https://releases.hashicorp.com/vagrant/${version}/vagrant_${version}_${arch}.deb"
else if stdenv.isDarwin
then "https://releases.hashicorp.com/vagrant/${version}/vagrant_${version}_${arch}.dmg"
else "system ${stdenv.system} not supported";
deps = bundlerEnv rec {
name = "${pname}-${version}";
pname = "vagrant";
inherit version;
sha256 = {
"x86_64-linux" = "0kyqchjsy747vbvhqiynz81kik8g0xqpkv70rz7hyr9x7fl9i51g";
"i686-linux" = "0p3xhxy6shkd0393wjyj8qycdn3zqv60vnyz1b6zclz0kfah07zs";
"x86_64-darwin" = "01hr5j9k31hsdlcwv3srzk0lphd8w0n9z95jvfkschdyjm9clpwm";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
inherit ruby;
gemdir = ./.;
gemset = lib.recursiveUpdate (import ./gemset.nix) {
vagrant = {
source = {
type = "url";
inherit url sha256;
};
inherit version;
};
};
};
arch = builtins.replaceStrings ["-linux" "-darwin"] ["" ""] stdenv.system;
in stdenv.mkDerivation rec {
name = "vagrant-${version}";
in buildRubyGem rec {
name = "${gemName}-${version}";
gemName = "vagrant";
inherit version;
src = fetchurl {
inherit url sha256;
doCheck = true;
dontBuild = false;
src = fetchurl { inherit url sha256; };
patches = [
./unofficial-installation-nowarn.patch
];
postInstall = ''
wrapProgram "$out/bin/vagrant" \
--set GEM_PATH "${deps}/lib/ruby/gems/${ruby.version.libDir}"
'';
passthru = {
inherit ruby deps;
};
meta = with stdenv.lib; {
meta = with lib; {
description = "A tool for building complete development environments";
homepage = http://vagrantup.com;
license = licenses.mit;
maintainers = with maintainers; [ lovek323 globin jgeerds kamilchm ];
platforms = with platforms; linux ++ darwin;
homepage = https://www.vagrantup.com/;
license = licenses.mit;
maintainers = with maintainers; [ aneeshusa ];
platforms = with platforms; linux ++ darwin;
};
buildInputs = [ makeWrapper ]
++ stdenv.lib.optional stdenv.isDarwin [ p7zip xar gzip cpio ];
unpackPhase = if stdenv.isLinux
then ''
${dpkg}/bin/dpkg-deb -x "$src" .
''
else ''
7z x $src
cd Vagrant/
xar -xf Vagrant.pkg
cd core.pkg/
cat Payload | gzip -d - | cpio -id
# move unpacked directories to match unpacked .deb from linux,
# so installPhase can be shared
mkdir -p opt/vagrant/ usr/
mv embedded opt/vagrant/embedded
mv bin usr/bin
'';
buildPhase = "";
installPhase = ''
sed -i "s|/opt|$out/opt|" usr/bin/vagrant
# overwrite embedded binaries
# curl: curl, curl-config
rm opt/vagrant/embedded/bin/{curl,curl-config}
ln -s ${curl.bin}/bin/curl opt/vagrant/embedded/bin
ln -s ${curl.dev}/bin/curl-config opt/vagrant/embedded/bin
# libarchive: bsdtar, bsdcpio
rm opt/vagrant/embedded/lib/libarchive*
ln -s ${libarchive}/lib/libarchive.so opt/vagrant/embedded/lib/libarchive.so
rm opt/vagrant/embedded/bin/{bsdtar,bsdcpio}
ln -s ${libarchive}/bin/bsdtar opt/vagrant/embedded/bin
ln -s ${libarchive}/bin/bsdcpio opt/vagrant/embedded/bin
# openssl: c_rehash, openssl
rm opt/vagrant/embedded/bin/{c_rehash,openssl}
ln -s ${openssl.bin}/bin/c_rehash opt/vagrant/embedded/bin
ln -s ${openssl.bin}/bin/openssl opt/vagrant/embedded/bin
# libiconv: iconv
rm opt/vagrant/embedded/bin/iconv
ln -s ${libiconv}/bin/iconv opt/vagrant/embedded/bin
# libxml: xml2-config, xmlcatalog, xmllint
rm opt/vagrant/embedded/bin/{xml2-config,xmlcatalog,xmllint}
ln -s ${libxml2.dev}/bin/xml2-config opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmlcatalog opt/vagrant/embedded/bin
ln -s ${libxml2.bin}/bin/xmllint opt/vagrant/embedded/bin
# libxslt: xslt-config, xsltproc
rm opt/vagrant/embedded/bin/{xslt-config,xsltproc}
ln -s ${libxslt.dev}/bin/xslt-config opt/vagrant/embedded/bin
ln -s ${libxslt.bin}/bin/xsltproc opt/vagrant/embedded/bin
'' + (stdenv.lib.optionalString (! stdenv.isDarwin) ''
# ruby: erb, gem, irb, rake, rdoc, ri, ruby
rm opt/vagrant/embedded/bin/{erb,gem,irb,rake,rdoc,ri,ruby}
ln -s ${ruby}/bin/erb opt/vagrant/embedded/bin
ln -s ${ruby}/bin/gem opt/vagrant/embedded/bin
ln -s ${ruby}/bin/irb opt/vagrant/embedded/bin
ln -s ${rake}/bin/rake opt/vagrant/embedded/bin
ln -s ${ruby}/bin/rdoc opt/vagrant/embedded/bin
ln -s ${ruby}/bin/ri opt/vagrant/embedded/bin
ln -s ${ruby}/bin/ruby opt/vagrant/embedded/bin
# ruby libs
rm -rf opt/vagrant/embedded/lib/*
for lib in ${ruby}/lib/*; do
ln -s $lib opt/vagrant/embedded/lib/''${lib##*/}
done
# libffi
ln -s ${libffi}/lib/libffi.so.6 opt/vagrant/embedded/lib/libffi.so.6
'') + ''
mkdir -p "$out"
cp -r opt "$out"
cp -r usr/bin "$out"
wrapProgram "$out/bin/vagrant" --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxml2 libxslt ]}" \
--prefix LD_LIBRARY_PATH : "$out/opt/vagrant/embedded/lib"
install -D "opt/vagrant/embedded/gems/gems/vagrant-$version/contrib/bash/completion.sh" \
"$out/share/bash-completion/completions/vagrant"
'';
preFixup = ''
# 'hide' the template file from shebang-patching
chmod -x "$out/opt/vagrant/embedded/gems/gems/vagrant-$version/plugins/provisioners/salt/bootstrap-salt.sh"
'';
postFixup = ''
chmod +x "$out/opt/vagrant/embedded/gems/gems/vagrant-$version/plugins/provisioners/salt/bootstrap-salt.sh"
'' +
(stdenv.lib.optionalString stdenv.isDarwin ''
# undo the directory movement done in unpackPhase
mv $out/opt/vagrant/embedded $out/
rm -r $out/opt
'');
}

View File

@ -0,0 +1,457 @@
{
addressable = {
dependencies = ["public_suffix"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
type = "gem";
};
version = "2.5.2";
};
builder = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
type = "gem";
};
version = "3.2.3";
};
childprocess = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p3f43scdzx9zxmy2kw5zsc3az6v46nq4brwcxmnscjy4w4racbv";
type = "gem";
};
version = "0.6.3";
};
crack = {
dependencies = ["safe_yaml"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
type = "gem";
};
version = "0.4.3";
};
diff-lcs = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
type = "gem";
};
version = "1.3";
};
domain_name = {
dependencies = ["unf"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12hs8yijhak7p2hf1xkh98g0mnp5phq3mrrhywzaxpwz1gw5r3kf";
type = "gem";
};
version = "0.5.20170404";
};
erubis = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
type = "gem";
};
version = "2.7.0";
};
fake_ftp = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rn7lxdk3sqc2i4v2c5k25b9ca1qnkdf32nv04y760aml9mszwf7";
type = "gem";
};
version = "0.1.1";
};
ffi = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0";
type = "gem";
};
version = "1.9.18";
};
gssapi = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
type = "gem";
};
version = "1.2.0";
};
gyoku = {
dependencies = ["builder"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
type = "gem";
};
version = "1.3.1";
};
hashdiff = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
type = "gem";
};
version = "0.3.7";
};
hashicorp-checkpoint = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "15shgckjnxqpz1n9z6y4ax1dcnn5vdqcva29gdg2l7ny0g1w7c7m";
type = "gem";
};
version = "0.1.4";
};
http-cookie = {
dependencies = ["domain_name"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
type = "gem";
};
version = "1.0.3";
};
httpclient = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
type = "gem";
};
version = "2.8.3";
};
i18n = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "00nsll7q89ab6k43dl3apxjhy4zidlgjmgb9mpk42bj3wk5zdyzf";
type = "gem";
};
version = "0.8.0";
};
listen = {
dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
type = "gem";
};
version = "3.1.5";
};
little-plugger = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
type = "gem";
};
version = "1.1.4";
};
log4r = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv";
type = "gem";
};
version = "1.1.10";
};
logging = {
dependencies = ["little-plugger" "multi_json"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
type = "gem";
};
version = "2.2.2";
};
mime-types = {
dependencies = ["mime-types-data"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m";
type = "gem";
};
version = "3.1";
};
mime-types-data = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm";
type = "gem";
};
version = "3.2016.0521";
};
multi_json = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
type = "gem";
};
version = "1.12.2";
};
net-scp = {
dependencies = ["net-ssh"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
type = "gem";
};
version = "1.2.1";
};
net-sftp = {
dependencies = ["net-ssh"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
type = "gem";
};
version = "2.1.2";
};
net-ssh = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q";
type = "gem";
};
version = "4.1.0";
};
netrc = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
type = "gem";
};
version = "0.11.0";
};
nori = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn";
type = "gem";
};
version = "2.6.0";
};
public_suffix = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mvzd9ycjw8ydb9qy3daq3kdzqs2vpqvac4dqss6ckk4rfcjc637";
type = "gem";
};
version = "3.0.1";
};
rake = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
type = "gem";
};
version = "12.0.0";
};
rb-fsevent = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
type = "gem";
};
version = "0.10.2";
};
rb-inotify = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
type = "gem";
};
version = "0.9.10";
};
rb-kqueue = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14mhzrhs2j43vj36i1qq4z29nd860shrslfik015f4kf1jiaqcrw";
type = "gem";
};
version = "0.2.5";
};
rest-client = {
dependencies = ["http-cookie" "mime-types" "netrc"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
type = "gem";
};
version = "2.0.2";
};
rspec = {
dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16g3mmih999f0b6vcz2c3qsc7ks5zy4lj1rzjh8hf6wk531nvc6s";
type = "gem";
};
version = "3.5.0";
};
rspec-core = {
dependencies = ["rspec-support"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nacs062qbr98fx6czf1vwppn1js956nv2c8vfwj6i65axdfs46i";
type = "gem";
};
version = "3.5.4";
};
rspec-expectations = {
dependencies = ["diff-lcs" "rspec-support"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bbqfrb1x8gmwf8x2xhhwvvlhwbbafq4isbvlibxi6jk602f09gs";
type = "gem";
};
version = "3.5.0";
};
rspec-its = {
dependencies = ["rspec-core" "rspec-expectations"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3";
type = "gem";
};
version = "1.2.0";
};
rspec-mocks = {
dependencies = ["diff-lcs" "rspec-support"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nl3ksivh9wwrjjd47z5dggrwx40v6gpb3a0gzbp1gs06a5dmk24";
type = "gem";
};
version = "3.5.0";
};
rspec-support = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "10vf3k3d472y573mag2kzfsfrf6rv355s13kadnpryk8d36yq5r0";
type = "gem";
};
version = "3.5.0";
};
ruby_dep = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0v0qznxz999lx4vs76mr590r90i0cm5m76wwvgis7sq4y21l308l";
type = "gem";
};
version = "1.3.1";
};
rubyntlm = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
type = "gem";
};
version = "0.6.2";
};
rubyzip = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz";
type = "gem";
};
version = "1.2.1";
};
safe_yaml = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
type = "gem";
};
version = "1.0.4";
};
thor = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0d1g37j6sc7fkidf8rqlm3wh9zgyg3g7y8h2x1y34hmil5ywa8c3";
type = "gem";
};
version = "0.18.1";
};
unf = {
dependencies = ["unf_ext"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
type = "gem";
};
version = "0.1.4";
};
unf_ext = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "14hr2dzqh33kqc0xchs8l05pf3kjcayvad4z1ip5rdjxrkfk8glb";
type = "gem";
};
version = "0.0.7.4";
};
vagrant = {
dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "winrm" "winrm-elevated" "winrm-fs"];
};
vagrant-spec = {
dependencies = ["childprocess" "log4r" "rspec" "thor"];
source = {
fetchSubmodules = false;
rev = "7ac8b4191de578e345b29acaf62ecc72c8e73be1";
sha256 = "03bpxlliyiny062p8a8vxyb1hymxpgfwliky4vlqn7lbm6z7n6kr";
type = "git";
url = "https://github.com/mitchellh/vagrant-spec.git";
};
version = "0.0.1";
};
wdm = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x5l2pn4x92734k6i2wcjbn2klmwgkiqaajvxadh35k74dgnyh18";
type = "gem";
};
version = "0.1.1";
};
webmock = {
dependencies = ["addressable" "crack" "hashdiff"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5";
type = "gem";
};
version = "2.3.2";
};
winrm = {
dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "02lzbixdbjvhmb0byqx9rl9x4xx9pqc8jwm7y6mmp7w7mri72zh6";
type = "gem";
};
version = "2.2.3";
};
winrm-elevated = {
dependencies = ["winrm" "winrm-fs"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04krbwnj4cw7jy42w3n2y5kp2fbcp3v9mbf59pdhfk1py18bswcr";
type = "gem";
};
version = "1.1.0";
};
winrm-fs = {
dependencies = ["erubis" "logging" "rubyzip" "winrm"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vax34qbr3n6jifxyzr4nngaz8vrmzw6ydw21cnnrhidfkqgh7ja";
type = "gem";
};
version = "1.1.1";
};
}

View File

@ -0,0 +1,16 @@
diff --git i/bin/vagrant w/bin/vagrant
index 19df75033..682fae226 100755
--- i/bin/vagrant
+++ w/bin/vagrant
@@ -128,11 +128,6 @@ begin
end
end
- if !Vagrant.in_installer? && !Vagrant.very_quiet?
- # If we're not in the installer, warn.
- env.ui.warn(I18n.t("vagrant.general.not_in_installer") + "\n", prefix: false)
- end
-
begin
# Execute the CLI interface, and exit with the proper error code
exit_status = env.cli(argv)

View File

@ -7877,9 +7877,7 @@ with pkgs;
universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
vagrant = callPackage ../development/tools/vagrant {
ruby = ruby_2_4;
};
vagrant = callPackage ../development/tools/vagrant {};
bashdb = callPackage ../development/tools/misc/bashdb { };