diff options
author | Eelco Dolstra | 2012-07-25 15:35:51 -0400 |
---|---|---|
committer | Eelco Dolstra | 2012-07-25 23:18:39 -0400 |
commit | 403e59420710d8221a3d3ce47be1d15b4d9dcb3d (patch) | |
tree | 6cbe527261571089323b25f890c782d3a300dfcf /pkgs/tools/virtualization/ec2-ami-tools | |
parent | b0552eb9ca9b3b3097087271a8b60f8e49ae72b1 (diff) |
ec2-ami-tools: Update to 1.6.0.0
Diffstat (limited to 'pkgs/tools/virtualization/ec2-ami-tools')
-rw-r--r-- | pkgs/tools/virtualization/ec2-ami-tools/default.nix | 42 | ||||
-rw-r--r-- | pkgs/tools/virtualization/ec2-ami-tools/writable.patch | 23 |
2 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix new file mode 100644 index 000000000000..1420ab5eeeb0 --- /dev/null +++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, unzip, ruby, openssl, makeWrapper }: + +stdenv.mkDerivation rec { + name = "ec2-ami-tools-1.4.0.7"; + + buildInputs = [ unzip makeWrapper ]; + + src = fetchurl { + url = "http://nixos.org/tarballs/${name}.zip"; + sha256 = "0l8c623i1w30bh9k622cdjj5f57rlfc1zs0i01ya016ijyr08qip"; + }; + + # Amazon EC2 requires that disk images are writable. If they're + # not, the VM immediately terminates with a mysterious + # "Server.InternalError" message. Since disk images generated in + # the Nix store are read-only, they must be made writable in the + # tarball uploaded to Amazon S3. So add a `--mode=0755' flag to the + # tar invocation. + patches = [ ./writable.patch ]; + + installPhase = + '' + mkdir -p $out + mv * $out + rm $out/*.txt + + for i in $out/bin/*; do + wrapProgram $i \ + --set EC2_HOME $out \ + --prefix PATH : ${ruby}/bin:${openssl}/bin + done + + sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/ec2/platform/base/pipeline.rb + ''; # */ + + meta = { + homepage = http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88; + description = "Command-line tools to create and manage Amazon EC2 virtual machine images"; + license = "unfree-redistributable"; + }; + +} diff --git a/pkgs/tools/virtualization/ec2-ami-tools/writable.patch b/pkgs/tools/virtualization/ec2-ami-tools/writable.patch new file mode 100644 index 000000000000..54c2228911eb --- /dev/null +++ b/pkgs/tools/virtualization/ec2-ami-tools/writable.patch @@ -0,0 +1,23 @@ +diff -ru ec2-ami-tools-1.4.0.5-orig/lib/ec2/amitools/bundle.rb ec2-ami-tools-1.4.0.5/lib/ec2/amitools/bundle.rb +--- ec2-ami-tools-1.4.0.5-orig/lib/ec2/amitools/bundle.rb 2011-12-06 14:57:28.000000000 +0100 ++++ ec2-ami-tools-1.4.0.5/lib/ec2/amitools/bundle.rb 2012-02-25 21:24:57.682427268 +0100 +@@ -80,7 +80,7 @@ + # piped via several processes. The tee is used to allow a + # digest of the file to be calculated without having to re-read + # it from disk. +- tar = EC2::Platform::Current::Tar::Command.new.create.dereference.sparse ++ tar = EC2::Platform::Current::Tar::Command.new.create.dereference.sparse.writable + tar.owner(0).group(0) + tar.add(File::basename( image_file ), File::dirname( image_file )) + openssl = EC2::Platform::Current::Constants::Utility::OPENSSL +diff -ru ec2-ami-tools-1.4.0.5-orig/lib/ec2/platform/linux/tar.rb ec2-ami-tools-1.4.0.5/lib/ec2/platform/linux/tar.rb +--- ec2-ami-tools-1.4.0.5-orig/lib/ec2/platform/linux/tar.rb 2011-12-06 14:57:28.000000000 +0100 ++++ ec2-ami-tools-1.4.0.5/lib/ec2/platform/linux/tar.rb 2012-02-25 21:23:36.342716403 +0100 +@@ -31,6 +31,7 @@ + def update; @options << '-u'; self; end + def sparse; @options << '-S'; self; end + def dereference; @options << '-h'; self; end ++ def writable; @options << '--mode=0755'; self; end + + def archive(filename) + filename = '-' if filename.nil? |