1
0
mirror of synced 2026-01-18 08:52:38 +00:00

Compare commits

..

No commits in common. "master" and "release-4.8" have entirely different histories.

32 changed files with 236 additions and 889 deletions

View File

@ -1,9 +1,5 @@
language: perl language: perl
perl: perl:
- "5.32"
- "5.30"
- "5.28"
- "5.26"
- "5.24" - "5.24"
- "5.22" - "5.22"
- "5.20" - "5.20"
@ -12,26 +8,17 @@ perl:
- "5.14" - "5.14"
- "5.12" - "5.12"
- "5.10" - "5.10"
- "blead"
matrix:
fast_finish: true
allow_failures:
- perl: blead
before_install: before_install:
- sudo apt-get update - sudo apt-get update
- sudo apt-get install devscripts dpkg-dev lsb-release - sudo apt-get install devscripts dpkg-dev lsb-release
- eval $(curl https://travis-perl.github.io/init)
- build-perl
- perl -V
install: install:
- yes '' | cpanm --verbose --notest --skip-satisfied Data::Validate::Domain Data::Validate::IP Data::Validate::URI File::Slurp File::Which Log::Message Term::UI Test::NoTabs Test::Pod::Coverage Test::Pod Text::Template Devel::Cover::Report::Coveralls Sort::Versions Test::File::Contents - yes '' | cpanm --verbose --notest --skip-satisfied Data::Validate::Domain Data::Validate::IP Data::Validate::URI File::Slurp File::Which Log::Message Term::UI Test::NoTabs Test::Pod::Coverage Test::Pod Text::Template Devel::Cover::Report::Coveralls Sort::Versions
- export RELEASE_TESTING=1 AUTOMATED_TESTING=1 AUTHOR_TESTING=1 HARNESS_OPTIONS=j10:c HARNESS_TIMER=1 PATH=bin:${PERLBREW_PATH}:${PATH} - export RELEASE_TESTING=1 AUTOMATED_TESTING=1 AUTHOR_TESTING=1 HARNESS_OPTIONS=j10:c HARNESS_TIMER=1 PATH=bin:${PERLBREW_PATH}:${PATH}
script: script:
- make test-verbose - make test
after_success: after_success:
- prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t - prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t

View File

@ -12,6 +12,9 @@ Contributions
Listed alphabetically by surname. Listed alphabetically by surname.
C.J. Adams-Collier <cjcollier [at] com.gmail>
- Added new modular structure to the code.
Nick Anderson <nick [at] net.anders0n> Nick Anderson <nick [at] net.anders0n>
- Better bash completion for xen-create-image. - Better bash completion for xen-create-image.
@ -28,9 +31,6 @@ Contributions
Brian Bennett <bahamat [at] net.digitalelf> Brian Bennett <bahamat [at] net.digitalelf>
- Made multiple times given --ip options work - Made multiple times given --ip options work
C.J. Collier <cjac [at] google.com>
- Added new modular structure to the code.
Vagrant Cascadian <vagrant [at] org.debian> Vagrant Cascadian <vagrant [at] org.debian>
- Less redundant SSH key generation - Less redundant SSH key generation

View File

@ -14,7 +14,7 @@
# #
TMPDIR ?= /tmp TMPDIR ?= /tmp
DIST_PREFIX = ${TMPDIR} DIST_PREFIX = ${TMPDIR}
VERSION = 4.10.0 VERSION = 4.8
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/') DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools BASE = xen-tools
VCS = git VCS = git
@ -132,7 +132,6 @@ install-bin:
cp bin/xen-delete-image ${prefix}/usr/bin cp bin/xen-delete-image ${prefix}/usr/bin
cp bin/xen-list-images ${prefix}/usr/bin cp bin/xen-list-images ${prefix}/usr/bin
cp bin/xen-update-image ${prefix}/usr/bin cp bin/xen-update-image ${prefix}/usr/bin
cp bin/xen-resize-guest ${prefix}/usr/bin
cp bin/xt-guess-suite-and-mirror ${prefix}/usr/bin cp bin/xt-guess-suite-and-mirror ${prefix}/usr/bin
chmod 755 ${prefix}/usr/bin/xen-create-image chmod 755 ${prefix}/usr/bin/xen-create-image
chmod 755 ${prefix}/usr/bin/xen-create-nfs chmod 755 ${prefix}/usr/bin/xen-create-nfs
@ -185,8 +184,6 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d buster.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d buster.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bullseye.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bullseye.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bookworm.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bookworm.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d trixie.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d forky.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sid.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d unstable.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d unstable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d testing.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d testing.d
@ -227,15 +224,6 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d bionic.d -cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d bionic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d cosmic.d -cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d cosmic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d disco.d -cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d disco.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d eoan.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d focal.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d groovy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d hirsute.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d impish.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d jammy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d kinetic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d lunar.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d mantic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d devel.d -cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d devel.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools cp -r hooks/common ${prefix}/usr/share/xen-tools
@ -276,7 +264,6 @@ manpages:
# #
release: orig-tar-gz release: orig-tar-gz
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
cp -p ../$(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
git tag -s -m "Release as $(VERSION)" "release-$(VERSION)" git tag -s -m "Release as $(VERSION)" "release-$(VERSION)"
tarball: test tidy fixup-perms update-version update-modules clean changelog tarball: test tidy fixup-perms update-version update-modules clean changelog
@ -301,15 +288,13 @@ orig-tar-gz: tarball
# #
# Run the test suite. # Run the test suite.
# #
test-verbose : VERBOSE = -v
test-verbose: test
test: non-author-test author-test test: non-author-test author-test
non-author-test: update-modules non-author-test: update-modules
prove $(VERBOSE) --shuffle t/ prove --shuffle t/
author-test: author-test:
prove $(VERBOSE) xt/ prove xt/
# #
@ -317,9 +302,9 @@ author-test:
# #
tidy: tidy:
if [ -x /usr/bin/perltidy ]; then \ if [ -x /usr/bin/perltidy ]; then \
for i in $(ls -1 bin/*-* | grep -vE '~$'); do \ for i in bin/*-*[^~]; do \
echo "tidying $$i"; \ echo "tidying $$i"; \
perltidy $$i \ perltidy $$i \
; done \ ; done \
; fi ; fi

View File

@ -1,136 +1,3 @@
xen-tools 4.10.0 (TODO: UNRELEASED)
===================================
New Features
------------
* Add support for specifying guest type. (GH #64; PR by Arno Bakker
@arno481)
Distribution Releases Changes
-----------------------------
* Preliminary support for
+ Ubuntu 23.10 Mantic Minotaur
* Declare the following releases as EoL:
+ Ubuntu 22.10 Kinetic Kudu
* Debian Trixie is now Testing → remove dont-test flag
Other Changes
-------------
* Switch to pure Semantic Versioning including trailing zeros.
* Sync examples for "fs" and "fs" defaults in xen-create-image with
(effective) values in xen-tools.conf: ext3 → ext4
xen-tools 4.9.2 (released 06 Feb 2023)
======================================
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 21.10 Impish Indri (EoL)
+ Ubuntu 22.04 Jammy Jellyfish (LTS)
+ Ubuntu 22.10 Kinetic Kudu
* Preliminary support for
+ Debian 14 Forky
+ Ubuntu 23.04 Lunar Lobster
* Declare the following releases as EoL:
+ Ubuntu 12.04 Precise Pangolin (LTS)
+ Ubuntu 20.10 Groovy Gorilla
+ Ubuntu 21.04 Hirsute Hippo
* xt-guess-suite-and-mirror:
+ Bump default Ubuntu fallback release to 22.04 Jammy LTS.
+ Add support for Ubuntu Ports APT repos (i.e. Xen on ARM64).
Documentation
-------------
* Place hints on "vsyscall=emulate" on more visible places.
Other Changes
-------------
* Fix bashism in release testing target "tidy".
xen-tools 4.9.1 (released 24 Oct 2021)
======================================
Bug Fixes
---------
* Fix missing `|` in regex in `hooks/debian/20-setup-apt`. (Closes
Debian bug report #997668)
Other Changes
-------------
* Make test `xt/gitignore.t` work with git releases ≥ 2.32.0.
* Travis CI: stop testing again Perl `dev`. It seems to no more exist.
* Also create an `.orig.tar.xz` signature upon `make release`.
xen-tools 4.9 (released 29 Dec 2020)
====================================
New Features
------------
* Add Debian install rules for arm64. (GH #62; PR by Ian McLinden
@ianmclinden)
* Add netplan p2p support for Ubuntu. (GH #58; PR by Volker Janzen
@frootmig)
Bug Fixes
---------
* Fix typo in release name of the future Debian 12 release.
* Makefile: Actually install xen-resize-guest tool. (Thanks to
Debian's Lintian tool reporting that there is a man-page without
binary installed!)
* Distinguish between those Debian releases using `$dist/updates` for
security updates and those who use `$dist-security`. Thanks to Paul
Wise for the bug report. (Closes Debian bug report #972749.)
* Fix support for `lvm_thin`. Thanks to Andreas Sundstrom for the bug
report and patch! (Closes Debian bug report #942244.)
* Mount `/proc` and `/dev` before calling update-grub. Thanks to
Brandon Bradley for the bug report and patch. (Closes Debian bug
report #815021.)
* Fix storage commandline options not overriding `xen-tools.conf`
settings also in `xen-update-image` and `xen-delete-image`. (GH #57;
patch by Volker Janzen @frootmig)
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 19.10 Eoan Ermine (EoL)
+ Ubuntu 20.04 Focal Fossa (LTS)
+ Ubuntu 20.10 Groovy Gorilla
* Preliminary support for
+ Debian 13 Trixie
+ Ubuntu 21.04 Hirsute Hippo
* Declare the following releases as EoL:
+ Ubuntu 17.10 Artful Aardvark (Was missing in previous release
despite mentioned in this file.)
+ Ubuntu 18.10 Cosmic Cuttlefish
+ Ubuntu 19.04 Disco Dingo
+ Debian 7 Wheezy
+ Debian 8 Jessie
* Start all Debian releases since Stretch (9) with pygrub by default.
Other Changes
-------------
* Support running tests verbosely with Make target "test-verbose".
* Drop "dont-test" flag from bullseye.
* partitions/sample-server: Change options=sync to
options=defaults. (GL MR !1; patch by Wolfgang Karall)
xen-tools 4.8 (released 9 Feb 2019) xen-tools 4.8 (released 9 Feb 2019)
=================================== ===================================

View File

@ -39,11 +39,9 @@ known to work reliably, i.e.:
* Wheezy 7 (Dom0 no more tested) [¹](#1) * Wheezy 7 (Dom0 no more tested) [¹](#1)
* Jessie 8 * Jessie 8
* Stretch 9 * Stretch 9
* Buster 10 * Buster 10 (under development)
* Bullseye 11 * Bullseye 11 (knows about this future release name)
* Bookworm 12 (under development) * Bookworm 12 (knows about this future release name)
* Trixie 13 (knows about this future release name)
* Forky 14 (knows about this future release name)
* Sid (always under development; works at least at the moment of writing :-) * Sid (always under development; works at least at the moment of writing :-)
### Ubuntu ### Ubuntu
@ -76,11 +74,7 @@ known to work reliably, i.e.:
* Artful Aardvark 17.10 * Artful Aardvark 17.10
* Bionic Beaver 18.04 (LTS) * Bionic Beaver 18.04 (LTS)
* Cosmic Cuttlefish 18.10 * Cosmic Cuttlefish 18.10
* Disco Dingo 19.04 * Disco Dingo 19.04 (under development)
* Eoan Ermine 19.10
* Focal Fossa 20.04 (LTS)
* Groovy Gorilla 20.10
* Hirsute Hippo 21.04 (under development)
### Footnotes ### Footnotes
@ -89,9 +83,8 @@ known to work reliably, i.e.:
<dt><a id="1" name="1">¹</a></dt><dd> <dt><a id="1" name="1">¹</a></dt><dd>
Installation with `xen-create-image` and updating with Installation with `xen-create-image` and updating with
`xen-update-image` might fail with newer kernels/distributions running `xen-update-image` might fail with newer kernels/distributions as Dom0
on the Dom0 unless they have been booted with `vsyscall=emulate` on without `vsyscall=emulate` on the kernel commandline.
the kernel commandline.
</dd><dt><a id="2" name="2">²</a></dt><dd> </dd><dt><a id="2" name="2">²</a></dt><dd>
@ -251,8 +244,8 @@ Version Numbering Scheme
Since release 4.4, the version numbering scheme of xen-tools tries to Since release 4.4, the version numbering scheme of xen-tools tries to
comply with the [Semantic Versioning](http://semver.org/) comply with the [Semantic Versioning](http://semver.org/)
specification, with the only exception that in releases before 4.10 specification, with the only exception that trailing zeroes are
trailing zeroes were omitted. omitted.
Between the releases 3.9 and 4.4, the version numbering scheme Between the releases 3.9 and 4.4, the version numbering scheme
followed roughly the same ideas, but less strict. followed roughly the same ideas, but less strict.

View File

@ -59,12 +59,6 @@ Bugs to fix and features to add for 5.0
in `/etc/default/grub` if trying to install an affected Linux in `/etc/default/grub` if trying to install an affected Linux
distribution. distribution.
* Drop checking the host's sources.list to decide upon including the
security repo or not.
* Make a difference wrt. to the security repo for EoL releases.
Stuff from Steve's TODO list / Generic TODOs Stuff from Steve's TODO list / Generic TODOs
-------------------------------------------- --------------------------------------------

View File

@ -215,8 +215,6 @@ and EVMS EXAMPLE.
Set the number of vcpus that the new instance will Set the number of vcpus that the new instance will
have instead of the default value of "1". have instead of the default value of "1".
--type=type Specify the VM type to use for the new guest.
Valid choices are 'pv' (default), 'pvh', or 'hvm'.
Installation options: Installation options:
@ -446,7 +444,7 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
memory = 128Mb # Memory size memory = 128Mb # Memory size
maxmem = 512Mb # Memory size maxmem = 512Mb # Memory size
swap = 128Mb # Swap size swap = 128Mb # Swap size
fs = ext4 # use EXT4 filesystems fs = ext3 # use EXT3 filesystems
dist = stable # Default distribution to install. dist = stable # Default distribution to install.
# #
@ -874,7 +872,7 @@ my $MOUNT_POINT = undef;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# #
@ -1335,7 +1333,7 @@ sub setupDefaultOptions
$CONFIG{ 'arch' } = $CONFIG{ 'arch' } =
which('dpkg') ? `dpkg --print-architecture` : ''; which('dpkg') ? `dpkg --print-architecture` : '';
chomp($CONFIG{ 'arch' }); chomp($CONFIG{ 'arch' });
$CONFIG{ 'fs' } = 'ext4'; $CONFIG{ 'fs' } = 'ext3';
$CONFIG{ 'force' } = 0; $CONFIG{ 'force' } = 0;
$CONFIG{ 'install' } = 1; $CONFIG{ 'install' } = 1;
$CONFIG{ 'hooks' } = 1; $CONFIG{ 'hooks' } = 1;
@ -1347,7 +1345,6 @@ sub setupDefaultOptions
$CONFIG{ 'ipfile' } = '/etc/xen-tools/ips.txt'; $CONFIG{ 'ipfile' } = '/etc/xen-tools/ips.txt';
$CONFIG{ 'output' } = '/etc/xen'; $CONFIG{ 'output' } = '/etc/xen';
$CONFIG{ 'extension' } = '.cfg'; $CONFIG{ 'extension' } = '.cfg';
$CONFIG{ 'type' } = 'pv'; # Arno: as per man xl.cfg
# #
# Installation method defaults to "debootstrap" using # Installation method defaults to "debootstrap" using
@ -1493,10 +1490,6 @@ sub checkOption
vlan => { vlan => {
check => qr/^([1-9][0-9]{0,2}|10[01][0-9]|102[0-4])$/i, check => qr/^([1-9][0-9]{0,2}|10[01][0-9]|102[0-4])$/i,
message => "must be a number between 1 and 1024.\n", message => "must be a number between 1 and 1024.\n",
}, # Arno
guestType => {
check => qr/^(pv|pvh|hvm)$/, # man xl.cfg
message => "must be 'pv', 'pvh' or 'hvm'.\n",
}, },
); );
@ -1536,7 +1529,6 @@ sub checkOption
hash_method => 'hashMethod', hash_method => 'hashMethod',
apt_proxy => 'uri', apt_proxy => 'uri',
vlan => 'vlan', vlan => 'vlan',
type => 'guestType', # Arno
); );
# If given option does not exists in optionsTypes, # If given option does not exists in optionsTypes,
@ -1693,7 +1685,6 @@ sub parseCommandLineArguments
"extension:s", \&checkOption, "extension:s", \&checkOption,
"dontformat", \&checkOption, "dontformat", \&checkOption,
"lvm_thin=s", \$CONFIG{ 'lvm_thin' }, "lvm_thin=s", \$CONFIG{ 'lvm_thin' },
"type:s", \&checkOption, # Arno
# Help options # Help options
"debug!", \$CONFIG{ 'debug' }, "debug!", \$CONFIG{ 'debug' },
@ -2728,7 +2719,6 @@ sub showSummary
} }
} }
logprint("Guest type : $CONFIG{'type'}\n");
logprint("Image type : $CONFIG{'image'}\n"); logprint("Image type : $CONFIG{'image'}\n");
logprint("Memory size : $CONFIG{'memory'}\n"); logprint("Memory size : $CONFIG{'memory'}\n");
@ -3234,11 +3224,12 @@ sub createLVMBits
# The commands to create the volume. # The commands to create the volume.
# #
my $disk_cmd = my $disk_cmd =
"lvcreate ". "lvcreate $CONFIG{'lvm'} ".
($lvm_needs_yes ? '--yes ' : ''). ($lvm_needs_yes ? '--yes' : '').
' '.
($CONFIG{ 'lvm_thin' } ? ($CONFIG{ 'lvm_thin' } ?
"-T $CONFIG{'lvm'}/$CONFIG{'lvm_thin'} -V" : "-T $CONFIG{'lvm'}/$CONFIG{'lvm_thin'} -V" :
"$CONFIG{'lvm'} -L"). '-L').
" $partition->{'size'} -n $disk"; " $partition->{'size'} -n $disk";
# #

View File

@ -121,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# store version number away. # store version number away.

View File

@ -167,7 +167,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# #
@ -269,25 +269,13 @@ sub parseCommandLineArguments
my $VERSION = 0; my $VERSION = 0;
$CONFIG{ 'dry-run' } = 0; $CONFIG{ 'dry-run' } = 0;
#
# We record the installation method here because we want
# to ensure that we allow the method supplied upon the command line
# to overwrite the one we might have ready read from the configuration
# file.
#
my %install;
$install{ 'evms' } = undef;
$install{ 'dir' } = undef;
$install{ 'lvm' } = undef;
$install{ 'zpool' } = undef;
# Parse options. # Parse options.
# #
GetOptions( "dir=s", \$install{ 'dir' }, GetOptions( "dir=s", \$CONFIG{ 'dir' },
"dry-run", \$CONFIG{ 'dry-run' }, "dry-run", \$CONFIG{ 'dry-run' },
"lvm=s", \$install{ 'lvm' }, "lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$install{ 'evms' }, "evms=s", \$CONFIG{ 'evms' },
"zpool=s", \$install{ 'zpool' }, "zpool=s", \$CONFIG{ 'zpool' },
"extension:s", \$CONFIG{ 'extension' }, "extension:s", \$CONFIG{ 'extension' },
"hostname=s@", \$CONFIG{ 'hostname' }, "hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' }, "test", \$CONFIG{ 'test' },
@ -298,39 +286,6 @@ sub parseCommandLineArguments
"version", \$VERSION "version", \$VERSION
); );
#
# Now make ensure that the command line setting of '--lvm', '--evms', '--zpool'
# and '--dir=x' override anything specified in the configuration file.
#
if ( $install{ 'dir' } )
{
$CONFIG{ 'dir' } = $install{ 'dir' };
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'evms' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = $install{ 'evms' };
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'lvm' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = $install{ 'lvm' };
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'zpool' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = $install{ 'zpool' };
}
pod2usage(1) if $HELP; pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL; pod2usage( -verbose => 2 ) if $MANUAL;

View File

@ -106,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';

View File

@ -111,7 +111,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# #

View File

@ -113,7 +113,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# #
@ -344,52 +344,15 @@ sub parseCommandLineArguments
my $MANUAL = 0; my $MANUAL = 0;
my $VERSION = 0; my $VERSION = 0;
#
# We record the installation method here because we want
# to ensure that we allow the method supplied upon the command line
# to overwrite the one we might have ready read from the configuration
# file.
#
my %install;
$install{ 'evms' } = undef;
$install{ 'dir' } = undef;
$install{ 'lvm' } = undef;
# Parse options. # Parse options.
# #
GetOptions( "dir=s", \$install{ 'dir' }, GetOptions( "dir=s", \$CONFIG{ 'dir' },
"lvm=s", \$install{ 'lvm' }, "lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$install{ 'evms' }, "evms=s", \$CONFIG{ 'evms' },
"help", \$HELP, "help", \$HELP,
"manual", \$MANUAL, "manual", \$MANUAL,
"version", \$VERSION ); "version", \$VERSION );
#
# Now make ensure that the command line setting of '--lvm', '--evms', '--zpool'
# and '--dir=x' override anything specified in the configuration file.
#
if ( $install{ 'dir' } )
{
$CONFIG{ 'dir' } = $install{ 'dir' };
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'evms' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = $install{ 'evms' };
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'lvm' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = $install{ 'lvm' };
$CONFIG{ 'zpool' } = undef;
}
pod2usage(1) if $HELP; pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL; pod2usage( -verbose => 2 ) if $MANUAL;

View File

@ -148,7 +148,7 @@ $CONFIG{ 'extension' } = '.cfg';
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';

View File

@ -100,7 +100,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';

View File

@ -9,9 +9,8 @@ mirror for DomUs on Debian and Ubuntu Dom0s.
=head1 SYNOPSIS =head1 SYNOPSIS
--suite Show suite --suite Show suite
--mirror Show mirror --mirror Show mirror
--sources-list=<file> Parse this file as sources.list
Shows both if no parameter is given. Shows both if no parameter is given.
@ -63,7 +62,7 @@ my %fallback_mirror = ( Debian => 'http://deb.debian.org/debian/',
# have aliases like stable or testing, so we take the nearest LTS # have aliases like stable or testing, so we take the nearest LTS
# release which is 10.04 at the time of writing. # release which is 10.04 at the time of writing.
my %fallback_suite = ( Debian => 'stable', my %fallback_suite = ( Debian => 'stable',
Ubuntu => 'jammy' ); Ubuntu => 'bionic' );
# Where to look for the sources.list to parse # Where to look for the sources.list to parse
my @sources_list_files = ( '/etc/apt/sources.list', my @sources_list_files = ( '/etc/apt/sources.list',
@ -80,7 +79,7 @@ use strict;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# Init # Init
my $mirror = ''; my $mirror = '';
@ -93,13 +92,11 @@ my $want_suite = 0;
my $want_version = 0; my $want_version = 0;
my $want_help = 0; my $want_help = 0;
my $want_manual = 0; my $want_manual = 0;
my $sources_list = undef;
my $result = GetOptions( 'mirror|m' => \$want_mirror, my $result = GetOptions( 'mirror|m' => \$want_mirror,
'suite|s' => \$want_suite, 'suite|s' => \$want_suite,
'version' => \$want_version, 'version' => \$want_version,
'manual' => \$want_manual, 'manual' => \$want_manual,
'sources-list=s' => \$sources_list,
'help' => \$want_help ); 'help' => \$want_help );
if ($want_help) { if ($want_help) {
@ -110,10 +107,6 @@ if ($want_manual) {
pod2usage( -verbose => 2 ); pod2usage( -verbose => 2 );
} }
if (defined $sources_list) {
@sources_list_files = ($sources_list);
}
all_sources_list_files: foreach my $sources_list_file (@sources_list_files) { all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
if (-r $sources_list_file) { if (-r $sources_list_file) {
# sources.list file exists, so it's something debianoid. # sources.list file exists, so it's something debianoid.
@ -143,7 +136,7 @@ all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
# Skip updates, backports, volatile or security mirror. # Skip updates, backports, volatile or security mirror.
next if $source_components[2] !~ /^[a-z]+$/; next if $source_components[2] !~ /^[a-z]+$/;
if ($source_components[1] =~ m(/debian/?$|/ubuntu(-ports)?/?$)) { if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
# Seems a typical mirror. Let's use that one # Seems a typical mirror. Let's use that one
$mirror = $source_components[1]; $mirror = $source_components[1];

View File

@ -113,7 +113,7 @@ my %CONFIG;
# #
# Release number. # Release number.
# #
my $RELEASE = '4.10.0'; my $RELEASE = '4.8';
# #

19
debian/README.Debian vendored
View File

@ -1,23 +1,8 @@
README README
====== ======
Bootstrapping Wheezy, Precise or older Releases
-----------------------------------------------
For security reasons (avoid risk to circumvent ASLR), recent kernels
have disabled the vsyscall mapping. Unfortunately older distributions
don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed vsyscall
address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
"vsyscall=emulate" to the kernel commandline, e.g. by adding it to
GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then running
"update-grub" afterwards and finally reboot.
Kernel/initrd guessing Kernel/initrd guessing
---------------------- ======================
In xen-tools 3.4-1 a new feature was added which allows using In xen-tools 3.4-1 a new feature was added which allows using
backtick expressions in xen-tools.conf. backtick expressions in xen-tools.conf.
@ -30,7 +15,7 @@ changing/adding the following options in xen-tools.conf:
Upgrading Existing kernel/initrd paths Upgrading Existing kernel/initrd paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------
The kernel, and initrd, settings which are included in the xen-tools The kernel, and initrd, settings which are included in the xen-tools
(either statically or dynamically with `uname -r`) are only applied (either statically or dynamically with `uname -r`) are only applied

86
debian/changelog vendored
View File

@ -1,85 +1,3 @@
xen-tools (4.10.0-1) UNRELEASED; urgency=medium
* New upstream feature release
+ Update list of Ubuntu and Debian releases.
+ Support for specifying guest type. (initial patch by Arno Bakker;
GH #64)
* Drop alternative Suggests on btrfs-tools. (Closes: #932122; Security
support for Xen in Debian 8 has long ended.)
-- Axel Beckert <abe@debian.org> Mon, 11 Dec 2023 23:11:47 +0100
xen-tools (4.9.2-1) unstable; urgency=medium
* New upstream maintenance release
+ Update list of Ubuntu and Debian releases.
+ Fix bashism in release testing target "tidy".
+ xt-guess-suite-and-mirror:
- Bump default Ubuntu fallback release to 22.04 Jammy LTS.
- Add new option --sources-list to pass a file to parse.
- Add support for Ubuntu Ports APT repos. (Closes: #1023667,
LP: #1995969)
* Update upstream signing key to update its expiry date.
* Depend and Build-Depend on non-(build-)essential package
mount. (Closes: #1027383)
* Also mention "vsyscall=emulate" in package description and
README.Debian. (Closes: #1028388)
* Declare compliance with Debian Policy 4.6.2. No changes needed.
-- Axel Beckert <abe@debian.org> Mon, 06 Feb 2023 02:57:47 +0100
xen-tools (4.9.1-1) unstable; urgency=medium
* New upstream bugfix release.
+ Fix missing "|" in regex in Debian's 20-setup-apt. (Closes: #997668)
+ Make test xt/gitignore.t work with git releases ≥ 2.32.0.
+ Travis CI: stop testing again Perl "dev". It no more seems to exist.
+ Also create an .orig.tar.xz signature upon "make release".
* Declare compliance with Debian Policy 4.6.0. (No changes needed.)
-- Axel Beckert <abe@debian.org> Sun, 24 Oct 2021 05:38:40 +0200
xen-tools (4.9-1) unstable; urgency=medium
* New upstream bugfix and minor feature release.
+ Mark Debian 7 Wheezy and 8 Jessie as EoL.
+ Update list of Ubuntu and Debian releases.
+ distributions.conf: Fix typo in release name of future Debian 12
release (bookwork → bookworm).
+ Actually install xen-resize-guest tool. (Thanks lintian for the
spare-manual-page warning!)
+ Distinguish between those Debian releases using $dist/updates for
security updates and those who use $dist-security. Thanks Paul Wise!
(Closes: #972749)
- Add test for this; needs libtest-file-contents-perl as build-dep.
+ Fix support for lvm_thin. Thanks to Andreas Sundstrom for the bug
report and patch! (Closes: #942244)
+ Mount /proc and /dev before calling update-grub. Thanks to Brandon
Bradley for the bug report and patch. (Closes: #815021)
+ Add Debian install rules for arm64. (GH #62; patch by Ian McLinden)
+ Add netplan p2p support for Ubuntu. (GH #58; patch by Volker Janzen)
+ Fix storage commandline options not overriding xen-tools.conf
settings also in xen-update-image and xen-delete-image. (GH #57;
patch by Volker Janzen)
+ partitions/sample-server: Change options=sync to
options=defaults. (GL MR !1; patch by Wolfgang Karall)
+ Start all Debian releases since Stretch (9) with pygrub by default.
* Recommend deboootstrap ≥ 1.0.117~ for working bootstrapping of Ubuntu
6.06 Dapper and 6.10 Edgy (see #659360) and for support of Ubuntu
17.10 Artful, 18.04 LTS Bionic, 18.10 Cosmic, 19.04 Disco, 19.10 Eoan,
and 20.04 Focal.
* Fix non-RFC-conforming four-letter day of week abbreviations in
ancient debian/changelog entries.
* Bump debian/watch version from 3 to 4. Thanks Lintian!
* Bump debhelper compatibility level to 13.
+ Build-depend on "debhelper-compat (= 13)" to replace debian/compat.
* Declare compliance with Debian Policy 4.5.1. (No changes required.)
* Adapt distributions.conf defaults to the fact that Debian Unstable
still ships Ubuntu keyrings as of 2018, see #978438.
-- Axel Beckert <abe@debian.org> Tue, 29 Dec 2020 12:19:51 +0100
xen-tools (4.8-1) unstable; urgency=medium xen-tools (4.8-1) unstable; urgency=medium
* New upstream release. * New upstream release.
@ -1071,7 +989,7 @@ xen-tools (2.1-2) unstable; urgency=high
- Fixed several typos in the configuration file, and scripts. - Fixed several typos in the configuration file, and scripts.
(Closes: #375382) (Closes: #375382)
-- Steve Kemp <skx@debian.org> Thu, 29 Jun 2006 10:31:23 +0000 -- Steve Kemp <skx@debian.org> Thur, 29 Jun 2006 10:31:23 +0000
xen-tools (2.1-1) unstable; urgency=high xen-tools (2.1-1) unstable; urgency=high
@ -1085,7 +1003,7 @@ xen-tools (2.1-1) unstable; urgency=high
* Urgency set to high primarily because of the failure to create * Urgency set to high primarily because of the failure to create
swap devices. swap devices.
-- Steve Kemp <skx@debian.org> Thu, 23 Jun 2006 10:08:32 +0000 -- Steve Kemp <skx@debian.org> Thur, 23 Jun 2006 10:08:32 +0000
xen-tools (2.0-1) unstable; urgency=low xen-tools (2.0-1) unstable; urgency=low

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
10

36
debian/control vendored
View File

@ -2,7 +2,7 @@ Source: xen-tools
Section: utils Section: utils
Priority: optional Priority: optional
Maintainer: Axel Beckert <abe@debian.org> Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper-compat (= 13), Build-Depends: debhelper (>= 10~),
devscripts, devscripts,
git, git,
libdata-validate-domain-perl, libdata-validate-domain-perl,
@ -13,13 +13,11 @@ Build-Depends: debhelper-compat (= 13),
liblog-message-perl | perl (<< 5.17.0), liblog-message-perl | perl (<< 5.17.0),
libterm-ui-perl | perl (<< 5.17.0), libterm-ui-perl | perl (<< 5.17.0),
libsort-versions-perl, libsort-versions-perl,
libtest-file-contents-perl,
libtest-notabs-perl, libtest-notabs-perl,
libtest-pod-coverage-perl, libtest-pod-coverage-perl,
libtest-pod-perl, libtest-pod-perl,
libtext-template-perl, libtext-template-perl
mount Standards-Version: 4.3.0
Standards-Version: 4.6.2
Homepage: https://xen-tools.org/software/xen-tools Homepage: https://xen-tools.org/software/xen-tools
Vcs-Browser: https://github.com/xen-tools/xen-tools Vcs-Browser: https://github.com/xen-tools/xen-tools
Vcs-Git: https://github.com/xen-tools/xen-tools.git Vcs-Git: https://github.com/xen-tools/xen-tools.git
@ -37,13 +35,11 @@ Depends: debootstrap | cdebootstrap,
libsort-versions-perl, libsort-versions-perl,
libterm-ui-perl | perl (<< 5.17.0), libterm-ui-perl | perl (<< 5.17.0),
libtext-template-perl, libtext-template-perl,
mount,
openssh-client, openssh-client,
perl, perl,
${misc:Depends}, ${misc:Depends},
${perl:Depends} ${perl:Depends}
Recommends: debian-archive-keyring, Recommends: debian-archive-keyring,
debootstrap (>= 1.0.117~),
e2fsprogs, e2fsprogs,
libexpect-perl, libexpect-perl,
lvm2, lvm2,
@ -51,7 +47,7 @@ Recommends: debian-archive-keyring,
ubuntu-keyring | ubuntu-archive-keyring, ubuntu-keyring | ubuntu-archive-keyring,
xen-hypervisor, xen-hypervisor,
xen-utils xen-utils
Suggests: btrfs-progs, Suggests: btrfs-progs | btrfs-tools,
cfengine2, cfengine2,
grub-xen-host, grub-xen-host,
reiserfsprogs, reiserfsprogs,
@ -71,11 +67,9 @@ Description: Tools to manage Xen virtual servers
* Debian 7 Wheezy * Debian 7 Wheezy
* Debian 8 Jessie * Debian 8 Jessie
* Debian 9 Stretch * Debian 9 Stretch
* Debian 10 Buster * Debian 10 Buster (under development)
* Debian 11 Bullseye * Debian 11 Bullseye (future release name)
* Debian 12 Bookworm (under development) * Debian 12 Bookworm (future release name)
* Debian 13 Trixie (knows about this future release name)
* Debian 14 Forky (knows about this future release name)
* Debian Sid (Unstable) * Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS) * Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft * Ubuntu 6.10 Edgy Eft
@ -103,20 +97,6 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 17.10 Artful Aardvark * Ubuntu 17.10 Artful Aardvark
* Ubuntu 18.04 Bionic Beaver (LTS) * Ubuntu 18.04 Bionic Beaver (LTS)
* Ubuntu 18.10 Cosmic Cuttlefish * Ubuntu 18.10 Cosmic Cuttlefish
* Ubuntu 19.04 Disco Dingo * Ubuntu 19.04 Disco Dingo (preliminary support, under development)
* Ubuntu 19.10 Eoan Ermine
* Ubuntu 20.04 Focal Fossa (LTS)
* Ubuntu 20.10 Groovy Gorilla
* Ubuntu 21.04 Hirsute Hippo
* Ubuntu 21.10 Impish Indri
* Ubuntu 22.04 Jammy Jellyfish (LTS)
* Ubuntu 22.10 Kinetic Kudu
* Ubuntu 23.04 Lunar Lobster (preliminary support, under development)
* CentOS 5 * CentOS 5
* CentOS 6 * CentOS 6
.
Note: Debian 7 Wheezy, Ubuntu 12.04 Precise Pangolin and any older
release requires the Linux kernel of the hosting machine to be booted
with "vsyscall=emulate" on the kernel commandline (i.e. in the
bootloader) to bootstrap these releases with xen-tools. See
/usr/share/doc/xen-tools/README.Debian for details.

View File

@ -1,4 +1,5 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBEpaZ7ABEADMyzD1duYFiMgQpGOBPUkeCoSYOLIVk9ry+fwIkyiyvVZYBWuh mQINBEpaZ7ABEADMyzD1duYFiMgQpGOBPUkeCoSYOLIVk9ry+fwIkyiyvVZYBWuh
PtEdb+NLOPj/zfUFcoshfhm9bdCTlId1rger34/gOBN9r9NbawfiaUuOhxVzasrX PtEdb+NLOPj/zfUFcoshfhm9bdCTlId1rger34/gOBN9r9NbawfiaUuOhxVzasrX
@ -11,231 +12,136 @@ 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 E5+sYTNqwjpyu20KatRq1OyrsArfVUTLTeAUwB+gy1Dnb62ClCB+1g9L+Cb9ZE/n
uv2iBNvLhISNP9i68bifWlvJDmqdJQN0ol92k5Pc+iMnbVmqJf2F//O/s3Q7cVyr xxfMM7DMy2gFa6wjFdTlYkIxiZC9iLYMUxKlIXmaySIV98mH7fQ9Ojk0Q2RqCnrH
dlf85jxovFNhMOZK4Y98MB+IbsT5QKhHvKLl/DXfgRH7hnxRmgyYP3jxAlpNvX1D pbBQi89nwNXrq+T637WWkSbfvtV68S1jydgL+i5A2J7PkztvXKFkTF40kgtyVCsF
srIZzDLKCQFG6Mubc7+K7oq9yD2272mV0e6ogY8+N7Js2ms8uDwCuXJhywSoRY5B KaoVfjeCDdgVGFKtC7NR25NJu1wikqAYZM/eKvPoFTkjf7A2btFKLckXkM6eASMm
PI/ChIP7uHLt4Ocw8UinS43AxQf+T4aIzlngElHWmXq3jKEVUB1mxw/9gz0U9Gne 7nx2k2WQ6iTUM+u0E0F4ZWwgU3RlZmFuIEJlY2tlcnSJAjYEEwEIACAFAkpaa2sC
1+jLy/b0CIXg4wGcstwConfp3BYuno2Q5rwf9A0nu0yu0eiZaFlzYoTN312Gwgwj GwMECwkIBwUVCgkICwUWAgMBAAIeAQIXgAAKCRAv+c1ZYSYWtawCD/9CdOQvdt9X
7Iql39jRy6bLpAEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQAAAQABAAD/ yqKXhOODBVOnHyr1BEteuU41g7YVmH4xrgNOPvjtxzPF4EPMBk/r3IfoaesnSaNS
/gCTU29mdHdhcmU6OlhWIFZlcnNpb24gMy4xMGEgIFJldjogMTIvMjkvOTQgKFBO g/b+OfS6LHmT+bQMU+a8X2R6kickUbJerlOS4eaIpMGPN7ldHhKo9OcbPysGtLaR
RyBwYXRjaCAxLjIpCgpDUkVBVE9SOiBYViBWZXJzaW9uIDMuMTBhICBSZXY6IDEy s+MIh2CORwz64i4ySSEYpKQZISeVrX4cdI8ZxKDbotszD371DXD28S14Eom2uy/d
LzI5Lzk0IChQTkcgcGF0Y2ggMS4yKSAgUXVhbGl0eSA9IDkwLCBTbW9vdGhpbmcg 4c6J771/xCq3+RH2QfHxFbKK7FBfAUoYlkfIAzSMUP3EuN/vr9hVJ2g5yM+zYN5y
PSAwCv/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhAN zdCYbeDoBCIlu2VFavTCfY7zenQVSukNdNOE3iIdUAhuijnf5L6KC15ymnOU4dHi
DhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQU qbkGG2ujFvXjzFqmIlflnFZ/G8O+s8C+5D9qQve0XweOSd46Nd2hzG7ZCDLd18Oy
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/A wdkVk3Nk3QNc2vSfQRyXavYyb6cDD/33Bjkef3y1sAAgH58tUFQXCedc0gRP3UYT
ABEIAGAAYAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJ o9yyvwQoBx+QHw3gYGaGJvx3NMA+gQq3ufbr6JUn/P7j9Z09eXQZ0HUTE22+Xxd5
Cgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj rORcGPRyknAXy4kgiQAc8QhwPqVSVlbGnDz+rWryF+HwD1X5neYHwz0qOCukuAMV
QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFla ezq6BNJvuYRrLqCOzu18LD9rqiYeNxyUnH/UFFefQdW2SPJKBNtChVAZd8lJdaHv
Y2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 mGyvPi85mey1j1Dzn/mF3Dwjtl0GTO7K2rQpQXhlbCBCZWNrZXJ0IChGU0ZFIEZl
uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQAD bGxvdykgPGFiZUBmc2ZlLm9yZz6JAjYEEwEIACAFAksejdsCGwMECwkIBwUVCgkI
AQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncA CwUWAgMBAAIeAQIXgAAKCRAv+c1ZYSYWtSuGD/0StaDkNfg2jl5k04MuyMuXnLc3
AQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn EXr/T13Kt5XfwDwE8LoVyTo7N7utylPFvMFsWXo7QzniKOCm2A4IjXfncExiGh4a
KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeI h3ONgp66nJT8a8PMPl4YBFaLymNdGA1FkQOZPGUPu+/BJ5Nko42qcr3bTFnr5yU8
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri fW50ZJ9Dt2hZZD+z43dDGqSB5VESPuYMLabI9kFfixWpor8Hp/cdRty+6qT8T3L4
4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP1TooooAK5Tx38UfDHw2sTc gCzOBhKWY8M//x5rY5SkF182GcOW2AzO1bSnJpNB+Rxp1vj5d05irLl35YZ/B8J6
6/q0FmcZS33bppPTag5PTr0rwv8Aaj/bBtvhJeP4Y8NmC68TBQbmeYborMEcDH8U oPK+edQGGSYQk3oeZhPyiK67itYust2c9dIgJo1/yqh8nqDNYCtTGr5FJntIwviU
nQ46DIz6V8LeIviBqvie8utb1e7uL6+nPNzdtudz2AHYD0Fc1Wuqei3Oqjh5Vdeh Oh8BIwD0WPxJs+4icE71Sq+4zqx8bYLaKspu0jSw4ScAkCR6od3kA1K/LKkRI//m
9T/Fn9v7ULC6ePwpp8FnZgELPfJ5kz++0Hav05rgNJ/4KPeOLO6V77TdOvrfHKGE q288TfarYfrcVgythAjKH9y8RmbgpQK2/dtoAUq+SNtyFDma29JKkuKH5w6o6zFN
ox7ZyrDvXyrPc3GrXhLgsSeSew9KuQ6dH8u4ggfdPrntXJ7d7tnd9UifU2pf8FFv h8INj8tb1L0HC1MVUCqH5Irb9wY9hQuDP9KAaCAhrl4/ckCNUFeTx4mmkVUlfUIR
GuqJHbWGn6dYS8l7iO3Lkj2DMR+ldf4G/bn8RWxhbW47XV4MYdREIJTz1BXj8MV8 1AZ7eGWCRVbjY3vc8UOV/hmsibaSeoPlKriyv++9erHlzZefDILCiZrY5k+vmL5V
TLPDpMkjSL8rdQv8Jx1FTN4kS3RZFcSRPxuHY+tDrS3iQ8PBaM/Yf4Y/F7w38WtJ udjKJeNmVmXbnBp4pA0fvOrOsOxt2tMvNwnzrkYAas/OqibdAA2qUyZYgIdK6bCG
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 +XwhySae
1VkAVjFPXeIoJEmuhigSJmRsDqgdtSO+kyYCME9dWbQpQXhlbCBCZWNrZXJ0IChG =CO5C
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
=XJH8
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

2
debian/watch vendored
View File

@ -4,7 +4,7 @@
# #
# uscan version number - not the version of the software. # uscan version number - not the version of the software.
# #
version=4 version=3
# #

View File

@ -8,25 +8,23 @@
# Known keywords: eol, pygrub, default-keyring, dont-test # Known keywords: eol, pygrub, default-keyring, dont-test
# Known generic keywords: *.gpg (uses the according /usr/share/keyrings/….gpg file) # Known generic keywords: *.gpg (uses the according /usr/share/keyrings/….gpg file)
# #
sarge = debian eol dont-test sarge = debian eol
etch = debian eol etch = debian eol
lenny = debian eol lenny = debian eol
squeeze = debian eol default-keyring squeeze = debian eol default-keyring
wheezy = debian eol wheezy = debian
jessie = debian eol jessie = debian
stretch = debian pygrub stretch = debian
buster = debian pygrub buster = debian
bullseye = debian pygrub bullseye = debian dont-test
bookworm = debian pygrub bookwork = debian dont-test
trixie = debian pygrub sid = debian
forky = debian pygrub dont-test
sid = debian pygrub
testing = debian pygrub testing = debian
oldoldstable = debian dont-test oldoldstable = debian dont-test
oldstable = debian pygrub oldstable = debian
stable = debian pygrub stable = debian
unstable = debian pygrub unstable = debian
# Between at least debootstrap 1.0.37 and 1.0.93 (including), dapper # Between at least debootstrap 1.0.37 and 1.0.93 (including), dapper
# and edgy may need manual adjustments in debootstrap's configuration, # and edgy may need manual adjustments in debootstrap's configuration,
@ -43,7 +41,7 @@ lucid = ubuntu eol pygrub
maverick = ubuntu eol pygrub maverick = ubuntu eol pygrub
natty = ubuntu eol pygrub natty = ubuntu eol pygrub
oneiric = ubuntu eol pygrub oneiric = ubuntu eol pygrub
precise = ubuntu eol pygrub ubuntu-archive-removed-keys.gpg precise = ubuntu pygrub ubuntu-archive-removed-keys.gpg
quantal = ubuntu eol pygrub quantal = ubuntu eol pygrub
raring = ubuntu eol pygrub raring = ubuntu eol pygrub
saucy = ubuntu eol pygrub saucy = ubuntu eol pygrub
@ -54,18 +52,9 @@ wily = ubuntu eol pygrub
xenial = ubuntu pygrub xenial = ubuntu pygrub
yakkety = ubuntu eol pygrub yakkety = ubuntu eol pygrub
zesty = ubuntu eol pygrub ubuntu-keyring-2012-archive.gpg zesty = ubuntu eol pygrub ubuntu-keyring-2012-archive.gpg
artful = ubuntu eol pygrub ubuntu-archive-keyring.gpg artful = ubuntu pygrub
bionic = ubuntu pygrub bionic = ubuntu pygrub
cosmic = ubuntu eol pygrub ubuntu-archive-keyring.gpg cosmic = ubuntu pygrub
disco = ubuntu eol pygrub ubuntu-archive-keyring.gpg disco = ubuntu pygrub
eoan = ubuntu eol pygrub ubuntu-archive-keyring.gpg
focal = ubuntu pygrub
groovy = ubuntu eol pygrub
hirsute = ubuntu eol pygrub
impish = ubuntu eol pygrub
jammy = ubuntu pygrub
kinetic = ubuntu eol pygrub
lunar = ubuntu pygrub
mantic = ubuntu pygrub dont-test
devel = ubuntu pygrub dont-test devel = ubuntu pygrub dont-test

View File

@ -30,7 +30,6 @@ memory = '{$memory}'
$OUT .= "maxmem = '$maxmem'\n"; $OUT .= "maxmem = '$maxmem'\n";
} }
} }
type = '{$type}'
# #
# Disk device(s). # Disk device(s).

View File

@ -72,25 +72,6 @@ setupStaticNetworking ()
if [ -n "${netmask}" ]; then if [ -n "${netmask}" ]; then
cidr="$(mask2cdr ${netmask})" cidr="$(mask2cdr ${netmask})"
fi fi
# p2p code by Volker Janzen
gate=" gateway4: ${gateway}";
point='';
if [ -n "${p2p}" ]; then
# For a p2p setup the gateway4 keyword is replaced by the
# following on-link default route, when it matches the
# gateway4.
if [ "${p2p}" = "${gateway}" ]; then
gate=" routes:
- to: 0.0.0.0/0
via: ${p2p}
on-link: true"
else
gate="${gate}
routes:
- to: ${p2p}
on-link: true"
fi
fi
# #
# We have a static IP address # We have a static IP address
@ -103,7 +84,7 @@ network:
ethernets: ethernets:
eth0: eth0:
addresses: [${ip1}/${cidr}] addresses: [${ip1}/${cidr}]
${gate} gateway4: ${gateway}
nameservers: nameservers:
addresses: [${nameserver}] addresses: [${nameserver}]
E_O_STATIC E_O_STATIC

View File

@ -40,11 +40,7 @@ fi
if [ ! -e ${prefix}/boot/grub/default ]; then if [ ! -e ${prefix}/boot/grub/default ]; then
echo default > ${prefix}/boot/grub/default echo default > ${prefix}/boot/grub/default
fi fi
mount -o bind /proc ${prefix}/proc
mount -o bind /dev ${prefix}/dev
chroot ${prefix} /usr/sbin/update-grub chroot ${prefix} /usr/sbin/update-grub
umount ${prefix}/proc
umount ${prefix}/dev
else else
logMessage "pygrub not set, skipping grub-legacy installation" logMessage "pygrub not set, skipping grub-legacy installation"

View File

@ -66,51 +66,23 @@ if ( test "${dist}" "!=" "sid" && test "${dist}" "!=" "unstable" && \
test -e /etc/apt/sources.list && \ test -e /etc/apt/sources.list && \
grep ^deb.*security -r /etc/apt/sources.list /etc/apt/sources.list.d >/dev/null 2>/dev/null ) ; then grep ^deb.*security -r /etc/apt/sources.list /etc/apt/sources.list.d >/dev/null 2>/dev/null ) ; then
if echo "${dist}" | egrep -q '\b(sarge|etch|lenny|squeeze|wheezy|jessie|stretch|buster)\b'; then cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list # Security updates
# #
# Security updates
#
deb http://security.debian.org/ ${dist}/updates main contrib non-free deb http://security.debian.org/ ${dist}/updates main contrib non-free
deb-src http://security.debian.org/ ${dist}/updates main contrib non-free deb-src http://security.debian.org/ ${dist}/updates main contrib non-free
E_O_APT E_O_APT
else
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
# Security updates
#
deb http://security.debian.org/ ${dist}-security main contrib non-free
deb-src http://security.debian.org/ ${dist}-security main contrib non-free
E_O_APT
fi
else else
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
if echo "${dist}" | egrep -q '\b(sarge|etch|lenny|squeeze|wheezyjessie|stretch|buster)\b'; then #
# Security updates - Uncomment to enable.
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list #
#
# Security updates - Uncomment to enable.
#
# deb http://security.debian.org/ ${dist}/updates main contrib non-free # deb http://security.debian.org/ ${dist}/updates main contrib non-free
# deb-src http://security.debian.org/ ${dist}/updates main contrib non-free # deb-src http://security.debian.org/ ${dist}/updates main contrib non-free
E_O_APT E_O_APT
else
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
# Security updates - Uncomment to enable.
#
# deb http://security.debian.org/ ${dist}-security main contrib non-free
# deb-src http://security.debian.org/ ${dist}-security main contrib non-free
E_O_APT
fi
fi fi
# #

View File

@ -36,16 +36,12 @@ if [ "${arch}" = "i386" ]; then
XEN_ARCH="686" XEN_ARCH="686"
elif [ "${arch}" = "amd64" ]; then elif [ "${arch}" = "amd64" ]; then
XEN_ARCH="amd64" XEN_ARCH="amd64"
elif [ "${arch}" = "arm64" ]; then
XEN_ARCH="arm64"
elif [ -z "${arch}" ]; then elif [ -z "${arch}" ]; then
UNAME_ARCH=`uname -m` UNAME_ARCH=`uname -m`
if [ "${UNAME_ARCH}" = "i686" ]; then if [ "${UNAME_ARCH}" = "i686" ]; then
XEN_ARCH="686" XEN_ARCH="686"
elif [ "${UNAME_ARCH}" = "x86_64" ]; then elif [ "${UNAME_ARCH}" = "x86_64" ]; then
XEN_ARCH="amd64" XEN_ARCH="amd64"
elif [ "${UNAME_ARCH}" = "aarch64" ]; then
XEN_ARCH="arm64"
else else
logMessage Unknown kernel architecture ${UNAME_ARCH}. logMessage Unknown kernel architecture ${UNAME_ARCH}.
logMessage Please report this as bug to xen-tools-dev@xen-tools.org. logMessage Please report this as bug to xen-tools-dev@xen-tools.org.

View File

@ -2,7 +2,7 @@
size=1G size=1G
type=ext3 type=ext3
mountpoint=/ mountpoint=/
options=defaults,errors=remount-ro options=sync,errors=remount-ro
[swap] [swap]
size=2G size=2G

View File

@ -1,95 +0,0 @@
#!perl -w
#
# Test that the /etc/inittab file is modified as we expect.
#
# Steve
# --
#
use strict;
use Test::More;
use Test::File::Contents;
use File::Temp;
use File::Copy;
use File::Path qw(make_path);
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dist (qw(stretch buster bullseye bookworm sid)) {
testHook( $dist );
}
done_testing();
sub testHook
{
my ( $dist ) = ( @_ );
my $ea = 'etc/apt';
my $easl = "$ea/sources.list";
my $hook = "$hook_dir/" .
(
$ENV{AS_INSTALLED_TESTING} ?
$dist :
'debian'
) . '/20-setup-apt';
#
# Create a temporary directory to use as prefix
#
my $dir = File::Temp::tempdir( CLEANUP => 1 );
make_path( "$dir/$ea/apt.conf.d", { chmod => 0755 });
make_path( "$dir/bin", { chmod => 0755 });
my $tmphook = "$dir/bin/20-setup-apt";
#
# Make sure that worked.
#
ok( -d $dir, "temporary directory created OK [$dist]" );
ok( -d "$dir/bin",
"bin inside temporary directory created OK [$dist]" );
ok( -d "$dir/$ea",
"$ea inside temporary directory created OK [$dist]" );
# Create a copy of the 20-setup-apt hook to be able to comment out
# the chroot + apt-get update call.
File::Copy::cp( $hook, $tmphook );
ok( -e "$tmphook", "hook exists in temporary directory [$dist]" );
# File::Copy in Perl 5.10 does not copy permissions, so let's fix
# it there and check for it elsewhere.
if ($] < 5.011) {
chmod(0755, $tmphook);
} else {
ok( -x "$tmphook", "hook is executable in temporary directory [$dist]" );
}
no warnings qw(qw);
is(system(qw(sed -e s/chroot/#chroot/ -i), $tmphook) >> 8, 0,
"chroot call in hook could be deactivated [$dist]");
use warnings qw(qw);
#
# Set up some variables expected by the hook
#
$ENV{dist} = $dist;
$ENV{mirror} = 'http://deb.debian.org/debian';
#
# Call the hook
#
is(system($tmphook, $dir) >> 8, 0,
"hook for $dist exited with zero return code");
ok( -e "$dir/$easl", "A sources.list file has been created. [$dist]" );
if ($dist =~ /stretch|buster/) {
file_contents_like( "$dir/$easl", qr(\b${dist}/updates\b),
"sources.list contains $dist/updates");
file_contents_unlike( "$dir/$easl", qr(\b${dist}-security\b),
"sources.list doesn't contain $dist-security");
} else {
file_contents_like( "$dir/$easl", qr(\b${dist}-security\b),
"sources.list contains $dist-security");
file_contents_unlike( "$dir/$easl", qr(\b${dist}/updates\b),
"sources.list doesn't contain $dist/updates");
}
}

View File

@ -23,7 +23,7 @@ if (which('git') and -d '.git') {
use_ok( 'Git' ); use_ok( 'Git' );
# First, check that no tracked files are ignored # First, check that no tracked files are ignored
my $cmd = Git::command_output_pipe('ls-files', '--cached', '--ignored', '--exclude-standard'); my $cmd = Git::command_output_pipe('ls-files', '--ignored', '--exclude-standard');
my $output; my $output;
while (<$cmd>) { $output .= "--> $_" } while (<$cmd>) { $output .= "--> $_" }
close $cmd; close $cmd;

View File

@ -9,9 +9,11 @@
use strict; use strict;
use File::Find; use File::Find;
use Test::More;
use Test::NoTabs; use Test::NoTabs;
# Check all Perl files
all_perl_files_ok();
# #
# Find all the files beneath the current directory, # Find all the files beneath the current directory,
# and call 'checkFile' with the name. # and call 'checkFile' with the name.
@ -52,36 +54,25 @@ sub checkFile
my $isShell = 0; my $isShell = 0;
my $isPerl = 0; my $isPerl = 0;
# Read the file.
if ( $file =~ /\.sh$/ ) { open( INPUT, "<", $file );
$isShell = 1; foreach my $line ( <INPUT> )
} elsif ( $file =~ /\.(pl|pm|t)$/ ) { {
$isPerl = 1; if ( ( $line =~ /\/bin\/sh/ ) ||
} else { ( $line =~ /\/bin\/bash/ ) )
# Read the file.
open( INPUT, "<", $file );
foreach my $line ( <INPUT> )
{ {
if ( ( $line =~ /^#! *\/bin\/sh/ ) || $isShell = 1;
( $line =~ /^#! *\/bin\/bash/ ) ) last;
{ }
$isShell = 1; if ( $line =~ /\/usr\/bin\/perl/ )
last; {
} last;
if ( $line =~ /^#!.*\bperl\b/ )
{
$isPerl = 1;
last;
}
} }
close( INPUT );
} }
close( INPUT );
# #
# Run check if it is a shell file. # Run check if it is a shell file.
# #
notabs_ok( $file ) if $isShell or $isPerl; notabs_ok( $file ) if $isShell;
} }
done_testing();