summaryrefslogtreecommitdiff
path: root/release-process/scripts/mk_exim_release
diff options
context:
space:
mode:
Diffstat (limited to 'release-process/scripts/mk_exim_release')
-rwxr-xr-xrelease-process/scripts/mk_exim_release34
1 files changed, 23 insertions, 11 deletions
diff --git a/release-process/scripts/mk_exim_release b/release-process/scripts/mk_exim_release
index f6cd33c7e..34fe77c67 100755
--- a/release-process/scripts/mk_exim_release
+++ b/release-process/scripts/mk_exim_release
@@ -361,21 +361,25 @@ sub create_tar_files {
}
}
+ # See also environment variables set in main, tuning compression levels
+ my @COMPRESSIONS = (
+ # compressors-dict-key, file-extension, flags-as-string
+ [ "gzip", "gz", "--gzip" ],
+ [ "bzip2", "bz2", "--bzip2" ],
+ [ "lzip", "lz", "--lzip" ],
+ [ "xz", "xz", "--xz" ],
+ );
+
foreach my $dir ( glob( File::Spec->catdir( $pkgdirs, ( 'exim*-' . $context->{release} ) ) ) ) {
my $dirname = ( File::Spec->splitdir($dir) )[-1];
- if ($context->{compressors}{gzip}) {
- print "Creating: ${pkgs}/${dirname}.tar.gz\n" if ($verbose || $debug);
- system("$tar cf ${pkgs}/${dirname}.tar.gz --gzip -C ${pkgdirs} ${dirname}")
- }
- if ($context->{compressors}{bzip2}) {
- print "Creating: ${pkgs}/${dirname}.tar.bz2\n" if ($verbose || $debug);
- system("$tar cf ${pkgs}/${dirname}.tar.bz2 --bzip2 -C ${pkgdirs} ${dirname}")
- }
- if ($context->{compressors}{lzip}) {
- print "Creating: ${pkgs}/${dirname}.tar.lz\n" if ($verbose || $debug);
- system("$tar cf ${pkgs}/${dirname}.tar.lz --lzip -C ${pkgdirs} ${dirname}")
+ foreach my $comp (@COMPRESSIONS) {
+ my ($compkey, $extension, $flags) = @{$comp};
+ next unless $context->{compressors}{$compkey};
+ print "Creating: ${pkgs}/${dirname}.tar.${extension}\n" if ($verbose || $debug);
+ system("$tar cf ${pkgs}/${dirname}.tar.${extension} ${flags} --numeric-owner -C ${pkgdirs} ${dirname}");
}
}
+
}
# ------------------------------------------------------------------
@@ -394,6 +398,7 @@ MAIN: {
compressors => {
gzip => 1,
bzip2 => 1,
+ xz => 1,
lzip => 0,
},
build_docs => 1,
@@ -402,6 +407,13 @@ MAIN: {
my $delete;
my $cleanup = 1;
##$ENV{'PATH'} = '/opt/local/bin:' . $ENV{'PATH'};
+ # We are creating files for mass distribution, so work harder to make smaller files.
+ $ENV{'GZIP'} = '-9';
+ $ENV{'BZIP2'} = '-9';
+ # xz documents minimum file sizes for levels higher than -6 to be useful and each
+ # requires more RAM on the decompressing system. Exim tarball currently 24MiB so
+ # using -8.
+ $ENV{'XZ_DEFAULTS'} = '-8';
GetOptions(
'directory=s' => \$context->{directory},