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

Compare commits

..

169 Commits

Author SHA1 Message Date
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
8b4701875f TODO: About code deduplication in hooks/. 2012-05-31 01:29:01 +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
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
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
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
229 changed files with 2941 additions and 10489 deletions

1
.gitignore vendored
View File

@@ -5,7 +5,6 @@
.*
# but we _wan't_ those dot-files
!.gitignore
!.hgignore
!.mailmap
# ChangeLog is generated during make

View File

@@ -1,5 +0,0 @@
(^|/)CVS($|/)
(^|/)\.hg($|/)
(^|/)\.hgtags($|/)
ChangeLog
~$

22
AUTHORS
View File

@@ -24,6 +24,16 @@ 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
Edd Dumbill <edd [at] com.usefulinc>
- Contributed APT sources.list file for Ubuntu's Dapper release.
@@ -42,6 +52,9 @@ Contributions
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.
@@ -80,6 +93,10 @@ Contributions
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
Radu Spineanu <radu [at] org.debian>
- Supplied many small tweaks, bugfixes, and suggestions.
- Radu is also one of the former Debian package maintainers.
@@ -93,6 +110,11 @@ 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.
xstasi on Launchpad
- Proper upstart handling in the chroot

View File

@@ -11,3 +11,36 @@ Bugs to fix before a 4.3 release
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.
That implies that if you specified :
/boot
/
in that order, / was mounted _over_ /boot, and you would not _see_ /boot.
Xen-Tools would then install boot on your / partition, and your boot device
was just empty and unbootable.
Workaround for 4.2 is to write your partition file such as mounts overlap
correctly when mounted in specified order.
Current (unreleased) fix is to sort by mountpoint length.
Fix would be to reproduce what mount does with mount -a.
* 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
-----------------
t/xen-tools.t can't really test Xen::Tools as the latter requires a
local Xen installation. For proper testing, a dummy set of Xen
configuration files and configurable paths to them in Xen::Tools would
be necessary.

View File

@@ -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-2012: 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

View File

