1
0
mirror of synced 2026-02-19 21:35:10 +00:00

Compare commits

..

256 Commits

Author SHA1 Message Date
Axel Beckert
6485f686b7 Prefer btrfs-progs over now transitional package btrfs-tools
Closes: #878910
2018-01-22 23:29:15 +01:00
Axel Beckert
207c73c7bb Recommend e2fsprogs
Closes: #887236
2018-01-22 23:27:43 +01:00
Axel Beckert
fff2eccbe3 Switch "activate" trigger to "activate-noawait" 2018-01-22 23:24:09 +01:00
Axel Beckert
e6ffe50bb6 debian/control: Drop "Testsuite: autopkgtest" header, no more needed 2018-01-22 23:21:46 +01:00
Axel Beckert
76a35e28d1 Use "$(MAKE)" instead of "make" in debian/rules 2018-01-22 23:19:37 +01:00
Axel Beckert
de1eea7fa2 Declare compliance with Debian Policy 4.1.3
Change Priority from extra to optional.
2018-01-22 23:18:16 +01:00
Axel Beckert
52c39a7c09 Debian: Fix wrong bug number for #849867 in previous changelog entry 2017-01-23 01:39:04 +01:00
Axel Beckert
b7e8fafcb1 Release as xen-tools 4.7
Also upload to Debian as 4.7-1.
2017-01-23 00:41:40 +01:00
Axel Beckert
44fc213fc7 release-testing: Add some helpful output and raise waiting time to 10 seconds 2017-01-17 21:20:01 +01:00
Axel Beckert
862ce3b17c release-testing: Untangle deletion and creation of Domus
This hopefully further mitigates LVM race conditions during heavy
testing.
2017-01-17 21:06:39 +01:00
Axel Beckert
0317940815 release-testing: Further mitigate LVM race conditions by using xen-delete-image 2017-01-17 20:46:44 +01:00
Axel Beckert
c3fcf5f4ba Don't include oldoldstable in release testing
It's not always and especially currently not available.
2017-01-17 20:45:44 +01:00
Axel Beckert
ab9b6c7d38 release-testing: Use exec to create the log to not cover the exit code 2017-01-17 20:45:43 +01:00
Axel Beckert
d315f17eff Work around LVM related race condition when using --force with LVM
If an "lvremove" is immediately followed by an "lvcreate" for an LV
with the same name, "mkswap" (and maybe other commands) occasionally
fail with "Device or resource busy".

Work around it by using sync and sleep.
2017-01-17 20:44:34 +01:00
Axel Beckert
9c0086120f List new distributions.conf keywords explicitly 2017-01-17 20:44:34 +01:00
Axel Beckert
76aabb0eb5 Declare testability in distributions.conf instead of hardcoding it
Mark buster and bullseye as not testable, too, for now.

Move comment about #659360 (debootstrap cannot build Ubuntu Edgy or
earlier) from release-testing to distributions.conf, too.
2017-01-17 20:44:19 +01:00
Axel Beckert
126d0ad5bc release-testing: Use "set -e" instead of "|| break" 2017-01-17 17:44:05 +01:00
Axel Beckert
5b8ef34ee6 Use per-test-unique host names
Avoids race conditions with immediately re-used LVs.
2017-01-17 17:40:26 +01:00
Axel Beckert
0f1daa0b27 Support cases like Squeeze being EoL, but its key still being in the default keyring 2017-01-16 20:06:23 +01:00
Axel Beckert
9647ab082c Fix emacs syntax highlighting
At least GNU Emacs 25 doesn't seem to like HEREDOCS with underscores
in its delimiters.
2017-01-16 19:32:36 +01:00
Axel Beckert
799052c2c9 [release testing] Heavier workaround for LVM-related race conditions 2017-01-10 23:58:30 +01:00
Axel Beckert
c84431bdb0 Fix missing colon
Thanks Lintian!
2017-01-10 22:22:07 +01:00
Axel Beckert
9f6b91fdbf Preliminary support for Ubuntu 17.04 Zesty Zapus 2017-01-10 22:20:57 +01:00
Axel Beckert
1bd9b3e1a8 Add changelog items for previous commit 2017-01-10 21:48:42 +01:00
Santiago Vila
07d014a0d6 Fix possible missing gateway in generated /etc/network/interfaces
Closes: https://bugs.debian.org/764625
2017-01-10 21:46:03 +01:00
Axel Beckert
66a74b6f9f Add changelog items for previous commit 2017-01-10 21:32:18 +01:00
Daniel Reichelt
ef09662822 Fix inconsistent handling of --nopygrub parameter
Closes: https://bugs.debian.org/842609
2017-01-10 21:29:30 +01:00
Axel Beckert
40191bbd07 Default file system is now ext4 (instead of ext3) 2017-01-10 21:24:13 +01:00
Axel Beckert
7a3791d1aa Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
128 MB are no more sufficient to boot Debian Sid. It needs at least
around 136 MB on amd64 as of now.

Closes: https://bugs.debian.org/849867
2017-01-10 21:05:10 +01:00
Axel Beckert
4d4daca745 Fix typos found by check-all-the-things/spellintian 2016-08-11 21:47:35 +02:00
Axel Beckert
bdc34f7deb Travis CI: Also check with Perl 5.24 2016-08-11 21:36:35 +02:00
Axel Beckert
18b76606d2 Fix typos found by check-all-the-things/codespell 2016-08-11 21:35:41 +02:00
Axel Beckert
7e6bbc01a8 Clarify one paragraph in SUPPORT.markdown 2016-08-11 20:55:12 +02:00
Axel Beckert
ca9e091d4b Switch many URLs to https://; update them if broken or redirected 2016-08-11 20:53:10 +02:00
Axel Beckert
32fcc069b4 Ignore debhelper stamp files 2016-08-11 20:08:29 +02:00
Axel Beckert
5d7954dde2 Support Ubuntu's "devel" alias 2016-08-11 20:04:28 +02:00
Axel Beckert
beda1b78a5 Update distribution list 2016-08-11 20:02:21 +02:00
Axel Beckert
e53e8ed2d8 TODO: Fix xdm and gdm roles wrt. to uptodate package names 2016-06-07 09:09:25 +02:00
Axel Beckert
b0177f013e Debian packaging: Use NEWS.markdown as upstream changelog
No more install it as separate documentation.
2016-04-17 01:00:18 +02:00
Axel Beckert
a2438497c7 Fix typo found by lintian 2016-04-17 00:56:30 +02:00
Axel Beckert
808bbe790f Declare compliance with Debian Policy 3.9.8
No further changes were required to reach compliance.
2016-04-17 00:53:53 +02:00
Axel Beckert
bfc7c833a7 Add changelog entries for previous fix
… and other minor stuff.
2016-04-17 00:51:59 +02:00
Yuri Sakhno
fa276179d8 Fix for the exit code reporting in case of error 2016-04-17 00:47:31 +02:00
Axel Beckert
7e7feb49b5 Add a short sleep to release-testing for umount race condition 2015-12-24 11:55:31 +01:00
Axel Beckert
0f731a049c Prepare release 4.6.2 2015-12-23 18:41:16 +01:00
Axel Beckert
cf034d932e Fix unescaped braces (deprecated with Perl 5.22) in t/plugin-checks.t 2015-12-23 18:12:49 +01:00
Axel Beckert
761f324a14 Travis-CI: Also test with Perl 5.22 2015-12-16 19:55:00 +01:00
Axel Beckert
b16fe28925 Make t/hooks-inittab.t using its own inittab copy
Don't use the system's one. Besides being non-existent, it can look
like whatever.

This resolves GH-36.
2015-12-16 18:01:38 +01:00
Axel Beckert
3169cc49b7 Add changelog entries for the two previous pull requests 2015-12-11 00:18:11 +01:00
Axel Beckert
10fe70b923 Merge pull request #37 from nirgal/patch-1
Fixed typo in initramfs comment
2015-12-11 00:15:09 +01:00
Axel Beckert
0f1a90cc1d Merge pull request #38 from olivierpierre/master
In etc/xm.tmpl, added /usr/local/bin/pygrub to pygrub search path.
2015-12-11 00:14:29 +01:00
Pierre Olivier
0682c1c704 In etc/xm.tmpl, added /usr/local/bin/pygrub to pygrub search path. 2015-12-10 15:38:58 -05:00
nirgal
19db4cd9e2 Fixed typo in initramfs comment 2015-11-22 14:05:20 +01:00
Axel Beckert
411a0a34c6 Also ignore /debian/xen-tools.*.debhelper 2015-10-24 02:45:37 +02:00
Axel Beckert
a9a626883a Support checking upstream GPG signature in debian/watch 2015-10-24 02:43:43 +02:00
Axel Beckert
f5c88f830f Release as 4.6.1 2015-10-24 01:15:22 +02:00
Axel Beckert
919f06c8e1 No more use $#array in boolean context
This fixes a regression introduced in
503db1668b.

`@array = undef` doesn't empty an array but fills it with one item
which is undef. Hence `$#array` is zero and hence false.

