Compare commits
42 Commits
debian-len
...
4.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
846266eedb | ||
|
|
b5175f6f3b | ||
|
|
7a01a08aa4 | ||
|
|
57e6d5d480 | ||
|
|
cfd615b62d | ||
|
|
81656a9ef5 | ||
|
|
f4103617e6 | ||
|
|
ce626e3e9f | ||
|
|
3e44a19a66 | ||
|
|
a9aea889d8 | ||
|
|
f55461b1bc | ||
|
|
89e9a54b06 | ||
|
|
e808f3989a | ||
|
|
d8561d4b7d | ||
|
|
f2e97be786 | ||
|
|
359a6c13f0 | ||
|
|
4c7e7d8134 | ||
|
|
e1ff891a24 | ||
|
|
09179f2dea | ||
|
|
0d1bc0e61c | ||
|
|
1725e269cf | ||
|
|
858b47dc2a | ||
|
|
e9f968c322 | ||
|
|
9921c9a3e8 | ||
|
|
be09f2fbf2 | ||
|
|
85d8a3b338 | ||
|
|
8206a3c4be | ||
|
|
7dd416a57a | ||
|
|
31ce92ed7a | ||
|
|
f993b86060 | ||
|
|
d61d55baef | ||
|
|
870ec1adac | ||
|
|
8bd3206eff | ||
|
|
5bace3a7e2 | ||
|
|
cf9b356e6d | ||
|
|
423ea8157d | ||
|
|
0ba1ec6f55 | ||
|
|
bfc8051b10 | ||
|
|
c2b16e9a50 | ||
|
|
754e1c7c0c | ||
|
|
47bdce47d4 | ||
|
|
7584bac380 |
6
AUTHORS
6
AUTHORS
@@ -33,6 +33,9 @@ Contributions
|
||||
Stefan Fritsch <sf [at] de.sfritsch>
|
||||
- Contributed the policy-rc.d fixups for common.sh
|
||||
|
||||
Raphaël Halimi <raphael.halimi [at] com.gmail>
|
||||
- Contribute bashism fix
|
||||
|
||||
Sven Hertge <sven [at] de.svenhartge>
|
||||
- Bugfix for Debian/Gentoo package installation.
|
||||
|
||||
@@ -62,6 +65,9 @@ Contributions
|
||||
Nathan O'Sullivan <nathan [at] au.com.mammoth>
|
||||
- New features wrt. options and helper functions
|
||||
|
||||
Guillaume Pernot <gpernot [at] org.praksys>
|
||||
- Fixed Sarge amd64 special case
|
||||
|
||||
Walter Reiner <walter [at] at.wreiner>
|
||||
- Provided --image-dev + --swap-dev patch.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
KNOWN BUGS in xen-tools
|
||||
|
||||
Bugs to fix before a 4.2 release
|
||||
Bugs to fix before a 4.3 release
|
||||
--------------------------------
|
||||
|
||||
* xen-delete-image doesn't remove all logical volumes if --partitions is used.
|
||||
@@ -11,3 +11,5 @@ Bugs to fix before a 4.2 release
|
||||
http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html
|
||||
|
||||
* xen-delete-image ignores extension setting
|
||||
|
||||
* xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside
|
||||
|
||||
5
Makefile
5
Makefile
@@ -14,7 +14,7 @@
|
||||
#
|
||||
TMP ?= /tmp
|
||||
DIST_PREFIX = ${TMP}
|
||||
VERSION = 4.2
|
||||
VERSION = 4.2.1+dev
|
||||
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
|
||||
BASE = xen-tools
|
||||
VCS = $(shell if git ls-files > /dev/null; then echo git; \
|
||||
@@ -188,6 +188,9 @@ install-hooks:
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d lucid.d
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d maverick.d
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d natty.d
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d oneiric.d
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d precise.d
|
||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d quantal.d
|
||||
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
|
||||
|
||||
|
||||
|
||||
9
README
9
README
@@ -29,7 +29,7 @@ About:
|
||||
* Etch 4.0
|
||||
* Lenny 5.0
|
||||
* Squeeze 6.0
|
||||
* Wheezy 7.0 (preliminary support as it's not yet available)
|
||||
* Wheezy 7.0
|
||||
* Sid (works at least at the moment of writing :-)
|
||||
|
||||
Ubuntu:
|
||||
@@ -42,8 +42,11 @@ About:
|
||||
* Jaunty Jackaplope 9.04
|
||||
* Karmic Koala 9.10
|
||||
* Lucid Lynx 10.04
|
||||
* Maverick Meerkat 10.10 (works at least at the moment of writing :-)
|
||||
* Natty Narwhal 11.04 (preliminary support as it's not yet available)
|
||||
* Maverick Meerkat 10.10
|
||||
* Natty Narwhal 11.04
|
||||
* Oneiric Ocelot 11.10
|
||||
* Precise Pangolin 12.04
|
||||
* Quantal Quetzal 12.10 (preliminary support as it's not yet available)
|
||||
|
||||
[1] There is an issue with debootstrap on hardy not installing ksyslogd
|
||||
This can be fixed by chrooting into the newly installed system
|
||||
|
||||
13
TODO
13
TODO
@@ -28,6 +28,19 @@ Bugs to fix and features to add for 5.0
|
||||
are examples, and shouldn't cover every single scenario. They
|
||||
are also easy to write.
|
||||
|
||||
* Think again about disk_device checks :
|
||||
|
||||
Newer Xen provides "xvda", older provided "sda". The current check for
|
||||
valid values of disk_device (used for root device in domU /etc/fstab)
|
||||
does only allow those values.
|
||||
This forbids any deployment of LVM/RAID _inside_ domU, which cannot
|
||||
be created by xen-tools anyway. So the current check is fine with the
|
||||
current possibilities of xen-tools, but could become a limitation.
|
||||
- Is it possible/wanted to "query" xend for default device names ?
|
||||
- Is it possible to create /dev/mapper devices with xend conf ?
|
||||
- Can we just avoid to ask for this value and not specify the device
|
||||
in /etc/fstab (and use /dev/root, /dev/by-uuid, or anything ?)
|
||||
|
||||
* xen-create-image --dist=... / sources.list generation should be more fine-grained
|
||||
|
||||
xen-tools should offer the possibility to enable/disable
|
||||
|
||||
@@ -806,7 +806,7 @@ my $FAIL = 0;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
#
|
||||
@@ -1251,7 +1251,7 @@ sub testXenConfig
|
||||
# Read the configuration file.
|
||||
#
|
||||
open( CONFIG, "<", "/etc/xen/xend-config.sxp" ) or
|
||||
die "Failed to read /etc/xen/xend-config.sxp: $!";
|
||||
fail("Failed to read /etc/xen/xend-config.sxp: $!");
|
||||
while (<CONFIG>)
|
||||
{
|
||||
next if ( !$_ || !length($_) );
|
||||
@@ -1351,17 +1351,17 @@ sub setupDefaultOptions
|
||||
$CONFIG{ 'mirror' } = '';
|
||||
|
||||
# Initialize per distribution mirror defaults: Debian
|
||||
foreach my $debdist (qw(lenny squeeze wheezy sid testing stable unstable)) {
|
||||
foreach my $debdist (qw(squeeze wheezy sid testing oldstable stable unstable)) {
|
||||
$CONFIG{ 'mirror_'.$debdist } = $CONFIG{ 'mirror' }
|
||||
}
|
||||
foreach my $debdist (qw(sarge etch)) {
|
||||
foreach my $debdist (qw(sarge etch lenny)) {
|
||||
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian';
|
||||
}
|
||||
# Initialize per distribution mirror defaults: Ubuntu
|
||||
foreach my $ubuntudist (qw(dapper hardy jaunty karmic lucid maverick natty)) {
|
||||
foreach my $ubuntudist (qw(dapper hardy lucid natty oneiric precise quantal)) {
|
||||
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
|
||||
}
|
||||
foreach my $ubuntudist (qw(edgy feisty gutsy intrepid)) {
|
||||
foreach my $ubuntudist (qw(edgy feisty gutsy intrepid jaunty karmic maverick)) {
|
||||
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
|
||||
}
|
||||
$CONFIG{ 'arch' } = '';
|
||||
@@ -1451,7 +1451,7 @@ sub readConfigurationFile
|
||||
|
||||
my $line = "";
|
||||
|
||||
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
|
||||
open( FILE, "<", $file ) or fail("Cannot read file '$file' - $!");
|
||||
|
||||
while ( defined( $line = <FILE> ) )
|
||||
{
|
||||
@@ -1550,16 +1550,20 @@ sub checkOption
|
||||
},
|
||||
serialDev => {
|
||||
check => qr/^(?:\/dev\/)?(?:tty|[xh]vc)[0-9]+$/,
|
||||
message => "must be a serial device (tty*, hvc* or xvc*).\n",
|
||||
message => "must be a serial device (tty[0-9]+, hvc[0-9]+ or xvc[0-9]+).\n",
|
||||
},
|
||||
diskDev => {
|
||||
check => qr/^(?:\/dev\/)?(?:tty|hvc)[0-9]+$/,
|
||||
message => "must be a disk device (tty*, hvc*).\n",
|
||||
check => qr/^(?:\/dev\/)?(?:xvd|sd)[a-z]+$/,
|
||||
message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n",
|
||||
},
|
||||
ipv4 => {
|
||||
check => qr/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
|
||||
message => "must be valid IPv4.\n",
|
||||
},
|
||||
ipv4_or_auto => {
|
||||
check => qr/^(?:auto|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/,
|
||||
message => "must be valid IPv4 or the keyword 'auto'.\n",
|
||||
},
|
||||
hostname => {
|
||||
check => qr/^[a-z0-9][a-z0-9.-]{0,254}$/i,
|
||||
message => "must be a valid hostname.\n",
|
||||
@@ -1624,7 +1628,7 @@ sub checkOption
|
||||
output => 'existingDir',
|
||||
extension => 'filename',
|
||||
mac => 'mac',
|
||||
ip => 'ipv4',
|
||||
ip => 'ipv4_or_auto',
|
||||
hash_method => 'hashMethod',
|
||||
);
|
||||
|
||||
@@ -1636,7 +1640,7 @@ sub checkOption
|
||||
my $type = $optionsTypes{ $option };
|
||||
|
||||
# First, check if type exists
|
||||
die unless exists $types{ $type };
|
||||
fail("Type $type does not exist") unless exists $types{ $type };
|
||||
my $check = $types{ $type }{ 'check' };
|
||||
|
||||
if (
|
||||
@@ -1644,10 +1648,15 @@ sub checkOption
|
||||
(ref $check eq 'CODE' and &$check( $value ) )
|
||||
) {
|
||||
# Option did validate, copy it
|
||||
$CONFIG{ $option } = $value;
|
||||
if ( $option eq "ip" )
|
||||
{
|
||||
push @{ $CONFIG{ $option } }, $value;
|
||||
} else {
|
||||
$CONFIG{ $option } = $value;
|
||||
}
|
||||
} else {
|
||||
# Option did _not_ validate
|
||||
die "ERROR: '$option' argument " . $types{ $type }{ 'message' };
|
||||
fail("ERROR: '$option' argument " . $types{ $type }{ 'message' });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1909,7 +1918,7 @@ sub checkArguments
|
||||
#
|
||||
# Lucid and probably all later Ubuntus, too, don't work without pygrub
|
||||
#
|
||||
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty/ )
|
||||
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal/ )
|
||||
{
|
||||
$CONFIG{ 'pygrub' } = 1;
|
||||
}
|
||||
@@ -1918,9 +1927,10 @@ sub checkArguments
|
||||
# Sarge amd64 needs different default mirror
|
||||
#
|
||||
if ( $CONFIG{ 'dist' } =~ /sarge/ and
|
||||
$CONFIG{ 'arch' } =~ /amd64/ and
|
||||
$CONFIG{ 'mirror_sarge' } eq 'http://archive.debian.org/debian' )
|
||||
{
|
||||
$CONFIG{ 'mirror_sarge' } = 'http://amd64.debian.net/debian';
|
||||
$CONFIG{ 'mirror_sarge' } = 'http://archive.debian.org/debian-amd64';
|
||||
}
|
||||
|
||||
#
|
||||
@@ -2930,7 +2940,7 @@ sub createLoopbackImages
|
||||
eval {mkpath( $output, 0, 0755 );};
|
||||
if ($@)
|
||||
{
|
||||
die "Cannot create directory tree $output - $@";
|
||||
fail("Cannot create directory tree $output - $@");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3727,12 +3737,6 @@ sub runCustomisationHooks
|
||||
} else {
|
||||
unlink "$MOUNT_POINT/etc/resolv.conf";
|
||||
}
|
||||
|
||||
#
|
||||
# Unmount /proc and /dev/pts in the guest install.
|
||||
#
|
||||
runCommand("umount $MOUNT_POINT/proc");
|
||||
runCommand("umount $MOUNT_POINT/dev/pts");
|
||||
}
|
||||
|
||||
|
||||
@@ -3755,7 +3759,7 @@ sub findIP
|
||||
# Open and read the file.
|
||||
#
|
||||
open( RANGE, "<", $CONFIG{ 'ipfile' } ) or
|
||||
die "Failed to read $CONFIG{'ipfile'} - $!";
|
||||
fail("Failed to read $CONFIG{'ipfile'} - $!");
|
||||
my @lines = <RANGE>;
|
||||
my @updated;
|
||||
close(RANGE);
|
||||
@@ -3786,7 +3790,7 @@ sub findIP
|
||||
# Now write out the new entries.
|
||||
#
|
||||
open( RANGE, ">", $CONFIG{ 'ipfile' } ) or
|
||||
die "Failed to write to $CONFIG{'ipfile'} - $!";
|
||||
fail("Failed to write to $CONFIG{'ipfile'} - $!");
|
||||
print RANGE join( "\n", @updated );
|
||||
close(RANGE);
|
||||
|
||||
@@ -3985,6 +3989,12 @@ sub runXenConfigCreation
|
||||
$command .= " --admins=$CONFIG{'admins'}";
|
||||
}
|
||||
|
||||
#
|
||||
# Make sure the template gets a list of all IPs
|
||||
#
|
||||
$ENV{ 'ips' } = $IP_ADDRESSES;
|
||||
|
||||
|
||||
logprint("\nCreating Xen configuration file\n");
|
||||
runCommand($command);
|
||||
logprint("Done\n");
|
||||
@@ -4053,7 +4063,7 @@ sub setupRootPassword
|
||||
}
|
||||
else
|
||||
{
|
||||
die "oops... unknown hashing method, should not happen!";
|
||||
fail("oops... unknown hashing method, should not happen!");
|
||||
}
|
||||
|
||||
my $hash = crypt($PASSWORD, $hash_method . $salt);
|
||||
@@ -4064,8 +4074,8 @@ sub setupRootPassword
|
||||
#
|
||||
my $tmp_shadow_path = "$shadow_path.tmp";
|
||||
cp("$shadow_path","$tmp_shadow_path");
|
||||
open(TMP, "<", $tmp_shadow_path) or die $!;
|
||||
open(SHADOW, ">", $shadow_path) or die $!;
|
||||
open(TMP, "<", $tmp_shadow_path) or fail($!);
|
||||
open(SHADOW, ">", $shadow_path) or fail($!);
|
||||
my $line;
|
||||
while(defined($line = <TMP>))
|
||||
{
|
||||
@@ -4106,6 +4116,23 @@ sub generatePassword {
|
||||
}
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
Properly set $FAIL on die
|
||||
|
||||
=end doc
|
||||
|
||||
=cut
|
||||
|
||||
sub fail
|
||||
{
|
||||
logprint(@_);
|
||||
$FAIL = 1;
|
||||
exit 127;
|
||||
}
|
||||
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
Print the given string to the logfile.
|
||||
@@ -4261,6 +4288,12 @@ sub unMountImage
|
||||
{
|
||||
my ($point) = (@_);
|
||||
|
||||
#
|
||||
# First we unmount /proc and /dev/pts in the guest install.
|
||||
#
|
||||
runCommand("umount $MOUNT_POINT/proc");
|
||||
#runCommand("umount $MOUNT_POINT/dev/pts");
|
||||
|
||||
#
|
||||
# Open /proc/mount and get a list of currently mounted paths
|
||||
# which begin with our mount point.
|
||||
|
||||
@@ -131,7 +131,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
# store version number away.
|
||||
@@ -380,6 +380,30 @@ sub testArguments
|
||||
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
|
||||
|
||||
|
||||
# Shorthack to fix http://bugs.debian.org/648814 -- xen-create-nfs
|
||||
# should better use xt-create-xen-config instead. Guess from where
|
||||
# this code is borrowed for now...
|
||||
|
||||
if ( exists($CONFIG{ 'memory' }) and
|
||||
defined($CONFIG{ 'memory' }) ) {
|
||||
|
||||
#
|
||||
# The memory size: Convert Gb -> Mb.
|
||||
#
|
||||
if ( $CONFIG{ 'memory' } =~ /^(\d+)Gb.*$/i )
|
||||
{
|
||||
$CONFIG{ 'memory' } = $1 * 1024;
|
||||
}
|
||||
|
||||
#
|
||||
# Remove any trailing Mb.
|
||||
#
|
||||
if ( $CONFIG{ 'memory' } =~ /^(\d+)Mb.*$/i )
|
||||
{
|
||||
$CONFIG{ 'memory' } = $1;
|
||||
}
|
||||
|
||||
}
|
||||
# All OK.
|
||||
}
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ $CONFIG{ 'prefix' } = "/etc/xen";
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
#
|
||||
|
||||
@@ -156,7 +156,7 @@ $CONFIG{ 'extension' } = '.cfg';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ sub createXenConfig
|
||||
#
|
||||
# The memory size: Convert Gb -> Mb.
|
||||
#
|
||||
if ( $ENV{ 'memory' } =~ /^(\d+)Gb*$/i )
|
||||
if ( $ENV{ 'memory' } =~ /^(\d+)Gb.*$/i )
|
||||
{
|
||||
$ENV{ 'memory' } = $1 * 1024;
|
||||
}
|
||||
@@ -383,7 +383,7 @@ sub createXenConfig
|
||||
#
|
||||
# Remove any trailing Mb.
|
||||
#
|
||||
if ( $ENV{ 'memory' } =~ /^(\d+)Mb*$/i )
|
||||
if ( $ENV{ 'memory' } =~ /^(\d+)Mb.*$/i )
|
||||
{
|
||||
$ENV{ 'memory' } = $1;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -68,7 +68,8 @@ my %fallback_suite = ( Debian => 'stable',
|
||||
Ubuntu => 'lucid' );
|
||||
|
||||
# Where to look for the sources.list to parse
|
||||
my $sources_list_file = '/etc/apt/sources.list';
|
||||
my @sources_list_files = ( '/etc/apt/sources.list',
|
||||
glob('/etc/apt/sources.list.d/*.list'));
|
||||
|
||||
use File::Slurp;
|
||||
use Getopt::Long;
|
||||
@@ -80,7 +81,7 @@ use strict;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
# Init
|
||||
my $mirror = '';
|
||||
@@ -108,47 +109,49 @@ if ($want_manual) {
|
||||
pod2usage( -verbose => 2 );
|
||||
}
|
||||
|
||||
if (-r $sources_list_file) {
|
||||
# sources.list exists, so it's something debianoid.
|
||||
all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
|
||||
if (-r $sources_list_file) {
|
||||
# sources.list file exists, so it's something debianoid.
|
||||
|
||||
# read sources.list and split it into lines
|
||||
my @sources_list = read_file($sources_list_file);
|
||||
# read sources.list and split it into lines
|
||||
my @sources_list = read_file($sources_list_file);
|
||||
|
||||
# Find the first line which is a Debian or Ubuntu mirror but not
|
||||
# an updates, backports, volatile or security mirror.
|
||||
foreach my $sources_list_entry (@sources_list) {
|
||||
# Normalize line
|
||||
chomp($sources_list_entry);
|
||||
$sources_list_entry =~ s/^\s*(.*?)\s*$/$1/;
|
||||
# Find the first line which is a Debian or Ubuntu mirror but not
|
||||
# an updates, backports, volatile or security mirror.
|
||||
foreach my $sources_list_entry (@sources_list) {
|
||||
# Normalize line
|
||||
chomp($sources_list_entry);
|
||||
$sources_list_entry =~ s/^\s*(.*?)\s*$/$1/;
|
||||
|
||||
# Skip definite non-entries
|
||||
next if $sources_list_entry =~ /^\s*($|#)/;
|
||||
# Skip definite non-entries
|
||||
next if $sources_list_entry =~ /^\s*($|#)/;
|
||||
|
||||
# Split up into fields
|
||||
my @source_components = split(/\s+/, $sources_list_entry);
|
||||
# Split up into fields
|
||||
my @source_components = split(/\s+/, $sources_list_entry);
|
||||
|
||||
# Minimum number of components is 4
|
||||
next if $#source_components < 3;
|
||||
# Minimum number of components is 4
|
||||
next if $#source_components < 3;
|
||||
|
||||
# Don't use deb-src entries.
|
||||
next if $source_components[0] eq 'deb-src';
|
||||
# Don't use deb-src entries.
|
||||
next if $source_components[0] eq 'deb-src';
|
||||
|
||||
# Skip updates, backports, volatile or security mirror.
|
||||
next if $source_components[2] !~ /^[a-z]+$/;
|
||||
# Skip updates, backports, volatile or security mirror.
|
||||
next if $source_components[2] !~ /^[a-z]+$/;
|
||||
|
||||
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
|
||||
# Seems a typical mirror. Let's use that one
|
||||
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
|
||||
# Seems a typical mirror. Let's use that one
|
||||
|
||||
$mirror = $source_components[1];
|
||||
$suite = $source_components[2];
|
||||
$mirror = $source_components[1];
|
||||
$suite = $source_components[2];
|
||||
|
||||
$found = 1;
|
||||
last;
|
||||
$found = 1;
|
||||
last all_sources_list_files;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
warn "Couldn't parse $sources_list_file of the Dom0.\n" unless $found;
|
||||
}
|
||||
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
|
||||
join("\n ", @sources_list_files)."\n" unless $found;
|
||||
|
||||
my $lsb_release = `which lsb_release`;
|
||||
chomp($lsb_release);
|
||||
|
||||
@@ -117,7 +117,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.2';
|
||||
my $RELEASE = '4.2.1+dev';
|
||||
|
||||
|
||||
#
|
||||
|
||||
43
debian/changelog
vendored
43
debian/changelog
vendored
@@ -1,3 +1,46 @@
|
||||
xen-tools (4.2.1+dev-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Correctly checks and documents valid values for
|
||||
disk_device. (Closes: #621499)
|
||||
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
|
||||
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
|
||||
- Updated mirror list for discontinued releases of Debian and Ubuntu
|
||||
- Workaround for missing unit parsing in xen-create-nfs (Closes:
|
||||
#648814)
|
||||
- Fix wildcard vs regexp in memory configuration parsing.
|
||||
- Fix misbehaviour if --ip option is passed multiple times (Closes:
|
||||
#652110; Thanks Brian Bennett and Alexander Mette!)
|
||||
- Supports /etc/apt/sources.list.d/ (Closes: #650300)
|
||||
- xt-guess-suite-and-mirror exits with non-zero if no proper mirror
|
||||
could be extracted from /etc/apt/sources.list or
|
||||
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
|
||||
- Only attempts to generate the ssh host keys if not already present
|
||||
(Closes: #607236; Thanks Vagrant Cascadian!)
|
||||
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
|
||||
* No more suggest evms-cli -- it's no more available on any supported
|
||||
Dom0 distribution. Thanks to Markus Waldeck for the hint.
|
||||
* Bump Standards-Version to 3.9.3 (no changes)
|
||||
* Fix the following Lintian warnings:
|
||||
- copyright-refers-to-symlink-license
|
||||
- debian-rules-missing-recommended-target
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Mon, 07 May 2012 21:21:33 +0200
|
||||
|
||||
xen-tools (4.2.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
- Fixes bashism in "editor" roles script. Thanks Raphaël Halimi for
|
||||
the patch! (Closes: #605203)
|
||||
- Fixes missing architecture check in Sarge amd64 special case. Thanks
|
||||
to Guillaume Pernot! (Closes: #611397) Also changes default Sarge
|
||||
amd64 mirror to http://archive.debian.org/debian-amd64/.
|
||||
- Allows --ip=auto again (Closes: #611407)
|
||||
- Unmounts /proc and /dev/pts of the freshly installed DomU just
|
||||
before unmounting the disk image. (Closes: #588783)
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Thu, 17 Mar 2011 01:00:47 +0100
|
||||
|
||||
xen-tools (4.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
10
debian/control
vendored
10
debian/control
vendored
@@ -3,16 +3,16 @@ Section: utils
|
||||
Priority: extra
|
||||
Maintainer: Axel Beckert <abe@debian.org>
|
||||
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl
|
||||
Standards-Version: 3.9.1
|
||||
Standards-Version: 3.9.3
|
||||
Homepage: http://xen-tools.org/software/xen-tools
|
||||
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
|
||||
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
|
||||
|
||||
Package: xen-tools
|
||||
Architecture: all
|
||||
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}
|
||||
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}, openssh-client
|
||||
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse, xen-shell, libexpect-perl
|
||||
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, evms-cli, btrfs-tools
|
||||
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, btrfs-tools
|
||||
Description: Tools to manage Xen virtual servers
|
||||
This package contains tools to manage Debian based Xen virtual servers.
|
||||
.
|
||||
@@ -25,6 +25,7 @@ Description: Tools to manage Xen virtual servers
|
||||
* Debian 4.0 Etch
|
||||
* Debian 5.0 Lenny
|
||||
* Debian 6.0 Squeeze
|
||||
* Debian 7.0 Wheezy
|
||||
* Debian Sid (Unstable)
|
||||
* Ubuntu 6.06 Dapper Drake (LTS)
|
||||
* Ubuntu 6.10 Edgy Eft
|
||||
@@ -36,3 +37,6 @@ Description: Tools to manage Xen virtual servers
|
||||
* Ubuntu 9.10 Karmic Koala
|
||||
* Ubuntu 10.04 Lucid Lynx (LTS)
|
||||
* Ubuntu 10.10 Maverick Meerkat
|
||||
* Ubuntu 11.04 Natty Narwhal
|
||||
* Ubuntu 11.10 Oneiric Ocelot
|
||||
* Ubuntu 12.04 Precise Pangolin (LTS)
|
||||
|
||||
2
debian/copyright
vendored
2
debian/copyright
vendored
@@ -23,5 +23,5 @@ Perl is distributed under licenses:
|
||||
b) the "Artistic License" which comes with Perl.
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in /usr/share/common-licenses/GPL' and
|
||||
Public License can be found in /usr/share/common-licenses/GPL-1' and
|
||||
the Artistic Licence in /usr/share/common-licenses/Artistic'.
|
||||
|
||||
5
debian/rules
vendored
5
debian/rules
vendored
@@ -9,8 +9,9 @@ configure-stamp:
|
||||
touch configure-stamp
|
||||
|
||||
|
||||
build: build-stamp
|
||||
|
||||
build: build-arch build-indep
|
||||
build-arch: build-stamp
|
||||
build-indep: build-stamp
|
||||
build-stamp: configure-stamp
|
||||
dh_testdir
|
||||
touch build-stamp
|
||||
|
||||
@@ -263,7 +263,7 @@ mirror = `xt-guess-suite-and-mirror --mirror`
|
||||
#
|
||||
# mirror_sarge = http://archive.debian.org/debian
|
||||
# mirror_etch = http://archive.debian.org/debian
|
||||
# mirror_lenny = http://cdn.debian.net/debian
|
||||
# mirror_lenny = http://archive.debian.org/debian
|
||||
# mirror_squeeze = http://cdn.debian.net/debian
|
||||
# mirror_wheezy = http://cdn.debian.net/debian
|
||||
# mirror_sid = http://cdn.debian.net/debian
|
||||
@@ -273,10 +273,14 @@ mirror = `xt-guess-suite-and-mirror --mirror`
|
||||
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
|
||||
# mirror_hardy = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_intrepid = http://old-releases.ubuntu.com/ubuntu
|
||||
# mirror_karmic = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
|
||||
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu
|
||||
# mirror_lucid = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_maverick = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_natty = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_precise = http://archive.ubuntu.com/ubuntu
|
||||
# mirror_quantal = http://archive.ubuntu.com/ubuntu
|
||||
|
||||
|
||||
#
|
||||
@@ -298,7 +302,7 @@ btrfs_options = defaults
|
||||
#
|
||||
# If you're using the lenny or later version of the Xen guest kernel you will
|
||||
# need to make sure that you use 'hvc0' for the guest serial device,
|
||||
# and 'xvdX' instead of 'sdX' for serial devices.
|
||||
# and 'xvdX' instead of 'sdX' for disk devices.
|
||||
#
|
||||
# You may specify the things to use here:
|
||||
#
|
||||
|
||||
@@ -135,7 +135,7 @@ name = '{$hostname}'
|
||||
$br = ",bridge=$bridge"
|
||||
}
|
||||
|
||||
$OUT .= "vif = [ 'ip=$ip1";
|
||||
$OUT .= "vif = [ 'ip=$ips";
|
||||
$OUT .= "$m";
|
||||
$OUT .= "$vn";
|
||||
$OUT .= "$br";
|
||||
|
||||
@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
|
||||
#
|
||||
# Second, Generate the Host RSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
|
||||
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host RSA"
|
||||
else
|
||||
logMessage "failed to generate Host RSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Third, Generate the Host DSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
|
||||
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host DSA"
|
||||
else
|
||||
logMessage "failed to generate Host DSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Install ssh
|
||||
|
||||
@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
|
||||
#
|
||||
# Second, Generate the Host RSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
|
||||
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host RSA"
|
||||
else
|
||||
logMessage "failed to generate Host RSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Third, Generate the Host DSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
|
||||
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host DSA"
|
||||
else
|
||||
logMessage "failed to generate Host DSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Install ssh
|
||||
|
||||
@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
|
||||
#
|
||||
# Second, Generate the Host RSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
|
||||
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host RSA"
|
||||
else
|
||||
logMessage "failed to generate Host RSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Third, Generate the Host DSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
|
||||
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host DSA"
|
||||
else
|
||||
logMessage "failed to generate Host DSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Install ssh
|
||||
|
||||
@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
|
||||
#
|
||||
# Second, Generate the Host RSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
|
||||
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host RSA"
|
||||
else
|
||||
logMessage "failed to generate Host RSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Third, Generate the Host DSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
|
||||
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host DSA"
|
||||
else
|
||||
logMessage "failed to generate Host DSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Install ssh
|
||||
|
||||
@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
|
||||
#
|
||||
# Second, Generate the Host RSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
|
||||
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host RSA"
|
||||
else
|
||||
logMessage "failed to generate Host RSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Third, Generate the Host DSA Key
|
||||
#
|
||||
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
|
||||
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
|
||||
logMessage "successfully generetaged Host DSA"
|
||||
else
|
||||
logMessage "failed to generate Host DSA Key"
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Install ssh
|
||||
|
||||
@@ -61,8 +61,7 @@ for i in `find ${source} -name '*.sed' -print`; do
|
||||
#
|
||||
# Get the name of the file, minus the source prefix
|
||||
#
|
||||
sourcelen=${#source}
|
||||
file=/${i:$sourcelen}
|
||||
file=${i#$source}
|
||||
|
||||
#
|
||||
# Strip the .sed suffix
|
||||
|
||||
@@ -36,28 +36,28 @@ noMentionOf( "ip=",
|
||||
# is no mention of DHCP.
|
||||
#
|
||||
testOutputContains( "ip=192.168.1.1",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
|
||||
noMentionOf( "dhcp",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
|
||||
|
||||
#
|
||||
# SCSI based systems:
|
||||
#
|
||||
testOutputContains( "xvda",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
|
||||
testOutputContains( "/dev/xvda1 ro",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
|
||||
noMentionOf( "hda1",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
|
||||
|
||||
|
||||
#
|
||||
# IDE based systems
|
||||
#
|
||||
testOutputContains( "hda1",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp', ide => 1 );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp', ide => 1 );
|
||||
testOutputContains( "/dev/hda1 ro",
|
||||
memory => 128, ip1 => '192.168.1.1', dir => '/tmp', ide => 1 );
|
||||
memory => 128, ips => '192.168.1.1', dir => '/tmp', ide => 1 );
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user