fork
Configure Feed
Select the types of activity you want to include in your feed.
lol
fork
Configure Feed
Select the types of activity you want to include in your feed.
1{ stdenv, fetchurl, dpkg, curl, libarchive, openssl, ruby, buildRubyGem, libiconv
2, libxml2, libxslt }:
3
4assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
5
6let
7 version = "1.7.4";
8 rake = buildRubyGem {
9 inherit ruby;
10 name = "rake-10.3.2";
11 sha256 = "0nvpkjrpsk8xxnij2wd1cdn6arja9q11sxx4aq4fz18bc6fss15m";
12 };
13
14in
15stdenv.mkDerivation rec {
16 name = "vagrant-${version}";
17
18 src =
19 if stdenv.system == "x86_64-linux" then
20 fetchurl {
21 url = "https://dl.bintray.com/mitchellh/vagrant/vagrant_${version}_x86_64.deb";
22 sha256 = "0dl3cskpz7d8mmv0ah86426vlx0lj1wkjdlb5gc868dfsysw5lnw";
23 }
24 else
25 fetchurl {
26 url = "https://dl.bintray.com/mitchellh/vagrant/vagrant_${version}_i686.deb";
27 sha256 = "0sns9q48c6b2sabp6bwkppx8ffp774jhv69jrv225qrnifx12105";
28 };
29
30 meta = with stdenv.lib; {
31 description = "A tool for building complete development environments";
32 homepage = http://vagrantup.com;
33 license = licenses.mit;
34 maintainers = with maintainers; [ lovek323 globin jgeerds ];
35 platforms = platforms.linux;
36 };
37
38 unpackPhase = ''
39 ${dpkg}/bin/dpkg-deb -x ${src} .
40 '';
41
42 buildPhase = false;
43
44 installPhase = ''
45 sed -i "s|/opt|$out/opt|" usr/bin/vagrant
46
47 # overwrite embedded binaries
48
49 # curl: curl
50 rm opt/vagrant/embedded/bin/curl
51 ln -s ${curl}/bin/curl opt/vagrant/embedded/bin
52
53 # libarchive: bsdtar, bsdcpio
54 rm opt/vagrant/embedded/bin/{bsdtar,bsdcpio}
55 ln -s ${libarchive}/bin/bsdtar opt/vagrant/embedded/bin
56 ln -s ${libarchive}/bin/bsdcpio opt/vagrant/embedded/bin
57
58 # openssl: c_rehash, openssl
59 rm opt/vagrant/embedded/bin/{c_rehash,openssl}
60 ln -s ${openssl}/bin/c_rehash opt/vagrant/embedded/bin
61 ln -s ${openssl}/bin/openssl opt/vagrant/embedded/bin
62
63 # ruby: erb, gem, irb, rake, rdoc, ri, ruby, testrb
64 rm opt/vagrant/embedded/bin/{erb,gem,irb,rake,rdoc,ri,ruby,testrb}
65 ln -s ${ruby}/bin/erb opt/vagrant/embedded/bin
66 ln -s ${ruby}/bin/gem opt/vagrant/embedded/bin
67 ln -s ${ruby}/bin/irb opt/vagrant/embedded/bin
68 ln -s ${rake}/bin/rake opt/vagrant/embedded/bin
69 ln -s ${ruby}/bin/rdoc opt/vagrant/embedded/bin
70 ln -s ${ruby}/bin/ri opt/vagrant/embedded/bin
71 ln -s ${ruby}/bin/ruby opt/vagrant/embedded/bin
72 ln -s ${ruby}/bin/testrb opt/vagrant/embedded/bin
73
74 # libiconv: iconv
75 rm opt/vagrant/embedded/bin/iconv
76 ln -s ${libiconv}/bin/iconv opt/vagrant/embedded/bin
77
78 # libxml: xml2-config, xmlcatalog, xmllint
79 rm opt/vagrant/embedded/bin/{xml2-config,xmlcatalog,xmllint}
80 ln -s ${libxml2}/bin/xml2-config opt/vagrant/embedded/bin
81 ln -s ${libxml2}/bin/xmlcatalog opt/vagrant/embedded/bin
82 ln -s ${libxml2}/bin/xmllint opt/vagrant/embedded/bin
83
84 # libxslt: xslt-config, xsltproc
85 rm opt/vagrant/embedded/bin/{xslt-config,xsltproc}
86 ln -s ${libxslt}/bin/xslt-config opt/vagrant/embedded/bin
87 ln -s ${libxslt}/bin/xsltproc opt/vagrant/embedded/bin
88
89 mkdir -p "$out"
90 cp -r opt "$out"
91 cp -r usr/bin "$out"
92 '';
93
94 preFixup = ''
95 # 'hide' the template file from shebang-patching
96 chmod -x $out/opt/vagrant/embedded/gems/gems/bundler-1.10.5/lib/bundler/templates/Executable
97 chmod -x $out/opt/vagrant/embedded/gems/gems/vagrant-${version}/plugins/provisioners/salt/bootstrap-salt.sh
98 '';
99
100 postFixup = ''
101 chmod +x $out/opt/vagrant/embedded/gems/gems/bundler-1.10.5/lib/bundler/templates/Executable
102 chmod +x $out/opt/vagrant/embedded/gems/gems/vagrant-${version}/plugins/provisioners/salt/bootstrap-salt.sh
103 '';
104}