[Pkg-haskell-commits] [package-plan] 115/457: Run cabal in a sandboxed configuration directory

Joachim Breitner nomeata at moszumanska.debian.org
Mon Apr 14 20:05:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch master
in repository package-plan.

commit b0831122cd3121a6796eafabe99f063d33584fdb
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Fri Jun 14 21:41:46 2013 +0000

    Run cabal in a sandboxed configuration directory
---
 test-packages.pl | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/test-packages.pl b/test-packages.pl
index e579287..62f544e 100644
--- a/test-packages.pl
+++ b/test-packages.pl
@@ -4,6 +4,8 @@ use strict;
 use warnings;
 
 use Dpkg::Version;
+use Cwd;
+use File::Copy;
 
 my %packages;
 my %versions;
@@ -59,6 +61,27 @@ for my $pkg (sort keys %packages) {
  	}
 }
 
+print "Creating local hackage \"repository\"...\n";
+system("rm -rf cabal-sandbox");
+my $sandboxdir = cwd() . "/cabal-sandbox";
+mkdir "$sandboxdir" or die $!;
+mkdir "$sandboxdir/packages" or die $!;
+mkdir "$sandboxdir/packages/debian" or die $!;
+open CABALCONFIG, ">", "cabal-sandbox/config" or die $!;
+print CABALCONFIG <<__END__;
+remote-repo: debian:http://does-not-exist.example/packages/archive
+remote-repo-cache: $sandboxdir/packages
+world-file: $sandboxdir/world
+install-dirs user
+  prefix: /does-not-exist
+
+install-dirs global
+  prefix: /does-not-exist
+__END__
+close CABALCONFIG or die $!;
+copy($ENV{HOME}."/.cabal/packages/hackage.haskell.org/00-index.tar", "$sandboxdir/packages/debian/00-index.tar") or die $!;
+
+
 print "Creating all-packages.cabal...\n";
 unlink "all-packages.cabal";
 open CABAL, ">", "all-packages.cabal" or die $!;
@@ -83,7 +106,7 @@ for my $pkg (sort keys %versions) {
 close CABAL;
 chmod 0444, "all-packages.cabal";
 
-my @params = ("cabal", "install", "--dry-run", "--force-reinstall", "--enable-tests");
+my @params = ("cabal", "--config-file", "$sandboxdir/config", "install", "--dry-run", "--force-reinstall", "--enable-tests");
 
 for my $pkg (sort keys %versions) {
 	next if (exists $comments{$pkg});

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/package-plan.git



More information about the Pkg-haskell-commits mailing list