1
0
mirror of synced 2026-02-20 05:45:15 +00:00

Compare commits

..

60 Commits

Author SHA1 Message Date
Axel Beckert
e7607fa011 Release as 4.6 2015-07-20 16:33:05 +02:00
Axel Beckert
1d752fbb3e Update NEWS.markdown
Reformat older entries slightly to make them all identically
formatted.
2015-07-20 16:03:41 +02:00
Axel Beckert
bf73868a07 Update changelog for commits by Félix Barbeira
This closes GH-2.
2015-07-20 14:32:26 +02:00
Félix Barbeira
1396c05bf7 Added support for VLAN especification 2015-07-20 14:10:13 +02:00
Félix Barbeira
1df5885368 VLAN integration
VLAN integration with openvSwitch.
2015-07-20 13:42:57 +02:00
Axel Beckert
9f3da6c515 Document how to add wily support to debootstrap until it's fixed 2015-07-20 13:30:32 +02:00
Axel Beckert
b5ad1df1c1 README: No more Dom0 testing done for Lenny and Squeeze 2015-07-20 13:24:17 +02:00
Axel Beckert
1f4b04c2d4 Gah! ubuntu-archive-removed-keys.gpg is an empty file, so check for size 2015-07-17 22:49:57 +02:00
Axel Beckert
765901b8b2 New example script helpful for release testing 2015-07-17 22:49:57 +02:00
Axel Beckert
fb808b0198 Also support unstable distribution name, too 2015-07-17 22:26:45 +02:00
Axel Beckert
e8d51a5a15 Support oldstable and oldoldstable as distribution name, too
Notice: "oldoldstable" is not yet supported by debootstrap, see

Also mention Debian's LTS in TODO.md wrt. distribution.conf
2015-07-17 22:22:20 +02:00
Axel Beckert
33d5c2a046 New option --keyring which is passed through to deboootstrap.
Its default values work around bug #792729 in debootstrap.

Does not yet import those keys into APT's keyring inside the DomU.
(Not sure if debootstrap does that already, either.)
2015-07-17 21:17:49 +02:00
Axel Beckert
6b51ae7b7c Proper indentation of GetOptions arguments 2015-07-17 20:56:30 +02:00
Axel Beckert
7862a3a8d2 Document new Makefile targets, move signing to "release" 2015-07-17 19:25:08 +02:00
Axel Beckert
25373a6ed6 Make "release" target to include "orig-tar-gz" and tagging 2015-07-17 19:14:30 +02:00
Axel Beckert
23454e7154 Use maximum compression and don't store time stamps in tar ball 2015-07-17 19:14:30 +02:00
Axel Beckert
379129bad2 Always run the full test suite before doing a release 2015-07-17 19:14:30 +02:00
Axel Beckert
4bf1dbc54b Makefile: Use TMPDIR instead of TMP for temporary directories 2015-07-17 19:14:28 +02:00
Axel Beckert
796c594fc5 Consider Ubuntu 14.10 Utopic Unicorn as EoL, too. It's due next week 2015-07-17 13:21:30 +02:00
Axel Beckert
2dcea1666a Add as-installed testing support 2015-07-14 21:55:41 +02:00
Axel Beckert
e6653f1ae9 Move more tests to author-tests (xt) 2015-07-14 20:59:10 +02:00
Axel Beckert
581ac8b4d9 Split up tests in functionality and author tests 2015-07-14 20:18:40 +02:00
Axel Beckert
867aef4d2c Update debian/README.source with regards to Gitorious having closed 2015-07-14 18:51:07 +02:00
Axel Beckert
5ecffbb36a Add trailing slash to URL 2015-07-14 18:49:26 +02:00
Axel Beckert
ab7c53684e Mark Gitorious explicitly as outdated 2015-07-14 18:48:01 +02:00
Axel Beckert
91a88c5ae6 Remove obsolete or resolved TODOs 2015-07-04 01:04:19 +02:00
Axel Beckert
6b82585cc1 Report all SSH fingerprints of the created DomU, not only RSA one 2015-07-04 01:02:34 +02:00
Axel Beckert
ff87729cfe TODO/Idea: As-installed testing with ci.debian.net 2015-07-03 20:24:34 +02:00
Axel Beckert
d51e13a506 Add Coveralls badge to the README 2015-07-03 19:46:23 +02:00
Axel Beckert
8e81bcdfd0 Fix Travis CI and Coveralls URLs after repository move from xtaran/xen-tools to xen-tools/xen-tools 2015-07-03 19:39:54 +02:00
Axel Beckert
aa5456a823 Recommend lvm2, it's at least required if the --lvm option is used 2015-07-03 19:17:22 +02:00
Axel Beckert
80015dfa9a Add new dependency on Sort::Versions also to .travis.yml 2015-07-03 19:15:04 +02:00
Axel Beckert
4434acc7d9 Pass --yes to lvcreate only if LVM version is 2.02.99 or higher
Fixes regression introduced with 4.5 by the fix for #754517. The
regression has been reported upstream at
http://xen-tools.org/pipermail/xen-tools-discuss/2015-January/001079.html

Uses Sort::Versions for that. So add a new (build-)dependency on
libsort-versions-perl in the Debian package.
2015-07-03 19:06:16 +02:00
Axel Beckert
d49f4568fc TODO/Idea: --apt-options to pass arbitrary APT options via installDebianPackage 2015-06-19 11:05:11 +02:00
Axel Beckert
b31f766d2b Introduce new config files mirrors.conf and distributions.conf
Split off hardcoded release code names list and default mirrors in
xen-create-image into separate configuration file which are parsed
before the default settings or command-line options are set.
2015-06-12 01:39:14 +02:00
Axel Beckert
0ca84fa1a5 Use md5 as default hash method again
Older Debian releases are not able to cope with sha256 hashed
passwords and refuse login without any visible or accessible error
message.

This only affects the initially set root password and does not affect
passwords which are later set with the DomU's "passwd" tool.
2015-06-11 22:58:09 +02:00
Axel Beckert
07d68bb448 Call chmod in t/Makefile instead of inside t/modules.sh 2015-06-11 22:33:14 +02:00
Axel Beckert
1d07f06953 Testsuite: Optimize modules.sh 2015-06-11 22:32:00 +02:00
Axel Beckert
a52d422ba8 Changelog: Order upstream changes properly
Fix a spelling error found by Lintian, too.
2015-06-11 22:25:15 +02:00
Axel Beckert
aacfb59fe5 Testsuite: Let modules.sh ignore the .git directory
t/modules.t failed if a git commit message had a line starting with
"use ".
2015-06-11 22:19:48 +02:00
Axel Beckert
d06abe6fe2 Use -o APT::Install-Recommends=false instead of --no-install-recommends
Older APT releases bail out on unknown commandline options like
"--no-install-recommends", but accept any Foo=Bar setting to their
"-o" option.

Using -o APT::Install-Recommends=false instead of
--no-install-recommends in common.sh's installDebianPackage allows to
use some of the default hooks to be used unmodified again for older
Debian releases, e.g. Etch.
2015-06-11 22:07:20 +02:00
Axel Beckert
375ed5601b Add one forgotten occurence (long package description) of Wily Werewolf 2015-06-11 22:05:27 +02:00
Axel Beckert
43a22462e1 Support passing commandline options with --debootstrap-cmd 2015-06-11 22:04:20 +02:00
Axel Beckert
ba8eacf3ea Use just xen-hypervisor instead of an alternative list of xen-hypervisor-* packages
That way we also catch xen hypervisors on the supported ARM and
potential other future supported architectures.
2015-06-11 22:01:42 +02:00
Axel Beckert
87aba7164e Drop all occurrences of apt's --force-yes parameter
It only forces the installation of untrusted packages and that's
unwanted.

Closes: #776487
2015-06-11 18:08:52 +02:00
Axel Beckert
df3075ca1c Update list of Ubuntu releases: + wily, lucid → archived/eol 2015-06-11 16:20:08 +02:00
Axel Beckert
26dbd72413 Recommend {debian,ubuntu}-archive-keyring
debian-archive-keyring is needed for installing Debian DomUs on Debian
derivatives like Ubuntu. And ubuntu-archive-keyring is needed for
installing Ubuntu DomUs on Debian (and other derivatives).
ubuntu-archive-keyring is available in Debian since Jessie (8) and
Backports for Wheezy (7).
2015-06-11 13:48:16 +02:00
Axel Beckert
211a98dfac TODO: Two ideas after an IRC discussion with nirgal 2015-04-21 16:05:18 +02:00
Axel Beckert
42438d4497 Changelog entry for previous commit 2015-04-21 15:16:29 +02:00
Jean-Michel Nirgal Vourgère
0ccf513cf3 Allow # within configuration file comments
Line 20 of /etc/xen-tools/xen-tools.conf says: "Anything following a
'#' character is ignored as a comment."