Since the commit above, `@array = ()` was used instead of `@array =
undef`, hence `$#array` no more was false when the array seemed to be
empty (but wasn't). This caused an empty partition table in the
configuration file and hence prohibited the start of the DomU.

This commit fixes the according `!$#array` to just `!@array` and adds
the according changelog entry for both commits. (I initially thought
that such a tiny commit like the one above is not worth being
mentioned. I obviously was wrong.)
2015-10-24 00:34:26 +02:00
Axel Beckert
53b2743e93 Fix typo in previous changelog entry 2015-10-23 22:29:39 +02:00
Axel Beckert
377e7b2f0b Add "(LTS)" to all Ubuntu LTS releases listed in README 2015-10-23 21:20:03 +02:00
Axel Beckert
7f16aa06fe Preliminary support for Ubuntu 16.04 LTS Xenial Xerus 2015-10-23 21:20:03 +02:00
Axel Beckert
ae4f1587fd Remove obsolete conffile via dpkg-maintscript-helper 2015-09-11 12:04:54 +02:00
Axel Beckert
5c0679ca45 Fix Perl warning in t/hook-inittab.t if /etc/inittab isn't present
aka "proper use of skip".

Fixes autopkgtest which failed due to STDERR output.
2015-07-30 18:58:47 +02:00
Axel Beckert
00d283cf24 #787117 in debootstrap has been fixed, remove according warnings from README 2015-07-28 16:13:04 +02:00
Axel Beckert
c338923052 Add note that most TODOs were moved to GitHub's issue tracker 2015-07-21 15:27:39 +02:00
Axel Beckert
c2578fe537 Remove obsolete TODOs 2015-07-21 15:24:38 +02:00
Axel Beckert
f4bcc02bdb Remove from TODO what has been copied to GitHub Issues 2015-07-21 15:23:47 +02:00
Axel Beckert
503db1668b Don't use @array = undef 2015-07-21 13:36:01 +02:00
Axel Beckert
229d20b16b Move remaining contents of KNOWN_BUGS.markdown to the GitHub issue tracker 2015-07-21 13:35:04 +02:00
Axel Beckert
ec4b692c22 Remove already fixed issue from KNOWN_BUGS
According to the `mount(8)` man page, `-a` mounts the filesystems
_following their order in fstab_. So reproducing that does not help in
our case and the implemented workaround (sort by mountpoint length)
should be sufficient.
2015-07-21 13:20:34 +02:00
Axel Beckert
d04850da83 Sort distribution-specific bug trackers last 2015-07-21 12:17:28 +02:00
Axel Beckert
00d405d71d Integrate BUGS.markdown into README.markdown 2015-07-21 12:15:43 +02:00
Axel Beckert
058cf38946 Declare GitHub as primary hosting 2015-07-21 12:05:57 +02:00
Axel Beckert
163ea52097 Remove superfluous blank line 2015-07-20 18:33:48 +02:00
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
Axel Beckert
fd0a486beb Release as 4.5 2014-10-26 01:43:53 +02:00
Axel Beckert
81ca2fb62d t/perl-syntax.t: Ignore changelog files, too 2014-10-26 01:43:53 +02:00
Axel Beckert
5b2d7d5d75 Makefile: Clean up coverage data in multiple targets 2014-10-26 01:43:52 +02:00
Axel Beckert
83a6d09e3d Flush output after each line in runCommand() 2014-10-26 01:20:44 +02:00
Axel Beckert
8562398af1 Add 15.04 Vivid, use old-releases.ubuntu.com for 13.10 Saucy 2014-10-25 22:43:18 +02:00
Axel Beckert
02730138a6 Add lintian override for debian-news-entry-uses-asterisk
I disagree.
2014-10-23 16:08:44 +02:00
Axel Beckert
1defbd3c02 Raise default password length from 8 to 23 2014-10-08 17:41:24 +02:00
Axel Beckert
19e07799cd Add password length sanity check with fallback to default length 2014-10-08 17:41:24 +02:00
Axel Beckert
5d7e059668 --password overrides --genpass
Closes: #764143

Based on patch by Santiago Vila.
2014-10-08 17:41:24 +02:00
Axel Beckert
0a7ec4f855 Update changelog and mention Santiago as contributor in AUTHORS 2014-10-06 00:57:26 +02:00
Santiago Vila
e1a5e89502 Fix two more typos 2014-10-06 00:56:49 +02:00
Axel Beckert
47a0cfe6f4 Add changelog item for Santiago's second contribution 2014-10-05 19:56:44 +02:00
Santiago Vila
36f318dbbe Fix copy & paste errors in comments in typos in roles/puppet (Closes: #764134) 2014-10-05 19:55:08 +02:00
Axel Beckert
41a30ede83 Add changelog item for Santiago's contribution 2014-10-05 18:16:26 +02:00
Santiago Vila
043b58b5ea Fix unaligned maxmem output of xen-create-image. (Closes: #764126) 2014-10-05 18:16:07 +02:00
Axel Beckert
4d64044f29 Fix corner cases where not the latest kernel would have been checked 2014-09-25 23:20:07 +02:00
Axel Beckert
48097cd07b Fix initial configuration summary in cases where pygrub is used 2014-09-25 23:18:48 +02:00
Axel Beckert
71e5ad4345 Fix missing quoting in shell function "assert" in hooks/common.sh 2014-09-25 23:15:51 +02:00
Axel Beckert
414d67c624 Add changelog entry for patch by Eric Engstrom 2014-09-25 22:09:27 +02:00
Eric Engstrom
58943d3b19 Fix lvcreate awaiting user input when creating swap lv 2014-09-25 22:07:30 +02:00
Axel Beckert
e850ad7ab3 Run some tests twice, once with mocked File::Which, once with original File::Which 2014-09-25 21:57:33 +02:00
Axel Beckert
0546776c17 Fix lintian warning depends-on-perl-modules 2014-09-25 21:37:37 +02:00
Axel Beckert
8de0aedfc3 Travis: Install lsb-release -- should cause some more code to be tested 2014-09-25 21:31:17 +02:00
Axel Beckert
d4265d6ced Mention code coverage in README 2014-09-25 21:24:51 +02:00
Axel Beckert
1e7f45d207 Coveralls.io: Ignore perl scripts under /usr, too 2014-09-25 21:11:20 +02:00
Axel Beckert
ba4d4f6db8 Travis: Add bin to local PATH 2014-09-25 21:05:27 +02:00
Axel Beckert
1b42dc14c7 Coveralls.io: Also pass ignore_re to report-generating cover call 2014-09-25 21:03:46 +02:00
Axel Beckert
4e43b8faf2 Test suite: Rename SAFE_ENV to SAVE_ENV to prevent confusion 2014-09-25 20:55:35 +02:00
Axel Beckert
dc84393d6c Coveralls.io: Separate runs again, as just "cover" checks coverage on .t files 2014-09-25 20:48:30 +02:00
Axel Beckert
2c0639ca21 Enable Coveralls.io 2014-09-25 20:42:56 +02:00
Axel Beckert
47b100cf08 Drop redundant occurrences of "./" from test suite 2014-09-25 20:10:11 +02:00
Axel Beckert
525f3ce24e Add Travis badge to README 2014-09-25 20:08:54 +02:00
Axel Beckert
6079dbab06 Travis: Drop Perl 5.8, doesn't know about =encoding in POD 2014-09-25 20:08:10 +02:00
Axel Beckert
fd0a5d2b10 Don't run t/gitignore.t on Travis, doesn't make sense on a fresh checkout 2014-09-25 19:50:24 +02:00
Axel Beckert
edc7737cb3 Make test suite work with perl in $PATH instead of hardcoded /usr/bin/perl 2014-09-25 19:40:26 +02:00
Axel Beckert
d2617ea85f Travis: Add forgotten build-dependency on Text::Template 2014-09-25 19:34:33 +02:00
Axel Beckert
559eeb14b9 Use Travis CI 2014-09-25 19:26:20 +02:00
Axel Beckert
78077e5aa3 Update debian/changelog to separate upstream and debian changes 2014-09-25 14:57:35 +02:00
Axel Beckert
8b3625426d Bump Standards-Version to 3.9.6 (no changes needed) 2014-09-25 14:55:34 +02:00
Axel Beckert
937e440d24 Mention Semantic versioning 2014-09-25 14:46:14 +02:00
Axel Beckert
c2ead30949 pygrub detection: Prefer /usr/lib/xen-default over /usr/lib/xen-x.y
Otherwise a versioned pygrub path will be used (e.g.
/usr/lib/xen-4.1/bin/pygrub  in the case of Debian Wheezy) and then
all host configurations would need to be updated when dist-upgrading
to Debian Jessie with Xen 4.3.

In case you already ran into this issue, the following command should
fix the issue for you:

fgrep -l xen-4.1/bin/pygrub -r /etc/xen/ | xargs sed -e 's:xen-4.1/bin/pygrub:xen-default/bin/pygrub:g' -i
2014-06-16 19:13:44 +02:00
Axel Beckert
03769b27fe Add changelog entry for previous commit 2014-06-11 09:52:47 +02:00
Joan
079382302b Fix gateway always empty on debian domU 2014-05-30 17:30:23 +02:00
Axel Beckert
0c894eec48 Update list of supported Ubuntu releases
Preliminary support for Ubuntu 14.10 Utopic Unicorn
2014-05-17 12:07:33 +02:00
Axel Beckert
b95c23b86f TODO: Debian bug #703606 2014-03-28 22:33:05 +01:00
Axel Beckert
fcebb14002 Drop all xend related sanity checks
They cause more havoc nowadays than they help.

Thanks Ian Campbell!

Closes: #732456
2014-03-28 22:24:21 +01:00
Axel Beckert
aa54db02c3 Add Thanks/Credits for recent contributions 2014-03-28 21:16:51 +01:00
Lionel FÉLICITÉ
5093c731cf Pass "-y" option ("assume yes") to yum
Closes: #735675
2014-03-28 20:48:18 +01:00
Axel Beckert
8610300206 Use "686-pae" kernels instead of "686" kernels on Debian Wheezy and later
Thanks to Daniel Lintott!

Closes: #742778
2014-03-28 20:06:00 +01:00
Axel Beckert
29bdbdd455 Fix typo in comment 2014-03-28 19:50:48 +01:00
Axel Beckert
e3f5230bcb TODO: Make default source installation work on non-debianesk systems 2014-03-12 00:19:39 +01:00
Axel Beckert
c5a2e2427a Ignore cover_db directory in t/perl-syntax.t 2013-12-15 17:32:32 +01:00
Axel Beckert
5d3f159aad Update d/changelog + d/dirs for Adrian C.'s patch 2013-12-15 17:23:01 +01:00
Adrian C. (anrxc)
4505f7e141 bin: support hook overrides in xt-customize-image
The systems administrator can optionally provide site-specific
revisions of upstream hooks by placing them in the directory
/etc/xen-tools/hooks.d/ as a method for disabling hooks, adding
site-specific extra features that don't get overwritten on upgrades,
or patching bugs early.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
2013-12-15 17:18:28 +01:00
Axel Beckert
f20e312140 Release 4.4 2013-12-11 23:03:55 +01:00
Axel Beckert
3978561a44 Add build-dependency on "liblog-message-perl | perl (<< 5.17.0)"…
… to avoid warnings with Perl 5.18 and future FTBFS
2013-12-11 21:48:38 +01:00
Axel Beckert
0feefc4179 hooks/common.sh: Split up installDebianPackage…
… into installDebianPackage and installDebianPackageAndRecommends
2013-12-10 00:32:07 +01:00
Axel Beckert
8d8423fb06 TODOs from recent discussions and problem reports 2013-11-19 21:02:33 +01:00
Axel Beckert
c8867a0f67 Rework "minimal" role to be less based on personal preferences
No more installs sudo, vim, syslog-ng, etc.

Fixes usage together with pygrub.
2013-11-19 21:02:24 +01:00
Axel Beckert
5dc76d12b2 Fix some typos in the README 2013-10-30 11:07:45 +01:00
Axel Beckert
4c9fd36c28 Mention Ubuntu 14.04 Trusty Tahr in long description and README 2013-10-30 11:05:30 +01:00
Axel Beckert
b39f85303c Also add build-dependency on "libterm-ui-perl | perl (<< 5.17.0)" 2013-10-29 00:10:21 +01:00
Axel Beckert
81511000d8 Run t/gitignore.t only if git is installed and .git present 2013-10-29 00:09:03 +01:00
Axel Beckert
e1caf2566a Declare this as 4.4 RC1 2013-10-28 22:39:03 +01:00
Axel Beckert
2c020323f6 Refactoring: xt-create-xen-config: Use s/// to strip trailing MB size suffixes 2013-10-28 22:28:40 +01:00
Axel Beckert
c82cb31adc Fix cases where maxmem is not defined
(which is fine)
2013-10-28 21:57:10 +01:00
Axel Beckert
b676da079c xen-delete-image: Exit with return code != 0 in all error cases 2013-10-28 21:31:14 +01:00
Axel Beckert
4d73574a40 xen-delete-image: Proper error message if --test is not used with --dir
Also abort earlier in this case.

Closes: #704878
2013-10-28 21:28:45 +01:00
Axel Beckert
55b303f5a9 Add changelog entry for Patryk Ściborek's fix 2013-10-28 20:54:39 +01:00
Patryk Ściborek
96679edad9 Fix disableStartStopDaemon() if /sbin/initctl is not present 2013-10-28 20:48:10 +01:00
Axel Beckert
ca734e511f Bump Standards-Version to 3.9.5 (no changes) 2013-10-28 10:54:50 +01:00
Axel Beckert
1e76cd2da9 Update changelog 2013-10-25 19:23:39 +02:00
Axel Beckert
d9ed3e65db Merge branch 'fix_passwd' of gitorious.org:xen-tools/aseques-xen-tools 2013-10-25 18:36:54 +02:00
Axel Beckert
73ced0b3f3 Update changelog 2013-10-25 18:36:48 +02:00
Joan
42345c75d4 Fix password interation on image creation 2013-10-25 10:51:11 +02:00
Axel Beckert
ff4aa11dd3 Merge branch 'maxmem' of gitorious.org:xen-tools/aseques-xen-tools 2013-10-23 13:59:16 +02:00
Axel Beckert
cfa30f06b6 Preliminary support for Ubuntu 14.04 Trusty Tahr 2013-10-23 13:54:45 +02:00
Joan
b51936e6ee Updated changelog 2013-10-18 14:09:59 +02:00
Joan
1374208d3b Implemente the option maxmem in xen-tools allowing to set a maximum value to enable dynamic memory ballooning. 2013-10-18 12:59:50 +02:00
Axel Beckert
0e8178ab0f Fix german-ish grammar and remove dash in "IP-Addresses" 2013-10-01 22:20:41 +02:00
Axel Beckert
d20f832f82 Also display MAC address after the DomU has been created 2013-10-01 22:19:10 +02:00
Axel Beckert
fae561aaca Meaningful whitespace fixes in hooks/common/40-setup-networking-deb 2013-09-24 23:16:22 +02:00
Axel Beckert
205bf96f0a Handle potentially empty gateway setting properly
… in hooks/common/40-setup-networking-deb

Thanks Simone Caruso!
2013-09-24 23:11:05 +02:00
Axel Beckert
571f540992 Refactoring: Replace all occurrences of "! -z" by "-n"
Occurred in hooks and bash-completion.
2013-09-24 22:54:05 +02:00
Axel Beckert
86dd78c681 Drop support for memory size in kilobytes in xen-create-image
Neither xt-create-xen-config nor xm support it.
2013-09-24 22:41:20 +02:00
Axel Beckert
6644afa9fd xen-list-images now displays a unit after the memory size 2013-09-24 22:36:27 +02:00
Axel Beckert
7bb7089c9f Changelog entry for Gitorious merge request #5 2013-09-24 22:20:14 +02:00
Axel Beckert
a9dfc112b9 Merge commit 'refs/merge-requests/5' of git://gitorious.org/xen-tools/xen-tools into merge-requests/5 2013-09-24 22:08:41 +02:00
Axel Beckert
c62b053a7b Also declare POD encoding in Xen::Tools::Common
Recode Xen::Tools::Common to UTF-8

Fixes FTBFS with Perl 5.18. Closes #720519 a second time.
2013-09-24 22:02:28 +02:00
Axel Beckert
cc4e170357 Dependency on Term::UI needed for Perl >= 5.17 2013-09-10 17:53:51 +02:00
Axel Beckert
70bf0607db Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2013-09-10 16:14:01 +02:00
Axel Beckert
d8e4a4f264 Note that f1c7c6e1 closes #703159 2013-09-10 16:10:33 +02:00
Axel Beckert
5825331cea Fix typo in current changelog entry 2013-08-24 04:07:16 +02:00
Axel Beckert
f1c7c6e11c Loop around calling "passwd" to get a second chance to change the password
Needs Term::UI which is part of Debian's perl-modules package, hence
no new (build-) dependencies needed.
2013-08-24 00:54:21 +02:00
Axel Beckert
3b806d9f25 Do not run "passwd" via runCommand
runCommand captures STDOUT for logging which is not desired for
interactive commands.

Makes --passwd usable again.

Thanks to Christan Herzog for the bug report.
2013-08-24 00:12:44 +02:00
Axel Beckert
97b0ed29c0 Also switch from cdn.debian.net to http.debian.net in xen-tools.conf 2013-08-23 21:13:44 +02:00
Axel Beckert
12960c8f2b Release 4.4 beta 1 2013-08-23 19:31:47 +02:00
Axel Beckert
029faab59c Add build-dependencies on libdata-validate-{domain,ip,uri}-perl 2013-08-23 19:31:47 +02:00
Axel Beckert
cb5ce9ea5c Bump Standards-Version to 3.9.4 (no changes) 2013-08-23 19:08:42 +02:00
Axel Beckert
fbc903877a Declare POD encoding to be UTF-8 in bin/*
Fixes FTBFS with Perl 5.18.

Closes: #720519
2013-08-23 09:08:43 +02:00
Axel Beckert
fb8b494b41 Preliminary support for Ubuntu Saucy
Does not yet work due to missing support for Saucy in debootstrap.

Also move default mirror for Ubuntu Hardy from archive to old-releases
as Hardy is now EoL.
2013-07-11 01:49:46 +02:00
Axel Beckert
516a7a1625 Update descriptions of distributions 2013-07-11 01:30:41 +02:00
Axel Beckert
d0c4439a10 README: Update list of required Perl modules 2013-07-11 01:13:45 +02:00
Axel Beckert
87fc2a76a0 Remove some redundancy in the README 2013-07-11 00:59:33 +02:00
Axel Beckert
34838811f9 Reorder list of Perl modules in README alphabetically 2013-07-11 00:57:59 +02:00
Axel Beckert
ad68cdb46b Change CPAN links from search.cpan.org to metacpan.org 2013-07-11 00:55:51 +02:00
Axel Beckert
e5abe64ae0 Fix broken quoting in list of required binaries 2013-07-11 00:44:25 +02:00
Axel Beckert
9c47e5da4f Use File::Which instead of findBinary or which 2013-07-11 00:39:05 +02:00
Axel Beckert
b271bf6a63 TODO: Still to many backticks in use
Also merge the two findBinary TODOs
2013-07-11 00:26:12 +02:00
Axel Beckert
a72fbb5f79 TODO: The mess after hitting Ctrl-C has been fixed, too 2013-07-11 00:16:09 +02:00
Axel Beckert
149ad47c5f TODO: Remove #623443-related stuff. Fixed in 74f35d65 2013-07-11 00:13:28 +02:00
Axel Beckert
4442c1a17f TODO: Move remaining code deduplication to Break-Backwards-Compatibility list 2013-07-11 00:11:54 +02:00
Axel Beckert
be55a4a6f2 Remove reference to removed t/xen-tools.t from KNOWN_BUGS 2013-07-11 00:07:37 +02:00
Axel Beckert
5883b7a15c TODO: Generate ECDSA host keys where possible 2013-07-10 23:54:46 +02:00
Axel Beckert
9e05298832 Add dependency on ${perl:Depends} to fix dpkg-gencontrol warning 2013-07-10 22:55:20 +02:00
Axel Beckert
be05397249 Bump debhelper compatibility to 9
Update versioned debhelper build-dependency
2013-07-10 22:53:14 +02:00
Axel Beckert
3b72f2ee4b Mention that #715340 is fixed by 1de424a6 2013-07-10 22:45:05 +02:00
Axel Beckert
699025f33e Use Data::Validate::{Domain,IP} for IP addresses and hostname checks
Add corresponding dependencies on libdata-validate-{domain,ip}-perl.
2013-07-10 22:38:29 +02:00
Axel Beckert
74f35d6550 Better document and check requirements for --apt_proxy
See http://bugs.debian.org/623443 for the corresponding apt issue.

Also add a dependency on libdata-validate-uri-perl which is used to do
the syntax check.
2013-07-10 21:50:09 +02:00
Axel Beckert
72a2a637be Mention issue about #623443 in TODO 2013-07-09 22:38:42 +02:00
Axel Beckert
5ac0f15c32 Remove all redundant pod-inline occurrences of "=cut"
Also care that there are always two blank lines before each "=head1"
(except behind "=head1 NAME").
2013-04-18 20:41:51 +02:00
Axel Beckert
dcb9284636 Remove unused Perl modules Xen::Tools and Xen::Tools::Log
Further developement of the (if any) will happen in the git branch
"xen-tools-moose" where they are still available.

Also remove the according (already disabled) tests and test
modifications from the test suite.

Also remove no the more needed build-dependency on Moose as well as
one Makefile line installing the above mentioned Perl modules.
2013-04-18 20:17:33 +02:00
Philipp Erbelding
70a30bb146 prevent matching lines like "shadow_memory = 16" 2012-11-08 12:38:48 +01:00
119 changed files with 1971 additions and 1582 deletions

3
.gitignore vendored
View File

@@ -6,6 +6,7 @@
# but we _wan't_ those dot-files
!.gitignore
!.mailmap
!.travis.yml
# ChangeLog is generated during make
/ChangeLog
@@ -14,10 +15,12 @@
/build-stamp
/configure-stamp
/man
/debian/*-stamp
/debian/files
/debian/xen-tools
/debian/xen-tools.debhelper.log
/debian/xen-tools.substvars
/debian/xen-tools.*.debhelper
# git-generated patches
/*.patch

28
.travis.yml Normal file
View File

@@ -0,0 +1,28 @@
language: perl
perl:
- "5.24"
- "5.22"
- "5.20"
- "5.18"
- "5.16"
- "5.14"
- "5.12"
- "5.10"
before_install:
- sudo apt-get update
- 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 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:
- make test
after_success:
- prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t
- cover -ignore_re '^(t/|/usr)' -report coveralls
notifications:
irc: "irc.lugs.ch#kivamon"

21
AUTHORS
View File

@@ -34,9 +34,15 @@ Contributions
Vagrant Cascadian <vagrant [at] org.debian>
- Less redundant SSH key generation
Adrian C. (anrxc) <anrxc [at] org.sysphere>
- Hook overrides
Edd Dumbill <edd [at] com.usefulinc>
- Contributed APT sources.list file for Ubuntu's Dapper release.
Lionel FÉLICITÉ <lfelicite [at] com clever-age>
- Bugfix for Centos 6 installation
Kevin Fullerton <kevin.fullerton [at] uk.co.shotgun-suicide>
- Fixup for gentoos revised networking scripts. (dhcp)
@@ -59,12 +65,15 @@ Contributions
- Added hook for automatic CFEngine installation.
Sascha Kettler <kettler [at] net.gmx>
- Implemented support for arbitary partitioning schemes.
- Implemented support for arbitrary partitioning schemes.
Eric Lemoine <eric.lemoine [at] com.gmail>
- Improved binary detection and good suggestions.
- Better portability for non-bash shells.
Daniel Lintott <daniel [at] uk.co.serverb>
- Bugfix for Jessie and newer installations
Jorge Armando Medina <jmedina [at] com.e-compugraf>
- Fix for backward compatibility with xvc0 serial consoles
@@ -97,6 +106,9 @@ Contributions
- CentOS 6 support
- CentOS 5 fixes
Patryk Ściborek <patryk [at] com.sciborek>
- Ubuntu-related bugfix
Radu Spineanu <radu [at] org.debian>
- Supplied many small tweaks, bugfixes, and suggestions.
- Radu is also one of the former Debian package maintainers.
@@ -116,5 +128,12 @@ Contributions
Ward Vandewege <ward [at] be.pong>
- Made several updates for Ubuntu support.
Santiago Vila <sanvila [at] es.unex>
- Found and fixed a bunch of typos and formatting issues.
Joan <aseques [at] com.gmail>
- Bugfix for password interaction
- maxmem option
xstasi on Launchpad
- Proper upstart handling in the chroot

View File

@@ -1,23 +0,0 @@
Reporting Bugs
==============
To report a bug please use the [xen-tools-discuss* mailing
list](http://xen-tools.org/software/xen-tools/lists.html).
If you're capable of fixing it yourself a patch is appreciated, and a
test case would be a useful bonus.
Known Bugs
==========
The Debian bug tracker contains a [list of all currently open
issues](http://bugs.debian.org/xen-tools) which have been reported by
the users of the Debian package (the primary user-base).
If you're running the code on a Debian host system then reporting bugs
against this package is a good thing to do; by doing so you allow
others to view issues, and I check the bug-page regularly.
--
The Xen-Tools Developer Team

View File

@@ -1,43 +0,0 @@
KNOWN BUGS in xen-tools
=======================
Bugs to fix before next release
-------------------------------
[None so far]
Bugs to fix rather soon
-----------------------
* `xen-delete-image` doesn't remove all logical volumes if `--partitions` is used.
See the link below for details how to reproduce. Reproducable at
least with `--lvm`. Thanks to Antoine Benkemoun for reporting.
[Bug Report](http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html)
* partitions were mounted in config file order, not in mountpoint order.
That implies that if you specified :
/boot
/
in that order, `/` was mounted _over_ `/boot`, and you would not
_see_ `/boot`. Xen-Tools would then install `boot` on your `/`
partition, and your boot device was just empty and unbootable.
Workaround for 4.2 is to write your partition file such as mounts overlap
correctly when mounted in specified order.
Current (unreleased) fix is to sort by mountpoint length.
Fix would be to reproduce what mount does with mount `-a`.
Bugs to fix later
-----------------
`t/xen-tools.t` can't really test Xen::Tools as the latter requires a
local Xen installation. For proper testing, a dummy set of Xen
configuration files and configurable paths to them in `Xen::Tools`
would be necessary.

View File

@@ -19,7 +19,7 @@ The text of both of these licenses follows below.
Steve
--
http://www.steve.org.uk/
https://steve.fi/

View File

@@ -6,15 +6,15 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#
#
# Only used to build distribution tarballs.
#
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.4~dev
TMPDIR ?= /tmp
DIST_PREFIX = ${TMPDIR}
VERSION = 4.7
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 " "
@@ -67,6 +69,7 @@ clean:
@if [ -e build-stamp ]; then rm -f build-stamp ; fi
@if [ -e configure-stamp ]; then rm -f configure-stamp ; fi
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; fi
@if [ -d cover_db ]; then rm -rf ./cover_db; fi
@if [ -e $(BASE)-$(VERSION).tar.gz ]; then rm $(BASE)-$(VERSION).tar.gz ; fi
@if [ -e $(BASE)-$(VERSION).tar.gz.asc ]; then rm $(BASE)-$(VERSION).tar.gz.asc ; fi
cd t; $(MAKE) clean
@@ -92,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/*
@@ -106,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
@@ -177,9 +180,15 @@ 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 buster.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bullseye.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/
@@ -201,6 +210,15 @@ install-hooks:
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d quantal.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d raring.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d saucy.d
-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
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d xenial.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d yakkety.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d zesty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d devel.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools
@@ -210,7 +228,6 @@ install-hooks:
#
install-libraries:
-mkdir -p ${prefix}/usr/share/perl5/Xen/Tools
cp ./lib/Xen/*.pm ${prefix}/usr/share/perl5/Xen
cp ./lib/Xen/Tools/*.pm ${prefix}/usr/share/perl5/Xen/Tools
#
@@ -239,39 +256,39 @@ 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)
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian
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/
#
@@ -299,6 +316,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,331 @@
xen-tools 4.7 (released 23 Jan 2017)
====================================
New Features
------------
New keywords in distributions.conf: default-keyring, dont-test
* Support situations where distributions (e.g. Squeeze) might be end
of life, but its archive signing key is still not removed from the
default keyring. (As of this writing, that's the case for Debian 6
Squeeze on Debian 8 Jessie.)
Bug Fixes
---------
* Fixes reported error code in case of subcommand failure (Reported
and fixed by Yuri Sakhno, thanks!)
* Fixes inconsistent/non-functional handling of --nopygrub parameter.
Thanks Daniel Reichelt for the bug report and patch! (Closes
Debian bug report #842609)
* Fixes possible missing gateway in generated /etc/network/interfaces.
Thanks Santiago Vila for the bug report and patch! (Closes Debian
bug report #764625)
* Fixes typo found by Lintian.
* Work around LVM related race condition when using --force with LVM:
If an "lvremove" is immediately followed by an "lvcreate" for an LV
with the same name, "mkswap" (and maybe other commands) occasionally
fail with "Device or resource busy". Work around it by using sync
and sleep.
Distribution Releases Changes
-----------------------------
* Support for Ubuntu 16.10 Yakkety Yak.
* Preliminary support for Ubuntu 17.04 Zesty Zapus.
* Knows about code names for Debian 10 (Buster) and 11 (Bullseye).
* Considers Debian Squeeze, Ubuntu Vivid and Wily being EoL.
* Knows about Ubuntu's "devel" alias.
Other Changes
-------------
* Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
to cope with risen resource consumption and availability. (Closes
Debian bug report #776487)
* Default file system is now ext4 (instead of ext3).
Test Suite
----------
* release-testing:
+ Mitigate race conditions with immediately re-used LVs:
- Use per-test-unique host names.
- Delete potential old images by testing xen-delete-image before
calling xen-create-image. Add sync and sleep calls inbetween
those two commands, too.
+ Use "set -e" instead of "|| break".
+ Declare testability in distributions.conf instead of hardcoding
it. Mark buster and bullseye as not testable, too, for now.
xen-tools 4.6.2 (released 23 Dec 2015)
======================================
Bug Fixes
---------
* Make t/hooks-inittab.t using its own copy of the generic
/etc/inittab for testing instead of using the system one's. (GH#36,
should fix autopkgtest on systems with modified /etc/inittab)
* Fix unescaped braces (deprecated since Perl 5.22) in
t/plugin-checks.t.
Other changes
-------------
* Support for using pygrub from /usr/local/bin/pygrub.
* Typo fixes.
xen-tools 4.6.1 (released 24 Oct 2015)
======================================
Distribution Releases Changes
-----------------------------
* Preliminary support for Ubuntu 16.04 LTS Xenial Xerus.
Bug Fixes
---------
* Fix Perl warning in t/hook-inittab.t if /etc/inittab isn't present.
Other Changes
-------------
* Declare GitHub as primary hosting.
* Integrate BUGS.markdown into README.markdown, move remaining
contents of KNOWN_BUGS.markdown to the GitHub issue tracker.
* Minor README improvements.
* Neither use $#array in boolean context nor @array = undef anymore.
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 is 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 supported by
debootstrap, see Debian bug report #787117)
* Ubuntu 10.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 +335,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 +369,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 +391,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 https://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,11 +1,14 @@
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)
* [Mailing Lists](http://www.xen-tools.org/software/xen-tools/lists.html)
[![Travis CI Build Status](https://api.travis-ci.org/xen-tools/xen-tools.svg)](https://travis-ci.org/xen-tools/xen-tools)
* [Homepage](https://www.xen-tools.org/software/xen-tools)
* Official Git Repositories:
* [at GitHub](https://github.com/xen-tools/xen-tools) (primary, includes [Issue Tracker](https://github.com/xen-tools/xen-tools/issues))
* [at GitLab](https://gitlab.com/xen-tools/xen-tools) (secondary, doesn't support the `git://` protocol.)
* Historical Git Repository: [at Gitorious](https://gitorious.org/xen-tools) (_outdated_, no more updated, for historical reference only)
* [Mailing Lists](https://www.xen-tools.org/software/xen-tools/lists.html)
About
-----
@@ -14,11 +17,11 @@ 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
[Debian](http://www.debian.org/) (starting with 3.1 "Sarge") and
[Debian](https://www.debian.org/) (starting with 3.1 "Sarge") and
[Ubuntu](http://www.ubuntu.com/) (starting with 6.06 LTS "Dapper") and
some RPM-based distributions. On the Dom0 side all current Xen
supporting distributions should work.
@@ -30,33 +33,44 @@ 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
* Wheezy 7.0
* Jessie 8.0 (preliminary support as it's not yet available)
* Sid (works at least at the moment of writing :-)
* Lenny 5.0 (Dom0 no more tested)
* Squeeze 6.0 (Dom0 no more tested)
* Wheezy 7
* Jessie 8
* Stretch 9 (under development)
* Buster 10 (knows about this future release name)
* Bullseye 11 (knows about this future release name)
* Sid (always under development; works at least at the moment of writing :-)
### Ubuntu
(only DomUs tested)
* Dapper Drake 6.06 (needs editing of `/usr/share/debootstrap/scripts/dapper` since at least debootstrap version 1.0.37, see [#659360][1])
* Dapper Drake 6.06 (LTS, needs editing of `/usr/share/debootstrap/scripts/dapper` since at least debootstrap version 1.0.37, see [#659360][1])
* Edgy Eft 6.10 (needs editing of `/usr/share/debootstrap/scripts/edgy` since at least debootstrap version 1.0.37, see [#659360][1])
* Feisty Fawn 7.04
* Gutsy Gibbon 7.10
* Hardy Heron 8.04 (see [Installing Ubuntu 8.04 as DomU][2])
* Hardy Heron 8.04 (LTS, see [Installing Ubuntu 8.04 as DomU][2])
* Interpid Ibex 8.10
* Jaunty Jackaplope 9.04
* Karmic Koala 9.10
* Lucid Lynx 10.04
* Lucid Lynx 10.04 (LTS)
* Maverick Meerkat 10.10
* Natty Narwhal 11.04
* Oneiric Ocelot 11.10
* Precise Pangolin 12.04
* Precise Pangolin 12.04 (LTS)
* Quantal Quetzal 12.10
* Raring Ringtail 13.04 (preliminary support as it's not yet available)
* Raring Ringtail 13.04
* Saucy Salamander 13.10
* Trusty Tahr 14.04 (LTS)
* Utopic Unicorn 14.10
* Vivid Vervet 15.04
* Wily Werewolf 15.10
* Xenial Xerus 16.04 (LTS)
* Yakkety Yak 16.10
* Zesty Zapus 17.04 (under development)
[1]: http://bugs.debian.org/659360
[1]: https://bugs.debian.org/659360
"debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
[2]: http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest
@@ -82,29 +96,40 @@ Requirements
To use these tools you'll need the following software:
* [debootstrap](http://packages.debian.org/debootstrap)
* Perl
* The Perl module [Text::Template](http://search.cpan.org/dist/Text-Template/)
([Debian Package libtext-template-perl](http://packages.debian.org/libtext-template-perl))
* The Perl module [Config::IniFiles](http://search.cpan.org/dist/Config-IniFiles/)
([Debian Package libconfig-inifiles-perl](http://packages.debian.org/libconfig-inifiles-perl))
* [debootstrap](https://packages.debian.org/debootstrap)
* Perl and the following Perl modules
* [Config::IniFiles](https://metacpan.org/release/Config-IniFiles)
([Debian Package libconfig-inifiles-perl](https://packages.debian.org/libconfig-inifiles-perl))
* [Text::Template](https://metacpan.org/release/Text-Template)
([Debian Package libtext-template-perl](https://packages.debian.org/libtext-template-perl))
* [Data::Validate::Domain](https://metacpan.org/release/Data-Validate-Domain)
([Debian Package libdata-validate-domain-perl](https://packages.debian.org/libdata-validate-domain-perl))
* [Data::Validate::IP](https://metacpan.org/release/Data-Validate-IP)
([Debian Package libdata-validate-ip-perl](https://packages.debian.org/libdata-validate-ip-perl))
* [Data::Validate::URI](https://metacpan.org/release/Data-Validate-URI)
([Debian Package libdata-validate-uri-perl](https://packages.debian.org/libdata-validate-uri-perl))
* [File::Slurp](https://metacpan.org/release/File-Slurp)
([Debian Package libfile-slurp-perl](https://packages.debian.org/libfile-slurp-perl))
* [File::Which](https://metacpan.org/release/File-Which)
([Debian Package libfile-which-perl](https://packages.debian.org/libfile-which-perl))
* and some more modules which are part of the Perl core and hence do not need to be installed separately.
* Make, if you are not installing through a package manager
You can try to install RPM-based distributions such as CentOS, or
Fedora Core, but you will need a correctly installed and configured
[rinse](http://packages.debian.org/rinse) package. This is currently
[rinse](https://packages.debian.org/rinse) package. This is currently
not fully supported.
If you wish to create new Xen instances which may be controlled by
users via a login shell you can have a look at the (currently
unmaintained) [xen-shell](http://xen-tools.org/software/xen-shell/)
unmaintained) [xen-shell](https://xen-tools.org/software/xen-shell/)
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
@@ -174,6 +199,54 @@ image.
* The script should only be used for Xen instances of Debian or a
Debian-derived distribution.
Version Numbering Scheme
------------------------
Since release 4.4, the version numbering scheme of xen-tools tries to
comply with the [Semantic Versioning](http://semver.org/)
specification, with the only exception that trailing zeroes are
omitted.
Between the releases 3.9 and 4.4, the version numbering scheme
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/xen-tools/xen-tools).
Bugs
----
### Reporting Bugs
If you're using the current packages included as part of the Debian
GNU/Linux distribution or a derivative, please first report any bugs
using the distribution's way to report bugs.
In case of Debian this would be using e.g. `reportbug xen-tools`.
If you're using the xen-tools built from source tar ball, please
[report bugs via GitHub's issue tracker](https://github.com/xen-tools/xen-tools/issues/new),
or, if you don't want to create a GitHub account or are not sure if
it's really a bug, feel free to just write an e-mail to the
[xen-tools dicsussion mailing list](mailto:xen-tools-discuss@xen-tools.org).
If you're capable of fixing it yourself a patch is appreciated, and a
test case would be a useful bonus.
### Known/Open Issues
* [xen-tools Issue Tracker at GitHub](https://github.com/xen-tools/xen-tools/issues/new)
* [Mailing list archives of the xen-tools mailing lists](https://xen-tools.org/software/xen-tools/lists.html)
* [TODO file in the source code](https://github.com/xen-tools/xen-tools/blob/master/TODO.markdown)
* [xen-tools in the Debian Bug Tracking System](https://bugs.debian.org/xen-tools)
* [xen-tools in Ubuntu's Launchpad](https://bugs.launchpad.net/ubuntu/+source/xen-tools)
--
The Xen-Tools Developer Team

View File

@@ -3,11 +3,11 @@ Mailing List
For assistance on using, or customising, these scripts please consult
the manpages initially, then the
[website](http://xen-tools.org/software/xen-tools/).
[website](https://xen-tools.org/software/xen-tools/).
If these are not sufficient resources please consider posting any
queries you might have to the [mailing
list](http://xen-tools.org/software/xen-tools/lists.html)
list](https://xen-tools.org/software/xen-tools/lists.html)
Included with the release you should find the file `BUGS.markdown`
which contains some notes on reporting bugs.
@@ -18,13 +18,13 @@ Xen Queries
If your query is mostly related to Xen, rather than these tools, then
please consider joining the [xen-users mailing
list](http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users)
list](https://lists.xenproject.org/cgi-bin/mailman/listinfo/xen-users)
The members of that list are very good at diagnosing issues with
networking, block devices, and other Xen oddities.
There's also the IRC channel `##xen` (the double hashmark is not a
typo) on the [Freenode](http://freenode.net/) IRC network.
typo) on the [Freenode](https://freenode.net/) IRC network.
Contact The Author
@@ -34,7 +34,7 @@ As a last resort you can to contact the current maintainer, Axel
Beckert, at <abe@deuxchevaux.org>.
As the previous xen-tools maintainer and original author, Steve
Kemp, said, I say last resort not because I'm unwilling to help, but
Kemp, said, I say "last resort" not because I'm unwilling to help, but
because it may take longer for me to respond to you personally.
--

View File

@@ -1,16 +1,13 @@
TODO
====
See KNOWN_BUGS.markdown for real bugs.
Most things which used to be in here were moved to
[xen-tools' issue tracker at GitHub](https://github.com/xen-tools/xen-tools/issues).
Bugs to fix and features to add for 5.0
---------------------------------------
* `xen-create-image` man page overhaul:
* ambiguous option list with regards to parameters
* Set Fail in more situations where the script has clearly failed
i.e.: lvm exists
* Fix xdm and gdm roles wrt. to uptodate package names.
* Test and support more file system types.
@@ -22,63 +19,6 @@ Bugs to fix and features to add for 5.0
Currently no locales are set and this causes several domU errors
which appear in the domU's logs.
* Documentation overhaul
Better explain what roles /should be/ used for, and that roles
are examples, and shouldn't cover every single scenario. They
are also easy to write.
* Think again about disk_device checks :
Newer Xen provides `xvda`, older provided `sda`. The current check for
valid values of `disk_device` (used for root device in DomU `/etc/fstab`)
does only allow those values.
This forbids any deployment of LVM/RAID _inside_ DomU, which cannot
be created by xen-tools anyway. So the current check is fine with the
current possibilities of xen-tools, but could become a limitation.
* Is it possible/wanted to "query" xend for default device names?
* Is it possible to create `/dev/mapper` devices with xend conf?
* Can we just avoid to ask for this value and not specify the device
in `/etc/fstab` (and use `/dev/root`, `/dev/by-uuid`, or anything?)
* `xen-create-image --dist=…` / sources.list generation should be more fine-grained
xen-tools should offer the possibility to enable/disable
security/volatile/backports as well as
contrib/non-free/universe/restricted/multiverse for each of them not
only based on defaults plus the Dom0's sources.list
One idea is to allow parameters like
--dist="lenny:main,contrib,non-free;security;volatile:main"
and maybe (if the default will be to include security) to also
allow
--dist="lenny;no-security"
The second idea (by Mathieu Parent) is to have an
`/etc/xen-tools/sources.list.d/` which then contains files like
`lenny.list`, `lenny-server.list`, `karmic.list`, etc. which
defaults to `$dist.list`, but can be also select with
`--sources-list=lenny-server` (which looks for
`./lenny-server.list`, `./lenny-server`,
`/etc/xen-tools/sources.list.d/lenny-server.list` and
`/etc/xen-tools/sources.list.d/lenny-server` in that order).
Third variant is to use `/etc/xen-tools/sources.lists/` instead of
`/etc/xen-tools/sources.list.d/` because that directory is no
runparts-like directory.
* LVM snapshot support as an install source.
* Clean up mounts on `Ctrl-C`, causes error while installing otherwise:
Removing /dev/vg0/acromantula-domu1-disk - since we're forcing the
install Can't remove open logical volume "acromantula-domu1-disk"
this should be a matter of unmounting the mounted volume from /tmp.
* Generic grub support
This will generate a much nicer `menu.lst` as a side effect, as its
@@ -87,47 +27,6 @@ Bugs to fix and features to add for 5.0
new kernel is installed and will also use the domU distro's `menu.lst`
conform.
* pv-grub support
This is a ways away and will probably start with a `xen-pv-grub`
package.
* Move the hooks directory to `/etc/xen-tools/` to officially allow
added and modified hooks.
* Clean up the hooks directory
We still have a link farm for hooks and a meta link farm for distro
releases created on `make install`. It probably would be better if
we would just have one directory per distro (like with debian) but
without the need to created symlinks on `make install`.
Currently CentOS's `25-setup-kernel` creates an fstab and
`90-make-fstab` does again. It works, but that cries for debugging
hell.
`centos-5/25-setup-kernel` and `centos-6/25-setup-kernel` still
differ and I'm not sure if that's necessary respectively what's the
common denominator.
`80-install-kernel` is not yet merged into one hook script.
Common oneliners for code deduplication in the hooks/ directory:
$ find -L . -not -xtype l -not -type d -not -path '*/common/*' | sort -t / -k3
$ fdupes -r1 . | sort -t / -k3
$ find . -type f | sim_text -ipTt 50 | tac | column -t
* Create users, add ssh pubkeys to `.ssh/authorized_keys`
Still have to think of a good way of doing this. It would be nice
To specify a directory of public keys, parsing the hostnames
parsing the usernames from the ssh comment line.
Potential ideas are to add options to add a given file as
`authorized_keys` (e.g. a users public key) or to just add the Dom0's
`/root/.ssh/authorized_keys` as the DomU's one.
* More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up
@@ -141,52 +40,14 @@ Bugs to fix and features to add for 5.0
"type" of configuration you want, and a set of options specific to
that flag could be parsed from xen-tools.conf
* Refactor the code for less variants of calling `cp`, `rm`, `mv`, etc.
E.g. always use either `cp()` from `File::Copy` or `/bin/cp`, but
not both. To allow verbose copying, I (Axel) would prefer `/bin/cp`
over `cp();`.
* Parse numerical parameters transparently for the user
The user shouldn't have to know whether he should specify size as
`<size>G` or `<size>Gb` or `<size>`. This should be parsed without
user interaction and rely on a common format.
* `xen-update-image` should mount `/dev/pts` before running apt-get
* `xen-update-image` should have options for using …
* aptitude instead of apt-get
* dist-upgrade instead of upgrade
* Support `cpu_weight` and other features from
http://wiki.xensource.com/xenwiki/CreditScheduler
* Make used Xen toolstack configurable, i.e. via --xen-toolstack=xl
* Code Deduplication / Refactor the code for less code duplication
`bin/x*` currently contain the same or similar code like e.g. in the
function readConfigurationFile. This needs to be cleaned up.
* Unify --debug and --dumpconfig. Likely make --debug exit
gracefully. Document --debug if --dumpconfig is removed.
* Use `Perl::Critic`
* Refactor the different Ubuntu hooks directories so that only one
ubuntu hooks directory is left.
Then also refactor TLS disabling so that it works on all
distributions the same. Currently Debian is a special case and
Ubuntu half a special case.
* Replace findBinary() with File::Which
* Remove from the (unused) Xen::Tools what's already in the used
Xen::Tools::Common.
* Add test for `--size` constraints (upper- and lowercase letters,
with and without `B`, etc.)
@@ -200,48 +61,3 @@ Stuff from Steve's TODO list / Generic TODOs
* Write more test cases.
* `xen-delete-image` should unallocate any used IP addresses.
* `installGentooPackage` in `hooks/common.sh` is a stub and does
nothing yet.
Axel's Break-Backwards-Compatibility Wishlist
---------------------------------------------
* Make empty extension the default
This would ease tab completion and CLI parameter reusage with "xm
create" and friends.
* Check if we can reduce `MAKEDEV` invocations in
`hooks/common/55-create-dev`
`MAKEDEV std` is called in any case. First comment says "Early
termination if we have a couple of common devices present should
speed up installs which use `--copy`/`--tar`" and then "We still
need to make sure the basic devices are present" and calls `MAKEDEV`
more often than otherwise.
Additionally the `55-create-dev` for CentOS/Fedora just created
`console`, `zero` and `null`. `zero` and `null` are part of `MAKEDEV
std`, perhaps can we reduce it to that. `console` is part of
`MAKEDEV generic`.
Additionally the devices `hda`, `sda` and `tty1` may not necessary
in any case, but instead `hvc0` should be created for sure in many
cases. Nothing cares about `$serial_device` there either.
Current `MAKEDEV` implementation support more than one device as
parameter. That could reduce the `MAKEDEV` calls from currently six
to two.
* Uncouple generating auto start symlinks from `--boot`.
Maybe add some `--autostart` or such.
* Maybe replace findBinary with File::Which
* MAC addresses should no more depend on the distribution.
* Let the admin switch between MAC addresses based on XenSource's OUI,
its organisation's own OUI or locally administrated MAC addresses.
See also http://wiki.xen.org/wiki/Xen_Networking#MAC_addresses

View File

@@ -1,15 +1,16 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-create-image - Easily create new Xen instances with networking and OpenSSH.
=cut
=head1 SYNOPSIS
xen-create-image --hostname=<hostname> <further options>
=head1 EXAMPLES
xen-create-image --hostname=some-domu --dist=wheezy --lvm=vg0
@@ -19,6 +20,7 @@ xen-create-image --hostname=some-domu --dist=precise --dir=/srv/xen
See below for more specific examples: LOOPBACK EXAMPLES, LVM EXAMPLE
and EVMS EXAMPLE.
=head1 OPTIONS
Help Options:
@@ -122,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.
@@ -132,6 +137,13 @@ and EVMS EXAMPLE.
"MB", "G" and "GB" (case does not matter). If there's
no unit given, megabytes are assumed.
--maxmem=size
Setup the maximum amount of memory that can be allocated
to the new instance. As suffix recognized size units are "M",
"MB", "G" and "GB" (case does not matter). If there's
no unit given, megabytes are assumed.
Required for dynamic memory ballooning.
--modules=/path/to/modules
Set the path to the kernel modules to use for domU.
If modules are specified they must exist.
@@ -142,9 +154,6 @@ and EVMS EXAMPLE.
used the system will not have a swap entry added to
its /etc/fstab file either.
--no-xen-ok Don't complain if xen seems not installed or xend is
not running. (Needed for the testsuite.)
--output=dir Specify the output directory to create the xen
configuration file within.
@@ -158,6 +167,7 @@ and EVMS EXAMPLE.
--password=passphrase
Set the root password for the new guest.
Note: This overrides --genpass
--(no)passwd (Don't) ask for a root password interactively during
setup. NOTE: This overrides --genpass --password.
@@ -235,17 +245,18 @@ 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=url
--apt_proxy=protocol://hostname:port/
Specify a proxy to be used by debootstrap, and within
the guest.
the guest. Needs the same syntax as APT's
Acquire::http::Proxy. See apt.conf(5).
--template=tmpl
Specify which template file to use when creating the
@@ -297,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:
@@ -326,8 +340,6 @@ and EVMS EXAMPLE.
If you do not wish to use LVM specify --dir or --evms.
(These three options are mutually exclusive.)
=cut
=head1 NOTES
@@ -350,8 +362,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
The result of invoking these three scripts, and some minor glue between
them, is a simple means of creating new Xen guest domains.
=cut
=head1 DESCRIPTION
@@ -374,7 +384,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
If you wish to install additional packages or do any additional
configuration of your new guests, please read the section on "ROLES".
=cut
=head1 CONFIGURATION
@@ -420,6 +429,7 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
size = 2Gb # Disk image size.
image = full # Allocate the full disk size immediately.
memory = 128Mb # Memory size
maxmem = 512Mb # Memory size
swap = 128Mb # Swap size
fs = ext3 # use EXT3 filesystems
dist = stable # Default distribution to install.
@@ -454,9 +464,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
This makes use of loopback images stored beneath /home/xen and
will be installed via the debootstrap command.
=cut
=head1 NETWORKING AUTO-SETUP
@@ -492,8 +499,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
and would no longer be available. If all the IP addresses are taken
then the system will fail.
=cut
=head1 PARTITIONING
@@ -508,8 +513,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
Now when you create a new image specify the name of this file with as
an argument to the --partition option.
=cut
=head1 XEN CONFIGURATION FILE
@@ -527,8 +530,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
Alternatively you can create multiple configuration files and
specify the one to use with the --template option.
=cut
=head1 LOOPBACK EXAMPLES
@@ -564,8 +565,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
The '/domains/' subdirectory will be created if necessary.
=cut
=head1 LVM EXAMPLE
@@ -587,7 +586,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
mkdir -p /mnt/foo
mount /dev/myvolumegroup/vm01.my.flat-disk /mnt/foo
=cut
=head1 EVMS EXAMPLE
@@ -609,8 +607,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
mkdir -p /mnt/foo
mount /dev/evms/vm01.my.flat-disk /mnt/foo
=cut
=head1 INSTALLATION METHODS
@@ -626,7 +622,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
arguments, or settings in the configuration file. Only one installation
method may be specified at a time; they are mutually-exclusive.
=cut
=head1 INSTALLATION SPEEDUPS
@@ -656,8 +651,6 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
--lvm=myvolumegroup --hostname=vm01.my.flat \
--install-method=copy --install-source=/path/to/copy/from
=cut
=head1 DEBOOTSTRAP CACHING
@@ -685,13 +678,11 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
If you set your cache directory to anything else, simply rm the
contents of the directory.
=cut
=head1 ROLES
Currently there are some roles scripts included which work for
the Debian and Ubuntu distrubtions only. They are included
the Debian and Ubuntu distributions only. They are included
primarily as examples of the kind of things you could accomplish.
The supplied scripts are:
@@ -755,7 +746,7 @@ Install an X11 server, using VNC and XDM
Role scripts are invoked with the directory containing the
installed system as their first argument, and anything passed
as a role-arg will be passed allong as additional arguments.
as a role-arg will be passed along as additional arguments.
NOTE: Role scripts are invoked before the config file generation.
If you need access to the config file from within your role,
@@ -763,9 +754,6 @@ Install an X11 server, using VNC and XDM
NOTE: Multiple role scripts may be invoked if you separate their
names with commas.
=cut
=head1 THE SKELETON DIRECTORY
@@ -788,12 +776,11 @@ Install an X11 server, using VNC and XDM
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Dmitry Nedospasov, http://www.nedos.net/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -816,10 +803,17 @@ 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;
use Data::Dumper;
use Data::Validate::URI qw/ is_uri /;
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;
@@ -830,11 +824,23 @@ 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.
#
my @PARTITIONS = undef;
my @PARTITIONS = ();
#
@@ -853,7 +859,7 @@ my $MOUNT_POINT = undef;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
#
@@ -868,11 +874,28 @@ my $IP_ADDRESSES = '';
my $PASSWORD = '';
#
# Define some fallback password length
#
my $default_genpass_len = 23;
# Minor helpers for reducing code duplication
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.
#
@@ -976,7 +999,7 @@ checkBinariesPresent();
#
# NOTE: This must be done before we call "showSummary".
#
if ( !$#PARTITIONS )
if ( !@PARTITIONS )
{
populatePartitionsData()
if ( ( $CONFIG{ 'dir' } ) ||
@@ -1136,7 +1159,7 @@ exit 0;
Test that this system is fully setup for the new xen-create-image
script.
This means that the the companion scripts xt-* are present on the
This means that the companion scripts xt-* are present on the
host and executable.
=end doc
@@ -1154,13 +1177,13 @@ sub checkSystem
eval($test);
if ( ($@) && ( !$CONFIG{ 'force' } ) )
{
print <<E_O_ERROR;
print <<EOERROR;
Aborting: The Text::Template perl module isn\'t installed or available.
Specify '--force' to skip this check and continue regardless.
E_O_ERROR
EOERROR
$CONFIG{'FAIL'} = 1;
exit 127;
}
@@ -1171,11 +1194,11 @@ E_O_ERROR
# Check that all the binaries have been installed properly
#
my @required =
qw ( / xt-customize-image xt-install-image xt-create-xen-config / );
qw(xt-customize-image xt-install-image xt-create-xen-config);
foreach my $bin (@required)
{
if ( !defined( findBinary($bin) ) )
if ( !defined( which($bin) ) )
{
logprint( "The script '$bin' was not found.\nAborting\n\n" );
$CONFIG{'FAIL'} = 1;
@@ -1208,95 +1231,6 @@ EOF
exit 127;
}
}
#
# Test the system has a valid (network-script) + (vif-script) setup.
#
testXenConfig();
}
=begin doc
Test that the current Xen host has a valid network configuration,
this is designed to help newcomers to Xen.
=end doc
=cut
sub testXenConfig
{
# wierdness.
return if ( !-d "/etc/xen" );
#
# Temporary hash.
#
my %cfg;
#
# Read the configuration file.
#
open( CONFIG, "<", "/etc/xen/xend-config.sxp" ) or
fail("Failed to read /etc/xen/xend-config.sxp: $!");
while (<CONFIG>)
{
next if ( !$_ || !length($_) );
# vif
if ( $_ =~ /^\(vif-script ([^)]+)/ )
{
$cfg{ 'vif-script' } = $1;
}
# network
if ( $_ =~ /^\(network-script ([^)]+)/ )
{
$cfg{ 'network-script' } = $1;
}
}
close(CONFIG);
if ( !defined( $cfg{ 'network-script' } ) ||
!defined( $cfg{ 'vif-script' } ) )
{
print <<EOF;
WARNING
-------
You appear to have a missing vif-script, or network-script, in the
Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able
to use any networking!
EOF
}
else
{
if ( ( $cfg{ 'network-script' } =~ /dummy/i ) ||
( $cfg{ 'vif-script' } =~ /dummy/i ) )
{
print <<EOF;
WARNING
-------
You appear to have a "dummy" vif-script, or network-script, setting
in the Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able to
use any networking!
EOF
}
}
}
@@ -1347,28 +1281,34 @@ 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(hardy lucid oneiric precise quantal raring)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
}
foreach my $ubuntudist (qw(dapper edgy feisty gutsy intrepid jaunty karmic maverick natty)) {
$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";
if ($debdistinfo !~ /default-keyring/ and -s $removed_keys) {
$CONFIG{ 'keyring_'.$debdist } = $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` : '';
chomp($CONFIG{ 'arch' });
$CONFIG{ 'fs' } = 'ext3';
$CONFIG{ 'force' } = 0;
$CONFIG{ 'no_xen_ok' } = 0;
$CONFIG{ 'install' } = 1;
$CONFIG{ 'hooks' } = 1;
$CONFIG{ 'partitions' } = '';
@@ -1391,9 +1331,9 @@ sub setupDefaultOptions
# Default values for passwords
#
$CONFIG{ 'genpass' } = 1;
$CONFIG{ 'genpass_len' } = 8;
$CONFIG{ 'password' } = '';
$CONFIG{ 'hash_method' } = 'sha256';
$CONFIG{ 'genpass_len' } = $default_genpass_len;
$CONFIG{ 'password' } = undef;
$CONFIG{ 'hash_method' } = 'md5';
#
# The program to run to create a filesystem.
@@ -1403,7 +1343,7 @@ sub setupDefaultOptions
#
# NOTE 2: Each of these scripts will "force" the creation of a new
# filesystem, even if it exists. This script must detect
# prior existance itself.
# prior existence itself.
#
$CONFIG{ 'make_fs_ext2' } = 'mkfs.ext2 -F';
$CONFIG{ 'make_fs_ext3' } = 'mkfs.ext3 -F';
@@ -1449,8 +1389,8 @@ sub checkOption
# Define argument types
my %types = (
integerWithSuffix => {
check => qr/^[0-9.]+[GMk]B?$/i,
message => "takes a suffixed (mb, MB, G, k, etc.) integer.\n",
check => qr/^[0-9.]+[GM]B?$/i,
message => "takes a suffixed (mb, MB, G, etc.) integer.\n",
},
distribution => {
check => sub { -d "/usr/share/xen-tools/$_[0].d" },
@@ -1478,15 +1418,15 @@ sub checkOption
message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n",
},
ipv4 => {
check => qr/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
check => sub { is_ipv4($_[0]) },
message => "must be valid IPv4.\n",
},
ipv4_or_auto => {
check => qr/^(?:auto|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/,
check => sub { is_ipv4($_[0]) or $_[0] eq 'auto' },
message => "must be valid IPv4 or the keyword 'auto'.\n",
},
hostname => {
check => qr/^[a-z0-9][a-z0-9.-]{0,254}$/i,
check => sub { is_hostname($_[0]) },
message => "must be a valid hostname.\n",
},
supportedFs => {
@@ -1517,6 +1457,14 @@ sub checkOption
check => qr/^md5|sha256|sha512$/i,
message => "must be md5, sha256 or sha512.\n",
},
uri => {
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.
@@ -1527,7 +1475,9 @@ sub checkOption
swap => 'integerWithSuffix',
image => 'imageType',
memory => 'integerWithSuffix',
maxmem => 'integerWithSuffix',
kernel => 'existingFile',
keyring => 'existingFile',
initrd => 'existingFile',
modules => 'existingDir',
serial_device => 'serialDev',
@@ -1551,6 +1501,8 @@ sub checkOption
mac => 'mac',
ip => 'ipv4_or_auto',
hash_method => 'hashMethod',
apt_proxy => 'uri',
vlan => 'vlan',
);
# If given option does not exists in optionsTypes,
@@ -1624,6 +1576,7 @@ sub parseCommandLineArguments
"noswap", \&checkOption,
"image=s", \&checkOption,
"memory=s", \&checkOption,
"maxmem=s", \&checkOption,
"vcpus=i", \&checkOption,
# Locations
@@ -1632,6 +1585,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' },
@@ -1659,6 +1613,7 @@ sub parseCommandLineArguments
"nameserver=s", \&checkOption,
"vifname=s", \&checkOption,
"p2p=s", \&checkOption,
"vlan=s", \&checkOption,
# Exclusive
#
@@ -1684,17 +1639,17 @@ 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", \$CONFIG{ 'no_xen_ok' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"keep!", \$CONFIG{ 'keep' },
"template=s", \&checkOption,
"output=s", \&checkOption,
@@ -1845,7 +1800,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/ )
if ( $DIST{ $CONFIG{ 'dist' } } =~ /pygrub/ )
{
$CONFIG{ 'pygrub' } = 1;
}
@@ -1872,6 +1827,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!
#
@@ -2293,7 +2259,7 @@ sub checkBinariesPresent
foreach my $file (@required)
{
if ( !defined( findBinary($file) ) )
if ( !defined( which($file) ) )
{
logprint("The following binary is required to run this tool\n");
logprint("\t$file\n");
@@ -2309,7 +2275,7 @@ sub checkBinariesPresent
{
# loopback image
if ( !defined( findBinary("dd") ) )
if ( !defined( which("dd") ) )
{
logprint("The following binary is required to run this tool\n");
logprint("\tdd\n");
@@ -2330,7 +2296,7 @@ sub checkBinariesPresent
foreach my $file (@evms)
{
if ( !defined( findBinary($file) ) )
if ( !defined( which($file) ) )
{
logprint("The following binary is required to run this tool\n");
logprint("\t$file\n");
@@ -2350,7 +2316,7 @@ sub checkBinariesPresent
foreach my $file (@lvm)
{
if ( !defined( findBinary($file) ) )
if ( !defined( which($file) ) )
{
logprint("The following binary is required to run this tool\n");
logprint("\t$file\n");
@@ -2656,19 +2622,29 @@ sub showSummary
logprint("Image type : $CONFIG{'image'}\n");
logprint("Memory size : $CONFIG{'memory'}\n");
if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) )
if ( defined( $CONFIG{ 'maxmem' } ) )
{
logprint("Kernel path : $CONFIG{'kernel'}\n");
logprint("Max mem size : $CONFIG{'maxmem'}\n");
}
if ( defined( $CONFIG{ 'modules' } ) && length( $CONFIG{ 'modules' } ) )
{
logprint("Module path : $CONFIG{'modules'}\n");
}
if ( exists( $CONFIG{ 'pygrub' } ) &&
$CONFIG{ 'pygrub' } ) {
logprint("Bootloader : pygrub\n");
} else {
if ( defined( $CONFIG{ 'kernel' } ) && length( $CONFIG{ 'kernel' } ) )
{
logprint("Kernel path : $CONFIG{'kernel'}\n");
}
if ( defined( $CONFIG{ 'initrd' } ) && length( $CONFIG{ 'initrd' } ) )
{
logprint("Initrd path : $CONFIG{'initrd'}\n");
if ( defined( $CONFIG{ 'modules' } ) && length( $CONFIG{ 'modules' } ) )
{
logprint("Module path : $CONFIG{'modules'}\n");
}
if ( defined( $CONFIG{ 'initrd' } ) && length( $CONFIG{ 'initrd' } ) )
{
logprint("Initrd path : $CONFIG{'initrd'}\n");
}
}
logprint("\nNetworking Information\n");
@@ -2803,6 +2779,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";
}
@@ -3085,11 +3062,14 @@ sub createLVMBits
# Delete if forcing
if ( $CONFIG{ 'force' } )
{
if ( $CONFIG{ 'no_xen_ok' } or
!xenRunning($CONFIG{ 'hostname' }, \%CONFIG)) {
unless ( xenRunning($CONFIG{ 'hostname' }, \%CONFIG)) {
logprint(
"Removing $lvm_disk - since we're forcing the install\n");
runCommand("lvremove --force $lvm_disk", \%CONFIG);
runCommand("sync", \%CONFIG);
logprint(
"Sleeping a few seconds to avoid LVM race conditions...\n");
sleep(3);
} else {
fail("ERROR: Xen guest $CONFIG{'hostname'} appears to be running.\nAborting.\n");
}
@@ -3104,6 +3084,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' };
@@ -3119,7 +3124,9 @@ sub createLVMBits
# The commands to create the volume.
#
my $disk_cmd =
"lvcreate $CONFIG{'lvm'} -L $partition->{'size'} -n $disk";
"lvcreate $CONFIG{'lvm'} ".
($lvm_needs_yes ? '--yes' : '').
" -L $partition->{'size'} -n $disk";
#
# Create the volume
@@ -3160,7 +3167,7 @@ sub createLVMBits
This function is responsible for creating two new logical volumes within
a given EVMS container group (which at the moment is either LVM or LVM2), but
should be compatible with any further extentions of evms.
should be compatible with any further extensions of evms.
=end doc
@@ -3324,7 +3331,7 @@ sub createFilesystem
#
my ($binary, $args) = split(/ /, $command, 2);
if ( !defined( findBinary($binary) ) )
if ( !defined( which($binary) ) )
{
logprint(
"The binary '$binary' required to create the filesystem $fs is missing\n"
@@ -3489,6 +3496,14 @@ sub installSystem
$cmd .= " --arch=$CONFIG{'arch'}";
}
#
# Propagate --keyring
#
if ( $CONFIG{ 'keyring' } )
{
$cmd .= " --keyring=$CONFIG{'keyring'}";
}
#
# Propagate --debootstrap-cmd if install-method is debootstrap
@@ -3496,7 +3511,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'}'";
}
@@ -3609,7 +3624,7 @@ sub runCustomisationHooks
delete $ENV{ 'ip' };
#
# Setup a seperate ip$count value for each IP address.
# Setup a separate ip$count value for each IP address.
#
my $ips = $CONFIG{ 'ip' };
my $count = 1;
@@ -3944,7 +3959,19 @@ sub setupRootPassword
{
if ( -x $MOUNT_POINT . "/usr/bin/passwd" )
{
runCommand("chroot $MOUNT_POINT /usr/bin/passwd", \%CONFIG);
my $tryagain = 1;
my $term = Term::ReadLine->new('Password change failed');
while ($tryagain) {
my $rc = system("chroot $MOUNT_POINT /usr/bin/passwd");
if ($rc >> 8) {
$tryagain = $term->ask_yn(
prompt => 'Do you want to try to change the password again??',
default => 'y',
);
} else {
$tryagain=0;
}
}
}
else
{
@@ -3963,13 +3990,17 @@ sub setupRootPassword
#
# Generate a password, salt and use that to generating a hash
#
if ( $CONFIG{ 'genpass' } )
if ( defined( $CONFIG{ 'password' } ) )
{
$PASSWORD = $CONFIG { 'password' };
}
elsif ( $CONFIG{ 'genpass' } )
{
$PASSWORD = generatePassword( $CONFIG{ 'genpass_len' } );
}
else
{
$PASSWORD = $CONFIG { 'password' };
fail("oops... neither passwd nor password nor genpass are set, should not happen!");
}
my $salt = generatePassword(8);
@@ -4033,6 +4064,10 @@ sub setupRootPassword
sub generatePassword {
my $length = $_[0];
unless ($length and $length > 0) {
warn "generatePassword: No (sane) password length given. Using $default_genpass_len instead.";
$length = $default_genpass_len;
}
my $possible = 'abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
my $password = '';
while (length($password) < $length) {
@@ -4128,21 +4163,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'});
}
@@ -4250,14 +4299,17 @@ END
logprint("---------------------\n");
logprint("Hostname : $CONFIG{'hostname'}\n");
logprint("Distribution : $CONFIG{'dist'}\n");
logprint("IP-Address(es) : ");
logprint("MAC Address : $CONFIG{'mac'}\n");
logprint("IP Address(es) : ");
if ( $CONFIG{ 'dhcp' } ) {
logprint("dynamic");
} elsif( $CONFIG{ 'ip' } ) {
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

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
@@ -36,8 +38,6 @@ xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
--nfs_server Specify the NFS server to mount the root partition from.
--nfs_root Specify the path, upon the NFS server, to mount.
=cut
=head1 OPTIONS
@@ -55,11 +55,8 @@ Read the manual for this script.
=item B<--version>
Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -71,26 +68,20 @@ Show the version number and exit.
support more than the minimal number of options to completement the
existing xen-create-image script, however it is hopefully useful.
=cut
=head1 REFERENCE
For more details on what you'll need to support NFS-root Xen guests
the following article, written by the author, might be useful:
http://www.debian-administration.org/articles/505
=cut
https://debian-administration.org/articles/505
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Steve Kemp, https://steve.fi/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -102,7 +93,6 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -131,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
# store version number away.
@@ -292,7 +282,7 @@ sub testArguments
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
# Shorthack to fix http://bugs.debian.org/648814 -- xen-create-nfs
# Shorthack to fix https://bugs.debian.org/648814 -- xen-create-nfs
# should better use xt-create-xen-config instead. Guess from where
# this code is borrowed for now...

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-delete-image - Delete previously created Xen instances.
@@ -28,9 +30,6 @@ xen-delete-image - Delete previously created Xen instances.
Testing options:
--test Don't complain if we're not invoked by root.
--no-xen-ok Don't complain if xen seems not installed or xend is not running
=cut
=head1 OPTIONS
@@ -56,16 +55,14 @@ Specify the LVM volume group where images were previously saved.
Read the manual for this script.
=item B<--test>
Do not complain, or exit, if the script is not executed by the root user.
Do not complain, or exit, if the script is not executed by the root
user. (Only works in conjunction with --dir.)
=item B<--version>
Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -79,8 +76,6 @@ Show the version number and exit.
but will fail to remove anything which the user does not have permission
to delete.)
=cut
=head1 LOOPBACK EXAMPLE
@@ -96,8 +91,6 @@ Show the version number and exit.
(The matching Xen configuration files beneath /etc/xen will also be
removed.)
=cut
=head1 LVM EXAMPLE
@@ -114,8 +107,6 @@ Show the version number and exit.
The Xen configuration files will also be removed from beneath /etc/xen.
=cut
=head1 EVMS EXAMPLE
@@ -132,17 +123,13 @@ Show the version number and exit.
The Xen configuration files will also be removed.
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -154,7 +141,6 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -177,7 +163,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
#
@@ -246,7 +232,7 @@ foreach my $name (@ARGV, @hosts)
{
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $name;
if ( $CONFIG{ 'no_xen_ok' } or !xenRunning($name, \%PER_HOST_CONFIG) )
unless ( xenRunning($name, \%PER_HOST_CONFIG) )
{
deleteXenImage($name);
}
@@ -289,7 +275,7 @@ sub parseCommandLineArguments
"hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' },
"verbose", \$CONFIG{ 'verbose' },
"no-xen-ok", \$CONFIG{ 'no_xen_ok' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
@@ -323,10 +309,10 @@ sub checkArguments
#
# When testing we only care about loopback images, not disk images.
#
if ( $CONFIG{ 'test' } )
if ( $CONFIG{ 'test' } and ( $CONFIG{ 'lvm' } or $CONFIG{ 'evms' } ))
{
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'evms' } = undef;
print "Error: --test only works with --dir.\n";
exit 1;
}
#
@@ -348,7 +334,7 @@ sub checkArguments
print " --dir\n";
print " --evms\n";
print " --lvm\n";
exit;
exit 2;
}
}

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-list-images - List all the created and configured Xen images.
@@ -20,6 +22,7 @@ xen-list-images - List all the created and configured Xen images.
Testing options:
--test Specify an alternate Xen configuration directory.
=head1 OPTIONS
=over 8
@@ -52,22 +55,18 @@ Show the version number and exit.
and then either the IP address configured, or "DHCP" to denote
a dynamic host.
=cut
=head1 TODO
It should be possible to determine the disk(s) used by the images,
and then display their sizes.
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Steve Kemp, https://steve.fi/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -107,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
@@ -213,7 +212,7 @@ sub findXenInstances
=begin doc
Show details about the the Xen instance contained in the given
Show details about the Xen instance contained in the given
configuration file.
=end doc
@@ -250,7 +249,7 @@ sub displayInstance
{
$name = $1;
}
if ( $line =~ /.*memory[^0-9]*([0-9]+)/i )
if ( $line =~ /^\s*memory[^0-9]*([0-9]+)/i )
{
$mem = $1;
}
@@ -265,7 +264,7 @@ sub displayInstance
}
print "Name: $name\n";
print "Memory: $mem\n";
print "Memory: $mem MB\n";
print "IP: " . $ip . $mac . "\n" if length($ip);
print "DHCP" . $mac . "\n" if $dhcp;
print "Config: $file\n";

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-resize-guest - Resize a loopback or LVM based xen guest.
@@ -20,8 +22,6 @@ xen-resize-guest - Resize a loopback or LVM based xen guest.
--force Force the resize to happen without a last-chance delay.
--hostname Specify the hostname of the guest to resize.
=cut
=head1 OPTIONS
@@ -53,8 +53,6 @@ Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -74,14 +72,11 @@ Show the version number and exit.
More than once I've heard of users making mistakes and breaking their
filesystems; hence this tool.
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
=head1 LICENSE
@@ -94,7 +89,6 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -117,7 +111,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
#
@@ -346,7 +340,7 @@ sub parseCommandLineArguments
#
# Setup mutually exclusive options in such a way that
# they will allow the configuration values to be overriden by
# they will allow the configuration values to be overridden by
# the command line.
#
if ( $install{ 'lvm' } )

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-update-image - Update the software installed upon offline Xen images.
@@ -18,9 +20,6 @@ xen-update-image - Update the software installed upon offline Xen images.
--lvm Specify the LVM volume group which contains the image(s).
--evms Specify the EVMS container which contains the image(s).
=cut
=head1 OPTIONS
@@ -46,8 +45,6 @@ Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -65,8 +62,6 @@ Show the version number and exit.
corruption otherwise it will allow you to update your image without
booting it.
=cut
=head1 EXAMPLES
@@ -77,16 +72,13 @@ Show the version number and exit.
xen-update-images --dir=/home/xen test.my.flat x11.my.flat
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -121,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
#
@@ -310,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

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-create-config - Create a Xen configuration file for a new guest
=cut
=head1 SYNOPSIS
xt-create-config [options]
@@ -39,7 +39,6 @@ xt-create-config - Create a Xen configuration file for a new guest
All other options from xen-create-image, such as the new IP address(es)
to give to the new instance, will be passed as environmental variables.
=cut
=head1 ABOUT
@@ -53,8 +52,6 @@ xt-create-config - Create a Xen configuration file for a new guest
By default the script will use /etc/xen-tools/xm.tmpl as its input.
=cut
=head1 INVOCATION
@@ -75,9 +72,6 @@ xt-create-config - Create a Xen configuration file for a new guest
=for example end
=cut
=head1 ARGUMENT PASSING
This script will be invoked with a full copy of the arguments from
@@ -102,15 +96,13 @@ xt-create-config - Create a Xen configuration file for a new guest
for the "Text::Template" perl module. (If you have the perldoc
package installed you can read this with "perldoc Text::Template".)
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -156,7 +148,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
@@ -262,7 +254,7 @@ sub checkArguments
if ( !-d $CONFIG{ 'output' } )
{
print
"The output directory we've been given, $CONFIG{'output'}, doesnt exist\n";
"The output directory we've been given, $CONFIG{'output'}, doesn't exist\n";
print "Aborting\n";
exit 1;
}
@@ -377,11 +369,23 @@ sub createXenConfig
#
# Remove any trailing Mb.
#
if ( $ENV{ 'memory' } =~ /^(\d+)Mb?.*$/i )
{
$ENV{ 'memory' } = $1;
}
$ENV{ 'memory' } =~ s/^(\d+)Mb?.*$/$1/i;
#
# The maxmem size: Convert Gb -> Mb.
#
if ( exists($ENV{ 'maxmem' }) and defined($ENV{ 'maxmem' })) {
if ($ENV{ 'maxmem' } =~ /^(\d+)Gb?.*$/i )
{
$ENV{ 'maxmem' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
$ENV{ 'maxmem' } =~ s/^(\d+)Mb?.*$/$1/i;
}
#
# Images as presented to Xen - either loopback images, or LVM partitions.

View File

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-customize-image - Customize a freshly installed copy of GNU/Linux
=cut
=head1 SYNOPSIS
xt-customize-image [options]
@@ -25,12 +25,11 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
All other options from xen-create-image, such as the new IP address(es)
to give to the new instance, will be passed as environmental variables.
=cut
=head1 NOTES
This script is invoked by xen-create-image after it has created a
fresh installation of Linux withing a temporary location.
fresh installation of Linux within a temporary location.
This script will be invoked with a full copy of the arguments from
xen-create-image in its environment, along with several command line
@@ -41,8 +40,6 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
--location - The temporary installation root of the new install
--dist - The distribution which has been installed.
=cut
=head1 HOOK SCRIPTS
@@ -57,17 +54,22 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
executed from '/usr/share/xen-tools/foo.d'. Each executable will
be loaded and executed in sorted order.
=cut
The systems administrator can optionally provide site-specific
revisions of those same hooks by placing them in the directory
'/etc/xen-tools/hooks.d/' in which case a script with the same name
as the one in the 'foo.d' directory above will take precedence. In
this way certain hooks can be prevented from running, expanded with
site-specific features which won't get overwritten on upgrades, or
patched with critical bug-fixes before the upstream OS distribution
provider reacts.
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -98,7 +100,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
@@ -258,6 +260,7 @@ sub runDistributionHooks
# Hook directory.
#
my $hooks = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
my $hooks_local = "/etc/xen-tools/hooks.d/";
#
# Installation prefix
@@ -302,10 +305,20 @@ sub runDistributionHooks
$name = $2;
}
#
# Run a local version of the hook instead of the system one,
# if the local one exists and is executable.
#
my $file_local = $hooks_local . $name;
if ( ( -x $file_local ) && ( -f $file_local ) )
{
$file = $file_local
}
#
# Complete command we're going to execute.
#
my $cmd = $hooks . $name . " $CONFIG{'location'}";
my $cmd = $file . " $CONFIG{'location'}";
#
# Run the command. This has different prolog and epilog

View File

@@ -1,12 +1,12 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-guess-suite-and-mirror - Tries to guess the most suitable suite and
mirror for DomUs on Debian and Ubuntu Dom0s.
=cut
=head1 SYNOPSIS
--suite Show suite
@@ -20,7 +20,6 @@ mirror for DomUs on Debian and Ubuntu Dom0s.
--manual Show the manual for this script.
--version Show the version number and exit.
=cut
=head1 DESCRIPTION
@@ -28,14 +27,12 @@ xt-guess-suite-and-mirror tries to find the mirror and suite the Xen
Dom0 is currently using and returns them in a way suitable for
xen-create-image(1) or the backticks feature in xen-tools.conf.
=cut
=head1 AUTHORS
Axel Beckert, http://noone.org/abe/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -55,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"
@@ -74,6 +71,7 @@ my @sources_list_files = ( '/etc/apt/sources.list',
use File::Slurp;
use Getopt::Long;
use Pod::Usage;
use File::Which;
use strict;
@@ -81,7 +79,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
# Init
my $mirror = '';
@@ -153,10 +151,8 @@ all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
join("\n ", @sources_list_files)."\n" unless $found;
my $lsb_release = `which lsb_release`;
chomp($lsb_release);
if (!$found and $lsb_release and -x $lsb_release) {
my $lsb_release = which('lsb_release');
if (!$found and defined($lsb_release) and -x $lsb_release) {
my $vendor = `$lsb_release -s -i`;
if ($vendor eq 'Debian' or $vendor eq 'Ubuntu') {

View File

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-install-image - Install a fresh copy of GNU/Linux into a directory
=cut
=head1 SYNOPSIS
xt-install-image [options]
@@ -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.
@@ -39,8 +40,6 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
All other options from xen-create-image will be passed as environmental
variables.
=cut
=head1 NOTES
@@ -50,8 +49,6 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
configuration, etc.
=cut
=head1 INSTALLATION METHODS
There are several available methods of installation, depending upon the
@@ -78,17 +75,14 @@ Untar a .tar file into the new installation location. This tarfile is assumed t
=back
=cut
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Dmitry Nedospasov, http://www.nedos.net/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -119,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.4~dev';
my $RELEASE = '4.7';
#
@@ -344,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.
@@ -626,7 +621,7 @@ sub do_debootstrap
}
#
# Propogate --verbose appropriately.
# Propagate --verbose appropriately.
#
my $EXTRA = '';
if ( $CONFIG{ 'verbose' } )
@@ -635,13 +630,21 @@ sub do_debootstrap
}
#
# Propogate the --arch argument
# Propagate the --arch argument
#
if ( $CONFIG{ 'arch' } )
{
$EXTRA .= " --arch $CONFIG{'arch'}";
}
#
# Propagate the --keyring argument
#
if ( $CONFIG{ 'keyring' } )
{
$EXTRA .= " --keyring=$CONFIG{'keyring'}";
}
#
# Setup http_proxy so that debootstrap pulls files through the apt-proxy
#
@@ -698,7 +701,7 @@ sub do_rinse
"rinse --distribution=$CONFIG{'dist'} --directory=$CONFIG{'location'}";
#
# Propogate the --arch argument
# Propagate the --arch argument
#
if ( $CONFIG{ 'arch' } )
{
@@ -724,7 +727,7 @@ sub do_rinse
}
#
# Propogate the verbosity setting.
# Propagate the verbosity setting.
#
if ( $CONFIG{ 'verbose' } )
{
@@ -748,7 +751,7 @@ sub do_rpmstrap
{
#
# Propogate the verbosity setting.
# Propagate the verbosity setting.
#
my $EXTRA = '';
if ( $CONFIG{ 'verbose' } )
@@ -757,7 +760,7 @@ sub do_rpmstrap
}
#
# Propogate any arch setting we might have.
# Propagate any arch setting we might have.
#
if ( $CONFIG{ 'arch' } )
{

7
debian/NEWS vendored
View File

@@ -1,4 +1,4 @@
xen-tools (4.4~dev-1) UNRELEASED; urgency=low
xen-tools (4.4~beta1-1) unstable; urgency=low
* Exported environment variables no more contain dashes ("-"). Dashes in
environment variable names are from now on converted to underscores
@@ -11,7 +11,7 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
which all should be empty at that point, i.e. "rmdir -p
/usr/lib/xen-tools/*" should do the trick.
-- Axel Beckert <abe@debian.org> Fri, 05 Apr 2013 20:19:02 +0200
-- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:01:16 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low
@@ -26,7 +26,7 @@ xen-tools (4.2~beta1-1) unstable; urgency=low
If the DomU hangs with "Waiting for root file system" despite
/dev/xvd* is used as disk device, adding "xen-blkfront" to
/etc/initramfs-tools/modules and runing "update-initramfs -u"
/etc/initramfs-tools/modules and running "update-initramfs -u"
afterwards may help.
If the Dom0 is a Debian or Ubuntu, the distribution and suite for
@@ -39,4 +39,3 @@ xen-tools (4.2~beta1-1) unstable; urgency=low
path ending in /debian/ there.
-- Axel Beckert <abe@debian.org> Sun, 30 May 2010 22:36:16 +0200

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

281
debian/changelog vendored
View File

@@ -1,6 +1,252 @@
xen-tools (4.4~dev-1) UNRELEASED; urgency=low
xen-tools (4.7-2) UNRELEASED; urgency=medium
* Fix wrong bug number for #849867 in previous changelog entry.
* Declare compliance with Debian Policy 4.1.3.
+ Change Priority from extra to optional.
* Use "$(MAKE)" instead of "make" in debian/rules.
* debian/control: Drop "Testsuite: autopkgtest" header, no more needed.
* Switch "activate" trigger to "activate-noawait".
* Recommend e2fsprogs. (Closes: #887236)
* Prefer btrfs-progs over now transitional package btrfs-tools. (Closes:
#878910)
-- Axel Beckert <abe@debian.org> Mon, 23 Jan 2017 01:36:27 +0100
xen-tools (4.7-1) unstable; urgency=medium
* New upstream release
+ release-testing: Several enhancements, race condition avoidance, …
+ Fixes reported error code in case of subcommand failure (Reported
and fixed by Yuri Sakhno, thanks!)
+ Fixes typo found by lintian.
+ Support for Ubuntu 16.10 Yakkety Yak.
+ Preliminary support for Ubuntu 17.04 Zesty Zapus.
+ Knows future Debian release names Buster (10) and Bullseye (11).
+ Knows about Ubuntu's "devel" alias.
+ Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
to cope with risen resource consumption and availability.
(Closes: #849867)
+ Default file system is now ext4 (instead of ext3).
+ Fixes inconsistent/non-functional handling of --nopygrub
parameter. Thanks Daniel Reichelt for the bug report and patch!
(Closes: #842609)
+ Fixes possible missing gateway in generated
/etc/network/interfaces. (Closes: #764625)
+ Support situations where distributions (e.g. Squeeze) might be EoL,
but its archive signing key is still not removed from the default
keyring.
+ Workaround LVM related race condition when using --force with LVM.
* Declare compliance with Debian Policy 3.9.8. (No changes needed.)
* Use NEWS.markdown as upstream changelog, don't install it as docs.
* Switch many URLs (upstream and in packaging) to https:// and update
URLs where they were broken or redirect somewhere else now.
* Fix some typos in older debian/changelog and debian/NEWS items.
-- Axel Beckert <abe@debian.org> Mon, 23 Jan 2017 00:39:11 +0100
xen-tools (4.6.2-1) unstable; urgency=medium
* New upstream bugfix release
[ Pierre Olivier ]
+ Added /usr/local/bin/pygrub to the end of the pygrub search path.
[ nirgal ]
+ Fixed typo in initramfs comment
[ Axel Beckert ]
+ Make t/hooks-inittab.t using its own copy of the generic /etc/inittab
for testing instead of using the system one's. (GH#36, should fix
autopkgtest on systems with modified /etc/inittab)
+ Fix unescaped braces (deprecated with Perl 5.22) in t/plugin-checks.t.
* Support checking upstream GPG signature in debian/watch.
-- Axel Beckert <abe@debian.org> Wed, 23 Dec 2015 18:05:54 +0100
xen-tools (4.6.1-1) unstable; urgency=medium
* New upstream bugfix release
+ Declare GitHub as primary hosting.
+ Integrate BUGS.markdown into README.markdown, move remaining
contents of KNOWN_BUGS.markdown to the GitHub issue tracker.
+ Fix Perl warning in t/hook-inittab.t if /etc/inittab isn't present.
- Fixes failed autopkgtest.
+ Preliminary support for Ubuntu 16.04 LTS Xenial Xerus.
+ Neither use $#array in boolean context nor @array = undef anymore.
* Update Vcs-* headers to point to GitHub instead of GitLab.
* Add debian/maintscript to remove obsolete conffile
/etc/bash_completion.d/xen-tools properly.
* Fix typo in previous changelog entry.
-- Axel Beckert <abe@debian.org> Sat, 24 Oct 2015 01:13:08 +0200
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 10.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 is 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
+ Use "686-pae" kernels instead of "686" kernels on Debian Wheezy and
later. Thanks to Daniel Lintott! (Closes: #742778)
+ Pass "-y" option ("assume yes") to yum (Closes: #735675)
Thanks Lionel FÉLICITÉ!
+ Drop all xend related sanity checks, they cause more havoc nowadays
than they help. Thanks Ian Campbell! (Closes: #732456)
+ 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/.
Thanks! (Also add /etc/xen-tools/hooks.d/ to debian/dirs.)
+ Ignore cover_db directory in t/perl-syntax.t.
+ Update list of supported Ubuntu releases.
- Add support for Ubuntu 14.10 Utopic Unicorn.
- Add preliminary support for Ubuntu 15.04 Vivid Vervet.
- Use old-releases.ubuntu.com for Ubuntu 13.10 Saucy Salamander.
+ Fix always empty gateway on Debian DomUs (Thanks Joan! LP: #1328794)
+ pygrub detection: Prefer /usr/lib/xen-default over /usr/lib/xen-x.y.
+ Fix lvcreate awaiting user input when creating swap lv (Closes: #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: #764143) Based on patch by
Santiago Vila.
+ 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.
+ t/perl-syntax.t: Ignore changelog files, too.
[ Santiago Vila ]
+ Fix unaligned maxmem output of xen-create-image. (Closes: #764126)
+ Fix copy & paste errors in comments in typos in roles/puppet
(Closes: #764134)
+ Fix typos in POD of xen-create-image (Closes: #764153)
* Bump Standards-Version to 3.9.6 (no changes needed)
* Fix lintian warning depends-on-perl-modules.
* Add lintian override for debian-news-entry-uses-asterisk; I disagree.
-- Axel Beckert <abe@debian.org> Sat, 25 Oct 2014 23:27:18 +0200
xen-tools (4.4-1) unstable; urgency=low
* New upstream release
- Run t/gitignore.t only if git is installed and .git present.
- Rework "minimal" role to be less based on personal preferences.
+ No more installs sudo, vim, syslog-ng, etc.
+ Fixes usage together with pygrub.
- hooks/common.sh: Split up installDebianPackage into
installDebianPackage and installDebianPackageAndRecommends.
* Also add build-dependency on "libterm-ui-perl | perl (<< 5.17.0)" and
"liblog-message-perl | perl (<< 5.17.0)" to avoid warnings with Perl
5.18 and future FTBFS.
* Mention Ubuntu 14.04 Trusty Tahr in long description.
-- Axel Beckert <abe@debian.org> Wed, 11 Dec 2013 20:59:06 +0100
xen-tools (4.4~rc1-1) unstable; urgency=low
* New upstream release candidate
- Also switch from cdn.debian.net to http.debian.net in xen-tools.conf
- Do not run "passwd" via runCommand as that one captures STDOUT for
logging. Makes --passwd usable again. Thanks to Christian Herzog for
the bug report.
- Loop around calling "passwd" to get a second chance to change the
password. (Closes: #703159) Thanks to Joan <aseques@gmail.com> for a
bug fix in this new code.
+ Add dependency on "libterm-ui-perl | perl (<< 5.17.0)"
- Declares one more POD encoding and recode Xen::Tools::Common to
UTF-8. Fixes FTBFS with Perl 5.18. (Finally closes: #720519)
- Apply patch by Philipp Erbelding to fix overzealous line matching in
xen-list-images. (Gitorious merge request #5)
- xen-list-images now displays a unit after the memory size
- Drop support for memory size in kilobytes in xen-create-image,
neither xt-create-xen-config nor xm support it.
- Refactoring: Replace all occurrences of "! -z" by "-n" in hooks and
bash completion.
- Handle potentially empty gateway setting properly in
hooks/common/40-setup-networking-deb. Thanks Simone Caruso!
- Reformat hooks/common/40-setup-networking-deb so that the result
neither has trailing whitespace nor broken indentation.
- Also display MAC address after the DomU has been created.
- Preliminary support for Ubuntu 14.04 Trusty Tahr.
- Added --maxmem flag to set a maximum value for dynamic memory
ballooning. Thanks to Joan <aseques@gmail.com> for the patch!
- Added fix by Patryk Ściborek againsat disableStartStopDaemon()
aborting under some circumstances. (Closes: #725192)
- Abort early and with proper error message if "xen-delete-image
--test" is not used with "--dir". (Closes: #704878)
- xen-delete-image: Exit with return code != 0 in all error cases.
- Refactoring: xt-create-xen-config: Use s/// to strip trailing MB
size suffixes.
* Bump Standards-Version to 3.9.5 (no changes).
-- Axel Beckert <abe@debian.org> Mon, 28 Oct 2013 22:31:03 +0100
xen-tools (4.4~beta1-1) unstable; urgency=low
* New upstream beta release
- 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
@@ -20,14 +266,17 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
- Fixes "--extension=" with empty parameter.
- Sarge amd64 case handle properly
- Remove CVS revisions from --version output
- Preliminary support for Debian Jessie and Ubuntu Raring
- Support for Debian Jessie, Ubuntu Raring and preliminary support for
Ubuntu Saucy (debootstrap doesn't have support for Saucy at the time
of writing)
- Preliminary support for xl toolstack
- xen-create-image: Consistently use runCommand() instead of system()
- xt-install-image: Don't bail out if only cdebootstrap is installed
but not debootstrap (Thanks Elmar Heeb!)
- Makefile accepts DESTDIR=…
- Move examples from debian/examples to examples.
- Uses File::Which, added (build-) dependency on libfile-which-perl
- Uses File::Which exclusively (no more findBinary, no more `which`),
added (build-) dependency on libfile-which-perl
- Knows about module-init-tools → kmod transition in wheezy/raring.
- Adds default mount options for ext4, identical to ext2/ext3.
- Ships /etc/initramfs-tools/conf.d/xen-tools for generating Dom0
@@ -41,14 +290,26 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
Add installCentOS4Package wrapper for backward compatibility.
- 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. Also supports RPM-based distributions now.
90-make-fstab. (Closes: #715340) Also supports RPM-based
distributions now.
- Fixes export of environment variables. Previously they could contain
dashes and then were only accessible from within Perl, but not from
within Bash.
- Fixes creation of "ARRAY(0x…).log" named log files.
- Makes some options (like --pygrub) negatable.
- Uses Test::NoTabs; add according build-dependency.
* Add debian/gbp.conf to be able to to build xen-tools with
- Removes unused Perl modules Xen::Tools and Xen::Tools::Log from
source code. Also removes the according tests from the test suite.
→ Remove no more needed build-dependency on Moose.
- Better documents and checks requirements for the --apt_proxy
value. (See #623443 for the corresponding apt issue.) Add (build-)
dependency on libdata-validate-uri-perl.
- Use Data::Validate::{Domain,IP} for IP addresses and hostname checks.
Add corresponding (build-) dependencies on
libdata-validate-{domain,ip}-perl.
- Fixes broken quoting in list of required binaries
- Declares POD encoding. Fixes FTBFS with Perl 5.18. (Closes: #720519)
* Add debian/gbp.conf to be able to build xen-tools with
git-buildpackage.
* Clean up debian/rules:
- Don't mention (generated) upstream changelog explicitly,
@@ -59,10 +320,14 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
dh_auto_* can't help. No more explicitly call "make manpages", it's
a depedency of "make install" in the next line anyway.
- Finally switch to a minimal dh style debian/rules.
* Bump debhelper compatibility to 9
- Update versioned debhelper build-dependency
* Bump Standards-Version to 3.9.4 (no changes)
* Add dependency on ${perl:Depends} to fix dpkg-gencontrol warning.
* Bump copyright years in debian/copyright.
* Apply wrap-and-sort.
-- Axel Beckert <abe@debian.org> Thu, 17 Jan 2013 17:09:02 +0100
-- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:00:03 +0200
xen-tools (4.3.1-1) unstable; urgency=low
@@ -332,7 +597,7 @@ xen-tools (3.9-3) unstable; urgency=medium
xen-tools (3.9-2) unstable; urgency=high
- Ensure that the hook scripts which setup networking details for
Debian & Ubuntu guests will correctly setup teh broadcast address.
Debian & Ubuntu guests will correctly setup the broadcast address.
-- Steve Kemp <skx@debian.org> Wed, 20 Feb 2007 21:22:23 +0000
@@ -466,7 +731,7 @@ xen-tools (3.1-1) unstable; urgency=low
[ Steve Kemp ]
* New upstream release v3.1.
- Installation of packages in hooks works. (Closes: #402889, #404518)
- Xen configuration files are not accidently trashed. (Closes: #404443)
- Xen configuration files are not accidentally trashed. (Closes: #404443)
- Hooks are now optional. (Closes: #404444)
- Better error handling of image creation. (Closes: #404455, #404516)
- Avoid copying needless kernel modules to guests. (Closes: #404508)

2
debian/compat vendored
View File

@@ -1 +1 @@
7
9

55
debian/control vendored
View File

@@ -1,37 +1,52 @@
Source: xen-tools
Section: utils
Priority: extra
Priority: optional
Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 7.0.0),
Build-Depends: debhelper (>= 9~),
devscripts,
git,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
libmoose-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.3
Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
Standards-Version: 4.1.3
Homepage: https://xen-tools.org/software/xen-tools
Vcs-Browser: https://github.com/xen-tools/xen-tools
Vcs-Git: https://github.com/xen-tools/xen-tools.git
Package: xen-tools
Architecture: all
Depends: debootstrap | cdebootstrap,
libconfig-inifiles-perl,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
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-modules,
${misc:Depends}
Recommends: libexpect-perl,
perl,
${misc:Depends},
${perl:Depends}
Recommends: debian-archive-keyring,
e2fsprogs,
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,
Suggests: btrfs-progs | btrfs-tools,
cfengine2,
reiserfsprogs,
xfsprogs
@@ -47,7 +62,11 @@ Description: Tools to manage Xen virtual servers
* Debian 4.0 Etch
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7.0 Wheezy
* Debian 7 Wheezy
* Debian 8 Jessie
* Debian 9 Stretch (under development)
* Debian 10 Buster (future release name)
* Debian 11 Bullseye (future release name)
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
@@ -62,5 +81,15 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 11.04 Natty Narwhal
* Ubuntu 11.10 Oneiric Ocelot
* Ubuntu 12.04 Precise Pangolin (LTS)
* Ubuntu 12.10 Quantal Quetzal
* Ubuntu 13.04 Raring Ringtail
* Ubuntu 13.10 Saucy Salamander
* Ubuntu 14.04 Trusty Tahr (LTS)
* Ubuntu 14.10 Utopic Unicorn
* Ubuntu 15.04 Vivid Vervet
* Ubuntu 15.10 Wily Werewolf
* Ubuntu 16.04 Xenial Xerus (LTS)
* Ubuntu 16.10 Yakkety Yak
* Ubuntu 17.04 Zesty Zapus (preliminary support, under development)
* CentOS 5
* CentOS 6

14
debian/copyright vendored
View File

@@ -1,7 +1,7 @@
This package was debianized by Radu Spineanu <radu@debian.org> on
Tue, 20 Dec 2005 02:21:05 +0200.
It was downloaded from http://xen-tools.org/software/xen-tools/
It was downloaded from https://xen-tools.org/software/xen-tools/
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
Copyright 2010-2013: The Xen-Tools Development Team, currently consisting of:
@@ -25,3 +25,15 @@ Perl is distributed under licenses:
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in /usr/share/common-licenses/GPL-1' and
the Artistic Licence in /usr/share/common-licenses/Artistic'.
t/data/inittab is Copyright 1997-2005 Miquel van Smoorenburg
<miquels@cistron.nl> and the members pkg-sysvinit project.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License version 2 can be found in
/usr/share/common-licenses/GPL-2'.

3
debian/dirs vendored
View File

@@ -1,4 +1,5 @@
/etc/xen-tools
/etc/xen-tools/role.d
/etc/xen-tools/hooks.d
/etc/xen-tools/skel
/usr/share/xen-tools
/usr/share/xen-tools

3
debian/docs vendored
View File

@@ -1,7 +1,4 @@
AUTHORS
README.markdown
SUPPORT.markdown
BUGS.markdown
TODO.markdown
KNOWN_BUGS.markdown
NEWS.markdown

2
debian/lintian-overrides vendored Normal file
View File

@@ -0,0 +1,2 @@
# I disagree
xen-tools: debian-news-entry-uses-asterisk

1
debian/maintscript vendored Normal file
View File

@@ -0,0 +1 @@
rm_conffile /etc/bash_completion.d/xen-tools 4.6.1-1~

6
debian/rules vendored
View File

@@ -5,4 +5,10 @@
%:
dh $@
override_dh_auto_test:
$(MAKE) non-author-test
override_dh_installchangelogs:
dh_installchangelogs NEWS.markdown
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

2
debian/triggers vendored
View File

@@ -1 +1 @@
activate update-initramfs
activate-noawait update-initramfs

147
debian/upstream/signing-key.asc vendored Normal file
View File

@@ -0,0 +1,147 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
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
+XwhySae
=CO5C
-----END PGP PUBLIC KEY BLOCK-----

3
debian/watch vendored
View File

@@ -11,5 +11,6 @@ version=3
# The link to the download location, followed by the regular expression
# to match release tarballs.
#
http://xen-tools.org/software/xen-tools/releases.html \
opts=pgpsigurlmangle=s/$/.asc/ \
https://xen-tools.org/software/xen-tools/releases.html \
xen-tools-([\d\.]+)\.tar\.gz

53
etc/distributions.conf Normal file
View File

@@ -0,0 +1,53 @@
# xen-tools configuration file for distribution meta data
#
# Syntax:
#
# codename = distribution and further keywords
#
# Known distributions: debian, ubuntu
# Known keywords: eol, pygrub, default-keyring, dont-test
#
sarge = debian eol
etch = debian eol
lenny = debian eol
squeeze = debian eol default-keyring
wheezy = debian
jessie = debian
stretch = debian
buster = debian dont-test
bullseye = debian dont-test
sid = debian
testing = debian
oldoldstable = debian dont-test
oldstable = debian
stable = debian
unstable = debian
# dapper and edgy currently need manual adjustments in debootstrap's
# configuration, see #659360
dapper = ubuntu eol dont-test
edgy = ubuntu eol dont-test
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 eol pygrub
wily = ubuntu eol pygrub
xenial = ubuntu pygrub
yakkety = ubuntu pygrub
zesty = ubuntu pygrub
devel = 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

@@ -7,7 +7,7 @@
#
# For more details please see:
#
# http://xen-tools.org/
# https://xen-tools.org/
#
##
@@ -126,10 +126,11 @@ install-method = debootstrap
##
#
size = 4G # Root disk, suffix (G, M, k) required
memory = 128M # Suffix (G, M, k) required
swap = 128M # Suffix (G, M, k) required
memory = 256M # Suffix (G, M, k) required
#maxmem = 2G # Suffix (G, M, k) optional
swap = 512M # Suffix (G, M, k) required
# noswap = 1 # Don't use swap at all for new systems.
fs = ext3 # Default file system for any disk
fs = ext4 # Default file system for any disk
dist = `xt-guess-suite-and-mirror --suite`
# Default distribution is determined by Dom0's distribution
image = sparse # Specify sparse vs. full disk images (file based images only)
@@ -169,7 +170,7 @@ image = sparse # Specify sparse vs. full disk images (file based images only)
#
#
# Setup bridge name for host vif. Usefull if you use bridged networking
# Setup bridge name for host vif. Useful if you use bridged networking
# for guests.
#
# bridge = xendmz
@@ -253,44 +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://cdn.debian.net/debian
# mirror_wheezy = http://cdn.debian.net/debian
# mirror_jessie = http://cdn.debian.net/debian
# mirror_sid = http://cdn.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://archive.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://archive.ubuntu.com/ubuntu
# mirror_raring = 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

@@ -17,6 +17,11 @@
}
}
memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
# Name

View File

@@ -21,9 +21,10 @@
if ( $pygrub )
{
my $pygrub_bin = '';
foreach my $pygrub_path (reverse glob('/usr/lib/xen-*/bin/pygrub
/usr/lib/xen-default/bin/pygrub
/usr/*bin/pygrub')) {
foreach my $pygrub_path (reverse glob('/usr/lib/xen-default/bin/pygrub
/usr/lib/xen-*/bin/pygrub
/usr/*bin/pygrub
/usr/local/bin/pygrub')) {
if (-x $pygrub_path) {
$pygrub_bin = $pygrub_path;
last;
@@ -37,6 +38,11 @@
}
vcpus = '{$vcpus}'
memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
#
# Disk device(s).
@@ -146,6 +152,12 @@ name = '{$hostname}'
$br = ",bridge=$bridge"
}
my $vl = '';
if ( $vlan )
{
$vl = ".$vlan"
}
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "$m";
$OUT .= "$vn";

24
examples/release-testing Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/sh
set -e
exec 2>&1 | tee xen-tools-release-testing.log
DISTRIBUTIONS=$(awk '!/^#|^$|dont-test/ {print $1}' /etc/xen-tools/distributions.conf)
echo Deleting old release-testing artefacts
for dist in $DISTRIBUTIONS; do
echo "*** Removing potential xen-tools-release-testing-$dist..."
xen-delete-image --verbose --hostname "xen-tools-release-testing-$dist"
done
echo Syncing...
sync
seconds=10
printf "Sleeping for %i seconds to avoid LVM race conditions: " $seconds
for i in $(seq 1 $seconds); do sleep 1; printf "%i " $i; done; printf '\n';
for dist in $DISTRIBUTIONS; do
echo "*** Creating xen-tools-release-testing-$dist..."
xen-create-image --verbose --hostname "xen-tools-release-testing-$dist" --dist $dist --force "$@"
done

View File

@@ -41,7 +41,7 @@ EOF
for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/xvde$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then
if [ -n "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
@@ -59,9 +59,9 @@ logMessage "Kernel $KERNELVERSION found"
logMessage "Creating /boot/grub/menu.lst"
mkdir -p ${prefix}/boot/grub
cat > ${prefix}/boot/grub/menu.lst << EOF
# WARNING : Don't forget to update this when you upgrade kernel !
# WARNING : Don't forget to update this when you upgrade kernel!
# You can also exclude kernel-xen from updates by putting
# exclude=kernel-xen in in [main] in yum.conf
# exclude=kernel-xen in [main] in yum.conf
default=0
timeout=5

View File

@@ -41,7 +41,7 @@ EOF
for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/sda$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then
if [ -n "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
@@ -59,9 +59,9 @@ logMessage "Kernel $KERNELVERSION found"
logMessage "Creating /boot/grub/menu.lst"
mkdir -p ${prefix}/boot/grub
cat > ${prefix}/boot/grub/menu.lst << EOF
# WARNING : Don't forget to update this when you upgrade kernel !
# WARNING : Don't forget to update this when you upgrade kernel!
# You can also exclude kernel-xen from updates by putting
# exclude=kernel-xen in in [main] in yum.conf
# exclude=kernel-xen in [main] in yum.conf
default=0
timeout=5

View File

@@ -24,7 +24,7 @@ logMessage ()
{
message="$*"
if [ ! -z "${verbose}" ]; then
if [ -n "${verbose}" ]; then
echo $message
fi
}
@@ -47,7 +47,7 @@ assert ()
shift
fi
if [ ! $* ] ; then
if [ ! "$*" ] ; then
echo "assert failed: $0:$lineno [$*]"
exit
fi
@@ -55,14 +55,12 @@ assert ()
#
# Install a number of Debian packages via apt-get.
# Install a number of Debian packages via apt-get including Recommends.
#
# We take special care so that daemons shouldn't start after installation
# which they might otherwise do.
#
# NOTE: Function not renamed with trailing "s" for compatibility reasons.
#
installDebianPackage ()
installDebianPackageAndRecommends ()
{
prefix=$1
shift
@@ -98,7 +96,7 @@ installDebianPackage ()
#
# Install the packages
#
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes --no-install-recommends install "$@"
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes install "$@"
#
# Remove the policy-rc.d script.
@@ -112,6 +110,21 @@ installDebianPackage ()
}
#
# Install a number of Debian packages via apt-get, but without Recommends
#
# We take special care so that daemons shouldn't start after installation
# which they might otherwise do.
#
# NOTE: Function not renamed with trailing "s" for compatibility reasons.
#
installDebianPackage ()
{
prefix=$1
shift
installDebianPackageAndRecommends ${prefix} -o APT::Install-Recommends=false "$@"
}
#
# Generate a Debian-/Ubuntu-compliant menu.lst for legacy GRUB
@@ -197,7 +210,7 @@ timeout 2
# altoptions=(single-user mode) single
## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## only counts the first occurrence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
@@ -261,12 +274,14 @@ disableStartStopDaemon ()
for starter in start-stop-daemon initctl; do
local daemonfile="${prefix}/sbin/${starter}"
mv "${daemonfile}" "${daemonfile}.REAL"
echo '#!/bin/sh' > "${daemonfile}"
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}"
if [ -e "${daemonfile}" ]; then
mv "${daemonfile}" "${daemonfile}.REAL"
echo '#!/bin/sh' > "${daemonfile}"
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}"
chmod 755 "${daemonfile}"
logMessage "${starter} disabled / made a stub."
chmod 755 "${daemonfile}"
logMessage "${starter} disabled / made a stub."
fi
done
}
@@ -307,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

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1
@@ -33,7 +33,7 @@ if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum update
chroot ${prefix} /usr/bin/yum update -y
umount ${prefix}/proc

View File

@@ -49,7 +49,7 @@ rm -f ${prefix}/etc/event.d/tty[!1]
#
# Are we using an alternative serial device?
#
if [ ! -z "${serial_device}" ]; then
if [ -n "${serial_device}" ]; then
serial_device=`basename ${serial_device}`

View File

@@ -9,7 +9,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
use strict;

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1
@@ -71,8 +71,8 @@ setupStaticNetworking ()
# if $p2p is set then add a "pointopoint" setting.
#
point='';
if [ ! -z "${p2p}" ]; then
point="pointopoint ${p2p}"
if [ -n "${p2p}" ]; then
point=" pointopoint ${p2p}"
else
point=''
fi
@@ -81,10 +81,18 @@ setupStaticNetworking ()
# broadcast address?
#
bcast='';
if [ ! -z "${broadcast}" ]; then
if [ -n "${broadcast}" ]; then
bcast=" broadcast ${broadcast}"
fi
#
# gateway address?
#
gway='';
if [ -n "${gateway}" ]; then
gway=" gateway ${gateway}"
fi
#
# We have a static IP address
#
@@ -100,10 +108,10 @@ iface lo inet loopback
auto eth0
iface eth0 inet static
address ${ip1}
gateway ${gateway}
${gway}
netmask ${netmask}
${bcast}
${point}
${bcast}
${point}
# post-up ethtool -K eth0 tx off
#

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
@@ -63,7 +63,7 @@ EOF
#
if [ -z "${dhcp}" ]; then
#
# If dhcp is diabled, FQDN should resolve to our IP
# If DHCP is disabled, FQDN should resolve to our IP
#
cat >> ${prefix}/etc/hosts <<EOF
${ip1} $GUEST_FQDN $GUEST_HOSTNAME

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -8,7 +8,7 @@
#
# Dmitry Nedospasov
# --
# http://nedos.net/
# http://www.nedos.net/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -9,7 +9,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1
@@ -31,7 +31,7 @@ fi
#
logMessage Script $0 starting
if [ ${pygrub} ]; then
if [ "${pygrub}" = "1" ]; then
logMessage "pygrub set, skipping module install"
else
#

View File

@@ -9,7 +9,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -26,7 +26,7 @@ fi
#
logMessage Script $0 starting
if [ ${pygrub} ]; then
if [ "${pygrub}" = "1" ]; then
#
# Install the grub 0.9x package ("grub-legacy" on Debian, "grub" on Ubuntu)

View File

@@ -9,7 +9,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1
@@ -48,7 +48,7 @@ if [ "${ide}" ]; then
elif [ "${scsi}" ]; then
device=sda
else
if [ ! -z "${disk_device}" ]; then
if [ -n "${disk_device}" ]; then
device=`basename $disk_device`
fi
fi

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/

View File

@@ -7,7 +7,7 @@
#
# Dmitry Nedospasov
# --
# http://nedos.net
# http://www.nedos.net/
prefix=$1
@@ -21,7 +21,7 @@ else
. ./hooks/common.sh
fi
if [ "${pygrub}" ]; then
if [ "${pygrub}" = "1" ]; then
#
# Log our start
#
@@ -29,7 +29,7 @@ if [ "${pygrub}" ]; then
logMessage Script $0 starting
#
# Resolve the correct architecutre
# Resolve the correct architecture
#
if [ "${arch}" = "i386" ]; then
@@ -61,6 +61,17 @@ fi
KERNEL_XEN_PKG="linux-image-xen-$XEN_ARCH"
KERNEL_PKG="linux-image-$XEN_ARCH"
# Add "-pae" suffix for Debian releases after Squeeze. See
# https://bugs.debian.org/742778 for details.
if [ "${dist}" != "sarge" -a \
"${dist}" != "etch" -a \
"${dist}" != "lenny" -a \
"${dist}" != "squeeze" -a \
"$XEN_ARCH" = "686" ]; then
KERNEL_XEN_PKG="$KERNEL_XEN_PKG-pae"
KERNEL_PKG="$KERNEL_PKG-pae"
fi
logMessage Attempting to install the $KERNEL_XEN_PKG kernel image
if chroot ${prefix} /usr/bin/apt-cache show $KERNEL_XEN_PKG > /dev/null 2>&1; then
logMessage Package $KERNEL_XEN_PKG is available - installing
@@ -83,7 +94,10 @@ else
fi
fi
DOMU_KERNEL=$(basename $(ls -1 ${prefix}/boot/vmlinuz* | tail -n 1))
# Check for "ls -v" support
V=''; if ls -1 ${prefix}/boot/vmlinuz* > /dev/null 2>&1; then V=-v; fi
DOMU_KERNEL=$(basename $(ls -1 ${V} ${prefix}/boot/vmlinuz* | tail -n 1))
KERNEL_REV=$(echo $DOMU_KERNEL | sed "s/vmlinuz-//g")
DOMU_RAMDISK="initrd.img-$KERNEL_REV"
DOMU_ISSUE=$(sed -re "s/ *\\\.*//g" -e1q < ${prefix}/etc/issue)

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -7,7 +7,7 @@
#
# Dmitry Nedospasov
# --
# http://nedos.net
# http://www.nedos.net/
prefix=$1
@@ -27,7 +27,7 @@ fi
logMessage Script $0 starting
if [ "${pygrub}" ]; then
if [ "${pygrub}" = "1" ]; then
#
# Attempt to install a xen kernel, if that fails, then install a normal one

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1
@@ -61,7 +61,7 @@ setupStaticNetworking ()
# if $p2p is set then add a "pointopoint" setting.
#
point='';
if [ ! -z "${p2p}" ]; then
if [ -n "${p2p}" ]; then
point="pointopoint ${p2p}"
else
point=''

View File

@@ -5,7 +5,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/

View File

@@ -7,7 +7,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
prefix=$1

View File

@@ -7,7 +7,7 @@
#
# Dmitry Nedospasov
# --
# http://nedos.net
# http://www.nedos.net/
prefix=$1
@@ -27,7 +27,7 @@ fi
logMessage Script $0 starting
if [ "${pygrub}" ]; then
if [ "${pygrub}" = "1" ]; then
#
# Attempt to install a xen kernel, if that fails, then install a normal one

View File

@@ -7,7 +7,7 @@
#
# Dmitry Nedospasov
# --
# http://nedos.net
# http://www.nedos.net/
prefix=$1
@@ -26,7 +26,7 @@ fi
logMessage Script $0 starting
if [ "${pygrub}" ]; then
if [ "${pygrub}" = "1" ]; then
#
# The type of kernel that we will be installing

View File

@@ -1,332 +0,0 @@
package Xen::Tools;
use warnings;
use strict;
use Moose;
use Xen::Tools::Log;
=head1 NAME
Xen::Tools - Build Xen domains with Perl
=head1 VERSION
Version 0.01
=cut
our $VERSION = '0.01';
=head1 SYNOPSIS
my $xt = Xen::Tools->new();
=head1 FUNCTIONS
=head2 new
Instantiate the object.
=cut
override 'new' => sub {
my $class = shift;
# Initialize the base class
my $self = $class->super(@_);
$self->{_xtl} = Xen::Tools::Log->new( hostname => $self->hostname,
logpath => $self->logpath,
);
$self->_checkSystem();
return $self;
};
=head2 meta
This is a method which provides access to the current class's meta-
class. Inherited from Moose.
=cut
=head2 log
This method sends a log message to the current object's logging
mechanism
=cut
sub log {
my $self = shift;
$self->{_xtl}->print(@_);
}
=head2 hostname
Attribute which indicates the domain's hostname
=cut
has 'hostname' => ( is => 'ro', isa => 'Str', required => 1 );
=head2 logpath
Attribute which indicates the log directory. Defaults to /var/log/xen-tools
=cut
has 'logpath' => ( is => 'ro',
isa => 'Str',
default => '/var/log/xen-tools'
);
=begin doc
_findBinary
Find the location of the specified binary on the curent user's PATH.
Return undef if the named binary isn't found.
=end doc
=cut
sub _findBinary {
my $self = shift;
my( $bin ) = (@_);
# strip any path which might be present.
$bin = $2 if ( $bin =~ /(.*)[\/\\](.*)/ );
foreach my $entry ( split( /:/, $ENV{'PATH'} ) )
{
# guess of location.
my $guess = $entry . "/" . $bin;
# return it if it exists and is executable
return $guess if ( -e $guess && -x $guess );
}
return;
}
=begin doc
_checkSystem
Test that this system is fully setup for the new xen-create-image
script.
This means that the the companion scripts xt-* are present on the
host and executable.
=end doc
=cut
sub _checkSystem {
my $self = shift;
my @required = qw ( / xt-customize-image
xt-install-image
xt-create-xen-config / );
foreach my $bin ( @required )
{
if ( ! defined( $self->_findBinary( $bin ) ) )
{
$self->log("The script '$bin' was not found.\n",
"Aborting\n\n"
);
exit;
}
}
#
# Make sure that we have Text::Template installed - this
# will be used by `xt-create-xen-config` and if that fails then
# running is pointless.
#
my $test = "use Text::Template";
eval( $test );
if ( ( $@ ) && ( ! $self->{_force} ) )
{
print <<E_O_ERROR;
Aborting: The Text::Template perl module isn't installed or available.
Specify '--force' to skip this check and continue regardless.
E_O_ERROR
exit;
}
#
# Make sure that xen-shell is installed if we've got an --admin
# flag specified
#
if ( $self->{_admins} )
{
my $shell = undef;
$shell = "/usr/bin/xen-login-shell" if ( -x "/usr/bin/xen-login-shell" );
$shell = "/usr/local/bin/xen-login-shell" if ( -x "/usr/bin/local/xen-login-shell" );
if ( !defined( $shell ) )
{
print <<EOF;
You've specified administrator accounts for use with the xen-shell,
however the xen-shell doesn't appear to be installed.
Aborting.
EOF
exit;
}
}
#
# Test the system has a valid (network-script) + (vif-script) setup.
#
return $self->_testXenConfig();
}
=begin doc
Test that the current Xen host has a valid network configuration,
this is designed to help newcomers to Xen.
=end doc
=cut
sub _testXenConfig {
my $self = shift;
# wierdness.
return if ( ! -d "/etc/xen" );
#
# Temporary hash.
#
my %cfg;
#
# Read the configuration file.
#
open( my $config_fh, q{<}, '/etc/xen/xend-config.sxp' )
or die "Failed to read /etc/xen/xend-config.sxp: $!";
while( <$config_fh> )
{
next if ( ! $_ || !length( $_ ) );
# vif
if ( $_ =~ /^\(vif-script ([^)]+)/ )
{
$cfg{'vif-script'} = $1;
}
# network
if ( $_ =~ /^\(network-script ([^)]+)/ )
{
$cfg{'network-script'} = $1;
}
}
close( $config_fh );
if ( !defined( $cfg{'network-script'} ) ||
!defined( $cfg{'vif-script'} ) )
{
print <<EOF;
WARNING
-------
You appear to have a missing vif-script, or network-script, in the
Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able
to use any networking!
EOF
}
else
{
if ( ( $cfg{'network-script'} =~ /dummy/i ) ||
( $cfg{'vif-script'} =~ /dummy/i ) )
{
print <<EOF;
WARNING
-------
You appear to have a "dummy" vif-script, or network-script, setting
in the Xen configuration file /etc/xen/xend-config.sxp.
Please fix this and restart Xend, or your guests will not be able to
use any networking!
EOF
}
}
return 1;
}
=head1 AUTHOR
C.J. Adams-Collier, C<< <cjac at colliertech.org> >>
=head1 BUGS
Please report any bugs or feature requests to C<bug-xen-tools at rt.cpan.org>, or through
the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Xen-Tools>. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Xen::Tools
You can also look for information at:
=over 4
=item * RT: CPAN's request tracker
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Xen-Tools>
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/Xen-Tools>
=item * CPAN Ratings
L<http://cpanratings.perl.org/d/Xen-Tools>
=item * Search CPAN
L<http://search.cpan.org/dist/Xen-Tools>
=back
=head1 COPYRIGHT & LICENSE
Copyright 2007 C.J. Adams-Collier, all rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
1; # End of Xen::Tools

View File

@@ -2,9 +2,12 @@
package Xen::Tools::Common;
=encoding utf8
=head1 NAME
Xen::Tools::Common - Common funtions used in xen-tools' Perl scripts
Xen::Tools::Common - Common functions used in xen-tools' Perl scripts
=head1 SYNOPSIS
@@ -19,9 +22,10 @@ use Exporter 'import';
use vars qw(@EXPORT_OK @EXPORT);
use English;
use File::Which;
@EXPORT = qw(readConfigurationFile xenRunning runCommand setupAdminUsers
findXenToolstack findBinary
findXenToolstack
logprint_with_config logonly_with_config fail_with_config);
=head1 FUNCTIONS
@@ -66,7 +70,7 @@ sub readConfigurationFile ($$)
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
if ( $line =~ /([^#]*)\#(.*)/ )
{
$line = $1;
}
@@ -124,7 +128,11 @@ sub xenRunning ($$)
my $running = 0;
die "Couldn't determine Xen toolstack" unless $CONFIG->{'xm'};
unless ($CONFIG->{'xm'}) {
warn "Couldn't determine Xen toolstack, skipping check for running DomUs."
unless $ENV{AS_INSTALLED_TESTING};
return 0;
}
open( CMD, $CONFIG->{'xm'}." list $hostname 2>/dev/null |" ) or
fail_with_config("Failed to run '".$CONFIG->{'xm'}." list $hostname'", $CONFIG);
@@ -138,38 +146,6 @@ sub xenRunning ($$)
return ($running);
}
=head2 findBinary
=begin doc
Find the location of the specified binary on the curent user's PATH.
Return undef if the named binary isn't found.
=end doc
=cut
sub findBinary
{
my ($bin) = (@_);
# strip any path which might be present.
$bin = $2 if ( $bin =~ /(.*)[\/\\](.*)/ );
foreach my $entry ( split( /:/, $ENV{ 'PATH' } ) )
{
# guess of location.
my $guess = $entry . "/" . $bin;
# return it if it exists and is executable
return $guess if ( -e $guess && -x $guess );
}
return undef;
}
=head2 findXenToolstack
=begin doc
@@ -191,12 +167,12 @@ sub findXenToolstack
return $toolstack if $toolstack;
}
my $xm = findBinary('xm');
my $xm = which('xm');
if ($xm and system("$xm list >/dev/null 2>/dev/null") == 0) {
return $xm;
}
my $xl = findBinary('xl');
my $xl = which('xl');
if ($xl and system("$xl list >/dev/null 2>/dev/null") == 0) {
return $xl;
}
@@ -220,6 +196,7 @@ sub findXenToolstack
sub runCommand ($$;$)
{
local $| = 1;
my ($cmd, $CONFIG, $fail_ok) = (@_);
#
@@ -269,7 +246,8 @@ sub runCommand ($$;$)
if (!$rcclose)
{
logprint_with_config("Running command '$cmd' failed with exit code $?.\n", $CONFIG);
my $exit_code = $? >> 8;
logprint_with_config("Running command '$cmd' failed with exit code $exit_code.\n", $CONFIG);
logprint_with_config("Aborting\n", $CONFIG);
print "See /var/log/xen-tools/".$CONFIG->{'hostname'}.".log for details\n";
unless ($fail_ok) {
@@ -429,10 +407,10 @@ sub logprint_with_config ($$)
=head1 AUTHORS
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Stéphane Jourdois
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Dmitry Nedospasov, http://www.nedos.net/
Stéphane Jourdois
Merged from several scripts by Axel Beckert.

View File

@@ -1,212 +0,0 @@
package Xen::Tools::Log;
use warnings;
use strict;
use Moose;
use File::Spec;
use POSIX; # strftime
use Carp;
=head1 NAME
Xen::Tools::Log - Log Xen::Tools events
=head1 VERSION
Version 0.01
=cut
our $VERSION = '0.01';
=head1 SYNOPSIS
Mostly internal to Xen::Tools. Use this to create a logging mechanism.
my $xtl = Xen::Tools::Log->new( hostname => 'firewall' );
$xtl->print("Yay for logging.");
=head1 FUNCTIONS
=head2 new
Create the log object
=cut
=head2 print
Print the given string both to our screen, and to the logfile.
=cut
sub print {
my $self = shift;
$self->print_screen( @_ );
$self->print_log( @_ );
}
=head2 print_screen
Print the given string to our screen
=cut
sub print_screen {
my $self = shift;
print map { "$_\n" } @_;
}
=head2 print_log
Print the given string to the logfile.
=cut
sub print_log {
my $self = shift;
# Create an RFC 822 conformant date string
my $date = strftime( "%a, %d %b %Y %H:%M:%S %z", localtime );
my $fh = $self->log_fh();
print $fh ( map { "$date - $_" } @_ );
}
=head2 hostname
Attribute storing the hostname this log describes
=cut
has 'hostname' => ( is => 'rw', isa => 'Str', required => 1 );
=head2 logpath
Attribute storing the directory in which the log file resides
=cut
has 'logpath' => ( is => 'rw',
isa => 'Str',
default => '/var/log/xen-tools'
);
=head2 log_fh
FileHandle attribute storing the filehandle of the log
=cut
has 'log_fh' => ( is => 'ro',
isa => 'FileHandle',
lazy => 1,
default => \&_init_fh,
);
=head2 clean_up
Boolean attribute indicating whether the log will be cleaned up when the
logger is closed
=cut
has 'clean_up' => ( is => 'ro',
isa => 'Bool',
default => 0,
);
before 'DESTROY' => sub {
my $self = shift;
# Deconstructor
};
=head2 meta
This is a method which provides access to the current class's meta-
class. Inherited from Moose.
=cut
=begin doc
_init_fh
This private method initializes the logging filehandle, creating the
containing directory if it does not exist.
=end doc
=cut
sub _init_fh {
my $self = shift;
my $logFile =
File::Spec->catfile( $self->logpath(), $self->hostname() . '.log' );
system( qw(mkdir -p), $self->logpath() ) unless -d $self->logpath();
carp "Couldn't create log directory: $!" unless $? == 0;
open( $self->{log_fh}, q{>>}, $logFile ) or
carp "Couldn't open log file for append: $!";
};
=head1 AUTHOR
C.J. Adams-Collier, C<< <cjac at colliertech.org> >>
=head1 BUGS
Please report any bugs or feature requests to C<bug-xen-tools-log at rt.cpan.org>, or through
the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Xen-Tools>. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Xen::Tools
You can also look for information at:
=over 4
=item * RT: CPAN's request tracker
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Xen-Tools>
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/Xen-Tools>
=item * CPAN Ratings
L<http://cpanratings.perl.org/d/Xen-Tools>
=item * Search CPAN
L<http://search.cpan.org/dist/Xen-Tools>
=back
=head1 COPYRIGHT & LICENSE
Copyright 2007 C.J. Adams-Collier, all rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
1; # End of Xen::Tools::Log

View File

@@ -8,7 +8,7 @@ misc/
Contents:
xen-tools - Bash completion code for our commands.
xen-tools.spec - File to build an RPM of the xen-tools pacakge.
xen-tools.spec - File to build an RPM of the xen-tools package.
Steve
--

View File

@@ -10,13 +10,13 @@
#
# References on command line completion:
#
# http://www.debian-administration.org/articles/316
# http://www.debian-administration.org/articles/317
# https://debian-administration.org/articles/316
# https://debian-administration.org/articles/317
# http://dev.gentoo.org/~plasmaroo/devmanual/tasks-reference/completion/
#
# Steve
# --
# http://www.steve.org.uk
# https://steve.fi/
#
#
@@ -31,7 +31,7 @@ function _find_xen_images
for i in /etc/xen/*.cfg ; do
name=`grep ^name $i 2>/dev/null | awk -F\' '{print $2}'`
if [ ! -z "${name}" ] ; then
if [ -n "${name}" ] ; then
names="${names} ${name}"
fi
done

View File

@@ -1,7 +1,7 @@
# This initramfs-tools configuration file is installed by xen-tools.
#
# To make the Dom0's initramfs working inside DomUs, too, most modules
# need to be included, not just those necvessary for the host system
# need to be included, not just those necessary for the host system
# and its hardware.
MODULES=most

View File

@@ -5,8 +5,8 @@ Summary: Scripts used to create new Xen domains
Group: Applications/Emulators
License: GPLv2 or Artistic
URL: http://xen-tools.org/software/xen-tools/
Source0: http://xen-tools.org/software/xen-tools/xen-tools-%{version}.tar.gz
URL: https://xen-tools.org/software/xen-tools/
Source0: https://xen-tools.org/software/xen-tools/xen-tools-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#

View File

@@ -1,13 +1,10 @@
#!/bin/sh
#
# Configure the new image to be a minimal image, by removing
# packages I don't care about - and installing new ones I prefer.
# Configure the new image to be a minimal image, by removing packages
# not necessarily needed - and installing less resource-hungry ones
#
# Steve
# --
# http://www.steve.org.uk/
#
# Still far away from perfect. Less personal than in the past, but
# for now still based on gut feeling.
prefix=$1
@@ -26,15 +23,11 @@ fi
#
# Install some new packages - do this first to avoid dependency errors.
# Install some new packages - do this first to avoid dependency errors
#
installDebianPackage ${prefix} syslog-ng
installDebianPackage ${prefix} deborphan
installDebianPackage ${prefix} less
installDebianPackage ${prefix} screen
installDebianPackage ${prefix} sudo
installDebianPackage ${prefix} vim
# Minimalst possible syslog service
installDebianPackage ${prefix} busybox-syslogd
#
# Remove some standard packages.
@@ -47,22 +40,57 @@ removeDebianPackage ${prefix} pppoe
removeDebianPackage ${prefix} ppp
removeDebianPackage ${prefix} libpcap0.7
# Editors
removeDebianPackage ${prefix} nano
removeDebianPackage ${prefix} ed
removeDebianPackage ${prefix} nvi
# Editors, keep only a minimal vi, namely nvi
installDebianPackage ${prefix} nvi
removeDebianPackage ${prefix} ed nano
removeDebianPackage ${prefix} vim-tiny vim-common vim-runtime
# Syslog
removeDebianPackage ${prefix} klogd
removeDebianPackage ${prefix} sysklogd
removeDebianPackage ${prefix} klogd sysklogd
removeDebianPackage ${prefix} rsyslog
removeDebianPackage ${prefix} logrotate
# manpages
removeDebianPackage ${prefix} manpages
removeDebianPackage ${prefix} man-db
# Man pages
removeDebianPackage ${prefix} manpages man-db groff-base
removeDebianPackage ${prefix} info
# misc
removeDebianPackage ${prefix} tasksel tasksel-data
removeDebianPackage ${prefix} pciutils
removeDebianPackage ${prefix} fdutils
removeDebianPackage ${prefix} cpio
removeDebianPackage ${prefix} util-linux-locales locales
removeDebianPackage ${prefix} debconf-i18n
removeDebianPackage ${prefix} netcat-traditional netcat-openbsd
removeDebianPackage ${prefix} whiptail
# Unnecessary stuff only installed by default on Ubuntu
removeDebianPackage ${prefix} sudo
removeDebianPackage ${prefix} resolvconf
removeDebianPackage ${prefix} console-setup keyboard-configuration kbd xkb-data ureadahead
removeDebianPackage ${prefix} python python3 dh-python
# General cleanup
chroot ${prefix} aptitude -y markauto \
'~n -common' \
'~s libs' \
'~s localization' \
'~s misc' \
'~s perl' \
'~s python'
chroot ${prefix} apt-mark auto \
cpio \
crda \
debconf \
install-info \
kmod \
lsb-base \
makedev \
mime-support \
module-init-tools \
plymouth
chroot ${prefix} aptitude -y purge '~c'
removeDebianPackage ${prefix} aptitude aptitude-common
chroot ${prefix} apt-get autoremove --purge
chroot ${prefix} apt-get clean

View File

@@ -24,13 +24,13 @@ logMessage Script $0 starting
#
# Install ssh
# Install puppet
#
installDebianPackage ${prefix} puppet
#
# Make sure sshd isn't running, this will cause our unmounting of the
# Make sure puppet isn't running, this will cause our unmounting of the
# disk image to fail..
#
chroot ${prefix} /etc/init.d/puppet stop

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#

View File

@@ -4,7 +4,7 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#

View File

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

68
t/data/inittab Normal file
View File

@@ -0,0 +1,68 @@
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that our policy-rc.d file is created and removed as we expect in our hooks.
#
@@ -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

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that we get an /etc/hosts etc file created when DHCP is used.
#
@@ -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

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that the /etc/inittab file is modified as we expect.
#
@@ -11,25 +11,25 @@ use Test::More;
use File::Temp;
use File::Copy;
my $example_inittab = 't/data/inittab';
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
#
# Check if build system has /etc/inittab.
# Check if example inittab is present, else bail out
#
SKIP: {
skip '/etc/inittab not present' unless -e "/etc/inittab";
#
# Rather than having a hardwired list of distributions to test
# against we look for subdirectories beneath hooks/ and test each
# one.
#
foreach my $dir ( glob( "hooks/*" ) )
if (-e $example_inittab) {
#
# Rather than having a hardwired list of distributions to test
# against we look for subdirectories beneath hooks/ and test each
# one.
#
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;
@@ -38,8 +38,9 @@ SKIP: {
testHook( $dist );
}
}
} # SKIP
} else {
BAIL_OUT("$example_inittab not found, source distribution seems incomplete");
}
done_testing();
@@ -52,7 +53,7 @@ sub testHook
#
my $dir = File::Temp::tempdir( CLEANUP => 1 );
mkdir( $dir . "/etc", 0777 );
File::Copy::cp( "/etc/inittab", $dir . "/etc" );
File::Copy::cp( $example_inittab, $dir . "/etc" );
#
# Make sure that worked.
@@ -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

@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!perl
#
# Test that the tls-disabling hook works.
#
@@ -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,18 +64,18 @@ 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
# Make sure the TLS directory is empty
#
ok( ! -e "$dir/lib/tls/foo", "The fake library from /lib/tls is gone ($dist)" );
ok( -e "$dir/lib/tls.disabled/foo", "The fake library ended up in /lib/tls.disabled ($dist)" );

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!perl -w
#
# Test that all the hook files we install are executable.
#
@@ -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

@@ -0,0 +1,20 @@
package File::Which;
# Mockup package to _not_ find anything
use strict;
use warnings;
use Exporter;
use vars qw{@ISA @EXPORT @EXPORT_OK};
BEGIN {
@ISA = 'Exporter';
@EXPORT = 'which';
}
sub which {
return;
}
'This is a fake!';

View File

@@ -1,11 +1,11 @@
#!/bin/sh
#
# Automatically attempt to create a test which ensures all the modules
# used in the code are availabe.
# used in the code are available.
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#
#
@@ -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:: | grep -v Moose | 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

Some files were not shown because too many files have changed in this diff Show More