@@ -14,12 +14,10 @@
#
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.2.1
VERSION = 4.3.1
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = $(shell if git ls-files > /dev/null; then echo git; \
elif hg st > /dev/null; then echo hg; \
else echo cannot-determine-used-vcs; fi)
VCS = git
#
# Installation prefix, useful for the Debian package.
@@ -70,6 +68,7 @@ clean:
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; 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
#
@@ -148,9 +147,11 @@ install-hooks:
for i in ${prefix}/usr/lib/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/lib/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/lib/xen-tools/centos-6.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/centos-6/*-* ${prefix}/usr/lib/xen-tools/centos-6.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
@@ -161,6 +162,10 @@ install-hooks:
-cd ${prefix}/usr/lib/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/lib/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/lib/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/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.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
@@ -188,7 +193,11 @@ install-hooks:
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d lucid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d maverick.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d natty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d oneiric.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d quantal.d
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
cp -r hooks/common ${prefix}/usr/lib/xen-tools
#
@@ -230,20 +239,19 @@ release: tidy fixup-perms update-version update-modules clean changelog
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)/.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 .
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz ..
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
gpg --armour --detach-sign $(BASE)-$(VERSION).tar.gz
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
#
# Make a new orig.tar.gz for the Debian package
#
orig-tar-gz: release
mv $(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
mv $(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
cp -p ../$(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
cp -p ../$(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
#

69
NEWS Normal file
View File

@@ -0,0 +1,69 @@
xen-tools 4.3rc2 (released TODO)
=======================================
Bug Fixes
---------
* Fix several testuite failures depending on the build host's
installation.
Other Changes
-------------
* Remove most Mercurial traces
xen-tools 4.3rc1 (released 08 Jun 2012)
=======================================
New Features and Major Changes
------------------------------
* Massive code deduplication in hooks directory
New Options
-----------
--dontformat (xen-create-image)
--finalrole (xen-create-image)
--apt_proxy (xen-create-image)
Newly Supported Distribution Releases
-------------------------------------
* Ubuntu 11.10 Oneiric
* Ubuntu 12.04 Precise
* Ubuntu 12.10 Quantal
* CentOS 6
xen-tools 4.2.1 (released 17 Mar 2011)
======================================
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 http://wiki.debian.org/DebianGeoMirror for
details.
* New helper program xt-guess-suite-and-mirror, used to find the
default mirror and suite.

22
README
View File

@@ -19,20 +19,21 @@ About:
xen-tools currently has scripts to install most releases of Debian
(starting with 3.1 "Sarge") and Ubuntu (starting with 6.06 LTS
"Dapper") and some RPM-based distributions.
"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, i.e.:
Debian:
* Sarge 3.1 (i386 only)
* Etch 4.0
* Sarge 3.1 (i386 and DomU only)
* Etch 4.0 (Dom0 no more tested)
* Lenny 5.0
* Squeeze 6.0
* Wheezy 7.0 (preliminary support as it's not yet available)
* Wheezy 7.0
* Sid (works at least at the moment of writing :-)
Ubuntu:
Ubuntu (only DomUs tested):
* Dapper Drake 6.06
* Edgy Eft 6.10
* Feisty Fawn 7.04
@@ -42,8 +43,15 @@ About:
* Jaunty Jackaplope 9.04
* Karmic Koala 9.10
* Lucid Lynx 10.04
* Maverick Meerkat 10.10 (works at least at the moment of writing :-)
* Natty Narwhal 11.04 (preliminary support as it's not yet available)
* Maverick Meerkat 10.10
* Natty Narwhal 11.04
* Oneiric Ocelot 11.10
* Precise Pangolin 12.04
* Quantal Quetzal 12.10 (preliminary support as it's not yet available)
CentOS (only DomUs tested, pygrub support incomplete):
* CentOS 5
* CentOS 6
[1] There is an issue with debootstrap on hardy not installing ksyslogd
This can be fixed by chrooting into the newly installed system

94
TODO
View File

@@ -3,6 +3,12 @@ TODO
See KNOWN_BUGS 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
---------------------------------------
@@ -28,6 +34,19 @@ Bugs to fix and features to add for 5.0
are examples, and shouldn't cover every single scenario. They
are also easy to write.
* Think again about disk_device checks :
Newer Xen provides "xvda", older provided "sda". The current check for
valid values of disk_device (used for root device in domU /etc/fstab)
does only allow those values.
This forbids any deployment of LVM/RAID _inside_ domU, which cannot
be created by xen-tools anyway. So the current check is fine with the
current possibilities of xen-tools, but could become a limitation.
- Is it possible/wanted to "query" xend for default device names ?
- Is it possible to create /dev/mapper devices with xend conf ?
- Can we just avoid to ask for this value and not specify the device
in /etc/fstab (and use /dev/root, /dev/by-uuid, or anything ?)
* xen-create-image --dist=... / sources.list generation should be more fine-grained
xen-tools should offer the possibility to enable/disable
@@ -82,20 +101,27 @@ Bugs to fix and features to add for 5.0
* Clean up the hooks directory
Currently we have one directory for Ubuntu and Fedora named after
the first supported release which is then duplicated for each
subsequent release.
We still have a link farm for hooks and a meta link farm for distro
releases created on "make install". It probably would be better if
we would just have one directory per distro (like with debian) but
without the need to created symlinks on "make install"
Currently CentOS's 25-setup-kernel creates an fstab and
90-make-fstab does again. It works, but that cries for debugging
hell.
centos-5/25-setup-kernel centos-6/25-setup-kernel still differ and
I'm not sure if that's necessary respectively what's the common
denominator.
80-install-kernel is not yet merged into one hook script.
Common oneliners for code deduplication in the hooks/ directory:
$ find -L . -not -xtype l -not -type d -not -path '*/common/*' | sort -t / -k3
$ fdupes -r1 . | sort -t / -k3
$ find . -type f | sim_text -ipTt 50 | tac | column -t
I'm sure this won't scale forever. So to minimise code duplication
I'd like to have one common directory per distribution (e.g. called
ubuntu-common, fedora-common, debian-common, maybe even deb-common,
rpm-common or yum-common for dpkg/apt-, rpm/yum-based
distributions, etc.) with generic hooks valid for all or most of
the releases of one distribution and then one hook directory per
release (e.g. called ubuntu-10.04 or ubuntu-lucid or so) which has
symbolic links to everything which can be used unchanged from the
common directory and new files for everything which has to be
different or only there.
* Create users, add ssh pubkeys to .ssh/authorized_keys
@@ -116,11 +142,6 @@ Bugs to fix and features to add for 5.0
"type" of configuration you want, and a set of options specific to
that flag could be parsed from xen-tools.conf
* Refactor the code for less code duplication
Like e.g. readConfigurationFile in xen-create-image and
xen-resize-image which are not completely identical.
* Refactor the code for less variants of calling cp, rm, mv, etc.
E.g. always use either cp() from File::Copy or /bin/cp, but not
@@ -141,6 +162,14 @@ Bugs to fix and features to add for 5.0
... dist-upgrade instead of upgrade
* Support cpu_weight and other features from
http://wiki.xensource.com/xenwiki/CreditScheduler
* Code Deduplication / Refactor the code for less code duplication
bin/x* currently contain the same or similar code like e.g. in the
function readConfigurationFile. This needs to be cleaned up.
* Use Perl::Critic
Stuff from Steve's TODO list / Generic TODOs
@@ -149,3 +178,32 @@ Stuff from Steve's TODO list / Generic TODOs
* Write more test cases.
* xen-delete-image should unallocate any used IP addresses.
Axel's Break-Backwards-Compatibility Wishlist
---------------------------------------------
* Make empty extension the default
This would ease tab completion and CLI parameter reusage with "xm
create" and friends.
* Check if we can reduce MAKEDEV invocations in hooks/common/55-create-dev
MAKEDEV std is called in any case. First comment says "Early
termination if we have a couple of common devices present should
speed up installs which use --copy/--tar" and then "We still need
to make sure the basic devices are present" and calls MAKEDEV more
often than otherwise.
Additionally the 55-create-dev for CentOS/Fedora just created
console, zero and null. zero and null are part of "MAKEDEV std",
perhaps can we reduce it to that. console is part of "MAKEDEV
generic".
Additionally the devices hda, sda and tty1 may not necessary in any
case, but instead hvc0 should be created for sure in many
cases. Nothing cares about $serial_device there either.
Current MAKEDEV implementation support more than one device as
parameter. That could reduce the MAKEDEV calls from currently six
to two.

View File

@@ -146,6 +146,10 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Pass the named string literally to any role script.
This is useful for site-specific roles.
--finalrole=role
Similar to role scripts. Run the specified role script(s)
after cfg file creation.
--roledir=/path/to/directory
Specify the directory which contains the role scripts.
This defaults to /etc/xen-tools/role.d/
@@ -165,6 +169,11 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
--tar-cmd NOP: Ignored.
--dontformat Do not format the devices specified for installation.
Useful if you want tighter control over the filesystem
creation. Requires the filesystems to be created
beforehand.
--vcpus=num
Set the number of vcpus that the new instance will have
instead of the default value of "1".
@@ -204,6 +213,10 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
to choose a more or less close Debian mirror. See
http://wiki.debian.org/DebianGeoMirror for details.
--apt_proxy=url
Specify a proxy to be used by debootstrap, and within
the guest.
--template=tmpl
Specify which template file to use when creating the
Xen configuration file.
@@ -708,6 +721,9 @@ Install an X11 server, using VNC and XDM
installed system as their first argument, and anything passed
as a role-arg will be passed allong as additional arguments.
NOTE: Role scripts are invoked before the config file generation.
If you need access to the config file from within your role,
use --finalrole.
NOTE: Multiple role scripts may be invoked if you separate their
names with commas.
@@ -745,7 +761,7 @@ Install an X11 server, using VNC and XDM
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
@@ -806,7 +822,7 @@ my $FAIL = 0;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
#
@@ -1053,6 +1069,12 @@ runRoleScripts( $CONFIG{ 'role' } );
runXenConfigCreation();
#
# Run any specified role scripts.
#
runRoleScripts( $CONFIG{ 'finalrole' } );
#
# Setup the password if the user wanted that.
#
@@ -1251,7 +1273,7 @@ sub testXenConfig
# Read the configuration file.
#
open( CONFIG, "<", "/etc/xen/xend-config.sxp" ) or
die "Failed to read /etc/xen/xend-config.sxp: $!";
fail("Failed to read /etc/xen/xend-config.sxp: $!");
while (<CONFIG>)
{
next if ( !$_ || !length($_) );
@@ -1351,19 +1373,20 @@ sub setupDefaultOptions
$CONFIG{ 'mirror' } = '';
# Initialize per distribution mirror defaults: Debian
foreach my $debdist (qw(lenny squeeze wheezy sid testing stable unstable)) {
foreach my $debdist (qw(squeeze wheezy sid testing oldstable stable unstable)) {
$CONFIG{ 'mirror_'.$debdist } = $CONFIG{ 'mirror' }
}
foreach my $debdist (qw(sarge etch)) {
foreach my $debdist (qw(sarge etch lenny)) {
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian';
}
# Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(dapper hardy jaunty karmic lucid maverick natty)) {
foreach my $ubuntudist (qw(hardy lucid natty oneiric precise quantal)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
}
foreach my $ubuntudist (qw(edgy feisty gutsy intrepid)) {
foreach my $ubuntudist (qw(dapper edgy feisty gutsy intrepid jaunty karmic maverick)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
}
$CONFIG{ 'apt_proxy' } = '';
$CONFIG{ 'arch' } = '';
$CONFIG{ 'fs' } = 'ext3';
$CONFIG{ 'force' } = 0;
@@ -1451,7 +1474,7 @@ sub readConfigurationFile
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
open( FILE, "<", $file ) or fail("Cannot read file '$file' - $!");
while ( defined( $line = <FILE> ) )
{
@@ -1550,11 +1573,11 @@ sub checkOption
},
serialDev => {
check => qr/^(?:\/dev\/)?(?:tty|[xh]vc)[0-9]+$/,
message => "must be a serial device (tty*, hvc* or xvc*).\n",
message => "must be a serial device (tty[0-9]+, hvc[0-9]+ or xvc[0-9]+).\n",
},
diskDev => {
check => qr/^(?:\/dev\/)?(?:tty|hvc)[0-9]+$/,
message => "must be a disk device (tty*, hvc*).\n",
check => qr/^(?:\/dev\/)?(?:xvd|sd)[a-z]+$/,
message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n",
},
ipv4 => {
check => qr/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
@@ -1640,7 +1663,7 @@ sub checkOption
my $type = $optionsTypes{ $option };
# First, check if type exists
die unless exists $types{ $type };
fail("Type $type does not exist") unless exists $types{ $type };
my $check = $types{ $type }{ 'check' };
if (
@@ -1648,10 +1671,15 @@ sub checkOption
(ref $check eq 'CODE' and &$check( $value ) )
) {
# Option did validate, copy it
$CONFIG{ $option } = $value;
if ( $option eq "ip" )
{
push @{ $CONFIG{ $option } }, $value;
} else {
$CONFIG{ $option } = $value;
}
} else {
# Option did _not_ validate
die "ERROR: '$option' argument " . $types{ $type }{ 'message' };
fail("ERROR: '$option' argument " . $types{ $type }{ 'message' });
}
}
}
@@ -1705,6 +1733,7 @@ sub parseCommandLineArguments
"kernel=s", \&checkOption,
"initrd=s", \&checkOption,
"mirror=s", \&checkOption,
"apt_proxy=s", \&checkOption,
"modules=s", \&checkOption,
"lvm=s", \$install{ 'lvm' },
"image-dev=s", \$install{ 'image-dev' },
@@ -1763,12 +1792,14 @@ sub parseCommandLineArguments
"partitions=s", \&checkOption,
"role=s", \&checkOption,
"role-args=s", \&checkOption,
"finalrole=s", \&checkOption,
"roledir=s", \&checkOption,
"force", \$CONFIG{ 'force' },
"keep", \$CONFIG{ 'keep' },
"template=s", \&checkOption,
"output=s", \&checkOption,
"extension=s", \&checkOption,
"dontformat", \&checkOption,
# Help options
"debug", \$CONFIG{ 'debug' },
@@ -1913,7 +1944,7 @@ sub checkArguments
#
# Lucid and probably all later Ubuntus, too, don't work without pygrub
#
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty/ )
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal/ )
{
$CONFIG{ 'pygrub' } = 1;
}
@@ -2409,7 +2440,7 @@ sub checkBinariesPresent
}
}
}
else
elsif (defined( $CONFIG{ 'lvm' } ) )
{
# LVM-specific binaries.
@@ -2935,7 +2966,7 @@ sub createLoopbackImages
eval {mkpath( $output, 0, 0755 );};
if ($@)
{
die "Cannot create directory tree $output - $@";
fail("Cannot create directory tree $output - $@");
}
}
@@ -3384,37 +3415,28 @@ sub createFilesystem
# Split the command into "binary" + "args". Make sure that
# the binary exists and is executable.
#
if ( $command =~ /([^ ]+) (.*)$/ )
{
my $binary = $1;
my $args = $2;
my ($binary, $args) = split(/ /, $command, 2);
if ( !defined( findBinary($binary) ) )
{
logprint(
"The binary '$binary' required to create the filesystem $fs is missing\n"
);
$FAIL = 1;
exit 127;
}
}
else
if ( !defined( findBinary($binary) ) )
{
logprint(
"The filesystem creation hash is bogus for filesystem : $fs\n");
"The binary '$binary' required to create the filesystem $fs is missing\n"
);
$FAIL = 1;
exit 127;
}
#
# OK we have the command and the filesystem. Create it.
#
logprint("\nCreating $fs filesystem on $image\n");
unless ( $CONFIG{ 'dontformat' } ) {
#
# OK we have the command and the filesystem. Create it.
#
logprint("\nCreating $fs filesystem on $image\n");
$command .= " " . $image;
$command .= " " . $image;
runCommand($command);
logprint("Done\n");
runCommand($command);
logprint("Done\n");
}
}
@@ -3456,7 +3478,7 @@ sub mountImage
#
$MOUNT_POINT = tempdir( CLEANUP => 1 );
foreach my $partition (@PARTITIONS)
foreach my $partition (sort { length($a->{'mountpoint'}) <=> length($b->{'mountpoint'}) } @PARTITIONS)
{
if ( $partition->{ 'type' } ne 'swap' )
{
@@ -3571,6 +3593,15 @@ sub installSystem
}
#
# Propagate --apt_proxy
#
if ( $CONFIG{ 'apt_proxy' } )
{
$cmd .= " --apt_proxy=$CONFIG{'apt_proxy'}";
}
#
# Show the user what they are installing
#
@@ -3754,7 +3785,7 @@ sub findIP
# Open and read the file.
#
open( RANGE, "<", $CONFIG{ 'ipfile' } ) or
die "Failed to read $CONFIG{'ipfile'} - $!";
fail("Failed to read $CONFIG{'ipfile'} - $!");
my @lines = <RANGE>;
my @updated;
close(RANGE);
@@ -3785,7 +3816,7 @@ sub findIP
# Now write out the new entries.
#
open( RANGE, ">", $CONFIG{ 'ipfile' } ) or
die "Failed to write to $CONFIG{'ipfile'} - $!";
fail("Failed to write to $CONFIG{'ipfile'} - $!");
print RANGE join( "\n", @updated );
close(RANGE);
@@ -3984,6 +4015,12 @@ sub runXenConfigCreation
$command .= " --admins=$CONFIG{'admins'}";
}
#
# Make sure the template gets a list of all IPs
#
$ENV{ 'ips' } = $IP_ADDRESSES;
logprint("\nCreating Xen configuration file\n");
runCommand($command);
logprint("Done\n");
@@ -4052,7 +4089,7 @@ sub setupRootPassword
}
else
{
die "oops... unknown hashing method, should not happen!";
fail("oops... unknown hashing method, should not happen!");
}
my $hash = crypt($PASSWORD, $hash_method . $salt);
@@ -4063,8 +4100,8 @@ sub setupRootPassword
#
my $tmp_shadow_path = "$shadow_path.tmp";
cp("$shadow_path","$tmp_shadow_path");
open(TMP, "<", $tmp_shadow_path) or die $!;
open(SHADOW, ">", $shadow_path) or die $!;
open(TMP, "<", $tmp_shadow_path) or fail($!);
open(SHADOW, ">", $shadow_path) or fail($!);
my $line;
while(defined($line = <TMP>))
{
@@ -4105,6 +4142,23 @@ sub generatePassword {
}
=begin doc
Properly set $FAIL on die
=end doc
=cut
sub fail
{
logprint(@_);
$FAIL = 1;
exit 127;
}
=begin doc
Print the given string to the logfile.

View File

@@ -131,7 +131,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
# store version number away.
@@ -380,6 +380,30 @@ sub testArguments
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
# Shorthack to fix http://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.
}

View File

@@ -171,7 +171,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';

View File

@@ -101,7 +101,7 @@ $CONFIG{ 'prefix' } = "/etc/xen";
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';

View File

@@ -116,7 +116,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';

View File

@@ -120,7 +120,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
#

View File

@@ -114,7 +114,7 @@ xt-create-config - Create a Xen configuration file for a new guest
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
@@ -156,7 +156,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
@@ -375,7 +375,7 @@ sub createXenConfig
#
# The memory size: Convert Gb -> Mb.
#
if ( $ENV{ 'memory' } =~ /^(\d+)Gb*$/i )
if ( $ENV{ 'memory' } =~ /^(\d+)Gb.*$/i )
{
$ENV{ 'memory' } = $1 * 1024;
}
@@ -383,7 +383,7 @@ sub createXenConfig
#
# Remove any trailing Mb.
#
if ( $ENV{ 'memory' } =~ /^(\d+)Mb*$/i )
if ( $ENV{ 'memory' } =~ /^(\d+)Mb.*$/i )
{
$ENV{ 'memory' } = $1;
}

View File

@@ -98,7 +98,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';

View File

@@ -39,7 +39,7 @@ xen-create-image(1) or the backticks feature in xen-tools.conf.
=head1 LICENSE
Copyright (C) 2010 by The Xen-Tools Development Team. All rights
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
@@ -68,7 +68,8 @@ my %fallback_suite = ( Debian => 'stable',
Ubuntu => 'lucid' );
# Where to look for the sources.list to parse
my $sources_list_file = '/etc/apt/sources.list';
my @sources_list_files = ( '/etc/apt/sources.list',
glob('/etc/apt/sources.list.d/*.list'));
use File::Slurp;
use Getopt::Long;
@@ -80,7 +81,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
# Init
my $mirror = '';
@@ -108,47 +109,49 @@ if ($want_manual) {
pod2usage( -verbose => 2 );
}
if (-r $sources_list_file) {
# sources.list exists, so it's something debianoid.
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);
# 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/;
# 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*($|#)/;
# Skip definite non-entries
next if $sources_list_entry =~ /^\s*($|#)/;
# Split up into fields
my @source_components = split(/\s+/, $sources_list_entry);
# Split up into fields
my @source_components = split(/\s+/, $sources_list_entry);
# Minimum number of components is 4
next if $#source_components < 3;
# 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';
# 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]+$/;
# 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
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
# Seems a typical mirror. Let's use that one
$mirror = $source_components[1];
$suite = $source_components[2];
$mirror = $source_components[1];
$suite = $source_components[2];
$found = 1;
last;
$found = 1;
last all_sources_list_files;
}
}
}
warn "Couldn't parse $sources_list_file of the Dom0.\n" unless $found;
}
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
join("\n ", @sources_list_files)."\n" unless $found;
my $lsb_release = `which lsb_release`;
chomp($lsb_release);

View File

@@ -27,6 +27,7 @@ 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'.
Installation Options:
--install-method Specify the installation method to use.
@@ -117,7 +118,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2.1';
my $RELEASE = '4.3.1';
#
@@ -395,6 +396,7 @@ sub parseCommandLineArguments
"cachedir=s", \$CONFIG{ 'cachedir' },
"config=s", \$CONFIG{ 'config' },
"mirror=s", \$CONFIG{ 'mirror' },
"apt_proxy=s", \$CONFIG{ 'apt_proxy' },
# Help.
"verbose", \$CONFIG{ 'verbose' },
@@ -757,6 +759,14 @@ sub do_debootstrap
$EXTRA .= " --arch $CONFIG{'arch'}";
}
#
# 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
@@ -811,7 +821,24 @@ sub do_rinse
{
$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.

81
debian/changelog vendored
View File

@@ -1,3 +1,84 @@
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

16
debian/control vendored
View File

@@ -2,17 +2,17 @@ Source: xen-tools
Section: utils
Priority: extra
Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl
Standards-Version: 3.9.1
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl, libfile-slurp-perl, devscripts, libmoose-perl, libtest-pod-coverage-perl, git
Standards-Version: 3.9.3
Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
Package: xen-tools
Architecture: all
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse, xen-shell, libexpect-perl
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, evms-cli, btrfs-tools
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}, openssh-client
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse (>= 1.9.1-1), libexpect-perl, xen-utils
Suggests: reiserfsprogs, xfsprogs, cfengine2, btrfs-tools
Description: Tools to manage Xen virtual servers
This package contains tools to manage Debian based Xen virtual servers.
.
@@ -25,6 +25,7 @@ Description: Tools to manage Xen virtual servers
* Debian 4.0 Etch
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7.0 Wheezy
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
@@ -36,3 +37,8 @@ Description: Tools to manage Xen virtual servers
* 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)
* CentOS 5
* CentOS 6

10
debian/copyright vendored
View File

@@ -4,10 +4,10 @@ Tue, 20 Dec 2005 02:21:05 +0200.
It was downloaded from http://xen-tools.org/software/xen-tools/
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
Copyright 2010: 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>
Copyright 2010-2012: 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:
@@ -23,5 +23,5 @@ 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'.

1
debian/docs vendored
View File

@@ -4,3 +4,4 @@ SUPPORT
BUGS
TODO
KNOWN_BUGS
NEWS

7
debian/rules vendored
View File

@@ -9,8 +9,9 @@ configure-stamp:
touch configure-stamp
build: build-stamp
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
touch build-stamp
@@ -19,7 +20,6 @@ clean:
dh_testdir
dh_testroot
make clean
rm -f build-stamp configure-stamp
dh_clean
install: build
@@ -27,6 +27,7 @@ install: build
dh_testroot
dh_prep
dh_auto_test
make manpages
make install prefix=`pwd`/debian/xen-tools

View File

@@ -1 +1 @@
1.0
3.0 (quilt)

View File

@@ -263,21 +263,29 @@ mirror = `xt-guess-suite-and-mirror --mirror`
#
# mirror_sarge = http://archive.debian.org/debian
# mirror_etch = http://archive.debian.org/debian
# mirror_lenny = http://cdn.debian.net/debian
# mirror_lenny = http://archive.debian.org/debian
# mirror_squeeze = http://cdn.debian.net/debian
# mirror_wheezy = http://cdn.debian.net/debian
# mirror_sid = http://cdn.debian.net/debian
# mirror_dapper = http://archive.ubuntu.com/ubuntu
# mirror_dapper = http://old-releases.ubuntu.com/ubuntu
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
# mirror_hardy = http://archive.ubuntu.com/ubuntu
# mirror_intrepid = http://old-releases.ubuntu.com/ubuntu
# mirror_karmic = http://archive.ubuntu.com/ubuntu
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu
# mirror_lucid = http://archive.ubuntu.com/ubuntu
# mirror_maverick = http://archive.ubuntu.com/ubuntu
# mirror_maverick = http://old-releases.ubuntu.com/ubuntu
# mirror_natty = http://archive.ubuntu.com/ubuntu
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
# mirror_precise = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://archive.ubuntu.com/ubuntu
# If this is defined it will be used by debootstrap, and configured as the
# proxy for the guest
#
# apt_proxy =
#
# Filesystem options for the different filesystems we support.
@@ -298,7 +306,7 @@ btrfs_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:
#

View File

@@ -53,7 +53,17 @@ memory = '{$memory}'
$OUT .= "disk = [\n";
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
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";
}
@@ -135,7 +145,7 @@ name = '{$hostname}'
$br = ",bridge=$bridge"
}
$OUT .= "vif = [ 'ip=$ip1";
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "$m";
$OUT .= "$vn";
$OUT .= "$br";

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,46 +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
#
# 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/' -e 's/tty1$/hvc0/' ${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,112 +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
#
# 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
else
cat <<E_O_DHCP >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
E_O_DHCP
chroot ${prefix} /usr/bin/yum -y install dhclient
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,122 +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} | sed 's/^\([^\.]*\)\..*/\1/' > ${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}'`
if [ -z "${nohosts}" ]; then
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 -s HUP `cat /var/run/dnsmasq.pid`
fi
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,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
logMessage /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

View File

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

View File

@@ -1,123 +0,0 @@
#!/bin/sh
#
# This script is responsible for setting up /etc/fstab upon the
# new instance.
#
# This should be a simple job, but it is complicated by some of the
# differences between filesystems - some root filesystems will require
# the installation of new packages, and we have to handle that here.
#
# 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
logMessage Filesystem options are ${options}
#
# Find the root device.
#
# 1. default to xvda.
#
# 2. If --ide is specified use hda.
#
# 3. If --scsi is specified use sda.
#
# 4. Otherwise use a named $disk_device
#
device=xvda
if [ "${ide}" ]; then
device=hda
elif [ "${scsi}" ]; then
device=sda
else
if [ ! -z "${disk_device}" ]; then
device=`basename $disk_device`
fi
fi
logMessage "Root device is /dev/$device"
#
# Now we have the options we can create the fstab.
#
has_xfs=0
has_reiserfs=0
has_btrfs=0
cat <<E_O_FSTAB > ${prefix}/etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0
E_O_FSTAB
for part in `seq 1 ${NUMPARTITIONS}`; do
eval "PARTITION=\"\${PARTITION${part}}\""
OLDIFS="${IFS}"
IFS=:
x=0
for partdata in ${PARTITION}; do
eval "partdata${x}=\"${partdata}\""
x=$(( $x+1 ))
done
IFS="${OLDIFS}"
case "${partdata2}" in
xfs)
has_xfs=1
;;
reiserfs)
has_reiserfs=1
;;
btrfs)
has_btrfs=1
;;
esac
if [ "${partdata2}" = "swap" ]; then
echo "/dev/${device}${part} none swap sw 0 0" >> ${prefix}/etc/fstab
else
echo "/dev/${device}${part} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab
fi
done
#
# Finally we can 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

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

View File

@@ -1,49 +0,0 @@
#!/bin/sh
#
# This script cleans the yum database on 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
#
# Clean up RPM files.
#
logMessage Cleaning .rpm* files.
find ${prefix}/ -name '*.rpmorig' -exec rm -f \{\} \;
find ${prefix}/ -name '*.rpmnew' -exec rm -f \{\} \;
#
# Clean yum
#
logMessage Cleaning Yum Repository
if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum clean all
umount ${prefix}/proc
#
# Log our finish
#
logMessage Script $0 finished

View File

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

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,47 +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
#
# 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-5/20-setup-yum Symbolic link
View File

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

76
hooks/centos-5/25-setup-kernel Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/sh
#
# This script sets up the kernel and fstab for CentOS 5.
#
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 the console work
sed -i "/Cancelled/ {G;s/$/co:2345:respawn:\/sbin\/mingetty console/;}" ${prefix}/etc/inittab
sed -i "s/^1:2345/#1:2345/" ${prefix}/etc/inittab
# MAKEDEV is needed at this point
chroot ${prefix} ln -s /sbin/MAKEDEV /dev/MAKEDEV
chroot ${prefix} /sbin/MAKEDEV sda sdb sdc sdd
# Create fstab
logMessage Create /etc/fstab
cat > ${prefix}/etc/fstab << EOF
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
EOF
for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/xvde$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
fi
done
# Install the kernel, grub and perl
chroot ${prefix} yum clean expire-cache
chroot ${prefix} yum -y install kernel-xen grub.x86_64 perl.x86_64
KERNELVERSION=`ls ${prefix}/boot/vmlinuz-* | sed "s#$prefix/boot/vmlinuz-##"`
logMessage "Kernel $KERNELVERSION found"
# Create grub's menu.list
logMessage "Creating /boot/grub/menu.lst"
mkdir -p ${prefix}/boot/grub
cat > ${prefix}/boot/grub/menu.lst << EOF
# WARNING : Don't forget to update this when you upgrade kernel !
# You can also exclude kernel-xen from updates by putting
# exclude=kernel-xen in in [main] in yum.conf
default=0
timeout=5
title CentOS ($KERNELVERSION)
kernel /boot/vmlinuz-$KERNELVERSION xen_pv_hvm=enable
initrd /boot/initrd-$KERNELVERSION.img
EOF
#
# Log our finish
#
logMessage Script $0 finished

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/' -e 's/tty1$/hvc0/' ${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,112 +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
#
# 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
else
cat <<E_O_DHCP >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
E_O_DHCP
chroot ${prefix} /usr/bin/yum -y install dhclient
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,119 +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} | sed 's/^\([^\.]*\)\..*/\1/' > ${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}'`
if [ -z "${nohosts}" ]; then
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 -s HUP `cat /var/run/dnsmasq.pid`
fi
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,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
logMessage /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