This patch allows two or more hash characters in one row of the
configuration files.

Everything after the *first* hash is now ignored.

Closes: #783060
2015-04-21 14:39:54 +02:00
Axel Beckert
94341ccd43 Install bash completion into /usr/share/bash-completion/
Fixes lintian warning package-install-into-obsolete-dir.
2015-04-19 17:04:18 +02:00
Axel Beckert
0d90a901d6 Preliminary support for the Debian release after Jessie: Stretch 2015-04-19 16:39:48 +02:00
Axel Beckert
723d64fae4 Fix typo in long description 2015-04-19 16:36:30 +02:00
Axel Beckert
5cab796fcc Change all occurrences of http.debian.net to httpredir.debian.org 2015-04-19 16:31:41 +02:00
Axel Beckert
fd2ff2aab9 Known regression with older LVM releases and --yes to fix before the next release 2015-03-24 16:51:53 +01:00
Axel Beckert
2f05a3d03e Merge pull request #1 from jmelowry/patch-1
Fix typo in README
2015-03-06 08:59:13 +01:00
Jamie Lowry
50ec32858d typo in command. 2015-03-05 16:49:11 -08:00
Axel Beckert
8f8d390c12 Update URLs of Git repositories 2015-03-05 16:13:59 +01:00
Axel Beckert
561a69864f Add changelog entry for Lukas Schwaighofer's patch 2015-01-09 13:11:30 +01:00
Lukas Schwaighofer
a7a8028dc0 Fix usage of nonexistent variable in removeDebianPackage 2015-01-09 13:08:07 +01:00
50 changed files with 712 additions and 206 deletions

View File

@@ -12,7 +12,7 @@ before_install:
- sudo apt-get install devscripts dpkg-dev lsb-release
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
- 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}
script:

View File

@@ -1,11 +1,6 @@
KNOWN BUGS in xen-tools
=======================
Bugs to fix before next release
-------------------------------
[None so far]
Bugs to fix rather soon
-----------------------

View File

