From 6950429fd6a7caf0b4fb12954b3f73506a4ca138 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 22 Jun 2011 21:52:57 +0000 Subject: [PATCH] integrate-distro.sh: Some beautification --- scripts/integrate-distro.sh | 53 ++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/scripts/integrate-distro.sh b/scripts/integrate-distro.sh index 5521e717..031102a3 100644 --- a/scripts/integrate-distro.sh +++ b/scripts/integrate-distro.sh @@ -5,7 +5,7 @@ arch=`uname -m` o_name=suse-11.4 cmd=install -initrd_modules="aufs via e1000 e1000e myri10ge forcedeth" +initrd_modules="aufs via-rhine e1000 e1000e myri10ge forcedeth uhci_hcd" kernel_version=2.6.37.4 umask 0022 @@ -18,6 +18,12 @@ unused_pkgs=" # -- pciutils # used by jux, should be done by grepping /proc-files +special_pkgs=" + aufs + aufs-kmp-default + rpm +" + # -- sysvinit # systemd-sysvinit boots, but doesn't work cleanly as of now @@ -100,6 +106,7 @@ payload_pkgs=" wget lukemftp openssh + bprof-run tar zip unzip rsync cpio @@ -333,17 +340,14 @@ EOT zypper_repos_update() { - zypper_repos_base _cat << EOT | grep -v "^ *#" |distro-non-oss ftp://ftp/pub/mirror/suse/distribution/11.4/repo/non-oss |update ftp://ftp/pub/mirror/suse/update/11.4 - |#jengelh ftp://ftp/pub/mirror/gwdg/pub/linux/misc/suser-jengelh/openSUSE_11.4 EOT } -zypper_repos() +zypper_repos_payload() { - zypper_repos_update _cat << EOT | grep -v "^ *#" |#ftp.jannet.de ftp://dspadm:dspasswd@ftp.jannet.de/pub/packages/linux/suse/11.4/inst-source |ftp.jannet.de ftp://dspadm:dspasswd@ftp/pub/mirror/jannet/ftp/pub/packages/linux/suse/11.4/inst-source @@ -351,18 +355,33 @@ zypper_repos() EOT } -setup_zypper_repos() +zypper_repos_special() { - zypper_repos | while read name uri; do + _cat << EOT | grep -v "^ *#" + |jengelh ftp://ftp/pub/mirror/gwdg/pub/linux/misc/suser-jengelh/openSUSE_11.4 +EOT +} + +zypper_repos() +{ + local repo + for repo in $@; do + zypper_repos_$repo + done +} + +setup_zypper_repos() +{ + zypper_repos $@ | while read name uri; do chroot $root zypper $zypper_global_opts ar $uri $name done } host_zypper() { - local repos=$1 + local repos="$1" shift - local distros=`zypper_repos_$repos | awk '{print "--plus-repo " $2 }'` + local distros=`zypper_repos $repos | awk '{print "--plus-repo " $2 }'` zypper $zypper_global_opts --root $root $distros $@ } @@ -643,6 +662,10 @@ cmd_install() set -e + [ -r "$root_password_file" ] || { + die "root password file doesn't exist, do echo -n my-secret > $root_password_file" + } + setup_root_directory setup_bind_mounts @@ -678,16 +701,20 @@ cmd_install() make_etc_hosts > $root/etc/hosts make_etc_fstab > $root/etc/fstab - host_zypper base install --auto-agree-with-licenses coreutils - host_zypper update install --auto-agree-with-licenses zypper + host_zypper "base" install --auto-agree-with-licenses coreutils + host_zypper "base update" install --auto-agree-with-licenses zypper #undo_rpmnew - setup_zypper_repos + setup_zypper_repos base update payload chroot $root zypper $zypper_global_opts refresh chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $payload_pkgs - # chroot $root zypper $zypper_global_opts -t srcpackage --download-only $payload_pkgs + fi # test + setup_zypper_repos special + chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $special_pkgs + + # chroot $root zypper $zypper_global_opts -t srcpackage --download-only $payload_pkgs #kernel_version=`readlink -f $root/boot/vmlinuz 2>/dev/null | xargs basename | sed 's/vmlinuz-//'` [ "$install_dev" ] && setup_boot_loader_local