Compare commits
143 Commits
debian-4.7
...
debian-4.9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f265d933d | ||
|
|
a98c4db4e4 | ||
|
|
82f0669fe0 | ||
|
|
eb2d3fea8f | ||
|
|
dd051ad58b | ||
|
|
19295c5ec1 | ||
|
|
657b366fbf | ||
|
|
e6eba80f3c | ||
|
|
95207ed48e | ||
|
|
f368ae7cff | ||
|
|
0ec1bed1d1 | ||
|
|
bbd21369cf | ||
|
|
2527e25beb | ||
|
|
ede684baaa | ||
|
|
b7490687e2 | ||
|
|
0982fdd0f4 | ||
|
|
a39f24e754 | ||
|
|
8a623b30ba | ||
|
|
5730250725 | ||
|
|
ac04bed0f2 | ||
|
|
cf693d9e64 | ||
|
|
fc7c09596a | ||
|
|
7ebb0f41a4 | ||
|
|
00527f64b2 | ||
|
|
83c37b476a | ||
|
|
af6ceacc4c | ||
|
|
6cdd1eb63f | ||
|
|
97dd8fafc8 | ||
|
|
58899daffe | ||
|
|
239f1e4c88 | ||
|
|
1a27e59df7 | ||
|
|
b7486d427c | ||
|
|
6aeb8d9d11 | ||
|
|
f5dc8cbf37 | ||
|
|
4aa9428e3b | ||
|
|
a58cc83c80 | ||
|
|
965839812c | ||
|
|
a9593dabf0 | ||
|
|
ea95b1ef03 | ||
|
|
68c20b4e4e | ||
|
|
06b3faa1bf | ||
|
|
0da2ed1365 | ||
|
|
285d2c80b9 | ||
|
|
ed497ab39c | ||
|
|
85c0583819 | ||
|
|
c0cb19eefc | ||
|
|
67603c2d74 | ||
|
|
a816cc81ae | ||
|
|
01d7628770 | ||
|
|
1150835a89 | ||
|
|
17025182eb | ||
|
|
e7b2f1a3e7 | ||
|
|
fe4a18edef | ||
|
|
eab2940bf6 | ||
|
|
e8897649b7 | ||
|
|
2fba5cb90e | ||
|
|
19399ecc70 | ||
|
|
6f291cebe7 | ||
|
|
54d93cf3ed | ||
|
|
b40759e8d8 | ||
|
|
f5e7a2d441 | ||
|
|
79650b9d70 | ||
|
|
8c7d398001 | ||
|
|
f6c6c35b40 | ||
|
|
d7b794bc2c | ||
|
|
d278bdc89e | ||
|
|
284657f8bc | ||
|
|
4ac4ae5987 | ||
|
|
61ac300e43 | ||
|
|
967bdcfaa9 | ||
|
|
7fbad420c9 | ||
|
|
94514a3604 | ||
|
|
7c8d466a53 | ||
|
|
7dbb76941d | ||
|
|
a11c9bf126 | ||
|
|
2a9fdc71e7 | ||
|
|
89795d71dc | ||
|
|
2a3c3cebfb | ||
|
|
2275c8f293 | ||
|
|
449cc9a0bf | ||
|
|
baee245fbd | ||
|
|
ac55fba904 | ||
|
|
2a476d1037 | ||
|
|
19f30610a5 | ||
|
|
a8df6e002f | ||
|
|
0d9a7cb12e | ||
|
|
b05087b1cb | ||
|
|
58af2790a1 | ||
|
|
1cda58c756 | ||
|
|
c66e5427ed | ||
|
|
ad013d7b86 | ||
|
|
a6389c48df | ||
|
|
8d07785c3b | ||
|
|
ead18c819a | ||
|
|
e3ab23b55d | ||
|
|
82ecd4c6d2 | ||
|
|
f50d1e37a2 | ||
|
|
c774f81e80 | ||
|
|
c8316b0076 | ||
|
|
d5c4589519 | ||
|
|
17d868d38d | ||
|
|
42e7dca4bf | ||
|
|
4872d18989 | ||
|
|
1a5fd541cd | ||
|
|
9817ff95c3 | ||
|
|
26427c9dc8 | ||
|
|
5c76eb1a7d | ||
|
|
8723db0880 | ||
|
|
76221f5999 | ||
|
|
58306b9281 | ||
|
|
7ce42e9781 | ||
|
|
3daa69256b | ||
|
|
5587dc796a | ||
|
|
9ee1f63705 | ||
|
|
cfd4406a93 | ||
|
|
647efb0e12 | ||
|
|
0a351b4dfb | ||
|
|
dccf78c65e | ||
|
|
3a15c11a7e | ||
|
|
19e117b9f3 | ||
|
|
f1052fcdaa | ||
|
|
b9e0284a43 | ||
|
|
26a698bbd6 | ||
|
|
1ad05c0d66 | ||
|
|
8f527122c5 | ||
|
|
c3b8d7fda5 | ||
|
|
53800af963 | ||
|
|
a78388dd1e | ||
|
|
07e56db75c | ||
|
|
1634fe5e80 | ||
|
|
f1083cfa55 | ||
|
|
6485f686b7 | ||
|
|
207c73c7bb | ||
|
|
fff2eccbe3 | ||
|
|
e6ffe50bb6 | ||
|
|
76a35e28d1 | ||
|
|
de1eea7fa2 | ||
|
|
422f682b37 | ||
|
|
326bd72ebb | ||
|
|
52c39a7c09 | ||
|
|
230167d84a | ||
|
|
87dd127cf8 | ||
|
|
f065541445 |
17
.travis.yml
17
.travis.yml
@@ -1,5 +1,9 @@
|
||||
language: perl
|
||||
perl:
|
||||
- "5.32"
|
||||
- "5.30"
|
||||
- "5.28"
|
||||
- "5.26"
|
||||
- "5.24"
|
||||
- "5.22"
|
||||
- "5.20"
|
||||
@@ -8,17 +12,26 @@ perl:
|
||||
- "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
|
||||
- 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
|
||||
- make test-verbose
|
||||
|
||||
after_success:
|
||||
- prove --exec 'env PERL5OPT=-MDevel::Cover=-ignore_re,^(t/|/usr) perl' t/*.t
|
||||
|
||||
32
Makefile
32
Makefile
@@ -14,7 +14,7 @@
|
||||
#
|
||||
TMPDIR ?= /tmp
|
||||
DIST_PREFIX = ${TMPDIR}
|
||||
VERSION = 4.7
|
||||
VERSION = 4.9.2
|
||||
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
|
||||
BASE = xen-tools
|
||||
VCS = git
|
||||
@@ -132,6 +132,7 @@ install-bin:
|
||||
cp bin/xen-delete-image ${prefix}/usr/bin
|
||||
cp bin/xen-list-images ${prefix}/usr/bin
|
||||
cp bin/xen-update-image ${prefix}/usr/bin
|
||||
cp bin/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
|
||||
@@ -183,6 +184,9 @@ install-hooks:
|
||||
-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
|
||||
@@ -218,7 +222,20 @@ install-hooks:
|
||||
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d xenial.d
|
||||
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d yakkety.d
|
||||
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d zesty.d
|
||||
-cd ${prefix}/usr/share/xen-tools/ && ln -s karmic.d devel.d
|
||||
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 devel.d
|
||||
cp hooks/common.sh ${prefix}/usr/share/xen-tools
|
||||
cp -r hooks/common ${prefix}/usr/share/xen-tools
|
||||
|
||||
@@ -258,6 +275,7 @@ manpages:
|
||||
#
|
||||
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
|
||||
@@ -282,13 +300,15 @@ orig-tar-gz: tarball
|
||||
#
|
||||
# Run the test suite.
|
||||
#
|
||||
test-verbose : VERBOSE = -v
|
||||
test-verbose: test
|
||||
test: non-author-test author-test
|
||||
|
||||
non-author-test: update-modules
|
||||
prove --shuffle t/
|
||||
prove $(VERBOSE) --shuffle t/
|
||||
|
||||
author-test:
|
||||
prove xt/
|
||||
prove $(VERBOSE) xt/
|
||||
|
||||
|
||||
#
|
||||
@@ -296,9 +316,9 @@ author-test:
|
||||
#
|
||||
tidy:
|
||||
if [ -x /usr/bin/perltidy ]; then \
|
||||
for i in bin/*-*[^~]; do \
|
||||
for i in $(ls -1 bin/*-* | grep -vE '~$'); do \
|
||||
echo "tidying $$i"; \
|
||||
perltidy $$i \
|
||||
perltidy $$i \
|
||||
; done \
|
||||
; fi
|
||||
|
||||
|
||||
157
NEWS.markdown
157
NEWS.markdown
@@ -1,3 +1,158 @@
|
||||
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 Lobste
|
||||
* 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)
|
||||
====================================
|
||||
|
||||
@@ -43,7 +198,7 @@ Other Changes
|
||||
|
||||
* Risen default values for RAM sizes in /etc/xen-tools/xen-tools.cfg
|
||||
to cope with risen resource consumption and availability. (Closes
|
||||
Debian bug report #776487)
|
||||
Debian bug report #849867)
|
||||
* Default file system is now ext4 (instead of ext3).
|
||||
|
||||
Test Suite
|
||||
|
||||
101
README.markdown
101
README.markdown
@@ -4,6 +4,7 @@ xen-tools
|
||||
[](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.)
|
||||
@@ -31,34 +32,37 @@ known to work reliably, i.e.:
|
||||
|
||||
### Debian
|
||||
|
||||
* Sarge 3.1 (i386 and DomU only)
|
||||
* Etch 4.0 (Dom0 no more tested)
|
||||
* Lenny 5.0 (Dom0 no more tested)
|
||||
* Squeeze 6.0 (Dom0 no more tested)
|
||||
* Wheezy 7
|
||||
* 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 (under development)
|
||||
* Buster 10 (knows about this future release name)
|
||||
* Bullseye 11 (knows about this future release name)
|
||||
* 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, needs editing of `/usr/share/debootstrap/scripts/dapper` since at least debootstrap version 1.0.37, see [#659360][1])
|
||||
* Edgy Eft 6.10 (needs editing of `/usr/share/debootstrap/scripts/edgy` since at least debootstrap version 1.0.37, see [#659360][1])
|
||||
* Feisty Fawn 7.04
|
||||
* Gutsy Gibbon 7.10
|
||||
* Hardy Heron 8.04 (LTS, see [Installing Ubuntu 8.04 as DomU][2])
|
||||
* Interpid Ibex 8.10
|
||||
* Jaunty Jackaplope 9.04
|
||||
* Karmic Koala 9.10
|
||||
* Lucid Lynx 10.04 (LTS)
|
||||
* Maverick Meerkat 10.10
|
||||
* Natty Narwhal 11.04
|
||||
* Oneiric Ocelot 11.10
|
||||
* Precise Pangolin 12.04 (LTS)
|
||||
* 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
|
||||
@@ -68,7 +72,34 @@ known to work reliably, i.e.:
|
||||
* Wily Werewolf 15.10
|
||||
* Xenial Xerus 16.04 (LTS)
|
||||
* Yakkety Yak 16.10
|
||||
* Zesty Zapus 17.04 (under development)
|
||||
* 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"
|
||||
@@ -113,7 +144,7 @@ To use these tools you'll need the following software:
|
||||
* [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
|
||||
* "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
|
||||
@@ -125,6 +156,22 @@ 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
|
||||
------------
|
||||
@@ -242,11 +289,15 @@ test case would be a useful bonus.
|
||||
|
||||
### Known/Open Issues
|
||||
|
||||
* [xen-tools Issue Tracker at GitHub](https://github.com/xen-tools/xen-tools/issues/new)
|
||||
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
|
||||
|
||||
@@ -55,6 +55,16 @@ Bugs to fix and features to add for 5.0
|
||||
`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
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
@@ -245,12 +245,12 @@ and EVMS EXAMPLE.
|
||||
--mirror=url Setup the mirror to use when installing via
|
||||
debootstrap. (Default value: mirror used in
|
||||
/etc/apt/sources.list or for Debian
|
||||
"http://httpredir.debian.org/debian/" and for Ubuntu
|
||||
"http://deb.debian.org/debian/" and for Ubuntu
|
||||
"http://archive.ubuntu.com/ubuntu/")
|
||||
|
||||
The above mentioned Debian mirror hostname
|
||||
automatically tries to choose a more or less close
|
||||
Debian mirror. See http://httpredir.debian.org/ for
|
||||
Debian mirror. See http://deb.debian.org/ for
|
||||
details.
|
||||
|
||||
--apt_proxy=protocol://hostname:port/
|
||||
@@ -296,6 +296,8 @@ and EVMS EXAMPLE.
|
||||
flags, but the specific MAC address will only be used
|
||||
for the first interface.)
|
||||
|
||||
--randommac Creates a random MAC address.
|
||||
|
||||
--netmask=123.456.789.ABC
|
||||
Setup the netmask for the new instance.
|
||||
|
||||
@@ -321,14 +323,14 @@ and EVMS EXAMPLE.
|
||||
Subdirectories will be created for each guest.
|
||||
|
||||
If you do not wish to use loopback images specify
|
||||
--lvm or --evms. (These three options are mutually
|
||||
exclusive.)
|
||||
--lvm, --evms or --zpool. (These four options are
|
||||
mutually exclusive.)
|
||||
|
||||
--evms=lvm2/container
|
||||
Specify the container to save images within,
|
||||
i.e. '--evms lvm2/mycontainer'. If you do not wish to
|
||||
use EVMS specify --dir or --lvm. (These three options
|
||||
are mutually exclusive.)
|
||||
use EVMS specify --dir, --lvm or --zpool. (These four
|
||||
options are mutually exclusive.)
|
||||
|
||||
--hostname=host.example.org
|
||||
Set the hostname of the new guest system. Ideally
|
||||
@@ -337,9 +339,20 @@ and EVMS EXAMPLE.
|
||||
out of it for various purposes.
|
||||
|
||||
--lvm=vg Specify the volume group to save images within.
|
||||
If you do not wish to use LVM specify --dir or --evms.
|
||||
(These three options are mutually exclusive.)
|
||||
If you do not wish to use LVM specify --dir, --evms or
|
||||
--zpool. (These three options are mutually exclusive.)
|
||||
|
||||
--lvm_thin=thin pool
|
||||
Specify the thin pool name on which thin LVM volumes
|
||||
are created.
|
||||
|
||||
This enables thin provisioned LVM volumes. Note that
|
||||
you need a LVM version which supports this.
|
||||
|
||||
--zpool=pool Specify the ZFS pool to save images within. A new ZFS
|
||||
volume will be created for each guest.
|
||||
If you do not wish to use ZFS specify --dir, --evms or
|
||||
--lvm. (These four options are mutually exclusive.)
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
@@ -859,7 +872,7 @@ my $MOUNT_POINT = undef;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
#
|
||||
@@ -1004,7 +1017,8 @@ if ( !@PARTITIONS )
|
||||
populatePartitionsData()
|
||||
if ( ( $CONFIG{ 'dir' } ) ||
|
||||
( $CONFIG{ 'evms' } ) ||
|
||||
( $CONFIG{ 'lvm' } ) );
|
||||
( $CONFIG{ 'lvm' } ) ||
|
||||
( $CONFIG{ 'zpool' } ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -1056,12 +1070,20 @@ elsif ( $CONFIG{ 'image-dev' } )
|
||||
#
|
||||
usePhysicalDevice();
|
||||
}
|
||||
elsif ( $CONFIG{ 'zpool' } )
|
||||
{
|
||||
|
||||
#
|
||||
# Create our ZFS volumes
|
||||
#
|
||||
createZFSBits();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
# Can't happen we didn't get an installation type.
|
||||
logprint( "Error: No recognised installation type.\n".
|
||||
"Please specify a directory, lvm, or evms volume to use.\n" );
|
||||
"Please specify a directory, lvm, zpool, or evms volume to use.\n" );
|
||||
$CONFIG{'FAIL'} = 1;
|
||||
exit 127;
|
||||
}
|
||||
@@ -1292,9 +1314,13 @@ sub setupDefaultOptions
|
||||
$CONFIG{ 'mirror_'.$debdist } = $MIRROR{$dist.'_archive'} or
|
||||
die $dist.'_archive not defined in /etc/xen-tools/mirrors.conf';
|
||||
my $removed_keys = "/usr/share/keyrings/$dist-archive-removed-keys.gpg";
|
||||
if ($debdistinfo !~ /default-keyring/ and -s $removed_keys) {
|
||||
if ($debdistinfo =~ /(\S*\.gpg)($|\s)/ and -s "/usr/share/keyrings/${1}") {
|
||||
$CONFIG{ 'keyring_'.$debdist } = "/usr/share/keyrings/${1}";
|
||||
} elsif ($debdistinfo !~ /default-keyring/ and -s $removed_keys) {
|
||||
$CONFIG{ 'keyring_'.$debdist } = $removed_keys;
|
||||
}
|
||||
} elsif ($debdistinfo =~ /(\S*\.gpg)($|\s)/ and -s "/usr/share/keyrings/${1}") {
|
||||
$CONFIG{ 'keyring_'.$debdist } = "/usr/share/keyrings/${1}";
|
||||
} else {
|
||||
$CONFIG{ 'mirror_'.$debdist } = $MIRROR{$dist} or
|
||||
die $dist.' not defined in /etc/xen-tools/mirrors.conf';
|
||||
@@ -1560,6 +1586,7 @@ sub parseCommandLineArguments
|
||||
$install{ 'dir' } = undef;
|
||||
$install{ 'lvm' } = undef;
|
||||
$install{ 'image-dev' } = undef;
|
||||
$install{ 'zpool' } = undef;
|
||||
|
||||
#
|
||||
# Parse options.
|
||||
@@ -1589,6 +1616,7 @@ sub parseCommandLineArguments
|
||||
"apt_proxy=s", \&checkOption,
|
||||
"modules=s", \&checkOption,
|
||||
"lvm=s", \$install{ 'lvm' },
|
||||
"zpool=s", \$install{ 'zpool' },
|
||||
"image-dev=s", \$install{ 'image-dev' },
|
||||
"swap-dev=s", \$install{ 'swap-dev' },
|
||||
"serial_device=s", \&checkOption,
|
||||
@@ -1608,6 +1636,7 @@ sub parseCommandLineArguments
|
||||
"hostname=s", \&checkOption,
|
||||
"ip=s@", \&checkOption,
|
||||
"mac=s", \&checkOption,
|
||||
"randommac", \$CONFIG{ 'randommac' },
|
||||
"netmask=s", \&checkOption,
|
||||
"broadcast=s", \&checkOption,
|
||||
"nameserver=s", \&checkOption,
|
||||
@@ -1655,6 +1684,7 @@ sub parseCommandLineArguments
|
||||
"output=s", \&checkOption,
|
||||
"extension:s", \&checkOption,
|
||||
"dontformat", \&checkOption,
|
||||
"lvm_thin=s", \$CONFIG{ 'lvm_thin' },
|
||||
|
||||
# Help options
|
||||
"debug!", \$CONFIG{ 'debug' },
|
||||
@@ -1687,7 +1717,7 @@ sub parseCommandLineArguments
|
||||
|
||||
|
||||
#
|
||||
# Now make ensure that the command line setting of '--lvm', '--evms'
|
||||
# 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' } )
|
||||
@@ -1696,6 +1726,7 @@ sub parseCommandLineArguments
|
||||
$CONFIG{ 'evms' } = undef;
|
||||
$CONFIG{ 'lvm' } = undef;
|
||||
$CONFIG{ 'image-dev' } = undef;
|
||||
$CONFIG{ 'zpool' } = undef;
|
||||
}
|
||||
if ( $install{ 'evms' } )
|
||||
{
|
||||
@@ -1703,6 +1734,7 @@ sub parseCommandLineArguments
|
||||
$CONFIG{ 'evms' } = $install{ 'evms' };
|
||||
$CONFIG{ 'lvm' } = undef;
|
||||
$CONFIG{ 'image-dev' } = undef;
|
||||
$CONFIG{ 'zpool' } = undef;
|
||||
}
|
||||
if ( $install{ 'lvm' } )
|
||||
{
|
||||
@@ -1710,6 +1742,15 @@ sub parseCommandLineArguments
|
||||
$CONFIG{ 'evms' } = undef;
|
||||
$CONFIG{ 'lvm' } = $install{ 'lvm' };
|
||||
$CONFIG{ 'image-dev' } = undef;
|
||||
$CONFIG{ 'zpool' } = undef;
|
||||
}
|
||||
if ( $install{ 'zpool' } )
|
||||
{
|
||||
$CONFIG{ 'dir' } = undef;
|
||||
$CONFIG{ 'evms' } = undef;
|
||||
$CONFIG{ 'lvm' } = undef;
|
||||
$CONFIG{ 'image-dev' } = undef;
|
||||
$CONFIG{ 'zpool' } = $install{ 'zpool' };
|
||||
}
|
||||
if ( $install{ 'image-dev' } )
|
||||
{
|
||||
@@ -1717,6 +1758,7 @@ sub parseCommandLineArguments
|
||||
$CONFIG{ 'evms' } = undef;
|
||||
$CONFIG{ 'lvm' } = undef;
|
||||
$CONFIG{ 'image-dev' } = $install{ 'image-dev' };
|
||||
$CONFIG{ 'zpool' } = undef;
|
||||
$CONFIG{ 'size' } = undef;
|
||||
$CONFIG{ 'swap' } = undef;
|
||||
|
||||
@@ -1745,13 +1787,13 @@ sub testRootUser
|
||||
{
|
||||
if ( $EFFECTIVE_USER_ID != 0 )
|
||||
{
|
||||
my $err = <<E_O_ROOT;
|
||||
my $err = <<EOROOT;
|
||||
|
||||
In order to use this script you must be running with root privileges.
|
||||
|
||||
(This is necessary to mount the disk images which are created.)
|
||||
|
||||
E_O_ROOT
|
||||
EOROOT
|
||||
|
||||
logprint($err);
|
||||
$CONFIG{'FAIL'} = 1;
|
||||
@@ -2082,10 +2124,18 @@ EOF
|
||||
|
||||
#
|
||||
# If we don't have a MAC address specified then generate one.
|
||||
# If randommac is specified, generate random MAC.
|
||||
#
|
||||
if ( !$CONFIG{ 'mac' } )
|
||||
{
|
||||
$CONFIG{ 'mac' } = generateMACAddress();
|
||||
if ( $CONFIG{ 'randommac' } )
|
||||
{
|
||||
$CONFIG{ 'mac' } = generateRandomMACAddress();
|
||||
}
|
||||
else
|
||||
{
|
||||
$CONFIG{ 'mac' } = generateMACAddress();
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
@@ -2134,7 +2184,7 @@ EOF
|
||||
|
||||
=begin doc
|
||||
|
||||
Generate a 'random' MAC address.
|
||||
Generate a pseudo-random MAC address.
|
||||
|
||||
The MAC address is constructed based upon :
|
||||
|
||||
@@ -2192,6 +2242,36 @@ sub generateMACAddress
|
||||
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
Generate a MAC address based on the Xen prefix and a really random local part.
|
||||
|
||||
=end doc
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
sub generateRandomMACAddress
|
||||
{
|
||||
|
||||
#
|
||||
# Start with the xen prefix
|
||||
#
|
||||
my $mac = '00:16:3E';
|
||||
|
||||
#
|
||||
# Generate random local part and append to $mac
|
||||
#
|
||||
for ( my $count=0; $count < 3; $count++ )
|
||||
{
|
||||
$mac = $mac . ":" . sprintf("%02X", int(rand(255)));
|
||||
}
|
||||
|
||||
return ( $mac );
|
||||
}
|
||||
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
Make sure we have a log directory, and create an empty logfile
|
||||
@@ -2328,6 +2408,26 @@ sub checkBinariesPresent
|
||||
}
|
||||
}
|
||||
}
|
||||
elsif (defined( $CONFIG{ 'zpool' } ) )
|
||||
{
|
||||
|
||||
# ZFS-specific binaries.
|
||||
my @zfs = qw ( zfs );
|
||||
|
||||
foreach my $file (@zfs)
|
||||
{
|
||||
if ( !defined( which($file) ) )
|
||||
{
|
||||
logprint("The following binary is required to run this tool\n");
|
||||
logprint("\t$file\n");
|
||||
logprint(
|
||||
"(This is only required for ZFS volumes, which you've selected)\n"
|
||||
);
|
||||
$CONFIG{'FAIL'} = 1;
|
||||
exit 127;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3124,9 +3224,12 @@ sub createLVMBits
|
||||
# The commands to create the volume.
|
||||
#
|
||||
my $disk_cmd =
|
||||
"lvcreate $CONFIG{'lvm'} ".
|
||||
($lvm_needs_yes ? '--yes' : '').
|
||||
" -L $partition->{'size'} -n $disk";
|
||||
"lvcreate ".
|
||||
($lvm_needs_yes ? '--yes ' : '').
|
||||
($CONFIG{ 'lvm_thin' } ?
|
||||
"-T $CONFIG{'lvm'}/$CONFIG{'lvm_thin'} -V" :
|
||||
"$CONFIG{'lvm'} -L").
|
||||
" $partition->{'size'} -n $disk";
|
||||
|
||||
#
|
||||
# Create the volume
|
||||
@@ -3163,6 +3266,112 @@ sub createLVMBits
|
||||
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
This function is responsible for creating two new ZFS volumes within
|
||||
a given ZFS pool.
|
||||
|
||||
=end doc
|
||||
|
||||
=cut
|
||||
|
||||
sub createZFSBits
|
||||
{
|
||||
|
||||
#
|
||||
# Check whether the ZFS volume exists already, and if so abort
|
||||
# unless '--force' is specified.
|
||||
#
|
||||
foreach my $partition (@PARTITIONS)
|
||||
{
|
||||
my $disk = $CONFIG{ 'hostname' } . '-' . $partition->{ 'name' };
|
||||
my $zfs_disk = "/dev/$CONFIG{'zpool'}/$disk";
|
||||
my $zfs_vol = "$CONFIG{'zpool'}/$disk";
|
||||
|
||||
if ( -e $zfs_disk )
|
||||
{
|
||||
|
||||
# Delete if forcing
|
||||
if ( $CONFIG{ 'force' } )
|
||||
{
|
||||
unless ( xenRunning($CONFIG{ 'hostname' }, \%CONFIG)) {
|
||||
logprint(
|
||||
"Removing $zfs_disk - since we're forcing the install\n");
|
||||
runCommand("zfs destroy $zfs_vol", \%CONFIG);
|
||||
runCommand("sync", \%CONFIG);
|
||||
logprint(
|
||||
"Sleeping a few seconds to avoid ZFS race conditions...\n");
|
||||
sleep(3);
|
||||
} else {
|
||||
fail("ERROR: Xen guest $CONFIG{'hostname'} appears to be running.\nAborting.\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logprint("The ZFS volume already exists. Aborting.\n");
|
||||
logprint("Specify '--force' to delete and recreate\n");
|
||||
$CONFIG{'FAIL'} = 2;
|
||||
exit 127;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $partition (@PARTITIONS)
|
||||
{
|
||||
my $disk = $CONFIG{ 'hostname' } . '-' . $partition->{ 'name' };
|
||||
my $zfs_disk = "/dev/$CONFIG{'zpool'}/$disk";
|
||||
my $zfs_vol = "$CONFIG{'zpool'}/$disk";
|
||||
|
||||
#
|
||||
# Save the image path to the partitions array
|
||||
#
|
||||
$partition->{ 'imagetype' } = 'phy:';
|
||||
$partition->{ 'image' } = $zfs_disk;
|
||||
|
||||
#
|
||||
# The commands to create the volume.
|
||||
#
|
||||
my $disk_cmd =
|
||||
"zfs create ".
|
||||
($CONFIG{'image'} eq 'sparse' ? '-s' : '').
|
||||
" -V $partition->{'size'} $zfs_vol";
|
||||
|
||||
#
|
||||
# Create the volume
|
||||
#
|
||||
runCommand($disk_cmd, \%CONFIG);
|
||||
sleep(2);
|
||||
|
||||
#
|
||||
# Make sure that worked.
|
||||
#
|
||||
if ( !-e "$zfs_disk" )
|
||||
{
|
||||
logprint(
|
||||
"The ZFS volume creation failed to create $zfs_disk.\n"
|
||||
);
|
||||
logprint("aborting\n");
|
||||
$CONFIG{'FAIL'} = 1;
|
||||
exit 127;
|
||||
}
|
||||
|
||||
#
|
||||
# Finally create the filesystem / swap
|
||||
#
|
||||
if ( $partition->{ 'type' } eq 'swap' )
|
||||
{
|
||||
createSwap($zfs_disk);
|
||||
}
|
||||
else
|
||||
{
|
||||
createFilesystem( $zfs_disk, $partition->{ 'type' } );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
=begin doc
|
||||
|
||||
This function is responsible for creating two new logical volumes within
|
||||
@@ -3422,6 +3631,10 @@ sub mountImage
|
||||
{
|
||||
$mount_cmd = "mount $mount_type $image $mountpoint";
|
||||
}
|
||||
elsif ( $CONFIG{ 'zpool' } )
|
||||
{
|
||||
$mount_cmd = "mount $mount_type $image $mountpoint";
|
||||
}
|
||||
else
|
||||
{
|
||||
$mount_cmd = "mount $mount_type -o loop $image $mountpoint";
|
||||
@@ -4282,12 +4495,15 @@ END
|
||||
$option = "--evms=$CONFIG{'evms'}"
|
||||
} elsif ($CONFIG{ 'dir' }) {
|
||||
$option = "--dir=$CONFIG{'dir'}"
|
||||
} elsif ($CONFIG{ 'zpool' }) {
|
||||
$option = "--zpool=$CONFIG{'zpool'}"
|
||||
}
|
||||
|
||||
|
||||
if ($option) {
|
||||
runCommand("xen-delete-image $option --hostname=$CONFIG{'hostname'}", \%CONFIG);
|
||||
} else {
|
||||
die "Assertion that either --dir, --lvm, or --dir are given".
|
||||
die "Assertion that either --dir, --lvm, --dir or --zpool are given".
|
||||
" failed.\nThis is probably a bug, please report it.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
# store version number away.
|
||||
|
||||
@@ -24,6 +24,7 @@ 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.
|
||||
@@ -51,6 +52,9 @@ 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.
|
||||
|
||||
@@ -163,7 +167,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
#
|
||||
@@ -204,12 +208,12 @@ checkArguments();
|
||||
#
|
||||
if ( ( !$CONFIG{ 'test' } ) && ( $EFFECTIVE_USER_ID != 0 ) )
|
||||
{
|
||||
print <<E_O_ROOT;
|
||||
print <<EOROOT;
|
||||
|
||||
This script is not running with root privileges, so the configuration
|
||||
file(s) beneath /etc/xen will not be removed.
|
||||
|
||||
E_O_ROOT
|
||||
EOROOT
|
||||
|
||||
exit 127;
|
||||
}
|
||||
@@ -265,12 +269,25 @@ 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", \$CONFIG{ 'dir' },
|
||||
GetOptions( "dir=s", \$install{ 'dir' },
|
||||
"dry-run", \$CONFIG{ 'dry-run' },
|
||||
"lvm=s", \$CONFIG{ 'lvm' },
|
||||
"evms=s", \$CONFIG{ 'evms' },
|
||||
"lvm=s", \$install{ 'lvm' },
|
||||
"evms=s", \$install{ 'evms' },
|
||||
"zpool=s", \$install{ 'zpool' },
|
||||
"extension:s", \$CONFIG{ 'extension' },
|
||||
"hostname=s@", \$CONFIG{ 'hostname' },
|
||||
"test", \$CONFIG{ 'test' },
|
||||
@@ -281,6 +298,39 @@ sub parseCommandLineArguments
|
||||
"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;
|
||||
|
||||
@@ -309,7 +359,7 @@ sub checkArguments
|
||||
#
|
||||
# When testing we only care about loopback images, not disk images.
|
||||
#
|
||||
if ( $CONFIG{ 'test' } and ( $CONFIG{ 'lvm' } or $CONFIG{ 'evms' } ))
|
||||
if ( $CONFIG{ 'test' } and ( $CONFIG{ 'lvm' } or $CONFIG{ 'evms' } or $CONFIG{ 'zpool' } ))
|
||||
{
|
||||
print "Error: --test only works with --dir.\n";
|
||||
exit 1;
|
||||
@@ -319,7 +369,7 @@ sub checkArguments
|
||||
# Make sure we got one and only one installation method.
|
||||
#
|
||||
my $count = 0;
|
||||
foreach my $type (qw/dir lvm evms/)
|
||||
foreach my $type (qw/dir lvm evms zpool/)
|
||||
{
|
||||
$count += 1 if defined( $CONFIG{ $type } );
|
||||
}
|
||||
@@ -334,6 +384,7 @@ sub checkArguments
|
||||
print " --dir\n";
|
||||
print " --evms\n";
|
||||
print " --lvm\n";
|
||||
print " --zpool\n";
|
||||
exit 2;
|
||||
}
|
||||
}
|
||||
@@ -478,6 +529,37 @@ sub deleteXenImage
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -106,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
#
|
||||
|
||||
@@ -113,7 +113,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
#
|
||||
@@ -149,13 +149,13 @@ checkArguments();
|
||||
#
|
||||
if ( $EFFECTIVE_USER_ID != 0 )
|
||||
{
|
||||
print <<E_O_ROOT;
|
||||
print <<EOROOT;
|
||||
|
||||
This script is not running with root privileges.
|
||||
|
||||
root privileges are required to successfully mount the disk image(s).
|
||||
|
||||
E_O_ROOT
|
||||
EOROOT
|
||||
|
||||
exit;
|
||||
}
|
||||
@@ -344,15 +344,52 @@ 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", \$CONFIG{ 'dir' },
|
||||
"lvm=s", \$CONFIG{ 'lvm' },
|
||||
"evms=s", \$CONFIG{ 'evms' },
|
||||
GetOptions( "dir=s", \$install{ 'dir' },
|
||||
"lvm=s", \$install{ 'lvm' },
|
||||
"evms=s", \$install{ '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;
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ $CONFIG{ 'extension' } = '.cfg';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ sub checkArguments
|
||||
|
||||
if ( !-d $dir )
|
||||
{
|
||||
print <<E_OR;
|
||||
print <<EOR;
|
||||
|
||||
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 +231,7 @@ sub checkArguments
|
||||
We\'d expect the hook directory to be : $dir
|
||||
|
||||
Aborting.
|
||||
E_OR
|
||||
EOR
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,9 @@ mirror for DomUs on Debian and Ubuntu Dom0s.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
--suite Show suite
|
||||
--mirror Show mirror
|
||||
--suite Show suite
|
||||
--mirror Show mirror
|
||||
--sources-list=<file> Parse this file as sources.list
|
||||
|
||||
Shows both if no parameter is given.
|
||||
|
||||
@@ -52,9 +53,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 (httpredir.debian.org
|
||||
# Which mirrors to use if everything else fails (deb.debian.org
|
||||
# redirects to a working mirror nearby)
|
||||
my %fallback_mirror = ( Debian => 'http://httpredir.debian.org/debian/',
|
||||
my %fallback_mirror = ( Debian => 'http://deb.debian.org/debian/',
|
||||
Ubuntu => 'http://archive.ubuntu.com/ubuntu/' );
|
||||
|
||||
# Which suite to use if everything else fails. For Debian "stable"
|
||||
@@ -62,7 +63,7 @@ my %fallback_mirror = ( Debian => 'http://httpredir.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 => 'lucid' );
|
||||
Ubuntu => 'jammy' );
|
||||
|
||||
# Where to look for the sources.list to parse
|
||||
my @sources_list_files = ( '/etc/apt/sources.list',
|
||||
@@ -79,7 +80,7 @@ use strict;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
# Init
|
||||
my $mirror = '';
|
||||
@@ -92,11 +93,13 @@ 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) {
|
||||
@@ -107,6 +110,10 @@ if ($want_manual) {
|
||||
pod2usage( -verbose => 2 );
|
||||
}
|
||||
|
||||
if (defined $sources_list) {
|
||||
@sources_list_files = ($sources_list);
|
||||
}
|
||||
|
||||
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.
|
||||
@@ -136,7 +143,7 @@ all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
|
||||
# Skip updates, backports, volatile or security mirror.
|
||||
next if $source_components[2] !~ /^[a-z]+$/;
|
||||
|
||||
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
|
||||
if ($source_components[1] =~ m(/debian/?$|/ubuntu(-ports)?/?$)) {
|
||||
# Seems a typical mirror. Let's use that one
|
||||
|
||||
$mirror = $source_components[1];
|
||||
|
||||
@@ -113,7 +113,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.7';
|
||||
my $RELEASE = '4.9.2';
|
||||
|
||||
|
||||
#
|
||||
@@ -414,7 +414,7 @@ sub checkArguments
|
||||
|
||||
if ( !-d $dir )
|
||||
{
|
||||
print <<E_OR;
|
||||
print <<EOR;
|
||||
|
||||
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 +424,7 @@ sub checkArguments
|
||||
We would expect the hook directory to be $dir.
|
||||
|
||||
Aborting.
|
||||
E_OR
|
||||
EOR
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
||||
15
debian/NEWS
vendored
15
debian/NEWS
vendored
@@ -1,3 +1,18 @@
|
||||
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
|
||||
|
||||
19
debian/README.Debian
vendored
19
debian/README.Debian
vendored
@@ -1,8 +1,23 @@
|
||||
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.
|
||||
@@ -15,7 +30,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
|
||||
|
||||
147
debian/changelog
vendored
147
debian/changelog
vendored
@@ -1,3 +1,143 @@
|
||||
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
|
||||
@@ -11,7 +151,7 @@ xen-tools (4.7-1) unstable; urgency=medium
|
||||
+ 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: #776487)
|
||||
(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!
|
||||
@@ -920,7 +1060,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> Thur, 29 Jun 2006 10:31:23 +0000
|
||||
-- Steve Kemp <skx@debian.org> Thu, 29 Jun 2006 10:31:23 +0000
|
||||
|
||||
xen-tools (2.1-1) unstable; urgency=high
|
||||
|
||||
@@ -934,7 +1074,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> Thur, 23 Jun 2006 10:08:32 +0000
|
||||
-- Steve Kemp <skx@debian.org> Thu, 23 Jun 2006 10:08:32 +0000
|
||||
|
||||
xen-tools (2.0-1) unstable; urgency=low
|
||||
|
||||
@@ -1065,4 +1205,3 @@ xen-tools (0.4-1) unstable; urgency=low
|
||||
* Initial release (Closes: #344081)
|
||||
|
||||
-- Radu Spineanu <radu@debian.org> Tue, 20 Dec 2005 02:21:05 +0200
|
||||
|
||||
|
||||
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
9
|
||||
49
debian/control
vendored
49
debian/control
vendored
@@ -1,8 +1,8 @@
|
||||
Source: xen-tools
|
||||
Section: utils
|
||||
Priority: extra
|
||||
Priority: optional
|
||||
Maintainer: Axel Beckert <abe@debian.org>
|
||||
Build-Depends: debhelper (>= 9~),
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
devscripts,
|
||||
git,
|
||||
libdata-validate-domain-perl,
|
||||
@@ -13,15 +13,17 @@ Build-Depends: debhelper (>= 9~),
|
||||
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
|
||||
Standards-Version: 3.9.8
|
||||
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
|
||||
Testsuite: autopkgtest
|
||||
Rules-Requires-Root: no
|
||||
|
||||
Package: xen-tools
|
||||
Architecture: all
|
||||
@@ -35,19 +37,23 @@ Depends: debootstrap | cdebootstrap,
|
||||
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-archive-keyring,
|
||||
ubuntu-keyring | ubuntu-archive-keyring,
|
||||
xen-hypervisor,
|
||||
xen-utils
|
||||
Suggests: btrfs-tools,
|
||||
Suggests: btrfs-progs | btrfs-tools,
|
||||
cfengine2,
|
||||
grub-xen-host,
|
||||
reiserfsprogs,
|
||||
xfsprogs
|
||||
Description: Tools to manage Xen virtual servers
|
||||
@@ -64,9 +70,12 @@ Description: Tools to manage Xen virtual servers
|
||||
* Debian 6.0 Squeeze
|
||||
* Debian 7 Wheezy
|
||||
* Debian 8 Jessie
|
||||
* Debian 9 Stretch (under development)
|
||||
* Debian 10 Buster (future release name)
|
||||
* Debian 11 Bullseye (future release name)
|
||||
* 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
|
||||
@@ -90,6 +99,24 @@ Description: Tools to manage Xen virtual servers
|
||||
* Ubuntu 15.10 Wily Werewolf
|
||||
* Ubuntu 16.04 Xenial Xerus (LTS)
|
||||
* Ubuntu 16.10 Yakkety Yak
|
||||
* Ubuntu 17.04 Zesty Zapus (preliminary support, under development)
|
||||
* 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.
|
||||
|
||||
4
debian/rules
vendored
4
debian/rules
vendored
@@ -6,7 +6,9 @@
|
||||
dh $@
|
||||
|
||||
override_dh_auto_test:
|
||||
make non-author-test
|
||||
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS) $(DEB_BUILD_PROFILES)))
|
||||
$(MAKE) non-author-test
|
||||
endif
|
||||
|
||||
override_dh_installchangelogs:
|
||||
dh_installchangelogs NEWS.markdown
|
||||
|
||||
2
debian/triggers
vendored
2
debian/triggers
vendored
@@ -1 +1 @@
|
||||
activate update-initramfs
|
||||
activate-noawait update-initramfs
|
||||
|
||||
12
debian/upstream/metadata
vendored
Normal file
12
debian/upstream/metadata
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
%YAML 1.1
|
||||
---
|
||||
# https://wiki.debian.org/UpstreamMetadata
|
||||
Bug-Database: https://github.com/xen-tools/xen-tools/issues
|
||||
Bug-Submit: https://github.com/xen-tools/xen-tools/issues/new
|
||||
Changelog: https://github.com/xen-tools/xen-tools/blob/master/NEWS.markdown
|
||||
Contact: mailto:xen-tools-discuss@xen-tools.org
|
||||
Security-Contact: mailto:abe@debian.org
|
||||
Name: Xen-Tools
|
||||
Homepage: https://xen-tools.org/
|
||||
Repository: https://github.com/xen-tools/xen-tools.git
|
||||
Repository-Browse: https://github.com/xen-tools/xen-tools
|
||||
360
debian/upstream/signing-key.asc
vendored
360
debian/upstream/signing-key.asc
vendored
@@ -1,5 +1,4 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQINBEpaZ7ABEADMyzD1duYFiMgQpGOBPUkeCoSYOLIVk9ry+fwIkyiyvVZYBWuh
|
||||
PtEdb+NLOPj/zfUFcoshfhm9bdCTlId1rger34/gOBN9r9NbawfiaUuOhxVzasrX
|
||||
@@ -12,136 +11,231 @@ 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
|
||||
+XwhySae
|
||||
=CO5C
|
||||
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
|
||||
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
|
||||
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
|
||||
=XJH8
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
2
debian/watch
vendored
2
debian/watch
vendored
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# uscan version number - not the version of the software.
|
||||
#
|
||||
version=3
|
||||
version=4
|
||||
|
||||
|
||||
#
|
||||
|
||||
@@ -6,28 +6,33 @@
|
||||
#
|
||||
# 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
|
||||
sarge = debian eol dont-test
|
||||
etch = debian eol
|
||||
lenny = debian eol
|
||||
squeeze = debian eol default-keyring
|
||||
wheezy = debian
|
||||
jessie = debian
|
||||
stretch = debian
|
||||
buster = debian dont-test
|
||||
bullseye = debian dont-test
|
||||
sid = debian
|
||||
wheezy = debian eol
|
||||
jessie = debian eol
|
||||
stretch = debian pygrub
|
||||
buster = debian pygrub
|
||||
bullseye = debian pygrub
|
||||
bookworm = debian pygrub
|
||||
trixie = debian pygrub dont-test
|
||||
forky = debian pygrub dont-test
|
||||
sid = debian pygrub
|
||||
|
||||
testing = debian
|
||||
testing = debian pygrub
|
||||
oldoldstable = debian dont-test
|
||||
oldstable = debian
|
||||
stable = debian
|
||||
unstable = debian
|
||||
oldstable = debian pygrub
|
||||
stable = debian pygrub
|
||||
unstable = debian pygrub
|
||||
|
||||
# dapper and edgy currently need manual adjustments in debootstrap's
|
||||
# configuration, see #659360
|
||||
dapper = ubuntu eol dont-test
|
||||
edgy = ubuntu eol dont-test
|
||||
# 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
|
||||
@@ -38,7 +43,7 @@ lucid = ubuntu eol pygrub
|
||||
maverick = ubuntu eol pygrub
|
||||
natty = ubuntu eol pygrub
|
||||
oneiric = ubuntu eol pygrub
|
||||
precise = ubuntu pygrub
|
||||
precise = ubuntu eol pygrub ubuntu-archive-removed-keys.gpg
|
||||
quantal = ubuntu eol pygrub
|
||||
raring = ubuntu eol pygrub
|
||||
saucy = ubuntu eol pygrub
|
||||
@@ -47,7 +52,19 @@ utopic = ubuntu eol pygrub
|
||||
vivid = ubuntu eol pygrub
|
||||
wily = ubuntu eol pygrub
|
||||
xenial = ubuntu pygrub
|
||||
yakkety = ubuntu pygrub
|
||||
zesty = 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 pygrub
|
||||
lunar = ubuntu pygrub dont-test
|
||||
|
||||
devel = ubuntu pygrub
|
||||
devel = ubuntu pygrub dont-test
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# xen-tools default mirror configuration file
|
||||
|
||||
debian = http://httpredir.debian.org/debian
|
||||
debian_archive = http://httpredir.debian.org/debian-archive/debian
|
||||
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
|
||||
|
||||
@@ -54,6 +54,14 @@
|
||||
##
|
||||
# lvm = vg0
|
||||
|
||||
#
|
||||
##
|
||||
#
|
||||
# If you have ZFS available and wish to use it then you may specify a
|
||||
# ZFS pool name here instead
|
||||
#
|
||||
##
|
||||
# zpool = xenpool0
|
||||
|
||||
#
|
||||
##
|
||||
|
||||
15
etc/xm.tmpl
15
etc/xm.tmpl
@@ -20,20 +20,7 @@
|
||||
{
|
||||
if ( $pygrub )
|
||||
{
|
||||
my $pygrub_bin = '';
|
||||
foreach my $pygrub_path (reverse glob('/usr/lib/xen-default/bin/pygrub
|
||||
/usr/lib/xen-*/bin/pygrub
|
||||
/usr/*bin/pygrub
|
||||
/usr/local/bin/pygrub')) {
|
||||
if (-x $pygrub_path) {
|
||||
$pygrub_bin = $pygrub_path;
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
die "pygrub not found" unless $pygrub_bin;
|
||||
|
||||
$OUT .= "bootloader = '$pygrub_bin'\n";
|
||||
$OUT .= "bootloader = 'pygrub'\n";
|
||||
}
|
||||
}
|
||||
vcpus = '{$vcpus}'
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
exec 2>&1 | tee xen-tools-release-testing.log
|
||||
exec 2>&1
|
||||
exec > >( tee xen-tools-release-testing-$(date -Iseconds).log )
|
||||
|
||||
DISTRIBUTIONS=$(awk '!/^#|^$|dont-test/ {print $1}' /etc/xen-tools/distributions.conf)
|
||||
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
|
||||
@@ -18,7 +21,30 @@ 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
|
||||
|
||||
1
hooks/artful/01-disable-daemons
Symbolic link
1
hooks/artful/01-disable-daemons
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/01-disable-daemons
|
||||
1
hooks/artful/05-shadowconfig-on
Symbolic link
1
hooks/artful/05-shadowconfig-on
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/05-shadowconfig-on
|
||||
1
hooks/artful/15-disable-hwclock
Symbolic link
1
hooks/artful/15-disable-hwclock
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/15-disable-hwclock
|
||||
1
hooks/artful/20-setup-apt
Symbolic link
1
hooks/artful/20-setup-apt
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/20-setup-apt
|
||||
1
hooks/artful/25-generate-locale
Symbolic link
1
hooks/artful/25-generate-locale
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/25-generate-locale
|
||||
1
hooks/artful/30-disable-gettys
Symbolic link
1
hooks/artful/30-disable-gettys
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/30-disable-gettys
|
||||
1
hooks/artful/35-setup-users
Symbolic link
1
hooks/artful/35-setup-users
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/35-setup-users
|
||||
147
hooks/artful/40-setup-networking-deb-netplan
Executable file
147
hooks/artful/40-setup-networking-deb-netplan
Executable file
@@ -0,0 +1,147 @@
|
||||
#!/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
|
||||
1
hooks/artful/50-setup-hostname
Symbolic link
1
hooks/artful/50-setup-hostname
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/50-setup-hostname-deb
|
||||
1
hooks/artful/60-copy-host-files
Symbolic link
1
hooks/artful/60-copy-host-files
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/60-copy-host-files
|
||||
1
hooks/artful/65-copy-user-files
Symbolic link
1
hooks/artful/65-copy-user-files
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/65-copy-user-files
|
||||
1
hooks/artful/70-install-ssh
Symbolic link
1
hooks/artful/70-install-ssh
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/70-install-ssh-deb
|
||||
1
hooks/artful/75-fixup-securetty
Symbolic link
1
hooks/artful/75-fixup-securetty
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/75-fixup-securetty
|
||||
1
hooks/artful/80-install-kernel-ubuntu
Symbolic link
1
hooks/artful/80-install-kernel-ubuntu
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/80-install-kernel-ubuntu
|
||||
1
hooks/artful/80-install-modules
Symbolic link
1
hooks/artful/80-install-modules
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/80-install-modules-deb
|
||||
1
hooks/artful/81-install-modules-init-tools
Symbolic link
1
hooks/artful/81-install-modules-init-tools
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/81-install-modules-init-tools
|
||||
1
hooks/artful/82-install-grub-legacy
Symbolic link
1
hooks/artful/82-install-grub-legacy
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/82-install-grub-legacy
|
||||
1
hooks/artful/90-make-fstab
Symbolic link
1
hooks/artful/90-make-fstab
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/90-make-fstab
|
||||
1
hooks/artful/99-clean-image
Symbolic link
1
hooks/artful/99-clean-image
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/99-clean-image-deb
|
||||
1
hooks/artful/99-enable-daemons
Symbolic link
1
hooks/artful/99-enable-daemons
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/99-enable-daemons
|
||||
@@ -96,7 +96,7 @@ installDebianPackageAndRecommends ()
|
||||
#
|
||||
# Install the packages
|
||||
#
|
||||
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes install "$@"
|
||||
DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes install "$@" 2>&1 | sed --expression="s/\rExtracting templates from packages: [0-9]\+%//g;s/(Reading database ... \([0-9]\+%\)\?\r//g"
|
||||
|
||||
#
|
||||
# Remove the policy-rc.d script.
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copy files from a 'skel' directory, if present, into the
|
||||
# new images
|
||||
# Copy some specific files from host nachine into the new images
|
||||
#
|
||||
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ if [ -d /etc/xen-tools/skel ]; then
|
||||
|
||||
else
|
||||
|
||||
logMessage skel directory, /etc/xen-tools/skell, not present ignoring.
|
||||
logMessage skel directory, /etc/xen-tools/skel, not present ignoring.
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@@ -40,7 +40,11 @@ fi
|
||||
if [ ! -e ${prefix}/boot/grub/default ]; then
|
||||
echo default > ${prefix}/boot/grub/default
|
||||
fi
|
||||
mount -o bind /proc ${prefix}/proc
|
||||
mount -o bind /dev ${prefix}/dev
|
||||
chroot ${prefix} /usr/sbin/update-grub
|
||||
umount ${prefix}/proc
|
||||
umount ${prefix}/dev
|
||||
|
||||
else
|
||||
logMessage "pygrub not set, skipping grub-legacy installation"
|
||||
|
||||
@@ -66,23 +66,51 @@ if ( test "${dist}" "!=" "sid" && test "${dist}" "!=" "unstable" && \
|
||||
test -e /etc/apt/sources.list && \
|
||||
grep ^deb.*security -r /etc/apt/sources.list /etc/apt/sources.list.d >/dev/null 2>/dev/null ) ; then
|
||||
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates
|
||||
#
|
||||
if echo "${dist}" | egrep -q '\b(sarge|etch|lenny|squeeze|wheezy|jessie|stretch|buster)\b'; then
|
||||
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates
|
||||
#
|
||||
deb http://security.debian.org/ ${dist}/updates main contrib non-free
|
||||
deb-src http://security.debian.org/ ${dist}/updates main contrib non-free
|
||||
E_O_APT
|
||||
|
||||
else
|
||||
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates
|
||||
#
|
||||
deb http://security.debian.org/ ${dist}-security main contrib non-free
|
||||
deb-src http://security.debian.org/ ${dist}-security main contrib non-free
|
||||
E_O_APT
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates - Uncomment to enable.
|
||||
#
|
||||
|
||||
if echo "${dist}" | egrep -q '\b(sarge|etch|lenny|squeeze|wheezyjessie|stretch|buster)\b'; then
|
||||
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates - Uncomment to enable.
|
||||
#
|
||||
# deb http://security.debian.org/ ${dist}/updates main contrib non-free
|
||||
# deb-src http://security.debian.org/ ${dist}/updates main contrib non-free
|
||||
E_O_APT
|
||||
|
||||
else
|
||||
|
||||
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
|
||||
#
|
||||
# Security updates - Uncomment to enable.
|
||||
#
|
||||
# deb http://security.debian.org/ ${dist}-security main contrib non-free
|
||||
# deb-src http://security.debian.org/ ${dist}-security main contrib non-free
|
||||
E_O_APT
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
|
||||
@@ -36,12 +36,16 @@ if [ "${arch}" = "i386" ]; then
|
||||
XEN_ARCH="686"
|
||||
elif [ "${arch}" = "amd64" ]; then
|
||||
XEN_ARCH="amd64"
|
||||
elif [ "${arch}" = "arm64" ]; then
|
||||
XEN_ARCH="arm64"
|
||||
elif [ -z "${arch}" ]; then
|
||||
UNAME_ARCH=`uname -m`
|
||||
if [ "${UNAME_ARCH}" = "i686" ]; then
|
||||
XEN_ARCH="686"
|
||||
elif [ "${UNAME_ARCH}" = "x86_64" ]; then
|
||||
XEN_ARCH="amd64"
|
||||
elif [ "${UNAME_ARCH}" = "aarch64" ]; then
|
||||
XEN_ARCH="arm64"
|
||||
else
|
||||
logMessage Unknown kernel architecture ${UNAME_ARCH}.
|
||||
logMessage Please report this as bug to xen-tools-dev@xen-tools.org.
|
||||
|
||||
1
hooks/karmic/80-install-kernel-ubuntu
Symbolic link
1
hooks/karmic/80-install-kernel-ubuntu
Symbolic link
@@ -0,0 +1 @@
|
||||
../common/80-install-kernel-ubuntu
|
||||
@@ -129,7 +129,7 @@ sub xenRunning ($$)
|
||||
my $running = 0;
|
||||
|
||||
unless ($CONFIG->{'xm'}) {
|
||||
warn "Couldn't determine Xen toolstack, skipping check for running DomUs."
|
||||
warn "Couldn't determine Xen toolstack, skipping check for running DomUs.\n"
|
||||
unless $ENV{AS_INSTALLED_TESTING};
|
||||
return 0;
|
||||
}
|
||||
@@ -161,18 +161,19 @@ sub findXenToolstack
|
||||
{
|
||||
my $helper = '/usr/lib/xen-common/bin/xen-toolstack';
|
||||
|
||||
if (-x $helper) {
|
||||
my $xm = which('xm');
|
||||
my $xl = which('xl');
|
||||
|
||||
if ($xm and $xl and -x $helper) {
|
||||
my $toolstack = `$helper`;
|
||||
chomp($toolstack);
|
||||
return $toolstack if $toolstack;
|
||||
}
|
||||
|
||||
my $xm = which('xm');
|
||||
if ($xm and system("$xm list >/dev/null 2>/dev/null") == 0) {
|
||||
return $xm;
|
||||
}
|
||||
|
||||
my $xl = which('xl');
|
||||
if ($xl and system("$xl list >/dev/null 2>/dev/null") == 0) {
|
||||
return $xl;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
size=1G
|
||||
type=ext3
|
||||
mountpoint=/
|
||||
options=sync,errors=remount-ro
|
||||
options=defaults,errors=remount-ro
|
||||
|
||||
[swap]
|
||||
size=2G
|
||||
|
||||
95
t/hook-apt.t
Executable file
95
t/hook-apt.t
Executable file
@@ -0,0 +1,95 @@
|
||||
#!perl -w
|
||||
#
|
||||
# Test that the /etc/inittab file is modified as we expect.
|
||||
#
|
||||
# Steve
|
||||
# --
|
||||
#
|
||||
|
||||
use strict;
|
||||
use Test::More;
|
||||
use Test::File::Contents;
|
||||
use File::Temp;
|
||||
use File::Copy;
|
||||
use File::Path qw(make_path);
|
||||
|
||||
my $hook_dir = $ENV{AS_INSTALLED_TESTING} ? '/usr/share/xen-tools' : 'hooks';
|
||||
|
||||
foreach my $dist (qw(stretch buster bullseye bookworm sid)) {
|
||||
testHook( $dist );
|
||||
}
|
||||
|
||||
done_testing();
|
||||
|
||||
sub testHook
|
||||
{
|
||||
my ( $dist ) = ( @_ );
|
||||
my $ea = 'etc/apt';
|
||||
my $easl = "$ea/sources.list";
|
||||
my $hook = "$hook_dir/" .
|
||||
(
|
||||
$ENV{AS_INSTALLED_TESTING} ?
|
||||
$dist :
|
||||
'debian'
|
||||
) . '/20-setup-apt';
|
||||
|
||||
#
|
||||
# Create a temporary directory to use as prefix
|
||||
#
|
||||
my $dir = File::Temp::tempdir( CLEANUP => 1 );
|
||||
make_path( "$dir/$ea/apt.conf.d", { chmod => 0755 });
|
||||
make_path( "$dir/bin", { chmod => 0755 });
|
||||
my $tmphook = "$dir/bin/20-setup-apt";
|
||||
|
||||
#
|
||||
# Make sure that worked.
|
||||
#
|
||||
ok( -d $dir, "temporary directory created OK [$dist]" );
|
||||
ok( -d "$dir/bin",
|
||||
"bin inside temporary directory created OK [$dist]" );
|
||||
ok( -d "$dir/$ea",
|
||||
"$ea inside temporary directory created OK [$dist]" );
|
||||
|
||||
# Create a copy of the 20-setup-apt hook to be able to comment out
|
||||
# the chroot + apt-get update call.
|
||||
File::Copy::cp( $hook, $tmphook );
|
||||
|
||||
ok( -e "$tmphook", "hook exists in temporary directory [$dist]" );
|
||||
# File::Copy in Perl 5.10 does not copy permissions, so let's fix
|
||||
# it there and check for it elsewhere.
|
||||
if ($] < 5.011) {
|
||||
chmod(0755, $tmphook);
|
||||
} else {
|
||||
ok( -x "$tmphook", "hook is executable in temporary directory [$dist]" );
|
||||
}
|
||||
|
||||
no warnings qw(qw);
|
||||
is(system(qw(sed -e s/chroot/#chroot/ -i), $tmphook) >> 8, 0,
|
||||
"chroot call in hook could be deactivated [$dist]");
|
||||
use warnings qw(qw);
|
||||
|
||||
#
|
||||
# Set up some variables expected by the hook
|
||||
#
|
||||
$ENV{dist} = $dist;
|
||||
$ENV{mirror} = 'http://deb.debian.org/debian';
|
||||
|
||||
#
|
||||
# Call the hook
|
||||
#
|
||||
is(system($tmphook, $dir) >> 8, 0,
|
||||
"hook for $dist exited with zero return code");
|
||||
|
||||
ok( -e "$dir/$easl", "A sources.list file has been created. [$dist]" );
|
||||
if ($dist =~ /stretch|buster/) {
|
||||
file_contents_like( "$dir/$easl", qr(\b${dist}/updates\b),
|
||||
"sources.list contains $dist/updates");
|
||||
file_contents_unlike( "$dir/$easl", qr(\b${dist}-security\b),
|
||||
"sources.list doesn't contain $dist-security");
|
||||
} else {
|
||||
file_contents_like( "$dir/$easl", qr(\b${dist}-security\b),
|
||||
"sources.list contains $dist-security");
|
||||
file_contents_unlike( "$dir/$easl", qr(\b${dist}/updates\b),
|
||||
"sources.list doesn't contain $dist/updates");
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ if (which('git') and -d '.git') {
|
||||
use_ok( 'Git' );
|
||||
|
||||
# First, check that no tracked files are ignored
|
||||
my $cmd = Git::command_output_pipe('ls-files', '--ignored', '--exclude-standard');
|
||||
my $cmd = Git::command_output_pipe('ls-files', '--cached', '--ignored', '--exclude-standard');
|
||||
my $output;
|
||||
while (<$cmd>) { $output .= "--> $_" }
|
||||
close $cmd;
|
||||
|
||||
43
xt/no-tabs.t
43
xt/no-tabs.t
@@ -9,11 +9,9 @@
|
||||
|
||||
use strict;
|
||||
use File::Find;
|
||||
use Test::More;
|
||||
use Test::NoTabs;
|
||||
|
||||
# Check all Perl files
|
||||
all_perl_files_ok();
|
||||
|
||||
#
|
||||
# Find all the files beneath the current directory,
|
||||
# and call 'checkFile' with the name.
|
||||
@@ -54,25 +52,36 @@ sub checkFile
|
||||
my $isShell = 0;
|
||||
my $isPerl = 0;
|
||||
|
||||
# Read the file.
|
||||
open( INPUT, "<", $file );
|
||||
foreach my $line ( <INPUT> )
|
||||
{
|
||||
if ( ( $line =~ /\/bin\/sh/ ) ||
|
||||
( $line =~ /\/bin\/bash/ ) )
|
||||
|
||||
if ( $file =~ /\.sh$/ ) {
|
||||
$isShell = 1;
|
||||
} elsif ( $file =~ /\.(pl|pm|t)$/ ) {
|
||||
$isPerl = 1;
|
||||
} else {
|
||||
|
||||
# Read the file.
|
||||
open( INPUT, "<", $file );
|
||||
foreach my $line ( <INPUT> )
|
||||
{
|
||||
$isShell = 1;
|
||||
last;
|
||||
}
|
||||
if ( $line =~ /\/usr\/bin\/perl/ )
|
||||
{
|
||||
last;
|
||||
if ( ( $line =~ /^#! *\/bin\/sh/ ) ||
|
||||
( $line =~ /^#! *\/bin\/bash/ ) )
|
||||
{
|
||||
$isShell = 1;
|
||||
last;
|
||||
}
|
||||
if ( $line =~ /^#!.*\bperl\b/ )
|
||||
{
|
||||
$isPerl = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
close( INPUT );
|
||||
}
|
||||
close( INPUT );
|
||||
|
||||
#
|
||||
# Run check if it is a shell file.
|
||||
#
|
||||
notabs_ok( $file ) if $isShell;
|
||||
notabs_ok( $file ) if $isShell or $isPerl;
|
||||
}
|
||||
|
||||
done_testing();
|
||||
|
||||
Reference in New Issue
Block a user