@@ -12,9 +12,9 @@
#
# Only used to build distribution tarballs.
#
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.5
TMPDIR ?= /tmp
DIST_PREFIX = ${TMPDIR}
VERSION = 4.6
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = git
@@ -34,7 +34,9 @@ nop:
@echo " diff = See local changes."
@echo " install = Install the software"
@echo " manpages = Make manpages beneath man/"
@echo " release = Make a release tarball"
@echo " tarball = Make a release tarball"
@echo " orig-tar-gz = Make a tarball suitably named for Debian"
@echo " release = Make a release tarball and sign it"
@echo " uninstall = Remove the software"
@echo " update = Update from the source repository."
@echo " "
@@ -93,7 +95,7 @@ diff:
fixup-perms:
for i in hooks/*/*-*; do chmod 755 $$i; done
chmod 755 hooks/common.sh
chmod 644 etc/xen-tools.conf
chmod 644 etc/*.conf
chmod 644 etc/xm.tmpl
chmod 644 etc/xm-nfs.tmpl
chmod 644 misc/*
@@ -107,12 +109,12 @@ install-etc:
-mkdir -p ${prefix}/etc/xen-tools/skel/
-mkdir -p ${prefix}/etc/xen-tools/role.d/
-mkdir -p ${prefix}/etc/xen-tools/partitions.d/
cp etc/xen-tools.conf ${prefix}/etc/xen-tools/
cp etc/*.conf ${prefix}/etc/xen-tools/
cp etc/xm.tmpl ${prefix}/etc/xen-tools/
cp etc/xm-nfs.tmpl ${prefix}/etc/xen-tools/
cp partitions/*-* ${prefix}/etc/xen-tools/partitions.d/
-mkdir -p ${prefix}/etc/bash_completion.d/
cp misc/xen-tools.bash-completion ${prefix}/etc/bash_completion.d/xen-tools
-mkdir -p ${prefix}/usr/share/bash-completion/completions/
cp misc/xen-tools.bash-completion ${prefix}/usr/share/bash-completion/completions/xen-tools
-mkdir -p ${prefix}/etc/initramfs-tools/conf.d/
cp misc/xen-tools.initramfs-tools ${prefix}/etc/initramfs-tools/conf.d/xen-tools
@@ -178,9 +180,13 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d squeeze.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d wheezy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d jessie.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d stretch.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 testing.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d stable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d oldstable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d oldoldstable.d
mkdir -p ${prefix}/usr/share/xen-tools/gentoo.d/
cp -R hooks/gentoo/*-* ${prefix}/usr/share/xen-tools/gentoo.d
mkdir -p ${prefix}/usr/share/xen-tools/dapper.d/
@@ -206,6 +212,7 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d trusty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d utopic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d vivid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d wily.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools
@@ -243,7 +250,11 @@ manpages:
#
# Make a new release tarball, and make a GPG signature.
#
release: tidy fixup-perms update-version update-modules clean changelog
release: orig-tar-gz
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
git tag -s -m "Release as $(VERSION)" "release-$(VERSION)"
tarball: test tidy fixup-perms update-version update-modules clean changelog
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
@@ -251,32 +262,27 @@ release: tidy fixup-perms update-version update-modules clean changelog
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/cover_db
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.git*
cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
gzip -9nv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz ..
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
#
# Make a new orig.tar.gz for the Debian package
#
orig-tar-gz: release
orig-tar-gz: tarball
cp -p ../$(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
cp -p ../$(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
#
# Run the test suite.
#
test: update-modules
test: non-author-test author-test
non-author-test: update-modules
prove --shuffle t/
#
# Run the test suite verbosely.
#
test-verbose:
prove --shuffle --verbose t/
author-test:
prove xt/
#
@@ -304,6 +310,8 @@ uninstall:
rm -f ${prefix}/usr/bin/xen-create-nfs
rm -f ${prefix}/usr/bin/xt-guess-suite-and-mirror
rm -f ${prefix}/etc/xen-tools/xen-tools.conf
rm -f ${prefix}/etc/xen-tools/distributions.conf
rm -f ${prefix}/etc/xen-tools/mirrors.conf
rm -f ${prefix}/etc/xen-tools/xm.tmpl
-rm -rf ${prefix}/etc/xen-tools/skel
-rmdir ${prefix}/etc/xen-tools/

View File

@@ -1,3 +1,228 @@
xen-tools 4.6 (released 20 Jul 2015)
====================================
New Features and Major Changes
------------------------------
* Drop all occurrences of apt's `--force-yes` parameter. It only
forces the installation of untrusted packages and that's
unwanted. (Closes Debian bug report #776487)
* Support passing commandline options with `--debootstrap-cmd`.
* Use MD5 as default hash method again, to be able to properly set
passwords in older releases. Does not affect passwords changed later
inside the DomU.
* Split off hardcoded release code names list and default mirrors in
`xen-create-image` into separate configuration file which are parsed
before the default settings or command-line options are set.
* Report all SSH fingerprints of the created DomU, not only RSA ones.
* Support VLANs with Open vSwitch (GH-2). Thanks to Félix Barbeira for
the patch.
New Options
-----------
* `--keyring` (xen-create-image, xt-install-image)
* `--vlan` (xen-create-image)
Distribution Releases Changes
-----------------------------
* Debian 9 Stretch (preliminary support)
* Ubuntu 15.10 Wily Werewolf (preliminary support; not yet suported by
debootstrap, see Debian bug report #787117)
* Ubuntu 12.04 Lucid Lynx is now EoL.
* Ubuntu 14.10 Utopic Unicorn is now EoL.
Improvements
------------
* Make test suite support as-installed-testing.
* Multiple release workflow improvements (target `release` in
`Makefile`).
* Supports `unstable`, `oldstable` and `oldoldstable` as distribution
names, too. (`oldoldstable` is not yet supported by debootstrap, see
Debian feature request #792734 in debootstrap.)
Bug Fixes
---------
* Fix usage of nonexistent variable in `removeDebianPackage` (Closes
Debian bug report #774936) Thanks Lukas Schwaighofer!
* Allows `#` within configuration file comments. (Closes Debian bug
report #783060; thanks Jean-Michel Nirgal Vourgère for the bug
report and patch!)
* Use `-o APT::Install-Recommends=false` instead of
`--no-install-recommends` for backwards compatibility with older APT
versions which don't know either (but accept any `Foo=Bar` parameter
to `-o`). Allows one to install earlier Debian releases (e.g. Etch)
with the default configuration again.
* Pass `--yes` to `lvcreate` only if LVM version is 2.02.99 or
higher. Fixes regression introduced with 4.5 by the fix for Debian
bug report #754517.
Other Changes
-------------
* Change all occurrences of `http.debian.net` to
`httpredir.debian.org`.
* Installs bash completion into `/usr/share/bash-completion/` (fixes
lintian warning `package-install-into-obsolete-dir`)
* Testsuite: Optimize and clean up modules.sh.
* Split up test suite in functionality/compatibility tests (`t`) and
author/release tests (`xt`).
* New example script helpful for release testing.
xen-tools 4.5 (released 25 Oct 2014)
====================================
New Features and Major Changes
------------------------------
* Apply patch by Adrian C. (anrxc) to allow to override hooks in
`/usr/share/xen-tools/*.d/` with hooks in `/etc/xen-tools/hooks.d/`.
Distribution Releases Changes
-----------------------------
* Ubuntu 14.10 Utopic Unicorn.
* Ubuntu 15.04 Vivid Vervet (preliminary support)
* Mark Ubuntu 13.10 Saucy Salamander as EoL
Improvements
------------
* Use `686-pae` kernels instead of `686` kernels on Debian Wheezy and
later. Thanks to Daniel Lintott! (Closes Debian bug report #742778)
* Pass `-y` option ("assume yes") to `yum` (Closes Debian bug report
#735675) Thanks Lionel FÉLICITÉ!
Bug Fixes
---------
* Fix always empty gateway on Debian DomUs (Thanks Joan! LP: #1328794)
* Fix `lvcreate` awaiting user input when creating swap LV (Closes
Debian bug report #754517) Thanks Eric Engstrom!
* Fix missing quoting in shell function `assert` in `hooks/common.sh`.
* Fix initial configuration summary in cases where `pygrub` is used.
* Fix corner cases where not the latest kernel would have been
checked.
* `--password` overrides `--genpass`. (Closes Debian bug report
#764143) Based on patch by Santiago Vila.
* Fix unaligned maxmem output of xen-create-image. (Closes Debian bug
report #764126; Patch by Santiago Vila)
* Fix copy & paste errors in comments in typos in `roles/puppet`
(Closes Debian bug report #764134; Patch by Santiago Vila)
* Fix typos in POD of `xen-create-image` (Closes Debian bug report
#764153; Patch by Santiago Vila)
Other Changes
-------------
* Drop all xend related sanity checks, they cause more havoc nowadays
than they help. Thanks Ian Campbell! (Closes Debian bug report
#732456)
* pygrub detection: Prefer `/usr/lib/xen-default` over `/usr/lib/xen-x.y`.
* Add password length sanity check with fallback to default length.
* Raise default password length from 8 to 23.
* Flush output after each line in `runCommand()`.
* `Makefile`: Clean up coverage data in multiple targets.
xen-tools 4.4 (released 11 Dec 2013)
====================================
Listing includes changes of according beta releases.
New Features and Major Changes
------------------------------
* Preliminary support for `xl` toolstack
* Ships `/etc/initramfs-tools/conf.d/xen-tools` for generating Dom0
initrds also suitable for DomU usage. Trigger `update-initramfs`.
* Installs a legacy `grub` in all `pygrub` based Debian/Ubuntu DomUs
to be able to update the `menu.list` automatically.
* `hooks/common.sh`: `installDebianPackage` no more installs
recommends, use `installDebianPackageAndRecommends` for that from
now on.
* `hooks/common.sh`: Rename `installCentOS4Package` to
`installRPMPackage`. Add `installCentOS4Package` wrapper for
backward compatibility.
* Better documents and checks requirements for the `--apt_proxy`
value. (See #623443 for the corresponding apt issue.) Requires now
`Data::Validate::URI`.
* Uses now `Data::Validate::Domain` and `Data::Validate::IP` for IP
addresses and hostname checks.
Newly Supported Distribution Releases
-------------------------------------
* Debian 8 Jessie
* Ubuntu 13.04 Raring
* Ubuntu 13.10 Saucy (preliminary support; debootstrap doesn't have
support for Saucy at the time of writing)
Improvements
------------
* Also recognize "M" and "G" instead of "MB" and "GB" as size unit for
`--memory`. Also document the recognized units. (Closes Debian bug
report #691320)
* `xen-list-images` now also outputs the file name of the config file.
* `xen-list-images` and `xen-delete-image` now understand `--extension`.
* Makefile accepts `DESTDIR=…`
* Move examples from debian/examples to examples.
* Adds default mount options for ext4, identical to ext2/ext3.
* By default install `linux-image-virtual` instead of
`linux-image-server` on Ubuntu Intrepid and newer (Hopefully closes:
#640099, LP #839492)
* Makes some options (like `--pygrub`) negatable.
* Rework "minimal" role to be less based on personal preferences:
* No more installs sudo, vim, syslog-ng, etc.
* Fixes usage together with pygrub.
Bug Fixes
---------
* Fix symbolic link hooks/centos-6/15-setup-arch (Closes Debian bug
report #690299)
* Execute END block not on --version/--help/--manual (Closes Debian
bug #684346)
* Move code for `--boot` feature to `END` block. Fixes missing SSH
fingerprint display if `--boot` was used. (Closes Debian bug report
#679183)
* Correctly handle aborts in `END` block. (Closes Debian bug report
#704882)
* Fixes `--extension=` with empty parameter.
* Sarge amd64 case handle properly
* `xt-install-image`: Don't bail out if only `cdebootstrap` is
installed but not `debootstrap` (Thanks Elmar Heeb!)
* Fix filesystem tools installation in `91-install-fs-tools` (which
was broken since 4.3~rc1-1) by merging `91-install-fs-tools back`
into `90-make-fstab`. (Closes Debian bug report #715340) Also
supports RPM-based distributions now.
* Fixes creation of `ARRAY(0x#).log` named log files.
Other Changes
-------------
* Code deduplication to unify the `xen-*-image` scripts
* Moves `/usr/lib/xen-tools/` to `/usr/share/xen-tools/`
* Use `http.debian.net` as default Debian mirror if no mirror is given
and `xt-guess-suite-and-mirror` is not used.
* Default DomUs to use the noop scheduler (Closes Debian bug report
#693131)
* Fixes export of environment variables. Previously they could contain
dashes and then were only accessible from within Perl, but not from
within Bash.
* Uses `Test::NoTabs` instead of its own test for that.
* Removes unused Perl modules `Xen::Tools` and `Xen::Tools::Log` from
source code. Also removes the according tests from the test
suite. No more needs `Moose`.
xen-tools 4.3.1 (released 30-Jun-2012)
======================================
@@ -7,6 +232,28 @@ Bugfix Release only
xen-tools 4.3 (released 26-Jun-2012)
====================================
Listing includes changes of according beta releases.
New Features and Major Changes
------------------------------
* Massive code deduplication in hooks directory
New Options
-----------
* `--dontformat` (xen-create-image)
* `--finalrole` (xen-create-image)
* `--apt_proxy` (xen-create-image)
Newly Supported Distribution Releases
-------------------------------------
* Ubuntu 11.10 Oneiric
* Ubuntu 12.04 Precise
* Ubuntu 12.10 Quantal
* CentOS 6
Bug Fixes
---------
@@ -19,30 +266,6 @@ Other Changes
* Remove most Mercurial traces
xen-tools 4.3rc1 (released 08 Jun 2012)
=======================================
New Features and Major Changes
------------------------------
* Massive code deduplication in hooks directory
New Options
-----------
--dontformat (xen-create-image)
--finalrole (xen-create-image)
--apt_proxy (xen-create-image)
Newly Supported Distribution Releases
-------------------------------------
* Ubuntu 11.10 Oneiric
* Ubuntu 12.04 Precise
* Ubuntu 12.10 Quantal
* CentOS 6
xen-tools 4.2.1 (released 17 Mar 2011)
======================================
@@ -65,11 +288,11 @@ New Options
New Features and Major Changes
------------------------------
* Uses hvc0 and xvda devices by default
* Also supports cdebootstrap
* Uses `hvc0` and `xvda` devices by default
* Also supports `cdebootstrap`
* Preliminary btrfs support.
* Uses GeoIP for Debian mirrors: Default Debian mirror is now
cdn.debian.net, see http://wiki.debian.org/DebianGeoMirror for
`cdn.debian.net`, see http://wiki.debian.org/DebianGeoMirror for
details.
* New helper program xt-guess-suite-and-mirror, used to find the
* New helper program `xt-guess-suite-and-mirror`, used to find the
default mirror and suite.

View File

@@ -1,12 +1,13 @@
xen-tools
=========
[![Travis CI Build Status](https://travis-ci.org/xtaran/xen-tools.svg)](https://travis-ci.org/xtaran/xen-tools)
[![Travis CI Build Status](https://api.travis-ci.org/xen-tools/xen-tools.svg)](https://travis-ci.org/xen-tools/xen-tools)
* [Homepage](http://www.xen-tools.org/software/xen-tools)
* Git Repository:
* [at Gitorious](http://gitorious.org/xen-tools)
* [at GitHub](http://github.com/xtaran/xen-tools)
* Git Repositories:
* [at GitLab](http://gitlab.com/xen-tools/xen-tools)
* [at GitHub](http://github.com/xen-tools/xen-tools)
* [at Gitorious](http://gitorious.org/xen-tools) (_outdated_, no more updated, for historical reference only)
* [Mailing Lists](http://www.xen-tools.org/software/xen-tools/lists.html)
About
@@ -16,7 +17,7 @@ xen-tools contains a collection of Perl scripts for working with Xen
guest images under Linux.
Using this software, you can easily create new
[Xen](http://www.xen.org) guests configured to be accessible over the
[Xen](http://www.xen.org/) guests configured to be accessible over the
network via [OpenSSH](http://www.openssh.org/).
xen-tools currently has scripts to install most releases of
@@ -32,10 +33,11 @@ known to work reliably, i.e.:
* Sarge 3.1 (i386 and DomU only)
* Etch 4.0 (Dom0 no more tested)
* Lenny 5.0
* Squeeze 6.0
* Lenny 5.0 (Dom0 no more tested)
* Squeeze 6.0 (Dom0 no more tested)
* Wheezy 7
* Jessie 8 (under development)
* Jessie 8
* Stretch 9 (under development)
* Sid (always under development; works at least at the moment of writing :-)
### Ubuntu
@@ -60,7 +62,10 @@ known to work reliably, i.e.:
* Saucy Salamander 13.10
* Trusty Tahr 14.04 (LTS)
* Utopic Unicorn 14.10
* Vivid Vervet 15.04 (under development)
* Vivid Vervet 15.04
* Wily Werewolf 15.10 (under development, not yet suported by
debootstrap, see [#787117][3], but adding a symbolic link from
`/usr/share/debootstrap/scripts/wily` to `gutsy` suffices.)
[1]: http://bugs.debian.org/659360
"debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
@@ -68,6 +73,9 @@ known to work reliably, i.e.:
[2]: http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest
"There is an issue with debootstrap on hardy not installing ksyslogd."
[3]: https://bugs.debian.org/787117
"debootstrap: missing wily"
### CentOS
(only DomUs tested, pygrub support incomplete)
@@ -121,7 +129,7 @@ project.
Installation
------------
As root or with sudo, execute `make instal`.
As root or with sudo, execute `make install`.
See `debian/README.source` how to build the Debian package from a
checked out copy of the git repository (i.e. without a source tar
@@ -205,10 +213,12 @@ followed roughly the same ideas, but less strict.
Test Suite Coverage
-------------------
[![Coverage Status](https://coveralls.io/repos/xen-tools/xen-tools/badge.svg?branch=master)](https://coveralls.io/r/xen-tools/xen-tools?branch=master)
Despite parts of the test suite are quite old, it only tests a small
fraction of what xen-tools can do. Some of the scripts currently could
only be tested on an actual Xen Dom0. Hence the
[code coverage of xen-tools' test suite is quite bad](https://coveralls.io/r/xtaran/xen-tools).
[code coverage of xen-tools' test suite is quite bad](https://coveralls.io/r/xen-tools/xen-tools).
--
The Xen-Tools Developer Team

View File

@@ -3,6 +3,22 @@ TODO
See KNOWN_BUGS.markdown for real bugs.
General Ideas
-------------
* Support per-distribution-release defaults for at least the file
system.
* Add an option named `--apt-options` or similar to pass arbitrary APT
options via installDebianPackage() and friends. The reasoning behind
this idea is in
[this mail](http://xen-tools.org/pipermail/xen-tools-discuss/2015-June/001103.html)
and the following mails on the xen-tools-discuss mailing list.
* Add keys in keyring given by `--keyring` to APT's keyring inside the
DomU by adding it with `apt-key add`.
Bugs to fix and features to add for 5.0
---------------------------------------
@@ -52,7 +68,7 @@ Bugs to fix and features to add for 5.0
* `xen-create-image --dist=…` / sources.list generation should be more fine-grained
xen-tools should offer the possibility to enable/disable
security/volatile/backports as well as
security/volatile/backports/lts as well as
contrib/non-free/universe/restricted/multiverse for each of them not
only based on defaults plus the Dom0's sources.list
@@ -129,9 +145,6 @@ Bugs to fix and features to add for 5.0
`authorized_keys` (e.g. a users public key) or to just add the Dom0's
`/root/.ssh/authorized_keys` as the DomU's one.
* Generate ECDSA host keys where possible. (Likely depends on the
to-be-installed SSH version.)
* More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up

View File

@@ -124,6 +124,9 @@ and EVMS EXAMPLE.
--(no)keep (Don't) keep our images if installation fails. It
maybe unmounted, though.
--keyring=/path/to/keyring
Set the path to the keyring debootstrap should use.
--kernel=/path/to/kernel
Set the path to the kernel to use for domU. If a
kernel is specified it must exist.
@@ -242,12 +245,12 @@ and EVMS EXAMPLE.
--mirror=url Setup the mirror to use when installing via
debootstrap. (Default value: mirror used in
/etc/apt/sources.list or for Debian
"http://http.debian.net/debian/" and for Ubuntu
"http://httpredir.debian.org/debian/" and for Ubuntu
"http://archive.ubuntu.com/ubuntu/")
The above mentioned Debian mirror hostname
automatically tries to choose a more or less close
Debian mirror. See http://http.debian.net/ for
Debian mirror. See http://httpredir.debian.org/ for
details.
--apt_proxy=protocol://hostname:port/
@@ -305,6 +308,9 @@ and EVMS EXAMPLE.
Optionally, set a specific vif name for the new
instance.
--vlan=1 OpenvSwitch related, optionally you can specify a vlan
where the virtual machine has connectivity.
Mandatory options:
@@ -797,6 +803,7 @@ use Env;
use File::Path qw/ mkpath /;
use File::Temp qw/ tempdir /;
use File::Copy qw/ mv cp /;
use File::Slurp;
use File::Which;
use Getopt::Long;
use Pod::Usage;
@@ -806,6 +813,7 @@ use Data::Validate::IP qw/ is_ipv4 /;
use Data::Validate::Domain qw/ is_hostname /;
use Term::UI;
use Term::ReadLine;
use Sort::Versions;
use Xen::Tools::Common;
@@ -816,6 +824,18 @@ use Xen::Tools::Common;
my %CONFIG;
#
# Distribution meta data
#
my %DIST;
#
# Mirror meta data
#
my %MIRROR;
#
# Partition layout information values read from the partitions file,
# or constructed automatically if no partitions file is specified.
@@ -839,7 +859,7 @@ my $MOUNT_POINT = undef;
#
# Release number.
#
my $RELEASE = '4.5';
my $RELEASE = '4.6';
#
@@ -864,6 +884,18 @@ my $default_genpass_len = 23;
sub fail ($) { fail_with_config($_[0], \%CONFIG); }
sub logprint ($) { logprint_with_config($_[0], \%CONFIG); }
#
# Read the global distributions meta data file.
#
readConfigurationFile("/etc/xen-tools/distributions.conf", \%DIST);
#
# Read the global default mirrors file.
#
readConfigurationFile("/etc/xen-tools/mirrors.conf", \%MIRROR);
#
# Setup default options.
#
@@ -1249,21 +1281,26 @@ sub setupDefaultOptions
# Default distribution is Debian Stable
$CONFIG{ 'dist' } = 'stable';
$CONFIG{ 'mirror' } = '';
$CONFIG{ 'keyring' } = '';
# Initialize per distribution mirror defaults: Debian
foreach my $debdist (qw(squeeze wheezy jessie sid testing oldstable stable unstable)) {
$CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian';
}
foreach my $debdist (qw(sarge etch lenny)) {
$CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian-archive/debian';
}
# Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(lucid precise trusty utopic vivid)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
}
foreach my $ubuntudist (qw(dapper edgy feisty gutsy hardy intrepid jaunty karmic maverick natty oneiric quantal raring saucy)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
# Initialize per distribution mirror defaults
foreach my $debdist (keys %DIST) {
my $debdistinfo = $DIST{$debdist};
foreach my $dist (qw(debian ubuntu)) {
if ($debdistinfo =~ /$dist/) {
if ($debdistinfo =~ /eol/) {
$CONFIG{ 'mirror_'.$debdist } = $MIRROR{$dist.'_archive'} or
die $dist.'_archive not defined in /etc/xen-tools/mirrors.conf';
my $removed_keys = "/usr/share/keyrings/$dist-archive-removed-keys.gpg";
$CONFIG{ 'keyring_'.$debdist } = $removed_keys if -s $removed_keys;
} else {
$CONFIG{ 'mirror_'.$debdist } = $MIRROR{$dist} or
die $dist.' not defined in /etc/xen-tools/mirrors.conf';
}
}
}
}
$CONFIG{ 'apt_proxy' } = '';
$CONFIG{ 'arch' } =
which('dpkg') ? `dpkg --print-architecture` : '';
@@ -1294,7 +1331,7 @@ sub setupDefaultOptions
$CONFIG{ 'genpass' } = 1;
$CONFIG{ 'genpass_len' } = $default_genpass_len;
$CONFIG{ 'password' } = undef;
$CONFIG{ 'hash_method' } = 'sha256';
$CONFIG{ 'hash_method' } = 'md5';
#
# The program to run to create a filesystem.
@@ -1422,6 +1459,10 @@ sub checkOption
check => sub { is_uri($_[0]) },
message => "must be an URI including the protocol\n",
},
vlan => {
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",
},
);
# Define what argument each option accepts.
@@ -1434,6 +1475,7 @@ sub checkOption
memory => 'integerWithSuffix',
maxmem => 'integerWithSuffix',
kernel => 'existingFile',
keyring => 'existingFile',
initrd => 'existingFile',
modules => 'existingDir',
serial_device => 'serialDev',
@@ -1458,6 +1500,7 @@ sub checkOption
ip => 'ipv4_or_auto',
hash_method => 'hashMethod',
apt_proxy => 'uri',
vlan => 'vlan',
);
# If given option does not exists in optionsTypes,
@@ -1540,6 +1583,7 @@ sub parseCommandLineArguments
"kernel=s", \&checkOption,
"initrd=s", \&checkOption,
"mirror=s", \&checkOption,
"keyring=s", \&checkOption,
"apt_proxy=s", \&checkOption,
"modules=s", \&checkOption,
"lvm=s", \$install{ 'lvm' },
@@ -1567,6 +1611,7 @@ sub parseCommandLineArguments
"nameserver=s", \&checkOption,
"vifname=s", \&checkOption,
"p2p=s", \&checkOption,
"vlan=s", \&checkOption,
# Exclusive
#
@@ -1592,14 +1637,14 @@ sub parseCommandLineArguments
"pygrub!", \$CONFIG{ 'pygrub' },
"passwd!", \$CONFIG{ 'passwd' },
"genpass=i", \&checkOption,
"genpass-len=i", \&checkOption,
"genpass_len=i", \&checkOption,
"genpass-len=i",\&checkOption,
"genpass_len=i",\&checkOption,
"password=s", \&checkOption,
"hash_method=s",\&checkOption,
"partitions=s", \&checkOption,
"role=s", \&checkOption,
"role-args=s", \&checkOption,
"finalrole=s", \&checkOption,
"finalrole=s", \&checkOption,
"roledir=s", \&checkOption,
"force!", \$CONFIG{ 'force' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
@@ -1753,7 +1798,7 @@ sub checkArguments
#
# Lucid and probably all later Ubuntus, too, don't work without pygrub
#
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid/ )
if ( $DIST{ $CONFIG{ 'dist' } } =~ /pygrub/ )
{
$CONFIG{ 'pygrub' } = 1;
}
@@ -1780,6 +1825,17 @@ sub checkArguments
$CONFIG{ 'mirror' } = $CONFIG{ $distMirror };
}
#
# If no keyring is set, use the default per-distro keyring if present
#
my $distKeyring = "keyring_" . $CONFIG{ 'dist' };
if ( !$CONFIG{ 'keyring' } and
$CONFIG{ $distKeyring } and
length( $CONFIG{ $distKeyring } ) )
{
$CONFIG{ 'keyring' } = $CONFIG{ $distKeyring };
}
#
# NOTE: FAKE!
#
@@ -2721,6 +2777,7 @@ EOF
$CONFIG{ 'gateway' } && logprint("Gateway : $CONFIG{'gateway'}\n");
$CONFIG{ 'nameserver' } && logprint("Nameserver : $CONFIG{'nameserver'}\n");
$CONFIG{ 'p2p' } && logprint("Point to Point : $CONFIG{'p2p'}\n");
$CONFIG{ 'vlan' } && logprint("VLAN : $CONFIG{'vlan'}\n");
print "\n";
}
@@ -3021,6 +3078,31 @@ sub createLVMBits
}
}
#
# For the calls to lvcreate below, we first need to check for the
# version of LVM running as their have been incompatible API
# changes somewhere between "2.02.95(2) (2012-03-06)" in Debian 7
# Wheezy and "2.02.111(2) (2014-09-01)" in Debian 8 Jessie. *sigh*
#
# See https://bugs.debian.org/754517
#
# I currently assume that all LVM version starting with 2.02.99
# should be fine with passing --yes as that version has an
# upstream changelog entry "Accept --yes in all commands so test
# scripts can be simpler".
#
# Assumes --yes is necessary if the LVM version can't be parsed.
my $lvm_needs_yes = 1;
my $lvm_version_output = `lvm version`;
if ($lvm_version_output =~ /^\s*LVM\s*version:\s*(\d[.\d]*)[\s(]/) {
my $lvm_version = $1;
my $no_yes_below_version = '2.02.99';
$lvm_needs_yes =
versioncmp($lvm_version, $no_yes_below_version) >= 0;
}
foreach my $partition (@PARTITIONS)
{
my $disk = $CONFIG{ 'hostname' } . '-' . $partition->{ 'name' };
@@ -3036,7 +3118,9 @@ sub createLVMBits
# The commands to create the volume.
#
my $disk_cmd =
"lvcreate $CONFIG{'lvm'} --yes -L $partition->{'size'} -n $disk";
"lvcreate $CONFIG{'lvm'} ".
($lvm_needs_yes ? '--yes' : '').
" -L $partition->{'size'} -n $disk";
#
# Create the volume
@@ -3406,6 +3490,14 @@ sub installSystem
$cmd .= " --arch=$CONFIG{'arch'}";
}
#
# Propagate --keyring
#
if ( $CONFIG{ 'keyring' } )
{
$cmd .= " --keyring=$CONFIG{'keyring'}";
}
#
# Propagate --debootstrap-cmd if install-method is debootstrap
@@ -3413,7 +3505,7 @@ sub installSystem
if ( $CONFIG{ 'install-method' } eq 'debootstrap' and
$CONFIG{ 'debootstrap-cmd' } )
{
$cmd .= " --debootstrap-cmd=$CONFIG{'debootstrap-cmd'}";
$cmd .= " --debootstrap-cmd='$CONFIG{'debootstrap-cmd'}'";
}
@@ -4065,21 +4157,35 @@ END
exit $exitcode if $VERSION || $HELP || $MANUAL || $DUMPCONFIG;
my $host_rsa_key = '';
my %host_key = ();
#
# Unmount the image if it is still mounted.
#
if ( defined($MOUNT_POINT) )
{
#
# Before we unmount get the host's RSA key
# Before we unmount get the host's SSH keys' fingerprints
#
my $key_path .= $MOUNT_POINT;
$key_path .= '/etc/ssh/ssh_host_rsa_key.pub';
if ( `ssh-keygen -lf $key_path` =~ /^(\S+)\s+(\S+)/ ) {
$host_rsa_key = $2;
} else {
$host_rsa_key = "N/A";
my $key_dir = $MOUNT_POINT.'/etc/ssh';
my @pubkey_files =
grep { /^ssh_host_.*\.pub$/; } read_dir($key_dir);
foreach my $pubkey_file (@pubkey_files) {
my $pubkey_path = "$key_dir/$pubkey_file";
my $fingerprint_line = `ssh-keygen -lf "$pubkey_path"`;
if ($fingerprint_line =~ /^(\S+)\s+(\S+)/ ) {
my $fingerprint = $2;
my $algo = '[unspecified hashing algorithm]';
if ($fingerprint_line =~ /^\S+\s+\S+\s+\S+\s+\((\S+)\)/ ) {
$algo = $1;
} elsif ($pubkey_file =~ /^ssh_host_(\S+)_key\.pub$/) {
$algo = uc($1);
} elsif ($pubkey_file eq 'ssh_host_key.pub') {
$algo = 'SSH1';
}
$host_key{$algo} = $fingerprint;
} else {
warn "Can't parse ssh-keygen output: $fingerprint_line";
}
}
unMountImage($MOUNT_POINT, $CONFIG{'FAIL'});
}
@@ -4195,7 +4301,9 @@ END
logprint( $IP_ADDRESSES );
}
logprint("\n");
logprint("RSA Fingerprint : $host_rsa_key\n");
foreach my $algo (sort keys %host_key) {
logprint("SSH Fingerprint : $host_key{$algo} ($algo)\n");
}
logprint("Root Password : ");
if ( $PASSWORD ) {
logprint("$PASSWORD\n");

View File

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

View File

@@ -163,7 +163,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.5';
my $RELEASE = '4.6';
#

View File

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

View File

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

View File

@@ -113,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.5';
my $RELEASE = '4.6';
#
@@ -302,7 +302,7 @@ sub updateXenImage
# Now upgrade
#
system(
"DEBIAN_FRONTEND=noninteractive chroot $tmp /usr/bin/apt-get upgrade --yes --force-yes"
"DEBIAN_FRONTEND=noninteractive chroot $tmp /usr/bin/apt-get upgrade --yes"
);
#

View File

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

View File

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

View File

@@ -52,9 +52,9 @@ full text of the license.
# Fallback to Debian or Ubuntu in case we can't find anything
my $fallback = 'Debian';
# Which mirrors to use if everything else fails (http.debian.net
# Which mirrors to use if everything else fails (httpredir.debian.org
# redirects to a working mirror nearby)
my %fallback_mirror = ( Debian => 'http://http.debian.net/debian/',
my %fallback_mirror = ( Debian => 'http://httpredir.debian.org/debian/',
Ubuntu => 'http://archive.ubuntu.com/ubuntu/' );
# Which suite to use if everything else fails. For Debian "stable"
@@ -79,7 +79,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.5';
my $RELEASE = '4.6';
# Init
my $mirror = '';

View File

@@ -28,6 +28,7 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
configuration file.
--mirror The mirror to use when installing with 'debootstrap'.
--apt_proxy The proxy to use when installing with 'debootstrap'.
--keyring The keyring to use when installing with 'debootstrap'.
Installation Options:
--install-method Specify the installation method to use.
@@ -112,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.5';
my $RELEASE = '4.6';
#
@@ -337,6 +338,7 @@ sub parseCommandLineArguments
"cachedir=s", \$CONFIG{ 'cachedir' },
"config=s", \$CONFIG{ 'config' },
"mirror=s", \$CONFIG{ 'mirror' },
"keyring=s", \$CONFIG{ 'keyring' },
"apt_proxy=s", \$CONFIG{ 'apt_proxy' },
# Help.
@@ -635,6 +637,14 @@ sub do_debootstrap
$EXTRA .= " --arch $CONFIG{'arch'}";
}
#
# Propogate the --keyring argument
#
if ( $CONFIG{ 'keyring' } )
{
$EXTRA .= " --keyring=$CONFIG{'keyring'}";
}
#
# Setup http_proxy so that debootstrap pulls files through the apt-proxy
#

View File

@@ -4,7 +4,7 @@ How to build xen-tools directly from the Git repository?
Clone the git repository and change to the directory of your local
working copy.
$ git clone git://gitorious.org/xen-tools/xen-tools.git
$ git clone git://github.com/xen-tools/xen-tools.git
$ cd xen-tools
If you just want to build the binary package, run
@@ -18,5 +18,4 @@ Debian or Ubuntu:
$ make orig-tar-gz
$ dpkg-buildpackage
-- Axel Beckert <abe@debian.org>, Mon, 13 Sep 2010 14:30:05 +0200
-- Axel Beckert <abe@debian.org>, Tue, 14 Jul 2015 18:35:38 +0200

65
debian/changelog vendored
View File

@@ -1,3 +1,68 @@
xen-tools (4.6-1) unstable; urgency=low
* New upstream release
+ Fix usage of nonexistent variable in removeDebianPackage (Closes:
#774936) Thanks Lukas Schwaighofer!
+ Change all occurrences of http.debian.net to httpredir.debian.org
+ Ubuntu 12.04 Lucid Lynx and 14.10 Utopic Unicorn now EoL.
+ Preliminary support for Debian 9 Stretch and Ubuntu 15.10 Wily
Werewolf.
+ Installs bash completion into /usr/share/bash-completion/ (fixes
lintian warning package-install-into-obsolete-dir)
+ Allows # within configuration file comments. (Closes: #783060;
thanks Jean-Michel Nirgal Vourgère for the bug report and patch!)
+ Testsuite: Let modules.sh ignore the .git directory. (t/modules.t
failed if a git commit message had a line starting with "use ".)
+ Testsuite: Optimize and clean up modules.sh.
+ Drop all occurrences of apt's --force-yes parameter. It only forces
the installation of untrusted packages and that's unwanted. (Closes:
#776487)
+ Support passing commandline options with --debootstrap-cmd.
+ Use -o APT::Install-Recommends=false instead of
--no-install-recommends for backwards compatibility with older APT
versions which don't know either (but accept any Foo=Bar parameter
to "-o"). Allows one to install earlier Debian releases (e.g. Etch)
with the default configuration again.
+ Use md5 as default hash method again, to be able to properly set
passwords in older releases. Does not affect passwords changed later
inside the DomU.
+ Split off hardcoded release code names list and default mirrors in
xen-create-image into separate configuration file which are parsed
before the default settings or command-line options are set.
+ Pass --yes to lvcreate only if LVM version is 2.02.99 or
higher. Fixes regression introduced with 4.5 by the fix for #754517.
- Add new (build-)dependency on libsort-versions-perl.
+ Report all SSH fingerprints of the created DomU, not only RSA ones.
+ Split up test suite in functionality/compatibility tests (t) and
author/release tests (xt).
+ Make test suite support as-installed-testing
- Mark package as autopkgtestable.
+ Multiple release workflow improvements (target release in Makefile):
- Use TMPDIR instead of TMP for temporary directories.
- Always run the full test suite before doing a release.
- Use maximum compression and don't store time stamps in tar ball.
- Make "release" target to include "orig-tar-gz" and tagging.
+ New option --keyring which is passed through to deboootstrap. Its
default values work around bug #792729 in debootstrap.
+ Supports "unstable", "oldstable" and "oldoldstable" as distribution
names, too. ("oldoldstable" is not yet supported by debootstrap, see
feature request #792734 in debootstrap.)
+ New example script helpful for release testing.
+ Support VLANs with Open vSwitch (GH-2). Thanks to Félix Barbeira
for the patch.
* Update Vcs-* headers and documentation as Gitorious closed its doors
in June 2015 and is now only available with static contents.
* Recommend debian-archive-keyring (for installing Debian DomUs on
derivatives) and ubuntu-archive-keyring (for installing Ubuntu DomUs
on Debian).
* Reduce the list of alternative xen-hypervisor-* packages to just
"xen-hypervisor" which is a virtual package provided by at least all
xen-hypervisor-* packages since Debian 6 Squeeze.
* Recommend lvm2, it's at least required if the --lvm option is used.
* Add an adequate as-installed test to debian/tests/control.
-- Axel Beckert <abe@debian.org> Mon, 20 Jul 2015 16:05:04 +0200
xen-tools (4.5-1) unstable; urgency=low
* New upstream release

20
debian/control vendored
View File

@@ -12,14 +12,16 @@ Build-Depends: debhelper (>= 9~),
libfile-which-perl,
liblog-message-perl | perl (<< 5.17.0),
libterm-ui-perl | perl (<< 5.17.0),
libsort-versions-perl,
libtest-notabs-perl,
libtest-pod-coverage-perl,
libtest-pod-perl,
libtext-template-perl
Standards-Version: 3.9.6
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
Vcs-Browser: https://gitlab.com/xen-tools/xen-tools
Vcs-Git: https://gitlab.com/xen-tools/xen-tools.git
Testsuite: autopkgtest
Package: xen-tools
Architecture: all
@@ -30,15 +32,19 @@ Depends: debootstrap | cdebootstrap,
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
libsort-versions-perl,
libterm-ui-perl | perl (<< 5.17.0),
libtext-template-perl,
openssh-client,
perl,
${misc:Depends},
${perl:Depends}
Recommends: libexpect-perl,
Recommends: debian-archive-keyring,
libexpect-perl,
lvm2,
rinse (>= 1.9.1-1),
xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae,
ubuntu-archive-keyring,
xen-hypervisor,
xen-utils
Suggests: btrfs-tools,
cfengine2,
@@ -57,7 +63,8 @@ Description: Tools to manage Xen virtual servers
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7 Wheezy
* Debian 8 Jessie (under development)
* Debian 8 Jessie
* Debian 9 Stretch (under development)
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
@@ -77,6 +84,7 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 13.10 Saucy Salamander
* Ubuntu 14.04 Trusty Tahr (LTS)
* Ubuntu 14.10 Utopic Unicorn
* Ubuntu 15.05 Vivid Vervet (under development)
* Ubuntu 15.04 Vivid Vervet
* Ubuntu 15.10 Wily Werewolf (under development)
* CentOS 5
* CentOS 6

3
debian/rules vendored
View File

@@ -5,4 +5,7 @@
%:
dh $@
override_dh_auto_test:
make non-author-test
override_dh_auto_build:

3
debian/tests/adequate vendored Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
adequate xen-tools >&2

5
debian/tests/control vendored Normal file
View File

@@ -0,0 +1,5 @@
Tests: functionality
Depends: @, @builddeps@
Tests: adequate
Depends: @, adequate

15
debian/tests/functionality vendored Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
export AS_INSTALLED_TESTING=1
prove -j1 -v \
t/hook-daemons.t \
t/hook-hostname.t \
t/hook-inittab.t \
t/hook-tls.t \
t/hooks.t \
t/plugin-checks.t \
t/pod-check.t \
t/xen-delete-image.t \
t/xen-lists-images.t \
t/xt-create-xen-config.t

44
etc/distributions.conf Normal file
View File

@@ -0,0 +1,44 @@
# xen-tools configuration file for distibution meta data
#
# Syntax:
#
# codename = distribution and further keywords
#
# Known distributions: debian, ubuntu
# Known keywords: eol, pygrub
#
sarge = debian eol
etch = debian eol
lenny = debian eol
squeeze = debian
wheezy = debian
jessie = debian
stretch = debian
sid = debian
testing = debian
oldoldstable = debian
oldstable = debian
stable = debian
unstable = debian
dapper = ubuntu eol
edgy = ubuntu eol
feisty = ubuntu eol
gutsy = ubuntu eol
hardy = ubuntu eol
intrepid = ubuntu eol
jaunty = ubuntu eol
karmic = ubuntu eol
lucid = ubuntu eol pygrub
maverick = ubuntu eol pygrub
natty = ubuntu eol pygrub
oneiric = ubuntu eol pygrub
precise = ubuntu pygrub
quantal = ubuntu eol pygrub
raring = ubuntu eol pygrub
saucy = ubuntu eol pygrub
trusty = ubuntu pygrub
utopic = ubuntu eol pygrub
vivid = ubuntu pygrub
wily = ubuntu pygrub

13
etc/mirrors.conf Normal file
View File

@@ -0,0 +1,13 @@
# xen-tools default mirror configuration file
debian = http://httpredir.debian.org/debian
debian_archive = http://httpredir.debian.org/debian-archive/debian
ubuntu = http://archive.ubuntu.com/ubuntu
ubuntu_archive = http://old-releases.ubuntu.com/ubuntu
#
# If you like, you can also declare per-release mirrors:
#
# sarge = http://debian.ethz.ch/debian-archive/debian
# trusty = http://ubuntu.ethz,ch/ubuntu

View File

@@ -254,48 +254,9 @@ initrd = /boot/initrd.img-`uname -r`
#
#
# The default mirror for debootstrap to install Debian-derived distributions
# Use the mirror configured on the DomU as default mirror
#
mirror = `xt-guess-suite-and-mirror --mirror`
#
# A mirror suitable for use when installing the Dapper release of Ubuntu.
#
# mirror = http://gb.archive.ubuntu.com/ubuntu/
#
# If you like you could use per-distribution mirrors, which will
# be more useful if you're working in an environment where you want
# to regularly use multiple distributions. The following are the
# default values used (for Debian the GeoIP feature is used, see
# http://wiki.debian.org/DebianGeoMirror):
#
# mirror_sarge = http://archive.debian.org/debian
# mirror_etch = http://archive.debian.org/debian
# mirror_lenny = http://archive.debian.org/debian
# mirror_squeeze = http://http.debian.net/debian
# mirror_wheezy = http://http.debian.net/debian
# mirror_jessie = http://http.debian.net/debian
# mirror_sid = http://http.debian.net/debian
# mirror_dapper = http://old-releases.ubuntu.com/ubuntu
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
# mirror_hardy = http://old-releases.ubuntu.com/ubuntu
# mirror_intrepid = http://old-releases.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://old-releases.ubuntu.com/ubuntu
# mirror_natty = http://old-releases.ubuntu.com/ubuntu
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
# mirror_precise = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://old-releases.ubuntu.com/ubuntu
# mirror_raring = http://old-releases.ubuntu.com/ubuntu
# mirror_saucy = http://old-releases.ubuntu.com/ubuntu
# mirror_trusty = http://archive.ubuntu.com/ubuntu
# mirror_utopic = http://archive.ubuntu.com/ubuntu
# mirror_vivid = http://archive.ubuntu.com/ubuntu
# mirror = `xt-guess-suite-and-mirror --mirror`
# If this is defined it will be used by debootstrap, and configured as the
# proxy for the guest

View File

@@ -151,6 +151,12 @@ name = '{$hostname}'
$br = ",bridge=$bridge"
}
my $vl = '';
if ( $vlan )
{
$vl = ".$vlan"
}
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "$m";
$OUT .= "$vn";

6
examples/release-testing Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
# Skip dapper and edgy due to bug #659360 in debootstrap
for dist in $(awk '!/^#|^$/ {print $1}' /etc/xen-tools/distributions.conf | egrep -v '^(dapper|edgy)$'); do
xen-create-image --dist $dist --force --verbose "$@" || break
done 2>&1 | tee xen-tools-release-testing.log

View File

@@ -96,7 +96,7 @@ installDebianPackageAndRecommends ()
#
# Install the packages
#
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install "$@"
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes install "$@"
#
# Remove the policy-rc.d script.
@@ -123,7 +123,7 @@ installDebianPackage ()
prefix=$1
shift
installDebianPackageAndRecommends ${prefix} --no-install-recommends "$@"
installDebianPackageAndRecommends ${prefix} -o APT::Install-Recommends=false "$@"
}
#
@@ -322,7 +322,7 @@ removeDebianPackage ()
#
# Log our options
#
logMessage "Purging Debian package ${package} from prefix ${prefix}"
logMessage "Purging Debian package $@ from prefix ${prefix}"
#
# We require a prefix

View File

@@ -70,7 +70,7 @@ sub readConfigurationFile ($$)
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
if ( $line =~ /([^#]*)\#(.*)/ )
{
$line = $1;
}
@@ -129,7 +129,8 @@ sub xenRunning ($$)
my $running = 0;
unless ($CONFIG->{'xm'}) {
warn "Couldn't determine Xen toolstack, skipping check for running DomUs.";
warn "Couldn't determine Xen toolstack, skipping check for running DomUs."
unless $ENV{AS_INSTALLED_TESTING};
return 0;
}

View File

@@ -8,6 +8,7 @@ verbose:
modules: modules.sh
./modules.sh > modules.t
chmod 750 modules.t
clean:
rm -vf *~ modules.t

View File

@@ -19,12 +19,14 @@ use File::Temp;
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
@@ -49,7 +51,7 @@ sub maybeCallHook
#
foreach my $file ( qw/ 01-disable-daemons 99-enable-daemons / )
{
return if ( ! -e "./hooks/$dist/$file" );
return if ( ! -e "$hook_dir/$dist/$file" );
}
#
@@ -87,7 +89,7 @@ sub testHook
#
# Call the first hook
#
`hooks/$dist/01-disable-daemons $dir`;
`$hook_dir/$dist/01-disable-daemons $dir`;
#
# Now /usr/sbin should exist.
@@ -98,7 +100,7 @@ sub testHook
#
# Now call the second hook
#
`hooks/$dist/99-enable-daemons $dir`;
`$hook_dir/$dist/99-enable-daemons $dir`;
ok( ! -x $dir . "/usr/sbin/policy-rc.d", "The policy-rc.d file was correctly removed" );
}

View File

@@ -19,13 +19,14 @@ use File::Temp;
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS/i );
next if ( $dir =~ /common/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
@@ -78,14 +79,14 @@ sub testHostCreation
# Make sure we have the distro-specific hook directory, and
# TLS-disabling hook script.
#
ok( -d "hooks/$dist", "There is a hook directory for the distro $dist" );
ok( -d "$hook_dir/$dist", "There is a hook directory for the distro $dist" );
ok( -e "hooks/$dist/50-setup-hostname", "There is a hook for setting up hostname stuff." );
ok( -e "$hook_dir/$dist/50-setup-hostname", "There is a hook for setting up hostname stuff." );
#
# Call the hook
#
`hooks/$dist/50-setup-hostname $dir`;
`$hook_dir/$dist/50-setup-hostname $dir`;
ok( -e $dir . "/etc/hosts", " There is now a hosts file present" );

View File

@@ -11,6 +11,7 @@ use Test::More;
use File::Temp;
use File::Copy;
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
#
# Check if build system has /etc/inittab.
@@ -23,13 +24,13 @@ SKIP: {
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS/i );
next if ( $dir =~ /common/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
@@ -60,13 +61,13 @@ sub testHook
ok( -d $dir, "Temporary directory created OK" );
ok( -e $dir . "/etc/inittab", "/etc/inittab copied correctly." );
ok( -e "hooks/$dist/30-disable-gettys", "$dist inittab fixing hook exists" );
ok( -x "hooks/$dist/30-disable-gettys", "$dist inittab fixing hook is executable" );
ok( -e "$hook_dir/$dist/30-disable-gettys", "$dist inittab fixing hook exists" );
ok( -x "$hook_dir/$dist/30-disable-gettys", "$dist inittab fixing hook is executable" );
#
# Call the hook
#
`hooks/$dist/30-disable-gettys $dir`;
`$hook_dir/$dist/30-disable-gettys $dir`;
#
# Now we read the new file, and make sure it looks like we expect.

View File

@@ -21,16 +21,17 @@ if ( $Config::Config{archname} =~ /64/ )
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS|common/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
testTLSDisabling( $dist ) if -e "hooks/$dist/10-disable-tls";
testTLSDisabling( $dist ) if -e "$hook_dir/$dist/10-disable-tls";
}
}
@@ -63,15 +64,15 @@ sub testTLSDisabling
# Make sure we have the distro-specific hook directory, and
# TLS-disabling hook script.
#
ok( -d "hooks/$dist", "There is a hook directory for the distro $dist" );
ok( -d "$hook_dir/$dist", "There is a hook directory for the distro $dist" );
ok( -e "hooks/$dist/10-disable-tls", "TLS Disabling hook exists ($dist)" );
ok( -x "hooks/$dist/10-disable-tls", "TLS Disabling hook is executable ($dist)" );
ok( -e "$hook_dir/$dist/10-disable-tls", "TLS Disabling hook exists ($dist)" );
ok( -x "$hook_dir/$dist/10-disable-tls", "TLS Disabling hook is executable ($dist)" );
#
# Call the hook
#
`hooks/$dist/10-disable-tls $dir`;
`$hook_dir/$dist/10-disable-tls $dir`;
#
# Make sure the the TLS directory is empty

View File

@@ -15,13 +15,14 @@ use Test::More;
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS/i );
next if ( $dir =~ /common/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
testDistroHooks( $dist );
@@ -37,12 +38,12 @@ sub testDistroHooks
#
# Make sure we have a distro-specific hook directory.
#
ok( -d "hooks/$dist", "There is a hook directory for distro $dist" );
ok( -d "$hook_dir/$dist", "There is a hook directory for distro $dist" );
#
# Now make sure we just have files, and that they are executable.
#
foreach my $file ( glob( "hooks/$dist/*" ) )
foreach my $file ( glob( "$hook_dir/$dist/*" ) )
{
if ( ! -d $file )
{

View File

@@ -25,11 +25,9 @@ use Test::More qw( no_plan );
EOF
for i in `grep '^use ' -r .. | grep -v Expect | grep -v POSIX | grep -v Xen:: | awk '{print $2}' | tr -d
for i in `grep '^use ' -r .. | egrep -v '^\./\.git/|Expect|POSIX|Xen::' | awk '{print $2}' | tr -d '\r;()' | sort -u`; \
do \
echo "BEGIN{ use_ok( '$i' ); }"; \
echo "require_ok( '$i' );" ; \
printf '\n' ; \
done
done

View File

@@ -17,13 +17,14 @@ use Test::More;
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
foreach my $dir ( glob( "$hook_dir/*" ) )
{
next if ( $dir =~ /CVS/i );
next if ( $dir =~ /common/i );
next if ( ! -d $dir );
if ( $dir =~ /hooks\/(.*)/ )
if ( $dir =~ /$hook_dir\/(.*)/ )
{
my $dist = $1;
testPlugins( $dist );
@@ -45,12 +46,12 @@ sub testPlugins
#
# Make sure there is a hook directory for the named distro
#
ok( -d "hooks/$dist/", "There is a hook directory for the distro $dist" );
ok( -d "$hook_dir/$dist/", "There is a hook directory for the distro $dist" );
#
# Make sure the plugins are OK.
#
foreach my $file ( glob( "hooks/$dist/*" ) )
foreach my $file ( glob( "$hook_dir/$dist/*" ) )
{
ok( -e $file, "$file" );

View File

@@ -10,7 +10,8 @@
use strict;
use Test::More;
foreach my $file ( glob( "bin/*-*" ) )
my $bin_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/bin' : 'bin';
foreach my $file ( glob( "$bin_dir/xen-*-* $bin_dir/xt-*-*" ) )
{
ok( -e $file, "$file" );
ok( -x $file, " File is executable: $file" );

View File

@@ -75,7 +75,8 @@ close( IMAGE );
# So we need to run the deletion script and verify the images
# are removed correctly.
#
my $log = `perl -Ilib -I../lib bin/xen-delete-image --test --verbose --dir=$dir $hostname`;
my $prefix = $ENV{AS_INSTALLED_TESTING} ? '/usr/' : 'perl -Ilib -I../lib ';
my $log = `${prefix}bin/xen-delete-image --test --verbose --dir=$dir $hostname`;
ok ( $? == 0, 'Calling xen-delete-image returned exit code 0' );
print $log;

View File

@@ -98,7 +98,8 @@ EOS
# Now run the xen-list-images script to make sure we can read
# the relevant details back from it.
#
my $cmd = "perl -I./lib -I../lib ./bin/xen-list-images --test=$dir";
my $prefix = $ENV{AS_INSTALLED_TESTING} ? '/usr/' : 'perl -Ilib -I../lib ';
my $cmd = "${prefix}bin/xen-list-images --test=$dir";
my $output = `$cmd`;
ok( defined( $output ) && length( $output ), "Runing the list command produced some output" );

View File

@@ -174,7 +174,8 @@ sub runCreateCommand
#
# Run the command
#
system( "perl bin/xt-create-xen-config --output=$dir --template=etc/xm.tmpl" );
my $prefix = $ENV{AS_INSTALLED_TESTING} ? '/usr/' : 'perl ';
system( "${prefix}bin/xt-create-xen-config --output=$dir --template=etc/xm.tmpl" );
#
# Reset the environment