View File

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

View File

@@ -1,124 +0,0 @@
#!/bin/sh
#
# This script is responsible for setting up /etc/fstab upon the
# new instance.
#
# This should be a simple job, but it is complicated by some of the
# differences between filesystems - some root filesystems will require
# the installation of new packages, and we have to handle that here.
#
# 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
logMessage Filesystem options are ${options}
#
# Find the root device.
#
# 1. default to xvda.
#
# 2. If --ide is specified use hda.
#
# 3. If --scsi is specified use sda.
#
# 4. Otherwise use a named $disk_device
#
device=xvda
if [ "${ide}" ]; then
device=hda
elif [ "${scsi}" ]; then
device=sda
else
if [ ! -z "${disk_device}" ]; then
device=`basename $disk_device`
fi
fi
logMessage "Root device is /dev/$device"
#
# Now we have the options we can create the fstab.
#
has_xfs=0
has_reiserfs=0
has_btrfs=0
cat <<E_O_FSTAB > ${prefix}/etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
E_O_FSTAB
for part in `seq 1 ${NUMPARTITIONS}`; do
eval "PARTITION=\"\${PARTITION${part}}\""
OLDIFS="${IFS}"
IFS=:
x=0
for partdata in ${PARTITION}; do
eval "partdata${x}=\"${partdata}\""
x=$(( $x+1 ))
done
IFS="${OLDIFS}"
case "${partdata2}" in
xfs)
has_xfs=1
;;
reiserfs)
has_reiserfs=1
;;
btrfs)
has_btrfs=1
;;
esac
if [ "${partdata2}" = "swap" ]; then
echo "/dev/${device}${part} none swap sw 0 0" >> ${prefix}/etc/fstab
else
echo "/dev/${device}${part} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab
fi
done
#
# Finally we can 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

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

