summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdraklive13
1 files changed, 8 insertions, 5 deletions
diff --git a/draklive b/draklive
index d96f120..f088e80 100755
--- a/draklive
+++ b/draklive
@@ -779,12 +779,15 @@ sub create_loopback_files {
}
if (@excluded_files) {
- my $exclude_file = tmpnam();
- output_p($exclude_file, map { s|^/||; "$_\n"; } @excluded_files);
+ my $excluded_tree = get_system_root($live) . "/tmp/draklive/excluded/all";
+ eval { rm_rf($excluded_tree) };
+ hardlink_filtered(get_system_root($live), $excluded_tree, \@excluded_files);
+
mkdir_p(get_builddir($live) . $live->{prefix}{build}{tarballs});
- run_('tar', 'cj', '-C', get_system_root($live), '-T', $exclude_file,
- '-f', get_builddir($live) . $live->{prefix}{build}{tarballs} . "/excluded.tar.bz2");
- unlink $exclude_file;
+ run_('tar', 'cjf', get_builddir($live) . $live->{prefix}{build}{tarballs} . "/excluded.tar.bz2",
+ '-C', $excluded_tree, '.');
+
+ eval { rm_rf($excluded_tree) };
}
}