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

Compare commits

..

1110 Commits

Author SHA1 Message Date
Axel Beckert
2a9fdc71e7 Release as 4.8 and upload to unstable as 4.8-1 2019-02-09 01:57:46 +01:00
Axel Beckert
89795d71dc Add a DEP-12 debian/upstream/metadata file 2019-02-09 01:00:38 +01:00
Axel Beckert
2a3c3cebfb Add link to upstream changelog to README 2019-02-09 00:49:31 +01:00
Axel Beckert
2275c8f293 Clarification 2019-02-09 00:47:12 +01:00
Axel Beckert
449cc9a0bf Whitespace between footnote markers 2019-02-09 00:44:10 +01:00
Axel Beckert
baee245fbd Mark those Debian/Ubuntu releases which might fail inside chroot w/o vsyscall=emulate 2019-02-09 00:41:36 +01:00
Axel Beckert
ac55fba904 Mention netplan.io also in NEWS.markdown 2019-02-08 22:23:40 +01:00
Axel Beckert
2a476d1037 More Markdown formatting 2019-02-08 17:42:40 +01:00
Axel Beckert
19f30610a5 Proper Markdown formatting 2019-02-08 17:40:27 +01:00
Axel Beckert
a8df6e002f distributions.conf now supports arbitrary keyring files
Any tag ending in ".gpg" will be considered to be the according
keyring file in /usr/share/keyrings/. This is at least needed for some
Ubuntu releases which were eol'ed in the past few years, especially
because Ubuntu split up their keyrings much more finegrained than just
"archive" and "archive-removed-keys".
2019-02-08 17:37:11 +01:00
Axel Beckert
0d9a7cb12e Reenable release-testing of edgy and dapper since #659360 in debootstrap is now fixed 2019-02-08 17:11:05 +01:00
Axel Beckert
b05087b1cb Whitespace fix 2019-02-08 16:45:19 +01:00
Axel Beckert
58af2790a1 Add an explaining link under ASLR 2019-02-08 16:44:22 +01:00
Axel Beckert
1cda58c756 Make the footnotes compact description list
Hopefully, this is still recognised by modern browsers.
2019-02-08 16:41:30 +01:00
Axel Beckert
c66e5427ed File name and line numbers are not necessary for this warning → add \n 2019-02-08 16:40:08 +01:00
Axel Beckert
ad013d7b86 Try to make a footnote for the #659360 reference, as it's less important now 2019-02-08 16:39:07 +01:00
Axel Beckert
a6389c48df While officially being EoL, Ubuntu 17.10 Artful is still on the normal mirrors
So remove to eol tag again for now.
2019-02-08 15:13:58 +01:00
Axel Beckert
8d07785c3b More README fine-tuning 2019-02-08 14:51:39 +01:00
Axel Beckert
ead18c819a Fix wrong URL in README 2019-02-08 14:51:16 +01:00
Axel Beckert
e3ab23b55d README fine-tuning 2019-02-08 00:27:21 +01:00
Axel Beckert
82ecd4c6d2 Document potential need for the vsyscall=emulate kernel commandline option 2019-02-08 00:27:06 +01:00
Axel Beckert
f50d1e37a2 Only run xen-toolstack helper script if both, xm and xl are present
Avoids warning about deprecated helper script.
2019-02-07 16:26:06 +01:00
Axel Beckert
c774f81e80 More unconfusing of Emacs' syntax highlighting 2019-02-07 16:16:54 +01:00
Axel Beckert
c8316b0076 Unconfuse Emacs' syntax highlighting 2019-02-07 16:10:31 +01:00
Axel Beckert
d5c4589519 Fix copy and paste "typo" 2019-02-07 15:51:11 +01:00
Axel Beckert
17d868d38d Fix output redirection in release-testing script 2019-02-07 15:48:19 +01:00
Axel Beckert
42e7dca4bf Mark Ubuntu's devel alias as dont-test as debootstrap doesn't know about it 2019-02-07 15:35:12 +01:00
Axel Beckert
4872d18989 Many improvements for the release-testing script
* Don't abort on first failure, but log it and print a summary at the
  end.
* Allow to choose which distributions to test via environment variable
  $DISTRIBUTIONS.
* Don't overwrite log files from previous runs. Add a time stamp to
  the log file name instead.
2019-02-07 13:21:07 +01:00
Axel Beckert
1a5fd541cd Drop pygrub path detection from xm.tmpl
Xen prefers a path-less bootloader='pygrub'.
2019-02-07 03:28:54 +01:00
Axel Beckert
9817ff95c3 Suggest grub-xen-host
Support for pvgrub2 is not yet there, but it can be used already by
tweaking configuration files.
2019-02-07 02:54:11 +01:00
Axel Beckert
26427c9dc8 Set Ubuntu fallback suite to the latest LTS, i.e. 18.04 Bionic 2019-02-07 02:52:29 +01:00
Axel Beckert
5c76eb1a7d Migrate httpredir.debian.org → deb.debian.org 2019-02-07 02:50:20 +01:00
Axel Beckert
8723db0880 Fix copy & paste error in 9ee1f637 which prevented netplan to work 2019-02-07 02:48:17 +01:00
Axel Beckert
76221f5999 Add changelog items for previous commit 2019-02-04 02:04:21 +01:00
Pietro Stäheli
58306b9281 Add support for really random MAC addresses
Closes: #855703
2019-02-04 01:58:40 +01:00
Axel Beckert
7ce42e9781 Use ubuntu-keyring instead of now transitional ubuntu-archive-keyring
Keep the latter as alternative to allow one to install the xen-tools
package also on older Debian or Ubuntu releases.
2019-02-04 01:35:20 +01:00
Axel Beckert
3daa69256b Add changelog items for previous commit 2019-02-04 01:25:19 +01:00
Nico Boehr
5587dc796a Add support for LVM thin provisioning
This adds a parameter '--lvm_thin' to xen-create-image that allows you
to specify the thin pool where the thin logical volumes will be
created.

If '--lvm_thin' is not specified, nothing will change and thick
provisioned volumes will be created.

[Committer's note: Code logic taken from
https://github.com/youknow0/xen-tools-thin-provisioning/commit/a6f267ef
and adapted to current code. Needed more than just a rebase. All
trailing whitespace has been removed, too.]

Fixes xen-tools/xen-tools#47.
2019-02-04 01:14:57 +01:00
Axel Beckert
9ee1f63705 Create hooks/artful with new 40-setup-networking-deb-netplan
Since Ubuntu 17.10 Artful, Ubuntu has decided to use netplan instead
of ifupdown.

40-setup-networking-deb-netplan has been contributed by Arno and Peter.
(see https://github.com/xen-tools/xen-tools/issues/51#issuecomment-412019510)

Closes xen-tools/xen-tools#51.

Since we have to make a variant of hooks/karmic/ as hook/artful/,
rename hooks/karmic/80-install-kernel (which previously was unique to
hooks/karmic/) to hooks/common/80-install-kernel-ubuntu and add
symlinks to it from hooks/karmic/ and hook/artful/.
2019-02-03 23:30:45 +01:00
Axel Beckert
cfd4406a93 Add preliminary support for future Debian and recent Ubuntu releases
Partially addresses GH #51
2019-02-03 22:50:36 +01:00
Axel Beckert
647efb0e12 Check $DEB_BUILD_OPTIONS and $DEB_BUILD_PROFILES in override_dh_auto_test
Fixes lintian warning
override_dh_auto_test-does-not-check-DEB_BUILD_OPTIONS.
2019-02-03 19:42:03 +01:00
Axel Beckert
0a351b4dfb Separate upstream and packaging changelog items 2019-02-03 19:37:26 +01:00
Axel Beckert
dccf78c65e Set "Rules-Requires-Root: no" 2019-02-03 19:34:57 +01:00
Axel Beckert
3a15c11a7e Declare compliance with Debian Policy 4.3.0
No other changes were required.
2019-02-03 19:34:57 +01:00
Axel Beckert
19e117b9f3 Bump debhelper compatibility level to 10
Update versioned debhelper build-dependency accordingly.

Only using dh compat level 10 allows one to still build the package on
Debian 9 Stretch without backports (debhelper 10.x), on Ubuntu 18.04
LTS (debehlper 11.x) and on Ubuntu 16.04 LTS with backports (debhelper
10.x).
2019-02-03 19:34:50 +01:00
Axel Beckert
f1052fcdaa Add changelog and NEWS entries for Yuri's pull-request #42 2019-02-03 17:41:09 +01:00
Axel Beckert
b9e0284a43 Drop --quiet from installDebianPackageAndRecommends
See https://github.com/xen-tools/xen-tools/pull/42#issuecomment-212903567
2019-02-03 17:38:22 +01:00
Axel Beckert
26a698bbd6 Merge branch 'no-progress-in-logs' of https://github.com/YSakhno/xen-tools into YSakhno-no-progress-in-logs 2019-02-03 17:35:52 +01:00
Axel Beckert
1ad05c0d66 Mention ZFS support in changelog and NEWS, bump version to 4.8 (unreleased) 2019-02-03 17:32:29 +01:00
Axel Beckert
8f527122c5 Merge branch 'zfs-volume' of https://github.com/brigriffin/xen-tools into brigriffin-zfs-volume 2019-02-03 17:25:08 +01:00
Axel Beckert
c3b8d7fda5 Add some more details to previous changelog item 2019-02-03 17:20:51 +01:00
Jelmer Vernooij
53800af963 Trim trailing whitespace.
Fixes lintian: file-contains-trailing-whitespace
See https://lintian.debian.org/tags/file-contains-trailing-whitespace.html for more details.
2019-02-03 17:20:22 +01:00
Axel Beckert
a78388dd1e Bump version number to 4.7.1 (yet unreleased) 2019-02-03 17:12:35 +01:00
Axel Beckert
07e56db75c Merge branch 'debian' 2019-02-03 17:09:10 +01:00
Marc
1634fe5e80 Remove tabs 2018-05-06 00:01:16 +02:00
Marc
f1083cfa55 Add support for ZFS volumes 2018-05-05 23:14:00 +02:00
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
422f682b37 Fix comments wrt. /etc/xen-tools/skel/ 2017-08-04 00:45:11 +02:00
Axel Beckert
326bd72ebb Also fix wrong bug number for #849867 in upstream changelog 2017-01-23 01:39:23 +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
Yuri Sakhno
230167d84a Small fix due to some messages being written to stderr rather than stdout 2016-04-20 14:24:08 +03:00
Yuri Sakhno
87dd127cf8 Eliminate progress reporting which is useless in logs 2016-04-20 11:45:39 +03: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
Axel Beckert
07622d8ed0 t/xen-delete-image.t: Check xen-delete-image exit code
Also run xen-delete-image verbose and print output.
2013-04-18 16:26:55 +02:00
Axel Beckert
081c0370d4 Properly clean up after t/xt-create-xen-config.t 2013-04-18 16:21:25 +02:00
Axel Beckert
ea209f085b Refactor some code duplication in xen-delete-image 2013-04-18 16:21:25 +02:00
Axel Beckert
a70b79f63f Hopefully catch all remaining "ARRAY(0x…).log" issues 2013-04-18 14:45:27 +02:00
Axel Beckert
c482220b99 Rework xci POD: New SYNOPSIS; add EXAMPLES, rename old SYNOPSIS to OPTIONS 2013-04-18 13:52:45 +02:00
Axel Beckert
dcd0bf09f1 Add reference for the three types of MAC relevant for DomUs 2013-04-16 18:03:33 +02:00
Axel Beckert
92a825b87b Axel's Break-Backwards-Compatibility Wishlist: MAC stuff 2013-04-16 17:57:12 +02:00
Axel Beckert
6871954f6e Merge branch 'lib-vs-share' 2013-04-11 19:49:53 +02:00
Axel Beckert
e9d8bd0896 xt-install-image: Don't bail out if only cdebootstrap is installed
There was a duplicated check on debootstrap being installed and only
one has been expanded when cdebootstrap support was added. So
xen-tools bailed out if debootstrap wasn't installed even if it had
been instructed to use cdebootstrap instead.

This also adds support for cdebootstrap-static.

Additionally xt-install-image dispatcher has been extended to hand
array refs of command paths instead of just single command paths.

Thanks to Elmar Heeb for reporting this issue!
2013-04-11 19:47:05 +02:00
Axel Beckert
9369fd2a03 Update debian/changelog 2013-04-11 19:18:41 +02:00
Axel Beckert
04dd81ec07 Mention http.debian.net as default mirror also in POD 2013-04-11 15:59:42 +02:00
Axel Beckert
d39255dc5e Reindent options in POD 2013-04-11 15:59:19 +02:00
Axel Beckert
5a48067d9e Make some x-c-i commandline options negatable
Update documentation and tests accordingly.

Also add pygrub = 1 as example to xen-tools.conf, now that the effect
can be reversed via commandline options.
2013-04-11 15:51:31 +02:00
Axel Beckert
6fc51d20be Update xen-tools.conf comments to be more concise and consistent
Thanks Elmar Heeb!
2013-04-11 13:08:31 +02:00
Axel Beckert
16dbe870f2 TODO: test for --size constraints
... and its prerequisites
2013-04-11 10:52:45 +02:00
Axel Beckert
cb3227d61b Don't only allow lowercase "b" for "bytes".
Also put some examples in the according error message.
2013-04-11 10:32:20 +02:00
Axel Beckert
a89aa86511 Consistent amount of blank lines in POD 2013-04-11 10:29:56 +02:00
Axel Beckert
555ce383d3 Switch from /usr/lib/xen-tools/ to /usr/share/xen-tools/ to properly adhere FHS 2013-04-05 20:19:22 +02:00
Axel Beckert
b29117be02 Ignore Devel::Cover cache 2013-03-22 16:58:59 +01:00
Axel Beckert
ff7ded28e8 Only the key for %ENV, but not for %CONFIG, needs to be modified 2013-03-14 00:10:18 +01:00
Axel Beckert
f0691c9a38 Merge branch 'master' of gitorious.org:xen-tools/xen-tools
Conflicts:
	debian/changelog
2013-03-14 00:01:05 +01:00
Axel Beckert
76d9d59510 Fix export of environment variables (dash vs underscore)
Previously they could contain dashes and then were only accessible
from within Perl, but not from within Bash.

From now on potential dashes in environment variable names are
converted to underscores ("_") before being exported. May affect some
hook or role scripts.
2013-03-13 23:29:52 +01:00
Axel Beckert
5342b04ac7 Some more TODOs (mostly refactoring + code cleanup) 2013-03-13 23:17:09 +01:00
Axel Beckert
01e525106b Use Test::NoTabs in t/no-tabs.t 2013-03-05 23:07:04 +01:00
Axel Beckert
5146706536 Document 4.3.1 in NEWS 2013-01-26 01:18:28 +01:00
Axel Beckert
dfa32a97ca Also switch xt-guess-suite-and-mirror's fallback to http.debian.net 2013-01-25 17:34:39 +01:00
Axel Beckert
c409759745 Rename NEWS to NEWS.markdown 2013-01-25 17:32:20 +01:00
Axel Beckert
149b92af77 Document 4.3 release date in NEWS 2013-01-25 17:30:17 +01:00
Axel Beckert
a4b3c9c568 Also use http.debian.net as default mirror for the debian-archive 2013-01-25 17:09:54 +01:00
Axel Beckert
dbb9124666 Use http.debian.net as default Debian mirror if no mirror is given
... i.e. if even xt-guess-suite-and-mirror is not used.
2013-01-25 17:09:19 +01:00
Axel Beckert
f2d30eaa63 xen-delete-image no more passes $CONFIG{hostname} as array to logprint_with_config
The deletion of failed attempts was logged to files named like
ARRAY(0xa9dd98).log because the hostname was passed twice, i.e. as
arrayref (which didn't hurt otherwise).
2013-01-25 15:22:42 +01:00
Axel Beckert
0709308c1f Save exit code $? at the beginning of the END block
Otherwise cleaning up by doing some system() calls garbles $? with
unwanted values.
2013-01-25 13:19:36 +01:00
Axel Beckert
d3baf1f8ba KNOWN BUGS: -1 +1 2013-01-25 13:03:23 +01:00
Axel Beckert
d7f219f160 Create /boot/grub/default if non-existent
Seems to be needed at least for Squeeze.
2013-01-24 23:14:34 +01:00
Axel Beckert
bc054b1b02 chomp the output of dpkg --print-architecture 2013-01-24 23:14:34 +01:00
Axel Beckert
f18285943c Call update-grub at the end of 82-install-grub-legacy to update menu.lst 2013-01-24 23:14:34 +01:00
Axel Beckert
780839988d Remove trailing blank line 2013-01-24 23:14:34 +01:00
Axel Beckert
025e20a1f1 Better check for grub-legacy availability which ignores virtual packages 2013-01-24 23:14:34 +01:00
Axel Beckert
9330b79d51 hooks/common.sh: Fix syntax error in installCentOS4Package wrapper. 2013-01-24 23:14:10 +01:00
Axel Beckert
979b6fb166 hooks/common.sh: installDebianPackage no more installs recommends 2013-01-24 23:07:56 +01:00
Axel Beckert
57c7d13c48 Factor out legacy grub menu.lst generation 2013-01-24 23:06:53 +01:00
Axel Beckert
1de424a69d Fix filesystem tools installation in 91-install-fs-tools
Was broken since 4.3rc1.

Merged 91-install-fs-tools back into 90-make-fstab. Added support for
RPM-based distributions, too, so it's more generic now.
2013-01-23 18:02:44 +01:00
Axel Beckert
505950dae0 isAPT: Also check for dpkg and rename it to isDeb
That way we should not try to use Debian/Ubuntu package names if
apt4rpm is available.
2013-01-23 17:47:13 +01:00
Axel Beckert
0c8b5d25c4 Factor out functions to test if we should use yum or apt 2013-01-23 17:40:00 +01:00
Axel Beckert
bce580658e hooks/common.sh: Rename installCentOS4Package to installRPMPackage
Add installCentOS4Package wrapper for backward compatibility.
2013-01-23 17:00:09 +01:00
Axel Beckert
b451260f0d TODO/KNOWN_BUGS: Add some hook issues noticed recently
Found during debugging error messages and warnings in log files.
2013-01-23 16:08:01 +01:00
Axel Beckert
af6e1435aa Mention in error message why xen-create-image thinks that an installation failed 2013-01-23 13:14:35 +01:00
Axel Beckert
290ca33840 Fix some typos and grammar in log messages 2013-01-23 13:14:35 +01:00
Axel Beckert
a1838d9030 Also use linux-image-virtual instead of linux-image-server for >= karmic 2013-01-23 13:14:35 +01:00
Axel Beckert
30ae761c27 Fix typo 2013-01-22 02:37:44 +01:00
Axel Beckert
9182aaccb7 Install grub-legacy in all pygrub-based DomUs 2013-01-22 02:35:27 +01:00
Axel Beckert
a2aa1b8a02 Factor out module-init-tools (or kmod) installation 2013-01-22 02:33:12 +01:00
Axel Beckert
03506de7e4 Refactoring: Normalize 80-kernel-install for Ubuntus 2013-01-22 02:01:13 +01:00
Axel Beckert
f71460358b chmod 644 everything in xen-tools/misc 2013-01-22 01:29:13 +01:00
Axel Beckert
8c2a2878df Ubuntu: install linux-image-virtual instead of linux-image-server
By default install linux-image-virtual instead of linux-image-server
on Ubuntu Intrepid and newer.

Hopefully closes: #640099, LP #839492
2013-01-22 01:18:57 +01:00
Axel Beckert
2e69bee531 Rename misc/{xen-tools → xen-tools.bash-completion}
This prevents name space cluttering and ambiguity in xen-tools/misc/.
2013-01-22 00:21:10 +01:00
Axel Beckert
e985d4151b Ship /etc/initramfs-tools/conf.d/xen-tools with MODULES=most
This is a necessary setting to generate Dom0 initrds which are also
suitable for DomU usage.

Trigger update-initramfs in the Debian package.
2013-01-22 00:17:27 +01:00
Axel Beckert
a4a4b7a8e7 Add default mount options for ext4, identical to ext2/ext3 2013-01-21 21:23:41 +01:00
Axel Beckert
a297aa4f5b Fix quoting in hooks/common/91-install-fs-tools 2013-01-21 16:32:10 +01:00
Axel Beckert
6423a67982 Handle module-init-tools → kmod transition in wheezy/raring gracefully 2013-01-21 16:20:03 +01:00
Axel Beckert
4dbb6fe189 Bump copyright years in xen-delete-image and xen-list-images 2013-01-18 02:25:06 +01:00
Axel Beckert
d38718b24b xen-create-image seems to work now again, too: remove TODO 2013-01-18 02:21:25 +01:00
Axel Beckert
53c013f1cc xen-delete-image now also understand --extension 2013-01-18 02:13:19 +01:00
Axel Beckert
6a59d0fd9b Properly ident --extension docs in xen-list-images' POD 2013-01-18 02:12:22 +01:00
Axel Beckert
4e7f58785f Fix Markdown syntax of reference style links in README 2013-01-18 01:55:57 +01:00
Axel Beckert
e240c63c8b README: Installing Dapper and Edgy no more works on Wheezy due to #659360 2013-01-18 01:37:52 +01:00
Axel Beckert
c39628cbe4 Overwork TLS disabling on Debian and Ubuntu 2013-01-18 01:26:11 +01:00
Axel Beckert
73dabead05 unMountImage may fail if $CONFIG{FAIL} is already set 2013-01-17 22:59:34 +01:00
Axel Beckert
ce1624b83e Remove redundant and broken second setting of mirror by distribution 2013-01-17 22:59:01 +01:00
Axel Beckert
97553c50fb Handle Sarge amd64 case properly
Uses File::Which, (build-) dependency on libfile-which-perl added
2013-01-17 22:48:15 +01:00
Axel Beckert
3456849ec8 Make t/xen-lists-images.t more strict: No more /i 2013-01-17 22:17:37 +01:00
Axel Beckert
dc5b36f8ef xen-list-images now also outputs the name of the config file 2013-01-17 22:15:21 +01:00
Axel Beckert
00623e2327 Add --extension option to xen-list-images 2013-01-17 22:13:34 +01:00
Axel Beckert
c6caa0a0ad Fix "--extension=" with empty parameter 2013-01-17 21:57:50 +01:00
Axel Beckert
13dbf65793 Mention that --keep does not prevent unmounting 2013-01-17 21:19:55 +01:00
Axel Beckert
d6144d45ea It's said that just "END" is better style than "sub END". 2013-01-17 21:16:22 +01:00
Axel Beckert
b682ad1817 Normalize redundant FAIL test 2013-01-17 21:16:22 +01:00
Axel Beckert
61df2a6c51 Trap SIGINT to unmount to temporary mount point
This makes END being called again after Ctrl-C.
2013-01-17 21:16:22 +01:00
Axel Beckert
c1e7cb717a Add optional argument to unMountImage and hence runCommand to allow failure 2013-01-17 21:16:22 +01:00
Axel Beckert
a223eedf0b Remove redundant unMountImage call 2013-01-17 20:55:42 +01:00
Axel Beckert
987cf32458 TODO: Move /usr/lib/xen-tools/ to /usr/share/xen-tools/ 2013-01-17 18:30:39 +01:00
Axel Beckert
dd15b27b85 Apply wrap-and-sort to debian/control 2013-01-17 18:06:40 +01:00
Axel Beckert
0defc0f0e3 Switch to a minimal dh style debian/rules
Override dh_auto_build as it triggers the nop target.
2013-01-17 18:05:12 +01:00
Axel Beckert
1f70c8f5d7 Use dh_installexamples with a debian/examples file
This was also the reason to move the examples around in the previous
commit. :-)
2013-01-17 17:53:31 +01:00
Axel Beckert
39c6bb5974 Move examples from debian/examples to examples 2013-01-17 17:51:16 +01:00
Axel Beckert
02240309b3 Bump Copyright years at multiple place 2013-01-17 17:09:37 +01:00
Axel Beckert
ed2c2d5a14 TODO: Obvious Sarge amd64 mirror issues 2013-01-17 16:49:34 +01:00
Axel Beckert
931f88f99a No more explicitly call "make manpages"
It's a depedency of "make install" in the next line anyway.
2013-01-16 18:00:26 +01:00
Axel Beckert
5d0bd617e0 Fix copy & paste error in binary-* targets in debian/rules 2013-01-16 17:59:39 +01:00
Axel Beckert
70e0115f94 Use dh_auto_{install,clean}; use "$(MAKE)" instead of "make" 2013-01-16 16:58:10 +01:00
Axel Beckert
1d16c86eba Remove explicit mentioning of upstream changelog in debian/rules
dh_installchangelogs finds it by itself if it exist. That way building
out of a freshly clone git repository does not fail due to a missing
upstream changelog.
2013-01-16 16:55:23 +01:00
Axel Beckert
e15d6cfd5e Revert "Install upstream ChangeLog only if it exists."
This reverts commit 35477c6172.

If the upstream ChangeLog did not exist, the debian/changelog wasn't
installed either. Which was not the intention.
2013-01-16 16:47:15 +01:00
Axel Beckert
ae33f60680 Makefile: Accept "DESTDIR" instead of "prefix=", too
That way it adheres more commonly used conventions and allows using dh_auto_install
2013-01-16 16:44:42 +01:00
Axel Beckert
459f418f12 No more specific milestones in KNOWN_BUGS 2012-12-13 14:49:06 +01:00
Axel Beckert
448a176e58 Bump version to 4.4~dev 2012-11-28 01:28:48 +01:00
Axel Beckert
0a7544c57a Replace some verbose print()s by logprint_with_config() 2012-11-28 01:10:58 +01:00
Axel Beckert
4830ce8b8a TODO: Unify --debug and --dumpconfig 2012-11-28 01:10:09 +01:00
Axel Beckert
00b316a2c4 Call findXenToolstack() also in xen-{delete,resize,update}-image 2012-11-28 01:09:24 +01:00
Axel Beckert
1efbc72676 Add --no-xen-ok option also to xen-create-image 2012-11-28 01:09:23 +01:00
Axel Beckert
8bd56bd67e Bugfix: Can't pass @_ to templated functions which expect scalars 2012-11-28 00:52:20 +01:00
Axel Beckert
ab9b033068 Fix some whitespace issues in t/argument-check.t 2012-11-28 00:04:25 +01:00
Axel Beckert
16dd2d9f2f Use done_testing instead of no_plan 2012-11-28 00:04:07 +01:00
Axel Beckert
00bb137012 New xen-delete-image option --no-xen-ok for disabling xenRunning tests 2012-11-27 23:53:03 +01:00
Axel Beckert
4c3e4abff7 Move findBinary to Xen::Tools::Common 2012-11-27 23:43:06 +01:00
Axel Beckert
6b64dcc122 Call scripts in tests with local library paths 2012-11-27 23:39:49 +01:00
Axel Beckert
9a9fa39f69 Make t/pod-coverage.t pass for Xen::Tools::Common 2012-11-27 23:38:26 +01:00
Axel Beckert
ffa0ac5681 Fix some logprint() calls with multiple arguments 2012-11-27 23:37:46 +01:00
Axel Beckert
b5499e48b4 Define fail() and logprint() helpers as early as necessary 2012-11-27 23:37:09 +01:00
Axel Beckert
2d79f13714 All runCommand() calls should pass %CONFIG 2012-11-27 23:31:21 +01:00
Axel Beckert
de9d3f2814 Replace one more die by fail 2012-11-27 23:30:07 +01:00
Axel Beckert
9da26382f4 Fix missing trailing semicolon 2012-11-27 23:30:07 +01:00
Axel Beckert
85f7d1b9fe Consequently use $CONFIG{FAIL} instead of $FAIL 2012-11-27 23:30:07 +01:00
Axel Beckert
d2f935b823 Make fail(), logprint() and logonly() get \%CONFIG, too 2012-11-27 23:29:59 +01:00
Axel Beckert
68d548ef60 Parameter templates for fail(), logprint() and logonly() 2012-11-27 23:04:45 +01:00
Axel Beckert
ea23c79431 Support Xen xl toolstack elsewhere than xen-create-image 2012-11-27 22:49:56 +01:00
Axel Beckert
76fbd23423 Move findXenToolstack() to Xen::Tools::Common 2012-11-27 22:48:37 +01:00
Axel Beckert
494ec02a7c Merge branch 'master' into code-deduplication
Conflicts:
	bin/xen-create-image
	bin/xen-create-nfs
	bin/xt-create-xen-config
2012-11-27 22:40:08 +01:00
Axel Beckert
83eede665c Fix warning about no_plan usage in t/hook-inittab.t 2012-11-27 22:29:04 +01:00
Axel Beckert
8f1f298551 New option to dump contents of %CONFIG
Probably only needed for debugging.
2012-11-27 22:28:38 +01:00
Axel Beckert
e57e7f16eb Preliminary support for the Xen xl toolstack
(xen-create-image supported only so far)
2012-11-27 22:26:30 +01:00
Axel Beckert
b54d5b84f9 Refactoring: Replace $options with $option as it contains just one option 2012-11-27 18:26:47 +01:00
Axel Beckert
b99ca853e1 Replace system() by runCommand() 2012-11-27 16:01:27 +01:00
Axel Beckert
e7b710d43a No more refer to forking in the comments 2012-11-27 13:24:33 +01:00
Axel Beckert
6f2814f414 Merge branch 'master' into code-deduplication
Conflicts:
	bin/xen-create-image
2012-11-27 13:22:34 +01:00
Axel Beckert
874d1fcfb0 No more mention xm bash-completion file. It has been removed. 2012-11-27 13:13:14 +01:00
Axel Beckert
814adbd85a Fix typo in README 2012-11-22 20:49:00 +01:00
Axel Beckert
74ef51eb26 Fix even more Markdown indenting 2012-11-15 20:09:37 +01:00
Axel Beckert
ff4620c39a Fix some Markdown indenting 2012-11-15 20:06:22 +01:00
Axel Beckert
bac1d6c63b Use .markdown instead of .mdwn as GitHub doesn't recognize the latter 2012-11-15 18:38:26 +01:00
Axel Beckert
0842ddd128 Converting a first bunch of documentation to Markdown format 2012-11-15 18:29:38 +01:00
Axel Beckert
026e47ac83 Preliminary support for Debian Jessie and Ubuntu Raring
Also set the default mirror for Ubuntu Natty to
old-releases.ubuntu.com as it's end of life and will move there soon.
2012-11-15 16:55:10 +01:00
Axel Beckert
b116f1cca7 Update contact information in SUPPORT 2012-11-14 00:18:26 +01:00
Axel Beckert
a87b0d1b2c Remove CVS revisions from --version output 2012-11-14 00:02:54 +01:00
Axel Beckert
80edc04573 Merge branch 'master' of github.com:xtaran/xen-tools
Conflicts:
	debian/changelog
2012-11-13 23:38:30 +01:00
Axel Beckert
3b7750e9a9 Also suppport elevator=noop for pygrub 2012-11-13 23:35:20 +01:00
Axel Beckert
a7cc86c567 Default DomUs to use the noop scheduler (Closes: #693131) 2012-11-13 23:10:04 +01:00
Axel Beckert
442021849d Also recognize M and G as size unit for --memory (Closes: #691320)
Document all recognized units.
2012-11-13 22:55:53 +01:00
Axel Beckert
446e157b80 Move code for --boot feature to END block.
Fixes missing SSH fingerprint display if --boot was used. (Closes: #679183)

Remove a redundant unsetting of $MOUNT_POINT. Guard a potentially
second call to the not idempotent unMountImage().
2012-11-13 22:41:47 +01:00
Axel Beckert
1dbb1f191f Use local parameter instead of global variable in unMountImage 2012-11-13 22:29:46 +01:00
Axel Beckert
adca82e808 2 new TODOs: Remove CVS keywords, uncouple auto-start from --boot 2012-11-13 20:45:50 +01:00
Axel Beckert
324fff9f7e Execute END block not on --version/--help/--manual (Closes: #684346) 2012-11-13 19:47:36 +01:00
Axel Beckert
7b908a4069 Fix symbolic link hooks/centos-6/15-setup-arch (Closes: #690299) 2012-11-13 18:16:02 +01:00
Axel Beckert
b233cb614d Bump version to 4.3.1+dev 2012-11-13 18:07:42 +01:00
Philipp Erbelding
70a30bb146 prevent matching lines like "shadow_memory = 16" 2012-11-08 12:38:48 +01:00
Axel Beckert
8523d76c14 Document ideas about authorized_keys 2012-10-26 15:14:38 +02:00
Axel Beckert
35477c6172 Install upstream ChangeLog only if it exists.
The upstream changelog is generated during the upstream release
process, but expected when building the binary .debs. Make its
inclusion optional in the binary .debs.
2012-08-13 00:37:41 +02:00
Axel Beckert
b692dbbe75 Add forgotten section header in gbp.conf 2012-08-12 19:49:05 +02:00
Axel Beckert
26b4c1ed90 Add debian/gbp.conf for git-buildpackage support 2012-08-12 19:44:36 +02:00
Axel Beckert
7860d5ac4e Release 4.3.1 RC1 unmodified as 4.3.1 2012-06-30 16:45:59 +02:00
Axel Beckert
bb54ee7868 4.3.1 release candidate 1
Will likely just appear in the Ubuntu PPA to check if it finally build
for Ubuntu again
2012-06-30 16:07:41 +02:00
Axel Beckert
6a5506768c Changelog entry for t/hook-tls.t failures on 32-bit 2012-06-27 01:52:12 +02:00
Axel Beckert
d6e33edb5b Only run testTLSDisabling if distribution actually has 10-disable-tls 2012-06-27 01:49:56 +02:00
Axel Beckert
611d6c4eb4 Ignore hooks/common in t/hook-tls.t 2012-06-27 01:49:21 +02:00
Axel Beckert
0cde7cdf39 t/hook-tls.t: Always output tested distribution 2012-06-27 01:41:42 +02:00
Axel Beckert
cde5617a29 Use "rm -vf" instead of "-rm" in t/Makefile 2012-06-27 01:33:47 +02:00
Axel Beckert
74411f970b Remove t/modules.t in upstream's t/Makefile
... instead of remove it in debian/rules' clean target.

Call clean target of t/Makefile also from clean target of toplevel
Makefile.
2012-06-27 01:32:41 +02:00
Axel Beckert
3383b6dacf Bump version to 4.3+dev 2012-06-27 01:31:09 +02:00
Axel Beckert
d9f8a3fc31 Release 4.3 2012-06-27 00:03:56 +02:00
Axel Beckert
5703f8b5c9 Remove generated file t/modules.t in clean target
Otherwise the package wouldn't build twice in a row.

It didn't hurt while developing since it's listed in .gitignore. :-)
2012-06-27 00:03:56 +02:00
Axel Beckert
f67c7e25c8 Don't remove stamp files manually, dh_clean does that already 2012-06-27 00:03:56 +02:00
Axel Beckert
8dbd0ef7dc Switch to source format to "3.0 (quilt)" 2012-06-26 22:32:52 +02:00
Axel Beckert
58a050218f Remove most Mercurial traces 2012-06-08 21:45:49 +02:00
Axel Beckert
3ce7398cf6 Add bug report reference to FTBFS in testsuite 2012-06-08 21:28:28 +02:00
Axel Beckert
0ec64f6926 Rewrite current changelog entry; start new NEWS entry 2012-06-08 20:36:34 +02:00
Axel Beckert
fa9a420490 Add build-dependency on git for t/gitignore.t 2012-06-08 20:31:05 +02:00
Axel Beckert
c212cfb08f Add build-dependency on Test::Pod::Coverage for t/pod-coverage.t 2012-06-08 18:54:53 +02:00
Axel Beckert
c400b6644a Add build-dependency on Moose for t/perl-syntax.t 2012-06-08 18:51:28 +02:00
Axel Beckert
917d3d6b2a Skip t/hook-inittab.t if /etc/inittab is not present
Fixes FTBFS on Ubuntu.
2012-06-08 18:41:58 +02:00
Axel Beckert
8ba16d0e7a Disable tests of not yet used Xen::Tools perl modules.
Fixes FTBFS in test suite due to not satisifed Moose dependency in
Xen::Tools::Log.
2012-06-08 17:37:28 +02:00
Axel Beckert
7407409c92 Mark as 4.3 Release Candidate 1 2012-06-08 14:44:06 +02:00
Axel Beckert
ebbd16a3be Create tar.gz files in .. instead of ..
Eases git handling and package generation.
2012-06-08 14:41:29 +02:00
Axel Beckert
ab181b7305 Move xen-utils (for pygrub) from Suggests to Recommends
pygrub becomes the necessary way to boot more and more often.
2012-06-07 23:13:00 +02:00
Axel Beckert
eededbddbd Add more logMessage to centos-*/25-setup-kernel
Make as similar as possible wrt to comments and installed packages.
2012-06-07 22:37:38 +02:00
Axel Beckert
895c79ac43 Anticipatory adding of symlinks for recent Fedora releases
Fedora > 10 doesn't work anyway as rinse doesn't support it, at least
as of now (i.e. with rinse 2.0).
2012-06-07 22:24:29 +02:00
Axel Beckert
075da536d3 Update TODO wrt code duplication and the hooks directory 2012-06-07 22:21:39 +02:00
Axel Beckert
e6ca958418 Officially support CentOS as DomU 2012-06-07 18:29:46 +02:00
Axel Beckert
34526d96c9 Fix kernel version detection for CentOS 6 2012-06-07 18:29:46 +02:00
Axel Beckert
c3528c23be Exchange initrd-*.img and initramfs-*.img between CentOS 5 + 6 2012-06-07 18:29:46 +02:00
Axel Beckert
5d1b6e0c13 Support rinse 2.0
With rinse 2.0 the --arch option in mandatory. Let it default to the
Dom0's architecture.
2012-06-07 14:50:12 +02:00
Axel Beckert
05314c37cf Enforces umask 022 in 50-setup-hostname*
Hopefully closes #619630
2012-06-07 13:39:02 +02:00
Axel Beckert
10dc941e9f Fix shebang line in centos-*/25-setup-kernel
Also set the executable bit
2012-06-07 13:26:52 +02:00
Axel Beckert
ae49cf2304 Remove xen-shell from Recommends, nobody picked it up. (Closes: #603708) 2012-06-07 13:16:00 +02:00
Axel Beckert
c623826bac Upgrade rinse recommendation to >= 1.9.1-1
Needed for CentOS 6 (and maybe also CentOS 5)
2012-06-07 13:09:54 +02:00
Axel Beckert
bb01ea4b33 Mention Johan Schurer's contributions 2012-06-07 13:06:26 +02:00
Johan Schurer
107bd59724 Add CentOS 6 support 2012-06-07 12:56:16 +02:00
Johan Schurer
cab677bab0 Add 25-setup-kernel to get CentOS 5 working 2012-06-07 12:54:49 +02:00
Axel Beckert
a3127ff40d Use common/80-install-modules-deb also for dapper
pygrub support shouldn't hurt there
2012-06-07 00:50:16 +02:00
Axel Beckert
756cbd13de Merge gentoo/80-install-modules into common/80-install-modules-rpm 2012-06-06 17:39:18 +02:00
Axel Beckert
85cbbded61 Merge 90-make-fstab-deb and 90-make-fstab-rpm
Split off deb-specific part into common/91-install-fs-tools
2012-06-06 17:21:33 +02:00
Axel Beckert
a3d53e78b5 Use the debian/55-create-dev script as common/55-create-dev
Use it also for gentoo and dapper.

Add a TODO note about stuff which came up during comparing all the
previously existing variants of 55-create-dev.
2012-06-06 17:03:04 +02:00
Axel Beckert
a3cc982efe Change Maverick's example mirror to old-releases.ubuntu.com in the example config, too 2012-06-06 15:15:09 +02:00
Axel Beckert
9e7a34f47a Dapper LTS is EoL, change its default mirror to old-releases.ubuntu.com 2012-06-06 15:13:44 +02:00
Axel Beckert
30bba7379b Use common/90-make-fstab-rpm also for centos-5
gid 5 is the group tty there, too

See http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-users-groups-standard-groups.html
2012-06-06 14:53:40 +02:00
Axel Beckert
68db018009 Merge old and new Upstart terminal device handling into common/30-disable-gettys 2012-06-06 14:45:51 +02:00
Axel Beckert
cc4ad94939 Fix wrong device name in handling of serial_device 2012-06-06 14:33:42 +02:00
Axel Beckert
5bd5f01699 Add notes about oneliners helpful for code deduplication 2012-06-05 20:58:21 +02:00
Axel Beckert
75d5a488c8 Link fedora-core-6/70-install-ssh to common/70-install-ssh-rpm
(only had whitespace changes)
2012-06-05 19:12:38 +02:00
Axel Beckert
e39b5a0edf Merge all centos/fedora 99-clean-image into common/99-clean-image-rpm
Rename previous common/99-clean-image to common/99-clean-image-deb; adjust all links
2012-06-05 18:58:31 +02:00
Axel Beckert
84602efdf8 Make {centos,fedora}-*/99-clean-image identical (whitespace changes only) 2012-06-05 18:23:41 +02:00
Axel Beckert
d6f4e7d32a Link gentoo/90-make-fstab to common/90-make-fstab-rpm
Only difference was one more informative logMessage
2012-06-05 18:17:55 +02:00
Axel Beckert
49db07bcf8 Merge all centos/fedora 50-setup-hostname into common/50-setup-hostname-rpm
Rename previous common/50-setup-hostname to common/50-setup-hostname-deb; adjust all links
2012-06-05 18:12:41 +02:00
Axel Beckert
522eb34694 Link debian/90-make-fstab to common/90-make-fstab-deb
They differed just by whitespace
2012-06-05 16:46:31 +02:00
Axel Beckert
93b7cb3bf2 Make several tests not check files multiple times via symlinks 2012-06-04 19:08:12 +02:00
Axel Beckert
55c3c15d11 Replace tabs by blanks in hooks/common/20-setup-apt 2012-06-04 19:01:31 +02:00
Axel Beckert
a8289d0d91 Make common/30-disable-gettys and {edgy,intrepid}/30-disable-gettys more similar 2012-06-04 18:57:36 +02:00
Axel Beckert
494aedab67 Merge bugfixes made to intrepid/30-disable-gettys also into edgy/30-disable-gettys 2012-06-04 18:47:11 +02:00
Axel Beckert
111765e881 Link dapper/30-disable-gettys to common/30-disable-gettys, too 2012-06-04 18:41:47 +02:00
Axel Beckert
b3c834935a Remove white-space and comment differences between common/20-setup-apt and debian/20-setup-apt 2012-06-04 18:39:31 +02:00
Axel Beckert
28e10bc384 TODO: Refactor TLS disabling 2012-06-04 18:38:22 +02:00
Axel Beckert
db77d621e7 hooks/debian/20-setup-apt: Use blacklist for libc6-xen instead of whitelist 2012-06-04 18:38:22 +02:00
Axel Beckert
5acbc5171f Link gentoo/10-disable-tls to common/10-disable-tls, too 2012-06-04 18:26:32 +02:00
Axel Beckert
14226d382b Remove debian-specific stuff from hooks/gentoo/10-disable-tls 2012-06-04 18:24:06 +02:00
Axel Beckert
0d1e1b7e2a Merge common/10-disable-tls and dapper/10-disable-tls 2012-06-04 18:19:26 +02:00
Axel Beckert
060fc6bd19 Merge dapper special case with libc6-xen into common/20-setup-apt 2012-06-04 17:57:41 +02:00
Axel Beckert
5dd64112ed Refactoring: code deduplication: Merge hook files with just whitespace differences 2012-06-04 17:51:36 +02:00
Axel Beckert
4279ce6d28 Merge 35-setup-users Fedora special case into common/35-setup-users 2012-06-04 17:25:05 +02:00
Axel Beckert
98983cc9a0 Refactoring: Massive code deduplication in hooks directory (Part 3)
All remaining hooks files just differed syntactially, but not
semantically. They were merged into one file sporting the most
readable syntax variant.
2012-06-04 16:59:19 +02:00
Axel Beckert
2e9394d010 Refactoring: Massive code deduplication in hooks directory (Part 2)
All hooks files which were identical in two groups (debianoid and
redhatoid) have been moved to the new hooks/common directory and now
have symbolic links to the according new files at their old locations.
2012-06-04 16:47:59 +02:00
Axel Beckert
fc736c040d Refactoring: Massive code deduplication in hooks directory
All hooks files which were identical and had no second group of
identically named hook files have been moved to a new hooks/common
directory and now have symbolic links to the new single file at their
old locations.

Also slightly modified to make this work:

  * Makefile: copy new hooks/common directory
  * Some tests: ignore new hooks/common directory
2012-06-04 16:26:03 +02:00
Axel Beckert
3106753871 Text deduplication in the TODO file ;-) 2012-05-31 01:33:26 +02:00
Axel Beckert
f58a9faa6a Merge branch 'master' into code-deduplication 2012-05-31 01:29:11 +02:00
Axel Beckert
8b4701875f TODO: About code deduplication in hooks/. 2012-05-31 01:29:01 +02:00
Axel Beckert
b1476676fe Xen::Tools::Common should return true 2012-05-31 01:21:35 +02:00
Axel Beckert
a23f31077a Call commands in tests with proper search path for perl modules 2012-05-31 01:19:23 +02:00
Axel Beckert
34ccb63f64 Move functions fail, logonly and logprint to Xen::Tools::Common
They're used in there
2012-05-31 01:10:14 +02:00
Axel Beckert
ed91f1fc43 Merge branch 'master' into code-deduplication
Conflicts:
	bin/xen-create-image
2012-05-31 01:07:59 +02:00
Axel Beckert
83f736f0dd Add NEWS to debian/docs 2012-05-31 00:35:44 +02:00
Axel Beckert
0747b2fdd9 Add a NEWS file with major changes starting from the 4.2 release 2012-05-31 00:35:00 +02:00
Axel Beckert
a8bef12391 Update copyright years in debian/copyright 2012-05-30 23:58:12 +02:00
Axel Beckert
6e0bfb9658 Update copyright years at several places 2012-05-30 23:57:56 +02:00
Axel Beckert
9a0c6fa724 Fix some tab characters 2012-05-30 23:44:18 +02:00
Axel Beckert
e727fbbbbd Test for $CONFIG{dontformat} just once 2012-05-30 23:41:37 +02:00
Axel Beckert
953c692b54 Add Pieter Barrezeele to AUTHORS 2012-05-30 23:37:36 +02:00
Pieter Barrezeele
f18cda8796 Add --dontformat to skip filesystem creation 2012-05-30 23:37:09 +02:00
Pieter Barrezeele
ef465d9879 Add --finalrole to run role scripts after config file creation 2012-05-30 23:34:04 +02:00
Pieter Barrezeele
9320ba661d Don't verify the availability of lvm tools unless lvm is used 2012-05-30 23:30:13 +02:00
Axel Beckert
0b820d8675 Update AUTHORS 2012-05-30 23:23:36 +02:00
Axel Beckert
590aa44e7c TODO: wrong mirror displayed on startup summary 2012-05-30 23:03:12 +02:00
Axel Beckert
6201e24b51 Also disable initctl in the chroot, not only start-stop-daemon
Closes LP#997063. Thanks xstasi on Lauchnpad for the patch
2012-05-30 23:03:12 +02:00
Axel Beckert
625a6f6282 Make t/xen-tools.t not fail on package build
Note down that t/xen-tools.t is not really functional yet
2012-05-30 23:03:12 +02:00
Axel Beckert
2277f433c1 roles/editor =~ s/logPrint/logMessage/ (as everywhere else) 2012-05-30 23:03:12 +02:00
Axel Beckert
6018925b97 No more expect at least one option to mkfs.* calls.
Fixes btrfs creation. Closes Debian bug report #609982.
2012-05-30 23:03:12 +02:00
Axel Beckert
98e590eafa Changelog entry for John Hughes' fix for #609673 2012-05-30 23:03:05 +02:00
John Hughes
d0f85802bd Always write down root partition as first physical device
Otherwise pygrub fails. Closes Debian bug report #609673
2012-05-30 23:02:15 +02:00
Axel Beckert
6a6d3876f6 Use $ENV{http_proxy} instead of prepending the command with a variable 2012-05-08 00:58:56 +02:00
Axel Beckert
7c64b9e7c9 New --apt_proxy option will close #610457 2012-05-08 00:50:51 +02:00
Axel Beckert
8780d7d9ee Use dh_auto_test for build time tests and add according build-dependencies 2012-05-08 00:48:12 +02:00
Axel Beckert
00586d1443 Add build-dependency on devscripts for checkbashisms used in t/portable-shells.t 2012-05-08 00:42:50 +02:00
Axel Beckert
fefc8c1106 Mention Alex Tomlins' --apt_proxy option 2012-05-08 00:41:21 +02:00
Axel Beckert
9c90c93bc9 Merge commit 'refs/merge-requests/2' of git://gitorious.org/xen-tools/xen-tools into merge-requests/2 2012-05-08 00:30:36 +02:00
Axel Beckert
c74cb00897 Discontinue 4.2 branch and continue towards a 4.3 release 2012-05-08 00:27:39 +02:00
Axel Beckert
03680e1ee5 Merge branch '4.2' 2012-05-08 00:11:29 +02:00
Axel Beckert
846266eedb Mention Alexander Mette in the changelog as he also sent a patch for #652110, just upstream 2012-05-08 00:11:23 +02:00
Axel Beckert
b5175f6f3b Properly set $FAIL instead of just calling die() 2012-05-08 00:09:09 +02:00
Axel Beckert
fcb6b0645c Properly set $FAIL instead of just calling die() 2012-05-07 23:46:59 +02:00
Axel Beckert
7a01a08aa4 Replace tabs with spaces 2012-05-07 23:06:29 +02:00
Axel Beckert
57e6d5d480 Use $ips instead of $IP_ADDRESSES to keep variable names consistent
Update t/xt-create-xen-config.t to cope with the new variable
2012-05-07 23:06:21 +02:00
Axel Beckert
4d98232656 Replace tabs with spaces 2012-05-07 22:56:33 +02:00
Axel Beckert
1b4edee2d3 Use $ips instead of $IP_ADDRESSES to keep variable names consistent
Update t/xt-create-xen-config.t to cope with the new variable
2012-05-07 22:55:33 +02:00
Axel Beckert
6fe6f5b09f Merge branch '4.2' 2012-05-07 22:23:05 +02:00
Axel Beckert
cfd615b62d Mention Vagrant Cascadian's patch in the changelog 2012-05-07 22:18:34 +02:00
Vagrant Cascadian
81656a9ef5 only attempt to generate the ssh host keys if not already present 2012-05-07 22:16:39 +02:00
Axel Beckert
f4103617e6 Update README and long description in debian/control for new releases 2012-05-07 22:00:03 +02:00
Axel Beckert
ce626e3e9f Add dependency on openssh-client for ssh-keygen (Closes: #649108) 2012-05-07 21:50:36 +02:00
Axel Beckert
3e44a19a66 xt-guess-suite-and-mirror exits with non-zero if no proper mirror could be found 2012-05-07 21:42:03 +02:00
Axel Beckert
a9aea889d8 Support sources.list.d (i.e. when no sources.list exists; closes #650300) 2012-05-07 21:33:40 +02:00
Axel Beckert
f55461b1bc Mention Brian Bennett's fix in the Debian changelog 2012-05-07 21:22:36 +02:00
Brian Bennett
89e9a54b06 Fix misbehaviour if the --ip option is passed multiple times
According to xen-create-image(8) if --ip is passed multipe times then the
first IP is used as the "system" IP and the rest are used as aliases. What
actually happened is the last IP is the "system" IP and all other IP's are
silently ignored. (Closes Debian bug #652110)
2012-05-07 21:18:36 +02:00
Axel Beckert
99eb2f5af1 Merge branch '4.2' 2012-04-24 19:55:23 +02:00
Axel Beckert
e808f3989a Merge branch '4.2' of gitorious.org:xen-tools/xen-tools into 4.2
Conflicts:
	debian/changelog
2012-04-24 19:55:03 +02:00
Axel Beckert
caca5395f9 Merge branch '4.2' 2012-04-24 19:51:11 +02:00
Axel Beckert
d8561d4b7d Preliminary support for Ubuntu 12.10 Quantal Quetzal 2012-04-24 19:51:01 +02:00
Axel Beckert
f2e97be786 Reorder Debian changelog entry 2012-03-30 18:58:11 +02:00
Axel Beckert
359a6c13f0 Debian package: Fix lintian warning debian-rules-missing-recommended-target 2012-03-30 18:43:47 +02:00
Axel Beckert
4c7e7d8134 Debian package: Bump Standards-Version to 3.9.3 2012-03-30 18:41:53 +02:00
Axel Beckert
76ad9e7b86 Merge branch '4.2' 2012-03-30 17:50:01 +02:00
Axel Beckert
e1ff891a24 No more suggest evms-cli.
It's no more available on any supported Dom0 distribution.

Thanks to Markus Waldeck for the hint.

Conflicts from cherry-pick:

	debian/changelog
2012-03-30 17:49:38 +02:00
Axel Beckert
0d813d01c8 Merge branch '4.2'
Conflicts:
	debian/changelog
2012-03-30 17:24:06 +02:00
Axel Beckert
09179f2dea Support Ubuntu 12.04 LTS Precise, update mirrors for discontinued releases 2012-03-30 17:22:59 +02:00
Axel Beckert
65d76b6aa4 Deduplicate setupAdminUsers 2011-11-16 01:44:11 +01:00
Axel Beckert
0f71f545df deduplicate runCommand()
Version taken from xen-create-image. Needed a small hack WRT $FAIL.
2011-11-16 01:34:23 +01:00
Axel Beckert
2de01d8cbc deduplicate xenRunning() 2011-11-16 01:10:51 +01:00
Axel Beckert
1d45cd33ab Use function prototypes in Xen::Tools::Common 2011-11-16 01:02:01 +01:00
Axel Beckert
eabb327786 Remove all occurrences of 'sub readConfigurationFile' in bin/.
Use the version from Xen::Tools::Common instead
2011-11-16 00:55:12 +01:00
Axel Beckert
8835b9134b Add lib to Perl search path in t/perl-syntax.t 2011-11-16 00:47:57 +01:00
Axel Beckert
fec2114caf Merge branch 'master' into code-deduplication 2011-11-16 00:35:53 +01:00
Axel Beckert
cabd776c97 Make Code Deduplication a release goal for 5.0 2011-11-16 00:35:42 +01:00
Axel Beckert
489c4eb3ad Axel's Break-Backwards-Compatibility Wishlist: Make empty extension the default 2011-11-16 00:35:15 +01:00
Axel Beckert
94408fb242 Some KNOWN_BUGS about --extension 2011-11-16 00:34:13 +01:00
Axel Beckert
24cd27b737 Create new Perl module Xen::Tools::Common, start with xen-create-nfs' readConfigurationFile function 2011-11-16 00:19:20 +01:00
Axel Beckert
9a96686953 Merge branch '4.2'
Conflicts:
	debian/changelog
2011-11-15 23:46:45 +01:00
Axel Beckert
0d1bc0e61c Workaround for missing unit parsing in xen-create-nfs (Closes: #648814) 2011-11-15 23:45:35 +01:00
Axel Beckert
1725e269cf Fix wildcard vs regexp in memory configuration parsing. 2011-11-15 22:33:15 +01:00
Axel Beckert
858b47dc2a Also mention oneiric in the xen-tools.conf inline documentation 2011-09-14 19:38:51 +02:00
Axel Beckert
9c3edbcbd5 Also mention oneiric in the xen-tools.conf inline documentation 2011-09-14 19:37:22 +02:00
Axel Beckert
5cf85fa261 Merge branch '4.2' 2011-09-13 17:23:27 +02:00
Axel Beckert
e9f968c322 More stuff necessary for Ubuntu Oneiric support 2011-09-13 17:23:18 +02:00
Axel Beckert
98b869dbc2 Merge branch 'master' of gitorious.org:xen-tools/xen-tools
Conflicts:
	debian/changelog
2011-09-13 16:48:22 +02:00
Axel Beckert
1d81bd1d5c Merge branch '4.2'
Conflicts:
	KNOWN_BUGS
2011-09-13 16:43:51 +02:00
Axel Beckert
9921c9a3e8 TODO: xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside 2011-09-13 16:39:30 +02:00
Axel Beckert
be09f2fbf2 Fix Lintian warning copyright-refers-to-symlink-license. 2011-09-13 16:26:22 +02:00
Axel Beckert
85d8a3b338 Support Ubuntu 11.10 Oneiric (LP: #848654) 2011-09-13 16:10:09 +02:00
Axel Beckert
edea092778 Make a distinction between Dom0 and DomU for supported Distributions 2011-06-24 03:25:32 +02:00
Axel Beckert
b227cf60d8 No more suggest evms-cli.
It's no more available on any supported Dom0 distribution.

Thanks to Markus Waldeck for the hint.
2011-06-24 03:23:15 +02:00
Axel Beckert
2aa139d3a0 Merge branch '4.2' 2011-04-19 23:49:41 +02:00
Axel Beckert
8206a3c4be Mention fixed bug around disk_device in changelog 2011-04-19 23:47:26 +02:00
Axel Beckert
7dd416a57a Document valid values for serialDev and diskDev more precise 2011-04-19 23:16:20 +02:00
Axel Beckert
e4ca843da9 Document valid values for serialDev and diskDev more precise 2011-04-19 23:14:52 +02:00
Dmitry Nedospasov
31ce92ed7a Minor fix: disk_device check 2011-04-19 23:04:27 +02:00
Stéphane Jourdois
f993b86060 Temporary fix for disk device checks
The check for disk devices was completly broken, fix it temporarily.

This check is also kinda wrong, but is still an improvement over the
current test, so submit it waiting for a better idea.
2011-04-19 23:04:13 +02:00
Dmitry Nedospasov
54bde967a2 Point-to-Point routing for Ubuntu 2011-04-18 23:45:20 +02:00
Dmitry Nedospasov
caabc40e3f Minor fix: disk_device check 2011-04-18 22:55:00 +02:00
Axel Beckert
c01dd140e6 TODO: Support cpu_weight and other scheduler features 2011-04-14 11:02:24 +02:00
Alex Tomlins
accbe9e4e7 Allow specifying apt_proxy on the commandline. 2011-03-31 11:35:14 +01:00
Alex Tomlins
b0bae98746 Use configured apt_proxy in guests. 2011-03-31 09:39:39 +01:00
Alex Tomlins
47c146e173 Added apt_proxy option to make debootstrap use a proxy. 2011-03-31 09:30:44 +01:00
Axel Beckert
5aad123429 Merge changes in 4.2 branch back into master branch 2011-03-17 03:05:13 +01:00
Axel Beckert
d61d55baef Bump version to 4.2.1+dev for now 2011-03-17 02:59:28 +01:00
Axel Beckert
870ec1adac Call it a release (4.2.1) 2011-03-17 01:23:55 +01:00
Axel Beckert
8bd3206eff Unmount /proc and /dev/pts just before unmounting the disk image (Closes: #588783) 2011-03-17 01:23:15 +01:00
Axel Beckert
5bace3a7e2 Add new commandline option syntax check ipv4_or_auto (Closes: #611407) 2011-03-17 01:23:15 +01:00
Axel Beckert
cf9b356e6d tab -> 8 blanks 2011-03-17 01:23:15 +01:00
Axel Beckert
423ea8157d Mention Guillaume Pernot and his fix in AUTHORS and debian/changelog 2011-03-17 01:23:14 +01:00
Axel Beckert
0ba1ec6f55 Fix sarge amd64 mirror URL (it's now on archive.debian.org, too) 2011-03-17 01:23:14 +01:00
Guillaume Pernot
bfc8051b10 Fix installation of Sarge i386 on amd64 host (Closes: #611397) 2011-03-17 01:23:14 +01:00
Axel Beckert
c2b16e9a50 Mention Raphaël Halimi and his fix in AUTHORS and debian/changelog 2011-03-17 01:23:13 +01:00
Raphaël HALIMI
754e1c7c0c Fix role script editor crashes with dash (Closes: #605203) 2011-03-17 01:23:13 +01:00
Stéphane Jourdois
47bdce47d4 4.2 has been released
Move KNOWN_BUGS items to 4.3
2011-03-17 01:23:13 +01:00
Axel Beckert
7584bac380 Bump version to 4.2+dev for now, not sure if there will be a 4.2.1 or 4.3 next, maybe both 2011-03-17 01:23:13 +01:00
Axel Beckert
09a6adce29 Unmount /proc and /dev/pts just before unmounting the disk image (Closes: #588783) 2011-03-09 00:56:14 +01:00
Axel Beckert
96e9e45d0d Add new commandline option syntax check ipv4_or_auto (Closes: #611407) 2011-03-09 00:11:58 +01:00
Axel Beckert
729ea1599e tab -> 8 blanks 2011-03-09 00:05:26 +01:00
Axel Beckert
0fd79aa4c2 Mention Guillaume Pernot and his fix in AUTHORS and debian/changelog 2011-03-08 23:51:14 +01:00
Axel Beckert
fdd6c29744 Fix sarge amd64 mirror URL (it's now on archive.debian.org, too) 2011-03-08 23:42:57 +01:00
Guillaume Pernot
615b8328a4 Fix installation of Sarge i386 on amd64 host (Closes: #611397) 2011-03-08 23:40:33 +01:00
Axel Beckert
0a9c2ebd50 Mention Raphaël Halimi and his fix in AUTHORS and debian/changelog 2011-03-08 23:37:46 +01:00
Raphaël HALIMI
c4e30ad73d Fix role script editor crashes with dash (Closes: #605203) 2011-03-08 23:21:23 +01:00
Stéphane Jourdois
90e97b05e9 Temporary fix for disk device checks
The check for disk devices was completly broken, fix it temporarily.

This check is also kinda wrong, but is still an improvement over the
current test, so submit it waiting for a better idea.
2010-10-30 18:02:39 +02:00
Stéphane Jourdois
a79d89ad33 Mount partitions by "shortest mountpoint" order.
Partitions were mounted in config file order, so you could not see
all mounted partitions.

This (at least temporarily) fixes it.
2010-10-30 17:50:17 +02:00
Stéphane Jourdois
0a7f7e3982 4.2 has been released
Move KNOWN_BUGS items to 4.3
2010-10-30 17:47:52 +02:00
Axel Beckert
020ddf1e94 Bump version to 4.2+dev for now, not sure if there will be a 4.2.1 or 4.3 next, maybe both 2010-10-30 17:39:10 +02:00
Axel Beckert
de28845d13 debian/changelog: UNRELEASED -> unstable 2010-10-06 00:06:27 +02:00
Axel Beckert
df54e1fe0c Move availability info to the end of the README's About section
manpage -> man page
2010-09-30 16:32:39 +02:00
Dmitry Nedospasov
638594c9ba Minor changes to documentation of xen-create-image 2010-09-24 20:00:10 +02:00
Dmitry Nedospasov
650c8d51f6 Alphabetical order 2010-09-24 19:59:45 +02:00
Dmitry Nedospasov
a98f2feb9e Add note for fs=xfs, sort options alphabetically 2010-09-24 19:41:22 +02:00
Dmitry Nedospasov
30617e6f80 Minor Changes to README 2010-09-24 19:27:08 +02:00
Axel Beckert
a463c15c1e Update comment about Radu being Debian package maintainer in list of contributors 2010-09-22 18:46:52 +02:00
Axel Beckert
273d451d4b Add Jorge Armando Medina to list of contributors 2010-09-22 18:39:08 +02:00
Axel Beckert
7301278417 Some TODOs for xen-update-image 2010-09-22 18:21:10 +02:00
Axel Beckert
d200c2ad5f Update authorship and copyright in bin/* and debian/copyright 2010-09-22 18:18:58 +02:00
Axel Beckert
2eb73b5a25 README: Reword some paragraphs; add xt-guess-suite-and-mirror 2010-09-22 18:10:29 +02:00
Axel Beckert
5154eb4f7e Encode AUTHORS in UTF-8
Only affects Stéphane's given name.
2010-09-22 15:55:55 +02:00
Axel Beckert
dfdf2fed67 Move Stéphane to the list of primary authors 2010-09-22 15:55:30 +02:00
Axel Beckert
2b3bf60ab0 README: Remove nearly obsolete comment on LP#539814 as it's fixed in lucid-proposed-updates 2010-09-21 16:40:24 +02:00
Axel Beckert
308cad902b README: Remove obsolete paragraph about older versions of Ubuntu 2010-09-21 16:35:21 +02:00
Axel Beckert
5a0964d32e TODO: I want to introduce Perl::Critic for the xen-tools developement 2010-09-21 14:54:09 +02:00
Axel Beckert
6414247eca Update TODO categories
It's quite clear that there won't be any big changes to 4.2 anymore
2010-09-21 14:53:31 +02:00
Axel Beckert
53599dd64b Also add Natty and Wheezy to README 2010-09-21 14:37:32 +02:00
Axel Beckert
35a8ed530b Fix debian/changelog entry
rc -> release, package build -> debian package build
2010-09-21 14:29:14 +02:00
Axel Beckert
17f6bd30a1 Switch default mirror for EoL'ed Ubuntu 8.10 (Intrepid) and Debian 4.0 (Etch) to the distributions' archives for old releases 2010-09-21 14:26:42 +02:00
Axel Beckert
8fca20d4d8 Preliminary support for Ubuntu 11.04 (Natty) and Debian 7.0 (Wheezy) 2010-09-21 14:16:58 +02:00
Axel Beckert
2c0f824f4c Add bugfix in last commit to debian/changelog 2010-09-21 13:57:30 +02:00
Jorge Armando Medina
5f49bddca5 xen-create-image: allow xvc0 in --serial_device option. 2010-09-21 13:33:49 +02:00
Axel Beckert
e80568ec17 Prepare 4.2 release 2010-09-13 14:46:33 +02:00
Axel Beckert
d8f8d6c816 Reformat README file, update authors 2010-09-13 14:38:50 +02:00
Axel Beckert
9d3f09b50d Document more clearly how to build the package from a git working copy. 2010-09-13 14:37:11 +02:00
Axel Beckert
5d51730054 Updates examples in xen-tools.conf to better reflect current state 2010-09-09 12:21:21 +02:00
Axel Beckert
94de43cf54 make install: Fix broken reinstallation by removing all /usr/lib/xen-tools/*.d symlinks before creating new ones.
Thanks to Roland Giesler for noticing and reporting this bug.
2010-09-08 23:34:50 +02:00
Axel Beckert
397299ed0a Mention last commit/revert in the debian/changelog as it fixes a bug reported via Debian BTS 2010-09-07 02:03:42 +02:00
Axel Beckert
bc811daa17 Revert "Generate ChangeLog during package build"
This reverts commit 0cb518bc5a and fixes
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595883

The changelog MUST not be generated during the Debian package build as
it relies on a checked out copy of the VCS repository -- what the
Debian package isn't. The Debian (and any other packaging) gets the
changelog from our tar.gz balls.

We will have to fix the issue, which the reverted commit tried to fix,
differently.
2010-09-07 01:55:25 +02:00
Axel Beckert
fd8f94935a Bump version number to 4.2 RC2 (may become 4.2 "final").
Start new debian/changelog entry, mention Dmitry's fix for #484652.
2010-08-31 00:58:54 +02:00
Dmitry Nedospasov
1e8b4d57c6 Fixed Debian Bug 484652, minor formating 2010-08-31 00:11:00 +02:00
Dmitry Nedospasov
80d002d8a8 swap-dev or noswap must be set with image-dev 2010-08-31 00:11:00 +02:00
Dmitry Nedospasov
8189d013bc Added TODO 2010-08-30 19:44:10 +02:00
Axel Beckert
2d84d9c681 TODO: Refactor the code for less variants of calling cp, rm, mv, etc. 2010-08-25 15:05:20 +02:00
Axel Beckert
f65d79851c Prepare Debian package release 4.2~rc1-1 2010-08-15 19:37:52 +02:00
Axel Beckert
1d9c25e716 Mention btrfs support in debian/changelog 2010-08-06 15:50:47 +02:00
Stéphane Jourdois
8589e0ca80 Add btrfs support. 2010-08-06 15:48:25 +02:00
Axel Beckert
3a43f3c1bc Removed some whitespace 2010-08-05 17:08:27 +02:00
Axel Beckert
3d43ec184d Print the output of called commands on --verbose (Closes: #513126) 2010-08-05 16:03:58 +02:00
Axel Beckert
e30550a289 Whitespace: tab -> 8 blanks 2010-08-05 16:02:31 +02:00
Axel Beckert
1df7ef41da xen-delete-image also needs at least one of --evms, --lvm, or --dir.
This led to strange error messages from xen-delete-image if an
installation failed because they looked like coming from xen-create-image.

xen-delete-image now explicitly states that the error was on the
deletion of the image. not on its creation. (Closes: #513138)
2010-08-03 17:19:24 +02:00
Axel Beckert
1ee85ef493 Fixes wrong loop module parameter syntax in warning. (Closes: #516902) 2010-08-03 16:45:58 +02:00
Axel Beckert
ad3b08fdff Example config: passwd=1 is not the only alternative to genpass=1 2010-08-03 16:17:25 +02:00
Axel Beckert
ab8ee902eb Properly document that genpass=1 is now default 2010-08-03 16:16:24 +02:00
Axel Beckert
1df7642e77 Mention commit 0f99b8b in debian/changelog 2010-08-03 16:02:48 +02:00
Axel Beckert
cd258b1c13 Documentation: --debootstrap-cmd: Path is optional 2010-08-03 16:01:16 +02:00
Axel Beckert
0f99b8b995 Use apt-config dump to determine Dom0's APT proxy settings.
This is the official way, needs no own parsing (therefore less
fault-prone) and shorter. Also fixes Debian bug #560011 -- the manual
parsing did not catch all syntax variants.

Also add some comments before /etc/apt/sources.list generation in the
Ubuntu hooks.
2010-08-03 15:59:10 +02:00
Axel Beckert
73528d94e7 Mounts also /dev/pts automatically before running any hooks or rules
Closes Debian bug #588783.
2010-08-03 15:51:33 +02:00
Axel Beckert
03968fd18c Allow --install-method=cdebootstrap
It's just a shortcut for
--install-method=debootstrap --debootstrap-cmd=cdebootstrap
2010-08-03 15:22:51 +02:00
Axel Beckert
467c6a8828 Remove shebang line from bash-completion file (partially reverts dff767c6) 2010-08-03 14:52:10 +02:00
Axel Beckert
469889f360 Bump Standards-Version to 3.9.1 (no changes) 2010-08-03 14:00:26 +02:00
Axel Beckert
93a70819cf Next release will be a release candidate 2010-08-03 13:54:58 +02:00
Axel Beckert
b479e24c7d Ignore backup files generated by 'make update-version' 2010-08-03 13:54:34 +02:00
Axel Beckert
75b0d5eeb5 Use the better 15-disable-hwclock used for Ubuntu also for Debian (Closes: #588880) 2010-08-03 13:49:38 +02:00
Stéphane Jourdois
f6518986a3 Ignore git files in clean target.
Factorize find command.
Also generate modules.t file before running tests, and be less noisy
doing that.
2010-07-26 20:24:38 +02:00
Stéphane Jourdois
3499822e86 Use grep rather than rgrep.
grep -r is really more standard than rgrep, and does the same thing.
chmod modules.t file.
2010-07-26 20:24:37 +02:00
Stéphane Jourdois
8dfc7d7500 Less noisy make modules. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
ebdf51c262 Ignore generated t/modules.t file. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
3a456608d4 Configure a default locale. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
395e3d0a0b Ignore ChangeLog. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
389fa94bcb Move old log files rather than removing them. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
46242f4be2 Add completion for some new options. 2010-07-26 20:24:37 +02:00
Stéphane Jourdois
dff767c692 Fix code styling issues.
Tabs, trailing spaces, you name it.
2010-07-26 20:24:37 +02:00
Stéphane Jourdois
64c9c8398b Remove trailing space from make_fs_ options.
The "-d name=" option doesn't appear as necessary with mkfs.xfs, at
least with version 3.1.2 of mkfs.xfs (of course, tested with a file
instead of a device).
This simplifies a TODO item.
2010-07-26 19:28:28 +02:00
Stéphane Jourdois
669b4c8f4f Typo & permisions. 2010-07-26 19:13:35 +02:00
Stéphane Jourdois
5cd664c6b0 Encrypt root password with sha256 by default.
- Use perl crypt with some magic rather than openssl to hash root
password, either generated or provided by user.
- Remove the undocumented dependency on openssl.
- Add a hash_method option to configure the hashing algorithm.
- Permit md5, sha256 and sha512, and use sha256 as default.
- Remove TODO entry about "more random" passwords.
- Remove an ugly system() call.
2010-07-25 22:10:59 +02:00
Stéphane Jourdois
77a3876cbe Do not copy host sudoers in guest.
As noticed by Dmitry Nedospasov (Cf. [1]), sudoers file should not be
copied by default.

Move this hook to a role, and add a warning about this in role.

[1] http://xen-tools.org/pipermail/xen-tools-dev/2010-July/000146.html
2010-07-25 22:10:59 +02:00
Axel Beckert
97ecedde5f reiser_options -> reiserfs_options
Thanks Julien Gaulmin and Roland Stigge.
2010-07-24 16:00:05 +02:00
Axel Beckert
5943a70574 Fix description: temporary files -> dot files 2010-07-23 14:54:20 +02:00
Stéphane Jourdois
6f0c858a2b Add validation for ip and mac
I forgot those on first pass, sorry.
2010-07-23 13:29:56 +02:00
Stéphane Jourdois
858f47dd2e Add mailmap for more beautiful git shortlog.
Also, do not ignore .mailmap in git.
2010-07-23 13:29:56 +02:00
Stéphane Jourdois
0cc3c37d74 Podchecker doesn't like empty paragraphs
So remove them, even if t/pod-check.t doesn't currently checks
for those unused modules.
2010-07-23 13:29:56 +02:00
Stéphane Jourdois
2326ca9e23 Again remove tests from TODO :-) 2010-07-23 13:29:56 +02:00
Stéphane Jourdois
ea09c86b7a Do not ignore serial_device nor disk_device
Harden mirror and options regexps also.
2010-07-23 13:29:56 +02:00
Stéphane Jourdois
0cb0a8716c Debootstrap only exists on Debian and Ubuntu
Do not fail this test on other distribs.
2010-07-23 13:29:56 +02:00
Axel Beckert
231fff9785 Shebang lines with /bin/bash are not wanted.
There maybe systems, especially in the BSD world, without bash.
2010-07-23 13:28:28 +02:00
Stéphane Jourdois
19d84a3d9e Harden this test.
Read and test only the shebang, not the whole file, +typos.

Ignore empty files.
2010-07-18 21:27:23 +02:00
Stéphane Jourdois
3b26e3f54f We do not care about git files nor temporary files 2010-07-18 21:27:23 +02:00
Stéphane Jourdois
6cc2e3c1c1 Help test to find modules
Pod::Coverages wants to find perl modules in @INC.
2010-07-18 21:27:23 +02:00
Stéphane Jourdois
85acd315bd Add a gitignore coherency test
This tests helps to maintain .gitignore up to date, by :
 - testing if all ignored files have to be ignored, and
 - testing if all untracked files are ignored.

[ Note : second version ]
Make test work on older git versions
I.e. the git version used on Debian stable.
2010-07-18 21:26:41 +02:00
Stéphane Jourdois
c59eb9aba4 Do not track .hgtags
This file is listed in .gitignore, suggesting that it is not necessary
to track it.

Do not accept this patch if this is not the case !
2010-07-18 20:40:17 +02:00
Stéphane Jourdois
2fd6828346 This file was used by Steve Kemp
Do not accept this patch if this file is still used !
2010-07-18 20:40:17 +02:00
Stéphane Jourdois
e788e35cc1 Harden .gitignore
- Ignore all dotfiles but .gitignore and .hgignore files
 - Provide a way to test this file in header
 - ChangeLog and debian-files are generated at root
 - Ignore patches and orig files
2010-07-18 20:40:17 +02:00
Dmitry Nedospasov
3951ceb718 Fix karmic/lucid gettys
This was broken by a previous patch, the if statement looked for
a foler that doesn't exist on karmic, but did on prior release,
since ttys are no longer in /etc/event.d, but instead in /etc/init

/etc/event.d -> /etc/init
2010-07-18 20:14:26 +02:00
Dmitry Nedospasov
1aeb23823c Fix hostname regex check
Set a minimal length so that the check doesn't fail
2010-07-18 19:52:29 +02:00
Stéphane Jourdois
0e16a65d80 Validate option arguments
Also provide a default value for serial_device and disk_device.
Remove corresponding TODO entry.

Note: as shown by this patch, some needed fixes remain. Some options
take yes/no, some 0/1, etc.
2010-07-18 18:37:59 +02:00
Stéphane Jourdois
2e3924427e Use Dom0's resolv.conf unless nameserver is set.
If nameserver config option is not set (default value), copy Dom0's
/etc/resolv.conf on guest.
Provide a role to show how to customize /etc/resolv.conf in guest.
2010-07-18 18:35:51 +02:00
Dmitry Nedospasov
ec26ac7c9f Added some TODOs 2010-07-18 18:21:19 +02:00
Dmitry Nedospasov
60942153a9 TODO Formating 2010-07-18 18:15:30 +02:00
Dmitry Nedospasov
1ec6e7d4bb Update password related TODOs
Removed one password TODO, added another far less critical one.
2010-07-18 18:07:32 +02:00
Axel Beckert
34ba628f64 TODO: Last test which fails (no idea why yet) is t/pod-coverage.t 2010-07-16 18:14:47 +02:00
Axel Beckert
8f18a42496 Replace tabs by 8 blanks (for now) 2010-07-16 18:07:12 +02:00
Axel Beckert
a04bae2be0 Skip t/xen-tools.t if not running as root (tries to mkdir -p /var/log/xen-tools) 2010-07-16 18:00:52 +02:00
Axel Beckert
c67d218cef Tighten t/quoted-strings.t a little bit against false positives 2010-07-16 17:52:34 +02:00
Axel Beckert
74ec5d698a Fix error "Can't exec "mkdir -p": No such file or directory at lib/Xen/Tools/Log.pm" 2010-07-16 17:42:31 +02:00
Axel Beckert
806f2d0b23 Replace tabs by 8 blanks (for now) 2010-07-16 17:38:37 +02:00
Axel Beckert
a4a39191e2 t/portable-shell.t: Don't check hooks under .git 2010-07-16 17:33:04 +02:00
Axel Beckert
e6ebdac66f Big TODO: Refactor the code for less code duplication 2010-07-16 17:30:28 +02:00
Axel Beckert
b7c1cd9d8a xen-resize-guest: Don't read config file if it doesn't exist as xen-create-image does 2010-07-16 17:30:08 +02:00
Axel Beckert
cc64623752 Make t/getopt.t parse '|' in GetOpt definitions 2010-07-16 17:19:17 +02:00
Stéphane Jourdois
660569dffe Use skip_all rather than SKIP block
This makes prove t output less verbose
2010-07-16 16:56:24 +02:00
Axel Beckert
3d9621293c For now use blanks instead of tabs 2010-07-16 16:56:13 +02:00
Stéphane Jourdois
18f2582648 Export partitions in test and use xvda as default
This test now passes.
2010-07-16 16:48:51 +02:00
Stéphane Jourdois
05def34ca4 Get extension from command line and not from environment
This helps t/xt-create-xen-config to pass.
2010-07-16 16:48:51 +02:00
Axel Beckert
82fae6a5bc Consistent code style for hash value accesses 2010-07-16 16:48:25 +02:00
Stéphane Jourdois
9e738bfb5f Test variable before use 2010-07-16 16:27:42 +02:00
Stéphane Jourdois
14846e85fd Use rmtree not rmdir
rmdir does not remove dir when not empty. Use rmtree for that.
makes t/xen-delete-image test pass.
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
a262d30b1a Remove trailing space 2010-07-16 16:27:42 +02:00
Stéphane Jourdois
fabb5df2e6 Typo 2010-07-16 16:27:42 +02:00
Stéphane Jourdois
bf9c56d42c Remove trailing whitespace
Makes t/test-trailing-whitespace.t pass
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
90b931a906 Print file
Helps debugging
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
aaa6cdc60c Replace single quotes by doubles quotes in scripts
This helps make t/quoted-strings.t pass.
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
4ae530231c Print file
Helps debugging when this test fails
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
ddb999d952 Remove trailing spaces
This helps t/pod-check.t to pass on this file.
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
1e1d3a536a Typo 2010-07-16 16:27:42 +02:00
Stéphane Jourdois
9e5ffdac00 Remove done_testing call.
done_testing appeared in Test::More 0.87, which is not in perl 5.10,
and therefore not in debian stable.
This makes t/perl-syntax.t pass on debian stable and causes no more
trouble.
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
bd840ba071 Replace tabs with spaces
This makes t/no-tabs.t pass.
I'm responsible for some tabs in previous patches, so this
fixes mine also :)

Note that I find this test silly, but "dura lex, sed lex"...
2010-07-16 16:27:42 +02:00
Stéphane Jourdois
c5b4f4bc73 Test file before modifying
This shuts down errors during t/hook-inittab.t proving, and does
not modify hook during real run.
2010-07-16 16:27:42 +02:00
Axel Beckert
43604afa6d Merge Stéphane's and my commit which both changed tty1 to hvc0 in t/hook-inittab.t 2010-07-15 19:02:17 +02:00
Axel Beckert
97fd12a079 Merge commit '66a4a39' 2010-07-15 19:00:05 +02:00
Axel Beckert
fde912c940 Merge commit '6a66d4f' 2010-07-15 18:59:31 +02:00
Axel Beckert
e0b1d90447 Also use hvc0 instead of tty1 in t/hook-inittab.t 2010-07-15 18:56:13 +02:00
Axel Beckert
baf965da09 Stay backwards compatible and still allow -s and -m 2010-07-15 18:50:02 +02:00
Axel Beckert
b898cdb064 Merge commit '9e43d6a' 2010-07-15 18:47:16 +02:00
Axel Beckert
3adee1bc2d Merge commit '4021344' 2010-07-15 18:21:01 +02:00
Axel Beckert
d1a653f565 Merge commit 'd36672f' 2010-07-15 18:20:10 +02:00
Axel Beckert
9f517cb4c3 Re-add --genpass-len for backwards compatibility 2010-07-15 18:18:52 +02:00
Axel Beckert
f115c3db60 Merge commit '0f751d1' 2010-07-15 18:17:32 +02:00
Axel Beckert
e6f57bdebe Re-add --no-hosts and --copy-hosts for backwards compatibility and declare them deprecated 2010-07-15 18:14:16 +02:00
Stéphane Jourdois
0e039f39c5 Use hvc0 instead of tty1.
hvc0 is the new default serial line.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
66a4a399ab Use intrepid sed script for inittab
This makes t/hook-inittab.t pass for this hook.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
6a66d4f068 Disable other getty lines as debian does.
This makes t/hook-inittab.t pass for this hook.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
9e43d6a268 Use long options for xt-guess-suite-and-mirror 2010-07-15 14:18:19 +02:00
Stéphane Jourdois
4021344d94 Strip single quotes as well as double quotes. 2010-07-15 14:18:19 +02:00
Stéphane Jourdois
d36672f8d8 Update indentation for options.
This helps t/getopt.t to pass.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
0f751d1d26 Rename genpass-len to genpass_len to match default config.
This makes prove t/argument-check.t pass.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
d8e4774bcf Remove hyphen in options.
Options no-hosts and copy-hosts do not have hyphens in default
configuration.
This helps to prove t/argument-check.t.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
a6cd6d6eb0 Use same conventions for options as other scripts.
This makes t/getopt.t pass.
2010-07-15 14:18:19 +02:00
Stéphane Jourdois
c0c5c3a8f4 Skip Xen::Tools tests
Those modules are not used for now.
2010-07-15 14:18:19 +02:00
Axel Beckert
4b58d7a1c4 Add Stéphane Jourdois to AUTHORS 2010-07-15 09:32:30 +02:00
Axel Beckert
c78dc0ab77 Remove redundant * in string comparison, remove trailing whitespace 2010-07-15 09:29:05 +02:00
Axel Beckert
2bd526df23 Document how multiple nameservers should be delimited 2010-07-15 09:28:10 +02:00
Stéphane Jourdois
774dbd0fb9 Document vifname config option in xen-create-image
This new option was added by Dmitry Nedospasov <dmitry@nedos.net>
in commit c03029e0c6

Note that this option should not appear in default configuration,
as it is not meant to be used there.
2010-07-10 11:49:40 +02:00
Stéphane Jourdois
a2ea01f039 Document bridge config option in default configuration.
This new option was added by Dmitry Nedospasov <dmitry@nedos.net>
in commit c03029e0c6
2010-07-10 11:43:20 +02:00
Stéphane Jourdois
f032178de9 Add new nameserver config option
This optional config value is used in hooks to create domU resolv.conf.
If unset, domU's resolv.conf is created by the guest distrib install.
2010-07-10 11:38:03 +02:00
Stéphane Jourdois
09f38740c8 Use dom0 resolv.conf when chrooting
Temporarily use resolv.conf from dom0 when chrooting into domU,
to be able to run apt-get and yum inside chroot.

This permits to use different nameservers in domU, and does not
break install nor offline update from dom0.
2010-07-10 10:51:38 +02:00
Stéphane Jourdois
674557233f Use new script name in POD 2010-07-10 10:07:55 +02:00
Stéphane Jourdois
4e9b216c86 Typos 2010-07-10 09:58:24 +02:00
Stéphane Jourdois
0cb518bc5a Generate ChangeLog during package build
dpkg-buildpackage fails to install changelog unless it is generated before.
Build it after manpages.
2010-07-10 09:49:56 +02:00
Stéphane Jourdois
d6d5026484 harden git usage in Makefile
1) 'git st' is an user alias.
2) 'git status' fails if in the middle of a commit (ie. local modified files).

'git ls-files' is more robust, use it in Makefile.
2010-07-10 09:46:46 +02:00
Dmitry Nedospasov
be205d307e Typos/whitespace fixes 2010-07-05 10:19:06 +02:00
Dmitry Nedospasov
3359c10349 Minor fix, can't delete image w/out hostname 2010-07-05 10:15:38 +02:00
Dmitry Nedospasov
8834e669dd Correctly resolve the FQDN
* The FQDN *MUST* follow the hostname in /etc/hosts
* /etc/hostname need only contain the hostname
* Remove the 127.0.1.1 line for hosts with ips
2010-06-23 15:06:31 +02:00
Dmitry Nedospasov
995608ca6c Changed fail value and documented it, to ensure images aren't overwritten 2010-06-20 11:36:16 +02:00
Dmitry Nedospasov
14aead8537 Spruce up installation summary for empty passwords 2010-06-20 11:12:11 +02:00
Dmitry Nedospasov
aac7317f55 Update genpass documentation in --help and in .conf 2010-06-20 11:10:33 +02:00
Dmitry Nedospasov
12327183b2 Fix genpass whitespace whitespace fail 2010-06-20 11:07:19 +02:00
Dmitry Nedospasov
bdd54fbd80 Minor edit: Formating 2010-06-12 12:05:06 +02:00
Dmitry Nedospasov
97de622f89 Fixed installation summary output on failure or usage
* Set $FAIL whenever exit is called
* Set $FAIL=-1 when help or manual
2010-06-12 12:04:23 +02:00
Dmitry Nedospasov
63693d4c27 Added --password flag and documented it 2010-06-07 17:58:12 +02:00
Dmitry Nedospasov
39806f8ad0 Added a genpass flag to generate a password and install it in the guest
* We could use the same functions to set a password via a --password flag
* It would nice to move more functionality to subroutines
* The current generatePassword subroutine, only generates alphanum passwords and hashes
2010-06-07 17:37:57 +02:00
Axel Beckert
ef0eb41e3b Quote some more single quotes in HERE documents for the sake of syntax highlighting 2010-06-07 13:47:30 +02:00
Dmitry Nedospasov
671db332a3 Removed "Clean up setup-hostname" since its been commited 2010-06-05 17:12:05 +02:00
Dmitry Nedospasov
96f4026e33 Updated remaining 50-setup-hostname scripts 2010-06-05 17:09:51 +02:00
Dmitry Nedospasov
83ff7c416f Cleaned up 50-setup-hostname, added --copy-hosts option
* Long overdue clean up of 50-setup-hostname, since simply
  copying the dom0's /etc/hosts file isn't reliable.
* Added a --copy-hosts option for those that do want to copy
  the dom0's /etc/hosts
* Documented both options in the .conf file as well as in
  the scripts
2010-06-05 16:57:37 +02:00
Dmitry Nedospasov
a0fba6f9c7 Fixed installation summary IP output 2010-06-05 16:25:46 +02:00
Dmitry Nedospasov
7eec7171db Fix trailing whitespace 2010-06-05 01:37:29 +02:00
Dmitry Nedospasov
fd64b6efe1 Add "Log our finish", it was accidentily deleted 2010-06-03 00:11:32 +02:00
Dmitry Nedospasov
915cb05d85 Updated remaining 70-install-ssh files 2010-06-02 23:58:51 +02:00
Dmitry Nedospasov
8cf4c83936 Fix 70-install-ssh in debian, print RSA fingerprint
This will fix 70-install-ssh, allowing it complete postinst by
generating host SSH keys for it. The resulting RSA host key
fingerprint is printed in an Installation summary at the end
of isntall. Next step is to apply the same change to the remaining
70-install-ssh's.
2010-06-02 23:51:36 +02:00
Dmitry Nedospasov
9c6f708a0d Missed a 'cachepath' on one of the last commits
The variable 'cachepath' is now called 'cachedir'. I
forgot to commit one of the hunks on the last commit.
2010-06-02 20:32:15 +02:00
Axel Beckert
d1eb8704b5 Debian package: Start new changelog entry for beta2, mention GeoIP 2010-06-02 18:12:43 +02:00
Axel Beckert
a6ccc91a5c Use cdn.debian.net (GeoIP) instead of ftp.debian.org by default
See http://wiki.debian.org/DebianGeoMirror for the details
2010-06-02 18:10:07 +02:00
Axel Beckert
6bc050ae61 POD: Add parameters to options where parameters are needed, add some possible and default values 2010-06-02 17:52:43 +02:00
Axel Beckert
473ad1ccd7 Align all documentation the same way 2010-06-02 17:42:03 +02:00
Axel Beckert
4b2bed2ae4 Sync mirrors mentioned in xen-tools.conf with those used by default by xen-create-image (i.e. ftp.d.o instead of ftp.us.d.o) 2010-06-02 17:33:25 +02:00
Axel Beckert
5c5671b449 We still support Sarge, Dapper, Edgy, Feisty, Gutsy, Hardy and Intrepid as long as they don't need big efforts to support. 2010-06-02 17:29:26 +02:00
Dmitry Nedospasov
18cab071ca Change example mirrors to something we actually support 2010-06-02 17:04:24 +02:00
Dmitry Nedospasov
075b1ad00e Merge branch 'master' of git@gitorious.org:xen-tools/xen-tools 2010-06-02 17:00:17 +02:00
Dmitry Nedospasov
df036e4354 Documented the cachedir option 2010-06-02 17:00:08 +02:00
Axel Beckert
1d47ff5cb6 Use consistently one blank before and one after "=" in the default config file (except where aligned) 2010-06-02 16:59:19 +02:00
Axel Beckert
e95937b314 Use consistently blanks around "=" in the default config file 2010-06-02 16:56:45 +02:00
Dmitry Nedospasov
fa51b092af Merge branch 'master' of git@gitorious.org:xen-tools/xen-tools 2010-06-02 16:44:53 +02:00
Dmitry Nedospasov
f356b6065c Added cachedir option for manually setting a cache directory
This way .debs actually get copied somewhere on non
Debian/Ubuntu systems, and also this way the cache directory
can be overriden, so that the host's apt-cache doesn't get
cluttered with guest .debs.
2010-06-02 16:43:48 +02:00
Axel Beckert
03ca47b988 Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2010-06-02 16:24:54 +02:00
Axel Beckert
c3eb1fef9e Escape single quote to help syntax highlighting in HERE document 2010-06-02 16:24:48 +02:00
Dmitry Nedospasov
04acc115ab Create .deb cache directory on systems lacking one
This patch creates a cache directory on systems which do
not have a /var/cache/apt/archives/ directory. Currently
it creates a /var/cache/xen-tools/archives/ directory,
however this can easily be set to a variable which is
parsed from the configuration file.
2010-06-02 15:32:27 +02:00
Axel Beckert
3fd6e4c941 xt-install-image: New helper function checkForCommonFilesInChroot
Don't fail on missing /bin/ls or /bin/cp, it could be on purpose
2010-05-31 14:24:26 +02:00
Axel Beckert
d9a26c8c69 Remove some more install-server cruft 2010-05-31 12:41:13 +02:00
Dmitry Nedospasov
0c4fbc1e18 Check for text::Template before any other checks
The text::Template check should be the first check, since
otherwise some options are parsed incorrectly leading to
errors like The system is missing the common file: /bin/ls
2010-05-31 11:29:53 +02:00
Axel Beckert
b96d8dd06f Ignore generated file t/modules.t 2010-05-30 23:52:43 +02:00
Axel Beckert
9137ee6bf1 Add Dmitry to debian/copyright 2010-05-30 22:41:52 +02:00
Axel Beckert
35aacbae82 Also update version number and date in debian/NEWS 2010-05-30 22:36:54 +02:00
Axel Beckert
4b3ecb7067 Prepare upload to Debian unstable 2010-05-30 22:33:40 +02:00
Axel Beckert
c4e3a1eed0 Remove generated file t/modules.t from the repository/source 2010-05-30 19:57:12 +02:00
Axel Beckert
156c18e79c Declare current state as Beta instead of Release Candidate 2010-05-30 19:54:26 +02:00
Axel Beckert
b39620c6da Fix bashism in Makefile: [^~] → [!~] 2010-05-30 19:50:02 +02:00
Axel Beckert
898abeb964 Separate real bugs from TODO into KNOWN_BUGS
Also mention that TODO and KNOWN_BUGS are included in the docs for the Debian package
2010-05-30 19:34:45 +02:00
Axel Beckert
3a4fda345b New bug found: xen-delete-image ignores extension setting 2010-05-27 22:04:52 +02:00
Axel Beckert
24704f0bba Reword necessarity of x-c-i to check integer options on non-digits 2010-05-27 22:01:57 +02:00
Axel Beckert
dd2487a2e9 TODO: Hooks: Add the idea of package-manager or -format based hook directories 2010-05-27 01:00:23 +02:00
Axel Beckert
6e8ce650fd TODO: Move Non-Interactive Password Handling to post-4.2 2010-05-26 23:54:25 +02:00
Axel Beckert
78e134ea95 xen-update-image: Reformat source code comment to fit into 80 columns 2010-05-26 23:33:31 +02:00
Axel Beckert
6e5ea6a385 Debian Changelog Mention the addition of cfengine2 to the list of suggested packages 2010-05-26 22:59:35 +02:00
Axel Beckert
b674db90c9 Debian package: Add evms-cli to Suggests.
EVMS has been removed[1] from Debian before Lenny, but it is necessary
for some optional functionality of xen-tools. And since some Debian
derived distributions (e.g. Ubuntu 6.06 LTS Server, Ubuntu 8.04 LTS
and grml) still support it, it's included in the list of suggested
dependencies for the sake of completeness and correctness.

  [1] http://bugs.debian.org/491808
2010-05-26 22:53:48 +02:00
Axel Beckert
e169ca95a7 Fix cut & paste error in error message: wrong directory mentioned 2010-05-26 22:38:05 +02:00
Axel Beckert
15b8ece37a Implement --dry-run for xen-delete-image 2010-05-26 22:19:55 +02:00
Axel Beckert
a11bde091d Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2010-05-26 22:13:27 +02:00
Axel Beckert
e16af7679b Fix spelling error: arbitary -> arbitrary 2010-05-26 22:11:47 +02:00
Dmitry Nedospasov
75ea318955 Merge branch 'master' of gitorious.org:xen-tools/xen-tools
Conflicts:
	TODO
2010-05-26 22:09:38 +02:00
Dmitry Nedospasov
e121eca49a Updated todo with (relevant for 4.2 and later)
* Removed several bullet points which are already implemented
* Added or changed several bullet points for the 4.2 release, most notably:
  1. Fix 70-install-ssh
  2. Clean up setup-hostname
* Added or changed several bullet points for a later release, most notably:
  1. Generic grub support
2010-05-26 21:58:32 +02:00
Axel Beckert
7a052cde71 TODO: Remove --vcpus and --bridge (implemented by Dmitry) 2010-05-26 21:45:00 +02:00
Axel Beckert
3990d298ae TODO: Merge passwd changing issues which were more or less listed twice 2010-05-26 21:42:22 +02:00
Axel Beckert
4c43c34025 TODO: Move new sources.list generation to post-4.2 2010-05-26 21:39:25 +02:00
Axel Beckert
babf60a9b7 roles/README: Hint to document new roles 2010-05-26 21:33:04 +02:00
Axel Beckert
ff2867f732 Document the udev role. 2010-05-26 21:30:36 +02:00
Axel Beckert
03532c16a6 Document the tmpfs role. 2010-05-26 21:28:27 +02:00
Axel Beckert
c464c336bd roles/tmpfs: Also remove legacy comment 2010-05-26 21:27:45 +02:00
Axel Beckert
3520cc7076 roles/tmpfs: Forgot to adjust authorship since it initially was just though for internal usage 2010-05-26 21:26:39 +02:00
Axel Beckert
a0fb2e22b0 Document the puppet role. 2010-05-26 21:21:48 +02:00
Axel Beckert
f7316431a0 Document the editor (sed) role.
Also fix a typo in roles/editor
2010-05-26 21:19:13 +02:00
Axel Beckert
d575169b42 Document the cfengine role, add cfengine to debian/control:Suggests.
Also fix some documentation bugs in roles/cfengine
2010-05-26 21:13:36 +02:00
Axel Beckert
ec848be650 TODO: xen-create-image(1): not all roles are listed 2010-05-26 21:04:05 +02:00
Axel Beckert
b452461473 xen-create-image(1): Don't talk aber Sarge and Etch, talk about Debian Stable, so we won't have to change to docs with every new Debian release. ;-) 2010-05-26 21:03:09 +02:00
Axel Beckert
fa4e023e68 TODO: Password handling 2010-05-26 20:54:42 +02:00
Axel Beckert
c93a08fee2 TODO: xen-delete-image doesn't delete all disk-images if --partitions is used 2010-05-25 23:45:36 +02:00
Axel Beckert
95a83dc5b9 Check for debootstrap and cdebootstrap installation, decide default based on that 2010-05-23 23:14:25 +02:00
Axel Beckert
b55d27c290 Add option --debootstrap-cmd to xen-create-image and xt-install-image 2010-05-23 23:02:48 +02:00
Axel Beckert
e1c1793232 Do not add security support if we're installing Sid 2010-05-23 21:40:30 +02:00
Axel Beckert
df82d28c3c Refactoring: Make check for sources.list more readable 2010-05-23 21:38:11 +02:00
Dmitry Nedospasov
c03029e0c6 Added support for (optionally) setting the bridge
--bridge

Added support for setting the number of vcpus
	--vcpus
2010-05-19 13:46:58 +02:00
Axel Beckert
e4eae6fcf5 bash completion: add rinse to list of install-methods 2010-05-18 17:28:53 +02:00
Axel Beckert
fcf98e6799 Remove image-server installation method
Was used by Steve with a "semi-proprietary" service at some hoster
which does no more use it (with Xen). According to Steve nobody else
used it so we can rip out this unneeded legacy code.

This also reverts the last commit.
2010-05-18 17:24:41 +02:00
Axel Beckert
131782b6c5 debian/control: Add "Suggests: libwww-perl" (needed if --image-server is used) 2010-05-18 14:15:34 +02:00
Axel Beckert
838303a939 Fix typo in error message: s/LDP/LWP/ 2010-05-18 14:10:05 +02:00
Axel Beckert
120ca27f6d List all possible install-methods close to the option itself 2010-05-18 14:09:40 +02:00
Dmitry Nedospasov
8634cda1ee Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2010-05-17 23:20:14 +02:00
Dmitry Nedospasov
95932483e6 merged conflict 2010-05-17 23:17:09 +02:00
Axel Beckert
5cad841880 Indent list of distributions in debian package description to prevent word-wrapping
(fixes lintian warning possible-unindented-list-in-extended-description)
2010-05-17 23:14:41 +02:00
Dmitry Nedospasov
d5cd0fd8ae Added some TODOs
Updated Authors
2010-05-17 23:12:59 +02:00
Axel Beckert
0d71124eb1 Add pointer to /etc/xen-tools/partitions.d/sample-server as partitioning example.
(Thanks to Antoine Benkemoun for pointing out that such a hint is missing!)
2010-05-17 22:54:41 +02:00
Axel Beckert
7b026d3f99 Add role for making /var/run/, /var/lock/ and /tmp/ tmpfs 2010-05-17 21:55:48 +02:00
Axel Beckert
ea6cacf33d Reword and update distribution list in README and debian package description 2010-05-17 20:58:50 +02:00
Axel Beckert
e556ebdbf6 Use old-releases.ubuntu.com as default mirror for Edgy, Feisty and Gutsy; add default mirror for Dapper 2010-05-17 20:02:18 +02:00
Axel Beckert
83253c0214 Add files generated during the build of the debian package to .gitignore 2010-05-17 17:42:07 +02:00
Axel Beckert
3a53492e6a debian/changelog: new upstream author -> new upstream authors 2010-05-17 15:25:38 +02:00
Axel Beckert
24ef3371f8 Update debian/README.source to reflect switch to git 2010-05-17 13:33:10 +02:00
Axel Beckert
d1287f1949 Add Nathan O'Sullivan to contributors 2010-05-17 03:55:53 +02:00
Axel Beckert
ae22845718 Add documentation for commit af19678 2010-05-17 03:39:42 +02:00
Nathan
c0549371cc Add installPackage() function to call the appropriate distro installation function 2010-05-17 03:33:08 +02:00
Axel Beckert
97c1bb0637 Document changes introduced by 5b420f4 in POD 2010-05-17 03:30:15 +02:00
Nathan O'Sullivan
5b420f4cc6 Change role argument to allow supplying a full pathname to a file outside of roledir 2010-05-17 03:27:08 +02:00
Nathan O'Sullivan
f8f2915ec0 Mount /dev/pts while running apt-get to reduce unnecessary errors in logfile 2010-05-17 03:25:52 +02:00
Nathan O'Sullivan
0273892441 Allow disk_device and serial_device to be overridden on the command line 2010-05-17 03:25:13 +02:00
Nathan O'Sullivan
2bbd414b19 Copy /etc/localtime from host 2010-05-17 03:24:39 +02:00
Axel Beckert
c6cb25edf9 Fix cut & paste error in description of do_rinse 2010-05-17 03:07:29 +02:00
Axel Beckert
cea763b669 Let --mirror overrule per-distro mirror defaults
Previously the --mirror value was ignored if a default mirror for the
--dist value has been defined.

Now the --mirror value is by default unset and filled with the
per-distro default mirror in that case.
2010-05-17 02:52:19 +02:00
Axel Beckert
98514d3fc2 Remove redundant default mirror setting 2010-05-17 02:51:39 +02:00
Axel Beckert
29e2f7ece7 Mention also Hardy and Intrepid in Debian package description 2010-05-17 02:43:47 +02:00
Axel Beckert
abb37b2587 Edgy to Hardy: Also use hvc0 als default console device 2010-05-17 02:42:05 +02:00
Axel Beckert
f34afec732 hooks/intrepid: Fix log message regarding console tty 2010-05-17 02:41:23 +02:00
Axel Beckert
17b105e8e0 Use hvc0 instead of tty1 in intrepid, too 2010-05-17 02:32:38 +02:00
Axel Beckert
8df98d4198 Save the exit code of a command, but also allow its output to be saved to the log as it happens 2010-05-17 02:16:44 +02:00
Axel Beckert
620148b782 Fix lintian warning debian-news-entry-uses-asterisk 2010-05-17 02:13:29 +02:00
Axel Beckert
7a3ab22439 Split helper functions logprint into logprint and logonly 2010-05-17 02:09:47 +02:00
Axel Beckert
d670d13071 pygrub with Debian: Support the case where the local architectures is used by default
(Also fixes some typos in logged messages.)
2010-05-17 01:28:01 +02:00
Axel Beckert
546a1441a9 Fix some typos in code comments 2010-05-17 01:15:33 +02:00
Axel Beckert
fc973602e5 Correctly propagate failing hooks back to xen-create-image 2010-05-17 01:13:26 +02:00
Axel Beckert
dd5edf3ccb Call MAKEDEV only if it is installed.
(Which is the case as long as it was a 'required' package.)
2010-05-17 00:10:02 +02:00
Axel Beckert
57cc021ba7 Refactoring: consistent variable usage: ${variable}; some double quotes to ensure valid "test" syntax. 2010-05-16 23:39:44 +02:00
Axel Beckert
5653681c95 Fix syntax error 'unexpected operator' in kernel architecture check 2010-05-16 03:13:24 +02:00
Axel Beckert
d0b7777218 Use double quotes for ${pygrub} check 2010-05-16 03:06:14 +02:00
Axel Beckert
40405b41df Refactoring: Remove more differences between Karmic and Debian hooks 2010-05-16 02:50:35 +02:00
Axel Beckert
db32bcffd4 Refactoring: Remove whitespace differences between Karmic and Debian hooks 2010-05-16 02:48:45 +02:00
Axel Beckert
f7248b2e65 Reword list of supported distributions 2010-05-16 02:09:57 +02:00
Axel Beckert
85e98a86d5 Change letter cases in the Debian package description 2010-05-16 02:04:12 +02:00
Axel Beckert
b689cfd44d Update list of supported distributions, add them to the Debian package description 2010-05-16 02:02:54 +02:00
Axel Beckert
e3444880a6 Fix syntax error in detection of pygrub needing Ubuntu releases 2010-05-16 01:31:51 +02:00
Axel Beckert
b427cf74b2 Different default mirror for Sarge amd64 necessary 2010-05-16 01:31:06 +02:00
Axel Beckert
bbcfa3ad82 Use regexp to catch potential lucid derivatives as well as maverick 2010-05-16 01:10:50 +02:00
Axel Beckert
1b3f0539b9 Always use pygrub if installig Lucid, doesn't work without 2010-05-16 01:04:17 +02:00
Axel Beckert
a1d179c9eb Determine the correct pygrub path in xm.tmpl 2010-05-16 00:46:11 +02:00
Axel Beckert
49cf467f49 Document the --pygrub option 2010-05-16 00:07:41 +02:00
Axel Beckert
f72c3869e8 Karmic + Lucid: Also use hvc0 instead of tty1 2010-05-15 22:05:29 +02:00
Axel Beckert
c223b0f8c6 Use ftp.debian.org instead of ftp.us.debian.org as default Debian mirror
Rationale:

ftp.us.debian.org is a DNS Round Robin for five IPv4-only hosts in the US.

ftp.debian.org is only a single host (kassia in .nl), but also
reachable via IPv6 and connected to GEANT, i.e. most European
universities don't have to pay for traffic with ftp.debian.org.
2010-05-15 18:30:02 +02:00
Axel Beckert
c9023d73fd xen-create-image: Also output (often automatically determined) mirror 2010-05-15 18:24:50 +02:00
Axel Beckert
591f23157a Default mirror for Sarge (and soon Etch, too) is archive.debian.org 2010-05-15 18:23:53 +02:00
Axel Beckert
6dfbdb8fa0 Add hint about possibly missing xen-blkfront module in initramfs 2010-05-15 18:04:23 +02:00
Axel Beckert
49d01d9a76 Use hvc0 and xvda devices by default, add --scsi option for sda names 2010-05-15 16:04:17 +02:00
Axel Beckert
28803001d3 Use hvc0 instead of tty1 for Xen console by default 2010-05-15 15:48:59 +02:00
Axel Beckert
9210c6c8be Rudimentarily support Ubuntu Maverick Meerkat (10.10) 2010-05-15 01:29:17 +02:00
Axel Beckert
20b17ea5e1 Implement separate default mirrors for Debian and Ubuntu 2010-05-15 01:17:35 +02:00
Axel Beckert
3fb0ee97f4 Reduce double blank line to sigle one 2010-05-15 01:09:08 +02:00
Axel Beckert
a9aa524bea Install 'stable' instead of 'leny' by default 2010-05-15 01:08:19 +02:00
Axel Beckert
adeefd6fbb Also support 'stable' as suite to install 2010-05-15 01:07:40 +02:00
Axel Beckert
be143d50aa TODO: Make the hooks conffiles 2010-05-15 01:05:04 +02:00
Axel Beckert
9682622321 Install Lenny instead of Sarge by Default 2010-05-15 01:04:33 +02:00
Axel Beckert
b9d96a9f18 Debian preinst: remove also karmic.d symlink if it exists to allow clean unpacking 2010-05-15 00:46:00 +02:00
Axel Beckert
e2ac8b4ba1 Debian preinst: remove intrepid.d symlink if it exists to allow clean unpacking 2010-05-15 00:38:20 +02:00
Axel Beckert
fa09493b8c Add forgotten backslashes 2010-05-15 00:22:04 +02:00
Axel Beckert
12997b3416 Make VCS detection line more readable by splitting it up over several lines 2010-05-15 00:20:43 +02:00
Axel Beckert
27956bef61 Fix VCS detection in Makefile 2010-05-15 00:11:23 +02:00
Dmitry Nedospasov
b9d1fa2e72 Updated TODO 2010-05-02 13:20:17 +02:00
Dmitry Nedospasov
80a3fc020e * Added myself to Authors
* Removed hooks - they are working!
2010-04-24 20:04:29 +02:00
Dmitry Nedospasov
6f69386f90 * Test the supported distros
* Added an extra hook for Intrepid and Jaunty
* Cleaned up install-kernel scripts
* Updated README
* Updated Makefile to include the new hook
2010-04-24 17:01:53 +02:00
Dmitry Nedospasov
ed81659078 Updated README to reflect the following:
* Added the gitorious git repsoitory
	* Added a list of supported Distros (test by me)
	* Changed information on RPM-Based repositories
	* Other minor changes
2010-04-24 12:11:55 +02:00
Dmitry Nedospasov
23cd316a3f Merge branch 'master' of gitorious.org:xen-tools/xen-tools 2010-04-22 22:42:57 +02:00
Dmitry Nedospasov
a214296973 Updated kerenl install script in edgy 2010-04-17 19:24:51 +02:00
Dmitry Nedospasov
a155db0339 parse distribution for grub menu.lst from /etc/issue 2010-04-17 17:52:54 +02:00
Axel Beckert
3eee05758b Add "Suggests: xen-utils" to debian/control for pygrub 2010-04-17 15:13:18 +02:00
Axel Beckert
99329b4a96 Add missing item dash in TODO list 2010-04-17 15:05:24 +02:00
Axel Beckert
01d7921b0c TODO: Add Mathieu Parent's idea of having a directory of sources.list files for each distribution 2010-04-17 15:05:24 +02:00
Axel Beckert
1a5f9e1978 TODO: Fix debian/control when being online again 2010-04-17 15:05:24 +02:00
Axel Beckert
80770d0d76 debian/changelog: Supports pygrub 2010-04-17 15:05:24 +02:00
Dmitry Nedospasov
cda579c655 Modified TODO: Add distro name and release number to pygrub screen 2010-04-17 14:49:01 +02:00
Dmitry Nedospasov
5a0856e60d Merge branch 'master' of git@gitorious.org:xen-tools/xen-tools 2010-04-17 14:41:39 +02:00
Dmitry Nedospasov
0ecc697a82 1. Added pygrub support to the ubuntu scripts
- Hardy still not working
2. Added karmic support
	- Working fully
3. Edited Makefile to install karmic hooks
2010-04-17 14:41:18 +02:00
Dmitry Nedospasov
e5a3a80049 Updated howto 2010-04-17 03:50:09 +02:00
Dmitry Nedospasov
a82f8754df Changed description of the kernel script 2010-04-17 03:24:13 +02:00
Dmitry Nedospasov
efc9058c10 50-setup-hostname: added 127.0.1.1 with hostname for static ips, with FQDN for DHCP hosts
70-install-ssh: "ssh" package doesn't fully resolve on atleast the newer distros, changed the package "ssh" to "openssh-server"

80-install-kernel: new script to install a kernel for the pygrub flag

80-install-modules: added support for pygrub, this script is essentially ignored if pygrub is set. The kernel script will install modules in that case.
2010-04-17 03:12:52 +02:00
Axel Beckert
30ad001bb2 TODO: List of failing tests 2010-04-15 03:12:47 +02:00
Axel Beckert
631020a2a1 t/perl-syntax.t: Needs done_testing() now to declare the end of all tests 2010-04-15 03:12:09 +02:00
Axel Beckert
f419491ad7 TODO: Test suite should pass 2010-04-15 03:01:34 +02:00
Axel Beckert
a2ddaceab9 t/shell-syntax.t: Skip .git directories, too 2010-04-15 02:57:54 +02:00
Axel Beckert
105e53b355 t/portable-shell.t: Add checkbashism from Debian's devscripts (if available) 2010-04-15 02:56:31 +02:00
Axel Beckert
ce8f44ed36 Automatically skip syntax check if Moose is not installed 2010-04-15 02:51:05 +02:00
Axel Beckert
bf195706b8 Note that t/perl-syntax.t needs Moose.pm 2010-04-15 02:34:59 +02:00
Axel Beckert
4d240abd6c Don't check Makefiles for perl syntax 2010-04-15 02:25:09 +02:00
Axel Beckert
ae5a2eab53 Replace all tabs with 8 blanks to make t/no-tabs.t happy 2010-04-15 02:22:44 +02:00
Axel Beckert
3f9c79f0f2 Remove tab from blank line 2010-04-15 02:22:44 +02:00
Axel Beckert
e9b9b02869 Fix no-tabs.t to ignore .git as well as Makefiles 2010-04-15 02:22:44 +02:00
Axel Beckert
fb1de328c9 Make toplevel Makefile VCS-agnostic 2010-04-15 00:29:13 +02:00
Axel Beckert
7f70f4b148 Change debian/control Vcs-* header to new gitorious.org URLs 2010-04-15 00:01:05 +02:00
Axel Beckert
a007f0b49d Add .gitignore based on .hgignore 2010-04-14 23:56:48 +02:00
Axel Beckert
76d62ed165 TODO: Clean up the hooks directory 2010-04-10 15:22:56 +02:00
Axel Beckert
339116f886 Fix another typo in TODO 2010-04-10 15:21:52 +02:00
Axel Beckert
4362775855 Fix typo in last commit 2010-04-10 13:30:56 +02:00
Axel Beckert
a56858263d Remove resolved issues from TODO, add new ideas about --dist 2010-04-10 13:24:25 +02:00
Axel Beckert
03f1b523fc hg should ignore emacs-style backup files 2010-04-09 11:12:40 +02:00
Axel Beckert
bc750e31e0 Fix exit code of xt-install-image when install method failed (Closes: #534290) 2010-04-09 10:55:18 +02:00
Axel Beckert
0ae7d1a8ec Fix grammar debian/changelog entry 2010-04-09 10:52:49 +02:00
Axel Beckert
35c4a6f61f bashism fixes belong to the upstream part of the debian/changelog entry 2010-04-09 10:52:16 +02:00
Axel Beckert
05c80ffe3a Avoid single quotes in here data to avoid syntax hilighting issues (nearly the same text in xt-install-image) 2010-04-09 10:39:24 +02:00
Axel Beckert
e613f2088c Avoid single quotes in here data to avoid syntax hilighting issues 2010-04-09 10:35:45 +02:00
Axel Beckert
ac4ebe6246 Added a README.source explaining how to build xen-tools directly from the Mercurial repository 2010-04-09 02:09:58 +02:00
Axel Beckert
a08b06726a Fix one more bashism: ${parm/?/pat[/str]} 2010-04-09 01:58:02 +02:00
Axel Beckert
fb9b6347a0 Fix bashism: read without parameter 2010-04-09 01:56:04 +02:00
Axel Beckert
06e4590d0a Fix bashisms: echo -e -> printf 2010-04-09 01:48:15 +02:00
Axel Beckert
4728dffa72 Fix bashism: ${parm/?/pat[/str]} 2010-04-09 01:42:53 +02:00
Axel Beckert
eae96c3b5a Fix bashisms: kill -HUP -> kill -s HUP 2010-04-09 01:32:22 +02:00
Axel Beckert
1fded1e897 Mention fixing of bashisms in the debian/changelog 2010-04-09 01:31:04 +02:00
Axel Beckert
dd40247b13 Fix bashism in Makefile: [^y] -> [!y] 2010-04-09 01:03:31 +02:00
Axel Beckert
0dc86d6ccc Add debian/source/format to silence lintian 2010-03-26 21:53:44 +01:00
Axel Beckert
23966f2a39 Fix e-mail address of C.J. Adams-Collier 2010-03-26 21:45:50 +01:00
Axel Beckert
a53371f7ae Add myself as primary author to AUTHORS 2010-03-26 21:44:04 +01:00
Axel Beckert
467d45d1ec Removal of /etc/bash_completion.d/xm also fixes LP: #484098 as the feature where the bug was in will be removed 2010-03-26 21:36:18 +01:00
Axel Beckert
8ca88a9551 Installs dhclient for CentOS and Fedora if DHCP networking is requested (LP: #241446) 2010-03-26 21:03:50 +01:00
Axel Beckert
f007a6e7c5 Also check /etc/apt/sources.list.d for security updates 2010-03-26 20:52:43 +01:00
Axel Beckert
110498e5b8 First check if /etc/apt/sources.list exists, then grep it. If it doesn't exist enable security updates by default 2010-03-26 20:51:35 +01:00
Axel Beckert
07c59a1b0d Mention fix for LP: #309750 in the changelog 2010-03-26 20:48:57 +01:00
Axel Beckert
b9c1b50873 Just check for the string 'security' in sources.list, so it also matches local and ubuntu mirrors (LP: #309750) 2010-03-26 20:46:13 +01:00
Axel Beckert
24758e4dd3 File conflict with bash-completion: Also close freshly reported Launchpad bug 2010-03-26 20:35:11 +01:00
Axel Beckert
d6284de7e9 Fix missing curly bracket. Thanks to Steve Allison for noticing 2010-03-26 15:43:23 +01:00
Axel Beckert
465a9773b7 Also close parent Launchpad bug to #561618 2010-03-11 01:07:08 +01:00
Axel Beckert
fbc5ef984f Put rinse back to recommends, it's more or less needed for RPM based distros 2010-03-11 01:05:45 +01:00
Axel Beckert
2d8a03c5ac Reordered changelog entry, sort all upstream changes under "New upstream release candidate" 2010-03-11 01:04:32 +01:00
Axel Beckert
be1ef1850b Calls pwconv and grpconv inside chroot when installing Fedora (Closes: #499476) 2010-03-11 00:56:48 +01:00
Axel Beckert
2c14aab186 Support for more recent versions of Fedora, Ubuntu and Debian (Closes: #499477) 2010-03-11 00:54:39 +01:00
Axel Beckert
74195e43f1 Dereference pointers before hashing them to generate a MAC address. (Closes: #547265) 2010-03-10 23:37:21 +01:00
Axel Beckert
ead13f17b3 Don't write the FQDN into /etc/hostname (Closes: #492583) 2010-03-10 23:24:21 +01:00
Axel Beckert
814f1babd2 TODO: Bashisms 2010-03-10 23:23:59 +01:00
Axel Beckert
f8843e5233 Overhaul xen-create-image synopsis, show necessary option parameters 2010-03-10 22:58:52 +01:00
Axel Beckert
bd2b7f2ea8 Add the real bug which caused PEBKAC 2010-03-10 22:26:22 +01:00
Axel Beckert
ce37cac21f Remove note on bug which was PEBKAC (respectively bad documentation :-) 2010-03-10 22:25:00 +01:00
Axel Beckert
5bc0f1e7a4 Add Backspace to ease syntax highlighting 2010-03-10 22:10:06 +01:00
Axel Beckert
368b94e4ef Update TODO: Installs Squeeze now, ext4 support in, but buggy, add newly found bugs 2010-03-10 22:07:12 +01:00
Axel Beckert
83af869d16 Fix missing ';' 2010-03-10 21:56:38 +01:00
Axel Beckert
797196f23f Add new xt-guess-suite-and-mirror script to install-bin target 2010-03-10 21:54:22 +01:00
Axel Beckert
b66263df67 Set release version to 4.2rc1 and generate debian package version with ~ from it
Also do not tidy or modify Emacs' *~ backup files.
2010-03-10 21:29:14 +01:00
Axel Beckert
de31b27c9d Add (yet untested) support for ext4 2010-03-10 20:17:38 +01:00
Axel Beckert
878bc31dc0 Add full header to NEWS.Debian 2010-03-10 20:17:02 +01:00
Axel Beckert
2c8c1ecf62 Revert accidentially committed generated changes to t/modules.t 2010-03-10 20:05:04 +01:00
Axel Beckert
a4b4d67e76 Add (yet untested) support for Fedora 9-13. Ubuntu 9.04-10.04, Debian 6.0
Also resort the Debian releases by release date and add support for
Debian "testing", too.
2010-03-10 20:00:12 +01:00
Axel Beckert
3c5940f8d3 Rename xen-guess-debian-mirror to xt-guess-suite-and-mirror
--HG--
rename : bin/xen-guess-debian-mirror => bin/xt-guess-suite-and-mirror
2010-03-10 19:52:50 +01:00
Axel Beckert
967f926ed2 Debian/Ubuntu: Use Dom0's distribution by default for DomUs
Includes new tool xen-guess-debian-mirror.
2010-03-10 19:46:42 +01:00
Axel Beckert
066e434e08 Updated Copyright years 2010-03-10 19:32:56 +01:00
Axel Beckert
ea181e40a1 Give the example LVM volume group a more common name 2010-03-10 19:29:02 +01:00
Axel Beckert
ba66ab4231 Some more man page todos 2010-03-10 15:55:20 +01:00
Axel Beckert
e261684240 Merge in my todo list and first bugs found during testing, some more structure 2010-03-10 15:37:26 +01:00
Axel Beckert
324d0d26ba Reformat Steve's TODO list into todoo-mode compatible format 2010-03-10 15:13:17 +01:00
Axel Beckert
fb0575a47d Raising Debhelper compat means also raising the Build-Dependency 2010-03-03 02:14:49 +01:00
Axel Beckert
aad28f3fd3 Don't use perl syntax in shell scripts ;-) 2010-03-03 02:11:44 +01:00
Axel Beckert
b6c82d9f1a Only generate man pages for non-tidied scripts 2010-03-03 02:08:18 +01:00
Axel Beckert
4ddc72318b Fix some spelling errors found by lintian 2010-03-03 02:06:37 +01:00
Axel Beckert
f6e224e40e Also clean up .tdy files 2010-03-03 02:05:30 +01:00
Axel Beckert
962d1a4497 Update copyright file, add missing copyright years 2010-03-03 01:59:20 +01:00
Axel Beckert
10cc9763a4 Bump debhelper compat to 7 2010-03-03 01:56:05 +01:00
Axel Beckert
faee230c4b Fix lintian warning debhelper-but-no-misc-depends 2010-03-03 01:54:49 +01:00
Axel Beckert
9fb9ea1d4b Add an orig-tar-gz target 2010-03-03 01:51:52 +01:00
Axel Beckert
09a637f48e Prepare a 4.2~rc1 release so that at least the package builds 2010-03-03 01:46:36 +01:00
Axel Beckert
4bdd02ba9d Upload will close ITP #566714 2010-02-18 14:55:35 +01:00
Axel Beckert
44175e7369 Add Vcs-* header since the repository is now online 2010-02-18 14:27:55 +01:00
Axel Beckert
4f6e76338e Bump Standards-Version to 3.8.4 (no changes); change maintainer e-mail address to my debian.org address 2010-02-01 03:22:18 +01:00
Axel Beckert
d0070878a7 Fixed typo: 3.8. -> 3.8.3 2010-01-26 03:36:04 +01:00
Axel Beckert
be71eff471 Don't bail out if directory man already exists 2010-01-26 03:10:14 +01:00
Axel Beckert
cdc8d3041a Bump Standards-Version to 3.8. (no changes necessary) 2010-01-26 03:08:33 +01:00
Axel Beckert
98ce96a080 Downgrade reiserfsprogs, xfsprogs and rinse to Suggests. (Closes: #561618) 2010-01-26 02:57:00 +01:00
Axel Beckert
e08ade0875 Fix typo in /usr/lib/xen-tools/*.d/75-fixup-securetty (Closes: #503339) 2010-01-26 02:51:31 +01:00
Axel Beckert
fab5bc9861 xen-create-image: Don't delete configuration file if it already exists. (Closes: #520177) 2010-01-26 02:49:21 +01:00
Axel Beckert
da302cdd1d Change rinse path to /usr/sbin/. (Closes: #511211) 2010-01-26 02:41:02 +01:00
Axel Beckert
bc54d27f97 Bugs 502798 and 515228 seem the same 2010-01-26 02:34:46 +01:00
Axel Beckert
610ba4e71d Make sure, MAKEDEV is found (Closes: #502798) 2010-01-26 02:25:03 +01:00
Axel Beckert
c4bce3ea2f Last change justifies a new release 2010-01-26 02:00:36 +01:00
Axel Beckert
dfbf5910b9 Set umask to 0077 before creating disk images 2010-01-26 01:57:40 +01:00
Axel Beckert
a1078d5908 Adjust description 2010-01-26 01:34:43 +01:00
Axel Beckert
e253d89a68 New maintainer also in debian/control 2010-01-26 01:33:52 +01:00
Axel Beckert
3e12e5c0b6 Remove /etc/bash_completion.d/xm
Remove /etc/bash_completion.d/xm from the package since the package
bash-completion ships a more elaborate version of that file. Closes
the Debian bugs #566683 and #550590.
2010-01-26 01:31:18 +01:00
Axel Beckert
e28038f900 New upstream author, new Debian maintainer 2010-01-26 01:29:50 +01:00
Steve Kemp
5c899053cd tidy 2009-01-11 23:23:59 +00:00
Steve Kemp
3e120099d7 Added tag release-4.1 for changeset 6a10240d7c66 2009-01-11 23:22:44 +00:00
Steve Kemp
f968c9dd76 Added tag release-4. for changeset d75c787add2a 2009-01-11 23:22:44 +00:00
Steve Kemp
5ed66652ad Use perltidy with no args 2009-01-11 23:22:03 +00:00
Steve Kemp
7b29ec1bdf Fixed tab vs. space 2009-01-11 23:21:25 +00:00
Steve Kemp
31719505f6 Updated. 2009-01-06 21:01:51 +00:00
Steve Kemp
6338ba62c4 Added. 2009-01-06 20:59:55 +00:00
Steve Kemp
3c4e0160ae Updated. 2008-12-10 21:39:59 +00:00
Steve Kemp
84ee1658d1 Another fixup 2008-12-10 21:35:35 +00:00
Steve Kemp
a28bced5e3 Last juggle. 2008-12-09 14:02:04 +00:00
Steve Kemp
8965988439 Hardy + Intrepid now work 2008-12-08 22:56:55 +00:00
Steve Kemp
1d6771c719 Reverse order. 2008-12-08 22:56:28 +00:00
Steve Kemp
3cb87c09e9 Updated. 2008-12-08 20:35:13 +00:00
Steve Kemp
a95d576a4e 1. Work with partitions.
2.  Allow pygrub
2008-11-24 14:37:34 +00:00
Steve Kemp
9d061fe5a6 Always make /dev/pts available 2008-11-24 14:37:14 +00:00
Steve Kemp
22a4774cfe Updated to work with partitions 2008-11-23 21:12:42 +00:00
Steve Kemp
1b6d3dbdeb Delete the file if it exists 2008-11-23 21:12:36 +00:00
Steve Kemp
996e7d7e1f Don't abort if the file exists 2008-11-23 21:11:43 +00:00
Steve Kemp
97d01456a3 Attempt to fixup image-dev 2008-11-23 13:13:38 +00:00
Steve Kemp
aa7a2c4c5e New command line argument --no-hosts 2008-11-23 13:06:24 +00:00
Steve Kemp
3522a919ce Allow command line flags to be unset. 2008-10-14 22:04:40 +01:00
Steve Kemp
ef3a15c16c Updated standards version 2008-10-13 19:24:01 +01:00
Steve Kemp
c85144de0f Sync 2008-10-13 19:23:15 +01:00
Steve Kemp
455c16cefe Abort if the generated configuration file already exists.
(Closes: #499475)
2008-10-13 19:18:05 +01:00
Steve Kemp
290a30b1b1 Record the arch for rpm-based distros. Closes: 475125 2008-10-13 19:14:47 +01:00
Steve Kemp
8e2f1236fb Don't test for the POSIX module; per http://www.perlmonks.org/?node_id=689911 2008-06-03 21:49:44 +01:00
Steve Kemp
15436cc018 Correctly sort custom partitions.
#477334
2008-04-30 19:06:36 +01:00
Steve Kemp
3717d0cc15 Correctly force purging of packages in the role script(s).
#477629
2008-04-30 19:05:54 +01:00
Steve Kemp
5d11b820b7 Add the hostname to dom0's /etc/hosts in the correct order.
#477775
2008-04-30 19:05:21 +01:00
Steve Kemp
161ee94632 Add /dev/pts to the fedora guests. #474919 2008-04-30 19:04:04 +01:00
Steve Kemp
9ff14a400e Updated with the debian release 2008-04-30 19:02:51 +01:00
Steve Kemp
cb77db18b9 added perltidy rule 2008-04-01 20:52:15 +01:00
Steve Kemp
8be8f39add Ran through perltidy 2008-04-01 20:52:08 +01:00
Steve Kemp
be30692061 Only show the install source if there is one. 2008-03-14 12:12:28 +00:00
Steve Kemp
7a6c7f17c9 Fixed bug where quote characters prevented interpolation.
Added naive test case to catch the error next time round..
2008-02-20 11:55:32 +00:00
332 changed files with 9836 additions and 12258 deletions

36
.gitignore vendored Normal file
View File

@@ -0,0 +1,36 @@
# Note! Please run 'prove t/gitignore.t' after changing
# this file, to check its coherency
# all dotfiles
.*
# but we _wan't_ those dot-files
!.gitignore
!.mailmap
!.travis.yml
# ChangeLog is generated during make
/ChangeLog
# those are generated during debian package build
/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
# some backups
*~
*.orig
# backups created by "make update-version"
*.bak
# Devel::Cover cache
cover_db/

6
.mailmap Normal file
View File

@@ -0,0 +1,6 @@
Axel Beckert <abe@deuxchevaux.org>
Dmitry Nedospasov <dmitry@nedos.net>
Nathan O'Sullivan <nathan@mammoth.com.au>
Radu Spineanu <radu@debian.org> radu <none@none>
Steve Kemp <steve@steve.org.uk> steve <none@none>
Stéphane Jourdois <sjourdois@gmail.com> <stephane@jourdois.fr>

View File

@@ -1,34 +0,0 @@
#
# Configuration file for 'release', a utility to make release more
# easily:
#
# http://release.repository.steve.org.uk/
#
# Steve
# --
#
#
# Command to run
#
preupload="make release"
#
#
# Pattern for our release tarball.
#
pattern=xen-tools-[0-9].[0-9].tar.gz*
#
# Pattern for our GPG-signature.
#
signature=xen-tools-[0-9].[0-9].tar.gz.asc
#
# Upload location.
#
upload=steve@www.xen-tools.org:/home/www/www.xen-tools.org/htdocs/software/xen-tools/

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"

78
AUTHORS
View File

@@ -1,8 +1,9 @@
Primary Authors
---------------
Primary Author
--------------
Axel Beckert <abe@deuxchevaux.org>
Dmitry Nedospasov <dmitry@nedos.net>
Stéphane Jourdois <sjourdois [at] com.gmail>
Steve Kemp <steve [at] uk.org.steve>
@@ -11,7 +12,7 @@ Contributions
Listed alphabetically by surname.
C.J. Adams-Collier <cjcollier [at] com.gmail.com
C.J. Adams-Collier <cjcollier [at] com.gmail>
- Added new modular structure to the code.
Nick Anderson <nick [at] net.anders0n>
@@ -23,46 +24,94 @@ Contributions
Justin Azoff <JAzoff [at] edu.albany.uamail>
- Added LVM support to xen-create-image.
Pieter Barrezeele <macbar [at] be.fab4>
- Several small but useful enhancements
- Bugfixes
Brian Bennett <bahamat [at] net.digitalelf>
- Made multiple times given --ip options work
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)
Stefan Fritsch <sf [at] de.sfritsch>
- Contributed the policy-rc.d fixups for common.sh
Raphaël Halimi <raphael.halimi [at] com.gmail>
- Contribute bashism fix
Sven Hertge <sven [at] de.svenhartge>
- Bugfix for Debian/Gentoo package installation.
Joey Hess <joeyh [at] org.debian>
- Provided sample code for module copying and several useful bug reports
John Hughes <john [at] com.fallenbit>
- Physical devices reordering for pygrub
Kirk Ismay <captain [at] com.netidea>
- 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
Gordon Messmer <gmessmer [at] edu.washington.u>
- Supplied .spec file for building .rpm packages.
Wilson Neil <neil [at] uk.co.aldur>
- Several suggestions and code for disabling start-stop-daemon
- Compatibility fixups for Ubuntu.
Nathan O'Sullivan <nathan [at] au.com.mammoth>
- New features wrt. options and helper functions
Guillaume Pernot <gpernot [at] org.praksys>
- Fixed Sarge amd64 special case
Walter Reiner <walter [at] at.wreiner>
- Provided --image-dev + --swap-dev patch.
Jameson Rollins <jrollins [at] edu.columbia.phys>
- Provided --output + --extension code.
Michal Safranek (Wejn) <wejn [at] box.cz>
- Inspiration for pygrub in the install-kernel scripts
Felipe Scarel <fbscarel [at] com.gmail>
- Bugfix for --no-swap + LVM
Johan Schurer <johannes.schurer [at] com.alcatel-lucent>
- 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 the Debian package maintainer and has CVS commit access.
- Radu is also one of the former Debian package maintainers.
Henning Sprang <henning_sprang [at] de.gmx>
- Many suggestions and useful Debian bug reports.
@@ -73,9 +122,18 @@ Contributions
Gergely Tamas <dice [at] hu.kfki.mfa>
- Added patch to make initrd setup optional.
Alex Tomlins <alex.tomlins [at] com.unboxedconsulting>
- apt_proxy support
Ward Vandewege <ward [at] be.pong>
- Made several updates for Ubuntu support.
Wilson Neil <neil [at] uk.co.aldur>
- Several suggestions and code for disabling start-stop-daemon
- Compatibility fixups for Ubuntu.
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

27
BUGS
View File

@@ -1,27 +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 which have been reported by the users of the Debian
package (the primary user-base):
http://bugs.debian.org/xen-tools
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.
Steve
--

View File

@@ -2,7 +2,12 @@
xen-tools
---------
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009: Steve Kemp. All rights reserved.
Copyright (c) 2010-2013: The Xen-Tools Development Team, currently consisting of:
Axel Beckert <abe@deuxchevaux.org>,
Dmitry Nedospasov <dmitry@nedos.net>, and
Stéphane Jourdois <sjourdois@gmail.com>
This project is free software. You may redistribute it under the
terms of *either* the Perl Artistic License, or the GNU General
@@ -14,7 +19,7 @@ The text of both of these licenses follows below.
Steve
--
http://www.steve.org.uk/
https://steve.fi/

219
Makefile
View File

@@ -6,21 +6,24 @@
#
# Steve
# --
# http://www.steve.org.uk/
# https://steve.fi/
#
#
# Only used to build distribution tarballs.
#
DIST_PREFIX = ${TMP}
VERSION = 3.9
TMPDIR ?= /tmp
DIST_PREFIX = ${TMPDIR}
VERSION = 4.8
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = git
#
# Installation prefix, useful for the Debian package.
#
prefix=
DESTDIR=
prefix=${DESTDIR}
nop:
@@ -31,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 " "
@@ -42,40 +47,46 @@ nop:
# with those details.
#
changelog:
hg log -v > ChangeLog
$(VCS) log -v > ChangeLog
#
# Delete all temporary files, recursively.
#
clean:
@find . -name '.*~' -exec rm \{\} \;
@find . -name '.#*' -exec rm \{\} \;
@find . -name '*~' -exec rm \{\} \;
@find . -name '*.bak' -exec rm \{\} \;
@find . -name '*.tmp' -exec rm \{\} \;
@find . -name 'tags' -exec rm \{\} \;
@find . -name '*.8.gz' -exec rm \{\} \;
@find man -name '*.html' -exec rm \{\} \;
@find . \
-path ./.git -prune -o \
\( \
-name '*~' -o \
-name '.#*' -o \
-name '*.bak' -o \
-name '*.tmp' -o \
-name 'tags' -o \
-name '*.8.gz' -o \
-name '*.tdy' \
\) -exec rm "{}" +
@if [ -d man ]; then rm -rf man ; fi
@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
#
# If the testsuite runs correctly then commit any pending changes.
#
commit: test
hg commit
$(VCS) commit
#
# Show what has been changed in the local copy vs. the remote repository.
#
diff:
hg diff 2>/dev/null
$(VCS) diff 2>/dev/null
#
@@ -84,10 +95,10 @@ 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/xm misc/xen-tools misc/README
chmod 644 misc/*
#
# Install files to /etc/
@@ -98,13 +109,14 @@ 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 ${prefix}/etc/bash_completion.d/
cp misc/xm ${prefix}/etc/bash_completion.d/
-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
#
@@ -120,6 +132,7 @@ install-bin:
cp bin/xen-delete-image ${prefix}/usr/bin
cp bin/xen-list-images ${prefix}/usr/bin
cp bin/xen-update-image ${prefix}/usr/bin
cp bin/xt-guess-suite-and-mirror ${prefix}/usr/bin
chmod 755 ${prefix}/usr/bin/xen-create-image
chmod 755 ${prefix}/usr/bin/xen-create-nfs
chmod 755 ${prefix}/usr/bin/xt-customize-image
@@ -128,6 +141,7 @@ install-bin:
chmod 755 ${prefix}/usr/bin/xen-delete-image
chmod 755 ${prefix}/usr/bin/xen-list-images
chmod 755 ${prefix}/usr/bin/xen-update-image
chmod 755 ${prefix}/usr/bin/xt-guess-suite-and-mirror
@@ -136,35 +150,83 @@ install-bin:
#
install-hooks:
for i in roles/* ; do if [ -f $$i ]; then cp $$i ${prefix}/etc/xen-tools/role.d; fi ; done
mkdir -p ${prefix}/usr/lib/xen-tools/centos-4.d/
mkdir -p ${prefix}/usr/lib/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/lib/xen-tools/fedora-core-6.d/
cp -R hooks/centos-4/*-* ${prefix}/usr/lib/xen-tools/centos-4.d
cp -R hooks/centos-5/*-* ${prefix}/usr/lib/xen-tools/centos-5.d
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/lib/xen-tools/fedora-core-6.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-7.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-8.d
mkdir -p ${prefix}/usr/lib/xen-tools/debian.d/
cp -R hooks/debian/*-* ${prefix}/usr/lib/xen-tools/debian.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sarge.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d lenny.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sid.d
mkdir -p ${prefix}/usr/lib/xen-tools/gentoo.d/
cp -R hooks/gentoo/*-* ${prefix}/usr/lib/xen-tools/gentoo.d
mkdir -p ${prefix}/usr/lib/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/lib/xen-tools/edgy.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d feisty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d gutsy.d
mkdir -p ${prefix}/usr/lib/xen-tools/dapper.d/
cp -R hooks/dapper/*-* ${prefix}/usr/lib/xen-tools/dapper.d/
mkdir -p ${prefix}/usr/lib/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/lib/xen-tools/edgy.d/
mkdir -p ${prefix}/usr/lib/xen-tools/dapper.d/
cp -R hooks/dapper/*-* ${prefix}/usr/lib/xen-tools/dapper.d/
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
for i in ${prefix}/usr/share/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; fi; done
mkdir -p ${prefix}/usr/share/xen-tools/centos-4.d/
mkdir -p ${prefix}/usr/share/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/share/xen-tools/centos-6.d/
mkdir -p ${prefix}/usr/share/xen-tools/fedora-core-6.d/
cp -R hooks/centos-4/*-* ${prefix}/usr/share/xen-tools/centos-4.d
cp -R hooks/centos-5/*-* ${prefix}/usr/share/xen-tools/centos-5.d
cp -R hooks/centos-6/*-* ${prefix}/usr/share/xen-tools/centos-6.d
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/share/xen-tools/fedora-core-6.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-7.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-8.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-9.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-10.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-11.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-12.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-13.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-14.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-15.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-16.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.d
mkdir -p ${prefix}/usr/share/xen-tools/debian.d/
cp -R hooks/debian/*-* ${prefix}/usr/share/xen-tools/debian.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sarge.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d lenny.d
-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 bookworm.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/
cp -R hooks/dapper/*-* ${prefix}/usr/share/xen-tools/dapper.d/
mkdir -p ${prefix}/usr/share/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/share/xen-tools/edgy.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d feisty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d gutsy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d hardy.d
mkdir -p ${prefix}/usr/share/xen-tools/intrepid.d/
cp -R hooks/intrepid/*-* ${prefix}/usr/share/xen-tools/intrepid.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s intrepid.d jaunty.d
mkdir -p ${prefix}/usr/share/xen-tools/karmic.d/
cp -R hooks/karmic/*-* ${prefix}/usr/share/xen-tools/karmic.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d lucid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d maverick.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d natty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d oneiric.d
-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
mkdir -p ${prefix}/usr/share/xen-tools/artful.d/
cp -R hooks/artful/*-* ${prefix}/usr/share/xen-tools/artful.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d bionic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d cosmic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d disco.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d devel.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools
#
@@ -172,7 +234,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
#
@@ -193,39 +254,47 @@ install: fixup-perms install-bin install-etc install-hooks install-libraries ins
# Build our manpages via the `pod2man` command.
#
manpages:
cd bin; for i in *-*; do pod2man --release=${VERSION} --official --section=8 $$i ../man/$$i.8; done
-mkdir -p man
cd bin; for i in *-*[!y]; do pod2man --release=${VERSION} --official --section=8 $$i ../man/$$i.8; done
for i in man/*.8; do gzip --force -9 $$i; done
#
# 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)/.hg*
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
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz .
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: tarball
cp -p ../$(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
#
# Run the test suite.
#
test:
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/
#
@@ -233,9 +302,9 @@ test-verbose:
#
tidy:
if [ -x /usr/bin/perltidy ]; then \
for i in bin/*-*; do \
for i in bin/*-*[^~]; do \
echo "tidying $$i"; \
perltidy -b -nt -bt=2 -sbt=1 -bl -mbl=3 -sbl -bbs -bbb -anl -lp $$i \
perltidy $$i \
; done \
; fi
@@ -251,13 +320,17 @@ uninstall:
rm -f ${prefix}/usr/bin/xt-install-image
rm -f ${prefix}/usr/bin/xt-create-xen-config
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/
-rm -f ${prefix}/etc/bash_completion.d/xen-tools
-rm -f ${prefix}/etc/bash_completion.d/xm
# Maybe needed to remove older releases of xen-tools
rm -rf ${prefix}/usr/lib/xen-tools
rm -rf ${prefix}/usr/share/xen-tools
rm -f ${prefix}/usr/share/man/man8/xen-create-image.8.gz
rm -f ${prefix}/usr/share/man/man8/xen-delete-image.8.gz
rm -f ${prefix}/usr/share/man/man8/xen-list-images.8.gz
@@ -270,7 +343,7 @@ uninstall:
# NOTE: Removes empty local directories.
#
update:
hg pull --update 2>/dev/null
$(VCS) pull --update 2>/dev/null
#
@@ -278,7 +351,7 @@ update:
# cases to ensure that all required modules are available.
#
update-modules:
cd t && make modules
@cd t && make modules
#
@@ -286,4 +359,4 @@ update-modules:
# at the top of this file. Steve-Specific?
#
update-version:
perl -pi.bak -e "s/RELEASE = '[0-9]\.[0-9]';/RELEASE = '${VERSION}';/g" bin/*-*
perl -pi.bak -e "s/RELEASE = '[0-9]\.[0-9][^']*';/RELEASE = '${VERSION}';/g" bin/*-*[!~]

449
NEWS.markdown Normal file
View File

@@ -0,0 +1,449 @@
xen-tools 4.8 (released 9 Feb 2019)
===================================
New Features
------------
* Support for ZFS volumes (by Marc Bigler, GH #50)
* Support for LVM thin provisioning (by Nico Boehr, GH #47)
* Support for really random MAC addresses upon every `xen-create-image`
invocation by using the new option `--randommac`. (by Pietro Stäheli,
closes Debian bug report #855703)
* `distributions.conf` now supports arbitrary keyring files in
`/usr/share/keyrings/`. (Needed for some EoL Ubuntu releases.)
* Support for netplan.io network configuration as used in recent
Ubuntu releases. (Hook by Arno and Peter, GH #51)
Bug Fixes
---------
* Minor documentation fixes.
* Eliminate progress reporting which is useless in logs. (Yuri Sakhno,
GH #42)
* Drop `pygrub` path detection from `xm.tmpl`, Xen prefers a path-less
`bootloader='pygrub'`.
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 17.10 Artful Aardvark
+ Ubuntu 18.04 Bionic Beaver (LTS) (GH #51)
+ Ubuntu 18.10 Cosmic Cuttlefish
* Preliminary support for Ubuntu 19.04 Disco Dingo
* Knows about code name for Debian 12 (Bookworm).
* Considers Ubuntu Yakkety, Zesty and Artful being EoL.
* Set Ubuntu fallback suite to the latest LTS, i.e. 18.04 Bionic.
Other Changes
-------------
* Change all occurrences of `httpredir.debian.org` to
`deb.debian.org` except those for the `debian-archive`. The latter
now point to `archive.debian.org` directly.
* Many improvements for the `release-testing` script.
* Only run `xen-toolstack` helper script if both, `xm` and `xl` are
present. Avoids warning about deprecated helper script.
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 #849867)
* 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)
======================================
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
---------
* Fix several testuite failures depending on the build host's
installation.
Other Changes
-------------
* Remove most Mercurial traces
xen-tools 4.2.1 (released 17 Mar 2011)
======================================
Bugfix Release only
xen-tools 4.2 (released 05 Oct 2010)
====================================
First final release of the new Xen-Tools Team.
Supports Ubuntu up to 11.04 (Natty) and Debian up to 7.0 (Wheezy).
New Options
-----------
--debootstrap-cmd (xen-create-image and xt-install-image)
New Features and Major Changes
------------------------------
* 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 https://wiki.debian.org/DebianGeoMirror for
details.
* New helper program `xt-guess-suite-and-mirror`, used to find the
default mirror and suite.

137
README
View File

@@ -1,137 +0,0 @@
Homepage:
http://www.xen-tools.org/software/xen-tools
Mercurial Repository:
http://xen-tools.repository.steve.org.uk/
Mailing Lists:
http://xen-tools.org/software/xen-tools/lists.html
xen-tools
---------
The xen-tools package contains a collection of Perl scripts for
working with Xen guest images under Debian GNU/Linux.
Using this software, you can easily create new Xen guests configured
to be accessible over your local network and complete with an installed
copy of OpenSSH.
This software is primarily aimed at users who wish to create virtual
instances of Debian Sarge, Etch, or Sid. Although other distributions
such as Ubuntu Dapper, Edgy, and Feisty are supported if you have the
appropriate packages installed.
Requirements
------------
To use these tools you'll need the following software:
* debootstrap
* Perl
* The Perl module "Text::Template"
* The Perl module "Config::IniFiles"
- Both of these modules are available as Debian packages,
or direct from http://www.cpan.org/ for non-Debian distributions.
In order to install RPM-based distributions such as CentOS, or
Fedora Core you will need a correctly installed and configured
"rinse" package.
To install Ubuntu distributions upon a Debian host system you will
need either:
* The Ubuntu version of debootstrap installed.
* A patched debootstrap package from:
http://steve.org.uk/Software/tmp/debootstrap/
If you wish to create new Xen instances which may be controlled by
users via a login shell you should also install the xen-shell package
which is available from:
http://xen-tools.org/software/xen-shell/
The Scripts
-----------
There now follows a brief description of each included script,
for more thorough documentation please consult the appropriate
manpage.
xen-create-image
----------------
This script is designed to create new images which may be used
with the Xen hypervisor.
The virtual images will have their networking settings created and,
you may optionally cause the new instance to boot once it has
been created.
This script performs the initial setup, then delegates the real
work to a collection of helper scripts:
* xt-install-image
Installs a distribution into a directory.
* xt-customize-image
Run a collection of hook scripts to configure the freshly
installed system.
* xt-create-xen-config
Create a configuration file in /etc/xen such that Xen can
boot the newly created machine.
xen-create-nfs
--------------
This script is similar in spirit to xen-create-image, but much
less complex. It allows the creation of Xen guests which are
diskless, mounting their root filesystem over a remote NFS-share.
There are not many options to tweak, but still a useful addition
to the suite.
xen-delete-image
----------------
This script will allow you to completely remove Xen instances
which have previously been created by xen-create-image, this
includes removing the storage block devices from the system,
and deleting the Xen configuration file.
xen-list-images
---------------
List all the created images beneath a given root directory along
with a brief overview of their setup details.
xen-update-image
----------------
This script runs "apt-get update; apt-get upgrade" for a given
Xen image.
NOTES:
* The image should not be running or corruption will occur!
* The script should only be used for Xen instances of Debian or
a Debian-derived distribution.
Steve
--

296
README.markdown Normal file
View File

@@ -0,0 +1,296 @@
xen-tools
=========
[![Travis CI Build Status](https://api.travis-ci.org/xen-tools/xen-tools.svg)](https://travis-ci.org/xen-tools/xen-tools)
* [Homepage](https://www.xen-tools.org/software/xen-tools)
* [Change Log](https://github.com/xen-tools/xen-tools/blob/master/NEWS.markdown)
* 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
-----
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
network via [OpenSSH](http://www.openssh.org/).
xen-tools currently has scripts to install most releases of
[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.
However, currently only Debian and Ubuntu releases are tested and
known to work reliably, i.e.:
### Debian
* Sarge 3.1 (i386 and DomU only) [¹](#1)
* Etch 4.0 (Dom0 no more tested) [¹](#1)
* Lenny 5.0 (Dom0 no more tested) [¹](#1)
* Squeeze 6.0 (Dom0 no more tested) [¹](#1)
* Wheezy 7 (Dom0 no more tested) [¹](#1)
* Jessie 8
* Stretch 9
* Buster 10 (under development)
* Bullseye 11 (knows about this future release name)
* Bookworm 12 (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 (LTS) [¹](#1) [²](#2)
* Edgy Eft 6.10 [¹](#1) [²](#2)
* Feisty Fawn 7.04 [¹](#1)
* Gutsy Gibbon 7.10 [¹](#1)
* Hardy Heron 8.04 (LTS, see [Installing Ubuntu 8.04 as DomU][2]) [¹](#1)
* Interpid Ibex 8.10 [¹](#1)
* Jaunty Jackaplope 9.04 [¹](#1)
* Karmic Koala 9.10 [¹](#1)
* Lucid Lynx 10.04 (LTS) [¹](#1)
* Maverick Meerkat 10.10 [¹](#1)
* Natty Narwhal 11.04 [¹](#1)
* Oneiric Ocelot 11.10 [¹](#1)
* Precise Pangolin 12.04 (LTS) [¹](#1)
* Quantal Quetzal 12.10
* 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
* Artful Aardvark 17.10
* Bionic Beaver 18.04 (LTS)
* Cosmic Cuttlefish 18.10
* Disco Dingo 19.04 (under development)
### Footnotes
<dl compact="compact">
<dt><a id="1" name="1">¹</a></dt><dd>
Installation with `xen-create-image` and updating with
`xen-update-image` might fail with newer kernels/distributions as Dom0
without `vsyscall=emulate` on the kernel commandline.
</dd><dt><a id="2" name="2">²</a></dt><dd>
At least between debootstrap version 1.0.37
and 1.0.93 (including) these distributions needs editing of
`/usr/share/debootstrap/scripts/edgy`, see [#659360][1].
</dd></dl>
[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
"There is an issue with debootstrap on hardy not installing ksyslogd."
### CentOS
(only DomUs tested, pygrub support incomplete)
* CentOS 5
* CentOS 6
Packages
--------
xen-tools are available prepackaged in Debian (and derivates) and as
source tar-ball for local installation. Installing from source should
work flawlessly on most Linux systems that meet the installation
requirements.
Requirements
------------
To use these tools you'll need the following software:
* [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](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](https://xen-tools.org/software/xen-shell/)
project.
### Caveats
For security reasons (avoid risk to circumvent [ASLR][3]), recent kernels
have disabled the `vsyscall` mapping. Unfortunately older
distributions don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed
vsyscall address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
`vsyscall=emulate` to the kernel commandline, e.g. by adding it to
`GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, then running
`update-grub` afterwards and finally reboot.
[3]: https://en.wikipedia.org/wiki/Address_space_layout_randomization
"Address Space Layout Randomization"
Installation
------------
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
ball).
The Scripts
-----------
Here is a brief description of each included script, for more thorough
documentation please consult the appropriate man page.
### xen-create-image
This script is designed to create new images which may be used
with the Xen hypervisor.
This script performs the initial setup, then delegates the real
work to a collection of helper scripts:
* `xt-install-image`: Installs a distribution into a directory.
* `xt-customize-image`: Run a collection of hook scripts to configure
the freshly installed system.
* `xt-create-xen-config`: Create a configuration file in `/etc/xen`
such that Xen can boot the newly created machine.
* `xt-guess-suite-and-mirror`: In case of a Debian or Ubuntu Dom0,
this script tries to guess the most suitable suite and mirror for
DomUs based on the Dom0's `/etc/apt/sources.list`.
### xen-create-nfs
This script is similar in spirit to `xen-create-image`, but much less
complex. It allows the creation of Xen guests which are diskless,
mounting their root filesystem over a remote NFS-share.
There are not many options to tweak, but still a useful addition
to the suite.
### xen-delete-image
This script will allow you to completely remove Xen instances which
have previously been created by `xen-create-image`, this includes
removing the storage block devices from the system, and deleting the
Xen configuration file.
### xen-list-images
List all the created images beneath a given root directory along with
a brief overview of their setup details.
### xen-update-image
This script runs "apt-get update; apt-get upgrade" for a given Xen
image.
#### NOTES
* The image should not be running or corruption will occur!
* 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
You can check the following ressources for known or open issues:
* [xen-tools Issue Tracker at GitHub](https://github.com/xen-tools/xen-tools/issues)
(primary upstream bug tracker)
* [Mailing list archives of the xen-tools mailing lists](https://xen-tools.org/software/xen-tools/lists.html)
(might contain, loose, non-formal bug reports)
* [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

42
SUPPORT
View File

@@ -1,42 +0,0 @@
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/
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
Included with the release you should find the file "BUGS" which
contains some notes on reporting bugs.
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
The members of that list are very good at diagnosing issues with
networking, block devices, and other Xen oddities.
Contact The Author
------------------
As a last resort feel free to contact the author at <steve@steve.org.uk>.
I say last resort not because I'm unwilling to help, but because
it will take longer for me to respond to you personally and I hate
answering the same question multiple times.
Steve
--

41
SUPPORT.markdown Normal file
View File

@@ -0,0 +1,41 @@
Mailing List
============
For assistance on using, or customising, these scripts please consult
the manpages initially, then the
[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](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.
Xen Queries
===========
If your query is mostly related to Xen, rather than these tools, then
please consider joining the [xen-users mailing
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](https://freenode.net/) IRC network.
Contact The Author
==================
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
because it may take longer for me to respond to you personally.
--
Axel

16
TODO
View File

@@ -1,16 +0,0 @@
TODO
----
1. Test and support more file system types. Actually this should be
pretty simple now that the parameters are stored in the configuration
hash. The only issue is that trailing whitespace is missing from the
"make_fs_foo" option.
2. Write more test cases.
3. LVM snapshot support as an install source.
4. xen-delete-image should unallocate any used IP addresses.
Steve
--

67
TODO.markdown Normal file
View File

@@ -0,0 +1,67 @@
TODO
====
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
---------------------------------------
* Fix xdm and gdm roles wrt. to uptodate package names.
* Test and support more file system types.
Actually this should be pretty simple now that the parameters are
stored in the configuration hash.
* Setup locales in the hooks?
Currently no locales are set and this causes several domU errors
which appear in the domU's logs.
* Generic grub support
This will generate a much nicer `menu.lst` as a side effect, as its
currently generated once at install, and is never updated. Installing
a full grub into the domU should update the `menu.lst` every time a
new kernel is installed and will also use the domU distro's `menu.lst`
conform.
* More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up
the machine. Open to suggestions, should just be some general use-cases
that are fairly common.
* Sections for the xen-tools.conf file
Currently it's really annoying when you are trying to create VMs
on multiple subnets. It would be nice to specify with a flag what
"type" of configuration you want, and a set of options specific to
that flag could be parsed from xen-tools.conf
* 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.
* Make used Xen toolstack configurable, i.e. via --xen-toolstack=xl
* Add test for `--size` constraints (upper- and lowercase letters,
with and without `B`, etc.)
* Needs a `--dry-run` or `--check-constraints` option in
`xen-create-image` first. Which probably both would be a good
idea.
* Maybe check for `vsyscall=emulate` in `GRUB_CMDLINE_LINUX_DEFAULT`
in `/etc/default/grub` if trying to install an affected Linux
distribution.
Stuff from Steve's TODO list / Generic TODOs
--------------------------------------------
* Write more test cases.
* `xen-delete-image` should unallocate any used IP addresses.

File diff suppressed because it is too large Load Diff

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.
@@ -19,8 +21,9 @@ xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
--dhcp Configure the guest to use DHCP for IP allocation.
--gateway The gateway address to use when configured with a static IP.
--hostname The hostname to configure for the guest.
--netmask The netmask to use when configured with a static IP.
--ip The IP address to use when configured with a static IP.
--netmask The netmask to use when configured with a static IP.
--nameserver The nameserver to use when configured with a static IP.
General options:
--admins Specify which users should be setup as xen-shell admins.
@@ -35,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
@@ -54,11 +55,8 @@ Read the manual for this script.
=item B<--version>
Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -70,38 +68,31 @@ 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 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
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
@@ -111,7 +102,7 @@ use Env;
use Getopt::Long;
use Pod::Usage;
use Text::Template;
use Xen::Tools::Common;
#
@@ -124,23 +115,23 @@ my %CONFIG;
#
# Default options
#
$CONFIG{'template'} = '/etc/xen-tools/xm-nfs.tmpl';
$CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
# store version number away.
$CONFIG{'xen_tools_version'} = $RELEASE;
$CONFIG{ 'xen_tools_version' } = $RELEASE;
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
#
@@ -161,15 +152,15 @@ testArguments();
if ( -e "/etc/xen/$CONFIG{'hostname'}.cfg" )
{
die "Configuration file for $CONFIG{'hostname'} already exists"
unless ( $CONFIG{'force'} );
unless ( $CONFIG{ 'force' } );
}
#
# If we've been given any administrators then set them up.
#
if ( $CONFIG{'admins'} )
if ( $CONFIG{ 'admins' } )
{
setupAdminUsers();
setupAdminUsers(\%CONFIG);
}
#
@@ -185,88 +176,6 @@ createNewConfigurationFile();
exit;
=begin doc
Read the specified configuration file, and update our global configuration
hash with the values found in it.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -288,30 +197,31 @@ sub parseCommandLineArguments
GetOptions(
# Networking options
"dhcp", \$CONFIG{'dhcp'},
"gateway=s", \$CONFIG{'gateway'},
"broadcast=s", \$CONFIG{'broadcast'},
"ip=s", \$CONFIG{'ip'},
"netmask=s", \$CONFIG{'netmask'},
"hostname=s", \$CONFIG{'hostname'},
"memory=s", \$CONFIG{'memory'},
"mac=s", \$CONFIG{'mac'},
"dhcp", \$CONFIG{ 'dhcp' },
"gateway=s", \$CONFIG{ 'gateway' },
"broadcast=s", \$CONFIG{ 'broadcast' },
"ip=s", \$CONFIG{ 'ip' },
"netmask=s", \$CONFIG{ 'netmask' },
"nameserver=s", \$CONFIG{ 'nameserver' },
"hostname=s", \$CONFIG{ 'hostname' },
"memory=s", \$CONFIG{ 'memory' },
"mac=s", \$CONFIG{ 'mac' },
# NFS options.
"nfs_server=s", \$CONFIG{'nfs_server'},
"nfs_root=s", \$CONFIG{'nfs_root'},
"nfs_server=s", \$CONFIG{ 'nfs_server' },
"nfs_root=s", \$CONFIG{ 'nfs_root' },
# Misc. options
"admins=s", \$CONFIG{'admins'},
"kernel=s", \$CONFIG{'kernel'},
"initrd=s", \$CONFIG{'initrd'},
"force", \$CONFIG{'force'},
"template=s", \$CONFIG{'template'},
"admins=s", \$CONFIG{ 'admins' },
"kernel=s", \$CONFIG{ 'kernel' },
"initrd=s", \$CONFIG{ 'initrd' },
"force", \$CONFIG{ 'force' },
"template=s", \$CONFIG{ 'template' },
# Help options
"help", \$HELP,
"manual", \$MANUAL,
"verbose", \$CONFIG{'verbose'},
"verbose", \$CONFIG{ 'verbose' },
"version", \$VERSION
);
@@ -322,13 +232,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.13 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
logprint("xen-create-nfs release $RELEASE - CVS: $REVISION\n");
logprint("xen-create-nfs release $RELEASE\n");
exit;
}
}
@@ -349,116 +253,64 @@ sub testArguments
#
# Hostname is mandatory
#
die "No hostname" unless ( $CONFIG{'hostname'} );
die "No hostname" unless ( $CONFIG{ 'hostname' } );
my @network = qw/ ip gateway netmask /;
#
# If DHCP then all the other options aren't needed
#
if ( $CONFIG{'dhcp'} )
if ( $CONFIG{ 'dhcp' } )
{
foreach my $f (@network)
{
delete( $CONFIG{$f} );
delete( $CONFIG{ $f } );
}
}
else
{
foreach my $f (@network)
{
die "Missing --$f" unless ( $CONFIG{$f} );
die "Missing --$f" unless ( $CONFIG{ $f } );
}
}
#
# We need an NFS server + root
#
die "Missing NFS server." unless ( $CONFIG{'nfs_server'} );
die "Missing NFS root." unless ( $CONFIG{'nfs_root'} );
die "Missing NFS server." unless ( $CONFIG{ 'nfs_server' } );
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
# 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...
if ( exists($CONFIG{ 'memory' }) and
defined($CONFIG{ 'memory' }) ) {
#
# The memory size: Convert Gb -> Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Gb.*$/i )
{
$CONFIG{ 'memory' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Mb.*$/i )
{
$CONFIG{ 'memory' } = $1;
}
}
# All OK.
}
=begin doc
This routine is designed to ensure that any users specified with
the --admins flag are setup as administrators of the new instance.
=end doc
=cut
sub setupAdminUsers
{
#
# If we're not root we can't modify users.
#
return if ( $EFFECTIVE_USER_ID != 0 );
#
# If we don't have a sudoers file then we'll also ignore this.
#
return if ( !-e "/etc/sudoers" );
#
# Find the path to the xen-login-shell
#
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" );
return if ( !defined($shell) );
#
# For each user make sure they exist, and setup the
# login shell for them.
#
foreach my $user ( split( /,/, $ENV{'admins'} ) )
{
# Strip leading and trailing whitespace.
$user =~ s/^\s+//;
$user =~ s/\s+$//;
# Ignore root
next if ( $user =~ /^root$/i );
# Does the user exist?
if ( getpwnam($user) )
{
# Change shell.
$CONFIG{'verbose'} && print "Changing shell for $user: $shell\n";
system( "chsh", "-s", $shell, $user );
}
else
{
# Add a new user.
$CONFIG{'verbose'} && print "Adding new user: $user\n";
system( "useradd", "-s", $shell, $user );
}
#
# Add the entry to /etc/sudoers.
#
open( SUDOERS, ">>", "/etc/sudoers" )
or warn "Failed to add user to sudoers file : $user - $!";
print SUDOERS
"$user ALL = NOPASSWD: /usr/sbin/xm, /usr/bin/xen-create-image\n";
close(SUDOERS);
}
}
=begin doc
Create the Xen configuration file for our new Xen guest.
@@ -470,13 +322,13 @@ sub setupAdminUsers
sub createNewConfigurationFile
{
die "Template file missing: $CONFIG{'template'}"
unless ( -e $CONFIG{'template'} );
unless ( -e $CONFIG{ 'template' } );
#
# Load the template.
#
my $template = new Text::Template( TYPE => 'FILE',
SOURCE => $CONFIG{'template'} );
SOURCE => $CONFIG{ 'template' } );
my $result = $template->fill_in( HASH => \%CONFIG );

View File

@@ -1,5 +1,7 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-delete-image - Delete previously created Xen instances.
@@ -8,6 +10,10 @@ xen-delete-image - Delete previously created Xen instances.
xen-delete-image [options] [--hostname=]imageName1 [--hostname=]imageName2
Filename Options:
--extension Specify the file extension to use. An empty extension is equal
to any extension.
Help Options:
--help Show help information.
--manual Read the manual for this script.
@@ -16,16 +22,15 @@ xen-delete-image - Delete previously created Xen instances.
General options:
--dir Specify the output directory where images were previously saved.
--lvm Specify the LVM volume to use.
--evms Specify the EVMS container to use.
--lvm Specify the LVM volume to use.
--zpool Specify the ZFS pool to use.
Specifying hosts:
--hostname Specify the image name to delete.
Testing options:
--test Don't complain if we're not invoked by root.
=cut
--test Don't complain if we're not invoked by root.
=head1 OPTIONS
@@ -47,20 +52,21 @@ Specify the hostname to delete.
=item B<--lvm>
Specify the LVM volume group where images were previously saved.
=item B<--zpool>
Specify the ZFS pool where images were previously saved.
=item B<--manual>
Read the manual for this script.
=item B<--test>
Don 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
@@ -74,8 +80,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
@@ -91,8 +95,6 @@ Show the version number and exit.
(The matching Xen configuration files beneath /etc/xen will also be
removed.)
=cut
=head1 LVM EXAMPLE
@@ -109,8 +111,6 @@ Show the version number and exit.
The Xen configuration files will also be removed from beneath /etc/xen.
=cut
=head1 EVMS EXAMPLE
@@ -127,28 +127,24 @@ Show the version number and exit.
The Xen configuration files will also be removed.
=cut
=head1 AUTHORS
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
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
@@ -156,6 +152,8 @@ use strict;
use English;
use Getopt::Long;
use Pod::Usage;
use File::Path;
use Xen::Tools::Common;
#
@@ -169,16 +167,26 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
#
# Default values
#
$CONFIG{ 'extension' } = '.cfg';
#
# Read the global configuration file if it exists.
#
if ( -e "/etc/xen-tools/xen-tools.conf" )
{
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
}
@@ -198,14 +206,14 @@ checkArguments();
#
# Abort if non-root user.
#
if ( ( !$CONFIG{'test'} ) && ( $EFFECTIVE_USER_ID != 0 ) )
if ( ( !$CONFIG{ 'test' } ) && ( $EFFECTIVE_USER_ID != 0 ) )
{
print <<E_O_ROOT;
print <<EOROOT;
This script is not running with root privileges, so the configuration
file(s) beneath /etc/xen will not be removed.
E_O_ROOT
EOROOT
exit 127;
}
@@ -214,27 +222,21 @@ E_O_ROOT
#
# Loop over the supplied arguments, and attempt to delete each
# image.
# image. Check both, bare parameters as well as --hostname options.
#
while ( my $name = shift )
{
if ( !xenRunning($name) )
{
deleteXenImage($name);
}
else
{
print "Skipping xen guest '$name' - it appears to be running.\n";
}
my @hosts = ();
if (exists($CONFIG{ 'hostname' }) and defined($CONFIG{ 'hostname' })) {
my $hostname_option = $CONFIG{ 'hostname' };
@hosts = 'ARRAY' eq ref($hostname_option) ?
@$hostname_option : $hostname_option;
}
#
# Also delete any which were specified using the --hostname flag
#
my $hosts = $CONFIG{'hostname'};
foreach my $name (@$hosts)
foreach my $name (@ARGV, @hosts)
{
if ( !xenRunning($name) )
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $name;
unless ( xenRunning($name, \%PER_HOST_CONFIG) )
{
deleteXenImage($name);
}
@@ -251,81 +253,6 @@ exit 0;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
@@ -340,20 +267,24 @@ sub parseCommandLineArguments
my $HELP = 0;
my $MANUAL = 0;
my $VERSION = 0;
$CONFIG{ 'dry-run' } = 0;
# Parse options.
#
GetOptions(
"dir=s", \$CONFIG{'dir'},
"lvm=s", \$CONFIG{'lvm'},
"evms=s", \$CONFIG{'evms'},
"hostname=s@", \$CONFIG{'hostname'},
"test", \$CONFIG{'test'},
"verbose", \$CONFIG{'verbose'},
GetOptions( "dir=s", \$CONFIG{ 'dir' },
"dry-run", \$CONFIG{ 'dry-run' },
"lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$CONFIG{ 'evms' },
"zpool=s", \$CONFIG{ 'zpool' },
"extension:s", \$CONFIG{ 'extension' },
"hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' },
"verbose", \$CONFIG{ 'verbose' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
);
);
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
@@ -361,14 +292,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.41 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-delete-image release $RELEASE - CVS: $REVISION\n";
print "xen-delete-image release $RELEASE\n";
exit;
}
@@ -390,19 +314,19 @@ 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' } or $CONFIG{ 'zpool' } ))
{
$CONFIG{'lvm'} = undef;
$CONFIG{'evms'} = undef;
print "Error: --test only works with --dir.\n";
exit 1;
}
#
# Make sure we got one and only one installation method.
#
my $count = 0;
foreach my $type (qw/dir lvm evms/)
foreach my $type (qw/dir lvm evms zpool/)
{
$count += 1 if defined( $CONFIG{$type} );
$count += 1 if defined( $CONFIG{ $type } );
}
#
@@ -411,43 +335,17 @@ sub checkArguments
#
if ( $count != 1 )
{
print "Please select one and only one of the installation methods:\n";
print "Please select one and only one of the installation methods to delete the DomU:\n";
print " --dir\n";
print " --evms\n";
print " --lvm\n";
exit;
print " --zpool\n";
exit 2;
}
}
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list $hostname 2>/dev/null |" )
or die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}
=begin doc
Delete the named image, and the corresponding configuration file
@@ -469,17 +367,17 @@ sub deleteXenImage
#
# Delete the Xen auto-start file if it exists.
#
if ( -e "/etc/xen/auto/$hostname.cfg" )
if ( -e "/etc/xen/auto/$hostname".$CONFIG{ 'extension' } )
{
push( @delete, "/etc/xen/auto/$hostname.cfg" );
push( @delete, "/etc/xen/auto/$hostname".$CONFIG{ 'extension' } );
}
#
# Delete the Xen configuration file if it exists.
#
if ( -e "/etc/xen/$hostname.cfg" )
if ( -e "/etc/xen/$hostname".$CONFIG{ 'extension' } )
{
push( @delete, "/etc/xen/$hostname.cfg" );
push( @delete, "/etc/xen/$hostname".$CONFIG{ 'extension' } );
}
#
@@ -489,8 +387,12 @@ sub deleteXenImage
{
if ( -e $file )
{
print "Deleting: $file\n";
unlink($file);
if ($CONFIG{ 'dry-run' }) {
print "Would delete: $file\n";
} else {
print "Deleting: $file\n";
unlink($file);
}
}
else
{
@@ -498,21 +400,26 @@ sub deleteXenImage
}
}
if ( defined( $CONFIG{'dir'} ) )
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $hostname;
if ( defined( $CONFIG{ 'dir' } ) )
{
my $prefix = $CONFIG{'dir'} . "/domains/";
my $prefix = $CONFIG{ 'dir' } . "/domains/";
#
# Now remove the directory.
#
if ( -d $prefix . $hostname )
{
print "Removing: " . $prefix . $hostname . "\n";
rmdir( $prefix . $hostname );
if ($CONFIG{ 'dry-run' }) {
print "Would delete: $prefix$hostname\n";
} else {
print "Removing: " . $prefix . $hostname . "\n";
rmtree( $prefix . $hostname );
}
}
}
elsif ( defined( $CONFIG{'lvm'} ) )
elsif ( defined( $CONFIG{ 'lvm' } ) )
{
#
@@ -524,18 +431,26 @@ sub deleteXenImage
if ( -e "/dev/$CONFIG{'lvm'}/$hostname-swap" )
{
print "Removing swap volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-swap --force");
if ($CONFIG{ 'dry-run' }) {
print "Would remove LVM swap volume /dev/$CONFIG{'lvm'}/$hostname-swap\n";
} else {
print "Removing swap volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-swap --force", \%PER_HOST_CONFIG);
}
}
if ( -e "/dev/$CONFIG{'lvm'}/$hostname-disk" )
{
print "Removing LVM disk volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-disk --force");
if ($CONFIG{ 'dry-run' }) {
print "Would remove LVM disk volume /dev/$CONFIG{'lvm'}/$hostname-disk\n";
} else {
print "Removing LVM disk volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-disk --force", \%PER_HOST_CONFIG);
}
}
}
elsif ( defined( $CONFIG{'evms'} ) )
elsif ( defined( $CONFIG{ 'evms' } ) )
{
#
@@ -547,16 +462,57 @@ sub deleteXenImage
if ( -e "/dev/evms/$hostname-swap" )
{
print "Removing EVMS swap volume\n";
runCommand("echo Delete : /dev/evms/$hostname-swap | evms");
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-swap | evms");
if ($CONFIG{ 'dry-run' }) {
print "Would remove EVMS swap volume: /dev/evms/$hostname-swap\n";
print "Would remove EVMS swap volume: $CONFIG{'evms'}/$hostname-swap\n";
} else {
print "Removing EVMS swap volume\n";
runCommand("echo Delete : /dev/evms/$hostname-swap | evms", \%PER_HOST_CONFIG);
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-swap | evms", \%PER_HOST_CONFIG);
}
}
if ( -e "/dev/evms/$hostname-disk" )
{
print "Removing EVMS disk volume\n";
runCommand("echo Delete : /dev/evms/$hostname-disk | evms");
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-disk | evms");
if ($CONFIG{ 'dry-run' }) {
print "Would remove EVMS disk volume: /dev/evms/$hostname-swap\n";
print "Would remove EVMS disk volume: $CONFIG{'evms'}/$hostname-swap\n";
} else {
print "Removing EVMS disk volume\n";
runCommand("echo Delete : /dev/evms/$hostname-disk | evms", \%PER_HOST_CONFIG);
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-disk | evms", \%PER_HOST_CONFIG);
}
}
}
elsif ( defined( $CONFIG{ 'zpool' } ) )
{
#
# ZFS volumes
#
#
# TODO: Check we're not mounted.
#
if ( -e "/dev/$CONFIG{'zpool'}/$hostname-swap" )
{
if ($CONFIG{ 'dry-run' }) {
print "Would remove ZFS swap volume /dev/$CONFIG{'zpool'}/$hostname-swap\n";
} else {
print "Removing swap volume\n";
runCommand("zfs destroy -R $CONFIG{'zpool'}/$hostname-swap", \%PER_HOST_CONFIG);
}
}
if ( -e "/dev/$CONFIG{'zpool'}/$hostname-disk" )
{
if ($CONFIG{ 'dry-run' }) {
print "Would remove ZFS disk volume /dev/$CONFIG{'zpool'}/$hostname-disk\n";
} else {
print "Removing ZFS disk volume\n";
runCommand("zfs destroy -R $CONFIG{'zpool'}/$hostname-disk", \%PER_HOST_CONFIG);
}
}
}
@@ -568,66 +524,3 @@ sub deleteXenImage
exit 127;
}
}
=begin doc
A utility method to run a system command. We will capture the return
value and exit if the command files.
When running verbosely we will also display any command output.
=end doc
=cut
sub runCommand
{
my ($cmd) = (@_);
#
# Header.
#
$CONFIG{'verbose'} && print "Executing : $cmd\n";
#
# Hide output unless running with --debug.
#
if ( $CONFIG{'verbose'} )
{
#
# Copy stderr to stdout, so we can see it.
#
$cmd .= " 2>&1";
}
else
{
$cmd .= " >/dev/null 2>/dev/null";
}
#
# Run it.
#
my $output = `$cmd`;
if ( $? != 0 )
{
print "Running command '$cmd' failed.\n";
print "Aborting\n";
exit;
}
#
# All done.
#
$CONFIG{'verbose'} && print "Output\n";
$CONFIG{'verbose'} && print "======\n";
$CONFIG{'verbose'} && print $output . "\n";
$CONFIG{'verbose'} && print "Finished : $cmd\n";
return ($output);
}

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.
@@ -8,6 +10,10 @@ xen-list-images - List all the created and configured Xen images.
xen-list-image [options]
Filename Options:
--extension Specify the file extension to use. An empty extension is equal
to any extension.
Help Options:
--help Show this scripts help information.
--manual Read this scripts manual.
@@ -16,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
@@ -48,28 +55,23 @@ 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
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -84,6 +86,7 @@ use English;
use File::Temp qw/ tempdir /;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -95,21 +98,22 @@ use Pod::Usage;
my %CONFIG;
#
# Default prefix
# Default values
#
$CONFIG{'prefix'} = "/etc/xen";
$CONFIG{ 'prefix' } = "/etc/xen";
$CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
#
# Read the global configuration file if it exists.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
#
@@ -131,7 +135,7 @@ my @instances = findXenInstances();
my $count = 0;
foreach my $instance (@instances)
{
if ($count) { print "\n"; }
if ($count) {print "\n";}
displayInstance($instance);
$count += 1;
@@ -145,83 +149,6 @@ exit;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( my $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
Parse the arguments specified upon the command line.
@@ -238,8 +165,11 @@ sub parseCommandLineArguments
# Parse options.
#
GetOptions( "test=s", \$CONFIG{'prefix'}, "help", \$HELP, "manual",
\$MANUAL, "version", \$VERSION );
GetOptions( "test=s", \$CONFIG{ 'prefix' },
"extension:s", \$CONFIG{ 'extension' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION );
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
@@ -247,13 +177,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.30 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-list-images release $RELEASE - CVS: $REVISION\n";
print "xen-list-images release $RELEASE\n";
exit;
}
}
@@ -273,9 +197,12 @@ sub findXenInstances
{
my @found;
foreach my $file ( sort( glob( $CONFIG{'prefix'} . "/*.cfg" ) ) )
foreach my $file ( sort( glob( $CONFIG{ 'prefix' } . "/*" . $CONFIG{ 'extension' } ) ) )
{
push @found, $file if ( -e $file );
push @found, $file if (
-f $file and
$file !~ m(~$|\.dpkg-[a-z]+$|\.sxp$|/xl\.conf$)
);
}
return (@found);
@@ -285,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
@@ -322,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;
}
@@ -337,9 +264,10 @@ 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,27 +72,23 @@ 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 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
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
@@ -104,6 +98,7 @@ use Env;
use Getopt::Long;
use Pod::Usage;
use Text::Template;
use Xen::Tools::Common;
@@ -116,14 +111,19 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
#
@@ -143,13 +143,14 @@ testArguments();
#
my $path = undef;
if ( $CONFIG{'dir'} )
if ( $CONFIG{ 'dir' } )
{
#
# Make sure we can find the disk
#
$path = $CONFIG{'dir'} . "/domains/" . $CONFIG{'hostname'} . "/disk.img";
$path =
$CONFIG{ 'dir' } . "/domains/" . $CONFIG{ 'hostname' } . "/disk.img";
if ( !-e $path )
{
print <<EOF;
@@ -187,7 +188,7 @@ EOF
#
# Allow panic
#
if ( !$CONFIG{'force'} )
if ( !$CONFIG{ 'force' } )
{
foreach my $i ( 1 .. 10 )
{
@@ -202,13 +203,13 @@ EOF
my $cmd = "dd if=/dev/zero bs=1M count=$CONFIG{'add'}k >> $path";
system($cmd );
}
elsif ( $CONFIG{'lvm'} )
elsif ( $CONFIG{ 'lvm' } )
{
#
# Make sure we can find the disk
#
$path = "/dev/" . $CONFIG{'lvm'} . "/" . $CONFIG{'hostname'} . "-disk";
$path = "/dev/" . $CONFIG{ 'lvm' } . "/" . $CONFIG{ 'hostname' } . "-disk";
if ( !-e $path )
{
print <<EOF;
@@ -246,7 +247,7 @@ EOF
#
# Allow panic
#
if ( !$CONFIG{'force'} )
if ( !$CONFIG{ 'force' } )
{
foreach my $i ( 1 .. 10 )
{
@@ -288,81 +289,6 @@ exit 0;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -389,16 +315,16 @@ sub parseCommandLineArguments
GetOptions(
# Misc. options
"add=s", \$CONFIG{'add'},
"dir=s", \$install{'dir'},
"lvm=s", \$install{'lvm'},
"hostname=s", \$CONFIG{'hostname'},
"force", \$CONFIG{'force'},
"add=s", \$CONFIG{ 'add' },
"dir=s", \$install{ 'dir' },
"lvm=s", \$install{ 'lvm' },
"hostname=s", \$CONFIG{ 'hostname' },
"force", \$CONFIG{ 'force' },
# Help options
"help", \$HELP,
"manual", \$MANUAL,
"verbose", \$CONFIG{'verbose'},
"verbose", \$CONFIG{ 'verbose' },
"version", \$VERSION
);
@@ -414,20 +340,20 @@ 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'} )
if ( $install{ 'lvm' } )
{
$CONFIG{'lvm'} = $install{'lvm'};
$CONFIG{'dir'} = undef;
delete $CONFIG{'dir'};
$CONFIG{ 'lvm' } = $install{ 'lvm' };
$CONFIG{ 'dir' } = undef;
delete $CONFIG{ 'dir' };
}
if ( $install{'dir'} )
if ( $install{ 'dir' } )
{
$CONFIG{'dir'} = $install{'dir'};
$CONFIG{'lvm'} = undef;
delete $CONFIG{'lvm'};
$CONFIG{ 'dir' } = $install{ 'dir' };
$CONFIG{ 'lvm' } = undef;
delete $CONFIG{ 'lvm' };
}
}
@@ -447,7 +373,7 @@ sub testArguments
#
# Make sure we received a hostname.
#
if ( !$CONFIG{'hostname'} )
if ( !$CONFIG{ 'hostname' } )
{
print <<EOF;
@@ -462,7 +388,7 @@ EOF
#
# Make sure we received a size.
#
if ( !$CONFIG{'add'} )
if ( !$CONFIG{ 'add' } )
{
print <<EOF;
@@ -478,7 +404,7 @@ EOF
#
# Make sure the guest isn't running
#
if ( xenRunning( $CONFIG{'hostname'} ) )
if ( xenRunning( $CONFIG{ 'hostname' }, \%CONFIG ) )
{
print "The guest $CONFIG{'hostname'} appears to be running!\n";
exit 1;
@@ -488,8 +414,10 @@ EOF
# We should either have LVM *or* directory - not neither or both.
#
my $options = 0;
$options += 1 if ( defined( $CONFIG{'lvm'} ) && length( $CONFIG{'lvm'} ) );
$options += 1 if ( defined( $CONFIG{'dir'} ) && length( $CONFIG{'dir'} ) );
$options += 1
if ( defined( $CONFIG{ 'lvm' } ) && length( $CONFIG{ 'lvm' } ) );
$options += 1
if ( defined( $CONFIG{ 'dir' } ) && length( $CONFIG{ 'dir' } ) );
#
# Report
@@ -508,40 +436,12 @@ EOF
#
# Convert from Gb -> Mb;
#
if ( $CONFIG{'add'} =~ /^([0-9.]+)Gb*$/i )
if ( $CONFIG{ 'add' } =~ /^([0-9.]+)Gb*$/i )
{
$CONFIG{'add'} = $1 * 1024;
$CONFIG{ 'add' } = $1 * 1024;
}
if ( $CONFIG{'add'} =~ /^([0-9.]+)Mb*$/i )
if ( $CONFIG{ 'add' } =~ /^([0-9.]+)Mb*$/i )
{
$CONFIG{'add'} = $1;
$CONFIG{ 'add' } = $1;
}
}
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list $hostname 2>/dev/null |" )
or die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}

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,22 +72,18 @@ Show the version number and exit.
xen-update-images --dir=/home/xen test.my.flat x11.my.flat
=cut
=head1 AUTHORS
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -105,8 +96,10 @@ The LICENSE file contains the full text of the license.
use strict;
use English;
use File::Temp qw/ tempdir /;
use File::Copy qw/ mv cp /;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -120,7 +113,13 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
#
@@ -128,7 +127,7 @@ my $RELEASE = '3.9';
#
if ( -e "/etc/xen-tools/xen-tools.conf" )
{
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
}
@@ -150,13 +149,13 @@ checkArguments();
#
if ( $EFFECTIVE_USER_ID != 0 )
{
print <<E_O_ROOT;
print <<EOROOT;
This script is not running with root privileges.
root privileges are required to successfully mount the disk image(s).
E_O_ROOT
EOROOT
exit;
}
@@ -168,7 +167,7 @@ E_O_ROOT
#
while ( my $name = shift )
{
if ( !xenRunning($name) )
if ( !xenRunning($name, \%CONFIG) )
{
updateXenImage($name);
}
@@ -210,11 +209,11 @@ sub updateXenImage
# If we're dealing with loopback images find the main one,
# and mount it.
#
if ( $CONFIG{'dir'} )
if ( $CONFIG{ 'dir' } )
{
# The loopback image.
$img = $CONFIG{'dir'} . "/domains/" . $name . "/disk.img";
$img = $CONFIG{ 'dir' } . "/domains/" . $name . "/disk.img";
if ( !-e $img )
{
@@ -224,11 +223,11 @@ sub updateXenImage
$mount_cmd = "mount -t auto -o loop $img $tmp";
}
elsif ( $CONFIG{'lvm'} )
elsif ( $CONFIG{ 'lvm' } )
{
# The LVM volume
$img = "/dev/" . $CONFIG{'lvm'} . "/$name-disk";
$img = "/dev/" . $CONFIG{ 'lvm' } . "/$name-disk";
# make sure it exists.
if ( !-e $img )
@@ -239,22 +238,27 @@ sub updateXenImage
$mount_cmd = "mount -t auto $img $tmp";
}
elsif ( $CONFIG{'evms'} )
elsif ( $CONFIG{ 'evms' } )
{
# The EVMS volume -- note, unlike LVM, you don't need the $CONFIG{'evms'}
# to see it and mount the volume. $CONFIG{'evms'} is only used for manipulating
# the underlying object. Still, I don't want to mess with the parse code and
# make it confusing - otherwise --evms takes an argument everywhere but here,
# which will confuse users. The better solution is to make it so that --evms can
# take a following container, but doesn't require it. For the moment, it is
# better to leave it as it is, take a container, and then ignore it.
# The EVMS volume -- note, unlike LVM, you don't need the
# $CONFIG{'evms'} to see it and mount the
# volume. $CONFIG{'evms'} is only used for manipulating the
# underlying object. Still, I don't want to mess with the
# parse code and make it confusing - otherwise --evms takes an
# argument everywhere but here, which will confuse users. The
# better solution is to make it so that --evms can take a
# following container, but doesn't require it. For the
# moment, it is better to leave it as it is, take a container,
# and then ignore it.
# The best way to do it is to just read it out of the configuration file,
# tell the user what you got and where you got it from, and not bother the user
# with picking --dir or --lvm or --evms at all, but infer it from the config
# file's disk = parameter. xen-delete-image might work the same way, but
# it could be *slightly* more dangerous in the context of deleting.
# The best way to do it is to just read it out of the
# configuration file, tell the user what you got and where you
# got it from, and not bother the user with picking --dir or
# --lvm or --evms at all, but infer it from the config file's
# disk = parameter. xen-delete-image might work the same way,
# but it could be *slightly* more dangerous in the context of
# deleting.
$img = "/dev/evms/$name-disk";
# make sure it exists.
@@ -279,9 +283,14 @@ sub updateXenImage
#
# Make sure this is a Debian image.
#
if ( ( -e $tmp . "/usr/bin/apt-get" )
&& ( -x $tmp . "/usr/bin/apt-get" ) )
if ( ( -e $tmp . "/usr/bin/apt-get" ) &&
( -x $tmp . "/usr/bin/apt-get" ) )
{
#
# Copy dom0's resolv.conf to domU
#
mv("$tmp/etc/resolv.conf", "$tmp/etc/resolv.conf.old") if -f "$tmp/etc/resolv.conf";
cp("/etc/resolv.conf", "$tmp/etc/resolv.conf");
#
# Now run the update command.
@@ -293,8 +302,17 @@ 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"
);
#
# Restore domU's resolv.conf if needed
#
if (-f "$tmp/etc/resolv.conf") {
mv("$tmp/etc/resolv.conf.old", "$tmp/etc/resolv.conf");
} else {
unlink "$tmp/etc/resolv.conf";
}
}
else
{
@@ -312,110 +330,6 @@ sub updateXenImage
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list 2>/dev/null |" )
or die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
Parse the arguments specified upon the command line.
@@ -432,24 +346,19 @@ sub parseCommandLineArguments
# Parse options.
#
GetOptions(
"dir=s", \$CONFIG{'dir'}, "lvm=s", \$CONFIG{'lvm'},
"evms=s", \$CONFIG{'evms'}, "help", \$HELP,
"manual", \$MANUAL, "version", \$VERSION
);
GetOptions( "dir=s", \$CONFIG{ 'dir' },
"lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$CONFIG{ 'evms' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION );
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
if ($VERSION)
{
my $REVISION = '$Revision: 1.29 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-update-image release $RELEASE - CVS: $REVISION\n";
print "xen-update-image release $RELEASE\n";
exit;
}
@@ -475,7 +384,7 @@ sub checkArguments
my $count = 0;
foreach my $type (qw/dir lvm evms/)
{
$count += 1 if defined( $CONFIG{$type} );
$count += 1 if defined( $CONFIG{ $type } );
}
#

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,21 +96,18 @@ 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
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -150,13 +141,14 @@ my @PARTITIONS = undef;
#
# Default options
#
$CONFIG{'template'} = '/etc/xen-tools/xm.tmpl';
$CONFIG{ 'template' } = '/etc/xen-tools/xm.tmpl';
$CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
@@ -175,9 +167,9 @@ checkArguments();
#
# If we've been given any administrators then set them up.
#
if ( $ENV{'admins'} )
if ( $ENV{ 'admins' } )
{
setupAdminUsers();
setupAdminUsers(\%CONFIG);
}
@@ -213,16 +205,15 @@ sub parseCommandLineArguments
#
# Parse options.
#
GetOptions(
"admins=s", \$ENV{'admins'},
"output=s", \$CONFIG{'output'},
"extension=s", \$CONFIG{'extension'},
"template=s", \$CONFIG{'template'},
"verbose", \$CONFIG{'verbose'},
GetOptions( "admins=s", \$ENV{ 'admins' },
"output=s", \$CONFIG{ 'output' },
"extension:s", \$CONFIG{ 'extension' },
"template=s", \$CONFIG{ 'template' },
"verbose", \$CONFIG{ 'verbose' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
);
);
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
@@ -230,13 +221,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.47 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-create-xen-config release $RELEASE - CVS: $REVISION\n";
print "xt-create-xen-config release $RELEASE\n";
exit;
}
}
@@ -257,7 +242,7 @@ sub checkArguments
#
# We require an output location.
#
if ( !defined( $CONFIG{'output'} ) )
if ( !defined( $CONFIG{ 'output' } ) )
{
print "The '--output' argument is mandatory\n";
exit 1;
@@ -266,10 +251,10 @@ sub checkArguments
#
# The output location should be a directory which exists.
#
if ( !-d $CONFIG{'output'} )
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;
}
@@ -277,12 +262,12 @@ sub checkArguments
#
# Make sure that any specified template file exists.
#
if ( defined( $CONFIG{'template'} ) )
if ( defined( $CONFIG{ 'template' } ) )
{
if ( !-e $CONFIG{'template'} )
if ( !-e $CONFIG{ 'template' } )
{
print
"The specified template file, $CONFIG{'template'} does not exist.\n";
"The specified template file, $CONFIG{'template'} does not exist.\n";
exit 1;
}
}
@@ -306,21 +291,18 @@ sub importPartitionsFromEnvironment
{
@PARTITIONS = ();
for ( my $i = 1 ; $i <= $ENV{'NUMPARTITIONS'} ; $i++ )
return unless exists $ENV{ 'NUMPARTITIONS' };
for ( my $i = 1 ; $i <= $ENV{ 'NUMPARTITIONS' } ; $i++ )
{
my @parts = split( /:/, $ENV{'PARTITION' . $i}, 7 );
push(
@PARTITIONS,
{
'name' => $parts[0],
'size' => $parts[1],
'type' => $parts[2],
'mountpoint' => $parts[3],
'options' => $parts[4],
'imagetype' => $parts[5],
'image' => $parts[6]
}
);
my @parts = split( /:/, $ENV{ 'PARTITION' . $i }, 7 );
push( @PARTITIONS,
{ 'name' => $parts[0],
'size' => $parts[1],
'type' => $parts[2],
'mountpoint' => $parts[3],
'options' => $parts[4],
'imagetype' => $parts[5],
'image' => $parts[6] } );
}
}
@@ -338,30 +320,34 @@ sub importPartitionsFromEnvironment
sub createXenConfig
{
#
# The output file we're going to process.
#
my $file = $CONFIG{'output'} . '/' . $ENV{'hostname'} . $ENV{'extension'};
my $file =
$CONFIG{ 'output' } . '/' . $ENV{ 'hostname' } . $CONFIG{ 'extension' };
#
# The template we're going to read from.
#
my $template = new Text::Template( TYPE => 'FILE',
SOURCE => $CONFIG{'template'} );
SOURCE => $CONFIG{ 'template' } );
#
# The device we're using.
#
my $device = 'sda';
if ( defined( $ENV{'ide'} ) )
my $device = 'xvda';
if ( defined( $ENV{ 'ide' } ) )
{
$device = 'hda';
}
elsif ( defined( $ENV{'disk_device'} ) )
elsif ( defined( $ENV{ 'scsi' } ) )
{
$device = $ENV{'disk_device'};
$device = 'sda';
}
elsif ( defined( $ENV{ 'disk_device' } ) )
{
$device = $ENV{ 'disk_device' };
# strip /dev/, if present.
if ( $device =~ /^(.*)\/(.*)$/ )
@@ -369,65 +355,77 @@ sub createXenConfig
$device = $2;
}
}
$ENV{'device'} = $device;
$ENV{ 'device' } = $device;
#
# The memory size: Convert Gb -> Mb.
#
if ( $ENV{'memory'} =~ /^(\d+)Gb*$/i )
if ( $ENV{ 'memory' } =~ /^(\d+)Gb?.*$/i )
{
$ENV{'memory'} = $1 * 1024;
$ENV{ 'memory' } = $1 * 1024;
}
#
# 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.
#
if ( $ENV{'lvm'} )
if ( $ENV{ 'lvm' } )
{
$ENV{'image_prefix'} = "phy:$ENV{'lvm'}/$ENV{'hostname'}-";
$ENV{'image_suffix'} = '';
$ENV{ 'image_prefix' } = "phy:$ENV{'lvm'}/$ENV{'hostname'}-";
$ENV{ 'image_suffix' } = '';
importPartitionsFromEnvironment();
}
elsif ( $ENV{'evms'} )
elsif ( $ENV{ 'evms' } )
{
$ENV{'image_prefix'} = "phy:/dev/evms/$ENV{'hostname'}-";
$ENV{'image_suffix'} = '';
$ENV{ 'image_prefix' } = "phy:/dev/evms/$ENV{'hostname'}-";
$ENV{ 'image_suffix' } = '';
importPartitionsFromEnvironment();
}
elsif ( $ENV{'image-dev'} )
elsif ( $ENV{ 'image_dev' } )
{
$ENV{'image_vbd'} = "phy:$ENV{'image-dev'}";
$ENV{ 'image_vbd' } = "phy:$ENV{'image_dev'}";
if ( $ENV{'swap-dev'} )
if ( $ENV{ 'swap_dev' } )
{
$ENV{'swap_vbd'} = "phy:$ENV{'swap-dev'}";
$ENV{ 'swap_vbd' } = "phy:$ENV{'swap_dev'}";
}
else
{
$ENV{'swap_vbd'} = undef;
$ENV{ 'swap_vbd' } = undef;
}
}
else
{
$ENV{'image_prefix'} = "file:$ENV{'dir'}/domains/$ENV{'hostname'}/";
$ENV{'image_suffix'} = '.img';
$ENV{ 'image_prefix' } = "file:$ENV{'dir'}/domains/$ENV{'hostname'}/";
$ENV{ 'image_suffix' } = '.img';
importPartitionsFromEnvironment();
}
#
# The xen-tools version.
#
$ENV{'xen_tools_version'} = $RELEASE;
$ENV{ 'xen_tools_version' } = $RELEASE;
#
@@ -438,9 +436,9 @@ sub createXenConfig
my %vars;
foreach my $key ( sort keys %ENV )
{
$vars{$key} = $ENV{$key};
$vars{ $key } = $ENV{ $key };
}
$vars{'PARTITIONS'} = \@PARTITIONS;
$vars{ 'PARTITIONS' } = \@PARTITIONS;
#
# Now output the data.
@@ -470,80 +468,3 @@ sub createXenConfig
close(FILE);
}
=begin doc
This routine is designed to ensure that any users specified with
the --admins flag are setup as administrators of the new instance.
=end doc
=cut
sub setupAdminUsers
{
#
# If we're not root we can't modify users.
#
return if ( $EFFECTIVE_USER_ID != 0 );
#
# If we don't have a sudoers file then we'll also ignore this.
#
return if ( !-e "/etc/sudoers" );
#
# Find the path to the xen-login-shell
#
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" );
return if ( !defined($shell) );
#
# For each user make sure they exist, and setup the
# login shell for them.
#
foreach my $user ( split( /,/, $ENV{'admins'} ) )
{
# Strip leading and trailing whitespace.
$user =~ s/^\s+//;
$user =~ s/\s+$//;
# Ignore root
next if ( $user =~ /^root$/i );
# Does the user exist?
if ( getpwnam($user) )
{
# Change shell.
$CONFIG{'verbose'} && print "Changing shell for $user: $shell\n";
system( "chsh", "-s", $shell, $user );
}
else
{
# Add a new user.
$CONFIG{'verbose'} && print "Adding new user: $user\n";
system( "useradd", "-s", $shell, $user );
}
#
# Add the entry to /etc/sudoers.
#
open( SUDOERS, ">>", "/etc/sudoers" )
or warn "Failed to add user to sudoers file : $user - $!";
print SUDOERS
"$user ALL = NOPASSWD: /usr/sbin/xm, /usr/bin/xen-create-image\n";
close(SUDOERS);
}
}

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
@@ -54,24 +51,30 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
the --location option.
For the distribution named 'foo' the scripts will be loaded and
executed from '/usr/lib/xen-tools/foo.d'. Each executable will
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 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -97,7 +100,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
@@ -144,14 +147,13 @@ sub parseCommandLineArguments
#
# Parse options.
#
GetOptions(
"location=s", \$CONFIG{'location'},
"dist=s", \$CONFIG{'dist'},
"verbose", \$CONFIG{'verbose'},
GetOptions( "location=s", \$CONFIG{ 'location' },
"dist=s", \$CONFIG{ 'dist' },
"verbose", \$CONFIG{ 'verbose' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
);
);
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
@@ -159,13 +161,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.33 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-customize-image release $RELEASE - CVS: $REVISION\n";
print "xt-customize-image release $RELEASE\n";
exit;
}
}
@@ -186,7 +182,7 @@ sub checkArguments
#
# We require a location.
#
if ( !defined( $CONFIG{'location'} ) )
if ( !defined( $CONFIG{ 'location' } ) )
{
print "The '--location' argument is mandatory\n";
exit 1;
@@ -196,7 +192,7 @@ sub checkArguments
#
# Test that the location we've been given exists
#
if ( !-d $CONFIG{'location'} )
if ( !-d $CONFIG{ 'location' } )
{
print "The installation directory we've been given doesn't exist\n";
print "We tried to use : $CONFIG{'location'}\n";
@@ -207,7 +203,7 @@ sub checkArguments
#
# We require a distribution name.
#
if ( !defined( $CONFIG{'dist'} ) )
if ( !defined( $CONFIG{ 'dist' } ) )
{
print "The '--dist' argument is mandatory\n";
exit 1;
@@ -221,21 +217,21 @@ sub checkArguments
# If there are no scripts then we clearly cannot
# customise it!
#
my $dir = "/usr/lib/xen-tools/" . $CONFIG{'dist'} . ".d";
my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir )
{
print <<E_OR;
print <<EOR;
We're trying to configure an installation of $CONFIG{'dist'} in
We\'re trying to configure an installation of $CONFIG{'dist'} in
$CONFIG{'location'} - but there is no hook directory for us to use.
This means we don't know how to configure this installation.
This means we don\'t know how to configure this installation.
We'd expect the hook directory to be : $dir
We\'d expect the hook directory to be : $dir
Aborting.
E_OR
EOR
exit 1;
}
@@ -263,12 +259,13 @@ sub runDistributionHooks
#
# Hook directory.
#
my $hooks = "/usr/lib/xen-tools/" . $CONFIG{'dist'} . ".d/";
my $hooks = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
my $hooks_local = "/etc/xen-tools/hooks.d/";
#
# Installation prefix
#
my $prefix = $CONFIG{'location'};
my $prefix = $CONFIG{ 'location' };
#
# If we're running verbosely then setup the client environment
@@ -277,9 +274,9 @@ sub runDistributionHooks
# This is useful in case this script is called outwith the usual
# xen-create-image framework.
#
if ( $CONFIG{'verbose'} )
if ( $CONFIG{ 'verbose' } )
{
$ENV{'verbose'} = 1;
$ENV{ 'verbose' } = 1;
}
#
@@ -308,27 +305,45 @@ 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
# depending on whether we're running verbosely or not.
#
if ( $CONFIG{'verbose'} )
if ( $CONFIG{ 'verbose' } )
{
print "Running hook $name ['$cmd']\n";
print "--\n";
system($cmd );
my $rc = system($cmd);
if ($rc != 0) {
print "hook $name failed: $?\n";
exit 1;
}
print "--\n";
print "Done\n\n";
}
else
{
print "Running hook $name\n";
system($cmd );
my $rc = system($cmd);
if ($rc != 0) {
print "hook $name failed: $?\n";
exit 1;
}
print "hook $name: done.\n";
}
}

188
bin/xt-guess-suite-and-mirror Executable file
View File

@@ -0,0 +1,188 @@
#!/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.
=head1 SYNOPSIS
--suite Show suite
--mirror Show mirror
Shows both if no parameter is given.
Help Options:
--help Show the help information for this script.
--manual Show the manual for this script.
--version Show the version number and exit.
=head1 DESCRIPTION
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.
=head1 AUTHORS
Axel Beckert, https://axel.beckert.ch/
Stéphane Jourdois
=head1 LICENSE
Copyright (C) 2010-2012 by The Xen-Tools Development Team. All rights
reserved.
This module is free software; 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
###
### Configuration
###
# Fallback to Debian or Ubuntu in case we can't find anything
my $fallback = 'Debian';
# Which mirrors to use if everything else fails (deb.debian.org
# redirects to a working mirror nearby)
my %fallback_mirror = ( Debian => 'http://deb.debian.org/debian/',
Ubuntu => 'http://archive.ubuntu.com/ubuntu/' );
# Which suite to use if everything else fails. For Debian "stable"
# should be the best choice independent of the time. Ubuntu does not
# have aliases like stable or testing, so we take the nearest LTS
# release which is 10.04 at the time of writing.
my %fallback_suite = ( Debian => 'stable',
Ubuntu => 'bionic' );
# Where to look for the sources.list to parse
my @sources_list_files = ( '/etc/apt/sources.list',
glob('/etc/apt/sources.list.d/*.list'));
use File::Slurp;
use Getopt::Long;
use Pod::Usage;
use File::Which;
use strict;
#
# Release number.
#
my $RELEASE = '4.8';
# Init
my $mirror = '';
my $suite = '';
my $found = 0;
# Parsing command line options
my $want_mirror = 0;
my $want_suite = 0;
my $want_version = 0;
my $want_help = 0;
my $want_manual = 0;
my $result = GetOptions( 'mirror|m' => \$want_mirror,
'suite|s' => \$want_suite,
'version' => \$want_version,
'manual' => \$want_manual,
'help' => \$want_help );
if ($want_help) {
pod2usage(0);
}
if ($want_manual) {
pod2usage( -verbose => 2 );
}
all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
if (-r $sources_list_file) {
# sources.list file exists, so it's something debianoid.
# read sources.list and split it into lines
my @sources_list = read_file($sources_list_file);
# Find the first line which is a Debian or Ubuntu mirror but not
# an updates, backports, volatile or security mirror.
foreach my $sources_list_entry (@sources_list) {
# Normalize line
chomp($sources_list_entry);
$sources_list_entry =~ s/^\s*(.*?)\s*$/$1/;
# Skip definite non-entries
next if $sources_list_entry =~ /^\s*($|#)/;
# Split up into fields
my @source_components = split(/\s+/, $sources_list_entry);
# Minimum number of components is 4
next if $#source_components < 3;
# Don't use deb-src entries.
next if $source_components[0] eq 'deb-src';
# Skip updates, backports, volatile or security mirror.
next if $source_components[2] !~ /^[a-z]+$/;
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
# Seems a typical mirror. Let's use that one
$mirror = $source_components[1];
$suite = $source_components[2];
$found = 1;
last all_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');
if (!$found and defined($lsb_release) and -x $lsb_release) {
my $vendor = `$lsb_release -s -i`;
if ($vendor eq 'Debian' or $vendor eq 'Ubuntu') {
$suite = `$lsb_release -s -c`;
chomp($suite);
unless ($suite) {
$suite = $fallback_suite{$vendor};
warn "Dom0 seems to be $vendor, but couldn't determine suite. Falling back to $suite.\n";
}
$mirror = $fallback_mirror{$vendor};
$found = 1;
}
}
if ($found) {
unless ($want_help || $want_version || $want_suite || $want_mirror) {
print "$mirror $suite\n";
} else {
if ($want_mirror) {
print "$mirror";
}
if ($want_suite) {
print "$suite";
}
print "\n";
}
} else {
$suite = $fallback_suite{$fallback};
$mirror = $fallback_mirror{$fallback};
}

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]
@@ -27,16 +27,19 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
--config Read the specified config file in addition to the global
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.
--install-source Specify the installation source to use.
--install-method Specify the installation method to use.
--install-source Specify the installation source to use.
--debootstrap-cmd Specify which debootstrap command to
use. Defaults to debootstrap if both, debootstrap
and cdebootstrap are installed.
All other options from xen-create-image will be passed as environmental
variables.
=cut
=head1 NOTES
@@ -46,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
@@ -74,21 +75,19 @@ Untar a .tar file into the new installation location. This tarfile is assumed t
=back
=cut
=head1 AUTHORS
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
=cut
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Dmitry Nedospasov, http://www.nedos.net/
Stéphane Jourdois
=head1 LICENSE
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -103,6 +102,7 @@ use Env;
use File::Copy;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -113,7 +113,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '3.9';
my $RELEASE = '4.8';
#
@@ -127,41 +127,37 @@ my $RELEASE = '3.9';
# needDirectory Defined if we need an install-source directory specified.
#
#
my $debootstrap_cmd;
my %dispatch = (
"copy" => {
sub => \&do_copy,
needBinary => "/bin/cp",
needDirectory => 1,
},
"debootstrap" => {
sub => \&do_debootstrap,
needBinary => "/usr/sbin/debootstrap",
},
"image-server" => {
sub => \&do_image_server,
needURL => 1,
},
"rinse" => {
sub => \&do_rinse,
needBinary => "/usr/bin/rinse",
},
"rpmstrap" => {
sub => \&do_rpmstrap,
needBinary => "/usr/bin/rpmstrap",
},
"tar" => {
sub => \&do_tar,
needBinary => "/bin/tar",
needFile => 1,
}
);
"copy" => { sub => \&do_copy,
needBinary => "/bin/cp",
needDirectory => 1,
},
"debootstrap" => { sub => \&do_debootstrap,
needBinary => ["/usr/sbin/debootstrap", "/usr/bin/cdebootstrap", "/usr/bin/cdebootstrap-static"],
var => \$debootstrap_cmd,
},
"cdebootstrap" => { sub => \&do_debootstrap,
needBinary => ["/usr/sbin/cdebootstrap", "/usr/bin/cdebootstrap-static"],
var => \$debootstrap_cmd,
},
"rinse" => { sub => \&do_rinse,
needBinary => "/usr/sbin/rinse",
},
"rpmstrap" => { sub => \&do_rpmstrap,
needBinary => "/usr/bin/rpmstrap",
},
"tar" => { sub => \&do_tar,
needBinary => "/bin/tar",
needFile => 1,
} );
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
#
@@ -173,9 +169,9 @@ parseCommandLineArguments();
#
# If we received a configuration file then read it.
#
if ( $CONFIG{'config'} )
if ( $CONFIG{ 'config' } )
{
my $path = $CONFIG{'config'};
my $path = $CONFIG{ 'config' };
# If not fully-qualified then read from /etc/xen-tools.
if ( $path !~ /^[\/]/ )
@@ -184,7 +180,7 @@ if ( $CONFIG{'config'} )
}
# Read the file, if it exists.
readConfigurationFile($path) if ( -e $path );
readConfigurationFile($path, \%CONFIG) if ( -e $path );
}
@@ -197,14 +193,14 @@ checkArguments();
#
# Now lookup our installation type and dispatch control to it.
#
if ( defined( $CONFIG{'install-method'} )
&& length( $CONFIG{'install-method'} ) )
if ( defined( $CONFIG{ 'install-method' } ) &&
length( $CONFIG{ 'install-method' } ) )
{
#
# Get the entry from the dispatch table.
#
my $installer = $dispatch{lc( $CONFIG{'install-method'} )};
my $installer = $dispatch{ lc( $CONFIG{ 'install-method' } ) };
if ( defined($installer) )
{
@@ -214,75 +210,79 @@ if ( defined( $CONFIG{'install-method'} )
#
# Do we need to test for a binary.
if ( ( $installer->{'needBinary'} )
&& ( !-x $installer->{'needBinary'} ) )
{
print
"The following required binary for the installation was not found\n";
print "\t" . $installer->{'needBinary'} . "\n";
exit 1;
if ( $installer->{ 'needBinary' } ) {
if ( 'ARRAY' eq ref $installer->{ 'needBinary' } ) {
unless (ref $installer->{ 'var' }) {
die "Assertion: If dispatch->->needBinary is an array ref, dispatch->->var must exist";
}
foreach my $binary (@{$installer->{ 'needBinary' }}) {
if (-x $binary) {
${$installer->{ 'var' }} = $binary;
last;
}
}
unless ( ${$installer->{ 'var' }} ) {
print
"One of the following binaries are required for the installation, but none was found\n";
print "\t" . join(', ', @{$installer->{ 'needBinary' }}) . "\n";
exit 1;
}
}
else
{
if ( !-x $installer->{ 'needBinary' } ) {
print
"The following required binary for the installation was not found\n";
print "\t" . $installer->{ 'needBinary' } . "\n";
exit 1;
}
}
}
# Do we need a directory specified as the installation source?
if ( ( $installer->{'needDirectory'} )
&& ( !$CONFIG{'install-source'} || !-d $CONFIG{'install-source'} ) )
if ( ( $installer->{ 'needDirectory' } ) &&
( !$CONFIG{ 'install-source' } || !-d $CONFIG{ 'install-source' } )
)
{
print "Please specify the source directory with --install-source\n";
if ( $CONFIG{'install-source'} )
if ( $CONFIG{ 'install-source' } )
{
print
"The specified directory $CONFIG{'install-source'} does not exist.\n";
"The specified directory $CONFIG{'install-source'} does not exist.\n";
}
exit 1;
}
# Do we need a file specified as the installation source?
if ( ( $installer->{'needFile'} )
&& ( !$CONFIG{'install-source'} || !-e $CONFIG{'install-source'} ) )
if ( ( $installer->{ 'needFile' } ) &&
( !$CONFIG{ 'install-source' } || !-e $CONFIG{ 'install-source' } )
)
{
print "Please specify the source file with --install-source\n";
if ( $CONFIG{'install-source'} )
if ( $CONFIG{ 'install-source' } )
{
print
"The specified file $CONFIG{'install-source'} does not exist.\n";
"The specified file $CONFIG{'install-source'} does not exist.\n";
}
exit 1;
}
# Do we need an URL specified as the installation source?
if (
( $installer->{'needURL'} )
&& ( !$CONFIG{'install-source'}
|| ( $CONFIG{'install-source'} !~ /^http/i ) )
)
{
print "Please specify the image server URL with --install-source\n";
exit 1;
}
#
# Now we can call the appropriate handler.
#
$installer->{'sub'}->();
$installer->{ 'sub' }->();
#
# Did the operation succeed?
#
# Test that we have some "standard" files present.
#
foreach my $file (qw( /bin/ls /bin/cp ))
{
if ( !-x $CONFIG{'location'} . $file )
{
print "The installation of the new system has failed.\n";
print "\n";
print "The system is missing the common file: $file\n";
exit 1;
}
}
checkForCommonFilesInChroot($CONFIG{ 'location' },
"installed system");
#
# All done.
@@ -303,87 +303,6 @@ else
=begin doc
Read the specified configuration file, and update our global configuration
hash with the values found in it.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{$key} = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -404,22 +323,26 @@ sub parseCommandLineArguments
GetOptions(
# Mandatory
"location=s", \$CONFIG{'location'},
"dist=s", \$CONFIG{'dist'},
"hostname=s", \$CONFIG{'hostname'},
"location=s", \$CONFIG{ 'location' },
"dist=s", \$CONFIG{ 'dist' },
"hostname=s", \$CONFIG{ 'hostname' },
# Installation method
"install-method=s", \$CONFIG{'install-method'},
"install-source=s", \$CONFIG{'install-source'},
"install-method=s", \$CONFIG{ 'install-method' },
"install-source=s", \$CONFIG{ 'install-source' },
"debootstrap-cmd=s", \$CONFIG{ 'debootstrap-cmd' },
# Misc
"arch=s", \$CONFIG{'arch'},
"cache=s", \$CONFIG{'cache'},
"config=s", \$CONFIG{'config'},
"mirror=s", \$CONFIG{'mirror'},
"arch=s", \$CONFIG{ 'arch' },
"cache=s", \$CONFIG{ 'cache' },
"cachedir=s", \$CONFIG{ 'cachedir' },
"config=s", \$CONFIG{ 'config' },
"mirror=s", \$CONFIG{ 'mirror' },
"keyring=s", \$CONFIG{ 'keyring' },
"apt_proxy=s", \$CONFIG{ 'apt_proxy' },
# Help.
"verbose", \$CONFIG{'verbose'},
"verbose", \$CONFIG{ 'verbose' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
@@ -431,13 +354,7 @@ sub parseCommandLineArguments
if ($VERSION)
{
my $REVISION = '$Revision: 1.65 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-install-image release $RELEASE - CVS: $REVISION\n";
print "xt-install-image release $RELEASE\n";
exit;
}
}
@@ -458,7 +375,7 @@ sub checkArguments
#
# We require a location.
#
if ( !defined( $CONFIG{'location'} ) )
if ( !defined( $CONFIG{ 'location' } ) )
{
print "The '--location' argument is mandatory\n";
exit 1;
@@ -468,7 +385,7 @@ sub checkArguments
#
# Test that the location we've been given exists
#
if ( !-d $CONFIG{'location'} )
if ( !-d $CONFIG{ 'location' } )
{
print "The installation directory we've been given doesn't exist\n";
print "We tried to use : $CONFIG{'location'}\n";
@@ -479,7 +396,7 @@ sub checkArguments
#
# We require a distribution name.
#
if ( !defined( $CONFIG{'dist'} ) )
if ( !defined( $CONFIG{ 'dist' } ) )
{
print "The '--dist' argument is mandatory\n";
exit 1;
@@ -493,21 +410,21 @@ sub checkArguments
# If there are no scripts then we clearly cannot
# customise it!
#
my $dir = "/usr/lib/xen-tools/" . $CONFIG{'dist'} . ".d";
my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir )
{
print <<E_OR;
print <<EOR;
We're trying to configure an installation of $CONFIG{'dist'} in
We are trying to configure an installation of $CONFIG{'dist'} in
$CONFIG{'location'} - but there is no hook directory for us to use.
This means we won't know how to configure this installation.
This means we would not know how to configure this installation.
We'd expect the hook directory to be : $dir
We would expect the hook directory to be $dir.
Aborting.
E_OR
EOR
exit 1;
}
@@ -516,12 +433,12 @@ E_OR
# Test that we received a valid installation type.
#
my $valid = 0;
if ( defined( $CONFIG{'install-method'} ) )
if ( defined( $CONFIG{ 'install-method' } ) )
{
foreach my $recognised ( keys %dispatch )
{
$valid = 1
if ( lc( $CONFIG{'install-method'} ) eq lc($recognised) );
if ( lc( $CONFIG{ 'install-method' } ) eq lc($recognised) );
}
}
else
@@ -551,47 +468,24 @@ EOF
=begin doc
A utility method to run a system command. We will capture the return
value and exit if the command fails.
When running verbosely we will also display any command output.
Check if there are some common files in some chroot
=end doc
=cut
sub runCommand
{
my ($cmd) = (@_);
#
# Command start.
#
$CONFIG{'verbose'} && print "Executing : $cmd\n";
#
# Copy stderr to stdout, so we can see it, and make sure we log it.
#
$cmd .= " 2>&1 | tee --append /var/log/xen-tools/$CONFIG{'hostname'}.log";
#
# Run it.
#
my $output = `$cmd`;
if ( $? != 0 )
sub checkForCommonFilesInChroot {
my ($chroot, $what) = @_;
foreach my $file (qw( /bin/ls /bin/cp ))
{
print "Running command '$cmd' failed.\n";
print "Aborting\n";
exit;
if ( !-x $chroot.$file )
{
print STDERR <<EOT;
WARNING ($0): The $what at $chroot doesn\'t seem to be a full system.
WARNING ($0): The $what is missing the common file: $file.
EOT
}
}
#
# Command finished.
#
$CONFIG{'verbose'} && print "Finished : $cmd\n";
return ($output);
}
@@ -656,10 +550,16 @@ sub copyDebFiles
sub do_copy
{
#
# Check if the copy source has at least some "standard" files present.
#
checkForCommonFilesInChroot($CONFIG{ 'install-source' },
"installation source");
#
# Find the copy command to run from the configuration file.
#
my $cmd = $CONFIG{'copy-cmd'};
my $cmd = $CONFIG{ 'copy-cmd' };
if ( !defined($cmd) )
{
print "Falling back to default copy command\n";
@@ -675,7 +575,7 @@ sub do_copy
#
# Run the copy command.
#
runCommand($cmd);
runCommand($cmd, \%CONFIG);
}
@@ -695,44 +595,64 @@ sub do_debootstrap
# The command is a little configurable - mostly to allow you
# to use cdebootstrap.
#
my $cmd = $CONFIG{'debootstrap-cmd'};
if ( !defined($cmd) )
{
print "Falling back to default debootstrap command\n";
$cmd = '/usr/sbin/debootstrap';
}
my $cmd = $CONFIG{ 'debootstrap-cmd' } || $debootstrap_cmd;
print "Using $cmd as debootstrap command\n";
my $cachedir = $CONFIG{ 'cachedir' };
#
# Cache from host -> new installation if we've got caching
# enabled.
#
if ( $CONFIG{'cache'} eq "yes" )
if ( $CONFIG{ 'cache' } eq "yes" )
{
print "\nCopying files from host to image.\n";
runCommand("mkdir -p $CONFIG{'location'}/var/cache/apt/archives");
copyDebFiles( "/var/cache/apt/archives",
unless( -d $cachedir ) {
my $xtcache = '/var/cache/xen-tools/archives/';
print("$cachedir not found, defaulting to $xtcache\n");
unless ( -d $xtcache ) {
system "mkdir -p $xtcache";
}
$cachedir = $xtcache;
}
runCommand("mkdir -p $CONFIG{'location'}/var/cache/apt/archives", \%CONFIG);
copyDebFiles( "$cachedir",
"$CONFIG{'location'}/var/cache/apt/archives" );
print("Done\n");
}
#
# Propogate --verbose appropriately.
# Propagate --verbose appropriately.
#
my $EXTRA = '';
if ( $CONFIG{'verbose'} )
if ( $CONFIG{ 'verbose' } )
{
$EXTRA = ' --verbose';
}
#
# Propogate the --arch argument
# Propagate the --arch argument
#
if ( $CONFIG{'arch'} )
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
#
if ( $CONFIG{ 'apt_proxy' } )
{
print("Using apt_proxy: $CONFIG{'apt_proxy'}\n");
$ENV{'http_proxy'} = $CONFIG{'apt_proxy'};
}
#
# This is the command we'll run
@@ -743,18 +663,18 @@ sub do_debootstrap
#
# Run the command.
#
runCommand($command);
runCommand($command, \%CONFIG);
#
# Cache from the new installation -> the host if we've got caching
# enabled.
#
if ( $CONFIG{'cache'} eq "yes" )
if ( $CONFIG{ 'cache' } eq "yes" )
{
print "\nCopying files from new installation to host.\n";
copyDebFiles( "$CONFIG{'location'}/var/cache/apt/archives",
"/var/cache/apt/archives" );
"$cachedir" );
print("Done\n");
}
@@ -765,165 +685,7 @@ sub do_debootstrap
=begin doc
Install a system using the image-server.
Note: NON-Advertised ....
=end doc
=cut
sub do_image_server
{
#
# Load the modules we require.
#
my $test = 'use LWP::UserAgent; use CGI;';
#
# Test loading the module, if it fails then
# we must abort. We don't want to insist the module
# is installed since that adds to the dependencies
# which users will not require for the typical installation
# method(s).
#
eval($test);
if ($@)
{
die "The module LDP::UserAgent wasn't found...\n";
}
#
# The number of attempts to request the image from our
# image server, and the time to sleep between them.
#
my $attempts = 30;
my $sleep = 30;
#
# Build up the request we're going to send.
#
my $request = $CONFIG{'install-source'} . "/create.cgi?submit=1";
#
# Some parameters are hard-wired.
#
$request .= "&arch=amd64";
$request .= "&root_device=/dev/sda";
$request .= "&ip1=" . $ENV{'ip1'};
$request .= "&dist=" . CGI::escapeHTML( $CONFIG{'dist'} );
$request .= "&hostname=" . CGI::escapeHTML( $CONFIG{'hostname'} );
#
# We only care about some keys
#
foreach my $k (qw/ dhcp broadcast gateway netmask /)
{
# Skip values which aren't defined.
next unless defined $ENV{$k};
# CGI encode.
my $val = CGI::escapeHTML( $ENV{$k} );
# Add on to the request
$request .= "&$k=$val";
}
#
# Create a new user agent.
#
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
#
# Do the creation step
#
my $response = $ua->get($request);
if ( $response->is_success )
{
my $content = $response->content;
if ( $content =~ /fetch.cgi\?session=([^"]+)"/ )
{
my $session = $1;
my $new = $CONFIG{'install-source'};
$new .= "/fetch.cgi?session=$session";
my $attempt = 1;
# Make sure we don't wait indefinitely.
while ( $attempt < $attempts )
{
$CONFIG{'verbose'} && print "Request: [$attempt/$attempts]\n";
#
# Make a request to see if our tar file is ready yet.
#
$response = $ua->head($new);
if ( $response->is_success )
{
#
# Get the headers
#
my $header = $response->headers();
my $type = $header->{'content-type'};
#
# OK our file is correct.
#
if ( $type =~ /tar/ )
{
#
# Download it to the installation root.
#
$ua->get( $new,
":content_file" => $CONFIG{'location'}
. "/$session.tar" );
#
# If it worked .. then untar, remove, and return.
#
system(
"cd $CONFIG{'location'} && tar --numeric-owner -xf $session.tar && rm -f $CONFIG{'location'}/$session.tar"
);
return 1;
}
}
sleep($sleep);
$attempt += 1;
}
print("ERROR: Timeout waiting for image to be ready.");
return 0;
}
else
{
print(
"ERROR: Failed to find session. Received this:\n$content\n");
return 0;
}
}
else
{
print( "ERROR: Submitting the image create request failed:\n"
. $response->status_line );
return 0;
}
}
=begin doc
Install a new distribution of GNU/Linux using the rpmstrap tool.
Install a new distribution of GNU/Linux using the rinse tool.
=end doc
@@ -939,23 +701,40 @@ sub do_rinse
"rinse --distribution=$CONFIG{'dist'} --directory=$CONFIG{'location'}";
#
# Propogate the --arch argument
# Propagate the --arch argument
#
if ( $CONFIG{'arch'} )
if ( $CONFIG{ 'arch' } )
{
$command .= " --arch $CONFIG{'arch'}";
}
else
{
my $uname_machine = `uname -m`;
chomp($uname_machine);
if ($uname_machine eq 'x86_64')
{
$command .= " --arch amd64";
}
elsif ($uname_machine =~ /^i[3-6]86$/) {
$command .= " --arch i386";
}
else
{
die "Local architecture ($uname_machine) not supported by rinse.\n".
"Please choose a supported installation architecture (i386 or amd64) explicitly."
}
}
#
# Propogate the verbosity setting.
# Propagate the verbosity setting.
#
if ( $CONFIG{'verbose'} )
if ( $CONFIG{ 'verbose' } )
{
$command .= " --verbose";
}
runCommand($command);
runCommand($command, \%CONFIG);
}
@@ -972,18 +751,18 @@ sub do_rpmstrap
{
#
# Propogate the verbosity setting.
# Propagate the verbosity setting.
#
my $EXTRA = '';
if ( $CONFIG{'verbose'} )
if ( $CONFIG{ 'verbose' } )
{
$EXTRA .= " --verbose";
}
#
# Propogate any arch setting we might have.
# Propagate any arch setting we might have.
#
if ( $CONFIG{'arch'} )
if ( $CONFIG{ 'arch' } )
{
$EXTRA .= " --arch $CONFIG{'arch'}";
}
@@ -992,13 +771,13 @@ sub do_rpmstrap
# Setup mirror if present.
#
my $mirror = "";
$mirror = $CONFIG{'mirror'} if ( $CONFIG{'mirror'} );
$mirror = $CONFIG{ 'mirror' } if ( $CONFIG{ 'mirror' } );
#
# The command we're going to run.
#
my $command = "rpmstrap $EXTRA $CONFIG{'dist'} $CONFIG{'location'} $mirror";
runCommand($command);
runCommand($command, \%CONFIG);
}
@@ -1017,7 +796,7 @@ sub do_tar
#
# Find the tar command to run from the configuration file.
#
my $cmd = $CONFIG{'tar-cmd'};
my $cmd = $CONFIG{ 'tar-cmd' };
if ( !defined($cmd) )
{
print "Falling back to default tar command\n";
@@ -1032,5 +811,5 @@ sub do_tar
#
# Run a command to copy an installed system into the new root.
#
runCommand("cd $CONFIG{'location'} && $cmd");
runCommand("cd $CONFIG{'location'} && $cmd", \%CONFIG);
}

56
debian/NEWS vendored Normal file
View File

@@ -0,0 +1,56 @@
xen-tools (4.8-1) unstable; urgency=medium
For security reasons (avoid risk to circumvent ASLR), recent
kernels have disabled the vsyscall mapping. Unfortunately older
distributions don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed
vsyscall address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
"vsyscall=emulate" to the kernel commandline, e.g. by adding it to
GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then running
"update-grub" afterwards and finally reboot.
-- Axel Beckert <abe@debian.org> Thu, 07 Feb 2019 17:40:03 +0100
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
("_") before being exported. May affect some hook or role scripts.
* /usr/lib/xen-tools/ has been moved to /usr/share/xen-tools/ to
properly adhere to FHS. In case you had local scripts added to
/usr/lib/xen-tools/, please move them to /usr/share/xen-tools/, too
and then remove /usr/lib/xen-tools/ and its left-over subdirectories
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, 23 Aug 2013 19:01:16 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low
By default, xen-create-image now generates a random root password and
displays it as plain text at the end of the DomU generation process.
Use --genpass=0 and --passwd=1 to interactively set a root password
without the password being displayed.
-- Axel Beckert <abe@debian.org> Tue, 03 Aug 2010 16:14:42 +0200
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 running "update-initramfs -u"
afterwards may help.
If the Dom0 is a Debian or Ubuntu, the distribution and suite for
DomUs defaults to the distribution and suite the Dom0 is
running. Otherwise Debian DomUs get "stable" and Ubuntu "lucid" by
default.
Default Debian/Ubuntu mirror is now determined by looking into
/etc/apt/sources.list (if it exists) and taking the first entry with
path ending in /debian/ there.
-- Axel Beckert <abe@debian.org> Sun, 30 May 2010 22:36:16 +0200

21
debian/README.source vendored Normal file
View File

@@ -0,0 +1,21 @@
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://github.com/xen-tools/xen-tools.git
$ cd xen-tools
If you just want to build the binary package, run
$ make changelog
$ dpkg-buildpackage -uc -us -b
If you want to build source and binary packages, e.g. for an upload to
Debian or Ubuntu:
$ make orig-tar-gz
$ dpkg-buildpackage
-- Axel Beckert <abe@debian.org>, Tue, 14 Jul 2015 18:35:38 +0200

623
debian/changelog vendored
View File

@@ -1,3 +1,621 @@
xen-tools (4.8-1) unstable; urgency=medium
* New upstream release.
[ Marc Bigler ]
+ Add support for ZFS volumes. (GH #50)
[ Yuri Sakhno ]
+ Eliminate progress reporting which is useless in logs. (GH #42)
[ Axel Beckert ]
+ Add preliminary support for future Debian 12 Bookworm release.
+ Add support for Ubuntu releases from 17.10 Artful to 19.04 Disco.
- Create hooks/artful with new 40-setup-networking-deb-netplan by
Arno Bakker and Peter. (Fixes xen-tools/xen-tools#51)
- Rename hooks/karmic/80-install-kernel to
hooks/common/80-install-kernel-ubu and add according symlinks.
+ Change all occurrences of httpredir.debian.org to deb.debian.org
except those for the debian-archive. The latter now point to
archive.debian.org directly.
+ Set Ubuntu fallback suite to the latest LTS, i.e. 18.04 Bionic.
+ Drop pygrub path detection from xm.tmpl, Xen prefers a path-less
bootloader='pygrub'.
+ Many improvements for the release-testing script.
+ Only run xen-toolstack helper script if both, xm and xl are
present. Avoids warning about deprecated helper script.
+ distributions.conf now supports arbitrary keyring files in
/usr/share/keyrings/. (Needed for some EoL Ubuntu releases.)
[ Nico Boehr ]
+ Add support for LVM thin provisioning.
[ Pietro Stäheli ]
+ Add support for option --randommac for really random MAC addresses
upon every xen-create-image invocation. (Closes: #855703)
[ Axel Beckert ]
* 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)
* Bump debhelper compatibility level to 10.
+ Update versioned debhelper build-dependency accordingly.
+ Only using dh compat level 10 allows one to still build the package
on Debian 9 Stretch without backports, on Ubuntu 18.04 LTS and on
Ubuntu 16.04 LTS with backports.
* Declare compliance with Debian Policy 4.3.0. (No changes needed.)
* Set "Rules-Requires-Root: no".
* Check $DEB_BUILD_OPTIONS and $DEB_BUILD_PROFILES in
override_dh_auto_test. Fixes according lintian warning.
* Use ubuntu-keyring instead of now transitional ubuntu-archive-keyring,
but keep the latter as alternative to allow one to install the
xen-tools package also on older Debian or Ubuntu releases.
* Suggest grub-xen-host despite the proper support for it is not
finished.
* Add a note about "vsyscall=emulate" and older Linux distributions to
debian/NEWS. Thanks to James Clarke and Jason Crain for the hint!
* Add a DEP-12 debian/upstream/metadata file.
[ Jelmer Vernooij ]
* Trim trailing whitespace from debian/changelog. (GH #54)
-- Axel Beckert <abe@debian.org> Sat, 09 Feb 2019 01:56:51 +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
and xt-guess-suite-and-mirror is not used.
- Fix symbolic link hooks/centos-6/15-setup-arch (Closes: #690299)
- Execute END block not on --version/--help/--manual (Closes: #684346)
- Move code for --boot feature to END block. Fixes missing SSH
fingerprint display if --boot was used. (Closes: #679183)
- Correctly handle aborts in END block. (Closes: #704882)
- Use local parameter instead of global variable in unMountImage.
- Also recognize "M" and "G" instead of "MB" and "GB" as size unit for
--memory. (Closes: #691320) Document the recognized units.
- Default DomUs to use the noop scheduler (Closes: #693131)
- Overwork TLS disabling on Debian and Ubuntu
- xen-list-images now also outputs the file name of the config file.
- xen-list-images and xen-delete-image now understand --extension.
- Fixes "--extension=" with empty parameter.
- Sarge amd64 case handle properly
- Remove CVS revisions from --version output
- 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 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
initrds also suitable for DomU usage. Trigger update-initramfs.
- By default install linux-image-virtual instead of linux-image-server
on Ubuntu Intrepid and newer (Hopefully closes: #640099, LP #839492)
- 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.
- hooks/common.sh: Rename installCentOS4Package to installRPMPackage.
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. (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.
- 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,
dh_installchangelogs finds it by itself if it exist. That way
building out of a freshly clone git repository does not fail due to
a missing upstream changelog.
- Use dh_auto_{install,clean}; use "$(MAKE)" instead of "make" where
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> Fri, 23 Aug 2013 19:00:03 +0200
xen-tools (4.3.1-1) unstable; urgency=low
* Remove t/modules.t in upstream's t/Makefile instead of debian/rules'
clean target.
* Run t/hook-tls.t only if distribution actually has
10-disable-tls. Fixes test suite failure on 32 bit architectures.
-- Axel Beckert <abe@debian.org> Sat, 30 Jun 2012 16:44:50 +0200
xen-tools (4.3-1) unstable; urgency=low
* New upstream release
- Remove most Mercurial traces
* Fixes FTBFS due to testsuite failures (Closes: #676681)
- Disable tests of not yet used Xen::Tools. Fixes FTBFS in test suite
due to not satisifed Moose dependency in Xen::Tools::Log.
- Added build-dependencies on libmoose-perl, git, and
libtest-pod-coverage-perl for t/perl-syntax.t, t/gitignore.t, and
t/pod-coverage.t.
- Skip t/hook-inittab.t if /etc/inittab is not present on the build
host. Fixes FTBFS on Ubuntu.
* Switch to source format to "3.0 (quilt)"
* Don't remove stamp files manually, dh_clean does that already
* Remove generated file t/modules.t in clean target to be able to build
twice in a row.
-- Axel Beckert <abe@debian.org> Tue, 26 Jun 2012 22:23:59 +0200
xen-tools (4.3~rc1-1) unstable; urgency=low
* New upstream release candidate
- Correctly checks and documents valid values for
disk_device. (Closes: #621499)
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
- Supports creating CentOS 6 DomUs (Closes: #578399; Thanks Johan
Schurer)
+ Recommend rinse >= 1.9.1-1
- Supports rinse 2.0
- Updated mirror list for discontinued releases of Debian and Ubuntu
- Workaround for missing unit parsing in xen-create-nfs (Closes:
#648814)
- Fix wildcard vs regexp in memory configuration parsing.
- Fix misbehaviour if --ip option is passed multiple times (Closes:
#652110; Thanks Brian Bennett and Alexander Mette!)
- Supports /etc/apt/sources.list.d/ (Closes: #650300)
- xt-guess-suite-and-mirror exits with non-zero if no proper mirror
could be extracted from /etc/apt/sources.list or
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
- Only attempts to generate the ssh host keys if not already present
(Closes: #607236; Thanks Vagrant Cascadian!)
- New option --apt_proxy (Closes: #610457; Thanks Alex Tomlins!)
- Always write down root partition as first physical device, otherwise
pygrub fails (Closes: #609673)
- No more expect at least one option to mkfs.* calls. Fixes btrfs
creation. (Closes: #609982)
- Fixes call to non-existent function logPrint (Closes: #673335)
- Also disable initctl in the chroot, not only start-stop-daemon
(LP: #997063; Thanks xstasi!)
- Massive code deduplication in hooks directory
- Use release blacklist for libc6-xen instead of whitelist in
hooks/debian.d/20-setup-apt
- Enforces umask 022 in 50-setup-hostname* (Hopefully closes: #619630)
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
* Use dh_auto_test for build time tests and add according
build-dependencies on devscripts and libfile-slurp-perl.
* No more suggest evms-cli -- it's no more available on any supported
Dom0 distribution. Thanks to Markus Waldeck for the hint.
* Add NEWS to debian/docs.
* Bump Standards-Version to 3.9.3 (no changes)
* Fix the following Lintian warnings:
- copyright-refers-to-symlink-license
- debian-rules-missing-recommended-target
* debian/copyright: Update copyright years
* Move xen-utils (for pygrub) from Suggests to Recommends as pygrub
becomes the necessary way to boot more and more often.
* Remove xen-shell from Recommends, nobody picked it up. (Closes:
#603708)
-- Axel Beckert <abe@debian.org> Fri, 08 Jun 2012 14:18:38 +0200
xen-tools (4.2.1-1) unstable; urgency=low
* New upstream release
- Fixes bashism in "editor" roles script. Thanks Raphaël Halimi for
the patch! (Closes: #605203)
- Fixes missing architecture check in Sarge amd64 special case. Thanks
to Guillaume Pernot! (Closes: #611397) Also changes default Sarge
amd64 mirror to http://archive.debian.org/debian-amd64/.
- Allows --ip=auto again (Closes: #611407)
- Unmounts /proc and /dev/pts of the freshly installed DomU just
before unmounting the disk image. (Closes: #588783)
-- Axel Beckert <abe@debian.org> Thu, 17 Mar 2011 01:00:47 +0100
xen-tools (4.2-1) unstable; urgency=low
* New upstream release
- Fixes several cases of broken or incomplete config files with
unexpected or seldom parameter combinations. (Closes: #484652)
- Updates examples in /etc/xen-tools.conf to better reflect current
state
- Allows usage of xvc* as serial console as used as default by older
Xen versions.
- Preliminary support for Ubuntu 11.04 (Natty) and Debian 7.0 (Wheezy)
(Closes: #597521)
- Switches default mirror for EoL'ed Ubuntu 8.10 (Intrepid) and Debian
4.0 (Etch) to the distributions' archives for old releases.
* Does no more try extract the upstream changelog during debian package
build. The commit which introduced this problem has been reverted.
Document more clearly in debian/README.source how to build the package
from a checked out copy of the git repository, especially that the
upstream changelog has to be generated first out of the VCS log.
(Closes: #595883)
* Update debian/copyright: Add Stéphane Jourdois to list of authors.
-- Axel Beckert <abe@debian.org> Tue, 05 Oct 2010 19:01:49 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low
[Axel Beckert]
* New upstream release candidate
- Uses GeoIP for Debian mirrors: Default Debian mirror is now
cdn.debian.net, see http://wiki.debian.org/DebianGeoMirror for
details.
- Uses the same 15-disable-hwclock hook for Debian as for Ubuntu DomUs
(Closes: #588880)
- Mounts not only /proc but also /dev/pts automatically before running
any customisation hooks (Closes: #588783)
- Uses apt-config to parse Dom0's apt.conf. (Closes: #560011)
- Fixes wrong loop module parameter syntax in warning. Thanks to
Daniel Baumann for spotting this. (Closes: #516902)
- With --verbose, the output of commands called by xen-tools
(e.g. debootstrap) is not only logged, but also printed to
STDOUT. (Closes: #513126)
- Adds btrfs support.
* Bump Standards-Version to 3.9.1 (no changes)
[Stéphane Jourdois]
* [debian/control] Suggest btrfs-tools
-- Axel Beckert <abe@debian.org> Sun, 15 Aug 2010 19:34:38 +0200
xen-tools (4.2~beta1-1) unstable; urgency=low
* New maintainer and upstream authors
* Reintroduction into Debian Unstable (Closes: #566714)
* New upstream beta version
- Needs dependency on libfile-slurp-perl
- Supports for more recent versions of Fedora, Ubuntu and Debian
(Closes: #499477)
- Supports pygrub. (Added "Suggests: xen-utils" to debian/control)
- Uses hvc0 and xvda devices by default
- Sets umask to 0077 before creating disk images (Closes: #548909)
- Makes sure, MAKEDEV is found in either /dev/ or /sbin/
(Closes: #502798, #515228)
- Changed rinse path to /usr/sbin/. (Closes: #511211)
- Doesn't delete configuration file if it already exists when
xen-create-image is run. (Closes: #520177)
- Doesn't write the FQDN into /etc/hostname (Closes: #492583)
- Dereferences pointers before hashing them to generate a MAC
address. (Closes: #547265)
- Calls pwconv and grpconv inside chroot when installing Fedora
(Closes: #499476)
- Fixed typo in /usr/lib/xen-tools/*.d/75-fixup-securetty
(Closes: #503339)
- Makes better decisions about when to enable Debian security updates
in the created DomU (LP: #309750)
- Installs dhclient for CentOS and Fedora if DHCP networking is
requested (LP: #241446)
- Fixes some bashisms (Closes: #530226)
* [^y] → [!y] (Thanks to Mathieu Parent!)
* kill -HUP → kill -s HUP (found by checkbashism)
* ${parm/?/pat[/str]} → echo | sed
* echo -e → printf
* read → read dummy
- xt-install-image now exits with return value 127 instead of 0 to
indicate errors on running the command given in --install-method.
(Closes: #534290)
- The debootstrap command now also can be configured on the
commandline with --debootstrap-cmd in xen-create-image and
xt-install-image (Enhances fix for #436480 which added the
debootstrap-cmd config file option)
- Checks for debootstrap and cdebootstrap, uses debootstrap if both
are installed (Changed "Depends: debootstrap" to "Depends:
debootstrap | cdebootstrap" in debian/control)
- Added new files TODO and KNOWN_BUGS to debian/docs.
* Removal of /etc/bash_completion.d/xm from the package since
bash-completion ships a more elaborate version of that file. (Closes:
#566683, #550590, LP: #538917, #484098)
* Downgrade reiserfsprogs and xfsprogs to Suggests. (Closes: #561618,
LP: #80233)
* Added evms-cli to Suggests. It has been removed from Debian before
Lenny, but it is necessary for some optional functionality of
xen-tools. And since some Debian derived distributions (e.g. Ubuntu
LTS and grml) still support it, it's included for the sake of
completeness and correctness.
* Added cfengine2 to Suggests. It is helpful to have it installed when
using the cfengine2 role.
* Bump Standards-Version to 3.8.4 (no changes necessary)
* Bump Debhelper Compatibility to 7
- Replace "dh_clean -k" by "dh_prep"
* Add Vcs-* headers pointing to new upstream and packaging repository
* Fix some Lintian warnings:
- [debian/control]: debhelper-but-no-misc-depends
- [debian/copyright]: copyright-without-copyright-notice
- [debian/source/format]: missing-debian-source-format
* Added a README.source explaining how to build xen-tools directly from
the Git repository.
* Overhauled package description
-- Axel Beckert <abe@debian.org> Sun, 30 May 2010 22:32:30 +0200
xen-tools (4.1-1) unstable; urgency=low
- New command line argument '--no-hosts' to avoid touching /etc/hosts
on dom0
- New command line argument '--pygrub' to setup a guest for pygrub use.
- Generated configuration file should work for --image-dev + --swap-dev
again.
- Always use /dev/pts for new images.
-- Steve Kemp <skx@debian.org> Sun, 23 Nov 2008 13:06:01 +0000
xen-tools (3.9-6) unstable; urgency=low
- Allow command line flags to be unset.
Thanks to Ruud Koolen for the patch.
(Closes: #484338)
-- Steve Kemp <skx@debian.org> Tue, 14 Oct 2008 22:00:22 +0000
xen-tools (3.9-5) unstable; urgency=medium
- Record the ARCH for RPM-based distros.
@@ -34,7 +652,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
@@ -168,7 +786,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)
@@ -516,4 +1134,3 @@ xen-tools (0.4-1) unstable; urgency=low
* Initial release (Closes: #344081)
-- Radu Spineanu <radu@debian.org> Tue, 20 Dec 2005 02:21:05 +0200

2
debian/compat vendored
View File

@@ -1 +1 @@
4
10

106
debian/control vendored
View File

@@ -1,18 +1,102 @@
Source: xen-tools
Section: utils
Priority: extra
Maintainer: Roland Stigge <stigge@antcom.de>
Uploaders: Radu Spineanu <radu@debian.org>, Steve Kemp <skx@debian.org>
Build-Depends: debhelper (>= 4.0.0), libtest-pod-perl, libtext-template-perl
Standards-Version: 3.8.0
Homepage: http://xen-tools.org/software/xen-tools
Priority: optional
Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 10~),
devscripts,
git,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
liblog-message-perl | perl (<< 5.17.0),
libterm-ui-perl | perl (<< 5.17.0),
libsort-versions-perl,
libtest-notabs-perl,
libtest-pod-coverage-perl,
libtest-pod-perl,
libtext-template-perl
Standards-Version: 4.3.0
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
Rules-Requires-Root: no
Package: xen-tools
Architecture: all
Depends: debootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, reiserfsprogs, xfsprogs, rinse, xen-shell, libexpect-perl
Description: Tools to manage Debian XEN virtual servers
This package contains tools to manage Debian based XEN virtual servers.
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,
${misc:Depends},
${perl:Depends}
Recommends: debian-archive-keyring,
e2fsprogs,
libexpect-perl,
lvm2,
rinse (>= 1.9.1-1),
ubuntu-keyring | ubuntu-archive-keyring,
xen-hypervisor,
xen-utils
Suggests: btrfs-progs | btrfs-tools,
cfengine2,
grub-xen-host,
reiserfsprogs,
xfsprogs
Description: Tools to manage Xen virtual servers
This package contains tools to manage Debian based Xen virtual servers.
.
Using the scripts you can easily create fully configured Xen guest
domains (domU) which can be listed, updated, or copied easily.
domains (DomU) which can be listed, updated, or copied easily.
.
xen-tools currently can install:
.
* Debian 3.1 Sarge (i386 only)
* Debian 4.0 Etch
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7 Wheezy
* Debian 8 Jessie
* Debian 9 Stretch
* Debian 10 Buster (under development)
* Debian 11 Bullseye (future release name)
* Debian 12 Bookworm (future release name)
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
* Ubuntu 7.04 Feisty Fawn
* Ubuntu 7.10 Gutsy Gibbon
* Ubuntu 8.04 Hardy Heron (LTS)
* Ubuntu 8.10 Intrepid Ibex
* Ubuntu 9.04 Jaunty Jackaplope
* Ubuntu 9.10 Karmic Koala
* Ubuntu 10.04 Lucid Lynx (LTS)
* Ubuntu 10.10 Maverick Meerkat
* Ubuntu 11.04 Natty Narwhal
* Ubuntu 11.10 Oneiric Ocelot
* Ubuntu 12.04 Precise Pangolin (LTS)
* 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
* Ubuntu 17.10 Artful Aardvark
* Ubuntu 18.04 Bionic Beaver (LTS)
* Ubuntu 18.10 Cosmic Cuttlefish
* Ubuntu 19.04 Disco Dingo (preliminary support, under development)
* CentOS 5
* CentOS 6

21
debian/copyright vendored
View File

@@ -1,9 +1,13 @@
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 Holder: Steve Kemp <steve@steve.org.uk>
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
Copyright 2010-2013: The Xen-Tools Development Team, currently consisting of:
Axel Beckert <abe@deuxchevaux.org>,
Dmitry Nedospasov <dmitry@nedos.net>, and
Stéphane Jourdois <sjourdois@gmail.com>
License:
@@ -19,6 +23,17 @@ Perl is distributed under licenses:
b) the "Artistic License" which comes with Perl.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in /usr/share/common-licenses/GPL' and
Public License can be found in /usr/share/common-licenses/GPL-1' and
the Artistic Licence in /usr/share/common-licenses/Artistic'.
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/lib/xen-tools
/usr/share/xen-tools

7
debian/docs vendored
View File

@@ -1,5 +1,4 @@
AUTHORS
README
SUPPORT
BUGS
TODO
README.markdown
SUPPORT.markdown
TODO.markdown

1
debian/examples vendored Normal file
View File

@@ -0,0 +1 @@
examples/*

3
debian/gbp.conf vendored Normal file
View File

@@ -0,0 +1,3 @@
[DEFAULT]
upstream-tag=release-%(version)s
debian-tag=debian-%(version)s

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~

11
debian/preinst vendored Normal file → Executable file
View File

@@ -23,5 +23,16 @@ if [ -d "/usr/lib/xen-tools/ubuntu.d" ]; then
rm -r /usr/lib/xen-tools/ubuntu.d
fi
#
# 4.1 -> 4.2
#
if [ -L "/usr/lib/xen-tools/intrepid.d" ]; then
rm /usr/lib/xen-tools/intrepid.d
fi
if [ -L "/usr/lib/xen-tools/karmic.d" ]; then
rm /usr/lib/xen-tools/karmic.d
fi
#DEBHELPER#
exit 0

57
debian/rules vendored
View File

@@ -2,54 +2,15 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@
configure: configure-stamp
configure-stamp:
dh_testdir
touch configure-stamp
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS) $(DEB_BUILD_PROFILES)))
$(MAKE) non-author-test
endif
override_dh_installchangelogs:
dh_installchangelogs NEWS.markdown
build: build-stamp
build-stamp: configure-stamp
dh_testdir
touch build-stamp
clean:
dh_testdir
dh_testroot
make clean
rm -f build-stamp configure-stamp
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
make manpages
make install prefix=`pwd`/debian/xen-tools
dh_installdirs
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-indep: build install
dh_testdir
dh_testroot
dh_install
dh_installexamples debian/examples/setup-kernel-initrd debian/examples/update-modules
dh_installchangelogs ChangeLog
dh_installdocs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
override_dh_auto_build:

1
debian/source/format vendored Normal file
View File

@@ -0,0 +1 @@
3.0 (quilt)

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

1
debian/triggers vendored Normal file
View File

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

12
debian/upstream/metadata vendored Normal file
View File

@@ -0,0 +1,12 @@
%YAML 1.1
---
# https://wiki.debian.org/UpstreamMetadata
Bug-Database: https://github.com/xen-tools/xen-tools/issues
Bug-Submit: https://github.com/xen-tools/xen-tools/issues/new
Changelog: https://github.com/xen-tools/xen-tools/blob/master/NEWS.markdown
Contact: mailto:xen-tools-discuss@xen-tools.org
Security-Contact: mailto:abe@debian.org
Name: Xen-Tools
Homepage: https://xen-tools.org/
Repository: https://github.com/xen-tools/xen-tools.git
Repository-Browse: https://github.com/xen-tools/xen-tools

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

@@ -0,0 +1,147 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBEpaZ7ABEADMyzD1duYFiMgQpGOBPUkeCoSYOLIVk9ry+fwIkyiyvVZYBWuh
PtEdb+NLOPj/zfUFcoshfhm9bdCTlId1rger34/gOBN9r9NbawfiaUuOhxVzasrX
/7sWSHDKQ+7WFS9SBt4EVRJJJDDjqyAlzbHgGtvOYBz6s052zLKnmadAzJGC/mll
Wx/xxzY1+lRuVNC9NPVmmKrIBgT4aymEvNezVWDnUkKo9flpuMk8wnESO3ccpK2H
JOp9l8C3PcQZAKzU9jPOmoXO3uqZG8xRoNLNIyrcNsftswylDlmC99mofpSpmLKi
+2+huujkdWubU5qQogC03OeKBqzsFxEYQYAkMcZg1lMebkbPZRGDXN2sWncarJkG
QLH2tKnjHas6L1SYmZkr44druSrlAI1d4gkNhE5Xr8BDnr4ipneWkYhBq7O2+0Ty
We071NDwANDhjHyIxG/3J/PSK2Y99PP6cifrIn8Ndu6DNa58uG0jFXjvsWLJQyqN
TIq/C0wMXne5/5KSo6uIG//hogTl9tP40qQ7xLj1eBb3jFiiDORyhbmB+tLveNge
9oYgf0qIbrTI3sfUNTgJN3IYgswaqtk83GWp0j9r6zkwuACVX1RS3UaqNMdoivS2
m1nZZd9O4CPYNmYTLcPNcnYQIjBrs1W6GtmEY0K6e0r0OMffaRhyI7+zfwARAQAB
tCJBeGVsIEJlY2tlcnQgPGFiZUBkZXV4Y2hldmF1eC5vcmc+iQI2BBMBCAAgBQJK
WmewAhsDBAsJCAcFFQoJCAsFFgIDAQACHgECF4AACgkQL/nNWWEmFrWEPQ/9GGFX
pnfigWU5hMLJQ94b5k6yv1+faLhuhYN26MhbijYW9vs5D7B6TlgnvmMh+jCbSBiO
f2GRnVf4nFCPY3mDfGKvU1IDbxsLJ9jgIbJcCKAmJ4kV+iaHP8FopHFKrxLroz+O
XDkVCHblA5GMBgnKLqylcc5sUf4XCPu9YX+sSLTNPbwzXfxyuAQpN1cX+MPvJ7iq
EI+qRgLtjtZVp8pYX5Xb/xSvQKMLtlRDHGL0INhNWoJHYdODH2mNA2h5yOTpTF9y
R+WiRQa5ftNWqEkJWeMVu8XMcSB3QqVeYC/rkmle9YHW4fVmOY3HRTF3fp/iBK5l
I4q+iPROn00SxRYEF9RZ22D/OIl6rqVd41T3F9EOr3aYwrkG5JTRdaf+uRER51Wc
lpKg36WlI6SSsgM8JAEdMf/UlqiAjaRyqloZ65nCg5eDigK6BhdQwpyp6nN2BjsW
7zNrZ3AnoB36QlHlesb8Khk/G8bv7D7VA3U48H72ZrjQJPyDWROVVbf23fCbZP1p
n4NAOogNDBJs+n8nJoO9KSIyonUwNKVvQZnEaO4fzeYcuPgO3aQk91sdK7DW8x8Y
k89MD0QZCXsy1kOUz8LlOI/ATVkDyi43qIj0rACXu2bFhPCoGSlgFLF8CU6sz5Up
t6XGVYdYUmi0fv/hRllmoXwqqxjfFaAxN05OoPu0LkF4ZWwgQmVja2VydCAoRS1N
YWlsICsgSmFiYmVyKSA8YWJlQG5vb25lLm9yZz6JAjYEEwEIACAFAkpaax4CGwME
CwkIBwUVCgkICwUWAgMBAAIeAQIXgAAKCRAv+c1ZYSYWtX8lD/9n+IWUZKsZjKfP
+ylhvzMI3s0l4WSOIyCdiW+0O4XFP7LUczppQo78X5G/AWRP1T0McQrSFMEwT2Gm
oNdJlChlNqH+9RiV5E8KGZ9aLsuALjuHj3lkoO25Sl18RyOoUhwEFUk9dFHb3l8I
Mqg+NjnHG2Vm4j1HPuPPp5qrppW8iPt+oq+yLXGZGgKzITSmkNyrgkzIP/dsgsyu
r2pPnEnQ9o72SYrJnrsPtrRbLnk6+VzON5VcUpxoGu80/r59g4vLxHqrQqFi1rUy
5B616EN2iduZF6w24V3x9v8aX+x6zgnnMLJEd5V5KwOMwul6VYUCpxDE/Vctt5zt
ZL5eKv+81NyonNRlsMi1c4UGzN5NkcblAF7SrDhDGOnjFTNZVG3QtYoGTOpryute
+ETlqQ+NNdiAvsEoVb5IQEKI71KAHWvg16dZsHqFauwFmOz67+GYuipXIPZH/b/T
IQ9h/yeISM8Tm59ymT0ZscuDe4FLdii4rXa43fEPUmCShcmwY0w6NNjLtRlXgJ4y
LWqLUTf94l9M/FVbd8CQ/6cw5TwzrzyK88/rY5CnoL4zy2yZWfn9Jl/zZBqPOIxn
ZPNQtr60phOpZY2kHuCr8EriE8KbTFj0R/GjP+CjJw0qNhKYxJjRbxwaqtMUcvkw
lQIURcJomjGNU2VJlgEykiBdii43M7QqQXhlbCBCZWNrZXJ0IChTeW1saW5rKSA8
eHRhcmFuQHN5bWxpbmsuY2g+iQI2BBMBCAAgBQJKWmtKAhsDBAsJCAcFFQoJCAsF
FgIDAQACHgECF4AACgkQL/nNWWEmFrWA0Q/9FIZvkqymKMGX3w3kfaKXfG3D9oe3
6tBcwhy1PIbTGWpI2XvgoxyimgH5kgjqRq5jSO/uIps6nWUHIK09cB83jkhocliU
kvYjRJ4AcAKjH44GKFzder01JDAln3kv3Mw0M+NKo/h4JO2zUmizNwRgMkHqhx8q
oWqBfZVe+1hH6GRF9wVEaiblIgeA1DWI2MFrYlsgHyIyZE+Ir6ZVITcouv0eTEVv
NecxRDkaA/G44O9U/3sFGG7wgON4Ad1tdJqr9TPsJQMFm2iCrCj5uEau94gVeyz4
FMiCjtQNYzG1AvPF+C7iVc/Ob0uutvkIFYTu5zMkMi6B4zDX3LO9Vk7KBUnZgHMr
og+AhXABqlDgwnqqnJOTpJlBKe8ibJQGE4A0IgqM6MtLumDmT7kRwEuHQW4ax7j+
E5+sYTNqwjpyu20KatRq1OyrsArfVUTLTeAUwB+gy1Dnb62ClCB+1g9L+Cb9ZE/n
xxfMM7DMy2gFa6wjFdTlYkIxiZC9iLYMUxKlIXmaySIV98mH7fQ9Ojk0Q2RqCnrH
pbBQi89nwNXrq+T637WWkSbfvtV68S1jydgL+i5A2J7PkztvXKFkTF40kgtyVCsF
KaoVfjeCDdgVGFKtC7NR25NJu1wikqAYZM/eKvPoFTkjf7A2btFKLckXkM6eASMm
7nx2k2WQ6iTUM+u0E0F4ZWwgU3RlZmFuIEJlY2tlcnSJAjYEEwEIACAFAkpaa2sC
GwMECwkIBwUVCgkICwUWAgMBAAIeAQIXgAAKCRAv+c1ZYSYWtawCD/9CdOQvdt9X
yqKXhOODBVOnHyr1BEteuU41g7YVmH4xrgNOPvjtxzPF4EPMBk/r3IfoaesnSaNS
g/b+OfS6LHmT+bQMU+a8X2R6kickUbJerlOS4eaIpMGPN7ldHhKo9OcbPysGtLaR
s+MIh2CORwz64i4ySSEYpKQZISeVrX4cdI8ZxKDbotszD371DXD28S14Eom2uy/d
4c6J771/xCq3+RH2QfHxFbKK7FBfAUoYlkfIAzSMUP3EuN/vr9hVJ2g5yM+zYN5y
zdCYbeDoBCIlu2VFavTCfY7zenQVSukNdNOE3iIdUAhuijnf5L6KC15ymnOU4dHi
qbkGG2ujFvXjzFqmIlflnFZ/G8O+s8C+5D9qQve0XweOSd46Nd2hzG7ZCDLd18Oy
wdkVk3Nk3QNc2vSfQRyXavYyb6cDD/33Bjkef3y1sAAgH58tUFQXCedc0gRP3UYT
o9yyvwQoBx+QHw3gYGaGJvx3NMA+gQq3ufbr6JUn/P7j9Z09eXQZ0HUTE22+Xxd5
rORcGPRyknAXy4kgiQAc8QhwPqVSVlbGnDz+rWryF+HwD1X5neYHwz0qOCukuAMV
ezq6BNJvuYRrLqCOzu18LD9rqiYeNxyUnH/UFFefQdW2SPJKBNtChVAZd8lJdaHv
mGyvPi85mey1j1Dzn/mF3Dwjtl0GTO7K2rQpQXhlbCBCZWNrZXJ0IChGU0ZFIEZl
bGxvdykgPGFiZUBmc2ZlLm9yZz6JAjYEEwEIACAFAksejdsCGwMECwkIBwUVCgkI
CwUWAgMBAAIeAQIXgAAKCRAv+c1ZYSYWtSuGD/0StaDkNfg2jl5k04MuyMuXnLc3
EXr/T13Kt5XfwDwE8LoVyTo7N7utylPFvMFsWXo7QzniKOCm2A4IjXfncExiGh4a
h3ONgp66nJT8a8PMPl4YBFaLymNdGA1FkQOZPGUPu+/BJ5Nko42qcr3bTFnr5yU8
fW50ZJ9Dt2hZZD+z43dDGqSB5VESPuYMLabI9kFfixWpor8Hp/cdRty+6qT8T3L4
gCzOBhKWY8M//x5rY5SkF182GcOW2AzO1bSnJpNB+Rxp1vj5d05irLl35YZ/B8J6
oPK+edQGGSYQk3oeZhPyiK67itYust2c9dIgJo1/yqh8nqDNYCtTGr5FJntIwviU
Oh8BIwD0WPxJs+4icE71Sq+4zqx8bYLaKspu0jSw4ScAkCR6od3kA1K/LKkRI//m
q288TfarYfrcVgythAjKH9y8RmbgpQK2/dtoAUq+SNtyFDma29JKkuKH5w6o6zFN
h8INj8tb1L0HC1MVUCqH5Irb9wY9hQuDP9KAaCAhrl4/ckCNUFeTx4mmkVUlfUIR
1AZ7eGWCRVbjY3vc8UOV/hmsibaSeoPlKriyv++9erHlzZefDILCiZrY5k+vmL5V
udjKJeNmVmXbnBp4pA0fvOrOsOxt2tMvNwnzrkYAas/OqibdAA2qUyZYgIdK6bCG
1615bmvpbj8HluZHC7kEDQRKWmvxEBAAiXrRACaF49/act1wqPlsD3syaedMZyvx
70C259lyo/LYK64lniXDPQnvcJwnMPQrcGjemUBerT1cDoF+FHLMuyPC6rOmeijN
H//0F0iI8CHulOy1NhtTQfVbLhScIA0o/jZi54caqex/fshyQaoVssLIEZ0PyREF
w0Fj5c65r6UNEC8ih1aeM1HBOFMgcUdhkKYc7y8K15du9SIqL4rMqBuedE3dKwli
Weh62GigeojHfBWe9Oeil+MMRyFkIGNPqE7JqFGXlbbEn0qHf9aFo85/W7RCW0L6
fRMAgQrTat5pkHw2oeY+0XJza/VoptT26FyTldEt/3huPOF3gKwaxKsplFvYik5E
88G7Rt5FwMf9DJ7xrAMKYFctqyju6Fps+niP+i6Z8mHUmoVdVhLI5JWdFJBhAOxx
47Pxjy6q0eimK5nHlNpOU+Wm/Wd9I8TflQtbGWi2rqf8TOWTD07VE0WPl+8iHJDQ
zltRgPqZwD1goXH8WGsc5J/rhokSspCUXMNlcew094l/ZUK+mvvx1aSN7P/gWN8a
ehthoplXmj6dKyrYObsArN2mjVjov4pi16+GYt5G1kdkFUd9Y/i3CnMxuEasXBbX
0DaSXZHt7SFh8Q+hWok6Y5DgEt5IMCOKRYyMxIVdto6RckekkGom8oszr6aw6NbX
YenIau+CO2sAAwYP+gP4bCrqTgIdwgKssjTfRbmpNfzJfXGR4DH9fpQMO4AnCK5L
r7ZHcehh0ZfybYvfliHTZldQr+iyZavn6bNJ4b+xrUwtzCX1FffBBjq1VogposKe
y9ALejb/jqiX8nvg7qkuEu8af7E5ufwzh/1/3BZ4x4RVKWVyTexkJTMiTxCH8WzA
qYhItIG1XnGnbnejN587XOgbGq5j1CIP1ZZh3/bivuONzkebPMPduTu+kofzx8ZW
ETAcRTDx4AMY4/88Z8k0bGpc2e/4o8Ie0/EGczKPEPHTp3b/nrS6UH2oopuo9bFa
YKyo8aJ9Z/bTY19Nk8UGDfDqaixVj77lZp51W1Lzmkk+fhwgCOM6CGyradML0Mql
ugZ11lmqcWcUniIeQAO1Ex0uxTAMhY3HMCYzB4LYfLjnA4YxZyDLm6tpRP/dkMEB
njViweBzCJ1/heIhloYt6HeIMl2Y0CbVKRYXgjfVjnuSidz2LEjsZor+r5MFlT8q
c+Z3BB7f46I0agjbEz1Fy4MLCr/f5X9v7lh+klByYWu2AnfN8ryO5rFSLtOxy6cT
e5y0++yRkft/f/62NrVj4pK/SMIVNaF+T66lHVIXRuRo98ueUNfdaba8SLenwgF1
kIITHaFO7NoJ/bugHJFZD+sdEV4fO0Wngk/IrGr1pDxH2xqH8pGa91hx1A26iQIf
BBgBCAAJBQJKWmvxAhsMAAoJEC/5zVlhJha1LFQP/3AfrEA9AayOOXw1prdX1pr7
zGcSYecM8aPFpkvK8Q2dmJwqR/xAc1vTzW+dquOVG/cFJBftQCDQFgpDQp+Z8t4E
r2q4px3q0A3gH8Mz1BLZ/OVeU8xU0IRbk6+d9v0n45/S04T/uK46RpDFD4YEVf54
8tums1+EDaEbbhzEXGBDAjKCarxwJO+i4BR/Kk+9uTNHwMMhekrnQfcWvEgoczvy
wjIG9EoWVNS0KKFQiYKczV4sdLNQfhOC3iq6JZfipq4i/BEFTSRBISJyyfQPc53g
m8+qenRNLaidHgjbPAz4AQpwvqG4FbO5F6NdA/6iIfoD0ONbv2CIh7/3B87vvR6S
8LUYbBcds6hRRN0SVprzh2ywzUrEWbJWdXQ4bmNOnGvyB+F7XT1r0+7mW2IwcMZl
e4bCX5ODGl4b/YmM3RWCpz/m5FEkaO5EtEW59vv5t5KSRcYjNaetXkJAKHbSFWAJ
5E0Z/KdI5+2xekisjJqcFCQQkHEae1fjLV14Iqvh4/TL5uRcouCgCTHlsKa9yPn3
lMHEYKYXprf3hJLYVKA9+KseL2UNRTWR3tlWfNel1+FQ21ZH27bBsVvX4kH79mOA
o0XZWyYdIOq6Fe+CvZ2PNvDppmaJ1nyetJy21XIweqpYOi+XSSfnywcxqkLiZEFJ
SHZav7AdNoVLuHc4/dlyuQINBFShPUQBEADMkReQVHSCPmi5Yv7gyOE+VoNSrVfF
VpbpnFyK+g7/IyAeOV1f91QFUP0RU22CrHFbQaaI4h52y28K/+/9oNoD8U51eDix
0l5gRjO5Dpis6YSRTAduH9JU9lSJI8ay/0XFahrAZUQaT4WDYrlmRlBuIZ2OjXau
CpyM4vvgkVE4Njogegnf8Yzjj+V4mT4EWAKcxPGLQ6cL+ASO0bSJDyyt7w8cjvUV
uFZOST32iE/aamFZPcZZMZ3ZVrZ2qXyuFapEruRsnhAd9a0CGgJ0u5Tex3JxyiNs
U0Y8JcpzLGeI8J3MQdqnH9pJwHOovJVD6faD3J9fy22B/5zAMH+5ZZv/HxTT3+B9
8j67jz6E+Q9bRb5i73Loj9hQAY9GuGb6idoTNDLtdVcuonocPqk+FlZEWLfSn5Pk
nNJ+AAesl1Zh81PdX11KAWqaEKZmazJB/WgD18L8VBCzUPSMrt19pUJ186beAnDz
HymnS70ZcPppajz+xg2aUBHIuvmNlTAuvwTq4b4R/+W729+7D2dJhTgr82rGbL55
VQllAYEX5w0/RheU2EZpjgdfl8VCGyGdKD188cIypHQIYA2ZjsvElI/NHJv0BTBV
PZIgJ6JPPDr7QfY8vzg/EZ6nleLNrdlIHWefOzLL3YWdbv3X9E7Ckl3tzjvl97Mb
UoYHOZesi5fXKQARAQABiQREBBgBCAAPBQJUoT1EAhsCBQkLRzUAAikJEC/5zVlh
Jha1wV0gBBkBCAAGBQJUoT1EAAoJEGvmY8daNcl1a8UQAIAXNuGj/NPay0nvHNMl
eXZuHRQ3C+4ckA5NC1zvPNFR1KZWFA2uFe20Wy9JiC/OS20/kOIYjH8N4nwJkgN8
PCxeoPwihErttA0MAk0y06RDVoUChfe0w3ekE5VxkT71+XAo4PQpK7wR47tVZeaT
mMBoX4SFH4g8O5hbc0PazRmVVIWejXcRUYfdbmnv3iCZ8qoskVoZVSS1b4jpVLWi
YRrWn4TfZB5apHgzmfWG21/Ce/7yQWP22sSU5/o9+HZzYYmhz7DE4DXIxPLz4+2P
tngKcLOTacxJaB4xbniYl3VmUj3afDWZ3G2XdyfbBAGbOPypNeVkmP1COoWvLLvi
kuYclF1kdANN7Gi7XBpwUY225luwzmVI8tcjzK/7ErutDKCzC203F9LCwp3jmBxv
kmndOUMha4R1EuU+8EzIXMXY8jPFH3tH3lJ9qTA1koiYtRxlB2E/EZmPzYB9Kj+S
e2G7aJ6qemBRHR8KRCDfRxpjN28NMc57j27VRfxCYKdlSujZTs+nn7/jgL3EZ3AK
JHSJoIgrzaqqr34Siw/0DcAsoJTwuWbknQPgeSv03q2A81JLKEXukTXKCO9DmbBi
AFyXqQm6NM5MuPSycq5jpM/MWN0Nc/OM3fpvn0NsdOpBpugTzVGQ1H/nQBgAkbAT
d/cqxybvui/FKnIsc69TVlfjk+0P/0gIHN3Fa1NwNsj+Ui6q8mzrtT5jCa8+b6eh
r3JlX84Gj6+u7JXTt+LFQWH270xZjo95QHgf9p0/uWPaiW2g6dVB7TGsdCOOL+au
8ilebcq1B6L6HtgUo65TwcDjdX1lVi33xHXfMbJP6VVq7Lu5P6kqCL0myF5YR/s9
uIol6+5SGbfGBG+9IXs3Np9D711VNDDojQRWH1eTdsoau21DNa4666g5W3q+yARc
RaIeKuTTdj1xSctSeDklHaWKyBZzzRDd5Q459GOKf9n3ODjfkAbmuYpuA1Izg3EK
6miBewL2vhg+6X1RtJ4oVzcI98W+91I+0jDepZ6TSDNrim8bCIYCAfRpzqWi67AH
JkYvSQ/FPsNAxh9B44q7pD4EFqnVG/Ncl+hemKy5hx0NRD9hgTyhaUjYCkxlfi9v
jxH0WmaYEQ1VJO6+Nk4kzwo7HDzV7Egdppfat3lz6uU/phu1ck5ye9NsqM35jJ7U
g7IFdBvkunLucWGUB/k0iTa8K/3HtK0U4W93oSkDI6VBpEN2gkIDtJpl72N4XsO3
SKevxGFH8eGE5W5B/C4s2kevE6AzYfBy6Ptr9FYFyxwm6EvwKZTmGY/D+qABpFwK
m0uqlgXaVCF5zZkbb8OZxp/cjb2C2q+F9n8k2ASOxtrR+5f1CzBH+IoBVDHXacGD
+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

60
etc/distributions.conf Normal file
View File

@@ -0,0 +1,60 @@
# 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
# Known generic keywords: *.gpg (uses the according /usr/share/keyrings/….gpg file)
#
sarge = debian eol
etch = debian eol
lenny = debian eol
squeeze = debian eol default-keyring
wheezy = debian
jessie = debian
stretch = debian
buster = debian
bullseye = debian dont-test
bookwork = debian dont-test
sid = debian
testing = debian
oldoldstable = debian dont-test
oldstable = debian
stable = debian
unstable = debian
# Between at least debootstrap 1.0.37 and 1.0.93 (including), dapper
# and edgy may need manual adjustments in debootstrap's configuration,
# see https://bugs.debian.org/659360
dapper = ubuntu eol
edgy = ubuntu eol
feisty = ubuntu eol
gutsy = ubuntu eol
hardy = ubuntu eol
intrepid = ubuntu eol
jaunty = ubuntu eol
karmic = ubuntu eol
lucid = ubuntu eol pygrub
maverick = ubuntu eol pygrub
natty = ubuntu eol pygrub
oneiric = ubuntu eol pygrub
precise = ubuntu pygrub ubuntu-archive-removed-keys.gpg
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 eol pygrub
zesty = ubuntu eol pygrub ubuntu-keyring-2012-archive.gpg
artful = ubuntu pygrub
bionic = ubuntu pygrub
cosmic = ubuntu pygrub
disco = ubuntu pygrub
devel = ubuntu pygrub dont-test

13
etc/mirrors.conf Normal file
View File

@@ -0,0 +1,13 @@
# xen-tools default mirror configuration file
debian = http://deb.debian.org/debian
debian_archive = http://archive.debian.org/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/
#
##
@@ -52,8 +52,16 @@
# LVM volume group here instead
#
##
# lvm = skx-vg
# lvm = vg0
#
##
#
# If you have ZFS available and wish to use it then you may specify a
# ZFS pool name here instead
#
##
# zpool = xenpool0
#
##
@@ -107,13 +115,13 @@ install-method = debootstrap
# (This allows you to install from a .tar.bz file, rather than a plain
# tar file, use cdebootstrap, etc.)
#
# install-method=copy:
# install-method = copy:
# copy-cmd = /bin/cp -a $src/* $dest
#
# install-method=debootstrap:
# debootstrap-cmd=/usr/sbin/debootstrap
# install-method = debootstrap:
# debootstrap-cmd = /usr/sbin/debootstrap
#
# install-method=tar:
# install-method = tar:
# tar-cmd = /bin/tar --numeric-owner -xvf $src
#
#
@@ -125,29 +133,20 @@ install-method = debootstrap
# Disk and Sizing options.
##
#
size = 4Gb # Disk image size.
memory = 128Mb # Memory size
swap = 128Mb # Swap size
# noswap = 1 # Don't use swap at all for the new system.
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = etch # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
size = 4G # Root disk, 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 = 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)
#
# Currently supported and tested distributions include:
#
# via Debootstrap:
#
# Debian:
# sid, sarge, etch, lenny.
#
# Ubuntu:
# edgy, feisty, dapper.
#
# via Rinse:
# centos-4, centos-5.
# fedora-core-4, fedora-core-5, fedora-core-6, fedora-core-7
#
# See the README for currently supported and tested distributions. You can
# either find it in the root directory of the unpacked source or, on Debian
# and Ubuntu based systems, in /usr/share/doc/xen-tools/README.gz
#
@@ -160,14 +159,30 @@ image = sparse # Specify sparse vs. full disk images.
# Uncomment and adjust these network settings if you wish to give your
# new instances static IP addresses.
#
# gateway = 192.168.1.1
# netmask = 255.255.255.0
# broadcast = 192.168.1.255
# gateway = 192.168.1.1
# netmask = 255.255.255.0
# broadcast = 192.168.1.255
#
# Uncomment this if you wish the images to use DHCP
#
# dhcp = 1
#
# Uncomment and adjust this setting if you wish to give your new
# instances a specific nameserver.
#
# By default, nameserver is not set, and Dom0's /etc/resolv.conf will
# be copied to guest.
#
# nameserver = 192.168.1.1
#
#
# Setup bridge name for host vif. Useful if you use bridged networking
# for guests.
#
# bridge = xendmz
#
##
# Misc options
@@ -181,10 +196,41 @@ image = sparse # Specify sparse vs. full disk images.
#
#
# Uncomment the following line if you wish to interactively setup
# a new root password for images.
# The default cachedir is, /var/cache/apt/archives/, however if it
# does not exist it will default to /var/cache/xen-tools/archives/
# Uncomment the line below to set it to something else.
#
# cachedir = /var/cache/xen-tools/archives/
#
#
# Uncomment the following line if you wish not to generate a new root
# password for the new guest.
#
# genpass = 0
#
#
# You can also change the password length by uncommenting and
# changing the line below
#
# genpass_len = 8
#
#
# You can yet change the hashing method to encrypt the generated
# password by changing the line below.
# Valid values : md5, sha256 and sha512.
#
# hash_method = sha256
#
#
# Uncomment the following line if you wish to interactively setup a
# new root password for images.
#
# passwd = 1
#
#
# If you'd like all accounts on your host system which are not present
@@ -196,8 +242,15 @@ image = sparse # Specify sparse vs. full disk images.
#
# Default kernel and ramdisk to use for the virtual servers
#
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
#
# Uncomment the following line if you wish to use pygrub by default
# for all distributions.
#
# pygrub = 1
#
#
# The architecture to use when using debootstrap, rinse, or rpmstrap.
@@ -205,40 +258,28 @@ initrd = /boot/initrd.img-`uname -r`
# This is most useful on 64 bit host machines, for other systems it
# doesn't need to be used.
#
# arch=[i386|amd64]
# arch = [i386|amd64]
#
#
# The default mirror for debootstrap to install Debian-derived distributions
# Use the mirror configured on the DomU as default mirror
#
mirror = http://ftp.us.debian.org/debian/
# 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
#
# 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:
#
# mirror_sid=http://ftp.us.debian.org/debian
# mirror_sarge=http://ftp.us.debian.org/debian
# mirror_etch=http://ftp.us.debian.org/debian
# mirror_dapper=http://archive.ubuntu.com/ubuntu
# mirror_edgy=http://archive.ubuntu.com/ubuntu
# mirror_feisty=http://archive.ubuntu.com/ubuntu
# mirror_gutsy=http://archive.ubuntu.com/ubuntu
# apt_proxy =
#
# Filesystem options for the different filesystems we support.
#
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiser_options = defaults
ext4_options = noatime,nodiratime,errors=remount-ro
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiserfs_options = defaults
btrfs_options = defaults
#
# Uncomment if you wish newly created images to boot once they've been
@@ -250,7 +291,7 @@ reiser_options = defaults
#
# If you're using the lenny or later version of the Xen guest kernel you will
# need to make sure that you use 'hvc0' for the guest serial device,
# and 'xvdX' instead of 'sdX' for serial devices.
# and 'xvdX' instead of 'sdX' for disk devices.
#
# You may specify the things to use here:
#
@@ -274,3 +315,20 @@ reiser_options = defaults
# output = /etc/xen
# extension = .cfg
#
#
# Here you can control weather your dom0's /etc/hosts file should be
# appended with the new guest, and also if your dom0's /etc/hosts file
# should be copied to the new guest.
#
# Change the following options to 1 to set them
# nohosts - don't touch the dom0's /etc/hosts file
# copyhosts - copy the dom0's /etc/hosts to the guest
#
# by default new guests ARE added to the dom0's /etc/hosts file
# nohosts = 0 # default
#
# by default the dom0's /etc/hosts IS NOT copied
# copyhosts = 0 # default
#

View File

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

View File

@@ -6,35 +6,79 @@
#
# Kernel + memory size
#
{ if ( $kernel )
{ if ( ( $kernel ) && ( !defined($pygrub)) )
{
$OUT.= "kernel = '$kernel'";
$OUT .= "kernel = '$kernel'\n";
$OUT .= "extra = 'elevator=noop'";
}
}
{ if ( $initrd )
{ if ( ( $initrd ) && ( !defined($pygrub)) )
{
$OUT.= "ramdisk = '$initrd'";
}
}
{
if ( $pygrub )
{
$OUT .= "bootloader = 'pygrub'\n";
}
}
vcpus = '{$vcpus}'
memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
#
# Disk device(s).
#
{
for ( my $i = 0; $i <= $#PARTITIONS; $i++ )
{
if ( !defined($image_vbd ) )
{
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
if ( $PARTITIONS[$i]{'mountpoint'} eq '/' )
{
$OUT .= "root = '/dev/$device" . ($i + 1) . " ro'\n";
}
}
$OUT .= "disk = [\n";
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
if ( $PARTITIONS[$i]{'mountpoint'} eq '/' )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
}
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
if ( $PARTITIONS[$i]{'mountpoint'} ne '/' )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
}
$OUT .= " ]\n";
}
$OUT .= "disk = [\n";
for ( my $i = 0; $i <= $#PARTITIONS; $i++ )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
$OUT .= " ]\n";
}
#
# Physical volumes
#
{
if ( $image_vbd )
{
$OUT .= "root = '/dev/$device" . "2 ro'\n";
$OUT .= "disk = [\n";
$OUT .= " '$image_vbd," . $device . "2,w',\n";
if ( $swap_vbd )
{
$OUT .= " '$swap_vbd," . $device . "1,w',\n";
}
$OUT .= " ]\n";
}
}
#
@@ -52,12 +96,26 @@ name = '{$hostname}'
# Setup the mac address, if present.
my $m = '';
if ( $mac )
{
{
$m = "mac=$mac"
}
$OUT .= "vif = [ '$m' ]";
}
my $br = '';
if ( $bridge )
{
if ( $mac )
{
$br = ",bridge=$bridge"
}
else
{
$br = "bridge=$bridge"
}
}
$OUT .= "vif = [ '";
$OUT .= "$m";
$OUT .= "$br";
$OUT .= "' ]";
}
else
{
#
@@ -65,12 +123,33 @@ name = '{$hostname}'
#
my $m = '';
if ( $mac )
{
{
$m = ",mac=$mac"
}
$OUT .= "vif = [ 'ip=$ip1";
$OUT .= "$m' ]";
my $vn = '';
if ( $vifname )
{
$vn = ",vifname=$vifname";
}
my $br = '';
if ( $bridge )
{
$br = ",bridge=$bridge"
}
my $vl = '';
if ( $vlan )
{
$vl = ".$vlan"
}
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "$m";
$OUT .= "$vn";
$OUT .= "$br";
$OUT .= "' ]";
}
}

50
examples/release-testing Executable file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
set -e
exec 2>&1
exec > >( tee xen-tools-release-testing-$(date -Iseconds).log )
if [ -z "$DISTRIBUTIONS" ]; then
DISTRIBUTIONS=$(awk '!/^#|^$|dont-test/ {print $1}' /etc/xen-tools/distributions.conf)
fi
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';
SUCCEEDED=''
FAILED=''
# From now on we just want to log failures, not abort.
set +e
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 "$@"
if [ "$?" -eq '0' ]; then
SUCCEEDED="$dist $SUCCEEDED"
else
FAILED="$dist $FAILED"
fi
done
echo ''
echo '======================================================================'
if [ -z "$FAILED" ]; then
echo '*** All tests succeeded! ***'
elif [ -z "$SUCCEEDED" ]; then
echo '*** All tests failed! ***'
else
echo "*** These distributions succeeded: $SUCCEEDED ***"
echo "*** These distributions failed: $FAILED ***"
fi

View File

@@ -53,7 +53,7 @@ cat <<EOF
Press enter to continue, or Ctrl-c to abort.
EOF
read
read __dummy

View File

View File

@@ -19,7 +19,7 @@ hooks/
* The installation will have a running installation of OpenSSH
The subdirectories in this hooks/ directory will be installed
to the directory /usr/lib/xen-tools/
to the directory /usr/share/xen-tools/
Steve
--

View File

@@ -0,0 +1 @@
../common/01-disable-daemons

View File

@@ -0,0 +1 @@
../common/05-shadowconfig-on

View File

@@ -0,0 +1 @@
../common/15-disable-hwclock

1
hooks/artful/20-setup-apt Symbolic link
View File

@@ -0,0 +1 @@
../common/20-setup-apt

View File

@@ -0,0 +1 @@
../common/25-generate-locale

View File

@@ -0,0 +1 @@
../common/30-disable-gettys

1
hooks/artful/35-setup-users Symbolic link
View File

@@ -0,0 +1 @@
../common/35-setup-users

View File

@@ -0,0 +1,128 @@
#!/bin/sh
#
# This script sets up the /etc/netplan/interface file for the new
# image.
#
# Steve
# --
# https://steve.fi/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/share/xen-tools/common.sh
else
. ./hooks/common.sh
fi
# From: https://serverfault.com/questions/54981/linux-command-line-tool-to-work-with-netmasks-cidr-notation
mask2cdr ()
{
# Assumes there's no "255." after a non-255 byte in the mask
local x=${1##*255.}
set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*}
x=${1%%$3*}
echo $(( $2 + (${#x}/4) ))
}
#
# Log our start
#
logMessage Script $0 starting
#
# Make sure we have an /etc/netplan directory.
#
mkdir -p ${prefix}/etc/netplan
#
# A function to setup DHCP for our new image.
#
setupDynamicNetworking ()
{
#
# The host is using DHCP.
#
cat <<E_O_DHCP > ${prefix}/etc/netplan/01-netcfg.yaml
# Arno: Configure VM interface eth0 via DHCP
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
E_O_DHCP
}
#
# A function to setup static IP addresses for our new image.
#
setupStaticNetworking ()
{
# Arno
cidr='24';
if [ -n "${netmask}" ]; then
cidr="$(mask2cdr ${netmask})"
fi
#
# We have a static IP address
#
cat <<E_O_STATIC >${prefix}/etc/netplan/01-netcfg.yaml
# Arno: Set static IP for VM interface eth0
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [${ip1}/${cidr}]
gateway4: ${gateway}
nameservers:
addresses: [${nameserver}]
E_O_STATIC
# Arno: no support for multiple interfaces
#
# Hooks are run chrooted, hence the resolv.conf is moved
# temporarily to /etc/resolv.conf.old. Use that file, it
# will be restored after hooks are run.
#
if [ '' != "$nameserver" ]; then
rm -f ${prefix}/etc/resolv.conf.old
for ns in $nameserver; do
echo "nameserver $ns" >>${prefix}/etc/resolv.conf.old
done
else
cp /etc/resolv.conf ${prefix}/etc/resolv.conf.old
fi
}
#
# Call the relevant function
#
if [ -z "${dhcp}" ]; then
logMessage "Setting up static networking"
setupStaticNetworking
else
logMessage "Setting up DHCP networking"
setupDynamicNetworking
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/50-setup-hostname-deb

View File

@@ -0,0 +1 @@
../common/60-copy-host-files

View File

@@ -0,0 +1 @@
../common/65-copy-user-files

1
hooks/artful/70-install-ssh Symbolic link
View File

@@ -0,0 +1 @@
../common/70-install-ssh-deb

View File

@@ -0,0 +1 @@
../common/75-fixup-securetty

View File

@@ -0,0 +1 @@
../common/80-install-kernel-ubuntu

View File

@@ -0,0 +1 @@
../common/80-install-modules-deb

View File

@@ -0,0 +1 @@
../common/81-install-modules-init-tools

View File

@@ -0,0 +1 @@
../common/82-install-grub-legacy

1
hooks/artful/90-make-fstab Symbolic link
View File

@@ -0,0 +1 @@
../common/90-make-fstab

1
hooks/artful/99-clean-image Symbolic link
View File

@@ -0,0 +1 @@
../common/99-clean-image-deb

View File

@@ -0,0 +1 @@
../common/99-enable-daemons

View File

@@ -1,49 +0,0 @@
#!/bin/sh
#
# This script disables TLS on the new image.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Don't touch TLS on 64 bit platforms.
#
if [ "`uname -m`" = "x86_64" ]; then
logMessage "Ignoring TLS since we're a 64 bit host."
exit
fi
#
# Disable TLS and create an empty directory in its place
#
mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled
mkdir ${prefix}/lib/tls
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/10-disable-tls

View File

@@ -1,44 +0,0 @@
#!/bin/sh
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Record arch, if present.
#
if [ -d $prefix/etc/rpm ]; then
logMessage Found /etc/rpm
#
# If i386 then record this
#
if [ "$arch" = "i386" ]; then
echo "i386-fedora-linux-gnu" >> $prefix/etc/rpm/platform
fi
else
logMessage Failed to find /etc/rpm
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/15-disable-hwclock

View File

@@ -1,51 +0,0 @@
#!/bin/sh
#
# This script sets up the Yum for CentOS4.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# DNS is probably required to run "yum update".
#
cp /etc/resolv.conf ${prefix}/etc
#
# Update yum
#
if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum update
umount ${prefix}/proc
#
# Log our finish
#
logMessage Script $0 finished

1
hooks/centos-4/20-setup-yum Symbolic link
View File

@@ -0,0 +1 @@
../common/20-setup-yum

View File

@@ -1,58 +0,0 @@
#!/bin/sh
#
# This script comments out all virtual terminals which aren't on the
# first console - that must remain so that 'xm console ...' works
# correctly.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Do the transformation.
#
sed -i -e 's/^\([2-6].*:respawn*\)/#\1/' -e 's/^T/#\t/' ${prefix}/etc/inittab
#
# Are we using an alternative serial device?
#
if [ ! -z "${serial_device}" ]; then
serial_device=`basename ${serial_device}`
# Let the user know.
logMessage "Replacing default serial device (tty1) with ${serial_device}"
# replace existing device.
sed -i -e s/tty1/${serial_device}/ ${prefix}/etc/inittab
# make sure that it is allowed to login.
echo $serial_device >> ${prefix}/etc/securetty
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/30-disable-gettys

View File

@@ -1,181 +0,0 @@
#!/usr/bin/perl -w
#
# This script attempts to copy all user accounts from the host to
# the guest. It does this by copying all user accounts which are not
# already present.
#
# NOTE: Unless '--accounts' was specified upon the 'xen-create-image'
# command line we don't do this.
#
# Steve
# --
# http://www.steve.org.uk/
use strict;
use Env;
my $prefix = shift;
die "Prefix must be given" unless defined( $prefix );
die "Prefix must be a directory" unless ( -d $prefix );
#
# Exit unless the 'accounts' variable is set.
#
exit unless ( $ENV{'accounts'} );
#
# Make sure we have $prefix/etc
#
die "Prefix is missing /etc : $prefix" unless ( -d $prefix . "/etc" );
#
# Read all accounts from the installed /etc/passwd on the guest.
#
my %present;
if ( -e $prefix . "/etc/passwd" )
{
%present = readAccounts( $prefix . "/etc/passwd" );
}
#
# Now read the accounts on the host.
#
my %host = readAccounts( "/etc/passwd" );
#
# For each account not present on new installation then add it
#
foreach my $account ( sort keys( %host ) )
{
if ( ! $present{ $account } )
{
print "Adding: $account\n";
addAccount( $account );
#
# Find any groups the user is member of on the host
# and add them on the guest system
#
addGroups( $account );
}
}
#
# Read the accounts which are already present on the guest image.
#
sub readAccounts
{
my ( $file ) = ( @_ );
my %found;
open( EXISTING, "<", $file );
foreach my $line ( <EXISTING> )
{
#
# Record the userid + username
#
if ( $line =~ /^([^:]+):([^:]+):([^:]+)/ )
{
my $user = $1;
my $pass = $2;
my $uid = $3;
$found{$user} = 1;
}
}
close( EXISTING );
return( %found );
}
#
# Add the passwd + shadow accounts for the given user.
#
sub addAccount
{
my ( $user ) = ( @_ );
#
# passwd file.
#
open( PASSWD, "<", "/etc/passwd" );
foreach my $line ( <PASSWD> )
{
chomp( $line );
if ( $line =~ /^\Q$user\E:/ )
{
#
# Add the line
#
open( OUTY, ">>", $prefix . "/etc/passwd" );
print OUTY $line . "\n";
close( OUTY );
}
}
close( PASSWD );
#
# shadow file.
#
open( SHADOW, "<", "/etc/shadow" ) or die "Failed to open : $!";
foreach my $line ( <SHADOW> )
{
chomp( $line );
if ( $line =~ /^\Q$user\E:/ )
{
#
# Add the line
#
open( OUTY, ">>", $prefix . "/etc/shadow" );
print OUTY $line . "\n";
close( OUTY );
}
}
close( SHADOW );
}
#
# Find the groups a user is member of on the host, and add them to
# those groups on the new guest.
#
sub addGroups
{
my( $username ) = ( @_ );
#
# Get the groups.
#
my $groups = `groups $username`;
# split off the usernmame.
if ( $groups =~ /^([^:]+):(.*)/ )
{
$groups = $2;
print "User: $username is member of the groups: $groups\n";
}
foreach my $g ( split( / /, $groups ) )
{
# Make sure the group exists.
system( "chroot $prefix /usr/sbin/addgroup $g" );
# add the user to it.
system( "chroot $prefix /usr/sbin/adduser $username $g" );
}
}

View File

@@ -0,0 +1 @@
../common/35-setup-users

View File

@@ -1,98 +0,0 @@
#!/bin/sh
#
# This script sets up the networking files for the new image.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Make sure we have an /etc/sysconfig/network-scripts directory.
#
mkdir -p ${prefix}/etc/sysconfig/network-scripts/
#
# Test for static vs. DHCP
#
if [ -z "${dhcp}" ]; then
#
# Setup the initial interface
#
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=${ip1}
NETMASK=${netmask}
GATEWAY=${gateway}
E_O_STATIC
#
# Now setup any other ones.
#
interface=1
count=2
while [ "${count}" -le "${ip_count}" ]; do
value=\$ip${count}
value=`eval echo $value`
logMessage Adding etho:${interface}
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0:${interface}
DEVICE=eth0:${interface}
ONBOOT=yes
BOOTPROTO=static
IPADDR=${value}
NETMASK=${netmask}
E_O_STATIC
count=`expr $count + 1`
interface=`expr $interface + 1`
done
else
cat <<E_O_DHCP >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
E_O_DHCP
fi
#
# Don't forget to setup the default route.
#
cat <<EOF >${prefix}/etc/sysconfig/network
NETWORKING=yes
GATEWAY=${gateway}
HOSTNAME=${hostname}
EOF
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/40-setup-networking-rpm

View File

@@ -1,118 +0,0 @@
#!/bin/sh
#
# This script places the new systems hostname into a couple of files within
# the new image.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Setup the mailname + hostname files.
#
echo ${hostname} > ${prefix}/etc/hostname
echo ${hostname} > ${prefix}/etc/mailname
#
# Fixup the /etc/hosts file upon the new image for
# machines with static IPs
#
if [ -z "${dhcp}" ]; then
# Non-IPv6 stuff.
grep -v '\(::\|IPv6\)' /etc/hosts > ${prefix}/etc/hosts
# New entry.
echo "${ip1} ${hostname}" >> ${prefix}/etc/hosts
echo " " >> ${prefix}/etc/hosts
# IPv6 stuff.
grep '\(::\|IPv6\)' /etc/hosts >> ${prefix}/etc/hosts
else
#
# Stub /etc/hosts for DHCP clients.
#
cat >> ${prefix}/etc/hosts <<EOF
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
EOF
fi
#
# Allow the host system to know the IP address of our new guest.
#
if [ -z "${dhcp}" ]; then
if ( grep ${hostname} /etc/hosts > /dev/null ) ; then
logMessage Host already has IP address for the host ${hostname}.
else
#
# Short host name.
#
name=`echo ${hostname} | awk -F. '{print $1}'`
logMessage Adding ${hostname} and ${name} to /etc/hosts on the host
echo "${ip1} ${hostname} ${name}" >> /etc/hosts
#
# If we've updated the /etc/hosts file on the host machine
# and there is an installation of dnsmasq installed then
# reload it.
#
# This will let the local LAN clients lookup the new address.
#
if [ -x /usr/sbin/dnsmasq ] ; then
if [ -e /var/run/dnsmasq.pid ]; then
logMessage Allowing DNSMasq to restart.
kill -HUP `cat /var/run/dnsmasq.pid`
fi
fi
fi
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/50-setup-hostname-rpm

View File

@@ -1,53 +0,0 @@
#!/bin/sh
#
# This script ensures that the new guest images have a nicely
# populated /dev directory.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Early termination if we have a couple of common devices present
# should speed up installs which use --copy/--tar
#
if ( test `ls -1 ${prefix}/dev | wc -l` -gt 10 ); then
logMessage "Terminating because there appear to be files in /dev already"
exit
fi
#
# Make the device nodes.
#
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV console'
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV null'
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV zero'
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/55-create-dev

View File

@@ -1,58 +0,0 @@
#!/bin/sh
#
# Copy files from a 'skel' directory, if present, into the
# new images
#
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Copy "required" files from our host.
#
# NONE DONE
#
# If the host has sudo then copy the configuration file, and install
# the package
#
if [ -e /etc/sudoers ]; then
logMessage Installing SUDO too.
#
# Copy file and fixup permissions.
#
cp /etc/sudoers ${prefix}/etc
chown root:root ${prefix}/etc/sudoers
chmod 440 ${prefix}/etc/sudoers
#
# Install sudo
#
installCentOS4Package ${prefix} sudo
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -1,49 +0,0 @@
#!/bin/sh
#
# Copy files from a 'skel' directory, if present, into the
# new images
#
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Copy everything from the skel directory into the new instance
# if that directory exists.
#
if [ -d /etc/xen-tools/skel ]; then
logMessage Copying files from /etc/xen-tools/skel
(cd /etc/xen-tools/skel; tar -cf - . ) | (cd ${prefix}/; tar -xpf -)
logMessage Finished
else
logMessage skel directory, /etc/xen-tools/skell, not present ignoring.
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/65-copy-user-files

View File

@@ -1,42 +0,0 @@
#!/bin/sh
#
# This script installs OpenSSH upon the new system.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Install the OpenSSH server.
#
if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum -y install openssh-server passwd
umount ${prefix}/proc
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1 @@
../common/70-install-ssh-rpm

View File

@@ -1,62 +0,0 @@
#!/bin/sh
#
# This script ensures /etc/securetty upon the new guests has the new
# Xen console devices in it
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# If the file doesn't exist exit early.
#
if [ ! -e ${prefix}/etc/securetty ]; then
logMesage /etc/securetty not found.
exit
fi
#
# Do both the devices.
#
for i in xvc0 hvc0 ; do
#
# Only append if not presnt.
#
if ( grep $i ${prefix}/etc/securetty > /dev/null ) ; then
logMessage Host already has $i entry
else
echo $i >> ${prefix}/etc/securetty
fi
done
#
# Log our finish
#
logMessage Script $0 finished.

View File

@@ -0,0 +1 @@
../common/75-fixup-securetty

View File

@@ -1,41 +0,0 @@
#!/bin/sh
#
# Install modules from the host system into the new image.
#
# Steve
# --
# http://www.steve.org.uk/
prefix=$1
#
# Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Copy the modules from the host to the new system - we should only
# really copy the *correct* modules, but we don't know what they are.
#
mkdir -p ${prefix}/lib/modules
cp -au /lib/modules/*/ ${prefix}/lib/modules
#
# Log our finish
#
logMessage Script $0 finished

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