1
0
mirror of synced 2026-03-01 17:26:01 +00:00

Compare commits

...

76 Commits

Author SHA1 Message Date
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
100 changed files with 734 additions and 552 deletions

3
.gitignore vendored
View File

@@ -28,3 +28,6 @@
# backups created by "make update-version" # backups created by "make update-version"
*.bak *.bak
# Devel::Cover cache
cover_db/

View File

@@ -1,6 +1,11 @@
KNOWN BUGS in xen-tools KNOWN BUGS in xen-tools
======================= =======================
Bugs to fix before next release
-------------------------------
[None so far]
Bugs to fix rather soon Bugs to fix rather soon
----------------------- -----------------------
@@ -11,8 +16,6 @@ Bugs to fix rather soon
[Bug Report](http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html) [Bug Report](http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html)
* `xen-delete-image` ignores extension setting
* partitions were mounted in config file order, not in mountpoint order. * partitions were mounted in config file order, not in mountpoint order.
That implies that if you specified : That implies that if you specified :
@@ -30,16 +33,6 @@ Bugs to fix rather soon
Fix would be to reproduce what mount does with mount `-a`. Fix would be to reproduce what mount does with mount `-a`.
* `xen-create-image` doesn't unmount the `tempdir` properly if `/proc`
wasn't mounted inside
* `xen-create-image` says on startup summary that the Debian mirror is
used even if Ubuntu is going to be installed (and works)
* `xen-list-images` does not honour `--extension`
* `--extension=''` (i.e. empty string) no more works
Bugs to fix later Bugs to fix later
----------------- -----------------

View File

@@ -3,7 +3,7 @@ xen-tools
--------- ---------
Copyright (c) 2005-2009: Steve Kemp. All rights reserved. Copyright (c) 2005-2009: Steve Kemp. All rights reserved.
Copyright (c) 2010-2012: The Xen-Tools Development Team, currently consisting of: Copyright (c) 2010-2013: The Xen-Tools Development Team, currently consisting of:
Axel Beckert <abe@deuxchevaux.org>, Axel Beckert <abe@deuxchevaux.org>,
Dmitry Nedospasov <dmitry@nedos.net>, and Dmitry Nedospasov <dmitry@nedos.net>, and
Stéphane Jourdois <sjourdois@gmail.com> Stéphane Jourdois <sjourdois@gmail.com>

125
Makefile
View File

