mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-27 07:33:54 +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
|
o_name=suse-$suse_version
|
||||||
cmd=install
|
cmd=install
|
||||||
cwd=`pwd`
|
cwd=`pwd`
|
||||||
|
ssh_auth_sock=/tmp/agent-host.sock
|
||||||
initrd_modules="
|
env_ssh_auth_sock=$SSH_AUTH_SOCK
|
||||||
via-rhine
|
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"
|
||||||
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
|
kernel_flavour=-desktop
|
||||||
|
|
||||||
|
|
@ -116,6 +81,9 @@ case $suse_version in
|
||||||
|
|
||||||
kernel_version=3.9.9-jng20-1.1$kernel_flavour
|
kernel_version=3.9.9-jng20-1.1$kernel_flavour
|
||||||
rpm_kernel_version=3.9.9~jng20-1.1
|
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
|
esac
|
||||||
|
|
||||||
|
|
@ -265,7 +233,7 @@ usage()
|
||||||
|
|
||||||
get_opts()
|
get_opts()
|
||||||
{
|
{
|
||||||
set -- `getopt 'hd:n:a:p:k:u:w:' $*`
|
set -- `getopt 'hd:n:a:p:k:u:w:s:' $*`
|
||||||
while [ "$1" != -- ] ; do
|
while [ "$1" != -- ] ; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-h)
|
-h)
|
||||||
|
|
@ -299,6 +267,10 @@ get_opts()
|
||||||
cwd=$2
|
cwd=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-s)
|
||||||
|
env_ssh_auth_sock=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usage 1
|
usage 1
|
||||||
;;
|
;;
|
||||||
|
|
@ -377,8 +349,11 @@ _run_chroot()
|
||||||
|
|
||||||
run_chroot()
|
run_chroot()
|
||||||
{
|
{
|
||||||
echo == running LANG=POSIX chroot $root "$@"
|
local cmd="LANG=POSIX SSH_AUTH_SOCK=$ssh_auth_sock chroot $root"
|
||||||
LANG=POSIX 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"
|
die "failed to run >$@<, exiting"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -387,7 +362,7 @@ run_hook()
|
||||||
{
|
{
|
||||||
hook="$1"
|
hook="$1"
|
||||||
local cmd="${hooks[$hook]}"
|
local cmd="${hooks[$hook]}"
|
||||||
[ "$cmd" ] || return
|
[ "$cmd" ] || return 0
|
||||||
(
|
(
|
||||||
cd $cwd
|
cd $cwd
|
||||||
echo "== running hook $hook ($cmd)"
|
echo "== running hook $hook ($cmd)"
|
||||||
|
|
@ -406,6 +381,7 @@ create_partition_table()
|
||||||
{
|
{
|
||||||
assert_not_mounted
|
assert_not_mounted
|
||||||
|
|
||||||
|
# FIXME mkpart primary 40G 100% doesn't work on nbd
|
||||||
_cat << EOT | run_parted
|
_cat << EOT | run_parted
|
||||||
|mklabel gpt
|
|mklabel gpt
|
||||||
|mkpart primary 1M 2M
|
|mkpart primary 1M 2M
|
||||||
|
|
@ -415,7 +391,7 @@ create_partition_table()
|
||||||
|name 2 boot
|
|name 2 boot
|
||||||
|mkpart primary 10G 40G
|
|mkpart primary 10G 40G
|
||||||
|name 3 swap
|
|name 3 swap
|
||||||
|mkpart primary 40G 100%
|
|mkpart primary 40G 100G
|
||||||
|name 4 root
|
|name 4 root
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
|
|
@ -437,10 +413,13 @@ canonicalize()
|
||||||
|
|
||||||
check_mount()
|
check_mount()
|
||||||
{
|
{
|
||||||
local canonicalized=`canonicalize $root/$1`
|
local canonicalized=`realpath $root/$1 2>/dev/null`
|
||||||
[ ! "$canonicalized" ] && return 1
|
[ ! "$canonicalized" ] && return 1
|
||||||
grep -q " $canonicalized " /proc/mounts || return 1
|
grep -q " $canonicalized " /proc/mounts && return 0
|
||||||
return 0
|
canonicalized=`canonicalize $root/$1`
|
||||||
|
[ ! "$canonicalized" ] && return 1
|
||||||
|
grep -q " $canonicalized " /proc/mounts && return 0
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_not_mounted()
|
assert_not_mounted()
|
||||||
|
|
@ -460,6 +439,14 @@ setup_bind_mounts()
|
||||||
run -e mount -o bind $fs $root$fs
|
run -e mount -o bind $fs $root$fs
|
||||||
}
|
}
|
||||||
done
|
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()
|
mount_devices()
|
||||||
|
|
@ -477,12 +464,13 @@ mount_devices()
|
||||||
|
|
||||||
unmount_devices()
|
unmount_devices()
|
||||||
{
|
{
|
||||||
local devices="/proc /sys /dev /boot /"
|
local devices="$ssh_auth_sock /proc /sys /dev /boot /"
|
||||||
[ "$1" ] && devices="$@"
|
[ "$1" ] && devices="$@"
|
||||||
local d
|
local d
|
||||||
for d in $devices; do
|
for d in $devices; do
|
||||||
check_mount $d && run umount $root$d
|
check_mount $d && run umount $root$d
|
||||||
done
|
done
|
||||||
|
rm -f $ssh_auth_sock
|
||||||
}
|
}
|
||||||
|
|
||||||
zypper_repos_base()
|
zypper_repos_base()
|
||||||
|
|
@ -536,7 +524,7 @@ host_zypper()
|
||||||
local repos="$1"
|
local repos="$1"
|
||||||
shift
|
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 $@
|
run -e zypper $zypper_global_opts --root $root $distros $@
|
||||||
}
|
}
|
||||||
|
|
||||||
init_root_password_file()
|
init_root_password_file()
|
||||||
|
|
@ -806,7 +794,6 @@ setup_boot_loader_net()
|
||||||
|
|
||||||
undo_rpmnew()
|
undo_rpmnew()
|
||||||
{
|
{
|
||||||
set +x
|
|
||||||
local n o
|
local n o
|
||||||
# reset config files to rpm versions
|
# reset config files to rpm versions
|
||||||
find $root -name '*.rpmnew' | while read n; do
|
find $root -name '*.rpmnew' | while read n; do
|
||||||
|
|
@ -814,7 +801,6 @@ undo_rpmnew()
|
||||||
log renaming $n to $o
|
log renaming $n to $o
|
||||||
mv $n $o
|
mv $n $o
|
||||||
done
|
done
|
||||||
set -x
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_root_directory()
|
setup_root_directory()
|
||||||
|
|
@ -909,7 +895,7 @@ set_sysconf_value()
|
||||||
|
|
||||||
cmd_install()
|
cmd_install()
|
||||||
{
|
{
|
||||||
if true; then
|
if false; then
|
||||||
local c
|
local c
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
@ -954,7 +940,6 @@ cmd_install()
|
||||||
chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $payload_pkgs
|
chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $payload_pkgs
|
||||||
echo "=== installing payload packages <"
|
echo "=== installing payload packages <"
|
||||||
|
|
||||||
fi # test
|
|
||||||
run setup_zypper_repos special
|
run setup_zypper_repos special
|
||||||
run chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $special_pkgs
|
run chroot $root zypper $zypper_global_opts install --auto-agree-with-licenses $special_pkgs
|
||||||
|
|
||||||
|
|
@ -970,12 +955,8 @@ cmd_install()
|
||||||
run_hook pkg-installed
|
run_hook pkg-installed
|
||||||
|
|
||||||
export CVSROOT=:ext:$scm_user@cvs.jannet.de:/home/jannet/arc/cvs
|
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"
|
echo "=== running jcs fetch"
|
||||||
chroot $root jcs fetch
|
run_chroot jcs fetch
|
||||||
reset_host_files
|
reset_host_files
|
||||||
echo "=== running jcs setup"
|
echo "=== running jcs setup"
|
||||||
chroot $root jcs setup
|
chroot $root jcs setup
|
||||||
|
|
@ -984,6 +965,7 @@ cmd_install()
|
||||||
# FIXME: this does not work off a netboot distro
|
# FIXME: this does not work off a netboot distro
|
||||||
slapcat | chroot $root /usr/sbin/slapadd -qw
|
slapcat | chroot $root /usr/sbin/slapadd -qw
|
||||||
|
|
||||||
|
fi # test
|
||||||
[ "$install_dev" ] && setup_boot_loader_local
|
[ "$install_dev" ] && setup_boot_loader_local
|
||||||
setup_boot_loader_net
|
setup_boot_loader_net
|
||||||
(cd $root/boot; ln -sf vmlinuz-$kernel_version vmlinuz)
|
(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/srv/nfs/var/cores
|
||||||
install -m 777 -d $root/var/cores
|
install -m 777 -d $root/var/cores
|
||||||
|
|
||||||
rm -f $root/$SSH_AUTH_SOCK
|
|
||||||
|
|
||||||
unmount_devices
|
unmount_devices
|
||||||
[ -w "$install_dev" ] || {
|
[ -w "$install_dev" ] || {
|
||||||
install -d -m 755 $root/../rw
|
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
|
# preferring "ssh -l root localhost" over "sudo" to keep ssh-agent environment
|
||||||
#sudo -i $exe $@ -p $root_password_file
|
#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 $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
@ -1066,9 +1047,14 @@ root=/srv/nfs/boot/distros/$name/ro
|
||||||
|
|
||||||
if [ "$install_dev" ]; then
|
if [ "$install_dev" ]; then
|
||||||
|
|
||||||
install_dev_boot=$install_dev""2
|
case $install_dev in
|
||||||
install_dev_swap=$install_dev""3
|
/dev/sd*) part_sep="";;
|
||||||
install_dev_root=$install_dev""4
|
/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
|
case $install_dev in
|
||||||
/dev/sda) install_grub_dev_num=0;;
|
/dev/sda) install_grub_dev_num=0;;
|
||||||
|
|
@ -1076,8 +1062,10 @@ if [ "$install_dev" ]; then
|
||||||
/dev/sdc) install_grub_dev_num=2;;
|
/dev/sdc) install_grub_dev_num=2;;
|
||||||
/dev/sdd) install_grub_dev_num=3;;
|
/dev/sdd) install_grub_dev_num=3;;
|
||||||
/dev/sde) install_grub_dev_num=4;;
|
/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;;
|
exit 1;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue