Compare commits
87 Commits
release-4.
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
414e53d496 | ||
|
|
44f2d107e1 | ||
|
|
e5e555404a | ||
|
|
44062973de | ||
|
|
39e9f0f0ed | ||
|
|
debd83e38c | ||
|
|
6c09007eff | ||
|
|
ab32eaf0b9 | ||
|
|
ae7ecc4e0e | ||
|
|
8f265d933d | ||
|
|
a98c4db4e4 | ||
|
|
82f0669fe0 | ||
|
|
eb2d3fea8f | ||
|
|
dd051ad58b | ||
|
|
19295c5ec1 | ||
|
|
657b366fbf | ||
|
|
e6eba80f3c | ||
|
|
95207ed48e | ||
|
|
f368ae7cff | ||
|
|
0ec1bed1d1 | ||
|
|
bbd21369cf | ||
|
|
2527e25beb | ||
|
|
ede684baaa | ||
|
|
b7490687e2 | ||
|
|
0982fdd0f4 | ||
|
|
a39f24e754 | ||
|
|
8a623b30ba | ||
|
|
5730250725 | ||
|
|
ac04bed0f2 | ||
|
|
cf693d9e64 | ||
|
|
fc7c09596a | ||
|
|
7ebb0f41a4 | ||
|
|
624cd9fb9b | ||
|
|
0990f50fad | ||
|
|
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 | ||
|
|
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
|
||||
|
||||
6
AUTHORS
6
AUTHORS
@ -12,9 +12,6 @@ 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.
|
||||
|
||||
@ -31,6 +28,9 @@ Contributions
|
||||
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
|
||||
|
||||
|
||||
25
Makefile
25
Makefile
@ -14,7 +14,7 @@
|
||||
#
|
||||
TMPDIR ?= /tmp
|
||||
DIST_PREFIX = ${TMPDIR}
|
||||
VERSION = 4.8
|
||||
VERSION = 4.10.0
|
||||
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
|
||||
@ -184,6 +185,8 @@ install-hooks:
|
||||
-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
|
||||
@ -224,6 +227,15 @@ install-hooks:
|
||||
-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
|
||||
@ -264,6 +276,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
|
||||
@ -288,13 +301,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/
|
||||
|
||||
|
||||
#
|
||||
@ -302,9 +317,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
|
||||
|
||||
|
||||
133
NEWS.markdown
133
NEWS.markdown
@ -1,3 +1,136 @@
|
||||
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)
|
||||
===================================
|
||||
|
||||
|
||||
@ -39,9 +39,11 @@ known to work reliably, i.e.:
|
||||
* Wheezy 7 (Dom0 no more tested) [¹](#1)
|
||||
* Jessie 8
|
||||
* Stretch 9
|
||||
* Buster 10 (under development)
|
||||
* Bullseye 11 (knows about this future release name)
|
||||
* Bookworm 12 (knows about this future release name)
|
||||
* 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
|
||||
@ -74,7 +76,11 @@ known to work reliably, i.e.:
|
||||
* Artful Aardvark 17.10
|
||||
* Bionic Beaver 18.04 (LTS)
|
||||
* Cosmic Cuttlefish 18.10
|
||||
* Disco Dingo 19.04 (under development)
|
||||
* Disco Dingo 19.04
|
||||
* Eoan Ermine 19.10
|
||||
* Focal Fossa 20.04 (LTS)
|
||||
* Groovy Gorilla 20.10
|
||||
* Hirsute Hippo 21.04 (under development)
|
||||
|
||||
### Footnotes
|
||||
|
||||
@ -83,8 +89,9 @@ known to work reliably, i.e.:
|
||||
<dt><a id="1" name="1">¹</a></dt><dd>
|
||||
|
||||
Installation with `xen-create-image` and updating with
|
||||
`xen-update-image` might fail with newer kernels/distributions as Dom0
|
||||
without `vsyscall=emulate` on the kernel commandline.
|
||||
`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>
|
||||
|
||||
@ -244,8 +251,8 @@ Version Numbering Scheme
|
||||
|
||||
Since release 4.4, the version numbering scheme of xen-tools tries to
|
||||
comply with the [Semantic Versioning](http://semver.org/)
|
||||
specification, with the only exception that trailing zeroes are
|
||||
omitted.
|
||||
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.
|
||||
|
||||
@ -59,6 +59,12 @@ Bugs to fix and features to add for 5.0
|
||||
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
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
@ -215,6 +215,8 @@ and EVMS EXAMPLE.
|
||||
Set the number of vcpus that the new instance will
|
||||
have instead of the default value of "1".
|
||||
|
||||
--type=type Specify the VM type to use for the new guest.
|
||||
Valid choices are 'pv' (default), 'pvh', or 'hvm'.
|
||||
|
||||
|
||||
Installation options:
|
||||
@ -444,7 +446,7 @@ Create a Xen configuration file in so that xm/xl can start the new domain.
|
||||
memory = 128Mb # Memory size
|
||||
maxmem = 512Mb # Memory size
|
||||
swap = 128Mb # Swap size
|
||||
fs = ext3 # use EXT3 filesystems
|
||||
fs = ext4 # use EXT4 filesystems
|
||||
dist = stable # Default distribution to install.
|
||||
|
||||
#
|
||||
@ -872,7 +874,7 @@ my $MOUNT_POINT = undef;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
#
|
||||
@ -1333,7 +1335,7 @@ sub setupDefaultOptions
|
||||
$CONFIG{ 'arch' } =
|
||||
which('dpkg') ? `dpkg --print-architecture` : '';
|
||||
chomp($CONFIG{ 'arch' });
|
||||
$CONFIG{ 'fs' } = 'ext3';
|
||||
$CONFIG{ 'fs' } = 'ext4';
|
||||
$CONFIG{ 'force' } = 0;
|
||||
$CONFIG{ 'install' } = 1;
|
||||
$CONFIG{ 'hooks' } = 1;
|
||||
@ -1345,6 +1347,7 @@ sub setupDefaultOptions
|
||||
$CONFIG{ 'ipfile' } = '/etc/xen-tools/ips.txt';
|
||||
$CONFIG{ 'output' } = '/etc/xen';
|
||||
$CONFIG{ 'extension' } = '.cfg';
|
||||
$CONFIG{ 'type' } = 'pv'; # Arno: as per man xl.cfg
|
||||
|
||||
#
|
||||
# Installation method defaults to "debootstrap" using
|
||||
@ -1490,6 +1493,10 @@ sub checkOption
|
||||
vlan => {
|
||||
check => qr/^([1-9][0-9]{0,2}|10[01][0-9]|102[0-4])$/i,
|
||||
message => "must be a number between 1 and 1024.\n",
|
||||
}, # Arno
|
||||
guestType => {
|
||||
check => qr/^(pv|pvh|hvm)$/, # man xl.cfg
|
||||
message => "must be 'pv', 'pvh' or 'hvm'.\n",
|
||||
},
|
||||
);
|
||||
|
||||
@ -1529,6 +1536,7 @@ sub checkOption
|
||||
hash_method => 'hashMethod',
|
||||
apt_proxy => 'uri',
|
||||
vlan => 'vlan',
|
||||
type => 'guestType', # Arno
|
||||
);
|
||||
|
||||
# If given option does not exists in optionsTypes,
|
||||
@ -1685,6 +1693,7 @@ sub parseCommandLineArguments
|
||||
"extension:s", \&checkOption,
|
||||
"dontformat", \&checkOption,
|
||||
"lvm_thin=s", \$CONFIG{ 'lvm_thin' },
|
||||
"type:s", \&checkOption, # Arno
|
||||
|
||||
# Help options
|
||||
"debug!", \$CONFIG{ 'debug' },
|
||||
@ -2719,6 +2728,7 @@ sub showSummary
|
||||
}
|
||||
}
|
||||
|
||||
logprint("Guest type : $CONFIG{'type'}\n");
|
||||
logprint("Image type : $CONFIG{'image'}\n");
|
||||
logprint("Memory size : $CONFIG{'memory'}\n");
|
||||
|
||||
@ -3224,12 +3234,11 @@ sub createLVMBits
|
||||
# The commands to create the volume.
|
||||
#
|
||||
my $disk_cmd =
|
||||
"lvcreate $CONFIG{'lvm'} ".
|
||||
($lvm_needs_yes ? '--yes' : '').
|
||||
' '.
|
||||
"lvcreate ".
|
||||
($lvm_needs_yes ? '--yes ' : '').
|
||||
($CONFIG{ 'lvm_thin' } ?
|
||||
"-T $CONFIG{'lvm'}/$CONFIG{'lvm_thin'} -V" :
|
||||
'-L').
|
||||
"$CONFIG{'lvm'} -L").
|
||||
" $partition->{'size'} -n $disk";
|
||||
|
||||
#
|
||||
|
||||
@ -121,7 +121,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
# store version number away.
|
||||
|
||||
@ -167,7 +167,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
#
|
||||
@ -269,13 +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' },
|
||||
"zpool=s", \$CONFIG{ 'zpool' },
|
||||
"lvm=s", \$install{ 'lvm' },
|
||||
"evms=s", \$install{ 'evms' },
|
||||
"zpool=s", \$install{ 'zpool' },
|
||||
"extension:s", \$CONFIG{ 'extension' },
|
||||
"hostname=s@", \$CONFIG{ 'hostname' },
|
||||
"test", \$CONFIG{ 'test' },
|
||||
@ -286,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;
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@ $CONFIG{ 'extension' } = '.cfg';
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
|
||||
|
||||
@ -111,7 +111,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
#
|
||||
|
||||
@ -113,7 +113,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
#
|
||||
@ -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.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
|
||||
|
||||
@ -100,7 +100,7 @@ my %CONFIG;
|
||||
#
|
||||
# Release number.
|
||||
#
|
||||
my $RELEASE = '4.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -62,7 +63,7 @@ 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 => 'bionic' );
|
||||
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.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
# 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.8';
|
||||
my $RELEASE = '4.10.0';
|
||||
|
||||
|
||||
#
|
||||
|
||||
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
|
||||
|
||||
86
debian/changelog
vendored
86
debian/changelog
vendored
@ -1,3 +1,85 @@
|
||||
xen-tools (4.10.0-1) UNRELEASED; urgency=medium
|
||||
|
||||
* 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.)
|
||||
|
||||
-- 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.
|
||||
@ -989,7 +1071,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
|
||||
|
||||
@ -1003,7 +1085,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
|
||||
|
||||
|
||||
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
||||
10
|
||||
36
debian/control
vendored
36
debian/control
vendored
@ -2,7 +2,7 @@ Source: xen-tools
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Axel Beckert <abe@debian.org>
|
||||
Build-Depends: debhelper (>= 10~),
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
devscripts,
|
||||
git,
|
||||
libdata-validate-domain-perl,
|
||||
@ -13,11 +13,13 @@ Build-Depends: debhelper (>= 10~),
|
||||
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: 4.3.0
|
||||
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
|
||||
@ -35,11 +37,13 @@ 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,
|
||||
@ -47,7 +51,7 @@ Recommends: debian-archive-keyring,
|
||||
ubuntu-keyring | ubuntu-archive-keyring,
|
||||
xen-hypervisor,
|
||||
xen-utils
|
||||
Suggests: btrfs-progs | btrfs-tools,
|
||||
Suggests: btrfs-progs,
|
||||
cfengine2,
|
||||
grub-xen-host,
|
||||
reiserfsprogs,
|
||||
@ -67,9 +71,11 @@ Description: Tools to manage Xen virtual servers
|
||||
* Debian 7 Wheezy
|
||||
* Debian 8 Jessie
|
||||
* Debian 9 Stretch
|
||||
* Debian 10 Buster (under development)
|
||||
* Debian 11 Bullseye (future release name)
|
||||
* Debian 12 Bookworm (future release name)
|
||||
* Debian 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
|
||||
@ -97,6 +103,20 @@ Description: Tools to manage Xen virtual servers
|
||||
* Ubuntu 17.10 Artful Aardvark
|
||||
* Ubuntu 18.04 Bionic Beaver (LTS)
|
||||
* Ubuntu 18.10 Cosmic Cuttlefish
|
||||
* Ubuntu 19.04 Disco Dingo (preliminary support, under development)
|
||||
* 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.
|
||||
|
||||
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
|
||||
tCJBeGVsIEJlY2tlcnQgPGFiZUBkZXV4Y2hldmF1eC5vcmc+iQJWBBMBCABAAhsD
|
||||
BAsJCAcFFQoJCAsFFgIDAQACHgECF4ACGQEWIQQlF7ckxfbKmVMpbmEv+c1ZYSYW
|
||||
tQUCX9yVQwUJHugvEwAKCRAv+c1ZYSYWtYVfD/9PPQrNvxG7xjXxyjtoNWi2NAJ5
|
||||
YaGqUATeoX6C9iie4SXhpfDtKxLY29RY3MM149/n+SIHIGAYUQpSDMBXIHDN/PBb
|
||||
5xLqXsbqN7NwTdr4/FCxZ/JueLr3VXlLt/auUbaRHDokUAF01auoHbycrgISMxlu
|
||||
edVCUkPCcF35SFu/uJ25YYpPs/MwzcjjLJs9Bg2eR5wwNTS0hvzhjO7FmE83wfvr
|
||||
kq5GDaRxJm7crfdzXhcIMHIA8mH3z1EqiAYFxKWCrFys5GMBfyQ5mrdmIlNDtAnF
|
||||
ot5uaUpRHpiXld8qt6530oTsUZ7zWkhZj/gdjLPUgYq/n/AW4gCRA3xp710OqboA
|
||||
ZDMmmZLMSnARxC62dj5op8pSeKVpIZzguPGeO1u2Rup4NkupVUb8HFyM/dIjCMef
|
||||
ZAlx8muQgMnf6ufj9hN0q/o4nSwhn+Be/YBw7cy7cVKaea3cZIMMzGOM41v/MAkH
|
||||
NRwYfDRVhbWFic3fnmQfyUGFK/+y3YJNF5F4hqhoeoEuN9Sxt2CZhDRvhqDFr7lF
|
||||
PIrDQQuUnLQ7OsGkglVH1p7qX97fXLOIp2Gap5ZPSFahrPrntIjKfK/Mql+aWSIb
|
||||
De34HaZVHDpdmESJKaJRtLMy71MBFFr7lWzAWVpSkg46H7/gvICre+TnXz7/VEta
|
||||
MLP4n8NOJIIs4JHxZbQuQXhlbCBCZWNrZXJ0IChFLU1haWwgKyBKYWJiZXIpIDxh
|
||||
YmVAbm9vbmUub3JnPokCUwQTAQgAPQIbAwQLCQgHBRUKCQgLBRYCAwEAAh4BAheA
|
||||
FiEEJRe3JMX2yplTKW5hL/nNWWEmFrUFAl/clUQFCR7oLxMACgkQL/nNWWEmFrUc
|
||||
2g/+Kc44OQHC1DUK+zmddxRZnaRPt/pZks4YZVweKagNzoo/mGjevGpEGC0o+40+
|
||||
JCG2kFE3teOvVoxMgJnA5g7OxkgCj+F64MhH068vmlkc+YFIHrtU7OGDZ01nPk4C
|
||||
g6Vnuwmkgz4rFw/TB3A2yhgtLBMpO0Uky+aw6N6OyfpcpWnCfTNlFrZ7TjXWzwqC
|
||||
byzyMh9Am7iZyM7GlUMv4qwft2Bc8cCKBZ0z/1KgAZDevtn+vxIyZjBmm/j30w2O
|
||||
L8r34cDFz53HSE+r5H9J/lRJvzMclx7LF1vmCPci7lakf0BlTqYV9lTaQu50o228
|
||||
dzzhpO0WmYcfEd+8RytOqXeRQ9L/tCcghLlzquh/GwWGGcW0bsUWTpeLgSE8OwUU
|
||||
j7HiAOc7h2eGxt9qGwF5+9hAXtMyc5VtzZVeChemIhqJTdSf5MI2E2T57DwbKMJM
|
||||
Zptmj7o5BR0sFhUiXVXBYYGyG3hPUiM737tX6IY6vS/5BY1ocFYDX66ApI7K+Ovf
|
||||
VljJGVHSCGwKnOzkgBA3KpRiozU6uZr+/s1GLZKGIRZE2z2X5Is3iFqVoLiXIDAM
|
||||
2Mtge0DnTkMa8df6KK6k4fK48xDb0v9zk3Y4EX/vsCm23S1zc7uel436FNSQ1CnZ
|
||||
aszqjwjJvzQclZeN0x7wdq2e0OBZ77SRBBv+rflQ8IXSUSS0KkF4ZWwgQmVja2Vy
|
||||
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
|
||||
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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
|
||||
|
||||
|
||||
#
|
||||
|
||||
@ -8,23 +8,25 @@
|
||||
# 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
|
||||
bullseye = debian dont-test
|
||||
bookwork = 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
|
||||
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
|
||||
|
||||
# Between at least debootstrap 1.0.37 and 1.0.93 (including), dapper
|
||||
# and edgy may need manual adjustments in debootstrap's configuration,
|
||||
@ -41,7 +43,7 @@ lucid = ubuntu eol pygrub
|
||||
maverick = ubuntu eol pygrub
|
||||
natty = ubuntu eol pygrub
|
||||
oneiric = ubuntu eol pygrub
|
||||
precise = ubuntu pygrub ubuntu-archive-removed-keys.gpg
|
||||
precise = ubuntu eol pygrub ubuntu-archive-removed-keys.gpg
|
||||
quantal = ubuntu eol pygrub
|
||||
raring = ubuntu eol pygrub
|
||||
saucy = ubuntu eol pygrub
|
||||
@ -52,9 +54,18 @@ wily = ubuntu eol pygrub
|
||||
xenial = ubuntu pygrub
|
||||
yakkety = ubuntu eol pygrub
|
||||
zesty = ubuntu eol pygrub ubuntu-keyring-2012-archive.gpg
|
||||
artful = ubuntu pygrub
|
||||
artful = ubuntu eol pygrub ubuntu-archive-keyring.gpg
|
||||
bionic = ubuntu pygrub
|
||||
cosmic = ubuntu pygrub
|
||||
disco = 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
|
||||
|
||||
@ -30,6 +30,7 @@ memory = '{$memory}'
|
||||
$OUT .= "maxmem = '$maxmem'\n";
|
||||
}
|
||||
}
|
||||
type = '{$type}'
|
||||
|
||||
#
|
||||
# Disk device(s).
|
||||
|
||||
@ -72,6 +72,25 @@ setupStaticNetworking ()
|
||||
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
|
||||
@ -84,7 +103,7 @@ network:
|
||||
ethernets:
|
||||
eth0:
|
||||
addresses: [${ip1}/${cidr}]
|
||||
gateway4: ${gateway}
|
||||
${gate}
|
||||
nameservers:
|
||||
addresses: [${nameserver}]
|
||||
E_O_STATIC
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user