@@ -22,7 +22,8 @@ VCS = git
# #
# Installation prefix, useful for the Debian package. # Installation prefix, useful for the Debian package.
# #
prefix= DESTDIR=
prefix=${DESTDIR}
nop: nop:
@@ -94,7 +95,7 @@ fixup-perms:
chmod 644 etc/xen-tools.conf chmod 644 etc/xen-tools.conf
chmod 644 etc/xm.tmpl chmod 644 etc/xm.tmpl
chmod 644 etc/xm-nfs.tmpl chmod 644 etc/xm-nfs.tmpl
chmod 644 misc/xen-tools misc/README chmod 644 misc/*
# #
# Install files to /etc/ # Install files to /etc/
@@ -109,8 +110,10 @@ install-etc:
cp etc/xm.tmpl ${prefix}/etc/xen-tools/ cp etc/xm.tmpl ${prefix}/etc/xen-tools/
cp etc/xm-nfs.tmpl ${prefix}/etc/xen-tools/ cp etc/xm-nfs.tmpl ${prefix}/etc/xen-tools/
cp partitions/*-* ${prefix}/etc/xen-tools/partitions.d/ cp partitions/*-* ${prefix}/etc/xen-tools/partitions.d/
-mkdir -p ${prefix}/etc/bash_completion.d -mkdir -p ${prefix}/etc/bash_completion.d/
cp misc/xen-tools ${prefix}/etc/bash_completion.d/ cp misc/xen-tools.bash-completion ${prefix}/etc/bash_completion.d/xen-tools
-mkdir -p ${prefix}/etc/initramfs-tools/conf.d/
cp misc/xen-tools.initramfs-tools ${prefix}/etc/initramfs-tools/conf.d/xen-tools
# #
@@ -144,62 +147,62 @@ install-bin:
# #
install-hooks: install-hooks:
for i in roles/* ; do if [ -f $$i ]; then cp $$i ${prefix}/etc/xen-tools/role.d; fi ; done for i in roles/* ; do if [ -f $$i ]; then cp $$i ${prefix}/etc/xen-tools/role.d; fi ; done
for i in ${prefix}/usr/lib/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; fi; done for i in ${prefix}/usr/share/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; fi; done
mkdir -p ${prefix}/usr/lib/xen-tools/centos-4.d/ mkdir -p ${prefix}/usr/share/xen-tools/centos-4.d/
mkdir -p ${prefix}/usr/lib/xen-tools/centos-5.d/ mkdir -p ${prefix}/usr/share/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/lib/xen-tools/centos-6.d/ mkdir -p ${prefix}/usr/share/xen-tools/centos-6.d/
mkdir -p ${prefix}/usr/lib/xen-tools/fedora-core-6.d/ mkdir -p ${prefix}/usr/share/xen-tools/fedora-core-6.d/
cp -R hooks/centos-4/*-* ${prefix}/usr/lib/xen-tools/centos-4.d cp -R hooks/centos-4/*-* ${prefix}/usr/share/xen-tools/centos-4.d
cp -R hooks/centos-5/*-* ${prefix}/usr/lib/xen-tools/centos-5.d cp -R hooks/centos-5/*-* ${prefix}/usr/share/xen-tools/centos-5.d
cp -R hooks/centos-6/*-* ${prefix}/usr/lib/xen-tools/centos-6.d cp -R hooks/centos-6/*-* ${prefix}/usr/share/xen-tools/centos-6.d
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/lib/xen-tools/fedora-core-6.d cp -R hooks/fedora-core-6/*-* ${prefix}/usr/share/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/share/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/share/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/share/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 -cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-8.d
-cd ${prefix}/usr/lib/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-9.d
-cd ${prefix}/usr/lib/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-10.d
-cd ${prefix}/usr/lib/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-11.d
-cd ${prefix}/usr/lib/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-12.d
-cd ${prefix}/usr/lib/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-13.d
-cd ${prefix}/usr/lib/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-14.d
-cd ${prefix}/usr/lib/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-15.d
-cd ${prefix}/usr/lib/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-16.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.d -cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.d
mkdir -p ${prefix}/usr/lib/xen-tools/debian.d/ mkdir -p ${prefix}/usr/share/xen-tools/debian.d/
cp -R hooks/debian/*-* ${prefix}/usr/lib/xen-tools/debian.d cp -R hooks/debian/*-* ${prefix}/usr/share/xen-tools/debian.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sarge.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sarge.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d etch.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d lenny.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d lenny.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d squeeze.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d squeeze.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d wheezy.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d wheezy.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d jessie.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d jessie.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sid.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d testing.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d testing.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d stable.d -cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d stable.d
mkdir -p ${prefix}/usr/lib/xen-tools/gentoo.d/ mkdir -p ${prefix}/usr/share/xen-tools/gentoo.d/
cp -R hooks/gentoo/*-* ${prefix}/usr/lib/xen-tools/gentoo.d cp -R hooks/gentoo/*-* ${prefix}/usr/share/xen-tools/gentoo.d
mkdir -p ${prefix}/usr/lib/xen-tools/dapper.d/ mkdir -p ${prefix}/usr/share/xen-tools/dapper.d/
cp -R hooks/dapper/*-* ${prefix}/usr/lib/xen-tools/dapper.d/ cp -R hooks/dapper/*-* ${prefix}/usr/share/xen-tools/dapper.d/
mkdir -p ${prefix}/usr/lib/xen-tools/edgy.d/ mkdir -p ${prefix}/usr/share/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/lib/xen-tools/edgy.d/ cp -R hooks/edgy/*-* ${prefix}/usr/share/xen-tools/edgy.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d feisty.d -cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d feisty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d gutsy.d -cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d gutsy.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d hardy.d -cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d hardy.d
mkdir -p ${prefix}/usr/lib/xen-tools/intrepid.d/ mkdir -p ${prefix}/usr/share/xen-tools/intrepid.d/
cp -R hooks/intrepid/*-* ${prefix}/usr/lib/xen-tools/intrepid.d/ cp -R hooks/intrepid/*-* ${prefix}/usr/share/xen-tools/intrepid.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s intrepid.d jaunty.d -cd ${prefix}/usr/share/xen-tools/ && ln -s intrepid.d jaunty.d
mkdir -p ${prefix}/usr/lib/xen-tools/karmic.d/ mkdir -p ${prefix}/usr/share/xen-tools/karmic.d/
cp -R hooks/karmic/*-* ${prefix}/usr/lib/xen-tools/karmic.d/ cp -R hooks/karmic/*-* ${prefix}/usr/share/xen-tools/karmic.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d lucid.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d lucid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d maverick.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d maverick.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d natty.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d natty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d oneiric.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d oneiric.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d precise.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d quantal.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d quantal.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d raring.d -cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d raring.d
cp hooks/common.sh ${prefix}/usr/lib/xen-tools cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/lib/xen-tools cp -r hooks/common ${prefix}/usr/share/xen-tools
# #
@@ -300,7 +303,9 @@ uninstall:
-rm -rf ${prefix}/etc/xen-tools/skel -rm -rf ${prefix}/etc/xen-tools/skel
-rmdir ${prefix}/etc/xen-tools/ -rmdir ${prefix}/etc/xen-tools/
-rm -f ${prefix}/etc/bash_completion.d/xen-tools -rm -f ${prefix}/etc/bash_completion.d/xen-tools
# Maybe needed to remove older releases of xen-tools
rm -rf ${prefix}/usr/lib/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-create-image.8.gz
rm -f ${prefix}/usr/share/man/man8/xen-delete-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 rm -f ${prefix}/usr/share/man/man8/xen-list-images.8.gz

View File

@@ -1,5 +1,11 @@
xen-tools 4.3rc2 (released TODO) xen-tools 4.3.1 (released 30-Jun-2012)
======================================= ======================================
Bugfix Release only
xen-tools 4.3 (released 26-Jun-2012)
====================================
Bug Fixes Bug Fixes
--------- ---------

View File

@@ -40,11 +40,11 @@ known to work reliably, i.e.:
(only DomUs tested) (only DomUs tested)
* Dapper Drake 6.06 * Dapper Drake 6.06 (needs editing of `/usr/share/debootstrap/scripts/dapper` since at least debootstrap version 1.0.37, see [#659360][1])
* Edgy Eft 6.10 * Edgy Eft 6.10 (needs editing of `/usr/share/debootstrap/scripts/edgy` since at least debootstrap version 1.0.37, see [#659360][1])
* Feisty Fawn 7.04 * Feisty Fawn 7.04
* Gutsy Gibbon 7.10 * Gutsy Gibbon 7.10
* Hardy Heron 8.04 (see [1][]) * Hardy Heron 8.04 (see [Installing Ubuntu 8.04 as DomU][2])
* Interpid Ibex 8.10 * Interpid Ibex 8.10
* Jaunty Jackaplope 9.04 * Jaunty Jackaplope 9.04
* Karmic Koala 9.10 * Karmic Koala 9.10
@@ -56,10 +56,11 @@ known to work reliably, i.e.:
* Quantal Quetzal 12.10 * Quantal Quetzal 12.10
* Raring Ringtail 13.04 (preliminary support as it's not yet available) * Raring Ringtail 13.04 (preliminary support as it's not yet available)
[1]: http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest [1]: http://bugs.debian.org/659360
"There is an issue with debootstrap on hardy not installing ksyslogd "debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
This can be fixed by chrooting into the newly installed system and
removing the startup scripts." [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 ### CentOS

View File

@@ -3,12 +3,6 @@ TODO
See KNOWN_BUGS.markdown for real bugs. See KNOWN_BUGS.markdown for real bugs.
Bugs to fix and features to add for 4.3
---------------------------------------
Refactor TLS disabling. Seems to be happen twice, once in 20-setup-apt
and once in 10-disable-tls.
Bugs to fix and features to add for 5.0 Bugs to fix and features to add for 5.0
--------------------------------------- ---------------------------------------
@@ -181,6 +175,18 @@ Bugs to fix and features to add for 5.0
* Use `Perl::Critic` * Use `Perl::Critic`
* Refactor the different Ubuntu hooks directories so that only one
ubuntu hooks directory is left.
Then also refactor TLS disabling so that it works on all
distributions the same. Currently Debian is a special case and
Ubuntu half a special case.
* Replace findBinary() with File::Which
* Remove from the (unused) Xen::Tools what's already in the used
Xen::Tools::Common.
Stuff from Steve's TODO list / Generic TODOs Stuff from Steve's TODO list / Generic TODOs
-------------------------------------------- --------------------------------------------
@@ -188,6 +194,9 @@ Stuff from Steve's TODO list / Generic TODOs
* `xen-delete-image` should unallocate any used IP addresses. * `xen-delete-image` should unallocate any used IP addresses.
* `installGentooPackage` in `hooks/common.sh` is a stub and does
nothing yet.
Axel's Break-Backwards-Compatibility Wishlist Axel's Break-Backwards-Compatibility Wishlist
--------------------------------------------- ---------------------------------------------

View File

@@ -100,7 +100,8 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
--install=1 Specify whether to install the guest system or not. --install=1 Specify whether to install the guest system or not.
--keep Don't delete our images if installation fails. --keep Don't delete our images if installation fails. It maybe
unmounted, though.
--kernel=/path/to/kernel --kernel=/path/to/kernel
Set the path to the kernel to use for domU. If a Set the path to the kernel to use for domU. If a
@@ -769,7 +770,7 @@ Install an X11 server, using VNC and XDM
=head1 LICENSE =head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Development Team. All rights reserved. Development Team. All rights reserved.
This module is free software; This module is free software;
@@ -779,6 +780,7 @@ The LICENSE file contains the full text of the license.
=cut =cut
$SIG{INT} = \&clean_up;
use strict; use strict;
use English; use English;
@@ -787,6 +789,7 @@ use Env;
use File::Path qw/ mkpath /; use File::Path qw/ mkpath /;
use File::Temp qw/ tempdir /; use File::Temp qw/ tempdir /;
use File::Copy qw/ mv cp /; use File::Copy qw/ mv cp /;
use File::Which;
use Getopt::Long; use Getopt::Long;
use Pod::Usage; use Pod::Usage;
use Data::Dumper; use Data::Dumper;
@@ -1048,7 +1051,7 @@ if ( $CONFIG{ 'install' } )
# #
if ( !-x $MOUNT_POINT . "/bin/ls" ) if ( !-x $MOUNT_POINT . "/bin/ls" )
{ {
logprint("System installation failed. Aborting\n"); logprint("System installation failed: /bin/ls missing. Aborting.\n");
$CONFIG{'FAIL'} = 1; $CONFIG{'FAIL'} = 1;
exit 127; exit 127;
} }
@@ -1320,10 +1323,10 @@ sub setupDefaultOptions
# Initialize per distribution mirror defaults: Debian # Initialize per distribution mirror defaults: Debian
foreach my $debdist (qw(squeeze wheezy jessie sid testing oldstable stable unstable)) { foreach my $debdist (qw(squeeze wheezy jessie sid testing oldstable stable unstable)) {
$CONFIG{ 'mirror_'.$debdist } = $CONFIG{ 'mirror' } $CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian';
} }
foreach my $debdist (qw(sarge etch lenny)) { foreach my $debdist (qw(sarge etch lenny)) {
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian'; $CONFIG{ 'mirror_'.$debdist } = 'http://http.debian.net/debian-archive/debian';
} }
# Initialize per distribution mirror defaults: Ubuntu # Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(hardy lucid oneiric precise quantal raring)) { foreach my $ubuntudist (qw(hardy lucid oneiric precise quantal raring)) {
@@ -1333,7 +1336,9 @@ sub setupDefaultOptions
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu'; $CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
} }
$CONFIG{ 'apt_proxy' } = ''; $CONFIG{ 'apt_proxy' } = '';
$CONFIG{ 'arch' } = ''; $CONFIG{ 'arch' } =
which('dpkg') ? `dpkg --print-architecture` : '';
chomp($CONFIG{ 'arch' });
$CONFIG{ 'fs' } = 'ext3'; $CONFIG{ 'fs' } = 'ext3';
$CONFIG{ 'force' } = 0; $CONFIG{ 'force' } = 0;
$CONFIG{ 'no_xen_ok' } = 0; $CONFIG{ 'no_xen_ok' } = 0;
@@ -1421,9 +1426,9 @@ sub checkOption
message => "takes a suffixed integer.\n", message => "takes a suffixed integer.\n",
}, },
distribution => { distribution => {
check => sub { -d "/usr/lib/xen-tools/$_[0].d" }, check => sub { -d "/usr/share/xen-tools/$_[0].d" },
message => "takes a distribution name " . message => "takes a distribution name " .
"(see /usr/lib/xen-tools for valid values).\n", "(see /usr/share/xen-tools for valid values).\n",
}, },
imageType => { imageType => {
check => qr/^sparse|full$/, check => qr/^sparse|full$/,
@@ -1666,7 +1671,7 @@ sub parseCommandLineArguments
"keep", \$CONFIG{ 'keep' }, "keep", \$CONFIG{ 'keep' },
"template=s", \&checkOption, "template=s", \&checkOption,
"output=s", \&checkOption, "output=s", \&checkOption,
"extension=s", \&checkOption, "extension:s", \&checkOption,
"dontformat", \&checkOption, "dontformat", \&checkOption,
# Help options # Help options
@@ -1823,9 +1828,10 @@ sub checkArguments
# #
if ( $CONFIG{ 'dist' } =~ /sarge/ and if ( $CONFIG{ 'dist' } =~ /sarge/ and
$CONFIG{ 'arch' } =~ /amd64/ and $CONFIG{ 'arch' } =~ /amd64/ and
$CONFIG{ 'mirror_sarge' } eq 'http://archive.debian.org/debian' ) $CONFIG{ 'mirror_sarge' } =~ m(/debian-archive/debian/?$))
{ {
$CONFIG{ 'mirror_sarge' } = 'http://archive.debian.org/debian-amd64'; $CONFIG{ 'mirror_sarge' } =~
s(/debian-archive/debian/?)(/debian-archive/debian-amd64);
} }
# #
@@ -3516,15 +3522,6 @@ sub installSystem
sub exportEnvironment sub exportEnvironment
{ {
#
# Per-distribution mirror?
#
my $distMirror = "mirror_" . $CONFIG{ 'dist' };
if ( $CONFIG{ $distMirror } && length( $CONFIG{ $distMirror } ) )
{
$CONFIG{ 'mirror' } = $CONFIG{ $distMirror };
}
# #
# Export partitions array to configuration # Export partitions array to configuration
# #
@@ -3534,7 +3531,9 @@ sub exportEnvironment
{ {
if ( defined( $CONFIG{ $key } ) ) if ( defined( $CONFIG{ $key } ) )
{ {
$ENV{ $key } = $CONFIG{ $key }; my $envkey = $key;
$envkey =~ s/-/_/g;
$ENV{ $envkey } = $CONFIG{ $key };
} }
} }
} }
@@ -4029,13 +4028,13 @@ sub generatePassword {
sub unMountImage sub unMountImage
{ {
my ($point) = (@_); my ($point, $fail_ok) = (@_);
# #
# First we unmount /proc and /dev/pts in the guest install. # First we unmount /proc and /dev/pts in the guest install.
# #
runCommand("umount $point/proc", \%CONFIG); runCommand("umount $point/proc", \%CONFIG, $fail_ok);
#runCommand("umount $point/dev/pts", \%CONFIG); #runCommand("umount $point/dev/pts", \%CONFIG, $fail_ok);
# #
# Open /proc/mount and get a list of currently mounted paths # Open /proc/mount and get a list of currently mounted paths
@@ -4072,7 +4071,7 @@ sub unMountImage
foreach my $path (@points) foreach my $path (@points)
{ {
$CONFIG{ 'verbose' } && print "Unmounting : $path\n"; $CONFIG{ 'verbose' } && print "Unmounting : $path\n";
runCommand("umount $path", \%CONFIG); runCommand("umount $path", \%CONFIG, $fail_ok);
} }
$MOUNT_POINT = undef; $MOUNT_POINT = undef;
@@ -4088,9 +4087,19 @@ sub unMountImage
=cut =cut
sub END sub clean_up () {
if ( defined($MOUNT_POINT) )
{ {
exit 0 if $VERSION || $HELP || $MANUAL || $DUMPCONFIG; unMountImage($MOUNT_POINT, 1);
}
}
END
{
# Capture exit code
my $exitcode = $?;
exit $exitcode if $VERSION || $HELP || $MANUAL || $DUMPCONFIG;
my $host_rsa_key = ''; my $host_rsa_key = '';
# #
@@ -4108,7 +4117,7 @@ sub END
} else { } else {
$host_rsa_key = "N/A"; $host_rsa_key = "N/A";
} }
unMountImage($MOUNT_POINT); unMountImage($MOUNT_POINT, $CONFIG{'FAIL'});
} }
# #
@@ -4117,14 +4126,6 @@ sub END
# #
if ( $CONFIG{ 'boot' } and !$CONFIG{'FAIL'} ) if ( $CONFIG{ 'boot' } and !$CONFIG{'FAIL'} )
{ {
#
# Unmount the image and any subsequent mounts.
#
if ( defined($MOUNT_POINT) ) {
unMountImage($MOUNT_POINT);
}
# #
# If there is an /etc/xen/auto directory then link in the # If there is an /etc/xen/auto directory then link in the
# domain so that it will automatically restart, if it isn't # domain so that it will automatically restart, if it isn't
@@ -4188,7 +4189,7 @@ sub END
# $CONFIG{'FAIL'} = 0 - Success # $CONFIG{'FAIL'} = 0 - Success
# $CONFIG{'FAIL'} = 1 - Failed to install, delete the image # $CONFIG{'FAIL'} = 1 - Failed to install, delete the image
# $CONFIG{'FAIL'} = 2 - Files exist, either .cfg or lvm... etc # $CONFIG{'FAIL'} = 2 - Files exist, either .cfg or lvm... etc
if ( ($CONFIG{'FAIL'} == 1 or $CONFIG{'FAIL'} == 1) && ( !$CONFIG{ 'keep' } ) ) if ( $CONFIG{'FAIL'} == 1 && ( !$CONFIG{ 'keep' } ) )
{ {
# #
@@ -4238,4 +4239,6 @@ sub END
} }
logprint("\n"); logprint("\n");
} }
exit $exitcode;
} }

View File

@@ -8,6 +8,10 @@ xen-delete-image - Delete previously created Xen instances.
xen-delete-image [options] [--hostname=]imageName1 [--hostname=]imageName2 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 Options:
--help Show help information. --help Show help information.
--manual Read the manual for this script. --manual Read the manual for this script.
@@ -142,7 +146,7 @@ Show the version number and exit.
=head1 LICENSE =head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Development Team. All rights reserved. Development Team. All rights reserved.
This module is free software; This module is free software;
@@ -181,6 +185,11 @@ my $RELEASE = '4.4~dev';
# #
$CONFIG{ 'xm' } = findXenToolstack(); $CONFIG{ 'xm' } = findXenToolstack();
#
# Default values
#
$CONFIG{ 'extension' } = '.cfg';
# #
# Read the global configuration file if it exists. # Read the global configuration file if it exists.
@@ -243,7 +252,9 @@ while ( my $name = shift )
my $hosts = $CONFIG{ 'hostname' }; my $hosts = $CONFIG{ 'hostname' };
foreach my $name (@$hosts) foreach my $name (@$hosts)
{ {
if ( $CONFIG{ 'no_xen_ok' } or !xenRunning($name, \%CONFIG) ) my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $name;
if ( $CONFIG{ 'no_xen_ok' } or !xenRunning($name, \%PER_HOST_CONFIG) )
{ {
deleteXenImage($name); deleteXenImage($name);
} }
@@ -282,6 +293,7 @@ sub parseCommandLineArguments
"dry-run", \$CONFIG{ 'dry-run' }, "dry-run", \$CONFIG{ 'dry-run' },
"lvm=s", \$CONFIG{ 'lvm' }, "lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$CONFIG{ 'evms' }, "evms=s", \$CONFIG{ 'evms' },
"extension:s", \$CONFIG{ 'extension' },
"hostname=s@", \$CONFIG{ 'hostname' }, "hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' }, "test", \$CONFIG{ 'test' },
"verbose", \$CONFIG{ 'verbose' }, "verbose", \$CONFIG{ 'verbose' },
@@ -371,17 +383,17 @@ sub deleteXenImage
# #
# Delete the Xen auto-start file if it exists. # 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. # 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' } );
} }
# #

View File

@@ -8,6 +8,10 @@ xen-list-images - List all the created and configured Xen images.
xen-list-image [options] xen-list-image [options]
Filename Options:
--extension Specify the file extension to use. An empty extension is equal
to any extension.
Help Options: Help Options:
--help Show this scripts help information. --help Show this scripts help information.
--manual Read this scripts manual. --manual Read this scripts manual.
@@ -67,7 +71,7 @@ Show the version number and exit.
=head1 LICENSE =head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Development Team. All rights reserved. Development Team. All rights reserved.
This module is free software; This module is free software;
@@ -95,9 +99,10 @@ use Xen::Tools::Common;
my %CONFIG; my %CONFIG;
# #
# Default prefix # Default values
# #
$CONFIG{ 'prefix' } = "/etc/xen"; $CONFIG{ 'prefix' } = "/etc/xen";
$CONFIG{ 'extension' } = '.cfg';
# #
# Release number. # Release number.
@@ -162,6 +167,7 @@ sub parseCommandLineArguments
# Parse options. # Parse options.
# #
GetOptions( "test=s", \$CONFIG{ 'prefix' }, GetOptions( "test=s", \$CONFIG{ 'prefix' },
"extension:s", \$CONFIG{ 'extension' },
"help", \$HELP, "help", \$HELP,
"manual", \$MANUAL, "manual", \$MANUAL,
"version", \$VERSION ); "version", \$VERSION );
@@ -192,9 +198,12 @@ sub findXenInstances
{ {
my @found; 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); return (@found);
@@ -259,6 +268,7 @@ sub displayInstance
print "Memory: $mem\n"; print "Memory: $mem\n";
print "IP: " . $ip . $mac . "\n" if length($ip); print "IP: " . $ip . $mac . "\n" if length($ip);
print "DHCP" . $mac . "\n" if $dhcp; print "DHCP" . $mac . "\n" if $dhcp;
print "Config: $file\n";
} }

View File

@@ -215,7 +215,7 @@ sub parseCommandLineArguments
# #
GetOptions( "admins=s", \$ENV{ 'admins' }, GetOptions( "admins=s", \$ENV{ 'admins' },
"output=s", \$CONFIG{ 'output' }, "output=s", \$CONFIG{ 'output' },
"extension=s", \$CONFIG{ 'extension' }, "extension:s", \$CONFIG{ 'extension' },
"template=s", \$CONFIG{ 'template' }, "template=s", \$CONFIG{ 'template' },
"verbose", \$CONFIG{ 'verbose' }, "verbose", \$CONFIG{ 'verbose' },
"help", \$HELP, "help", \$HELP,
@@ -398,13 +398,13 @@ sub createXenConfig
$ENV{ 'image_suffix' } = ''; $ENV{ 'image_suffix' } = '';
importPartitionsFromEnvironment(); 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 else
{ {

View File

@@ -54,7 +54,7 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
the --location option. the --location option.
For the distribution named 'foo' the scripts will be loaded and 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. be loaded and executed in sorted order.
=cut =cut
@@ -215,7 +215,7 @@ sub checkArguments
# If there are no scripts then we clearly cannot # If there are no scripts then we clearly cannot
# customise it! # customise it!
# #
my $dir = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d"; my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir ) if ( !-d $dir )
{ {
@@ -257,7 +257,7 @@ sub runDistributionHooks
# #
# Hook directory. # Hook directory.
# #
my $hooks = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d/"; my $hooks = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
# #
# Installation prefix # Installation prefix

View File

@@ -55,9 +55,9 @@ full text of the license.
# Fallback to Debian or Ubuntu in case we can't find anything # Fallback to Debian or Ubuntu in case we can't find anything
my $fallback = 'Debian'; my $fallback = 'Debian';
# Which mirrors to use if everything else fails (cdn.debian.net uses # Which mirrors to use if everything else fails (http.debian.net
# GeoIP, see http://wiki.debian.org/DebianGeoMirror) # redirects to a working mirror nearby)
my %fallback_mirror = ( Debian => 'http://cdn.debian.net/debian/', my %fallback_mirror = ( Debian => 'http://http.debian.net/debian/',
Ubuntu => 'http://archive.ubuntu.com/ubuntu/' ); Ubuntu => 'http://archive.ubuntu.com/ubuntu/' );
# Which suite to use if everything else fails. For Debian "stable" # Which suite to use if everything else fails. For Debian "stable"

View File

@@ -387,7 +387,7 @@ sub checkArguments
# If there are no scripts then we clearly cannot # If there are no scripts then we clearly cannot
# customise it! # customise it!
# #
my $dir = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d"; my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir ) if ( !-d $dir )
{ {

15
debian/NEWS vendored
View File

@@ -1,3 +1,18 @@
xen-tools (4.4~dev-1) UNRELEASED; 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, 05 Apr 2013 20:19:02 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low xen-tools (4.2~rc1-1) unstable; urgency=low
By default, xen-create-image now generates a random root password and By default, xen-create-image now generates a random root password and

44
debian/changelog vendored
View File

@@ -2,6 +2,9 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
* New upstream release * New upstream release
- Code deduplication to unify the xen-*-image scripts - 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) - Fix symbolic link hooks/centos-6/15-setup-arch (Closes: #690299)
- Execute END block not on --version/--help/--manual (Closes: #684346) - Execute END block not on --version/--help/--manual (Closes: #684346)
- Move code for --boot feature to END block. Fixes missing SSH - Move code for --boot feature to END block. Fixes missing SSH
@@ -10,16 +13,51 @@ xen-tools (4.4~dev-1) UNRELEASED; urgency=low
- Also recognize "M" and "G" instead of "MB" and "GB" as size unit for - Also recognize "M" and "G" instead of "MB" and "GB" as size unit for
--memory. (Closes: #691320) Document the recognized units. --memory. (Closes: #691320) Document the recognized units.
- Default DomUs to use the noop scheduler (Closes: #693131) - 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 - Remove CVS revisions from --version output
- Preliminary support for Debian Jessie and Ubuntu Raring - Preliminary support for Debian Jessie and Ubuntu Raring
- Preliminary support for xl toolstack - Preliminary support for xl toolstack
- xen-create-image: Consistently use runCommand() instead of system() - xen-create-image: Consistently use runCommand() instead of system()
- Makefile accepts DESTDIR=…
- Move examples from debian/examples to examples.
- Uses File::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. Also supports RPM-based distributions now.
- Fix 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; add according build-dependency.
* Add debian/gbp.conf to be able to to build xen-tools with * Add debian/gbp.conf to be able to to build xen-tools with
git-buildpackage. git-buildpackage.
* Install (manually generated) upstream ChangeLog only if it * Clean up debian/rules:
exists. Allows automatic builds from the git repository. - 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 copyright years in debian/copyright.
* Apply wrap-and-sort.
-- Axel Beckert <abe@debian.org> Tue, 13 Nov 2012 23:37:54 +0100 -- Axel Beckert <abe@debian.org> Thu, 17 Jan 2013 17:09:02 +0100
xen-tools (4.3.1-1) unstable; urgency=low xen-tools (4.3.1-1) unstable; urgency=low

30
debian/control vendored
View File

@@ -2,7 +2,16 @@ Source: xen-tools
Section: utils Section: utils
Priority: extra Priority: extra
Maintainer: Axel Beckert <abe@debian.org> Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl, libfile-slurp-perl, devscripts, libmoose-perl, libtest-pod-coverage-perl, git Build-Depends: debhelper (>= 7.0.0),
devscripts,
git,
libfile-slurp-perl,
libfile-which-perl,
libmoose-perl,
libtest-notabs-perl,
libtest-pod-coverage-perl,
libtest-pod-perl,
libtext-template-perl
Standards-Version: 3.9.3 Standards-Version: 3.9.3
Homepage: http://xen-tools.org/software/xen-tools Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
@@ -10,9 +19,22 @@ Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
Package: xen-tools Package: xen-tools
Architecture: all Architecture: all
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}, openssh-client Depends: debootstrap | cdebootstrap,
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse (>= 1.9.1-1), libexpect-perl, xen-utils libconfig-inifiles-perl,
Suggests: reiserfsprogs, xfsprogs, cfengine2, btrfs-tools libfile-slurp-perl,
libfile-which-perl,
libtext-template-perl,
openssh-client,
perl-modules,
${misc:Depends}
Recommends: libexpect-perl,
rinse (>= 1.9.1-1),
xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae,
xen-utils
Suggests: btrfs-tools,
cfengine2,
reiserfsprogs,
xfsprogs
Description: Tools to manage Xen virtual servers Description: Tools to manage Xen virtual servers
This package contains tools to manage Debian based Xen virtual servers. This package contains tools to manage Debian based Xen virtual servers.
. .

2
debian/copyright vendored
View File

@@ -4,7 +4,7 @@ Tue, 20 Dec 2005 02:21:05 +0200.
It was downloaded from http://xen-tools.org/software/xen-tools/ It was downloaded from http://xen-tools.org/software/xen-tools/
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk> Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
Copyright 2010-2012: The Xen-Tools Development Team, currently consisting of: Copyright 2010-2013: The Xen-Tools Development Team, currently consisting of:
Axel Beckert <abe@deuxchevaux.org>, Axel Beckert <abe@deuxchevaux.org>,
Dmitry Nedospasov <dmitry@nedos.net>, and Dmitry Nedospasov <dmitry@nedos.net>, and
Stéphane Jourdois <sjourdois@gmail.com> Stéphane Jourdois <sjourdois@gmail.com>

2
debian/dirs vendored
View File

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

2
debian/docs vendored
View File

@@ -4,4 +4,4 @@ SUPPORT.markdown
BUGS.markdown BUGS.markdown
TODO.markdown TODO.markdown
KNOWN_BUGS.markdown KNOWN_BUGS.markdown
NEWS NEWS.markdown

1
debian/examples vendored Normal file
View File

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

54
debian/rules vendored
View File

@@ -2,55 +2,7 @@
# Uncomment this to turn on verbose mode. # Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1 #export DH_VERBOSE=1
%:
dh $@
configure: configure-stamp override_dh_auto_build:
configure-stamp:
dh_testdir
touch configure-stamp
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
touch build-stamp
clean:
dh_testdir
dh_testroot
make clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_auto_test
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
[ ! -e ChangeLog ] || 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

1
debian/triggers vendored Normal file
View File

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

View File

@@ -292,6 +292,7 @@ mirror = `xt-guess-suite-and-mirror --mirror`
# #
# Filesystem options for the different filesystems we support. # Filesystem options for the different filesystems we support.
# #
ext4_options = noatime,nodiratime,errors=remount-ro
ext3_options = noatime,nodiratime,errors=remount-ro ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults xfs_options = defaults

View File

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

View File

@@ -8,8 +8,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -8,8 +8,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -60,7 +60,7 @@ assert ()
# We take special care so that daemons shouldn't start after installation # We take special care so that daemons shouldn't start after installation
# which they might otherwise do. # which they might otherwise do.
# #
# NOTE: Function not renamed with trailing "s" for compatability reasons. # NOTE: Function not renamed with trailing "s" for compatibility reasons.
# #
installDebianPackage () installDebianPackage ()
{ {
@@ -98,7 +98,7 @@ installDebianPackage ()
# #
# Install the packages # Install the packages
# #
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install "$@" DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes --no-install-recommends install "$@"
# #
# Remove the policy-rc.d script. # Remove the policy-rc.d script.
@@ -113,6 +113,143 @@ installDebianPackage ()
} }
#
# Generate a Debian-/Ubuntu-compliant menu.lst for legacy GRUB
#
generateDebianGrubMenuLst ()
{
prefix="$1"
DOMU_ISSUE="$2"
DOMU_KERNEL="$3"
DOMU_RAMDISK="$4"
#
# Log our options
#
logMessage "Generating a legacy GRUB menu.lst into prefix ${prefix}"
#
# We require at least 3 parameters
#
assert "$LINENO" "${prefix}"
assert "$LINENO" "${DOMU_ISSUE}"
assert "$LINENO" "${DOMU_KERNEL}"
#
# Prefix must be a directory, kernel a file
#
assert "$LINENO" -d ${prefix}
assert "$LINENO" -f "${prefix}/boot/${DOMU_KERNEL}"
#
# Generate a menu.lst for pygrub
#
mkdir -p ${prefix}/boot/grub
cat << E_O_MENU > ${prefix}/boot/grub/menu.lst
default 0
timeout 2
### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below
## DO NOT UNCOMMENT THEM, Just edit them to your needs
## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/xvda2 ro elevator=noop
## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)
## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true
## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false
## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=
## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false
## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(single-user) single
# altoptions=(single-user mode) single
## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all
## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=false
## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false
## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false
## ## End Default Options ##
### END DEBIAN AUTOMAGIC KERNELS LIST
# Entries statically generated bu xen-tools upon installation. Maybe
# removed manually if the entries above (generated by update-grub)
# seem to work fine.
title $DOMU_ISSUE
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Single-User)
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro single elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Default Kernel)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro elevator=noop
initrd /initrd.img
title $DOMU_ISSUE (Default Kernel, Single-User)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda2 ro single elevator=noop
initrd /initrd.img
E_O_MENU
}
# #
# Disable the start-stop-daemon # Disable the start-stop-daemon
@@ -191,9 +328,9 @@ removeDebianPackage ()
# #
# Install a CentOS4 package via yum # Install a RPM package via yum
# #
installCentOS4Package () installRPMPackage ()
{ {
prefix=$1 prefix=$1
package=$2 package=$2
@@ -201,7 +338,7 @@ installCentOS4Package ()
# #
# Log our options # Log our options
# #
logMessage "Installing CentOS4 ${package} to prefix ${prefix}" logMessage "Installing RPM ${package} to prefix ${prefix}"
# #
# We require a package + prefix # We require a package + prefix
@@ -220,6 +357,15 @@ installCentOS4Package ()
chroot ${prefix} /usr/bin/yum -y install ${package} chroot ${prefix} /usr/bin/yum -y install ${package}
} }
# Backwards Compatibility Function
installCentOS4Package () ( installRPMPackage "$@" )
#
# Functions to test if we're on a redhatesk or debianesk system
#
isDeb() ( [ -x $1/usr/bin/apt-get -a -x $1/usr/bin/dpkg ] )
isYum() ( [ -x $1/usr/bin/yum ] )
# #
@@ -230,11 +376,11 @@ installPackage ()
prefix=$1 prefix=$1
package=$2 package=$2
if [ -x ${prefix}/usr/bin/apt-get ] ; then if isDeb ; then
installDebianPackage "$@" installDebianPackage "$@"
elif [ -x ${prefix}/usr/bin/yum ] ; then elif isYum ; then
installCentOS4Package "$@" installRPMPackage "$@"
else else
logMessage "Unable to install package ${package}; no package manager found" logMessage "Unable to install package ${package}; no package manager found"
@@ -261,4 +407,3 @@ installGentooPackage ()
logMessage "NOTE: Not doing anything - this is a stub - FIXME" logMessage "NOTE: Not doing anything - this is a stub - FIXME"
} }

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -6,8 +6,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -70,18 +70,14 @@ chroot ${prefix} /usr/bin/apt-get update
# #
# Now fixup TLS on non-64bit systems after dapper. # Now fixup TLS on non-64bit systems after dapper. For dapper this is
# already fixed in 10-disable-tls.
# #
if [ "$dist" != 'dapper' ]; then if [ "$arch" = 'i386' -a "$dist" != 'dapper' ]; then
if [ "`uname -m`" = "x86_64" ]; then
logMessage "Ignoring TLS since we're a 64 bit host."
else
logMessage "Installing libc6-xen" logMessage "Installing libc6-xen"
installDebianPackage ${prefix} libc6-xen installDebianPackage ${prefix} libc6-xen
fi
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -11,8 +11,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -11,8 +11,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -38,9 +38,9 @@ mkdir -p ${prefix}/etc/ssh
# #
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA" logMessage "successfully generated RSA host key"
else else
logMessage "failed to generate Host RSA Key" logMessage "failed to generate RSA host key"
fi fi
fi fi
@@ -49,9 +49,9 @@ fi
# #
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA" logMessage "successfully generated DSA host key"
else else
logMessage "failed to generate Host DSA Key" logMessage "failed to generate DSA host key"
fi fi
fi fi

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -19,8 +19,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -73,11 +73,6 @@ else
cp -au /lib/modules/$(uname -r) ${prefix}/lib/modules cp -au /lib/modules/$(uname -r) ${prefix}/lib/modules
fi fi
#
# Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools
fi # if pygrub fi # if pygrub
# #

View File

@@ -19,8 +19,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -0,0 +1,44 @@
#!/bin/sh
#
# Ensure that either modules-init-tools or kmod is setup.
#
# This is required in most setups. But even if it isn't required it
# can't really do anything bad; just waste a bit of space.
#
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
#
# Log our start
#
logMessage Script $0 starting
#
# Install either kmod or module-init-tools package.
#
if chroot ${prefix} /usr/bin/apt-cache show module-init-tools >/dev/null 2>/dev/null; then
if chroot ${prefix} /usr/bin/apt-cache show module-init-tools | fgrep -qi transitional; then
installDebianPackage ${prefix} kmod
else
installDebianPackage ${prefix} module-init-tools
fi
else
installDebianPackage ${prefix} kmod
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -0,0 +1,52 @@
#!/bin/sh
#
# Ensure that either modules-init-tools or kmod is setup.
#
# This is most likely required if you're using a custom kernel
# for your Xen system. But even if it isn't required it can't
# really do anything bad; just waste a bit of space.
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
#
# Log our start
#
logMessage Script $0 starting
if [ ${pygrub} ]; then
#
# Install the grub 0.9x package ("grub-legacy" on Debian, "grub" on Ubuntu)
#
if chroot ${prefix} /usr/bin/apt-cache show grub-legacy 2>/dev/null | egrep -qi 'GRand Unified Bootloader.*Legacy'; then
installDebianPackage ${prefix} grub-legacy
else
installDebianPackage ${prefix} grub
fi
if [ ! -e ${prefix}/boot/grub/default ]; then
echo default > ${prefix}/boot/grub/default
fi
chroot ${prefix} /usr/sbin/update-grub
else
logMessage "pygrub not set, skipping grub-legacy installation"
fi # if pygrub
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -17,8 +17,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -100,6 +100,34 @@ for part in `seq 1 ${NUMPARTITIONS}`; do
done done
logMessage Checking for filesystem tools to install
#
# Install any required packages for the given root filesystem
#
if [ "$has_xfs" -eq 1 ]; then
installPackage ${prefix} xfsprogs
fi
if [ "$has_reiserfs" -eq 1 ]; then
if isAPT; then
installDebianPackage reiserfsprogs
elif isYum; then
installRPMPackage reiserfs-utils
else
logMessage "Unable to install reiserfs tools; no package manager recognized"
fi
fi
if [ "$has_btrfs" -eq 1 ]; then
if isAPT; then
installDebianPackage btrfs-tools
elif isYum; then
installRPMPackage btrfs-progs
else
logMessage "Unable to install btrfs tools; no package manager recognized"
fi
fi
# #
# Log our finish # Log our finish
# #

View File

@@ -1,45 +0,0 @@
#!/bin/sh
#
# Some root filesystems will require the installation of new packages
#
# 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 any required packages for the given root filesystem
#
if [ $has_xfs -eq 1 ]; then
installDebianPackage ${prefix} xfsprogs
fi
if [ $has_reiserfs -eq 1 ]; then
installDebianPackage ${prefix} reiserfsprogs
fi
if [ $has_btrfs -eq 1 ]; then
installDebianPackage ${prefix} btrfs-tools
fi
#
# Log our finish
#
logMessage Script $0 finished

View File

@@ -13,8 +13,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

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

View File

@@ -1 +0,0 @@
../common/91-install-fs-tools

View File

@@ -14,8 +14,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -90,30 +90,20 @@ fi
# #
chroot ${prefix} /usr/bin/apt-get update chroot ${prefix} /usr/bin/apt-get update
# #
# For sid or etch systems we install libc6-xen # For all systems after Sarge we install libc6-xen on i386
# #
# For sarge we don't have that option, so we disable TLS. # For Sarge we don't have that option, so we disable TLS the hard way.
# #
if [ "`uname -m`" = "x86_64" ]; then if [ "${arch}" = "i386" ]; then
if [ "${dist}" = 'sarge' ]; then
logMessage "Ignoring TLS since we're a 64 bit host."
else
case "${dist}" in
*)
logMessage "Installing xen-aware libc6"
installDebianPackage ${prefix} libc6-xen
;;
sarge)
logMessage "Disabling TLS" logMessage "Disabling TLS"
mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled
mkdir ${prefix}/lib/tls mkdir ${prefix}/lib/tls
;; else
esac logMessage "Installing xen-aware libc6"
installDebianPackage ${prefix} libc6-xen
fi
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -103,28 +103,8 @@ fi
# Generate a menu.lst for pygrub # Generate a menu.lst for pygrub
# #
mkdir -p ${prefix}/boot/grub generateDebianGrubMenuLst "${prefix}" "$DOMU_ISSUE" "$DOMU_KERNEL" "$DOMU_RAMDISK"
cat << E_O_MENU > ${prefix}/boot/grub/menu.lst
default 0
timeout 2
title $DOMU_ISSUE
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Single-User)
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro single elevator=noop
initrd /boot/$DOMU_RAMDISK
E_O_MENU
#
# Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools
else else
logMessage pygrub not set, skipping kernel install logMessage pygrub not set, skipping kernel install

View File

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

View File

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

View File

@@ -1 +0,0 @@
../common/91-install-fs-tools

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -27,7 +27,7 @@ fi
logMessage Script $0 starting logMessage Script $0 starting
if [ ${pygrub} ]; then if [ "${pygrub}" ]; then
# #
# Attempt to install a xen kernel, if that fails, then install a normal one # Attempt to install a xen kernel, if that fails, then install a normal one
@@ -78,32 +78,12 @@ fi
# Generate a menu.lst for pygrub # Generate a menu.lst for pygrub
# #
mkdir -p ${prefix}/boot/grub generateDebianGrubMenuLst "${prefix}" "$DOMU_ISSUE" "$DOMU_KERNEL" "$DOMU_RAMDISK"
cat << E_O_MENU > ${prefix}/boot/grub/menu.lst
default 0
timeout 2
title $DOMU_ISSUE
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Single-User)
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro single elevator=noop
initrd /boot/$DOMU_RAMDISK
E_O_MENU
#
# Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools
else else
logMessage pygrub not set, skipping kernel install logMessage pygrub not set, skipping kernel install
fi fi # if pygrub
# #
# Log our finish # Log our finish

View File

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

View File

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

View File

@@ -1 +0,0 @@
../common/91-install-fs-tools

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -16,8 +16,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
@@ -27,13 +27,13 @@ fi
logMessage Script $0 starting logMessage Script $0 starting
if [ ${pygrub} ]; then if [ "${pygrub}" ]; then
# #
# Attempt to install a xen kernel, if that fails, then install a normal one # Attempt to install a xen kernel, if that fails, then install a normal one
# #
KERNEL_PKG="linux-image-server" KERNEL_PKG="linux-image-virtual"
logMessage Attempting to install the $KERNEL_PKG kernel image logMessage Attempting to install the $KERNEL_PKG kernel image
logMessage WARNING: This kernel may not have pvops logMessage WARNING: This kernel may not have pvops
@@ -68,32 +68,11 @@ fi
# Generate a menu.lst for pygrub # Generate a menu.lst for pygrub
# #
mkdir -p ${prefix}/boot/grub generateDebianGrubMenuLst "${prefix}" "$DOMU_ISSUE" "$DOMU_KERNEL" "$DOMU_RAMDISK"
cat << E_O_MENU > ${prefix}/boot/grub/menu.lst
default 0
timeout 2
title $DOMU_ISSUE
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Single-User)
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro single elevator=noop
initrd /boot/$DOMU_RAMDISK
E_O_MENU
#
# Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools
else else
logMessage pygrub not set, skipping kernel install logMessage pygrub not set, skipping kernel install
fi fi # if pygrub
# #
# Log our finish # Log our finish

View File

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

View File

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

View File

@@ -1 +0,0 @@
../common/91-install-fs-tools

View File

@@ -15,25 +15,25 @@ prefix=$1
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi
if [ "${pygrub}" ]; then
# #
# Log our start # Log our start
# #
logMessage Script $0 starting logMessage Script $0 starting
if [ "${pygrub}" ]; then
# #
# The type of kernel that we will be installing # The type of kernel that we will be installing
# #
# linux_kernel_type="desktop" # linux_kernel_type="desktop"
# #
linux_kernel_type="server" linux_kernel_type="virtual"
linux_kernel_package="linux-image-${linux_kernel_type}" linux_kernel_package="linux-image-${linux_kernel_type}"
@@ -54,33 +54,17 @@ DOMU_KERNEL=$(basename $(ls -1 ${prefix}/boot/vmlinuz* | tail -n 1))
DOMU_RAMDISK=$(basename $(ls -1 ${prefix}/boot/initrd*|tail -n 1)) DOMU_RAMDISK=$(basename $(ls -1 ${prefix}/boot/initrd*|tail -n 1))
DOMU_ISSUE=$(head -n 1 ${prefix}/etc/issue | awk -F '\' '{ print $1 }' | sed 's/[ \t]*$//') DOMU_ISSUE=$(head -n 1 ${prefix}/etc/issue | awk -F '\' '{ print $1 }' | sed 's/[ \t]*$//')
mkdir -p ${prefix}/boot/grub #
cat << E_O_MENU > ${prefix}/boot/grub/menu.lst # Generate a menu.lst for pygrub
default 0 #
timeout 2
title $DOMU_ISSUE generateDebianGrubMenuLst "${prefix}" "$DOMU_ISSUE" "$DOMU_KERNEL" "$DOMU_RAMDISK"
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro elevator=noop
initrd /boot/$DOMU_RAMDISK
title $DOMU_ISSUE (Single-User)
root (hd0,0)
kernel /boot/$DOMU_KERNEL root=/dev/xvda2 ro single elevator=noop
initrd /boot/$DOMU_RAMDISK
E_O_MENU
else else
logMessage "Package '${linux_kernel_package}' is not available" logMessage "Package '${linux_kernel_package}' is not available"
fi fi
#
# Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools
else else
logMessage pygrub not set, skipping kernel install logMessage pygrub not set, skipping kernel install
fi # if pygrub fi # if pygrub

View File

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

View File

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

View File

@@ -1 +0,0 @@
../common/91-install-fs-tools

View File

@@ -218,9 +218,9 @@ sub findXenToolstack
=cut =cut
sub runCommand ($$) sub runCommand ($$;$)
{ {
my ($cmd, $CONFIG) = (@_); my ($cmd, $CONFIG, $fail_ok) = (@_);
# #
# Set a local if we don't have one. # Set a local if we don't have one.
@@ -245,11 +245,13 @@ sub runCommand ($$)
my $rcopen = open(CMD, '-|', $cmd); my $rcopen = open(CMD, '-|', $cmd);
if (!defined($rcopen)) { if (!defined($rcopen)) {
logprint_with_config("Starting command '$cmd' failed: $!\n", $CONFIG); logprint_with_config("Starting command '$cmd' failed: $!\n", $CONFIG);
unless ($fail_ok) {
logprint_with_config("Aborting\n", $CONFIG); logprint_with_config("Aborting\n", $CONFIG);
print "See /var/log/xen-tools/".$CONFIG->{'hostname'}.".log for details\n"; print "See /var/log/xen-tools/".$CONFIG->{'hostname'}.".log for details\n";
$CONFIG->{'FAIL'} = 1; $CONFIG->{'FAIL'} = 1;
exit 127; exit 127;
} }
}
while (my $line = <CMD>) { while (my $line = <CMD>) {
if ($CONFIG->{ 'verbose' }) { if ($CONFIG->{ 'verbose' }) {
@@ -270,9 +272,11 @@ sub runCommand ($$)
logprint_with_config("Running command '$cmd' failed with exit code $?.\n", $CONFIG); logprint_with_config("Running command '$cmd' failed with exit code $?.\n", $CONFIG);
logprint_with_config("Aborting\n", $CONFIG); logprint_with_config("Aborting\n", $CONFIG);
print "See /var/log/xen-tools/".$CONFIG->{'hostname'}.".log for details\n"; print "See /var/log/xen-tools/".$CONFIG->{'hostname'}.".log for details\n";
unless ($fail_ok) {
$CONFIG->{'FAIL'} = 1; $CONFIG->{'FAIL'} = 1;
exit 127; exit 127;
} }
}
} }

View File

@@ -65,8 +65,8 @@ _xen_create_image()
# Available distributions, by which we mean distributions which # Available distributions, by which we mean distributions which
# we have hook scripts available. # we have hook scripts available.
# #
for i in `/bin/ls -1 /usr/lib/xen-tools/ ` ; do for i in `/bin/ls -1 /usr/share/xen-tools/ ` ; do
if [ -d /usr/lib/xen-tools/${i} ]; then if [ -d /usr/share/xen-tools/${i} ]; then
dists="${dists} ${i/.d/}" dists="${dists} ${i/.d/}"
fi fi
done done

View File

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

View File

@@ -40,7 +40,7 @@ rm -rf $RPM_BUILD_ROOT
/etc/bash_completion.d/* /etc/bash_completion.d/*
/usr/bin/* /usr/bin/*
/usr/share/man/man8/* /usr/share/man/man8/*
/usr/lib/xen-tools /usr/share/xen-tools
%changelog %changelog

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -11,8 +11,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -30,8 +30,8 @@ source=/etc/xen-tools/sed.d/
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -16,8 +16,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -11,8 +11,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -8,8 +8,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -8,8 +8,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -12,8 +12,8 @@ prefix=$1
# #
# Source our common functions # Source our common functions
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
. ./hooks/common.sh . ./hooks/common.sh
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -15,8 +15,8 @@ prefix=$1
# #
# Source our common functions - this will let us install a Debian package. # Source our common functions - this will let us install a Debian package.
# #
if [ -e /usr/lib/xen-tools/common.sh ]; then if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh . /usr/share/xen-tools/common.sh
else else
echo "Installation problem" echo "Installation problem"
fi fi

View File

@@ -114,9 +114,9 @@ sub testFile
} }
#print " - remove quotes : $o "; #print " - remove quotes : $o ";
# #
# Discard anything after "=", or " " # Discard anything after "=", ":", or " "
# #
if ( $o =~ /(.*)[ \t=]+(.*)/ ) if ( $o =~ /(.*)[ \t=:]+(.*)/ )
{ {
$o = $1; $o = $1;
} }

View File

@@ -9,8 +9,10 @@
use strict; use strict;
use File::Find; use File::Find;
use Test::More; use Test::NoTabs;
# Check all Perl files
all_perl_files_ok();
# #
# Find all the files beneath the current directory, # Find all the files beneath the current directory,
@@ -18,8 +20,6 @@ use Test::More;
# #
find( { wanted => \&checkFile, no_chdir => 1 }, '.' ); find( { wanted => \&checkFile, no_chdir => 1 }, '.' );
done_testing();
# #
# Check a file. # Check a file.
# #
@@ -62,50 +62,17 @@ sub checkFile
( $line =~ /\/bin\/bash/ ) ) ( $line =~ /\/bin\/bash/ ) )
{ {
$isShell = 1; $isShell = 1;
last;
} }
if ( $line =~ /\/usr\/bin\/perl/ ) if ( $line =~ /\/usr\/bin\/perl/ )
{ {
$isPerl = 1; last;
} }
} }
close( INPUT ); close( INPUT );
# #
# Return if it wasn't a perl file. # Run check if it is a shell file.
# #
if ( $isShell || $isPerl ) notabs_ok( $file ) if $isShell;
{
#
# Count TAB characters
#
my $count = countTabCharacters( $file );
is( $count, 0, "Script has no tab characters: $file" );
}
}
=head2 countTabCharacters
=cut
sub countTabCharacters
{
my ( $file ) = (@_);
my $count = 0;
open( FILE, "<", $file )
or die "Cannot open $file - $!";
foreach my $line ( <FILE> )
{
while( $line =~ /(.*)\t(.*)/ )
{
$count += 1;
$line = $1 . $2;
}
}
close( FILE );
return( $count );
} }

View File

@@ -109,22 +109,22 @@ EOS
my $success = 0; my $success = 0;
foreach my $line ( split( /\n/, $output ) ) foreach my $line ( split( /\n/, $output ) )
{ {
if ( $line =~ /Memory: ([0-9]+)/i ) if ( $line =~ /Memory: ([0-9]+)/ )
{ {
is( $1, $memory, "We found the right amount of memory: $memory" ); is( $1, $memory, "We found the right amount of memory: $memory" );
$success += 1; $success += 1;
} }
if ( $line =~ /Name: (.*)/i ) if ( $line =~ /Name: (.*)/ )
{ {
is( $1, $name, "We found the correct hostname: $name" ); is( $1, $name, "We found the correct hostname: $name" );
$success += 1; $success += 1;
} }
if ( $line =~ /DHCP/i ) if ( $line =~ /DHCP/ )
{ {
is( $dhcp, 1, "Found the right DHCP details" ); is( $dhcp, 1, "Found the right DHCP details" );
$success += 1; $success += 1;
} }
if ( $line =~ /IP: ([0-9.]+)/i ) if ( $line =~ /IP: ([0-9.]+)/ )
{ {
is( $1, $ip, "We found the IP address: $ip" ); is( $1, $ip, "We found the IP address: $ip" );
is( $dhcp, 0, "And DHCP is disabled" ); is( $dhcp, 0, "And DHCP is disabled" );