X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=xen%2Ffixups;h=c09a5403955db390290bfd17f22f0aaa60e67632;hb=aa43f2a81adb120c1da99919c5b3523ea952d170;hp=9c9c83dd438171ef0cf9e029481e9aea0c006454;hpb=907172185deaf4d880e4ca8153933a2e90b40560;p=autopkgtest.git diff --git a/xen/fixups b/xen/fixups index 9c9c83d..c09a540 100755 --- a/xen/fixups +++ b/xen/fixups @@ -1,27 +1,41 @@ -#!/bin/sh -set -ex +#!/bin/bash +set -e +. ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig -dest=$1 -adt_host_hostname=$2 -adt_guest_hostname=$3; shift +dest=$adt_play/base echo '---fixups:' -cp xen-divert-tls-libc \ - fixups-inside \ - $dest/root/ +cp ${ADT_XENLVM_SHARE}/fixups-inside $dest/root/ + +if test -d "${adt_modules}"; then + mkdir -p $dest/lib/modules + cp -a "${adt_modules}" $dest/lib/modules/. +fi + +echo xennet >>$dest/etc/modules -mkdir -p $dest/lib/modules -cp -a /lib/modules/`uname -r`/ $dest/lib/modules/. +if ! test -f "${adt_ssh_pubkey}"; then + if [ "x${adt_ssh_pubkey}" != "x${adt_ssh_privkey}.pub" ]; then + fail "cannot generate keypair automatically because adt_ssh_privkey \`$adt_ssh_privkey' and adt_ssh_pubkey \`$adt_ssh_pubkey' do not match up in the way required by ssh-keygen ( must be .pub>" + fi + if test -f "${adt_ssh_privkey}"; then + fail "will not overwrite existing private key \`$adt_ssh_privkey' - but where is public key \`$adt_ssh_pubkey' ?" + fi + + mkdir -p /root/.ssh + ssh-keygen -N '' ${adt_ssh_keygen_args} -f "${adt_ssh_privkey}" +fi -mkdir -p /root/.ssh -id_dsa=/root/.ssh/id_dsa_adt -test -f $id_dsa || ssh-keygen -t dsa -N '' -f $id_dsa mkdir -m 02700 -p $dest/root/.ssh -cp $id_dsa.pub $dest/root/.ssh/authorized_keys +cp -- "${adt_ssh_pubkey}" $dest/root/.ssh/authorized_keys +if [ "x$adt_sshauthkeys_hook" != x ]; then + cat -- "$adt_sshauthkeys_hook" >>$dest/root/.ssh/authorized_keys +fi cat <$dest/etc/init.d/xenethtoolk #!/bin/sh +# work around checksum offload bug in Xen network bridge driver case "$1" in start) ethtool -K eth0 tx off @@ -32,7 +46,11 @@ END chmod +x $dest/etc/init.d/xenethtoolk ln -s ../init.d/xenethtoolk $dest/etc/rc2.d/S21xenethtoolk -chroot $dest root/fixups-inside "$@" "$adt_host_ipaddr" "$adt_guest_ipaddr" +chroot $dest root/fixups-inside \ + "$adt_host_hostname" "$adt_guest_hostname" \ + "$adt_host_ipaddr" "$adt_guest_ipaddr" \ + "$adt_fs_type" "$adt_normaluser" \ + "$provideswap" kh=/etc/ssh/ssh_known_hosts test ! -f $kh || cp $kh $kh.new @@ -45,6 +63,14 @@ done exec 3>&- mv $kh.new $kh +if test -f $dest/etc/udev/rules.d/*-persistent-net-generator.rules; then + rules_file="`grep '^RULES_FILE=' $dest/lib/udev/write_net_rules`" + rules_file=${rules_file#RULES_FILE=} + rules_file=${rules_file#[\'\"]} + rules_file=${rules_file%[\'\"]} + echo 'SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="'$adt_guest_macaddr'", NAME="eth0"' >"$dest/$rules_file" +fi + echo ' === adt xen fixups done. '