View File

@@ -1,51 +0,0 @@
#!/bin/sh
#
# This script cleans the yum database on 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
#
# Clean up RPM files.
#
logMessage Cleaning .rpm* files.
find ${prefix}/ -name '*.rpmorig' -exec rm -f \{\} \;
find ${prefix}/ -name '*.rpmnew' -exec rm -f \{\} \;
#
# Clean yum
#
logMessage Cleaning Yum Repository
if [ ! -d ${prefix}/proc ]; then
mkdir -p ${prefix}/proc
fi
mount -o bind /proc ${prefix}/proc
chroot ${prefix} /usr/bin/yum clean all
umount ${prefix}/proc
#
# Log our finish
#
logMessage Script $0 finished

View File

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

View File

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

View File

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

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

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

83
hooks/centos-6/25-setup-kernel Executable file
View File

@@ -0,0 +1,83 @@
#!/bin/sh
#
# This script sets up the kernel and fstab for CentOS 5.
#
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 the console work
sed -i "/Cancelled/ {G;s/$/co:2345:respawn:\/sbin\/mingetty console/;}" ${prefix}/etc/inittab
sed -i "s/^1:2345/#1:2345/" ${prefix}/etc/inittab
# MAKEDEV is needed at this point
chroot ${prefix} ln -s /sbin/MAKEDEV /dev/MAKEDEV
chroot ${prefix} /sbin/MAKEDEV sda sdb sdc sdd
# Create fstab
logMessage Create /etc/fstab
cat > ${prefix}/etc/fstab << EOF
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
EOF
for i in `seq 1 $NUMPARTITIONS`; do
echo -n "/dev/sda$i " >> ${prefix}/etc/fstab
eval part=\$PARTITION$i
if [ ! -z "`echo $part | grep swap`" ]; then
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
else
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
fi
done
# Install the kernel, grub and perl
chroot ${prefix} yum clean expire-cache
chroot ${prefix} yum -y install kernel-xen grub.x86_64 perl.x86_64
KERNELVERSION=`ls ${prefix}/boot/vmlinuz-* | sed "s#$prefix/boot/vmlinuz-##"`
logMessage "Kernel $KERNELVERSION found"
# Create grub's menu.list
logMessage "Creating /boot/grub/menu.lst"
mkdir -p ${prefix}/boot/grub
cat > ${prefix}/boot/grub/menu.lst << EOF
# WARNING : Don't forget to update this when you upgrade kernel !
# You can also exclude kernel-xen from updates by putting
# exclude=kernel-xen in in [main] in yum.conf
default=0
timeout=5
title CentOS ($KERNELVERSION)
kernel /boot/vmlinuz-$KERNELVERSION
initrd /boot/initramfs-$KERNELVERSION.img
EOF
# Some use lvm but mkinitrd will generate a wrong initrd when these are present.
rm -f ${prefix}/etc/lvm/backup/* ${prefix}/etc/lvm/archive/*
# Generate a correct initrd.
chroot ${prefix} mkinitrd --with=xenblk --with=xennet --preload=xenblk --preload=xennet\
-f /boot/initramfs-$KERNELVERSION.img $KERNELVERSION
#
# Log our finish
#
logMessage Script $0 finished

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -121,14 +121,16 @@ disableStartStopDaemon ()
{
local prefix="$1"
assert "$LINENO" "${prefix}"
local daemonfile="${prefix}/sbin/start-stop-daemon"
for starter in start-stop-daemon initctl; do
local daemonfile="${prefix}/sbin/${starter}"
mv "${daemonfile}" "${daemonfile}.REAL"
echo '#!/bin/sh' > "${daemonfile}"
echo "echo \"Warning: Fake start-stop-daemon called, doing nothing\"" >> "${daemonfile}"
mv "${daemonfile}" "${daemonfile}.REAL"
echo '#!/bin/sh' > "${daemonfile}"
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}"
chmod 755 "${daemonfile}"
logMessage "start-stop-daemon disabled / made a stub."
chmod 755 "${daemonfile}"
logMessage "${starter} disabled / made a stub."
done
}
@@ -140,16 +142,17 @@ enableStartStopDaemon ()
{
local prefix=$1
assert "$LINENO" "${prefix}"
local daemonfile="${prefix}/sbin/start-stop-daemon"
#
# If the disabled file is present then enable it.
#
if [ -e "${daemonfile}.REAL" ]; then
mv "${daemonfile}.REAL" "${daemonfile}"
logMessage "start-stop-daemon restored to working order."
fi
for starter in start-stop-daemon initctl; do
local daemonfile="${prefix}/sbin/${starter}"
#
# If the disabled file is present then enable it.
#
if [ -e "${daemonfile}.REAL" ]; then
mv "${daemonfile}.REAL" "${daemonfile}"
logMessage "${starter} restored to working order."
fi
done
}

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