mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-16 04:23:31 +01:00
integrate-distro.sh: Make it work for openSuSE i586@x86_64
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
d743eac28f
commit
518c7ec98d
1 changed files with 52 additions and 64 deletions
|
|
@ -7,44 +7,9 @@ suse_version=12.3
|
|||
o_name=suse-$suse_version
|
||||
cmd=install
|
||||
cwd=`pwd`
|
||||
|
||||
initrd_modules="
|
||||
via-rhine
|
||||
r8169
|
||||
e1000
|
||||
e1000e
|
||||
b44
|
||||
myri10ge
|
||||
forcedeth
|
||||
8139too
|
||||
sata_nv
|
||||
nfs
|
||||
nfs_acl
|
||||
auth_rpcgss
|
||||
nfsv3
|
||||
nfsv4
|
||||
fscache
|
||||
lockd
|
||||
sunrpc
|
||||
|
||||
sis
|
||||
edd
|
||||
sisfb
|
||||
evdev
|
||||
shpchp
|
||||
sis_agp
|
||||
hwmon
|
||||
aufs
|
||||
ahci
|
||||
libahci
|
||||
usbhid
|
||||
hid
|
||||
uhci_hcd
|
||||
ohci_hcd
|
||||
ehci_hcd
|
||||
usbcore
|
||||
hid-generic
|
||||
"
|
||||
ssh_auth_sock=/tmp/agent-host.sock
|
||||
env_ssh_auth_sock=$SSH_AUTH_SOCK
|
||||
initrd_modules=" via-rhine r8169 e1000 e1000e b44 myri10ge forcedeth 8139too sata_nv nfs nfs_acl auth_rpcgss nfsv3 nfsv4 fscache lockd sunrpc sis edd sisfb evdev shpchp sis_agp hwmon aufs ahci libahci usbhid hid uhci_hcd ohci_hcd ehci_hcd usbcore hid-generic"
|
||||
|
||||
kernel_flavour=-desktop
|
||||
|
||||
|
|
@ -116,6 +81,9 @@ case $suse_version in
|
|||
|
||||
kernel_version=3.9.9-jng20-1.1$kernel_flavour
|
||||
rpm_kernel_version=3.9.9~jng20-1.1
|
||||
|
||||
kernel_version=3.7.10-jng12$kernel_flavour
|
||||
rpm_kernel_version=3.7.10~jng12-1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -265,7 +233,7 @@ usage()
|
|||
|
||||
get_opts()
|
||||
{
|
||||
set -- `getopt 'hd:n:a:p:k:u:w:' $*`
|
||||
set -- `getopt 'hd:n:a:p:k:u:w:s:' $*`
|
||||
while [ "$1" != -- ] ; do
|
||||
case "$1" in
|
||||
-h)
|
||||
|
|
@ -299,6 +267,10 @@ get_opts()
|
|||
cwd=$2
|
||||
shift
|
||||
;;
|
||||
-s)
|
||||
env_ssh_auth_sock=$2
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
usage 1
|
||||
;;
|
||||
|
|
@ -377,8 +349,11 @@ _run_chroot()
|
|||
|
||||
run_chroot()
|
||||
{
|
||||
echo == running LANG=POSIX chroot $root "$@"
|
||||
LANG=POSIX chroot $root "$@" || {
|
||||
local cmd="LANG=POSIX SSH_AUTH_SOCK=$ssh_auth_sock chroot $root"
|
||||
echo == running $cmd "$@"
|
||||
#eval $cmd "$@" || {
|
||||
#LANG=POSIX SSH_AUTH_SOCK=$ssh_auth_sock chroot $root "$@" || {
|
||||
LANG=POSIX SSH_AUTH_SOCK=$ssh_auth_sock chroot $root "$@" || {
|
||||
die "failed to run >$@<, exiting"
|
||||
}
|
||||
}
|
||||
|
|
@ -387,7 +362,7 @@ run_hook()
|
|||
{
|
||||
hook="$1"
|
||||
local cmd="${hooks[$hook]}"
|
||||
[ "$cmd" ] || return
|
||||
[ "$cmd" ] || return 0
|
||||
(
|
||||
cd $cwd
|
||||
echo "== running hook $hook ($cmd)"
|
||||
|
|
@ -406,6 +381,7 @@ create_partition_table()
|
|||
{
|
||||
assert_not_mounted
|
||||
|
||||
# FIXME mkpart primary 40G 100% doesn't work on nbd
|
||||
_cat << EOT | run_parted
|
||||
|mklabel gpt
|
||||
|mkpart primary 1M 2M
|
||||
|
|
@ -415,7 +391,7 @@ create_partition_table()
|
|||
|name 2 boot
|
||||
|mkpart primary 10G 40G
|
||||
|name 3 swap
|
||||
|mkpart primary 40G 100%
|
||||
|mkpart primary 40G 100G
|
||||
|name 4 root
|
||||
EOT
|
||||
|
||||
|
|
@ -437,10 +413,13 @@ canonicalize()
|
|||
|
||||
check_mount()
|
||||
{
|
||||
local canonicalized=`canonicalize $root/$1`
|
||||
local canonicalized=`realpath $root/$1 2>/dev/null`
|
||||
[ ! "$canonicalized" ] && return 1
|
||||
grep -q " $canonicalized " /proc/mounts || return 1
|
||||
return 0
|
||||
grep -q " $canonicalized " /proc/mounts && return 0
|
||||
canonicalized=`canonicalize $root/$1`
|
||||
[ ! "$canonicalized" ] && return 1
|
||||
grep -q " $canonicalized " /proc/mounts && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
assert_not_mounted()
|
||||
|
|
@ -460,6 +439,14 @@ setup_bind_mounts()
|
|||
run -e mount -o bind $fs $root$fs
|
||||
}
|
||||
done
|
||||
if [ "$env_ssh_auth_sock" ]; then
|
||||
check_mount $ssh_auth_sock || {
|
||||
echo "creating >$ssh_auth_sock<"
|
||||
run -e mkdir -p `dirname $root/$ssh_auth_sock`
|
||||
run -e touch $root/$ssh_auth_sock
|
||||
run -e mount --bind $env_ssh_auth_sock $root/$ssh_auth_sock
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
||||
mount_devices()
|
||||
|
|
@ -477,12 +464,13 @@ mount_devices()
|
|||
|
||||
unmount_devices()
|
||||
{
|
||||
local devices="/proc /sys /dev /boot /"
|
||||
local devices="$ssh_auth_sock /proc /sys /dev /boot /"
|
||||
[ "$1" ] && devices="$@"
|
||||
local d
|
||||
for d in $devices; do
|
||||
check_mount $d && run umount $root$d
|
||||
done
|
||||
rm -f $ssh_auth_sock
|
||||
}
|
||||
|
||||
zypper_repos_base()
|
||||
|
|
@ -536,7 +524,7 @@ host_zypper()
|
|||
local repos="$1"
|
||||
shift
|
||||
local distros=`zypper_repos $repos | awk '{print "--plus-repo " $2 }'`
|
||||
zypper $zypper_global_opts --root $root $distros $@
|
||||
run -e zypper $zypper_global_opts --root $root $distros $@
|
||||
}
|
||||
|
||||
init_root_password_file()
|
||||
|
|
@ -806,7 +794,6 @@ setup_boot_loader_net()
|
|||
|
||||
undo_rpmnew()
|
||||
{
|
||||
set +x
|
||||
local n o
|
||||
# reset config files to rpm versions
|
||||
find $root -name '*.rpmnew' | while read n; do
|
||||
|
|
@ -814,7 +801,6 @@ undo_rpmnew()
|
|||
log renaming $n to $o
|
||||
mv $n $o
|
||||
done
|
||||
set -x
|
||||
}
|
||||
|
||||
setup_root_directory()
|
||||
|
|
@ -909,7 +895,7 @@ set_sysconf_value()
|
|||
|
||||
cmd_install()
|
||||
{
|
||||
if true; then
|
||||
if false; then
|
||||
local c
|
||||
|
||||
set -e
|
||||
|
|
@ -954,7 +940,6 @@ cmd_install()
|
|||
chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $payload_pkgs
|
||||
echo "=== installing payload packages <"
|
||||
|
||||
fi # test
|
||||
run setup_zypper_repos special
|
||||
run chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $special_pkgs
|
||||
|
||||
|
|
@ -970,12 +955,8 @@ cmd_install()
|
|||
run_hook pkg-installed
|
||||
|
||||
export CVSROOT=:ext:$scm_user@cvs.jannet.de:/home/jannet/arc/cvs
|
||||
if [ "$SSH_AUTH_SOCK" ]; then
|
||||
mkdir -m 700 -p `dirname $root/$SSH_AUTH_SOCK`
|
||||
ln $SSH_AUTH_SOCK $root/$SSH_AUTH_SOCK
|
||||
fi
|
||||
echo "=== running jcs fetch"
|
||||
chroot $root jcs fetch
|
||||
run_chroot jcs fetch
|
||||
reset_host_files
|
||||
echo "=== running jcs setup"
|
||||
chroot $root jcs setup
|
||||
|
|
@ -984,6 +965,7 @@ cmd_install()
|
|||
# FIXME: this does not work off a netboot distro
|
||||
slapcat | chroot $root /usr/sbin/slapadd -qw
|
||||
|
||||
fi # test
|
||||
[ "$install_dev" ] && setup_boot_loader_local
|
||||
setup_boot_loader_net
|
||||
(cd $root/boot; ln -sf vmlinuz-$kernel_version vmlinuz)
|
||||
|
|
@ -1006,8 +988,6 @@ cmd_install()
|
|||
install -m 777 -d $root/srv/nfs/var/cores
|
||||
install -m 777 -d $root/var/cores
|
||||
|
||||
rm -f $root/$SSH_AUTH_SOCK
|
||||
|
||||
unmount_devices
|
||||
[ -w "$install_dev" ] || {
|
||||
install -d -m 755 $root/../rw
|
||||
|
|
@ -1052,7 +1032,8 @@ if [ `whoami` != root -o "$l32" ]; then
|
|||
|
||||
# preferring "ssh -l root localhost" over "sudo" to keep ssh-agent environment
|
||||
#sudo -i $exe $@ -p $root_password_file
|
||||
ssh -l root localhost $l32 $exe $@ -p $root_password_file -u $scm_user -w $cwd
|
||||
[ "$env_ssh_auth_sock" ] && opt_ssh_auth_sock="-s $env_ssh_auth_sock"
|
||||
ssh -l root localhost $l32 $exe $@ -p $root_password_file -u $scm_user -w $cwd $opt_ssh_auth_sock
|
||||
|
||||
exit $?
|
||||
fi
|
||||
|
|
@ -1066,9 +1047,14 @@ root=/srv/nfs/boot/distros/$name/ro
|
|||
|
||||
if [ "$install_dev" ]; then
|
||||
|
||||
install_dev_boot=$install_dev""2
|
||||
install_dev_swap=$install_dev""3
|
||||
install_dev_root=$install_dev""4
|
||||
case $install_dev in
|
||||
/dev/sd*) part_sep="";;
|
||||
/dev/nbd*) part_sep="p";;
|
||||
esac
|
||||
|
||||
install_dev_boot=$install_dev$part_sep""2
|
||||
install_dev_swap=$install_dev$part_sep""3
|
||||
install_dev_root=$install_dev$part_sep""4
|
||||
|
||||
case $install_dev in
|
||||
/dev/sda) install_grub_dev_num=0;;
|
||||
|
|
@ -1076,8 +1062,10 @@ if [ "$install_dev" ]; then
|
|||
/dev/sdc) install_grub_dev_num=2;;
|
||||
/dev/sdd) install_grub_dev_num=3;;
|
||||
/dev/sde) install_grub_dev_num=4;;
|
||||
/dev/nbd*)
|
||||
install_grub_dev_num=${d/\/dev\/nbd/};;
|
||||
*)
|
||||
log "device \"$install_dev\" doesn't map into a known grub device number, edit $myname to add support"
|
||||
log "device \"$install_dev\" can't be mapped onto a grub device number, edit $myname to add support"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue