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

Compare commits

..

1 Commits

Author SHA1 Message Date
Axel Beckert
b193205b2a Create a Lenny-Backports package 2011-03-09 18:47:40 +01:00
326 changed files with 13896 additions and 7706 deletions

7
.gitignore vendored
View File

@@ -5,8 +5,8 @@
.*
# but we _wan't_ those dot-files
!.gitignore
!.hgignore
!.mailmap
!.travis.yml
# ChangeLog is generated during make
/ChangeLog
@@ -15,12 +15,10 @@
/build-stamp
/configure-stamp
/man
/debian/*-stamp
/debian/files
/debian/xen-tools
/debian/xen-tools.debhelper.log
/debian/xen-tools.substvars
/debian/xen-tools.*.debhelper
# git-generated patches
/*.patch
@@ -31,6 +29,3 @@
# backups created by "make update-version"
*.bak
# Devel::Cover cache
cover_db/

5
.hgignore Normal file
View File

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

View File

@@ -1,41 +0,0 @@
language: perl
perl:
- "5.32"
- "5.30"
- "5.28"
- "5.26"
- "5.24"
- "5.22"
- "5.20"
- "5.18"
- "5.16"
- "5.14"
- "5.12"
- "5.10"
- "blead"
matrix:
fast_finish: true
allow_failures:
- perl: blead
before_install:
- sudo apt-get update
- sudo apt-get install devscripts dpkg-dev lsb-release
- eval $(curl https://travis-perl.github.io/init)
- build-perl
- perl -V
install:
- yes '' | cpanm --verbose --notest --skip-satisfied Data::Validate::Domain Data::Validate::IP Data::Validate::URI File::Slurp File::Which Log::Message Term::UI Test::NoTabs Test::Pod::Coverage Test::Pod Text::Template Devel::Cover::Report::Coveralls Sort::Versions Test::File::Contents
- export RELEASE_TESTING=1 AUTOMATED_TESTING=1 AUTHOR_TESTING=1 HARNESS_OPTIONS=j10:c HARNESS_TIMER=1 PATH=bin:${PERLBREW_PATH}:${PATH}
script:
- make test-verbose
after_success:
- prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t
- cover -ignore_re '^(t/|/usr)' -report coveralls
notifications:
irc: "irc.lugs.ch#kivamon"

55
AUTHORS
View File

@@ -12,6 +12,9 @@ Contributions
Listed alphabetically by surname.
C.J. Adams-Collier <cjcollier [at] com.gmail>
- Added new modular structure to the code.
Nick Anderson <nick [at] net.anders0n>
- Better bash completion for xen-create-image.
@@ -21,59 +24,31 @@ 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
C.J. Collier <cjac [at] google.com>
- Added new modular structure to the code.
Vagrant Cascadian <vagrant [at] org.debian>
- Less redundant SSH key generation
Adrian C. (anrxc) <anrxc [at] org.sysphere>
- Hook overrides
Edd Dumbill <edd [at] com.usefulinc>
- Contributed APT sources.list file for Ubuntu's Dapper release.
Lionel FÉLICITÉ <lfelicite [at] com clever-age>
- Bugfix for Centos 6 installation
Kevin Fullerton <kevin.fullerton [at] uk.co.shotgun-suicide>
- Fixup for gentoos revised networking scripts. (dhcp)
Stefan Fritsch <sf [at] de.sfritsch>
- Contributed the policy-rc.d fixups for common.sh
Raphaël Halimi <raphael.halimi [at] com.gmail>
- Contribute bashism fix
Sven Hertge <sven [at] de.svenhartge>
- Bugfix for Debian/Gentoo package installation.
Joey Hess <joeyh [at] org.debian>
- Provided sample code for module copying and several useful bug reports
John Hughes <john [at] com.fallenbit>
- Physical devices reordering for pygrub
Kirk Ismay <captain [at] com.netidea>
- Added hook for automatic CFEngine installation.
Sascha Kettler <kettler [at] net.gmx>
- Implemented support for arbitrary partitioning schemes.
- Implemented support for arbitary partitioning schemes.
Eric Lemoine <eric.lemoine [at] com.gmail>
- Improved binary detection and good suggestions.
- Better portability for non-bash shells.
Daniel Lintott <daniel [at] uk.co.serverb>
- Bugfix for Jessie and newer installations
Jorge Armando Medina <jmedina [at] com.e-compugraf>
- Fix for backward compatibility with xvc0 serial consoles
@@ -87,9 +62,6 @@ Contributions
Nathan O'Sullivan <nathan [at] au.com.mammoth>
- New features wrt. options and helper functions
Guillaume Pernot <gpernot [at] org.praksys>
- Fixed Sarge amd64 special case
Walter Reiner <walter [at] at.wreiner>
- Provided --image-dev + --swap-dev patch.
@@ -102,13 +74,6 @@ 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
Patryk Ściborek <patryk [at] com.sciborek>
- Ubuntu-related bugfix
Radu Spineanu <radu [at] org.debian>
- Supplied many small tweaks, bugfixes, and suggestions.
- Radu is also one of the former Debian package maintainers.
@@ -122,18 +87,6 @@ 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.
Santiago Vila <sanvila [at] es.unex>
- Found and fixed a bunch of typos and formatting issues.
Joan <aseques [at] com.gmail>
- Bugfix for password interaction
- maxmem option
xstasi on Launchpad
- Proper upstart handling in the chroot

27
BUGS Normal file
View File

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

13
KNOWN_BUGS Normal file
View File

@@ -0,0 +1,13 @@
KNOWN BUGS in xen-tools
Bugs to fix before a 4.2 release
--------------------------------
* xen-delete-image doesn't remove all logical volumes if --partitions is used.
See the link below for details how to reproduce. Reproducable at
least with --lvm. Thanks to Antoine Benkemoun for reporting.
http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html
* xen-delete-image ignores extension setting

View File

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

209
Makefile
View File

@@ -6,24 +6,25 @@
#
# Steve
# --
# https://steve.fi/
# http://www.steve.org.uk/
#
#
# Only used to build distribution tarballs.
#
TMPDIR ?= /tmp
DIST_PREFIX = ${TMPDIR}
VERSION = 4.10.0
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.2
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = git
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)
#
# Installation prefix, useful for the Debian package.
#
DESTDIR=
prefix=${DESTDIR}
prefix=
nop:
@@ -34,9 +35,7 @@ nop:
@echo " diff = See local changes."
@echo " install = Install the software"
@echo " manpages = Make manpages beneath man/"
@echo " tarball = Make a release tarball"
@echo " orig-tar-gz = Make a tarball suitably named for Debian"
@echo " release = Make a release tarball and sign it"
@echo " release = Make a release tarball"
@echo " uninstall = Remove the software"
@echo " update = Update from the source repository."
@echo " "
@@ -69,10 +68,8 @@ clean:
@if [ -e build-stamp ]; then rm -f build-stamp ; fi
@if [ -e configure-stamp ]; then rm -f configure-stamp ; fi
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; fi
@if [ -d cover_db ]; then rm -rf ./cover_db; fi
@if [ -e $(BASE)-$(VERSION).tar.gz ]; then rm $(BASE)-$(VERSION).tar.gz ; fi
@if [ -e $(BASE)-$(VERSION).tar.gz.asc ]; then rm $(BASE)-$(VERSION).tar.gz.asc ; fi
cd t; $(MAKE) clean
#
@@ -95,10 +92,10 @@ diff:
fixup-perms:
for i in hooks/*/*-*; do chmod 755 $$i; done
chmod 755 hooks/common.sh
chmod 644 etc/*.conf
chmod 644 etc/xen-tools.conf
chmod 644 etc/xm.tmpl
chmod 644 etc/xm-nfs.tmpl
chmod 644 misc/*
chmod 644 misc/xen-tools misc/README
#
# Install files to /etc/
@@ -109,14 +106,12 @@ install-etc:
-mkdir -p ${prefix}/etc/xen-tools/skel/
-mkdir -p ${prefix}/etc/xen-tools/role.d/
-mkdir -p ${prefix}/etc/xen-tools/partitions.d/
cp etc/*.conf ${prefix}/etc/xen-tools/
cp etc/xen-tools.conf ${prefix}/etc/xen-tools/
cp etc/xm.tmpl ${prefix}/etc/xen-tools/
cp etc/xm-nfs.tmpl ${prefix}/etc/xen-tools/
cp partitions/*-* ${prefix}/etc/xen-tools/partitions.d/
-mkdir -p ${prefix}/usr/share/bash-completion/completions/
cp misc/xen-tools.bash-completion ${prefix}/usr/share/bash-completion/completions/xen-tools
-mkdir -p ${prefix}/etc/initramfs-tools/conf.d/
cp misc/xen-tools.initramfs-tools ${prefix}/etc/initramfs-tools/conf.d/xen-tools
-mkdir -p ${prefix}/etc/bash_completion.d
cp misc/xen-tools ${prefix}/etc/bash_completion.d/
#
@@ -132,7 +127,6 @@ install-bin:
cp bin/xen-delete-image ${prefix}/usr/bin
cp bin/xen-list-images ${prefix}/usr/bin
cp bin/xen-update-image ${prefix}/usr/bin
cp bin/xen-resize-guest ${prefix}/usr/bin
cp bin/xt-guess-suite-and-mirror ${prefix}/usr/bin
chmod 755 ${prefix}/usr/bin/xen-create-image
chmod 755 ${prefix}/usr/bin/xen-create-nfs
@@ -151,94 +145,50 @@ install-bin:
#
install-hooks:
for i in roles/* ; do if [ -f $$i ]; then cp $$i ${prefix}/etc/xen-tools/role.d; fi ; done
for i in ${prefix}/usr/share/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; fi; done
mkdir -p ${prefix}/usr/share/xen-tools/centos-4.d/
mkdir -p ${prefix}/usr/share/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/share/xen-tools/centos-6.d/
mkdir -p ${prefix}/usr/share/xen-tools/fedora-core-6.d/
cp -R hooks/centos-4/*-* ${prefix}/usr/share/xen-tools/centos-4.d
cp -R hooks/centos-5/*-* ${prefix}/usr/share/xen-tools/centos-5.d
cp -R hooks/centos-6/*-* ${prefix}/usr/share/xen-tools/centos-6.d
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/share/xen-tools/fedora-core-6.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-7.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-8.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-9.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-10.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-11.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-12.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-13.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-14.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-15.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-16.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.d
mkdir -p ${prefix}/usr/share/xen-tools/debian.d/
cp -R hooks/debian/*-* ${prefix}/usr/share/xen-tools/debian.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sarge.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d lenny.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d squeeze.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d wheezy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d jessie.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d stretch.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d buster.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bullseye.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d bookworm.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d trixie.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d forky.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d sid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d unstable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d testing.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d stable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d oldstable.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s debian.d oldoldstable.d
mkdir -p ${prefix}/usr/share/xen-tools/gentoo.d/
cp -R hooks/gentoo/*-* ${prefix}/usr/share/xen-tools/gentoo.d
mkdir -p ${prefix}/usr/share/xen-tools/dapper.d/
cp -R hooks/dapper/*-* ${prefix}/usr/share/xen-tools/dapper.d/
mkdir -p ${prefix}/usr/share/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/share/xen-tools/edgy.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d feisty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d gutsy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s edgy.d hardy.d
mkdir -p ${prefix}/usr/share/xen-tools/intrepid.d/
cp -R hooks/intrepid/*-* ${prefix}/usr/share/xen-tools/intrepid.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s intrepid.d jaunty.d
mkdir -p ${prefix}/usr/share/xen-tools/karmic.d/
cp -R hooks/karmic/*-* ${prefix}/usr/share/xen-tools/karmic.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d lucid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d maverick.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d natty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d oneiric.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d quantal.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d raring.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d saucy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d trusty.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d utopic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d vivid.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d wily.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d xenial.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d yakkety.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d zesty.d
mkdir -p ${prefix}/usr/share/xen-tools/artful.d/
cp -R hooks/artful/*-* ${prefix}/usr/share/xen-tools/artful.d/
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d bionic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d cosmic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d disco.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d eoan.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d focal.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d groovy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d hirsute.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d impish.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d jammy.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d kinetic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d lunar.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d mantic.d
-cd ${prefix}/usr/share/xen-tools/ && ln -s artful.d devel.d
cp hooks/common.sh ${prefix}/usr/share/xen-tools
cp -r hooks/common ${prefix}/usr/share/xen-tools
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/fedora-core-6.d/
cp -R hooks/centos-4/*-* ${prefix}/usr/lib/xen-tools/centos-4.d
cp -R hooks/centos-5/*-* ${prefix}/usr/lib/xen-tools/centos-5.d
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/lib/xen-tools/fedora-core-6.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-7.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-8.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-9.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-10.d
-cd ${prefix}/usr/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
mkdir -p ${prefix}/usr/lib/xen-tools/debian.d/
cp -R hooks/debian/*-* ${prefix}/usr/lib/xen-tools/debian.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sarge.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d lenny.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d squeeze.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d wheezy.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d testing.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d stable.d
mkdir -p ${prefix}/usr/lib/xen-tools/gentoo.d/
cp -R hooks/gentoo/*-* ${prefix}/usr/lib/xen-tools/gentoo.d
mkdir -p ${prefix}/usr/lib/xen-tools/dapper.d/
cp -R hooks/dapper/*-* ${prefix}/usr/lib/xen-tools/dapper.d/
mkdir -p ${prefix}/usr/lib/xen-tools/edgy.d/
cp -R hooks/edgy/*-* ${prefix}/usr/lib/xen-tools/edgy.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d feisty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d gutsy.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s edgy.d hardy.d
mkdir -p ${prefix}/usr/lib/xen-tools/intrepid.d/
cp -R hooks/intrepid/*-* ${prefix}/usr/lib/xen-tools/intrepid.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s intrepid.d jaunty.d
mkdir -p ${prefix}/usr/lib/xen-tools/karmic.d/
cp -R hooks/karmic/*-* ${prefix}/usr/lib/xen-tools/karmic.d/
-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
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
#
@@ -246,6 +196,7 @@ install-hooks:
#
install-libraries:
-mkdir -p ${prefix}/usr/share/perl5/Xen/Tools
cp ./lib/Xen/*.pm ${prefix}/usr/share/perl5/Xen
cp ./lib/Xen/Tools/*.pm ${prefix}/usr/share/perl5/Xen/Tools
#
@@ -274,42 +225,40 @@ manpages:
#
# Make a new release tarball, and make a GPG signature.
#
release: orig-tar-gz
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
cp -p ../$(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
git tag -s -m "Release as $(VERSION)" "release-$(VERSION)"
tarball: test tidy fixup-perms update-version update-modules clean changelog
release: tidy fixup-perms update-version update-modules clean changelog
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/cover_db
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.hg*
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.git*
cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
gzip -9nv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz ..
gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz .
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
gpg --armour --detach-sign $(BASE)-$(VERSION).tar.gz
#
# Make a new orig.tar.gz for the Debian package
#
orig-tar-gz: tarball
cp -p ../$(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
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
#
# Run the test suite.
#
test-verbose : VERBOSE = -v
test-verbose: test
test: non-author-test author-test
test: update-modules
prove --shuffle t/
non-author-test: update-modules
prove $(VERBOSE) --shuffle t/
author-test:
prove $(VERBOSE) xt/
#
# Run the test suite verbosely.
#
test-verbose:
prove --shuffle --verbose t/
#
@@ -317,9 +266,9 @@ author-test:
#
tidy:
if [ -x /usr/bin/perltidy ]; then \
for i in $(ls -1 bin/*-* | grep -vE '~$'); do \
for i in bin/*-*[^~]; do \
echo "tidying $$i"; \
perltidy $$i \
perltidy $$i \
; done \
; fi
@@ -337,15 +286,11 @@ uninstall:
rm -f ${prefix}/usr/bin/xen-create-nfs
rm -f ${prefix}/usr/bin/xt-guess-suite-and-mirror
rm -f ${prefix}/etc/xen-tools/xen-tools.conf
rm -f ${prefix}/etc/xen-tools/distributions.conf
rm -f ${prefix}/etc/xen-tools/mirrors.conf
rm -f ${prefix}/etc/xen-tools/xm.tmpl
-rm -rf ${prefix}/etc/xen-tools/skel
-rmdir ${prefix}/etc/xen-tools/
-rm -f ${prefix}/etc/bash_completion.d/xen-tools
# Maybe needed to remove older releases of xen-tools
rm -rf ${prefix}/usr/lib/xen-tools
rm -rf ${prefix}/usr/share/xen-tools
rm -f ${prefix}/usr/share/man/man8/xen-create-image.8.gz
rm -f ${prefix}/usr/share/man/man8/xen-delete-image.8.gz
rm -f ${prefix}/usr/share/man/man8/xen-list-images.8.gz

View File

@@ -1,582 +0,0 @@
xen-tools 4.10.0 (TODO: UNRELEASED)
===================================
New Features
------------
* Add support for specifying guest type. (GH #64; PR by Arno Bakker
@arno481)
Distribution Releases Changes
-----------------------------
* Preliminary support for
+ Ubuntu 23.10 Mantic Minotaur
* Declare the following releases as EoL:
+ Ubuntu 22.10 Kinetic Kudu
* Debian Trixie is now Testing → remove dont-test flag
Other Changes
-------------
* Switch to pure Semantic Versioning including trailing zeros.
* Sync examples for "fs" and "fs" defaults in xen-create-image with
(effective) values in xen-tools.conf: ext3 → ext4
xen-tools 4.9.2 (released 06 Feb 2023)
======================================
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 21.10 Impish Indri (EoL)
+ Ubuntu 22.04 Jammy Jellyfish (LTS)
+ Ubuntu 22.10 Kinetic Kudu
* Preliminary support for
+ Debian 14 Forky
+ Ubuntu 23.04 Lunar Lobster
* Declare the following releases as EoL:
+ Ubuntu 12.04 Precise Pangolin (LTS)
+ Ubuntu 20.10 Groovy Gorilla
+ Ubuntu 21.04 Hirsute Hippo
* xt-guess-suite-and-mirror:
+ Bump default Ubuntu fallback release to 22.04 Jammy LTS.
+ Add support for Ubuntu Ports APT repos (i.e. Xen on ARM64).
Documentation
-------------
* Place hints on "vsyscall=emulate" on more visible places.
Other Changes
-------------
* Fix bashism in release testing target "tidy".
xen-tools 4.9.1 (released 24 Oct 2021)
======================================
Bug Fixes
---------
* Fix missing `|` in regex in `hooks/debian/20-setup-apt`. (Closes
Debian bug report #997668)
Other Changes
-------------
* Make test `xt/gitignore.t` work with git releases ≥ 2.32.0.
* Travis CI: stop testing again Perl `dev`. It seems to no more exist.
* Also create an `.orig.tar.xz` signature upon `make release`.
xen-tools 4.9 (released 29 Dec 2020)
====================================
New Features
------------
* Add Debian install rules for arm64. (GH #62; PR by Ian McLinden
@ianmclinden)
* Add netplan p2p support for Ubuntu. (GH #58; PR by Volker Janzen
@frootmig)
Bug Fixes
---------
* Fix typo in release name of the future Debian 12 release.
* Makefile: Actually install xen-resize-guest tool. (Thanks to
Debian's Lintian tool reporting that there is a man-page without
binary installed!)
* Distinguish between those Debian releases using `$dist/updates` for
security updates and those who use `$dist-security`. Thanks to Paul
Wise for the bug report. (Closes Debian bug report #972749.)
* Fix support for `lvm_thin`. Thanks to Andreas Sundstrom for the bug
report and patch! (Closes Debian bug report #942244.)
* Mount `/proc` and `/dev` before calling update-grub. Thanks to
Brandon Bradley for the bug report and patch. (Closes Debian bug
report #815021.)
* Fix storage commandline options not overriding `xen-tools.conf`
settings also in `xen-update-image` and `xen-delete-image`. (GH #57;
patch by Volker Janzen @frootmig)
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 19.10 Eoan Ermine (EoL)
+ Ubuntu 20.04 Focal Fossa (LTS)
+ Ubuntu 20.10 Groovy Gorilla
* Preliminary support for
+ Debian 13 Trixie
+ Ubuntu 21.04 Hirsute Hippo
* Declare the following releases as EoL:
+ Ubuntu 17.10 Artful Aardvark (Was missing in previous release
despite mentioned in this file.)
+ Ubuntu 18.10 Cosmic Cuttlefish
+ Ubuntu 19.04 Disco Dingo
+ Debian 7 Wheezy
+ Debian 8 Jessie
* Start all Debian releases since Stretch (9) with pygrub by default.
Other Changes
-------------
* Support running tests verbosely with Make target "test-verbose".
* Drop "dont-test" flag from bullseye.
* partitions/sample-server: Change options=sync to
options=defaults. (GL MR !1; patch by Wolfgang Karall)
xen-tools 4.8 (released 9 Feb 2019)
===================================
New Features
------------
* Support for ZFS volumes (by Marc Bigler, GH #50)
* Support for LVM thin provisioning (by Nico Boehr, GH #47)
* Support for really random MAC addresses upon every `xen-create-image`
invocation by using the new option `--randommac`. (by Pietro Stäheli,
closes Debian bug report #855703)
* `distributions.conf` now supports arbitrary keyring files in
`/usr/share/keyrings/`. (Needed for some EoL Ubuntu releases.)
* Support for netplan.io network configuration as used in recent
Ubuntu releases. (Hook by Arno and Peter, GH #51)
Bug Fixes
---------
* Minor documentation fixes.
* Eliminate progress reporting which is useless in logs. (Yuri Sakhno,
GH #42)
* Drop `pygrub` path detection from `xm.tmpl`, Xen prefers a path-less
`bootloader='pygrub'`.
Distribution Releases Changes
-----------------------------
* Support for
+ Ubuntu 17.10 Artful Aardvark
+ Ubuntu 18.04 Bionic Beaver (LTS) (GH #51)
+ Ubuntu 18.10 Cosmic Cuttlefish
* Preliminary support for Ubuntu 19.04 Disco Dingo
* Knows about code name for Debian 12 (Bookworm).
* Considers Ubuntu Yakkety, Zesty and Artful being EoL.
* Set Ubuntu fallback suite to the latest LTS, i.e. 18.04 Bionic.
Other Changes
-------------
* Change all occurrences of `httpredir.debian.org` to
`deb.debian.org` except those for the `debian-archive`. The latter
now point to `archive.debian.org` directly.
* Many improvements for the `release-testing` script.
* Only run `xen-toolstack` helper script if both, `xm` and `xl` are
present. Avoids warning about deprecated helper script.
xen-tools 4.7 (released 23 Jan 2017)
====================================
New Features
------------
New keywords in distributions.conf: default-keyring, dont-test
* Support situations where distributions (e.g. Squeeze) might be end
of life, but its archive signing key is still not removed from the
default keyring. (As of this writing, that's the case for Debian 6
Squeeze on Debian 8 Jessie.)
Bug Fixes
---------
* Fixes reported error code in case of subcommand failure (Reported
and fixed by Yuri Sakhno, thanks!)
* Fixes inconsistent/non-functional handling of --nopygrub parameter.
Thanks Daniel Reichelt for the bug report and patch! (Closes
Debian bug report #842609)
* Fixes possible missing gateway in generated /etc/network/interfaces.
Thanks Santiago Vila for the bug report and patch! (Closes Debian
bug report #764625)
* Fixes typo found by Lintian.
* Work around LVM related race condition when using --force with LVM:
If an "lvremove" is immediately followed by an "lvcreate" for an LV
with the same name, "mkswap" (and maybe other commands) occasionally
fail with "Device or resource busy". Work around it by using sync
and sleep.
Distribution Releases Changes
-----------------------------
* Support for Ubuntu 16.10 Yakkety Yak.
* Preliminary support for Ubuntu 17.04 Zesty Zapus.
* Knows about code names for Debian 10 (Buster) and 11 (Bullseye).
* Considers Debian Squeeze, Ubuntu Vivid and Wily being EoL.
* Knows about Ubuntu's "devel" alias.
Other Changes
-------------
* Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
to cope with risen resource consumption and availability. (Closes
Debian bug report #849867)
* Default file system is now ext4 (instead of ext3).
Test Suite
----------
* release-testing:
+ Mitigate race conditions with immediately re-used LVs:
- Use per-test-unique host names.
- Delete potential old images by testing xen-delete-image before
calling xen-create-image. Add sync and sleep calls inbetween
those two commands, too.
+ Use "set -e" instead of "|| break".
+ Declare testability in distributions.conf instead of hardcoding
it. Mark buster and bullseye as not testable, too, for now.
xen-tools 4.6.2 (released 23 Dec 2015)
======================================
Bug Fixes
---------
* Make t/hooks-inittab.t using its own copy of the generic
/etc/inittab for testing instead of using the system one's. (GH#36,
should fix autopkgtest on systems with modified /etc/inittab)
* Fix unescaped braces (deprecated since Perl 5.22) in
t/plugin-checks.t.
Other changes
-------------
* Support for using pygrub from /usr/local/bin/pygrub.
* Typo fixes.
xen-tools 4.6.1 (released 24 Oct 2015)
======================================
Distribution Releases Changes
-----------------------------
* Preliminary support for Ubuntu 16.04 LTS Xenial Xerus.
Bug Fixes
---------
* Fix Perl warning in t/hook-inittab.t if /etc/inittab isn't present.
Other Changes
-------------
* Declare GitHub as primary hosting.
* Integrate BUGS.markdown into README.markdown, move remaining
contents of KNOWN_BUGS.markdown to the GitHub issue tracker.
* Minor README improvements.
* Neither use $#array in boolean context nor @array = undef anymore.
xen-tools 4.6 (released 20 Jul 2015)
====================================
New Features and Major Changes
------------------------------
* Drop all occurrences of apt's `--force-yes` parameter. It only
forces the installation of untrusted packages and that's
unwanted. (Closes Debian bug report #776487)
* Support passing commandline options with `--debootstrap-cmd`.
* Use MD5 as default hash method again, to be able to properly set
passwords in older releases. Does not affect passwords changed later
inside the DomU.
* Split off hardcoded release code names list and default mirrors in
`xen-create-image` into separate configuration file which is parsed
before the default settings or command-line options are set.
* Report all SSH fingerprints of the created DomU, not only RSA ones.
* Support VLANs with Open vSwitch (GH-2). Thanks to Félix Barbeira for
the patch.
New Options
-----------
* `--keyring` (xen-create-image, xt-install-image)
* `--vlan` (xen-create-image)
Distribution Releases Changes
-----------------------------
* Debian 9 Stretch (preliminary support)
* Ubuntu 15.10 Wily Werewolf (preliminary support; not yet supported by
debootstrap, see Debian bug report #787117)
* Ubuntu 10.04 Lucid Lynx is now EoL.
* Ubuntu 14.10 Utopic Unicorn is now EoL.
Improvements
------------
* Make test suite support as-installed-testing.
* Multiple release workflow improvements (target `release` in
`Makefile`).
* Supports `unstable`, `oldstable` and `oldoldstable` as distribution
names, too. (`oldoldstable` is not yet supported by debootstrap, see
Debian feature request #792734 in debootstrap.)
Bug Fixes
---------
* Fix usage of nonexistent variable in `removeDebianPackage` (Closes
Debian bug report #774936) Thanks Lukas Schwaighofer!
* Allows `#` within configuration file comments. (Closes Debian bug
report #783060; thanks Jean-Michel Nirgal Vourgère for the bug
report and patch!)
* Use `-o APT::Install-Recommends=false` instead of
`--no-install-recommends` for backwards compatibility with older APT
versions which don't know either (but accept any `Foo=Bar` parameter
to `-o`). Allows one to install earlier Debian releases (e.g. Etch)
with the default configuration again.
* Pass `--yes` to `lvcreate` only if LVM version is 2.02.99 or
higher. Fixes regression introduced with 4.5 by the fix for Debian
bug report #754517.
Other Changes
-------------
* Change all occurrences of `http.debian.net` to
`httpredir.debian.org`.
* Installs bash completion into `/usr/share/bash-completion/` (fixes
lintian warning `package-install-into-obsolete-dir`)
* Testsuite: Optimize and clean up modules.sh.
* Split up test suite in functionality/compatibility tests (`t`) and
author/release tests (`xt`).
* New example script helpful for release testing.
xen-tools 4.5 (released 25 Oct 2014)
====================================
New Features and Major Changes
------------------------------
* Apply patch by Adrian C. (anrxc) to allow to override hooks in
`/usr/share/xen-tools/*.d/` with hooks in `/etc/xen-tools/hooks.d/`.
Distribution Releases Changes
-----------------------------
* Ubuntu 14.10 Utopic Unicorn.
* Ubuntu 15.04 Vivid Vervet (preliminary support)
* Mark Ubuntu 13.10 Saucy Salamander as EoL
Improvements
------------
* Use `686-pae` kernels instead of `686` kernels on Debian Wheezy and
later. Thanks to Daniel Lintott! (Closes Debian bug report #742778)
* Pass `-y` option ("assume yes") to `yum` (Closes Debian bug report
#735675) Thanks Lionel FÉLICITÉ!
Bug Fixes
---------
* Fix always empty gateway on Debian DomUs (Thanks Joan! LP: #1328794)
* Fix `lvcreate` awaiting user input when creating swap LV (Closes
Debian bug report #754517) Thanks Eric Engstrom!
* Fix missing quoting in shell function `assert` in `hooks/common.sh`.
* Fix initial configuration summary in cases where `pygrub` is used.
* Fix corner cases where not the latest kernel would have been
checked.
* `--password` overrides `--genpass`. (Closes Debian bug report
#764143) Based on patch by Santiago Vila.
* Fix unaligned maxmem output of xen-create-image. (Closes Debian bug
report #764126; Patch by Santiago Vila)
* Fix copy & paste errors in comments in typos in `roles/puppet`
(Closes Debian bug report #764134; Patch by Santiago Vila)
* Fix typos in POD of `xen-create-image` (Closes Debian bug report
#764153; Patch by Santiago Vila)
Other Changes
-------------
* Drop all xend related sanity checks, they cause more havoc nowadays
than they help. Thanks Ian Campbell! (Closes Debian bug report
#732456)
* pygrub detection: Prefer `/usr/lib/xen-default` over `/usr/lib/xen-x.y`.
* Add password length sanity check with fallback to default length.
* Raise default password length from 8 to 23.
* Flush output after each line in `runCommand()`.
* `Makefile`: Clean up coverage data in multiple targets.
xen-tools 4.4 (released 11 Dec 2013)
====================================
Listing includes changes of according beta releases.
New Features and Major Changes
------------------------------
* Preliminary support for `xl` toolstack
* Ships `/etc/initramfs-tools/conf.d/xen-tools` for generating Dom0
initrds also suitable for DomU usage. Trigger `update-initramfs`.
* Installs a legacy `grub` in all `pygrub` based Debian/Ubuntu DomUs
to be able to update the `menu.list` automatically.
* `hooks/common.sh`: `installDebianPackage` no more installs
recommends, use `installDebianPackageAndRecommends` for that from
now on.
* `hooks/common.sh`: Rename `installCentOS4Package` to
`installRPMPackage`. Add `installCentOS4Package` wrapper for
backward compatibility.
* Better documents and checks requirements for the `--apt_proxy`
value. (See #623443 for the corresponding apt issue.) Requires now
`Data::Validate::URI`.
* Uses now `Data::Validate::Domain` and `Data::Validate::IP` for IP
addresses and hostname checks.
Newly Supported Distribution Releases
-------------------------------------
* Debian 8 Jessie
* Ubuntu 13.04 Raring
* Ubuntu 13.10 Saucy (preliminary support; debootstrap doesn't have
support for Saucy at the time of writing)
Improvements
------------
* Also recognize "M" and "G" instead of "MB" and "GB" as size unit for
`--memory`. Also document the recognized units. (Closes Debian bug
report #691320)
* `xen-list-images` now also outputs the file name of the config file.
* `xen-list-images` and `xen-delete-image` now understand `--extension`.
* Makefile accepts `DESTDIR=…`
* Move examples from debian/examples to examples.
* Adds default mount options for ext4, identical to ext2/ext3.
* By default install `linux-image-virtual` instead of
`linux-image-server` on Ubuntu Intrepid and newer (Hopefully closes:
#640099, LP #839492)
* Makes some options (like `--pygrub`) negatable.
* Rework "minimal" role to be less based on personal preferences:
* No more installs sudo, vim, syslog-ng, etc.
* Fixes usage together with pygrub.
Bug Fixes
---------
* Fix symbolic link hooks/centos-6/15-setup-arch (Closes Debian bug
report #690299)
* Execute END block not on --version/--help/--manual (Closes Debian
bug #684346)
* Move code for `--boot` feature to `END` block. Fixes missing SSH
fingerprint display if `--boot` was used. (Closes Debian bug report
#679183)
* Correctly handle aborts in `END` block. (Closes Debian bug report
#704882)
* Fixes `--extension=` with empty parameter.
* Sarge amd64 case handle properly
* `xt-install-image`: Don't bail out if only `cdebootstrap` is
installed but not `debootstrap` (Thanks Elmar Heeb!)
* Fix filesystem tools installation in `91-install-fs-tools` (which
was broken since 4.3~rc1-1) by merging `91-install-fs-tools back`
into `90-make-fstab`. (Closes Debian bug report #715340) Also
supports RPM-based distributions now.
* Fixes creation of `ARRAY(0x#).log` named log files.
Other Changes
-------------
* Code deduplication to unify the `xen-*-image` scripts
* Moves `/usr/lib/xen-tools/` to `/usr/share/xen-tools/`
* Use `http.debian.net` as default Debian mirror if no mirror is given
and `xt-guess-suite-and-mirror` is not used.
* Default DomUs to use the noop scheduler (Closes Debian bug report
#693131)
* Fixes export of environment variables. Previously they could contain
dashes and then were only accessible from within Perl, but not from
within Bash.
* Uses `Test::NoTabs` instead of its own test for that.
* Removes unused Perl modules `Xen::Tools` and `Xen::Tools::Log` from
source code. Also removes the according tests from the test
suite. No more needs `Moose`.
xen-tools 4.3.1 (released 30-Jun-2012)
======================================
Bugfix Release only
xen-tools 4.3 (released 26-Jun-2012)
====================================
Listing includes changes of according beta releases.
New Features and Major Changes
------------------------------
* Massive code deduplication in hooks directory
New Options
-----------
* `--dontformat` (xen-create-image)
* `--finalrole` (xen-create-image)
* `--apt_proxy` (xen-create-image)
Newly Supported Distribution Releases
-------------------------------------
* Ubuntu 11.10 Oneiric
* Ubuntu 12.04 Precise
* Ubuntu 12.10 Quantal
* CentOS 6
Bug Fixes
---------
* Fix several testuite failures depending on the build host's
installation.
Other Changes
-------------
* Remove most Mercurial traces
xen-tools 4.2.1 (released 17 Mar 2011)
======================================
Bugfix Release only
xen-tools 4.2 (released 05 Oct 2010)
====================================
First final release of the new Xen-Tools Team.
Supports Ubuntu up to 11.04 (Natty) and Debian up to 7.0 (Wheezy).
New Options
-----------
--debootstrap-cmd (xen-create-image and xt-install-image)
New Features and Major Changes
------------------------------
* Uses `hvc0` and `xvda` devices by default
* Also supports `cdebootstrap`
* Preliminary btrfs support.
* Uses GeoIP for Debian mirrors: Default Debian mirror is now
`cdn.debian.net`, see https://wiki.debian.org/DebianGeoMirror for
details.
* New helper program `xt-guess-suite-and-mirror`, used to find the
default mirror and suite.

165
README Normal file
View File

@@ -0,0 +1,165 @@
xen-tools
---------
Homepage:
http://www.xen-tools.org/software/xen-tools
Git Repository:
http://gitorious.org/xen-tools
Mailing Lists:
http://www.xen-tools.org/software/xen-tools/lists.html
About:
Xen-tools contains a collection of Perl scripts for working with Xen
guest images under Linux.
Using this software, you can easily create new Xen guests configured
to be accessible over the network via OpenSSH.
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.
However, currently only Debian and Ubuntu releases are tested and
known to work, i.e.:
Debian:
* Sarge 3.1 (i386 only)
* Etch 4.0
* Lenny 5.0
* Squeeze 6.0
* Wheezy 7.0 (preliminary support as it's not yet available)
* Sid (works at least at the moment of writing :-)
Ubuntu:
* Dapper Drake 6.06
* Edgy Eft 6.10
* Feisty Fawn 7.04
* Gutsy Gibbon 7.10
* Hardy Heron 8.04 (see [1])
* Interpid Ibex 8.10
* 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)
[1] There is an issue with debootstrap on hardy not installing ksyslogd
This can be fixed by chrooting into the newly installed system
and removing the startup scripts. See:
http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest
Xen-Tools are available prepackaged in Debian and as source tar-ball
for local installation. Installing from source should work flawlessly
on most Linux systems that meet the installation requirements.
Requirements
------------
To use these tools you'll need the following software:
* debootstrap
* Perl
* The Perl module "Text::Template"
* The Perl module "Config::IniFiles"
- Both of these modules are available as Debian packages,
or direct from http://www.cpan.org/ for non-Debian distributions.
* Make, if you are not installing through a package manager
You can try to install RPM-based distributions such as CentOS, or
Fedora Core, but you will need a correctly installed and configured
"rinse" package. This is currently not supported.
If you wish to create new Xen instances which may be controlled by
users via a login shell you can have a look at the (currently
unmaintained) xen-shell package which is available from:
http://xen-tools.org/software/xen-shell/
Installation
------------
As root or with sudo, execute "make install".
See debian/README.source how to build the Debian package from a
checked out copy of the git repository (i.e. without a source tar
ball).
The Scripts
-----------
Here is a brief description of each included script, for more
thorough documentation please consult the appropriate man page.
xen-create-image
----------------
This script is designed to create new images which may be used
with the Xen hypervisor.
This script performs the initial setup, then delegates the real
work to a collection of helper scripts:
* xt-install-image
Installs a distribution into a directory.
* xt-customize-image
Run a collection of hook scripts to configure the freshly
installed system.
* xt-create-xen-config
Create a configuration file in /etc/xen such that Xen can
boot the newly created machine.
* xt-guess-suite-and-mirror
In case of a Debian or Ubuntu Dom0, this script tries to guess
the most suitable suite and mirror for DomUs based on the Dom0's
/etc/apt/sources.list.
xen-create-nfs
--------------
This script is similar in spirit to xen-create-image, but much
less complex. It allows the creation of Xen guests which are
diskless, mounting their root filesystem over a remote NFS-share.
There are not many options to tweak, but still a useful addition
to the suite.
xen-delete-image
----------------
This script will allow you to completely remove Xen instances
which have previously been created by xen-create-image, this
includes removing the storage block devices from the system,
and deleting the Xen configuration file.
xen-list-images
---------------
List all the created images beneath a given root directory along
with a brief overview of their setup details.
xen-update-image
----------------
This script runs "apt-get update; apt-get upgrade" for a given
Xen image.
NOTES:
* The image should not be running or corruption will occur!
* The script should only be used for Xen instances of Debian or
a Debian-derived distribution.
--
The Xen-Tools Developer Team

View File

@@ -1,303 +0,0 @@
xen-tools
=========
[![Travis CI Build Status](https://api.travis-ci.org/xen-tools/xen-tools.svg)](https://travis-ci.org/xen-tools/xen-tools)
* [Homepage](https://www.xen-tools.org/software/xen-tools)
* [Change Log](https://github.com/xen-tools/xen-tools/blob/master/NEWS.markdown)
* Official Git Repositories:
* [at GitHub](https://github.com/xen-tools/xen-tools) (primary, includes [Issue Tracker](https://github.com/xen-tools/xen-tools/issues))
* [at GitLab](https://gitlab.com/xen-tools/xen-tools) (secondary, doesn't support the `git://` protocol.)
* Historical Git Repository: [at Gitorious](https://gitorious.org/xen-tools) (_outdated_, no more updated, for historical reference only)
* [Mailing Lists](https://www.xen-tools.org/software/xen-tools/lists.html)
About
-----
xen-tools contains a collection of Perl scripts for working with Xen
guest images under Linux.
Using this software, you can easily create new
[Xen](http://www.xen.org/) guests configured to be accessible over the
network via [OpenSSH](http://www.openssh.org/).
xen-tools currently has scripts to install most releases of
[Debian](https://www.debian.org/) (starting with 3.1 "Sarge") and
[Ubuntu](http://www.ubuntu.com/) (starting with 6.06 LTS "Dapper") and
some RPM-based distributions. On the Dom0 side all current Xen
supporting distributions should work.
However, currently only Debian and Ubuntu releases are tested and
known to work reliably, i.e.:
### Debian
* Sarge 3.1 (i386 and DomU only) [¹](#1)
* Etch 4.0 (Dom0 no more tested) [¹](#1)
* Lenny 5.0 (Dom0 no more tested) [¹](#1)
* Squeeze 6.0 (Dom0 no more tested) [¹](#1)
* Wheezy 7 (Dom0 no more tested) [¹](#1)
* Jessie 8
* Stretch 9
* Buster 10
* Bullseye 11
* Bookworm 12 (under development)
* Trixie 13 (knows about this future release name)
* Forky 14 (knows about this future release name)
* Sid (always under development; works at least at the moment of writing :-)
### Ubuntu
(only DomUs tested)
* Dapper Drake 6.06 (LTS) [¹](#1) [²](#2)
* Edgy Eft 6.10 [¹](#1) [²](#2)
* Feisty Fawn 7.04 [¹](#1)
* Gutsy Gibbon 7.10 [¹](#1)
* Hardy Heron 8.04 (LTS, see [Installing Ubuntu 8.04 as DomU][2]) [¹](#1)
* Interpid Ibex 8.10 [¹](#1)
* Jaunty Jackaplope 9.04 [¹](#1)
* Karmic Koala 9.10 [¹](#1)
* Lucid Lynx 10.04 (LTS) [¹](#1)
* Maverick Meerkat 10.10 [¹](#1)
* Natty Narwhal 11.04 [¹](#1)
* Oneiric Ocelot 11.10 [¹](#1)
* Precise Pangolin 12.04 (LTS) [¹](#1)
* Quantal Quetzal 12.10
* Raring Ringtail 13.04
* Saucy Salamander 13.10
* Trusty Tahr 14.04 (LTS)
* Utopic Unicorn 14.10
* Vivid Vervet 15.04
* Wily Werewolf 15.10
* Xenial Xerus 16.04 (LTS)
* Yakkety Yak 16.10
* Zesty Zapus 17.04
* Artful Aardvark 17.10
* Bionic Beaver 18.04 (LTS)
* Cosmic Cuttlefish 18.10
* Disco Dingo 19.04
* Eoan Ermine 19.10
* Focal Fossa 20.04 (LTS)
* Groovy Gorilla 20.10
* Hirsute Hippo 21.04 (under development)
### Footnotes
<dl compact="compact">
<dt><a id="1" name="1">¹</a></dt><dd>
Installation with `xen-create-image` and updating with
`xen-update-image` might fail with newer kernels/distributions running
on the Dom0 unless they have been booted with `vsyscall=emulate` on
the kernel commandline.
</dd><dt><a id="2" name="2">²</a></dt><dd>
At least between debootstrap version 1.0.37
and 1.0.93 (including) these distributions needs editing of
`/usr/share/debootstrap/scripts/edgy`, see [#659360][1].
</dd></dl>
[1]: https://bugs.debian.org/659360
"debootstrap in Wheezy can no more build Ubuntu Edgy or earlier"
[2]: http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest
"There is an issue with debootstrap on hardy not installing ksyslogd."
### CentOS
(only DomUs tested, pygrub support incomplete)
* CentOS 5
* CentOS 6
Packages
--------
xen-tools are available prepackaged in Debian (and derivates) and as
source tar-ball for local installation. Installing from source should
work flawlessly on most Linux systems that meet the installation
requirements.
Requirements
------------
To use these tools you'll need the following software:
* [debootstrap](https://packages.debian.org/debootstrap)
* Perl and the following Perl modules
* [Config::IniFiles](https://metacpan.org/release/Config-IniFiles)
([Debian Package libconfig-inifiles-perl](https://packages.debian.org/libconfig-inifiles-perl))
* [Text::Template](https://metacpan.org/release/Text-Template)
([Debian Package libtext-template-perl](https://packages.debian.org/libtext-template-perl))
* [Data::Validate::Domain](https://metacpan.org/release/Data-Validate-Domain)
([Debian Package libdata-validate-domain-perl](https://packages.debian.org/libdata-validate-domain-perl))
* [Data::Validate::IP](https://metacpan.org/release/Data-Validate-IP)
([Debian Package libdata-validate-ip-perl](https://packages.debian.org/libdata-validate-ip-perl))
* [Data::Validate::URI](https://metacpan.org/release/Data-Validate-URI)
([Debian Package libdata-validate-uri-perl](https://packages.debian.org/libdata-validate-uri-perl))
* [File::Slurp](https://metacpan.org/release/File-Slurp)
([Debian Package libfile-slurp-perl](https://packages.debian.org/libfile-slurp-perl))
* [File::Which](https://metacpan.org/release/File-Which)
([Debian Package libfile-which-perl](https://packages.debian.org/libfile-which-perl))
* and some more modules which are part of the Perl core and hence do not need to be installed separately.
* "Make", if you are not installing through a package manager.
You can try to install RPM-based distributions such as CentOS, or
Fedora Core, but you will need a correctly installed and configured
[rinse](https://packages.debian.org/rinse) package. This is currently
not fully supported.
If you wish to create new Xen instances which may be controlled by
users via a login shell you can have a look at the (currently
unmaintained) [xen-shell](https://xen-tools.org/software/xen-shell/)
project.
### Caveats
For security reasons (avoid risk to circumvent [ASLR][3]), recent kernels
have disabled the `vsyscall` mapping. Unfortunately older
distributions don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed
vsyscall address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
`vsyscall=emulate` to the kernel commandline, e.g. by adding it to
`GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, then running
`update-grub` afterwards and finally reboot.
[3]: https://en.wikipedia.org/wiki/Address_space_layout_randomization
"Address Space Layout Randomization"
Installation
------------
As root or with sudo, execute `make install`.
See `debian/README.source` how to build the Debian package from a
checked out copy of the git repository (i.e. without a source tar
ball).
The Scripts
-----------
Here is a brief description of each included script, for more thorough
documentation please consult the appropriate man page.
### xen-create-image
This script is designed to create new images which may be used
with the Xen hypervisor.
This script performs the initial setup, then delegates the real
work to a collection of helper scripts:
* `xt-install-image`: Installs a distribution into a directory.
* `xt-customize-image`: Run a collection of hook scripts to configure
the freshly installed system.
* `xt-create-xen-config`: Create a configuration file in `/etc/xen`
such that Xen can boot the newly created machine.
* `xt-guess-suite-and-mirror`: In case of a Debian or Ubuntu Dom0,
this script tries to guess the most suitable suite and mirror for
DomUs based on the Dom0's `/etc/apt/sources.list`.
### xen-create-nfs
This script is similar in spirit to `xen-create-image`, but much less
complex. It allows the creation of Xen guests which are diskless,
mounting their root filesystem over a remote NFS-share.
There are not many options to tweak, but still a useful addition
to the suite.
### xen-delete-image
This script will allow you to completely remove Xen instances which
have previously been created by `xen-create-image`, this includes
removing the storage block devices from the system, and deleting the
Xen configuration file.
### xen-list-images
List all the created images beneath a given root directory along with
a brief overview of their setup details.
### xen-update-image
This script runs "apt-get update; apt-get upgrade" for a given Xen
image.
#### NOTES
* The image should not be running or corruption will occur!
* The script should only be used for Xen instances of Debian or a
Debian-derived distribution.
Version Numbering Scheme
------------------------
Since release 4.4, the version numbering scheme of xen-tools tries to
comply with the [Semantic Versioning](http://semver.org/)
specification, with the only exception that in releases before 4.10
trailing zeroes were omitted.
Between the releases 3.9 and 4.4, the version numbering scheme
followed roughly the same ideas, but less strict.
Test Suite Coverage
-------------------
[![Coverage Status](https://coveralls.io/repos/xen-tools/xen-tools/badge.svg?branch=master)](https://coveralls.io/r/xen-tools/xen-tools?branch=master)
Despite parts of the test suite are quite old, it only tests a small
fraction of what xen-tools can do. Some of the scripts currently could
only be tested on an actual Xen Dom0. Hence the
[code coverage of xen-tools' test suite is quite bad](https://coveralls.io/r/xen-tools/xen-tools).
Bugs
----
### Reporting Bugs
If you're using the current packages included as part of the Debian
GNU/Linux distribution or a derivative, please first report any bugs
using the distribution's way to report bugs.
In case of Debian this would be using e.g. `reportbug xen-tools`.
If you're using the xen-tools built from source tar ball, please
[report bugs via GitHub's issue tracker](https://github.com/xen-tools/xen-tools/issues/new),
or, if you don't want to create a GitHub account or are not sure if
it's really a bug, feel free to just write an e-mail to the
[xen-tools dicsussion mailing list](mailto:xen-tools-discuss@xen-tools.org).
If you're capable of fixing it yourself a patch is appreciated, and a
test case would be a useful bonus.
### Known/Open Issues
You can check the following ressources for known or open issues:
* [xen-tools Issue Tracker at GitHub](https://github.com/xen-tools/xen-tools/issues)
(primary upstream bug tracker)
* [Mailing list archives of the xen-tools mailing lists](https://xen-tools.org/software/xen-tools/lists.html)
(might contain, loose, non-formal bug reports)
* [TODO file in the source code](https://github.com/xen-tools/xen-tools/blob/master/TODO.markdown)
* [xen-tools in the Debian Bug Tracking System](https://bugs.debian.org/xen-tools)
* [xen-tools in Ubuntu's Launchpad](https://bugs.launchpad.net/ubuntu/+source/xen-tools)
The Xen-Tools Developer Team

42
SUPPORT Normal file
View File

@@ -0,0 +1,42 @@
Mailing List
------------
For assistance on using, or customising, these scripts please
consult the manpages initially, then the website:
http://xen-tools.org/software/xen-tools/
If these are not sufficient resources please consider posting
any queries you might have to the mailing list:
http://xen-tools.org/software/xen-tools/lists.html
Included with the release you should find the file "BUGS" which
contains some notes on reporting bugs.
Xen Queries
-----------
If your query is mostly related to Xen, rather than these tools,
then please consider joining the xen-users mailing list:
http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users
The members of that list are very good at diagnosing issues with
networking, block devices, and other Xen oddities.
Contact The Author
------------------
As a last resort feel free to contact the author at <steve@steve.org.uk>.
I say last resort not because I'm unwilling to help, but because
it will take longer for me to respond to you personally and I hate
answering the same question multiple times.
Steve
--

View File

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

151
TODO Normal file
View File

@@ -0,0 +1,151 @@
TODO
====
See KNOWN_BUGS for real bugs.
Bugs to fix and features to add for 5.0
---------------------------------------
* xen-create-image man page overhaul:
- ambiguous option list with regards to parameters
- Set Fail in more situations where the script has clearly failed
i.e.: lvm exists
* Test and support more file system types.
Actually this should be pretty simple now that the parameters are
stored in the configuration hash.
* Setup locales in the hooks?
Currently no locales are set and this causes several domU errors
which appear in the domU's logs.
* Documentation overhaul
Better explain what roles /should be/ used for, and that roles
are examples, and shouldn't cover every single scenario. They
are also easy to write.
* xen-create-image --dist=... / sources.list generation should be more fine-grained
xen-tools should offer the possibility to enable/disable
security/volatile/backports as well as
contrib/non-free/universe/restricted/multiverse for each of them
not only based on defaults plus the Dom0's sources.list
One idea is to allow parameters like
--dist="lenny:main,contrib,non-free;security;volatile:main"
and maybe (if the default will be to include security) to also
allow
--dist="lenny;no-security"
The second idea (by Mathieu Parent) is to have an
/etc/xen-tools/sources.list.d/ which then contains files like
lenny.list, lenny-server.list, karmic.list, etc. which defaults to
$dist.list, but can be also select with --sources-list=lenny-server
(which looks for ./lenny-server.list, ./lenny-server,
/etc/xen-tools/sources.list.d/lenny-server.list and
/etc/xen-tools/sources.list.d/lenny-server in that order).
Third variant is to use /etc/xen-tools/sources.lists/ instead of
/etc/xen-tools/sources.list.d/ because that directory is no
runparts-like directory.
* LVM snapshot support as an install source.
* Clean up mounts on Ctrl-C, causes error while installing otherwise:
Removing /dev/vg0/acromantula-domu1-disk - since we're forcing the
install Can't remove open logical volume "acromantula-domu1-disk"
this should be a matter of unmounting the mounted volume from /tmp.
* Generic grub support
This will generate a much nicer menu.lst as a side effect, as its
currently generated once at install, and is never updated. Installing
a full grub into the domU should update the menu.lst every time a
new kernel is installed and will also use the domU distro's menu.lst
conform.
* pv-grub support
This is a ways away and will probably start with a xen-pv-grub
package.
* Move the hooks directory to /etc/xen-tools/ to officially allow
added and modified hooks.
* Clean up the hooks directory
Currently we have one directory for Ubuntu and Fedora named after
the first supported release which is then duplicated for each
subsequent release.
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
Still have to think of a good way of doing this. It would be nice
To specify a directory of public keys, parsing the hostnames
parsing the usernames from the ssh comment line
* More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up
the machine. Open to suggestions, should just be some general use-cases
that are fairly common.
* Sections for the xen-tools.conf file
Currently it's really annoying when you are trying to create VMs
on multiple subnets. It would be nice to specify with a flag what
"type" of configuration you want, and a set of options specific to
that flag could be parsed from xen-tools.conf
* 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
both. To allow verbose copying, I (Axel) would prefer /bin/cp over
cp();
* Parse numerical parameters transparently for the user
The user shouldn't have to know weather he should specify size
as <size>G or <size>Gb or <size>. This should be parsed without
user interaction and rely on a common format.
* xen-update-image should mount /dev/pts before running apt-get
* xen-update-image should have options for using ...
... aptitude instead of apt-get
... dist-upgrade instead of upgrade
* Use Perl::Critic
Stuff from Steve's TODO list / Generic TODOs
--------------------------------------------
* Write more test cases.
* xen-delete-image should unallocate any used IP addresses.

View File

@@ -1,73 +0,0 @@
TODO
====
Most things which used to be in here were moved to
[xen-tools' issue tracker at GitHub](https://github.com/xen-tools/xen-tools/issues).
Bugs to fix and features to add for 5.0
---------------------------------------
* Fix xdm and gdm roles wrt. to uptodate package names.
* Test and support more file system types.
Actually this should be pretty simple now that the parameters are
stored in the configuration hash.
* Setup locales in the hooks?
Currently no locales are set and this causes several domU errors
which appear in the domU's logs.
* Generic grub support
This will generate a much nicer `menu.lst` as a side effect, as its
currently generated once at install, and is never updated. Installing
a full grub into the domU should update the `menu.lst` every time a
new kernel is installed and will also use the domU distro's `menu.lst`
conform.
* More generic roles
Deploy a web server or setup ssmtp directly via flag when setting up
the machine. Open to suggestions, should just be some general use-cases
that are fairly common.
* Sections for the xen-tools.conf file
Currently it's really annoying when you are trying to create VMs
on multiple subnets. It would be nice to specify with a flag what
"type" of configuration you want, and a set of options specific to
that flag could be parsed from xen-tools.conf
* Parse numerical parameters transparently for the user
The user shouldn't have to know whether he should specify size as
`<size>G` or `<size>Gb` or `<size>`. This should be parsed without
user interaction and rely on a common format.
* Make used Xen toolstack configurable, i.e. via --xen-toolstack=xl
* Add test for `--size` constraints (upper- and lowercase letters,
with and without `B`, etc.)
* Needs a `--dry-run` or `--check-constraints` option in
`xen-create-image` first. Which probably both would be a good
idea.
* Maybe check for `vsyscall=emulate` in `GRUB_CMDLINE_LINUX_DEFAULT`
in `/etc/default/grub` if trying to install an affected Linux
distribution.
* Drop checking the host's sources.list to decide upon including the
security repo or not.
* Make a difference wrt. to the security repo for EoL releases.
Stuff from Steve's TODO list / Generic TODOs
--------------------------------------------
* Write more test cases.
* `xen-delete-image` should unallocate any used IP addresses.

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,5 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
@@ -38,6 +36,8 @@ xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
--nfs_server Specify the NFS server to mount the root partition from.
--nfs_root Specify the path, upon the NFS server, to mount.
=cut
=head1 OPTIONS
@@ -55,8 +55,11 @@ Read the manual for this script.
=item B<--version>
Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -68,20 +71,26 @@ Show the version number and exit.
support more than the minimal number of options to completement the
existing xen-create-image script, however it is hopefully useful.
=cut
=head1 REFERENCE
For more details on what you'll need to support NFS-root Xen guests
the following article, written by the author, might be useful:
https://debian-administration.org/articles/505
http://www.debian-administration.org/articles/505
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Steve Kemp, http://www.steve.org.uk/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -93,6 +102,7 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -102,7 +112,7 @@ use Env;
use Getopt::Long;
use Pod::Usage;
use Text::Template;
use Xen::Tools::Common;
#
@@ -121,7 +131,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
# store version number away.
@@ -131,7 +141,7 @@ $CONFIG{ 'xen_tools_version' } = $RELEASE;
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
#
@@ -160,7 +170,7 @@ if ( -e "/etc/xen/$CONFIG{'hostname'}.cfg" )
#
if ( $CONFIG{ 'admins' } )
{
setupAdminUsers(\%CONFIG);
setupAdminUsers();
}
#
@@ -176,6 +186,88 @@ createNewConfigurationFile();
exit;
=begin doc
Read the specified configuration file, and update our global configuration
hash with the values found in it.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -232,7 +324,13 @@ sub parseCommandLineArguments
if ($VERSION)
{
logprint("xen-create-nfs release $RELEASE\n");
my $REVISION = '$Revision: 1.13 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
logprint("xen-create-nfs release $RELEASE - CVS: $REVISION\n");
exit;
}
}
@@ -282,35 +380,87 @@ sub testArguments
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
# Shorthack to fix https://bugs.debian.org/648814 -- xen-create-nfs
# should better use xt-create-xen-config instead. Guess from where
# this code is borrowed for now...
if ( exists($CONFIG{ 'memory' }) and
defined($CONFIG{ 'memory' }) ) {
#
# The memory size: Convert Gb -> Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Gb.*$/i )
{
$CONFIG{ 'memory' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Mb.*$/i )
{
$CONFIG{ 'memory' } = $1;
}
}
# All OK.
}
=begin doc
This routine is designed to ensure that any users specified with
the --admins flag are setup as administrators of the new instance.
=end doc
=cut
sub setupAdminUsers
{
#
# If we're not root we can't modify users.
#
return if ( $EFFECTIVE_USER_ID != 0 );
#
# If we don't have a sudoers file then we'll also ignore this.
#
return if ( !-e "/etc/sudoers" );
#
# Find the path to the xen-login-shell
#
my $shell = undef;
$shell = "/usr/bin/xen-login-shell" if ( -x "/usr/bin/xen-login-shell" );
$shell = "/usr/local/bin/xen-login-shell"
if ( -x "/usr/bin/local/xen-login-shell" );
return if ( !defined($shell) );
#
# For each user make sure they exist, and setup the
# login shell for them.
#
foreach my $user ( split( /,/, $ENV{ 'admins' } ) )
{
# Strip leading and trailing whitespace.
$user =~ s/^\s+//;
$user =~ s/\s+$//;
# Ignore root
next if ( $user =~ /^root$/i );
# Does the user exist?
if ( getpwnam($user) )
{
# Change shell.
$CONFIG{ 'verbose' } && print "Changing shell for $user: $shell\n";
system( "chsh", "-s", $shell, $user );
}
else
{
# Add a new user.
$CONFIG{ 'verbose' } && print "Adding new user: $user\n";
system( "useradd", "-s", $shell, $user );
}
#
# Add the entry to /etc/sudoers.
#
open( SUDOERS, ">>", "/etc/sudoers" ) or
warn "Failed to add user to sudoers file : $user - $!";
print SUDOERS
"$user ALL = NOPASSWD: /usr/sbin/xm, /usr/bin/xen-create-image\n";
close(SUDOERS);
}
}
=begin doc
Create the Xen configuration file for our new Xen guest.

View File

@@ -1,7 +1,5 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-delete-image - Delete previously created Xen instances.
@@ -10,10 +8,6 @@ xen-delete-image - Delete previously created Xen instances.
xen-delete-image [options] [--hostname=]imageName1 [--hostname=]imageName2
Filename Options:
--extension Specify the file extension to use. An empty extension is equal
to any extension.
Help Options:
--help Show help information.
--manual Read the manual for this script.
@@ -24,13 +18,14 @@ xen-delete-image - Delete previously created Xen instances.
--dir Specify the output directory where images were previously saved.
--evms Specify the EVMS container to use.
--lvm Specify the LVM volume to use.
--zpool Specify the ZFS pool to use.
Specifying hosts:
--hostname Specify the image name to delete.
Testing options:
--test Don't complain if we're not invoked by root.
--test Don't complain if we're not invoked by root.
=cut
=head1 OPTIONS
@@ -52,21 +47,20 @@ Specify the hostname to delete.
=item B<--lvm>
Specify the LVM volume group where images were previously saved.
=item B<--zpool>
Specify the ZFS pool where images were previously saved.
=item B<--manual>
Read the manual for this script.
=item B<--test>
Do not complain, or exit, if the script is not executed by the root
user. (Only works in conjunction with --dir.)
Do not complain, or exit, if the script is not executed by the root user.
=item B<--version>
Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -80,6 +74,8 @@ Show the version number and exit.
but will fail to remove anything which the user does not have permission
to delete.)
=cut
=head1 LOOPBACK EXAMPLE
@@ -95,6 +91,8 @@ Show the version number and exit.
(The matching Xen configuration files beneath /etc/xen will also be
removed.)
=cut
=head1 LVM EXAMPLE
@@ -111,6 +109,8 @@ Show the version number and exit.
The Xen configuration files will also be removed from beneath /etc/xen.
=cut
=head1 EVMS EXAMPLE
@@ -127,17 +127,21 @@ Show the version number and exit.
The Xen configuration files will also be removed.
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
@@ -145,6 +149,7 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -153,7 +158,6 @@ use English;
use Getopt::Long;
use Pod::Usage;
use File::Path;
use Xen::Tools::Common;
#
@@ -167,26 +171,16 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
#
# Default values
#
$CONFIG{ 'extension' } = '.cfg';
#
# Read the global configuration file if it exists.
#
if ( -e "/etc/xen-tools/xen-tools.conf" )
{
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
}
@@ -208,12 +202,12 @@ checkArguments();
#
if ( ( !$CONFIG{ 'test' } ) && ( $EFFECTIVE_USER_ID != 0 ) )
{
print <<EOROOT;
print <<E_O_ROOT;
This script is not running with root privileges, so the configuration
file(s) beneath /etc/xen will not be removed.
EOROOT
E_O_ROOT
exit 127;
}
@@ -222,21 +216,27 @@ EOROOT
#
# Loop over the supplied arguments, and attempt to delete each
# image. Check both, bare parameters as well as --hostname options.
# image.
#
my @hosts = ();
if (exists($CONFIG{ 'hostname' }) and defined($CONFIG{ 'hostname' })) {
my $hostname_option = $CONFIG{ 'hostname' };
@hosts = 'ARRAY' eq ref($hostname_option) ?
@$hostname_option : $hostname_option;
while ( my $name = shift )
{
if ( !xenRunning($name) )
{
deleteXenImage($name);
}
else
{
print "Skipping xen guest '$name' - it appears to be running.\n";
}
}
foreach my $name (@ARGV, @hosts)
#
# Also delete any which were specified using the --hostname flag
#
my $hosts = $CONFIG{ 'hostname' };
foreach my $name (@$hosts)
{
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $name;
unless ( xenRunning($name, \%PER_HOST_CONFIG) )
if ( !xenRunning($name) )
{
deleteXenImage($name);
}
@@ -253,6 +253,81 @@ exit 0;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
@@ -269,75 +344,34 @@ sub parseCommandLineArguments
my $VERSION = 0;
$CONFIG{ 'dry-run' } = 0;
#
# We record the installation method here because we want
# to ensure that we allow the method supplied upon the command line
# to overwrite the one we might have ready read from the configuration
# file.
#
my %install;
$install{ 'evms' } = undef;
$install{ 'dir' } = undef;
$install{ 'lvm' } = undef;
$install{ 'zpool' } = undef;
# Parse options.
#
GetOptions( "dir=s", \$install{ 'dir' },
GetOptions( "dir=s", \$CONFIG{ 'dir' },
"dry-run", \$CONFIG{ 'dry-run' },
"lvm=s", \$install{ 'lvm' },
"evms=s", \$install{ 'evms' },
"zpool=s", \$install{ 'zpool' },
"extension:s", \$CONFIG{ 'extension' },
"lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$CONFIG{ 'evms' },
"hostname=s@", \$CONFIG{ 'hostname' },
"test", \$CONFIG{ 'test' },
"verbose", \$CONFIG{ 'verbose' },
"no-xen-ok", sub { warn "Option --no-xen-ok is deprecated and ignored."; },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION
);
#
# Now make ensure that the command line setting of '--lvm', '--evms', '--zpool'
# and '--dir=x' override anything specified in the configuration file.
#
if ( $install{ 'dir' } )
{
$CONFIG{ 'dir' } = $install{ 'dir' };
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'evms' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = $install{ 'evms' };
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'lvm' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = $install{ 'lvm' };
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'zpool' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = $install{ 'zpool' };
}
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
if ($VERSION)
{
print "xen-delete-image release $RELEASE\n";
my $REVISION = '$Revision: 1.41 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-delete-image release $RELEASE - CVS: $REVISION\n";
exit;
}
@@ -359,17 +393,17 @@ sub checkArguments
#
# When testing we only care about loopback images, not disk images.
#
if ( $CONFIG{ 'test' } and ( $CONFIG{ 'lvm' } or $CONFIG{ 'evms' } or $CONFIG{ 'zpool' } ))
if ( $CONFIG{ 'test' } )
{
print "Error: --test only works with --dir.\n";
exit 1;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'evms' } = undef;
}
#
# Make sure we got one and only one installation method.
#
my $count = 0;
foreach my $type (qw/dir lvm evms zpool/)
foreach my $type (qw/dir lvm evms/)
{
$count += 1 if defined( $CONFIG{ $type } );
}
@@ -384,13 +418,39 @@ sub checkArguments
print " --dir\n";
print " --evms\n";
print " --lvm\n";
print " --zpool\n";
exit 2;
exit;
}
}
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list $hostname 2>/dev/null |" ) or
die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}
=begin doc
Delete the named image, and the corresponding configuration file
@@ -412,17 +472,17 @@ sub deleteXenImage
#
# Delete the Xen auto-start file if it exists.
#
if ( -e "/etc/xen/auto/$hostname".$CONFIG{ 'extension' } )
if ( -e "/etc/xen/auto/$hostname.cfg" )
{
push( @delete, "/etc/xen/auto/$hostname".$CONFIG{ 'extension' } );
push( @delete, "/etc/xen/auto/$hostname.cfg" );
}
#
# Delete the Xen configuration file if it exists.
#
if ( -e "/etc/xen/$hostname".$CONFIG{ 'extension' } )
if ( -e "/etc/xen/$hostname.cfg" )
{
push( @delete, "/etc/xen/$hostname".$CONFIG{ 'extension' } );
push( @delete, "/etc/xen/$hostname.cfg" );
}
#
@@ -445,8 +505,7 @@ sub deleteXenImage
}
}
my %PER_HOST_CONFIG = %CONFIG;
$PER_HOST_CONFIG{ 'hostname' } = $hostname;
if ( defined( $CONFIG{ 'dir' } ) )
{
my $prefix = $CONFIG{ 'dir' } . "/domains/";
@@ -480,7 +539,7 @@ sub deleteXenImage
print "Would remove LVM swap volume /dev/$CONFIG{'lvm'}/$hostname-swap\n";
} else {
print "Removing swap volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-swap --force", \%PER_HOST_CONFIG);
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-swap --force");
}
}
@@ -490,7 +549,7 @@ sub deleteXenImage
print "Would remove LVM disk volume /dev/$CONFIG{'lvm'}/$hostname-disk\n";
} else {
print "Removing LVM disk volume\n";
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-disk --force", \%PER_HOST_CONFIG);
runCommand("lvremove /dev/$CONFIG{'lvm'}/$hostname-disk --force");
}
}
@@ -512,8 +571,8 @@ sub deleteXenImage
print "Would remove EVMS swap volume: $CONFIG{'evms'}/$hostname-swap\n";
} else {
print "Removing EVMS swap volume\n";
runCommand("echo Delete : /dev/evms/$hostname-swap | evms", \%PER_HOST_CONFIG);
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-swap | evms", \%PER_HOST_CONFIG);
runCommand("echo Delete : /dev/evms/$hostname-swap | evms");
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-swap | evms");
}
}
@@ -524,39 +583,8 @@ sub deleteXenImage
print "Would remove EVMS disk volume: $CONFIG{'evms'}/$hostname-swap\n";
} else {
print "Removing EVMS disk volume\n";
runCommand("echo Delete : /dev/evms/$hostname-disk | evms", \%PER_HOST_CONFIG);
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-disk | evms", \%PER_HOST_CONFIG);
}
}
}
elsif ( defined( $CONFIG{ 'zpool' } ) )
{
#
# ZFS volumes
#
#
# TODO: Check we're not mounted.
#
if ( -e "/dev/$CONFIG{'zpool'}/$hostname-swap" )
{
if ($CONFIG{ 'dry-run' }) {
print "Would remove ZFS swap volume /dev/$CONFIG{'zpool'}/$hostname-swap\n";
} else {
print "Removing swap volume\n";
runCommand("zfs destroy -R $CONFIG{'zpool'}/$hostname-swap", \%PER_HOST_CONFIG);
}
}
if ( -e "/dev/$CONFIG{'zpool'}/$hostname-disk" )
{
if ($CONFIG{ 'dry-run' }) {
print "Would remove ZFS disk volume /dev/$CONFIG{'zpool'}/$hostname-disk\n";
} else {
print "Removing ZFS disk volume\n";
runCommand("zfs destroy -R $CONFIG{'zpool'}/$hostname-disk", \%PER_HOST_CONFIG);
runCommand("echo Delete : /dev/evms/$hostname-disk | evms");
runCommand("echo Delete : $CONFIG{'evms'}/$hostname-disk | evms");
}
}
@@ -569,3 +597,66 @@ sub deleteXenImage
exit 127;
}
}
=begin doc
A utility method to run a system command. We will capture the return
value and exit if the command files.
When running verbosely we will also display any command output.
=end doc
=cut
sub runCommand
{
my ($cmd) = (@_);
#
# Header.
#
$CONFIG{ 'verbose' } && print "Executing : $cmd\n";
#
# Hide output unless running with --debug.
#
if ( $CONFIG{ 'verbose' } )
{
#
# Copy stderr to stdout, so we can see it.
#
$cmd .= " 2>&1";
}
else
{
$cmd .= " >/dev/null 2>/dev/null";
}
#
# Run it.
#
my $output = `$cmd`;
if ( $? != 0 )
{
print "Running command '$cmd' failed.\n";
print "Aborting\n";
exit;
}
#
# All done.
#
$CONFIG{ 'verbose' } && print "Output\n";
$CONFIG{ 'verbose' } && print "======\n";
$CONFIG{ 'verbose' } && print $output . "\n";
$CONFIG{ 'verbose' } && print "Finished : $cmd\n";
return ($output);
}

View File

@@ -1,7 +1,5 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-list-images - List all the created and configured Xen images.
@@ -10,10 +8,6 @@ xen-list-images - List all the created and configured Xen images.
xen-list-image [options]
Filename Options:
--extension Specify the file extension to use. An empty extension is equal
to any extension.
Help Options:
--help Show this scripts help information.
--manual Read this scripts manual.
@@ -22,7 +16,6 @@ xen-list-images - List all the created and configured Xen images.
Testing options:
--test Specify an alternate Xen configuration directory.
=head1 OPTIONS
=over 8
@@ -55,22 +48,26 @@ Show the version number and exit.
and then either the IP address configured, or "DHCP" to denote
a dynamic host.
=cut
=head1 TODO
It should be possible to determine the disk(s) used by the images,
and then display their sizes.
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Steve Kemp, http://www.steve.org.uk/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2013 by The Xen-Tools
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
@@ -86,7 +83,6 @@ use English;
use File::Temp qw/ tempdir /;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -98,22 +94,21 @@ use Xen::Tools::Common;
my %CONFIG;
#
# Default values
# Default prefix
#
$CONFIG{ 'prefix' } = "/etc/xen";
$CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
#
# Read the global configuration file if it exists.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
#
@@ -149,6 +144,83 @@ exit;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( my $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
Parse the arguments specified upon the command line.
@@ -166,7 +238,6 @@ sub parseCommandLineArguments
# Parse options.
#
GetOptions( "test=s", \$CONFIG{ 'prefix' },
"extension:s", \$CONFIG{ 'extension' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION );
@@ -177,7 +248,13 @@ sub parseCommandLineArguments
if ($VERSION)
{
print "xen-list-images release $RELEASE\n";
my $REVISION = '$Revision: 1.30 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-list-images release $RELEASE - CVS: $REVISION\n";
exit;
}
}
@@ -197,12 +274,9 @@ sub findXenInstances
{
my @found;
foreach my $file ( sort( glob( $CONFIG{ 'prefix' } . "/*" . $CONFIG{ 'extension' } ) ) )
foreach my $file ( sort( glob( $CONFIG{ 'prefix' } . "/*.cfg" ) ) )
{
push @found, $file if (
-f $file and
$file !~ m(~$|\.dpkg-[a-z]+$|\.sxp$|/xl\.conf$)
);
push @found, $file if ( -e $file );
}
return (@found);
@@ -212,7 +286,7 @@ sub findXenInstances
=begin doc
Show details about the Xen instance contained in the given
Show details about the the Xen instance contained in the given
configuration file.
=end doc
@@ -249,7 +323,7 @@ sub displayInstance
{
$name = $1;
}
if ( $line =~ /^\s*memory[^0-9]*([0-9]+)/i )
if ( $line =~ /.*memory[^0-9]*([0-9]+)/i )
{
$mem = $1;
}
@@ -264,10 +338,9 @@ sub displayInstance
}
print "Name: $name\n";
print "Memory: $mem MB\n";
print "Memory: $mem\n";
print "IP: " . $ip . $mac . "\n" if length($ip);
print "DHCP" . $mac . "\n" if $dhcp;
print "Config: $file\n";
}

View File

@@ -1,7 +1,5 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-resize-guest - Resize a loopback or LVM based xen guest.
@@ -22,6 +20,8 @@ xen-resize-guest - Resize a loopback or LVM based xen guest.
--force Force the resize to happen without a last-chance delay.
--hostname Specify the hostname of the guest to resize.
=cut
=head1 OPTIONS
@@ -53,6 +53,8 @@ Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -72,11 +74,14 @@ Show the version number and exit.
More than once I've heard of users making mistakes and breaking their
filesystems; hence this tool.
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
=cut
=head1 LICENSE
@@ -89,6 +94,7 @@ you can redistribute it and/or modify it under
the same terms as Perl itself.
The LICENSE file contains the full text of the license.
=cut
@@ -98,7 +104,6 @@ use Env;
use Getopt::Long;
use Pod::Usage;
use Text::Template;
use Xen::Tools::Common;
@@ -111,19 +116,14 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
#
@@ -289,6 +289,84 @@ exit 0;
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -340,7 +418,7 @@ sub parseCommandLineArguments
#
# Setup mutually exclusive options in such a way that
# they will allow the configuration values to be overridden by
# they will allow the configuration values to be overriden by
# the command line.
#
if ( $install{ 'lvm' } )
@@ -404,7 +482,7 @@ EOF
#
# Make sure the guest isn't running
#
if ( xenRunning( $CONFIG{ 'hostname' }, \%CONFIG ) )
if ( xenRunning( $CONFIG{ 'hostname' } ) )
{
print "The guest $CONFIG{'hostname'} appears to be running!\n";
exit 1;
@@ -445,3 +523,31 @@ EOF
$CONFIG{ 'add' } = $1;
}
}
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list $hostname 2>/dev/null |" ) or
die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}

View File

@@ -1,7 +1,5 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xen-update-image - Update the software installed upon offline Xen images.
@@ -20,6 +18,9 @@ xen-update-image - Update the software installed upon offline Xen images.
--lvm Specify the LVM volume group which contains the image(s).
--evms Specify the EVMS container which contains the image(s).
=cut
=head1 OPTIONS
@@ -45,6 +46,8 @@ Show the version number and exit.
=back
=cut
=head1 DESCRIPTION
@@ -62,6 +65,8 @@ Show the version number and exit.
corruption otherwise it will allow you to update your image without
booting it.
=cut
=head1 EXAMPLES
@@ -72,13 +77,16 @@ Show the version number and exit.
xen-update-images --dir=/home/xen test.my.flat x11.my.flat
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -99,7 +107,6 @@ use File::Temp qw/ tempdir /;
use File::Copy qw/ mv cp /;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -113,13 +120,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.10.0';
#
# Find xen toolstack command
#
$CONFIG{ 'xm' } = findXenToolstack();
my $RELEASE = '4.2';
#
@@ -127,7 +128,7 @@ $CONFIG{ 'xm' } = findXenToolstack();
#
if ( -e "/etc/xen-tools/xen-tools.conf" )
{
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
}
@@ -149,13 +150,13 @@ checkArguments();
#
if ( $EFFECTIVE_USER_ID != 0 )
{
print <<EOROOT;
print <<E_O_ROOT;
This script is not running with root privileges.
root privileges are required to successfully mount the disk image(s).
EOROOT
E_O_ROOT
exit;
}
@@ -167,7 +168,7 @@ EOROOT
#
while ( my $name = shift )
{
if ( !xenRunning($name, \%CONFIG) )
if ( !xenRunning($name) )
{
updateXenImage($name);
}
@@ -302,7 +303,7 @@ sub updateXenImage
# Now upgrade
#
system(
"DEBIAN_FRONTEND=noninteractive chroot $tmp /usr/bin/apt-get upgrade --yes"
"DEBIAN_FRONTEND=noninteractive chroot $tmp /usr/bin/apt-get upgrade --yes --force-yes"
);
#
@@ -330,6 +331,110 @@ sub updateXenImage
=begin doc
Test to see if the given instance is running.
=end doc
=cut
sub xenRunning
{
my ($hostname) = (@_);
my $running = 0;
open( CMD, "xm list 2>/dev/null |" ) or
die "Failed to run 'xm list $hostname'";
while (<CMD>)
{
my $line = $_;
$running = 1 if ( $line =~ /\Q$hostname\E/ );
}
close(CMD);
return ($running);
}
=begin doc
Read the configuration file specified.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
my $line = "";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
Parse the arguments specified upon the command line.
@@ -344,58 +449,27 @@ sub parseCommandLineArguments
my $MANUAL = 0;
my $VERSION = 0;
#
# We record the installation method here because we want
# to ensure that we allow the method supplied upon the command line
# to overwrite the one we might have ready read from the configuration
# file.
#
my %install;
$install{ 'evms' } = undef;
$install{ 'dir' } = undef;
$install{ 'lvm' } = undef;
# Parse options.
#
GetOptions( "dir=s", \$install{ 'dir' },
"lvm=s", \$install{ 'lvm' },
"evms=s", \$install{ 'evms' },
GetOptions( "dir=s", \$CONFIG{ 'dir' },
"lvm=s", \$CONFIG{ 'lvm' },
"evms=s", \$CONFIG{ 'evms' },
"help", \$HELP,
"manual", \$MANUAL,
"version", \$VERSION );
#
# Now make ensure that the command line setting of '--lvm', '--evms', '--zpool'
# and '--dir=x' override anything specified in the configuration file.
#
if ( $install{ 'dir' } )
{
$CONFIG{ 'dir' } = $install{ 'dir' };
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'evms' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = $install{ 'evms' };
$CONFIG{ 'lvm' } = undef;
$CONFIG{ 'zpool' } = undef;
}
if ( $install{ 'lvm' } )
{
$CONFIG{ 'dir' } = undef;
$CONFIG{ 'evms' } = undef;
$CONFIG{ 'lvm' } = $install{ 'lvm' };
$CONFIG{ 'zpool' } = undef;
}
pod2usage(1) if $HELP;
pod2usage( -verbose => 2 ) if $MANUAL;
if ($VERSION)
{
print "xen-update-image release $RELEASE\n";
my $REVISION = '$Revision: 1.29 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xen-update-image release $RELEASE - CVS: $REVISION\n";
exit;
}

View File

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-create-config - Create a Xen configuration file for a new guest
=cut
=head1 SYNOPSIS
xt-create-config [options]
@@ -39,6 +39,7 @@ xt-create-config - Create a Xen configuration file for a new guest
All other options from xen-create-image, such as the new IP address(es)
to give to the new instance, will be passed as environmental variables.
=cut
=head1 ABOUT
@@ -52,6 +53,8 @@ xt-create-config - Create a Xen configuration file for a new guest
By default the script will use /etc/xen-tools/xm.tmpl as its input.
=cut
=head1 INVOCATION
@@ -72,6 +75,9 @@ xt-create-config - Create a Xen configuration file for a new guest
=for example end
=cut
=head1 ARGUMENT PASSING
This script will be invoked with a full copy of the arguments from
@@ -96,17 +102,19 @@ xt-create-config - Create a Xen configuration file for a new guest
for the "Text::Template" perl module. (If you have the perldoc
package installed you can read this with "perldoc Text::Template".)
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
@@ -148,7 +156,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
@@ -169,7 +177,7 @@ checkArguments();
#
if ( $ENV{ 'admins' } )
{
setupAdminUsers(\%CONFIG);
setupAdminUsers();
}
@@ -207,7 +215,7 @@ sub parseCommandLineArguments
#
GetOptions( "admins=s", \$ENV{ 'admins' },
"output=s", \$CONFIG{ 'output' },
"extension:s", \$CONFIG{ 'extension' },
"extension=s", \$CONFIG{ 'extension' },
"template=s", \$CONFIG{ 'template' },
"verbose", \$CONFIG{ 'verbose' },
"help", \$HELP,
@@ -221,7 +229,13 @@ sub parseCommandLineArguments
if ($VERSION)
{
print "xt-create-xen-config release $RELEASE\n";
my $REVISION = '$Revision: 1.47 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-create-xen-config release $RELEASE - CVS: $REVISION\n";
exit;
}
}
@@ -254,7 +268,7 @@ sub checkArguments
if ( !-d $CONFIG{ 'output' } )
{
print
"The output directory we've been given, $CONFIG{'output'}, doesn't exist\n";
"The output directory we've been given, $CONFIG{'output'}, doesnt exist\n";
print "Aborting\n";
exit 1;
}
@@ -361,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;
}
@@ -369,24 +383,12 @@ sub createXenConfig
#
# Remove any trailing Mb.
#
$ENV{ 'memory' } =~ s/^(\d+)Mb?.*$/$1/i;
#
# The maxmem size: Convert Gb -> Mb.
#
if ( exists($ENV{ 'maxmem' }) and defined($ENV{ 'maxmem' })) {
if ($ENV{ 'maxmem' } =~ /^(\d+)Gb?.*$/i )
{
$ENV{ 'maxmem' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
$ENV{ 'maxmem' } =~ s/^(\d+)Mb?.*$/$1/i;
if ( $ENV{ 'memory' } =~ /^(\d+)Mb*$/i )
{
$ENV{ 'memory' } = $1;
}
#
# Images as presented to Xen - either loopback images, or LVM partitions.
#
@@ -402,13 +404,13 @@ sub createXenConfig
$ENV{ 'image_suffix' } = '';
importPartitionsFromEnvironment();
}
elsif ( $ENV{ 'image_dev' } )
elsif ( $ENV{ 'image-dev' } )
{
$ENV{ 'image_vbd' } = "phy:$ENV{'image_dev'}";
$ENV{ 'image_vbd' } = "phy:$ENV{'image-dev'}";
if ( $ENV{ 'swap_dev' } )
if ( $ENV{ 'swap-dev' } )
{
$ENV{ 'swap_vbd' } = "phy:$ENV{'swap_dev'}";
$ENV{ 'swap_vbd' } = "phy:$ENV{'swap-dev'}";
}
else
{
@@ -468,3 +470,80 @@ sub createXenConfig
close(FILE);
}
=begin doc
This routine is designed to ensure that any users specified with
the --admins flag are setup as administrators of the new instance.
=end doc
=cut
sub setupAdminUsers
{
#
# If we're not root we can't modify users.
#
return if ( $EFFECTIVE_USER_ID != 0 );
#
# If we don't have a sudoers file then we'll also ignore this.
#
return if ( !-e "/etc/sudoers" );
#
# Find the path to the xen-login-shell
#
my $shell = undef;
$shell = "/usr/bin/xen-login-shell" if ( -x "/usr/bin/xen-login-shell" );
$shell = "/usr/local/bin/xen-login-shell"
if ( -x "/usr/bin/local/xen-login-shell" );
return if ( !defined($shell) );
#
# For each user make sure they exist, and setup the
# login shell for them.
#
foreach my $user ( split( /,/, $ENV{ 'admins' } ) )
{
# Strip leading and trailing whitespace.
$user =~ s/^\s+//;
$user =~ s/\s+$//;
# Ignore root
next if ( $user =~ /^root$/i );
# Does the user exist?
if ( getpwnam($user) )
{
# Change shell.
$CONFIG{ 'verbose' } && print "Changing shell for $user: $shell\n";
system( "chsh", "-s", $shell, $user );
}
else
{
# Add a new user.
$CONFIG{ 'verbose' } && print "Adding new user: $user\n";
system( "useradd", "-s", $shell, $user );
}
#
# Add the entry to /etc/sudoers.
#
open( SUDOERS, ">>", "/etc/sudoers" ) or
warn "Failed to add user to sudoers file : $user - $!";
print SUDOERS
"$user ALL = NOPASSWD: /usr/sbin/xm, /usr/bin/xen-create-image\n";
close(SUDOERS);
}
}

View File

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-customize-image - Customize a freshly installed copy of GNU/Linux
=cut
=head1 SYNOPSIS
xt-customize-image [options]
@@ -25,11 +25,12 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
All other options from xen-create-image, such as the new IP address(es)
to give to the new instance, will be passed as environmental variables.
=cut
=head1 NOTES
This script is invoked by xen-create-image after it has created a
fresh installation of Linux within a temporary location.
fresh installation of Linux withing a temporary location.
This script will be invoked with a full copy of the arguments from
xen-create-image in its environment, along with several command line
@@ -40,6 +41,8 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
--location - The temporary installation root of the new install
--dist - The distribution which has been installed.
=cut
=head1 HOOK SCRIPTS
@@ -51,25 +54,20 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
the --location option.
For the distribution named 'foo' the scripts will be loaded and
executed from '/usr/share/xen-tools/foo.d'. Each executable will
executed from '/usr/lib/xen-tools/foo.d'. Each executable will
be loaded and executed in sorted order.
The systems administrator can optionally provide site-specific
revisions of those same hooks by placing them in the directory
'/etc/xen-tools/hooks.d/' in which case a script with the same name
as the one in the 'foo.d' directory above will take precedence. In
this way certain hooks can be prevented from running, expanded with
site-specific features which won't get overwritten on upgrades, or
patched with critical bug-fixes before the upstream OS distribution
provider reacts.
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -100,7 +98,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
@@ -161,7 +159,13 @@ sub parseCommandLineArguments
if ($VERSION)
{
print "xt-customize-image release $RELEASE\n";
my $REVISION = '$Revision: 1.33 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-customize-image release $RELEASE - CVS: $REVISION\n";
exit;
}
}
@@ -217,11 +221,11 @@ sub checkArguments
# If there are no scripts then we clearly cannot
# customise it!
#
my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
my $dir = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir )
{
print <<EOR;
print <<E_OR;
We\'re trying to configure an installation of $CONFIG{'dist'} in
$CONFIG{'location'} - but there is no hook directory for us to use.
@@ -231,7 +235,7 @@ sub checkArguments
We\'d expect the hook directory to be : $dir
Aborting.
EOR
E_OR
exit 1;
}
@@ -259,8 +263,7 @@ sub runDistributionHooks
#
# Hook directory.
#
my $hooks = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
my $hooks_local = "/etc/xen-tools/hooks.d/";
my $hooks = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d/";
#
# Installation prefix
@@ -305,20 +308,10 @@ sub runDistributionHooks
$name = $2;
}
#
# Run a local version of the hook instead of the system one,
# if the local one exists and is executable.
#
my $file_local = $hooks_local . $name;
if ( ( -x $file_local ) && ( -f $file_local ) )
{
$file = $file_local
}
#
# Complete command we're going to execute.
#
my $cmd = $file . " $CONFIG{'location'}";
my $cmd = $hooks . $name . " $CONFIG{'location'}";
#
# Run the command. This has different prolog and epilog

View File

@@ -1,17 +1,16 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-guess-suite-and-mirror - Tries to guess the most suitable suite and
mirror for DomUs on Debian and Ubuntu Dom0s.
=cut
=head1 SYNOPSIS
--suite Show suite
--mirror Show mirror
--sources-list=<file> Parse this file as sources.list
--suite Show suite
--mirror Show mirror
Shows both if no parameter is given.
@@ -21,6 +20,7 @@ mirror for DomUs on Debian and Ubuntu Dom0s.
--manual Show the manual for this script.
--version Show the version number and exit.
=cut
=head1 DESCRIPTION
@@ -28,16 +28,18 @@ xt-guess-suite-and-mirror tries to find the mirror and suite the Xen
Dom0 is currently using and returns them in a way suitable for
xen-create-image(1) or the backticks feature in xen-tools.conf.
=cut
=head1 AUTHORS
Axel Beckert, https://axel.beckert.ch/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (C) 2010-2012 by The Xen-Tools Development Team. All rights
Copyright (C) 2010 by The Xen-Tools Development Team. All rights
reserved.
This module is free software; you can redistribute it and/or modify it
@@ -53,9 +55,9 @@ full text of the license.
# Fallback to Debian or Ubuntu in case we can't find anything
my $fallback = 'Debian';
# Which mirrors to use if everything else fails (deb.debian.org
# redirects to a working mirror nearby)
my %fallback_mirror = ( Debian => 'http://deb.debian.org/debian/',
# Which mirrors to use if everything else fails (cdn.debian.net uses
# GeoIP, see http://wiki.debian.org/DebianGeoMirror)
my %fallback_mirror = ( Debian => 'http://cdn.debian.net/debian/',
Ubuntu => 'http://archive.ubuntu.com/ubuntu/' );
# Which suite to use if everything else fails. For Debian "stable"
@@ -63,16 +65,14 @@ my %fallback_mirror = ( Debian => 'http://deb.debian.org/debian/',
# have aliases like stable or testing, so we take the nearest LTS
# release which is 10.04 at the time of writing.
my %fallback_suite = ( Debian => 'stable',
Ubuntu => 'jammy' );
Ubuntu => 'lucid' );
# Where to look for the sources.list to parse
my @sources_list_files = ( '/etc/apt/sources.list',
glob('/etc/apt/sources.list.d/*.list'));
my $sources_list_file = '/etc/apt/sources.list';
use File::Slurp;
use Getopt::Long;
use Pod::Usage;
use File::Which;
use strict;
@@ -80,7 +80,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
# Init
my $mirror = '';
@@ -93,13 +93,11 @@ my $want_suite = 0;
my $want_version = 0;
my $want_help = 0;
my $want_manual = 0;
my $sources_list = undef;
my $result = GetOptions( 'mirror|m' => \$want_mirror,
'suite|s' => \$want_suite,
'version' => \$want_version,
'manual' => \$want_manual,
'sources-list=s' => \$sources_list,
'help' => \$want_help );
if ($want_help) {
@@ -110,56 +108,52 @@ if ($want_manual) {
pod2usage( -verbose => 2 );
}
if (defined $sources_list) {
@sources_list_files = ($sources_list);
}
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(-ports)?/?$)) {
# 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 all_sources_list_files;
}
$found = 1;
last;
}
}
}
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
join("\n ", @sources_list_files)."\n" unless $found;
my $lsb_release = which('lsb_release');
if (!$found and defined($lsb_release) and -x $lsb_release) {
warn "Couldn't parse $sources_list_file of the Dom0.\n" unless $found;
}
my $lsb_release = `which lsb_release`;
chomp($lsb_release);
if (!$found and $lsb_release and -x $lsb_release) {
my $vendor = `$lsb_release -s -i`;
if ($vendor eq 'Debian' or $vendor eq 'Ubuntu') {

View File

@@ -1,11 +1,11 @@
#!/usr/bin/perl -w
=encoding utf8
=head1 NAME
xt-install-image - Install a fresh copy of GNU/Linux into a directory
=cut
=head1 SYNOPSIS
xt-install-image [options]
@@ -27,8 +27,6 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
--config Read the specified config file in addition to the global
configuration file.
--mirror The mirror to use when installing with 'debootstrap'.
--apt_proxy The proxy to use when installing with 'debootstrap'.
--keyring The keyring to use when installing with 'debootstrap'.
Installation Options:
--install-method Specify the installation method to use.
@@ -40,6 +38,8 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
All other options from xen-create-image will be passed as environmental
variables.
=cut
=head1 NOTES
@@ -49,6 +49,8 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
configuration, etc.
=cut
=head1 INSTALLATION METHODS
There are several available methods of installation, depending upon the
@@ -75,14 +77,17 @@ Untar a .tar file into the new installation location. This tarfile is assumed t
=back
=cut
=head1 AUTHORS
Steve Kemp, https://steve.fi/
Axel Beckert, https://axel.beckert.ch/
Dmitry Nedospasov, http://www.nedos.net/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Stéphane Jourdois
=cut
=head1 LICENSE
@@ -102,7 +107,6 @@ use Env;
use File::Copy;
use Getopt::Long;
use Pod::Usage;
use Xen::Tools::Common;
#
@@ -113,7 +117,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.10.0';
my $RELEASE = '4.2';
#
@@ -127,19 +131,13 @@ my $RELEASE = '4.10.0';
# needDirectory Defined if we need an install-source directory specified.
#
#
my $debootstrap_cmd;
my %dispatch = (
"copy" => { sub => \&do_copy,
needBinary => "/bin/cp",
needDirectory => 1,
},
"debootstrap" => { sub => \&do_debootstrap,
needBinary => ["/usr/sbin/debootstrap", "/usr/bin/cdebootstrap", "/usr/bin/cdebootstrap-static"],
var => \$debootstrap_cmd,
},
"cdebootstrap" => { sub => \&do_debootstrap,
needBinary => ["/usr/sbin/cdebootstrap", "/usr/bin/cdebootstrap-static"],
var => \$debootstrap_cmd,
needBinary => "/usr/sbin/debootstrap",
},
"rinse" => { sub => \&do_rinse,
needBinary => "/usr/sbin/rinse",
@@ -157,7 +155,7 @@ my %dispatch = (
#
# Read the global configuration file.
#
readConfigurationFile("/etc/xen-tools/xen-tools.conf", \%CONFIG);
readConfigurationFile("/etc/xen-tools/xen-tools.conf");
#
@@ -180,7 +178,7 @@ if ( $CONFIG{ 'config' } )
}
# Read the file, if it exists.
readConfigurationFile($path, \%CONFIG) if ( -e $path );
readConfigurationFile($path) if ( -e $path );
}
@@ -210,35 +208,13 @@ if ( defined( $CONFIG{ 'install-method' } ) &&
#
# Do we need to test for a binary.
if ( $installer->{ 'needBinary' } ) {
if ( 'ARRAY' eq ref $installer->{ 'needBinary' } ) {
unless (ref $installer->{ 'var' }) {
die "Assertion: If dispatch->->needBinary is an array ref, dispatch->->var must exist";
}
foreach my $binary (@{$installer->{ 'needBinary' }}) {
if (-x $binary) {
${$installer->{ 'var' }} = $binary;
last;
}
}
unless ( ${$installer->{ 'var' }} ) {
print
"One of the following binaries are required for the installation, but none was found\n";
print "\t" . join(', ', @{$installer->{ 'needBinary' }}) . "\n";
exit 1;
}
}
else
{
if ( !-x $installer->{ 'needBinary' } ) {
print
"The following required binary for the installation was not found\n";
print "\t" . $installer->{ 'needBinary' } . "\n";
exit 1;
}
}
if ( ( $installer->{ 'needBinary' } ) &&
( !-x $installer->{ 'needBinary' } ) )
{
print
"The following required binary for the installation was not found\n";
print "\t" . $installer->{ 'needBinary' } . "\n";
exit 1;
}
# Do we need a directory specified as the installation source?
@@ -303,6 +279,87 @@ else
=begin doc
Read the specified configuration file, and update our global configuration
hash with the values found in it.
=end doc
=cut
sub readConfigurationFile
{
my ($file) = (@_);
# Don't read the file if it doesn't exist.
return if ( !-e $file );
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
while ( defined( $line = <FILE> ) )
{
chomp $line;
if ( $line =~ s/\\$// )
{
$line .= <FILE>;
redo unless eof(FILE);
}
# Skip lines beginning with comments
next if ( $line =~ /^([ \t]*)\#/ );
# Skip blank lines
next if ( length($line) < 1 );
# Strip trailing comments.
if ( $line =~ /(.*)\#(.*)/ )
{
$line = $1;
}
# Find variable settings
if ( $line =~ /([^=]+)=([^\n]+)/ )
{
my $key = $1;
my $val = $2;
# Strip leading and trailing whitespace.
$key =~ s/^\s+//;
$key =~ s/\s+$//;
$val =~ s/^\s+//;
$val =~ s/\s+$//;
# command expansion?
if ( $val =~ /(.*)`([^`]+)`(.*)/ )
{
# store
my $pre = $1;
my $cmd = $2;
my $post = $3;
# get output
my $output = `$cmd`;
chomp($output);
# build up replacement.
$val = $pre . $output . $post;
}
# Store value.
$CONFIG{ $key } = $val;
}
}
close(FILE);
}
=begin doc
Parse the command line arguments this script was given.
@@ -338,8 +395,6 @@ sub parseCommandLineArguments
"cachedir=s", \$CONFIG{ 'cachedir' },
"config=s", \$CONFIG{ 'config' },
"mirror=s", \$CONFIG{ 'mirror' },
"keyring=s", \$CONFIG{ 'keyring' },
"apt_proxy=s", \$CONFIG{ 'apt_proxy' },
# Help.
"verbose", \$CONFIG{ 'verbose' },
@@ -354,7 +409,13 @@ sub parseCommandLineArguments
if ($VERSION)
{
print "xt-install-image release $RELEASE\n";
my $REVISION = '$Revision: 1.65 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
}
print "xt-install-image release $RELEASE - CVS: $REVISION\n";
exit;
}
}
@@ -410,11 +471,11 @@ sub checkArguments
# If there are no scripts then we clearly cannot
# customise it!
#
my $dir = "/usr/share/xen-tools/" . $CONFIG{ 'dist' } . ".d";
my $dir = "/usr/lib/xen-tools/" . $CONFIG{ 'dist' } . ".d";
if ( !-d $dir )
{
print <<EOR;
print <<E_OR;
We are trying to configure an installation of $CONFIG{'dist'} in
$CONFIG{'location'} - but there is no hook directory for us to use.
@@ -424,7 +485,7 @@ sub checkArguments
We would expect the hook directory to be $dir.
Aborting.
EOR
E_OR
exit 1;
}
@@ -490,6 +551,53 @@ EOT
=begin doc
A utility method to run a system command. We will capture the return
value and exit if the command fails.
When running verbosely we will also display any command output.
=end doc
=cut
sub runCommand
{
my ($cmd) = (@_);
#
# Command start.
#
$CONFIG{ 'verbose' } && print "Executing : $cmd\n";
#
# Copy stderr to stdout, so we can see it, and make sure we log it.
#
$cmd .= " 2>&1 | tee --append /var/log/xen-tools/$CONFIG{'hostname'}.log";
#
# Run it.
#
my $output = `$cmd`;
if ( $? != 0 )
{
print "Running command '$cmd' failed.\n";
print "Aborting\n";
exit 127;
}
#
# Command finished.
#
$CONFIG{ 'verbose' } && print "Finished : $cmd\n";
return ($output);
}
=begin doc
This function will copy all the .deb files from one directory
@@ -575,7 +683,7 @@ sub do_copy
#
# Run the copy command.
#
runCommand($cmd, \%CONFIG);
runCommand($cmd);
}
@@ -595,9 +703,21 @@ sub do_debootstrap
# The command is a little configurable - mostly to allow you
# to use cdebootstrap.
#
my $cmd = $CONFIG{ 'debootstrap-cmd' } || $debootstrap_cmd;
print "Using $cmd as debootstrap command\n";
my $cmd = $CONFIG{ 'debootstrap-cmd' };
my $cachedir = $CONFIG{ 'cachedir' };
if ( !$cmd )
{
if (-x '/usr/sbin/debootstrap') {
$cmd = '/usr/sbin/debootstrap';
} elsif (-x '/usr/sbin/cdebootstrap') {
$cmd = '/usr/sbin/cdebootstrap';
} else {
print STDERR "Found neither debootstrap nor cdebootstrap and no --debootstrap-cmd given\n";
exit 1;
}
print "Using $cmd as debootstrap command\n";
}
#
# Cache from host -> new installation if we've got caching
@@ -614,14 +734,14 @@ sub do_debootstrap
}
$cachedir = $xtcache;
}
runCommand("mkdir -p $CONFIG{'location'}/var/cache/apt/archives", \%CONFIG);
runCommand("mkdir -p $CONFIG{'location'}/var/cache/apt/archives");
copyDebFiles( "$cachedir",
"$CONFIG{'location'}/var/cache/apt/archives" );
print("Done\n");
}
#
# Propagate --verbose appropriately.
# Propogate --verbose appropriately.
#
my $EXTRA = '';
if ( $CONFIG{ 'verbose' } )
@@ -630,29 +750,13 @@ sub do_debootstrap
}
#
# Propagate the --arch argument
# Propogate the --arch argument
#
if ( $CONFIG{ 'arch' } )
{
$EXTRA .= " --arch $CONFIG{'arch'}";
}
#
# Propagate the --keyring argument
#
if ( $CONFIG{ 'keyring' } )
{
$EXTRA .= " --keyring=$CONFIG{'keyring'}";
}
#
# Setup http_proxy so that debootstrap pulls files through the apt-proxy
#
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
@@ -663,7 +767,7 @@ sub do_debootstrap
#
# Run the command.
#
runCommand($command, \%CONFIG);
runCommand($command);
#
@@ -701,40 +805,23 @@ sub do_rinse
"rinse --distribution=$CONFIG{'dist'} --directory=$CONFIG{'location'}";
#
# Propagate the --arch argument
# Propogate the --arch argument
#
if ( $CONFIG{ 'arch' } )
{
$command .= " --arch $CONFIG{'arch'}";
}
else
{
my $uname_machine = `uname -m`;
chomp($uname_machine);
if ($uname_machine eq 'x86_64')
{
$command .= " --arch amd64";
}
elsif ($uname_machine =~ /^i[3-6]86$/) {
$command .= " --arch i386";
}
else
{
die "Local architecture ($uname_machine) not supported by rinse.\n".
"Please choose a supported installation architecture (i386 or amd64) explicitly."
}
}
#
# Propagate the verbosity setting.
# Propogate the verbosity setting.
#
if ( $CONFIG{ 'verbose' } )
{
$command .= " --verbose";
}
runCommand($command, \%CONFIG);
runCommand($command);
}
@@ -751,7 +838,7 @@ sub do_rpmstrap
{
#
# Propagate the verbosity setting.
# Propogate the verbosity setting.
#
my $EXTRA = '';
if ( $CONFIG{ 'verbose' } )
@@ -760,7 +847,7 @@ sub do_rpmstrap
}
#
# Propagate any arch setting we might have.
# Propogate any arch setting we might have.
#
if ( $CONFIG{ 'arch' } )
{
@@ -777,7 +864,7 @@ sub do_rpmstrap
# The command we're going to run.
#
my $command = "rpmstrap $EXTRA $CONFIG{'dist'} $CONFIG{'location'} $mirror";
runCommand($command, \%CONFIG);
runCommand($command);
}
@@ -811,5 +898,5 @@ sub do_tar
#
# Run a command to copy an installed system into the new root.
#
runCommand("cd $CONFIG{'location'} && $cmd", \%CONFIG);
runCommand("cd $CONFIG{'location'} && $cmd");
}

33
debian/NEWS vendored
View File

@@ -1,33 +1,3 @@
xen-tools (4.8-1) unstable; urgency=medium
For security reasons (avoid risk to circumvent ASLR), recent
kernels have disabled the vsyscall mapping. Unfortunately older
distributions don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed
vsyscall address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
"vsyscall=emulate" to the kernel commandline, e.g. by adding it to
GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then running
"update-grub" afterwards and finally reboot.
-- Axel Beckert <abe@debian.org> Thu, 07 Feb 2019 17:40:03 +0100
xen-tools (4.4~beta1-1) unstable; urgency=low
* Exported environment variables no more contain dashes ("-"). Dashes in
environment variable names are from now on converted to underscores
("_") before being exported. May affect some hook or role scripts.
* /usr/lib/xen-tools/ has been moved to /usr/share/xen-tools/ to
properly adhere to FHS. In case you had local scripts added to
/usr/lib/xen-tools/, please move them to /usr/share/xen-tools/, too
and then remove /usr/lib/xen-tools/ and its left-over subdirectories
which all should be empty at that point, i.e. "rmdir -p
/usr/lib/xen-tools/*" should do the trick.
-- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:01:16 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low
By default, xen-create-image now generates a random root password and
@@ -41,7 +11,7 @@ xen-tools (4.2~beta1-1) unstable; urgency=low
If the DomU hangs with "Waiting for root file system" despite
/dev/xvd* is used as disk device, adding "xen-blkfront" to
/etc/initramfs-tools/modules and running "update-initramfs -u"
/etc/initramfs-tools/modules and runing "update-initramfs -u"
afterwards may help.
If the Dom0 is a Debian or Ubuntu, the distribution and suite for
@@ -54,3 +24,4 @@ xen-tools (4.2~beta1-1) unstable; urgency=low
path ending in /debian/ there.
-- Axel Beckert <abe@debian.org> Sun, 30 May 2010 22:36:16 +0200

19
debian/README.Debian vendored
View File

@@ -1,23 +1,8 @@
README
======
Bootstrapping Wheezy, Precise or older Releases
-----------------------------------------------
For security reasons (avoid risk to circumvent ASLR), recent kernels
have disabled the vsyscall mapping. Unfortunately older distributions
don't run and hence can't be bootstrapped without it.
To enable trapping and enabling emulate calls into the fixed vsyscall
address mapping and hence to run and bootstrap older Linux
distributions in a chroot (as xen-tools does), you need to add
"vsyscall=emulate" to the kernel commandline, e.g. by adding it to
GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then running
"update-grub" afterwards and finally reboot.
Kernel/initrd guessing
----------------------
======================
In xen-tools 3.4-1 a new feature was added which allows using
backtick expressions in xen-tools.conf.
@@ -30,7 +15,7 @@ changing/adding the following options in xen-tools.conf:
Upgrading Existing kernel/initrd paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--------------------------------------
The kernel, and initrd, settings which are included in the xen-tools
(either statically or dynamically with `uname -r`) are only applied

View File

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

573
debian/changelog vendored
View File

@@ -1,565 +1,9 @@
xen-tools (4.10.0-1) UNRELEASED; urgency=medium
xen-tools (4.2-1~bpo50+1) lenny-backports; urgency=low
* New upstream feature release
+ Update list of Ubuntu and Debian releases.
+ Support for specifying guest type. (initial patch by Arno Bakker;
GH #64)
* Drop alternative Suggests on btrfs-tools. (Closes: #932122; Security
support for Xen in Debian 8 has long ended.)
* Backport to Lenny.
* Supports installing Squeeze DomUs on a Lenny Dom0 (Closes: #609852)
-- Axel Beckert <abe@debian.org> Mon, 11 Dec 2023 23:11:47 +0100
xen-tools (4.9.2-1) unstable; urgency=medium
* New upstream maintenance release
+ Update list of Ubuntu and Debian releases.
+ Fix bashism in release testing target "tidy".
+ xt-guess-suite-and-mirror:
- Bump default Ubuntu fallback release to 22.04 Jammy LTS.
- Add new option --sources-list to pass a file to parse.
- Add support for Ubuntu Ports APT repos. (Closes: #1023667,
LP: #1995969)
* Update upstream signing key to update its expiry date.
* Depend and Build-Depend on non-(build-)essential package
mount. (Closes: #1027383)
* Also mention "vsyscall=emulate" in package description and
README.Debian. (Closes: #1028388)
* Declare compliance with Debian Policy 4.6.2. No changes needed.
-- Axel Beckert <abe@debian.org> Mon, 06 Feb 2023 02:57:47 +0100
xen-tools (4.9.1-1) unstable; urgency=medium
* New upstream bugfix release.
+ Fix missing "|" in regex in Debian's 20-setup-apt. (Closes: #997668)
+ Make test xt/gitignore.t work with git releases ≥ 2.32.0.
+ Travis CI: stop testing again Perl "dev". It no more seems to exist.
+ Also create an .orig.tar.xz signature upon "make release".
* Declare compliance with Debian Policy 4.6.0. (No changes needed.)
-- Axel Beckert <abe@debian.org> Sun, 24 Oct 2021 05:38:40 +0200
xen-tools (4.9-1) unstable; urgency=medium
* New upstream bugfix and minor feature release.
+ Mark Debian 7 Wheezy and 8 Jessie as EoL.
+ Update list of Ubuntu and Debian releases.
+ distributions.conf: Fix typo in release name of future Debian 12
release (bookwork → bookworm).
+ Actually install xen-resize-guest tool. (Thanks lintian for the
spare-manual-page warning!)
+ Distinguish between those Debian releases using $dist/updates for
security updates and those who use $dist-security. Thanks Paul Wise!
(Closes: #972749)
- Add test for this; needs libtest-file-contents-perl as build-dep.
+ Fix support for lvm_thin. Thanks to Andreas Sundstrom for the bug
report and patch! (Closes: #942244)
+ Mount /proc and /dev before calling update-grub. Thanks to Brandon
Bradley for the bug report and patch. (Closes: #815021)
+ Add Debian install rules for arm64. (GH #62; patch by Ian McLinden)
+ Add netplan p2p support for Ubuntu. (GH #58; patch by Volker Janzen)
+ Fix storage commandline options not overriding xen-tools.conf
settings also in xen-update-image and xen-delete-image. (GH #57;
patch by Volker Janzen)
+ partitions/sample-server: Change options=sync to
options=defaults. (GL MR !1; patch by Wolfgang Karall)
+ Start all Debian releases since Stretch (9) with pygrub by default.
* Recommend deboootstrap ≥ 1.0.117~ for working bootstrapping of Ubuntu
6.06 Dapper and 6.10 Edgy (see #659360) and for support of Ubuntu
17.10 Artful, 18.04 LTS Bionic, 18.10 Cosmic, 19.04 Disco, 19.10 Eoan,
and 20.04 Focal.
* Fix non-RFC-conforming four-letter day of week abbreviations in
ancient debian/changelog entries.
* Bump debian/watch version from 3 to 4. Thanks Lintian!
* Bump debhelper compatibility level to 13.
+ Build-depend on "debhelper-compat (= 13)" to replace debian/compat.
* Declare compliance with Debian Policy 4.5.1. (No changes required.)
* Adapt distributions.conf defaults to the fact that Debian Unstable
still ships Ubuntu keyrings as of 2018, see #978438.
-- Axel Beckert <abe@debian.org> Tue, 29 Dec 2020 12:19:51 +0100
xen-tools (4.8-1) unstable; urgency=medium
* New upstream release.
[ Marc Bigler ]
+ Add support for ZFS volumes. (GH #50)
[ Yuri Sakhno ]
+ Eliminate progress reporting which is useless in logs. (GH #42)
[ Axel Beckert ]
+ Add preliminary support for future Debian 12 Bookworm release.
+ Add support for Ubuntu releases from 17.10 Artful to 19.04 Disco.
- Create hooks/artful with new 40-setup-networking-deb-netplan by
Arno Bakker and Peter. (Fixes xen-tools/xen-tools#51)
- Rename hooks/karmic/80-install-kernel to
hooks/common/80-install-kernel-ubu and add according symlinks.
+ Change all occurrences of httpredir.debian.org to deb.debian.org
except those for the debian-archive. The latter now point to
archive.debian.org directly.
+ Set Ubuntu fallback suite to the latest LTS, i.e. 18.04 Bionic.
+ Drop pygrub path detection from xm.tmpl, Xen prefers a path-less
bootloader='pygrub'.
+ Many improvements for the release-testing script.
+ Only run xen-toolstack helper script if both, xm and xl are
present. Avoids warning about deprecated helper script.
+ distributions.conf now supports arbitrary keyring files in
/usr/share/keyrings/. (Needed for some EoL Ubuntu releases.)
[ Nico Boehr ]
+ Add support for LVM thin provisioning.
[ Pietro Stäheli ]
+ Add support for option --randommac for really random MAC addresses
upon every xen-create-image invocation. (Closes: #855703)
[ Axel Beckert ]
* Fix wrong bug number for #849867 in previous changelog entry.
* Declare compliance with Debian Policy 4.1.3.
+ Change Priority from extra to optional.
* Use "$(MAKE)" instead of "make" in debian/rules.
* debian/control: Drop "Testsuite: autopkgtest" header, no more needed.
* Switch "activate" trigger to "activate-noawait".
* Recommend e2fsprogs. (Closes: #887236)
* Prefer btrfs-progs over now transitional package btrfs-tools. (Closes:
#878910)
* Bump debhelper compatibility level to 10.
+ Update versioned debhelper build-dependency accordingly.
+ Only using dh compat level 10 allows one to still build the package
on Debian 9 Stretch without backports, on Ubuntu 18.04 LTS and on
Ubuntu 16.04 LTS with backports.
* Declare compliance with Debian Policy 4.3.0. (No changes needed.)
* Set "Rules-Requires-Root: no".
* Check $DEB_BUILD_OPTIONS and $DEB_BUILD_PROFILES in
override_dh_auto_test. Fixes according lintian warning.
* Use ubuntu-keyring instead of now transitional ubuntu-archive-keyring,
but keep the latter as alternative to allow one to install the
xen-tools package also on older Debian or Ubuntu releases.
* Suggest grub-xen-host despite the proper support for it is not
finished.
* Add a note about "vsyscall=emulate" and older Linux distributions to
debian/NEWS. Thanks to James Clarke and Jason Crain for the hint!
* Add a DEP-12 debian/upstream/metadata file.
[ Jelmer Vernooij ]
* Trim trailing whitespace from debian/changelog. (GH #54)
-- Axel Beckert <abe@debian.org> Sat, 09 Feb 2019 01:56:51 +0100
xen-tools (4.7-1) unstable; urgency=medium
* New upstream release
+ release-testing: Several enhancements, race condition avoidance, …
+ Fixes reported error code in case of subcommand failure (Reported
and fixed by Yuri Sakhno, thanks!)
+ Fixes typo found by lintian.
+ Support for Ubuntu 16.10 Yakkety Yak.
+ Preliminary support for Ubuntu 17.04 Zesty Zapus.
+ Knows future Debian release names Buster (10) and Bullseye (11).
+ Knows about Ubuntu's "devel" alias.
+ Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
to cope with risen resource consumption and availability.
(Closes: #849867)
+ Default file system is now ext4 (instead of ext3).
+ Fixes inconsistent/non-functional handling of --nopygrub
parameter. Thanks Daniel Reichelt for the bug report and patch!
(Closes: #842609)
+ Fixes possible missing gateway in generated
/etc/network/interfaces. (Closes: #764625)
+ Support situations where distributions (e.g. Squeeze) might be EoL,
but its archive signing key is still not removed from the default
keyring.
+ Workaround LVM related race condition when using --force with LVM.
* Declare compliance with Debian Policy 3.9.8. (No changes needed.)
* Use NEWS.markdown as upstream changelog, don't install it as docs.
* Switch many URLs (upstream and in packaging) to https:// and update
URLs where they were broken or redirect somewhere else now.
* Fix some typos in older debian/changelog and debian/NEWS items.
-- Axel Beckert <abe@debian.org> Mon, 23 Jan 2017 00:39:11 +0100
xen-tools (4.6.2-1) unstable; urgency=medium
* New upstream bugfix release
[ Pierre Olivier ]
+ Added /usr/local/bin/pygrub to the end of the pygrub search path.
[ nirgal ]
+ Fixed typo in initramfs comment
[ Axel Beckert ]
+ Make t/hooks-inittab.t using its own copy of the generic /etc/inittab
for testing instead of using the system one's. (GH#36, should fix
autopkgtest on systems with modified /etc/inittab)
+ Fix unescaped braces (deprecated with Perl 5.22) in t/plugin-checks.t.
* Support checking upstream GPG signature in debian/watch.
-- Axel Beckert <abe@debian.org> Wed, 23 Dec 2015 18:05:54 +0100
xen-tools (4.6.1-1) unstable; urgency=medium
* New upstream bugfix release
+ Declare GitHub as primary hosting.
+ Integrate BUGS.markdown into README.markdown, move remaining
contents of KNOWN_BUGS.markdown to the GitHub issue tracker.
+ Fix Perl warning in t/hook-inittab.t if /etc/inittab isn't present.
- Fixes failed autopkgtest.
+ Preliminary support for Ubuntu 16.04 LTS Xenial Xerus.
+ Neither use $#array in boolean context nor @array = undef anymore.
* Update Vcs-* headers to point to GitHub instead of GitLab.
* Add debian/maintscript to remove obsolete conffile
/etc/bash_completion.d/xen-tools properly.
* Fix typo in previous changelog entry.
-- Axel Beckert <abe@debian.org> Sat, 24 Oct 2015 01:13:08 +0200
xen-tools (4.6-1) unstable; urgency=low
* New upstream release
+ Fix usage of nonexistent variable in removeDebianPackage (Closes:
#774936) Thanks Lukas Schwaighofer!
+ Change all occurrences of http.debian.net to httpredir.debian.org
+ Ubuntu 10.04 Lucid Lynx and 14.10 Utopic Unicorn now EoL.
+ Preliminary support for Debian 9 Stretch and Ubuntu 15.10 Wily
Werewolf.
+ Installs bash completion into /usr/share/bash-completion/ (fixes
lintian warning package-install-into-obsolete-dir)
+ Allows # within configuration file comments. (Closes: #783060;
thanks Jean-Michel Nirgal Vourgère for the bug report and patch!)
+ Testsuite: Let modules.sh ignore the .git directory. (t/modules.t
failed if a git commit message had a line starting with "use ".)
+ Testsuite: Optimize and clean up modules.sh.
+ Drop all occurrences of apt's --force-yes parameter. It only forces
the installation of untrusted packages and that's unwanted. (Closes:
#776487)
+ Support passing commandline options with --debootstrap-cmd.
+ Use -o APT::Install-Recommends=false instead of
--no-install-recommends for backwards compatibility with older APT
versions which don't know either (but accept any Foo=Bar parameter
to "-o"). Allows one to install earlier Debian releases (e.g. Etch)
with the default configuration again.
+ Use md5 as default hash method again, to be able to properly set
passwords in older releases. Does not affect passwords changed later
inside the DomU.
+ Split off hardcoded release code names list and default mirrors in
xen-create-image into separate configuration file which is parsed
before the default settings or command-line options are set.
+ Pass --yes to lvcreate only if LVM version is 2.02.99 or
higher. Fixes regression introduced with 4.5 by the fix for #754517.
- Add new (build-)dependency on libsort-versions-perl.
+ Report all SSH fingerprints of the created DomU, not only RSA ones.
+ Split up test suite in functionality/compatibility tests (t) and
author/release tests (xt).
+ Make test suite support as-installed-testing
- Mark package as autopkgtestable.
+ Multiple release workflow improvements (target release in Makefile):
- Use TMPDIR instead of TMP for temporary directories.
- Always run the full test suite before doing a release.
- Use maximum compression and don't store time stamps in tar ball.
- Make "release" target to include "orig-tar-gz" and tagging.
+ New option --keyring which is passed through to deboootstrap. Its
default values work around bug #792729 in debootstrap.
+ Supports "unstable", "oldstable" and "oldoldstable" as distribution
names, too. ("oldoldstable" is not yet supported by debootstrap, see
feature request #792734 in debootstrap.)
+ New example script helpful for release testing.
+ Support VLANs with Open vSwitch (GH-2). Thanks to Félix Barbeira
for the patch.
* Update Vcs-* headers and documentation as Gitorious closed its doors
in June 2015 and is now only available with static contents.
* Recommend debian-archive-keyring (for installing Debian DomUs on
derivatives) and ubuntu-archive-keyring (for installing Ubuntu DomUs
on Debian).
* Reduce the list of alternative xen-hypervisor-* packages to just
"xen-hypervisor" which is a virtual package provided by at least all
xen-hypervisor-* packages since Debian 6 Squeeze.
* Recommend lvm2, it's at least required if the --lvm option is used.
* Add an adequate as-installed test to debian/tests/control.
-- Axel Beckert <abe@debian.org> Mon, 20 Jul 2015 16:05:04 +0200
xen-tools (4.5-1) unstable; urgency=low
* New upstream release
+ Use "686-pae" kernels instead of "686" kernels on Debian Wheezy and
later. Thanks to Daniel Lintott! (Closes: #742778)
+ Pass "-y" option ("assume yes") to yum (Closes: #735675)
Thanks Lionel FÉLICITÉ!
+ Drop all xend related sanity checks, they cause more havoc nowadays
than they help. Thanks Ian Campbell! (Closes: #732456)
+ Apply patch by Adrian C. (anrxc) to allow to override hooks in
/usr/share/xen-tools/*.d/ with hooks in /etc/xen-tools/hooks.d/.
Thanks! (Also add /etc/xen-tools/hooks.d/ to debian/dirs.)
+ Ignore cover_db directory in t/perl-syntax.t.
+ Update list of supported Ubuntu releases.
- Add support for Ubuntu 14.10 Utopic Unicorn.
- Add preliminary support for Ubuntu 15.04 Vivid Vervet.
- Use old-releases.ubuntu.com for Ubuntu 13.10 Saucy Salamander.
+ Fix always empty gateway on Debian DomUs (Thanks Joan! LP: #1328794)
+ pygrub detection: Prefer /usr/lib/xen-default over /usr/lib/xen-x.y.
+ Fix lvcreate awaiting user input when creating swap lv (Closes: #754517)
Thanks Eric Engstrom!
+ Fix missing quoting in shell function "assert" in hooks/common.sh.
+ Fix initial configuration summary in cases where pygrub is used.
+ Fix corner cases where not the latest kernel would have been checked.
+ --password overrides --genpass. (Closes: #764143) Based on patch by
Santiago Vila.
+ Add password length sanity check with fallback to default length.
+ Raise default password length from 8 to 23.
+ Flush output after each line in runCommand().
+ Makefile: Clean up coverage data in multiple targets.
+ t/perl-syntax.t: Ignore changelog files, too.
[ Santiago Vila ]
+ Fix unaligned maxmem output of xen-create-image. (Closes: #764126)
+ Fix copy & paste errors in comments in typos in roles/puppet
(Closes: #764134)
+ Fix typos in POD of xen-create-image (Closes: #764153)
* Bump Standards-Version to 3.9.6 (no changes needed)
* Fix lintian warning depends-on-perl-modules.
* Add lintian override for debian-news-entry-uses-asterisk; I disagree.
-- Axel Beckert <abe@debian.org> Sat, 25 Oct 2014 23:27:18 +0200
xen-tools (4.4-1) unstable; urgency=low
* New upstream release
- Run t/gitignore.t only if git is installed and .git present.
- Rework "minimal" role to be less based on personal preferences.
+ No more installs sudo, vim, syslog-ng, etc.
+ Fixes usage together with pygrub.
- hooks/common.sh: Split up installDebianPackage into
installDebianPackage and installDebianPackageAndRecommends.
* Also add build-dependency on "libterm-ui-perl | perl (<< 5.17.0)" and
"liblog-message-perl | perl (<< 5.17.0)" to avoid warnings with Perl
5.18 and future FTBFS.
* Mention Ubuntu 14.04 Trusty Tahr in long description.
-- Axel Beckert <abe@debian.org> Wed, 11 Dec 2013 20:59:06 +0100
xen-tools (4.4~rc1-1) unstable; urgency=low
* New upstream release candidate
- Also switch from cdn.debian.net to http.debian.net in xen-tools.conf
- Do not run "passwd" via runCommand as that one captures STDOUT for
logging. Makes --passwd usable again. Thanks to Christian Herzog for
the bug report.
- Loop around calling "passwd" to get a second chance to change the
password. (Closes: #703159) Thanks to Joan <aseques@gmail.com> for a
bug fix in this new code.
+ Add dependency on "libterm-ui-perl | perl (<< 5.17.0)"
- Declares one more POD encoding and recode Xen::Tools::Common to
UTF-8. Fixes FTBFS with Perl 5.18. (Finally closes: #720519)
- Apply patch by Philipp Erbelding to fix overzealous line matching in
xen-list-images. (Gitorious merge request #5)
- xen-list-images now displays a unit after the memory size
- Drop support for memory size in kilobytes in xen-create-image,
neither xt-create-xen-config nor xm support it.
- Refactoring: Replace all occurrences of "! -z" by "-n" in hooks and
bash completion.
- Handle potentially empty gateway setting properly in
hooks/common/40-setup-networking-deb. Thanks Simone Caruso!
- Reformat hooks/common/40-setup-networking-deb so that the result
neither has trailing whitespace nor broken indentation.
- Also display MAC address after the DomU has been created.
- Preliminary support for Ubuntu 14.04 Trusty Tahr.
- Added --maxmem flag to set a maximum value for dynamic memory
ballooning. Thanks to Joan <aseques@gmail.com> for the patch!
- Added fix by Patryk Ściborek againsat disableStartStopDaemon()
aborting under some circumstances. (Closes: #725192)
- Abort early and with proper error message if "xen-delete-image
--test" is not used with "--dir". (Closes: #704878)
- xen-delete-image: Exit with return code != 0 in all error cases.
- Refactoring: xt-create-xen-config: Use s/// to strip trailing MB
size suffixes.
* Bump Standards-Version to 3.9.5 (no changes).
-- Axel Beckert <abe@debian.org> Mon, 28 Oct 2013 22:31:03 +0100
xen-tools (4.4~beta1-1) unstable; urgency=low
* New upstream beta release
- Code deduplication to unify the xen-*-image scripts
- Moves /usr/lib/xen-tools/ to /usr/share/xen-tools/
- Use http.debian.net as default Debian mirror if no mirror is given
and xt-guess-suite-and-mirror is not used.
- Fix symbolic link hooks/centos-6/15-setup-arch (Closes: #690299)
- Execute END block not on --version/--help/--manual (Closes: #684346)
- Move code for --boot feature to END block. Fixes missing SSH
fingerprint display if --boot was used. (Closes: #679183)
- Correctly handle aborts in END block. (Closes: #704882)
- Use local parameter instead of global variable in unMountImage.
- Also recognize "M" and "G" instead of "MB" and "GB" as size unit for
--memory. (Closes: #691320) Document the recognized units.
- Default DomUs to use the noop scheduler (Closes: #693131)
- Overwork TLS disabling on Debian and Ubuntu
- xen-list-images now also outputs the file name of the config file.
- xen-list-images and xen-delete-image now understand --extension.
- Fixes "--extension=" with empty parameter.
- Sarge amd64 case handle properly
- Remove CVS revisions from --version output
- Support for Debian Jessie, Ubuntu Raring and preliminary support for
Ubuntu Saucy (debootstrap doesn't have support for Saucy at the time
of writing)
- Preliminary support for xl toolstack
- xen-create-image: Consistently use runCommand() instead of system()
- xt-install-image: Don't bail out if only cdebootstrap is installed
but not debootstrap (Thanks Elmar Heeb!)
- Makefile accepts DESTDIR=…
- Move examples from debian/examples to examples.
- Uses File::Which exclusively (no more findBinary, no more `which`),
added (build-) dependency on libfile-which-perl
- Knows about module-init-tools → kmod transition in wheezy/raring.
- Adds default mount options for ext4, identical to ext2/ext3.
- Ships /etc/initramfs-tools/conf.d/xen-tools for generating Dom0
initrds also suitable for DomU usage. Trigger update-initramfs.
- By default install linux-image-virtual instead of linux-image-server
on Ubuntu Intrepid and newer (Hopefully closes: #640099, LP #839492)
- Installs a legacy grub in all pygrub based Debian/Ubuntu DomUs to be
able to update the menu.list automatically.
- hooks/common.sh: installDebianPackage no more installs recommends.
- hooks/common.sh: Rename installCentOS4Package to installRPMPackage.
Add installCentOS4Package wrapper for backward compatibility.
- Fix filesystem tools installation in 91-install-fs-tools (which was
broken since 4.3~rc1-1) by merging 91-install-fs-tools back into
90-make-fstab. (Closes: #715340) Also supports RPM-based
distributions now.
- Fixes export of environment variables. Previously they could contain
dashes and then were only accessible from within Perl, but not from
within Bash.
- Fixes creation of "ARRAY(0x…).log" named log files.
- Makes some options (like --pygrub) negatable.
- Uses Test::NoTabs; add according build-dependency.
- Removes unused Perl modules Xen::Tools and Xen::Tools::Log from
source code. Also removes the according tests from the test suite.
→ Remove no more needed build-dependency on Moose.
- Better documents and checks requirements for the --apt_proxy
value. (See #623443 for the corresponding apt issue.) Add (build-)
dependency on libdata-validate-uri-perl.
- Use Data::Validate::{Domain,IP} for IP addresses and hostname checks.
Add corresponding (build-) dependencies on
libdata-validate-{domain,ip}-perl.
- Fixes broken quoting in list of required binaries
- Declares POD encoding. Fixes FTBFS with Perl 5.18. (Closes: #720519)
* Add debian/gbp.conf to be able to build xen-tools with
git-buildpackage.
* Clean up debian/rules:
- Don't mention (generated) upstream changelog explicitly,
dh_installchangelogs finds it by itself if it exist. That way
building out of a freshly clone git repository does not fail due to
a missing upstream changelog.
- Use dh_auto_{install,clean}; use "$(MAKE)" instead of "make" where
dh_auto_* can't help. No more explicitly call "make manpages", it's
a depedency of "make install" in the next line anyway.
- Finally switch to a minimal dh style debian/rules.
* Bump debhelper compatibility to 9
- Update versioned debhelper build-dependency
* Bump Standards-Version to 3.9.4 (no changes)
* Add dependency on ${perl:Depends} to fix dpkg-gencontrol warning.
* Bump copyright years in debian/copyright.
* Apply wrap-and-sort.
-- Axel Beckert <abe@debian.org> Fri, 23 Aug 2013 19:00:03 +0200
xen-tools (4.3.1-1) unstable; urgency=low
* Remove t/modules.t in upstream's t/Makefile instead of debian/rules'
clean target.
* Run t/hook-tls.t only if distribution actually has
10-disable-tls. Fixes test suite failure on 32 bit architectures.
-- Axel Beckert <abe@debian.org> Sat, 30 Jun 2012 16:44:50 +0200
xen-tools (4.3-1) unstable; urgency=low
* New upstream release
- Remove most Mercurial traces
* Fixes FTBFS due to testsuite failures (Closes: #676681)
- Disable tests of not yet used Xen::Tools. Fixes FTBFS in test suite
due to not satisifed Moose dependency in Xen::Tools::Log.
- Added build-dependencies on libmoose-perl, git, and
libtest-pod-coverage-perl for t/perl-syntax.t, t/gitignore.t, and
t/pod-coverage.t.
- Skip t/hook-inittab.t if /etc/inittab is not present on the build
host. Fixes FTBFS on Ubuntu.
* Switch to source format to "3.0 (quilt)"
* Don't remove stamp files manually, dh_clean does that already
* Remove generated file t/modules.t in clean target to be able to build
twice in a row.
-- Axel Beckert <abe@debian.org> Tue, 26 Jun 2012 22:23:59 +0200
xen-tools (4.3~rc1-1) unstable; urgency=low
* New upstream release candidate
- Correctly checks and documents valid values for
disk_device. (Closes: #621499)
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
- Supports creating CentOS 6 DomUs (Closes: #578399; Thanks Johan
Schurer)
+ Recommend rinse >= 1.9.1-1
- Supports rinse 2.0
- Updated mirror list for discontinued releases of Debian and Ubuntu
- Workaround for missing unit parsing in xen-create-nfs (Closes:
#648814)
- Fix wildcard vs regexp in memory configuration parsing.
- Fix misbehaviour if --ip option is passed multiple times (Closes:
#652110; Thanks Brian Bennett and Alexander Mette!)
- Supports /etc/apt/sources.list.d/ (Closes: #650300)
- xt-guess-suite-and-mirror exits with non-zero if no proper mirror
could be extracted from /etc/apt/sources.list or
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
- Only attempts to generate the ssh host keys if not already present
(Closes: #607236; Thanks Vagrant Cascadian!)
- New option --apt_proxy (Closes: #610457; Thanks Alex Tomlins!)
- Always write down root partition as first physical device, otherwise
pygrub fails (Closes: #609673)
- No more expect at least one option to mkfs.* calls. Fixes btrfs
creation. (Closes: #609982)
- Fixes call to non-existent function logPrint (Closes: #673335)
- Also disable initctl in the chroot, not only start-stop-daemon
(LP: #997063; Thanks xstasi!)
- Massive code deduplication in hooks directory
- Use release blacklist for libc6-xen instead of whitelist in
hooks/debian.d/20-setup-apt
- Enforces umask 022 in 50-setup-hostname* (Hopefully closes: #619630)
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
* Use dh_auto_test for build time tests and add according
build-dependencies on devscripts and libfile-slurp-perl.
* No more suggest evms-cli -- it's no more available on any supported
Dom0 distribution. Thanks to Markus Waldeck for the hint.
* Add NEWS to debian/docs.
* Bump Standards-Version to 3.9.3 (no changes)
* Fix the following Lintian warnings:
- copyright-refers-to-symlink-license
- debian-rules-missing-recommended-target
* debian/copyright: Update copyright years
* Move xen-utils (for pygrub) from Suggests to Recommends as pygrub
becomes the necessary way to boot more and more often.
* Remove xen-shell from Recommends, nobody picked it up. (Closes:
#603708)
-- Axel Beckert <abe@debian.org> Fri, 08 Jun 2012 14:18:38 +0200
xen-tools (4.2.1-1) unstable; urgency=low
* New upstream release
- Fixes bashism in "editor" roles script. Thanks Raphaël Halimi for
the patch! (Closes: #605203)
- Fixes missing architecture check in Sarge amd64 special case. Thanks
to Guillaume Pernot! (Closes: #611397) Also changes default Sarge
amd64 mirror to http://archive.debian.org/debian-amd64/.
- Allows --ip=auto again (Closes: #611407)
- Unmounts /proc and /dev/pts of the freshly installed DomU just
before unmounting the disk image. (Closes: #588783)
-- Axel Beckert <abe@debian.org> Thu, 17 Mar 2011 01:00:47 +0100
-- Axel Beckert <abe@debian.org> Wed, 09 Mar 2011 18:28:36 +0100
xen-tools (4.2-1) unstable; urgency=low
@@ -734,7 +178,7 @@ xen-tools (3.9-3) unstable; urgency=medium
xen-tools (3.9-2) unstable; urgency=high
- Ensure that the hook scripts which setup networking details for
Debian & Ubuntu guests will correctly setup the broadcast address.
Debian & Ubuntu guests will correctly setup teh broadcast address.
-- Steve Kemp <skx@debian.org> Wed, 20 Feb 2007 21:22:23 +0000
@@ -868,7 +312,7 @@ xen-tools (3.1-1) unstable; urgency=low
[ Steve Kemp ]
* New upstream release v3.1.
- Installation of packages in hooks works. (Closes: #402889, #404518)
- Xen configuration files are not accidentally trashed. (Closes: #404443)
- Xen configuration files are not accidently trashed. (Closes: #404443)
- Hooks are now optional. (Closes: #404444)
- Better error handling of image creation. (Closes: #404455, #404516)
- Avoid copying needless kernel modules to guests. (Closes: #404508)
@@ -1071,7 +515,7 @@ xen-tools (2.1-2) unstable; urgency=high
- Fixed several typos in the configuration file, and scripts.
(Closes: #375382)
-- Steve Kemp <skx@debian.org> Thu, 29 Jun 2006 10:31:23 +0000
-- Steve Kemp <skx@debian.org> Thur, 29 Jun 2006 10:31:23 +0000
xen-tools (2.1-1) unstable; urgency=high
@@ -1085,7 +529,7 @@ xen-tools (2.1-1) unstable; urgency=high
* Urgency set to high primarily because of the failure to create
swap devices.
-- Steve Kemp <skx@debian.org> Thu, 23 Jun 2006 10:08:32 +0000
-- Steve Kemp <skx@debian.org> Thur, 23 Jun 2006 10:08:32 +0000
xen-tools (2.0-1) unstable; urgency=low
@@ -1216,3 +660,4 @@ xen-tools (0.4-1) unstable; urgency=low
* Initial release (Closes: #344081)
-- Radu Spineanu <radu@debian.org> Tue, 20 Dec 2005 02:21:05 +0200

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
7

102
debian/control vendored
View File

@@ -1,61 +1,18 @@
Source: xen-tools
Section: utils
Priority: optional
Priority: extra
Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper-compat (= 13),
devscripts,
git,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
liblog-message-perl | perl (<< 5.17.0),
libterm-ui-perl | perl (<< 5.17.0),
libsort-versions-perl,
libtest-file-contents-perl,
libtest-notabs-perl,
libtest-pod-coverage-perl,
libtest-pod-perl,
libtext-template-perl,
mount
Standards-Version: 4.6.2
Homepage: https://xen-tools.org/software/xen-tools
Vcs-Browser: https://github.com/xen-tools/xen-tools
Vcs-Git: https://github.com/xen-tools/xen-tools.git
Rules-Requires-Root: no
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl
Standards-Version: 3.9.1
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,
libconfig-inifiles-perl,
libdata-validate-domain-perl,
libdata-validate-ip-perl,
libdata-validate-uri-perl,
libfile-slurp-perl,
libfile-which-perl,
libsort-versions-perl,
libterm-ui-perl | perl (<< 5.17.0),
libtext-template-perl,
mount,
openssh-client,
perl,
${misc:Depends},
${perl:Depends}
Recommends: debian-archive-keyring,
debootstrap (>= 1.0.117~),
e2fsprogs,
libexpect-perl,
lvm2,
rinse (>= 1.9.1-1),
ubuntu-keyring | ubuntu-archive-keyring,
xen-hypervisor,
xen-utils
Suggests: btrfs-progs,
cfengine2,
grub-xen-host,
reiserfsprogs,
xfsprogs
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
Description: Tools to manage Xen virtual servers
This package contains tools to manage Debian based Xen virtual servers.
.
@@ -68,14 +25,6 @@ Description: Tools to manage Xen virtual servers
* Debian 4.0 Etch
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7 Wheezy
* Debian 8 Jessie
* Debian 9 Stretch
* Debian 10 Buster
* Debian 11 Bullseye
* Debian 12 Bookworm (under development)
* Debian 13 Trixie (knows about this future release name)
* Debian 14 Forky (knows about this future release name)
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
@@ -87,36 +36,3 @@ 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)
* Ubuntu 12.10 Quantal Quetzal
* Ubuntu 13.04 Raring Ringtail
* Ubuntu 13.10 Saucy Salamander
* Ubuntu 14.04 Trusty Tahr (LTS)
* Ubuntu 14.10 Utopic Unicorn
* Ubuntu 15.04 Vivid Vervet
* Ubuntu 15.10 Wily Werewolf
* Ubuntu 16.04 Xenial Xerus (LTS)
* Ubuntu 16.10 Yakkety Yak
* Ubuntu 17.04 Zesty Zapus
* Ubuntu 17.10 Artful Aardvark
* Ubuntu 18.04 Bionic Beaver (LTS)
* Ubuntu 18.10 Cosmic Cuttlefish
* Ubuntu 19.04 Disco Dingo
* Ubuntu 19.10 Eoan Ermine
* Ubuntu 20.04 Focal Fossa (LTS)
* Ubuntu 20.10 Groovy Gorilla
* Ubuntu 21.04 Hirsute Hippo
* Ubuntu 21.10 Impish Indri
* Ubuntu 22.04 Jammy Jellyfish (LTS)
* Ubuntu 22.10 Kinetic Kudu
* Ubuntu 23.04 Lunar Lobster (preliminary support, under development)
* CentOS 5
* CentOS 6
.
Note: Debian 7 Wheezy, Ubuntu 12.04 Precise Pangolin and any older
release requires the Linux kernel of the hosting machine to be booted
with "vsyscall=emulate" on the kernel commandline (i.e. in the
bootloader) to bootstrap these releases with xen-tools. See
/usr/share/doc/xen-tools/README.Debian for details.

24
debian/copyright vendored
View File

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

3
debian/dirs vendored
View File

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

8
debian/docs vendored
View File

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

1
debian/examples vendored
View File

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

3
debian/gbp.conf vendored
View File

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

View File

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

1
debian/maintscript vendored
View File

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

57
debian/rules vendored
View File

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

View File

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

View File

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

View File

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

View File

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

1
debian/triggers vendored
View File

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

View File

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

View File

@@ -1,241 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
dCAoU3ltbGluaykgPHh0YXJhbkBzeW1saW5rLmNoPokCUwQTAQgAPQIbAwQLCQgH
BRUKCQgLBRYCAwEAAh4BAheAFiEEJRe3JMX2yplTKW5hL/nNWWEmFrUFAl/clUQF
CR7oLxMACgkQL/nNWWEmFrXG+w//ZuOCRsOvo8ZLU98vBChGt0eRTnWaUPXPqsy/
51CGjzbet3FQSIunLgJ/latsl76qqTHotPIebruFLhDdiOwMF6JZ4haZQDeIRz9L
CvMwpQYcqo3/54FUnfe4Kxudv5/N5l04qUmok+hRmnQtjAKhbrk365xlP6PNdRyn
R39eR14ds267VkbgK/1lb5LcGrmjD0L8SAg4EY7RXg9JiwHUKKrX4CF5OlyPlwWe
oryqAM8VR8i4i0TyGzpDBQmY1WxJQbEDp/6VwlC5uoHBJI65rPHbhYRAriQoHYyF
tbAZTnYP5RHrDFgXVQMCghb/vvtnc/Z/nOQcZ5+UjAMzzQXvglMExR/5KDnqfB3Z
uv2iBNvLhISNP9i68bifWlvJDmqdJQN0ol92k5Pc+iMnbVmqJf2F//O/s3Q7cVyr
dlf85jxovFNhMOZK4Y98MB+IbsT5QKhHvKLl/DXfgRH7hnxRmgyYP3jxAlpNvX1D
srIZzDLKCQFG6Mubc7+K7oq9yD2272mV0e6ogY8+N7Js2ms8uDwCuXJhywSoRY5B
PI/ChIP7uHLt4Ocw8UinS43AxQf+T4aIzlngElHWmXq3jKEVUB1mxw/9gz0U9Gne
1+jLy/b0CIXg4wGcstwConfp3BYuno2Q5rwf9A0nu0yu0eiZaFlzYoTN312Gwgwj
7Iql39jRy6bLpAEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQAAAQABAAD/
/gCTU29mdHdhcmU6OlhWIFZlcnNpb24gMy4xMGEgIFJldjogMTIvMjkvOTQgKFBO
RyBwYXRjaCAxLjIpCgpDUkVBVE9SOiBYViBWZXJzaW9uIDMuMTBhICBSZXY6IDEy
LzI5Lzk0IChQTkcgcGF0Y2ggMS4yKSAgUXVhbGl0eSA9IDkwLCBTbW9vdGhpbmcg
PSAwCv/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhAN
DhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/A
ABEIAGAAYAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJ
Cgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj
QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFla
Y2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQAD
AQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncA
AQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn
KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeI
iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri
4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP1TooooAK5Tx38UfDHw2sTc
6/q0FmcZS33bppPTag5PTr0rwv8Aaj/bBtvhJeP4Y8NmC68TBQbmeYborMEcDH8U
nQ46DIz6V8LeIviBqvie8utb1e7uL6+nPNzdtudz2AHYD0Fc1Wuqei3Oqjh5Vdeh
9T/Fn9v7ULC6ePwpp8FnZgELPfJ5kz++0Hav05rgNJ/4KPeOLO6V77TdOvrfHKGE
ox7ZyrDvXyrPc3GrXhLgsSeSew9KuQ6dH8u4ggfdPrntXJ7d7tnd9UifU2pf8FFv
GuqJHbWGn6dYS8l7iO3Lkj2DMR+ldf4G/bn8RWxhbW47XV4MYdREIJTz1BXj8MV8
TLPDpMkjSL8rdQv8Jx1FTN4kS3RZFcSRPxuHY+tDrS3iQ8PBaM/Yf4Y/F7w38WtJ
a90K73vGcTWkuFmiPuvp7jiu1r8a/h38ZNV+G/i2y17R79rSVPlcg7kYHqGHcGv1
08A+L7Px94M0fxBYypNb39sk2U6BiPmX8GyPwrtpVOfR7nn1IcjOgooorcyCuK+M
/wAR7b4S/DHxB4quChNhbM0MbnAkmPyxr+LEfhmu1r5r/wCChXgvUvGP7Muuvpkx
jk0iWPVJo8kebDHkOPwDbv8AgNFr6IatfU/Li+8bS6/4su9Rv7h9S1a8le4ldznL
Mclj+JrpdKtrrX23TyY6qqgcCuA+EHh2XV7i5vCpfdJszjoAK990PRUtJOQDjkjP
Svn8Q2pW6n12DpKdNSZgp4btdG0wysdzgHk9a5XU7yEQFUJ29VIPIr1HX9OFxbMg
G4MMjrxXk2u6G1isgyVzn6VhCTZvUoroc/q3iPz4m3p84G3JHJ964C712806Vngk
MkD8NE2eRT9X1ny7iRJPMZgetc+2tebNIMPzwQWr16ULLY+drS941IvF11bzK8e5
7Y/eRjnb6iv0o/4JdfHObW21v4e3t0ZYYYf7S00OeVAYLKg/76U49jX5bSz7ZmOw
iJuCK+hv2DPiCfA/7S/ge6LhYLu7/s2XJIDJODEM49CwP4CujlStJHFKV9GfuXRR
RXQYBXPfEPTrHV/APiSx1MbtOuNNuYrkA4/dmJg3I6cZroa+av2ufhd4l8Ux2+uW
PizWrbwxBZywap4esrkwwz/xJLlAG6b1YEkHKcDBzUVzOyFe2p+VXhv4ix+DPD9p
Y2lkXd8zvMeBuYk4/AYH4V0OofFPVLXRIdQtE2iRiNzHgEdqxvir8H7vwtqsem20
qXMbDfCSmTtJOAf5fhW5Z/BS98MeFvDl3qN/Pf214JPNsJAPLtHbBR/xwVye5FeR
Wp01K7Z9NhZVnG0FpY5e3+M/iC5l2zMXJ+6sQLZ/DFbFv8ZbbUnayurOSeZflkTy
WVlPvkU3VPhE0V2bmwlkeF1wVSTa6n2rZ8O/CZrmZXks5UOADPM+XY9j15+prnfs
Lc0TWKxClZnl3jbRzczPd2Wm3KQt8wMm0f1rzJQWu2V2MbL1DDnPpX2Jq/gCLTbZ
VfbIuOr8kV4H4t8AqviiV7eMsh+bYv0rqoV4y0OXF4WWkl1PPJpXeMiNVbAzgdCK
739ne5uI/i/4Cktk8y4XXrIxxkfebz0wPzxVLQfDcFzqlzAVZbhDvRCOGA5P6Zr0
/wDYt8KDVf2t/A+mGLzY4tcNwARkBYC8meP+uddSmpXijzKlCVOCnLqfuzRRRXSc
QUjKGBBAIPUGlooA/Nr9s2a3tfj3f211BBZ6fDFbsoiUJuXygzdOpJJrzDxH8YvD
lxpkWnzTxwQspjLFgAFx0Feuf8FIdEWw+Juk6rMFjt7rS1wzdJJEdgR+RT9K/O28
imvdVJubmPyQSVx29q8mrRU6jd7H1eGxfsaMVBXZ7z4d8TpZ6xLb/aVubF32w3GM
7h9a79vEkNnERDLyR35BrxDR/EGkw6VFZytFvB4dDyD611NreNLbEFw6AcPjrXnS
p2Z6Ua6kr9Tp9a8RHUGIZsqBzXnMNwZ/EruRw5Kpn6HvTtU17COEYZU4JzXPXF4Z
ruJImPzBgMHnJHWt4QcU0cFWqpNHa6jp+i+D9AvtWvl23MYLszHlix+4B7mr/wDw
TnvH1L9sHwZcMoDSNfufbNpNn9a8N+Jd1rLWcEF3O7wAhiD3PbNfTX/BJ7S7W8/a
UaaWNnlstEup4Wbja5aOPP8A3y7j8a9HDw5Y3bu2eTj6/O1TirJfmfsVRRRXeeOF
FFFAHx5/wUz+GaeLPgva+IYlP2nRbpUkKjJ8mUhT+TBPzNfmGPAmmWNyIY1maRwH
LedwR71+7fxI8JRePPAHiLw7MPk1Owmtc4ztLIQGHuDgj6V+FniS3vNB15tL1iOW
z1GxkNvPDL8row4INc9ZSteJ6eEqJXi0n6lqTwBoUkDuLcLNGDmRWJ6elRWusyxa
W8EbbtnCk1la/wCOIYIjDbsEUc7u5rhl8Q3NzcgQsQhOTXFGlOoryZ6FbEU4NKC1
8jrtV1NrZNjuGklbnHpWl4LspNQ1CJyxMSYbmub03R59VdXnJCA5Oepr03QYodIt
0AAVFHJqK0lCPKtxUKbqS5pbE3jDwJf+M30zRdHtGvNW1G4jtLS3jGWkkc4AH8ye
wBr9Ov2Sv2ItC/Zbv9T1mLWrjxBr2o2iWj3EsIhSGMEM6ooJ+84ByT0Ue9eDf8E+
fg9c+O/G8vxU1SB49B0XzLPQ0lTi6uWBWW4Gf4UUlAR3Zuflr9EK7MLCUKa5tzzc
bVjUqvk2Ciiiuw88KKKKACvIvif+yb8KPjFq/wDanirwfa3+pEgvdwyy28kmBj5j
Gy7vxr12igD8Jf2i/hH4d8GfGzxv4d0m0n02y0rU5IIbWSUuUiIDx4LEkgqykZOc
V5/aaLa2WFiiH1PJr9nfjf8AsT/Db46a5da/qlreaT4luY1SXVdMn2PJtUKpdGBR
iAAM4zgAZ4r5cvP+CU3iJdakSz8f6adIz8k09jILgD0KBtp+u78K5KkJt6PQ9KlW
pJLmWp8U6VBvYBeK+mP2fP2NPEvx1vbK+1WObRPA/mBri+f5ZbtAeY4B1O7pv6Dn
GSMV9hfBf9gD4d/CxlvNWWTxpq6sGWfU4wsEZH92EEg/8CLfhX0zDDHbxJFEixxo
AqogwFHoBWdPDWlzTNKuNvHkpr5mf4Z8NaZ4O8P6foei2UWnaVp8K29tawrhI41G
ABWnRRXeeSFFFFAH/9mJAlMEEwEIAD0CGwMECwkIBwUVCgkICwUWAgMBAAIeAQIX
gBYhBCUXtyTF9sqZUyluYS/5zVlhJha1BQJf3JVEBQke6C8TAAoJEC/5zVlhJha1
mBYQAKJ0wiaxCnihacwqkZ8Ww/U/R0N9e6ZcBeEWnFTAsl2PQSIDZoiCAZGLjWsZ
WMIQRJtBC2/sYMGb+swUOYxjRcGEFtDE7o4LjtEIc8OzOWBK7cCjXch6Gt2dMcEr
C/MKXreOsH1NfY8fCWq6AhqZg+vykoPG4JX8B8WH76r9x8IdLuPNhytqdT93hnii
D7rfD2nqj0m9Vdghn4CrfyPqh7K1ezAUlKSOjXgiPXZFqGpla5IoVW8xOhxkdLPB
SkdThHR+VqERSBvaXJxfKOk7Le0vpIhCUtI+HTNqklXgD9N0KxjPTGPhlBg+QCpS
DtxKu6SHq+ew2lR/ssbcQ8HEiGhpdFyrfCtIQkRkwcBuwaYmqdGyZuPEltCpM34l
0Rr/mf3AzxdfZDt07ctZYMWDIWerIZ6AaRztk3CwHpDGzh6ts1yLd2B0c0XcuJdE
AG2f9gjsCfPUfzqwlZhAZQMX0LYRwJ3Egs7j3oA7aSmjUxlqEE+79VbyTcDnWjQn
Gr8cXW3epwTiyKU1xt1+oZrZwyVtFkPcRu1oCfAMD0KLsmoPEaX0d+RlWhcS1sBx
2iIVyG+0XLOoCS9Yh3HVv6tOEzI+jQM6mSzP/4+mk1/21Lc0dn9bxAlIlfBA2F2F
NCvzN64ZyjOQlUuirzZ3h2qI7UDF/zMnyOwekAQOPuRCnjhqtBNBeGVsIFN0ZWZh
biBCZWNrZXJ0iQJTBBMBCAA9AhsDBAsJCAcFFQoJCAsFFgIDAQACHgECF4AWIQQl
F7ckxfbKmVMpbmEv+c1ZYSYWtQUCX9yVRQUJHugvEwAKCRAv+c1ZYSYWtQqqD/9r
lnatgR/Vszvf7I6WFKJMryElTnNXUOD5tP598uQaFBgyY6KrPvYHgbkgVW2bJn3g
hRd3zg47k99BCi0knjinrnIdTs98UhtHVLKfpYBWBAbhDaKUbMPCfTZzBvVq7Efe
dJeNEb9q1ZBQ9j7qSnCoSHEPhNK28GfSL2ppd7O4jpyLFlCMXZBzzNpHMOC5nPq3
aGeM7nfZbVDA8cGftt2OI0b1FkxoSpIsgD2ruDu93oWRxcK/5vN706w+AdJ+1xy8
qhhiA9scf+rFgjz95HA1NWgNWn/7duWjKkzsSwK0lp8ppjDjwzZ1KwgdXJvjOpvD
uU8naBp4J+/1fcaweiOeHpm5zdApILtccEVjiujIYS3L8wjc+FIz4L2zpCuTT1kB
EeE/NP98H+SHW1FnZ6Lv/xGKji9WtJJOFOmiHxfbToUD9moXEYPROBWISD0ddFaN
EjtgTGNpyi93XsIMjt4FhcY7i/DXeBpnEcm8gHZnIJdzqG53eRAg8iInqNywbryr
KglXifb6bhQL+rZiPJBLqohibal3pPrNousWSaQq/EcHC//smScLTQOCMYbcIDU4
nQF8lzfz9AD/cl4/+AidPlz4Ecq2k+z0NhIjboeuXM31Wh9WopgsepohpkcZobhN
1VkAVjFPXeIoJEmuhigSJmRsDqgdtSO+kyYCME9dWbQpQXhlbCBCZWNrZXJ0IChG
U0ZFIEZlbGxvdykgPGFiZUBmc2ZlLm9yZz6JAlMEEwEIAD0CGwMECwkIBwUVCgkI
CwUWAgMBAAIeAQIXgBYhBCUXtyTF9sqZUyluYS/5zVlhJha1BQJf3JVFBQke6C8T
AAoJEC/5zVlhJha1IfsP/1BQXJOWTObW6Vk0of0Cfo1h9Kxy09IL/8O1jPAPiFvn
bs9D/U2kK3BdtrePYKD885VjOQ1SPoI3dC8SW1hOc+w5fi+7BiksgrA/SHc6i37V
wCYcINk5oz9jY4Fw7J/MdrrkoNl3FjGsfd3FWwlRFdo33rUoIejHaEHOORTzWvWY
9trg+jylXi1VnsmHB4ctCW9INlE6WnIBiMlyUgINRqVoXuzaPHsBPeZAEZbqqEAy
3xKXCz0eLyr/j0ELWFZXzY+SxK99W7wCem8txkS1j+QeQBMehn0QvJgxrixH/QkY
HXen6SFISsAUOZDToyUzfUBqgPqyjWXsOCCQCNR3gS93zyO0CgS9DvKE0IELqVgO
3NXoyQSXFH4bZKyp1KKtFn7oj8LyqSMUnJ8BKQxSj0Jat0hYmTYJCd4g/zg04fy2
C96+dZCAevLDfiUSHoop4KPIvalrgyGHs4jd2G8eRf/6AWbd5HzU2v2N744ZgY6W
OlnHZ4KdrjBhs8keUOTmOYAjhZmNrtmc5XOq5Ctq7aln0UMzPO2tVaWSnogZbM69
BvRsYdgZaS7Zk3x+wQFvhBLul3HFtlUw3Lup0WbCbbh5cZxi5iDlJkw/xz9yErED
PRjaD1FgPE0OZ2hGet3XOlQC9xUqmcE4iJ5K5OR0B3x6ZSkmxkbRfZQFp/BmH1L+
tDBBeGVsIEJlY2tlcnQgKERlYmlhbiBEZXZlbG9wZXIpIDxhYmVAZGViaWFuLm9y
Zz6JAlMEEwEIAD0CGwMECwkIBwUVCgkICwUWAgMBAAIeAQIXgBYhBCUXtyTF9sqZ
UyluYS/5zVlhJha1BQJf3JVFBQke6C8TAAoJEC/5zVlhJha1xH4P/ApuIzCSBYGd
8gf4LxqDHiOETE9VcwdgF4TyPl4AlJd8/SFn7va0D200Eg18xHctD6hz+BZOZ/QQ
p08eU63yo3YT/r3qtktOGW3AOj3V20iNKsNrcEegEwqQLd9R/SUkSArXbM03Zuca
hS6jTdKIIJG7se06Bardv3gPoRIQdOHutcmlLEoY8d6DBbQgUpidz80Zm+VjjZxC
1qHrJBEbiD6apdkTdcXvTUXyhnylGTVON1n7gd8idK7XFbjRumSc2IPXf1YQ7e5g
p8lUZBWLdHEfZgp9+VSX5quiv4yLBUsDEftxBXInrtJChGBc1kYbmFz54RY6MM/D
CtyysjBvHmD8Fwl7ZahvaKxVLkwKRHAGTDdJybeIyKbJ23UbpH7SF3F28QrhH+LO
hSP3yWkrcaxg6EsS82FZCswXh8TshtH+ltx7XZrgcLkeF6TExJApQWFdYQqYEpXO
YjoXe96Ndo4A8tmi74n8ghie5TuruUPX/zi54iuAKybC0yXXADomokSdCJRvExAh
p9pqKIBNsMFvaktYmTcLbRlr4hlu6bGLdulm9NzEPguDVAKWMXg1uNjrHu5lZXxf
WCXNqBO19NXMMbUHQAoHzxCk//MOUr0z6S45C2vhTBaFeHi1+BC8X5Q+ryXomUbM
oZjrsqf/Z2CM/LCPshcEDCGf9lvjwQMSuQQNBEpaa/EQEACJetEAJoXj39py3XCo
+WwPezJp50xnK/HvQLbn2XKj8tgrriWeJcM9Ce9wnCcw9CtwaN6ZQF6tPVwOgX4U
csy7I8Lqs6Z6KM0f//QXSIjwIe6U7LU2G1NB9VsuFJwgDSj+NmLnhxqp7H9+yHJB
qhWywsgRnQ/JEQXDQWPlzrmvpQ0QLyKHVp4zUcE4UyBxR2GQphzvLwrXl271Iiov
isyoG550Td0rCWJZ6HrYaKB6iMd8FZ7056KX4wxHIWQgY0+oTsmoUZeVtsSfSod/
1oWjzn9btEJbQvp9EwCBCtNq3mmQfDah5j7RcnNr9Wim1PboXJOV0S3/eG484XeA
rBrEqymUW9iKTkTzwbtG3kXAx/0MnvGsAwpgVy2rKO7oWmz6eI/6LpnyYdSahV1W
EsjklZ0UkGEA7HHjs/GPLqrR6KYrmceU2k5T5ab9Z30jxN+VC1sZaLaup/xM5ZMP
TtUTRY+X7yIckNDOW1GA+pnAPWChcfxYaxzkn+uGiRKykJRcw2Vx7DT3iX9lQr6a
+/HVpI3s/+BY3xp6G2GimVeaPp0rKtg5uwCs3aaNWOi/imLXr4Zi3kbWR2QVR31j
+LcKczG4RqxcFtfQNpJdke3tIWHxD6FaiTpjkOAS3kgwI4pFjIzEhV22jpFyR6SQ
aibyizOvprDo1tdh6chq74I7awADBg/6A/hsKupOAh3CAqyyNN9Fuak1/Ml9cZHg
Mf1+lAw7gCcIrkuvtkdx6GHRl/Jti9+WIdNmV1Cv6LJlq+fps0nhv7GtTC3MJfUV
98EGOrVWiCmiwp7L0At6Nv+OqJfye+DuqS4S7xp/sTm5/DOH/X/cFnjHhFUpZXJN
7GQlMyJPEIfxbMCpiEi0gbVecadud6M3nztc6BsarmPUIg/VlmHf9uK+443OR5s8
w925O76Sh/PHxlYRMBxFMPHgAxjj/zxnyTRsalzZ7/ijwh7T8QZzMo8Q8dOndv+e
tLpQfaiim6j1sVpgrKjxon1n9tNjX02TxQYN8OpqLFWPvuVmnnVbUvOaST5+HCAI
4zoIbKtp0wvQyqW6BnXWWapxZxSeIh5AA7UTHS7FMAyFjccwJjMHgth8uOcDhjFn
IMubq2lE/92QwQGeNWLB4HMInX+F4iGWhi3od4gyXZjQJtUpFheCN9WOe5KJ3PYs
SOxmiv6vkwWVPypz5ncEHt/jojRqCNsTPUXLgwsKv9/lf2/uWH6SUHJha7YCd83y
vI7msVIu07HLpxN7nLT77JGR+39//rY2tWPikr9IwhU1oX5PrqUdUhdG5Gj3y55Q
191ptrxIt6fCAXWQghMdoU7s2gn9u6AckVkP6x0RXh87RaeCT8isavWkPEfbGofy
kZr3WHHUDbqJAh8EGAEIAAkFAkpaa/ECGwwACgkQL/nNWWEmFrUsVA//cB+sQD0B
rI45fDWmt1fWmvvMZxJh5wzxo8WmS8rxDZ2YnCpH/EBzW9PNb52q45Ub9wUkF+1A
INAWCkNCn5ny3gSvarinHerQDeAfwzPUEtn85V5TzFTQhFuTr532/Sfjn9LThP+4
rjpGkMUPhgRV/njy26azX4QNoRtuHMRcYEMCMoJqvHAk76LgFH8qT725M0fAwyF6
SudB9xa8SChzO/LCMgb0ShZU1LQooVCJgpzNXix0s1B+E4LeKroll+KmriL8EQVN
JEEhInLJ9A9zneCbz6p6dE0tqJ0eCNs8DPgBCnC+obgVs7kXo10D/qIh+gPQ41u/
YIiHv/cHzu+9HpLwtRhsFx2zqFFE3RJWmvOHbLDNSsRZslZ1dDhuY06ca/IH4Xtd
PWvT7uZbYjBwxmV7hsJfk4MaXhv9iYzdFYKnP+bkUSRo7kS0Rbn2+/m3kpJFxiM1
p61eQkAodtIVYAnkTRn8p0jn7bF6SKyMmpwUJBCQcRp7V+MtXXgiq+Hj9Mvm5Fyi
4KAJMeWwpr3I+feUwcRgphemt/eEkthUoD34qx4vZQ1FNZHe2VZ816XX4VDbVkfb
tsGxW9fiQfv2Y4CjRdlbJh0g6roV74K9nY828OmmZonWfJ60nLbVcjB6qlg6L5dJ
J+fLBzGqQuJkQUlIdlq/sB02hUu4dzj92XK5Ag0EVKE9RAEQAMyRF5BUdII+aLli
/uDI4T5Wg1KtV8VWlumcXIr6Dv8jIB45XV/3VAVQ/RFTbYKscVtBpojiHnbLbwr/
7/2g2gPxTnV4OLHSXmBGM7kOmKzphJFMB24f0lT2VIkjxrL/RcVqGsBlRBpPhYNi
uWZGUG4hnY6Ndq4KnIzi++CRUTg2OiB6Cd/xjOOP5XiZPgRYApzE8YtDpwv4BI7R
tIkPLK3vDxyO9RW4Vk5JPfaIT9pqYVk9xlkxndlWtnapfK4VqkSu5GyeEB31rQIa
AnS7lN7HcnHKI2xTRjwlynMsZ4jwncxB2qcf2knAc6i8lUPp9oPcn1/LbYH/nMAw
f7llm/8fFNPf4H3yPruPPoT5D1tFvmLvcuiP2FABj0a4ZvqJ2hM0Mu11Vy6iehw+
qT4WVkRYt9Kfk+Sc0n4AB6yXVmHzU91fXUoBapoQpmZrMkH9aAPXwvxUELNQ9Iyu
3X2lQnXzpt4CcPMfKadLvRlw+mlqPP7GDZpQEci6+Y2VMC6/BOrhvhH/5bvb37sP
Z0mFOCvzasZsvnlVCWUBgRfnDT9GF5TYRmmOB1+XxUIbIZ0oPXzxwjKkdAhgDZmO
y8SUj80cm/QFMFU9kiAnok88OvtB9jy/OD8RnqeV4s2t2UgdZ587MsvdhZ1u/df0
TsKSXe3OO+X3sxtShgc5l6yLl9cpABEBAAGJBFsEGAEIACYCGwIWIQQlF7ckxfbK
mVMpbmEv+c1ZYSYWtQUCX9yUegUJEGGzNgIpwV0gBBkBCAAGBQJUoT1EAAoJEGvm
Y8daNcl1a8UQAIAXNuGj/NPay0nvHNMleXZuHRQ3C+4ckA5NC1zvPNFR1KZWFA2u
Fe20Wy9JiC/OS20/kOIYjH8N4nwJkgN8PCxeoPwihErttA0MAk0y06RDVoUChfe0
w3ekE5VxkT71+XAo4PQpK7wR47tVZeaTmMBoX4SFH4g8O5hbc0PazRmVVIWejXcR
UYfdbmnv3iCZ8qoskVoZVSS1b4jpVLWiYRrWn4TfZB5apHgzmfWG21/Ce/7yQWP2
2sSU5/o9+HZzYYmhz7DE4DXIxPLz4+2PtngKcLOTacxJaB4xbniYl3VmUj3afDWZ
3G2XdyfbBAGbOPypNeVkmP1COoWvLLvikuYclF1kdANN7Gi7XBpwUY225luwzmVI
8tcjzK/7ErutDKCzC203F9LCwp3jmBxvkmndOUMha4R1EuU+8EzIXMXY8jPFH3tH
3lJ9qTA1koiYtRxlB2E/EZmPzYB9Kj+Se2G7aJ6qemBRHR8KRCDfRxpjN28NMc57
j27VRfxCYKdlSujZTs+nn7/jgL3EZ3AKJHSJoIgrzaqqr34Siw/0DcAsoJTwuWbk
nQPgeSv03q2A81JLKEXukTXKCO9DmbBiAFyXqQm6NM5MuPSycq5jpM/MWN0Nc/OM
3fpvn0NsdOpBpugTzVGQ1H/nQBgAkbATd/cqxybvui/FKnIsc69TVlfjCRAv+c1Z
YSYWtbA6EACoowjlV8WdEczboTwiaFgnLepIP/z6e/FYaKz6Ji3MfUUBE1/ezJlk
nKtxX9/tmkpVILAqDBOeRuj02f2Q5EqyLYhGXn2e6ammNAdpdFLRZaYRTV5MpQzG
eihV9o7hitvRZIqsg3JWSwRjp2Z8rCBKN3wbA2om/zZ4/vN/0Qj8KZpWKz5fdUxy
u4slnAvyrE0ld2U8kqPytvnJtG9MDe6m6hg/Lsjs3nIkHH1nnW8MsyOdipnGwP3W
MgVo4rusir8cRTbKSMH/nmj6mtdoNvjTf7+dgNqaimZ6eijmzlckkWndx1my+xDi
mTx/NjZYaxjfN47DM+vLS/qwsHmAY3tVmlwWvP2bW90spMbVQVsFXo3kxFl+HzuD
dlX5VVuMFHcIJjtUY85qE620QT9657cLfVyk2Kmitwdl0X0kZ08sCJU/VOpsSdF9
jfBcITpFIiw9iM3teypamLxFNavzPAYdWEhHiAtaFuL0hmI5OEKmLb3n+IMxE3AQ
FjP1C9sbGWL4u0FS2I9FrNpR9R00wAo7Qikdf+zcJ9SX3vCfjBfKGXE2f0zjkr0l
qC2ihwGi/BMeoW9tv7XmKLDGswQNEiRcX+zavrWq5ai0UfHkYSL4H3gM6zH7rOdR
yvSfYxtyDzb8gGCkb1c/ULvoBOXHdxJRIuNAiV2Fbn6Da3MMEzczkA==
=XJH8
-----END PGP PUBLIC KEY BLOCK-----

5
debian/watch vendored
View File

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

View File

@@ -1,71 +0,0 @@
# xen-tools configuration file for distribution meta data
#
# Syntax:
#
# codename = distribution and further keywords
#
# Known distributions: debian, ubuntu
# Known keywords: eol, pygrub, default-keyring, dont-test
# Known generic keywords: *.gpg (uses the according /usr/share/keyrings/….gpg file)
#
sarge = debian eol dont-test
etch = debian eol
lenny = debian eol
squeeze = debian eol default-keyring
wheezy = debian eol
jessie = debian eol
stretch = debian pygrub
buster = debian pygrub
bullseye = debian pygrub
bookworm = debian pygrub
trixie = debian pygrub
forky = debian pygrub dont-test
sid = debian pygrub
testing = debian pygrub
oldoldstable = debian dont-test
oldstable = debian pygrub
stable = debian pygrub
unstable = debian pygrub
# Between at least debootstrap 1.0.37 and 1.0.93 (including), dapper
# and edgy may need manual adjustments in debootstrap's configuration,
# see https://bugs.debian.org/659360
dapper = ubuntu eol
edgy = ubuntu eol
feisty = ubuntu eol
gutsy = ubuntu eol
hardy = ubuntu eol
intrepid = ubuntu eol
jaunty = ubuntu eol
karmic = ubuntu eol
lucid = ubuntu eol pygrub
maverick = ubuntu eol pygrub
natty = ubuntu eol pygrub
oneiric = ubuntu eol pygrub
precise = ubuntu eol pygrub ubuntu-archive-removed-keys.gpg
quantal = ubuntu eol pygrub
raring = ubuntu eol pygrub
saucy = ubuntu eol pygrub
trusty = ubuntu pygrub
utopic = ubuntu eol pygrub
vivid = ubuntu eol pygrub
wily = ubuntu eol pygrub
xenial = ubuntu pygrub
yakkety = ubuntu eol pygrub
zesty = ubuntu eol pygrub ubuntu-keyring-2012-archive.gpg
artful = ubuntu eol pygrub ubuntu-archive-keyring.gpg
bionic = ubuntu pygrub
cosmic = ubuntu eol pygrub ubuntu-archive-keyring.gpg
disco = ubuntu eol pygrub ubuntu-archive-keyring.gpg
eoan = ubuntu eol pygrub ubuntu-archive-keyring.gpg
focal = ubuntu pygrub
groovy = ubuntu eol pygrub
hirsute = ubuntu eol pygrub
impish = ubuntu eol pygrub
jammy = ubuntu pygrub
kinetic = ubuntu eol pygrub
lunar = ubuntu pygrub
mantic = ubuntu pygrub dont-test
devel = ubuntu pygrub dont-test

View File

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

View File

@@ -7,7 +7,7 @@
#
# For more details please see:
#
# https://xen-tools.org/
# http://xen-tools.org/
#
##
@@ -54,14 +54,6 @@
##
# lvm = vg0
#
##
#
# If you have ZFS available and wish to use it then you may specify a
# ZFS pool name here instead
#
##
# zpool = xenpool0
#
##
@@ -133,15 +125,13 @@ install-method = debootstrap
# Disk and Sizing options.
##
#
size = 4G # Root disk, suffix (G, M, k) required
memory = 256M # Suffix (G, M, k) required
#maxmem = 2G # Suffix (G, M, k) optional
swap = 512M # Suffix (G, M, k) required
# noswap = 1 # Don't use swap at all for new systems.
fs = ext4 # Default file system for any disk
dist = `xt-guess-suite-and-mirror --suite`
# Default distribution is determined by Dom0's distribution
image = sparse # Specify sparse vs. full disk images (file based images only)
size = 4Gb # Disk image size.
memory = 128Mb # Memory size
swap = 128Mb # Swap size
# noswap = 1 # Don't use swap at all for the new system.
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = `xt-guess-suite-and-mirror --suite` # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
#
# See the README for currently supported and tested distributions. You can
@@ -178,7 +168,7 @@ image = sparse # Specify sparse vs. full disk images (file based images only)
#
#
# Setup bridge name for host vif. Useful if you use bridged networking
# Setup bridge name for host vif. Usefull if you use bridged networking
# for guests.
#
# bridge = xendmz
@@ -245,13 +235,6 @@ image = sparse # Specify sparse vs. full disk images (file based images only)
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
#
# Uncomment the following line if you wish to use pygrub by default
# for all distributions.
#
# pygrub = 1
#
#
# The architecture to use when using debootstrap, rinse, or rpmstrap.
#
@@ -262,19 +245,43 @@ initrd = /boot/initrd.img-`uname -r`
#
#
# Use the mirror configured on the DomU as default mirror
# The default mirror for debootstrap to install Debian-derived distributions
#
# mirror = `xt-guess-suite-and-mirror --mirror`
mirror = `xt-guess-suite-and-mirror --mirror`
# If this is defined it will be used by debootstrap, and configured as the
# proxy for the guest
#
# apt_proxy =
# A mirror suitable for use when installing the Dapper release of Ubuntu.
#
# mirror = http://gb.archive.ubuntu.com/ubuntu/
#
# If you like you could use per-distribution mirrors, which will
# be more useful if you're working in an environment where you want
# to regularly use multiple distributions. The following are the
# default values used (for Debian the GeoIP feature is used, see
# http://wiki.debian.org/DebianGeoMirror):
#
# mirror_sarge = http://archive.debian.org/debian
# mirror_etch = http://archive.debian.org/debian
# mirror_lenny = http://cdn.debian.net/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_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_lucid = http://archive.ubuntu.com/ubuntu
# mirror_maverick = http://archive.ubuntu.com/ubuntu
# mirror_natty = http://archive.ubuntu.com/ubuntu
#
# Filesystem options for the different filesystems we support.
#
ext4_options = noatime,nodiratime,errors=remount-ro
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
@@ -291,7 +298,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 disk devices.
# and 'xvdX' instead of 'sdX' for serial devices.
#
# You may specify the things to use here:
#

View File

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

View File

@@ -8,8 +8,7 @@
#
{ if ( ( $kernel ) && ( !defined($pygrub)) )
{
$OUT .= "kernel = '$kernel'\n";
$OUT .= "extra = 'elevator=noop'";
$OUT.= "kernel = '$kernel'";
}
}
{ if ( ( $initrd ) && ( !defined($pygrub)) )
@@ -20,17 +19,23 @@
{
if ( $pygrub )
{
$OUT .= "bootloader = 'pygrub'\n";
my $pygrub_bin = '';
foreach my $pygrub_path (reverse glob('/usr/lib/xen-*/bin/pygrub
/usr/lib/xen-default/bin/pygrub
/usr/*bin/pygrub')) {
if (-x $pygrub_path) {
$pygrub_bin = $pygrub_path;
last;
}
}
die "pygrub not found" unless $pygrub_bin;
$OUT .= "bootloader = '$pygrub_bin'\n";
}
}
vcpus = '{$vcpus}'
memory = '{$memory}'
{ if ( $maxmem )
{
$OUT .= "maxmem = '$maxmem'\n";
}
}
type = '{$type}'
#
# Disk device(s).
@@ -48,17 +53,7 @@ type = '{$type}'
$OUT .= "disk = [\n";
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
if ( $PARTITIONS[$i]{'mountpoint'} eq '/' )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
}
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
{
if ( $PARTITIONS[$i]{'mountpoint'} ne '/' )
{
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
}
$OUT .= " ]\n";
}
@@ -140,13 +135,7 @@ name = '{$hostname}'
$br = ",bridge=$bridge"
}
my $vl = '';
if ( $vlan )
{
$vl = ".$vlan"
}
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "vif = [ 'ip=$ip1";
$OUT .= "$m";
$OUT .= "$vn";
$OUT .= "$br";

View File

@@ -1,50 +0,0 @@
#!/bin/bash
set -e
exec 2>&1
exec > >( tee xen-tools-release-testing-$(date -Iseconds).log )
if [ -z "$DISTRIBUTIONS" ]; then
DISTRIBUTIONS=$(awk '!/^#|^$|dont-test/ {print $1}' /etc/xen-tools/distributions.conf)
fi
echo Deleting old release-testing artefacts
for dist in $DISTRIBUTIONS; do
echo "*** Removing potential xen-tools-release-testing-$dist..."
xen-delete-image --verbose --hostname "xen-tools-release-testing-$dist"
done
echo Syncing...
sync
seconds=10
printf "Sleeping for %i seconds to avoid LVM race conditions: " $seconds
for i in $(seq 1 $seconds); do sleep 1; printf "%i " $i; done; printf '\n';
SUCCEEDED=''
FAILED=''
# From now on we just want to log failures, not abort.
set +e
for dist in $DISTRIBUTIONS; do
echo "*** Creating xen-tools-release-testing-$dist..."
xen-create-image --verbose --hostname "xen-tools-release-testing-$dist" --dist $dist --force "$@"
if [ "$?" -eq '0' ]; then
SUCCEEDED="$dist $SUCCEEDED"
else
FAILED="$dist $FAILED"
fi
done
echo ''
echo '======================================================================'
if [ -z "$FAILED" ]; then
echo '*** All tests succeeded! ***'
elif [ -z "$SUCCEEDED" ]; then
echo '*** All tests failed! ***'
else
echo "*** These distributions succeeded: $SUCCEEDED ***"
echo "*** These distributions failed: $FAILED ***"
fi

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

49
hooks/centos-4/10-disable-tls Executable file
View File

@@ -0,0 +1,49 @@
#!/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

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

44
hooks/centos-4/15-setup-arch Executable file
View File

@@ -0,0 +1,44 @@
#!/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

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

46
hooks/centos-4/20-setup-yum Executable file
View File

@@ -0,0 +1,46 @@
#!/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

View File

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

View File

@@ -0,0 +1,58 @@
#!/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

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

181
hooks/centos-4/35-setup-users Executable file
View File

@@ -0,0 +1,181 @@
#!/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

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

View File

@@ -0,0 +1,112 @@
#!/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

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

122
hooks/centos-4/50-setup-hostname Executable file
View File

@@ -0,0 +1,122 @@
#!/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

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

53
hooks/centos-4/55-create-dev Executable file
View File

@@ -0,0 +1,53 @@
#!/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

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

View File

@@ -0,0 +1,49 @@
#!/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

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

42
hooks/centos-4/70-install-ssh Executable file
View File

@@ -0,0 +1,42 @@
#!/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

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

View File

@@ -0,0 +1,62 @@
#!/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

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

View File

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

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