diff options
136 files changed, 8569 insertions, 1348 deletions
@@ -92,10 +92,12 @@ dep-check: @ # many of the following modules are part of core perl, but we check @ # for them just to be sure... - @for m in Carp Clone Config::General Cwd DBI Digest::MD5 Digest::SHA1 \ - Encode Fcntl File::Basename File::Find File::Glob File::Path \ - FindBin Getopt::Long List::Util MIME::Base64 Pod::Usage \ - POSIX Socket Storable Sys::Hostname Term::ReadLine ; do \ + @for m in Carp Clone Config::General Data::Dumper Cwd DBI Digest::MD5 \ + Digest::SHA1 Encode Exporter Fcntl File::Basename File::Find \ + File::Glob File::Path FindBin Getopt::Long HTTP::Request::Common \ + JSON LWP::UserAgent List::Util MIME::Base64 Pod::Usage \ + POSIX Scalar::Util Socket Storable Sys::Hostname Term::ReadLine \ + Switch URI; do \ if ! perl -e "use $$m" 2>>${SLX_INSTALL_LOG} ; then \ echo " The perl module '$$m' is required, please install it."; \ exit 1; \ @@ -1,4 +1,4 @@ OPENSLX_VERSION_MAJOR="5" OPENSLX_VERSION_MINOR="0" -OPENSLX_VERSION_RELEASE="90" -OPENSLX_VERSION_STRING="${OPENSLX_VERSION_MAJOR}.${OPENSLX_VERSION_MINOR}.${OPENSLX_VERSION_RELEASE}${OPENSLX_SVN_SNAPSHOT:+rev$OPENSLX_VERSION_SVNREV}" +OPENSLX_VERSION_RELEASE="92.1" +OPENSLX_VERSION_STRING="${OPENSLX_VERSION_MAJOR}.${OPENSLX_VERSION_MINOR}.${OPENSLX_VERSION_RELEASE}" diff --git a/boot-env/OpenSLX/BootEnvironment/PXE.pm b/boot-env/OpenSLX/BootEnvironment/PXE.pm index 06df1361..d46786d0 100644 --- a/boot-env/OpenSLX/BootEnvironment/PXE.pm +++ b/boot-env/OpenSLX/BootEnvironment/PXE.pm @@ -79,13 +79,16 @@ sub writeBootloaderMenuFor $label = $info->{name}; } } - $info->{pxeLabel} = $label; + $info->{menuLabel} = $label; } +# if kernel=*xen* then run sub _xenLabel from xen.pm my $slxLabels = ''; foreach my $info (sort { $a->{label} cmp $b->{label} } @$systemInfos) { my $vendorOSName = $info->{'vendor-os'}->{name}; my $kernelName = basename($info->{'kernel-file'}); my $append = $info->{attrs}->{kernel_params}; + my $pxeLabel = $info->{'external-id'}; + $pxeLabel =~ s/::/-/g; my $pxePrefix = ''; my $tftpPrefix = ''; $info->{'pxe_prefix_ip'} ||= ''; @@ -110,12 +113,14 @@ sub writeBootloaderMenuFor $append .= " file=$bootURI" if length($bootURI); $append .= " file=$tftpPrefix" if length($tftpPrefix); $append .= " $clientAppend"; - $slxLabels .= "LABEL openslx-$info->{'external-id'}\n"; + $slxLabels .= "LABEL openslx-$pxeLabel\n"; $slxLabels .= $pxeDefault; - $slxLabels .= "\tMENU LABEL ^$info->{pxeLabel}\n"; + $slxLabels .= "\tMENU LABEL ^$info->{menuLabel}\n"; $slxLabels .= "\tKERNEL $pxePrefix$vendorOSName/$kernelName\n"; $slxLabels .= "\tAPPEND $append\n"; $slxLabels .= "\tIPAPPEND 3\n"; +# if kernel=*xen* then run sub _xenBootEntry from xen.pm +# if (!defined $xenKernel) {...} my $helpText = $info->{description} || ''; if (length($helpText)) { # make sure that text matches the given margin diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm index c664c1ba..1628c5f1 100644 --- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm +++ b/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm @@ -52,6 +52,7 @@ sub determineMatchingHwinfoVersion '10.3' => '14.19', '11.0' => '15.3', '11.1' => '15.21', + '11.2' => '15.21' ); return $versionMap{$distroVersion} || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm index 9240f5b5..64c20538 100644 --- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm +++ b/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006..2009 - OpenSLX GmbH + # Copyright (c) 2006..2009 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -54,6 +54,8 @@ sub determineMatchingHwinfoVersion '8.04' => '15.3', '8.10' => '15.21', '9.04' => '15.21', + '9.10' => '15.21', + '10.04' => '15.21', ); return $versionMap{$distroVersion} || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm index a4a984e9..6de0a4fe 100644 --- a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm +++ b/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm @@ -240,6 +240,10 @@ sub _copyKernelModules push @kernelModules, split ' ', $self->{attrs}->{ramfs_miscmods}; push @kernelModules, split ' ', $self->{attrs}->{ramfs_nicmods}; + if ($self->{attrs}->{ramfs_nicmods} =~ m{virtio}i) { + push @kernelModules, qw( virtio_pci virtio_net ); + } + # a function that determines dependent modules recursively my $addDependentsSub; $addDependentsSub = sub { @@ -379,13 +383,21 @@ sub _writeSlxSystemConf # check if default directories available and copy them to /etc my $defaultDirConfig = "$self->{'root-path'}/etc/opt/openslx/openslx.conf"; my $configTargetPath = "$self->{'build-path'}/etc"; - + #my $defaultConfVer = slurpFile("$defaultDirConfig"); + #my $actConfVer = "Version 0.2"; + if (-r $defaultDirConfig) { $self->addCMD("cp -p $defaultDirConfig $configTargetPath/"); +# if ($defaultConfVer =~ m{$actConfVer}) { +# warn _tr( +# "Your version of default dir file (openslx.conf) is to old!\n". +# "Eventually the system won't work.\n" . +# "Please run install, update or clone of this system again!\n"); +# } } else { die _tr( - "No default directories defined!\n" . - "Please run install, update or clone of this system again!\n"); + "No default directories defined!\n" . + "Please run install, update or clone of this system again!\n"); } return; diff --git a/boot-env/pbs/uclib-rootfs/bin/bbinit b/boot-env/pbs/uclib-rootfs/bin/bbinit new file mode 100755 index 00000000..3fd67612 --- /dev/null +++ b/boot-env/pbs/uclib-rootfs/bin/bbinit @@ -0,0 +1,19 @@ +#!/bin/hush + +# create clean setup +mkdir -p /etc/events.conf +mkdir -p /etc/events.d +rm /etc/events.d/* +for f in $(ls -1 /etc/events) +do + ln -sf /etc/events/$f /etc/events.d/$f +done + +mkdir -p /tmp/event +rm /tmp/event/* +rm /tmp/events + +# start bbinit +inotifyd /bin/handleEvents /tmp/event/:n & +# initial call (executing all zero dependent scipts) +handleEvents diff --git a/boot-env/pbs/uclib-rootfs/bin/handleEvents b/boot-env/pbs/uclib-rootfs/bin/handleEvents new file mode 100755 index 00000000..9bb78951 --- /dev/null +++ b/boot-env/pbs/uclib-rootfs/bin/handleEvents @@ -0,0 +1,38 @@ +#!/bin/hush + +# wait for lock +while [ -f /tmp/bbinit.lock ] +do + sleep 0.1 +done + +# lock eventhandler +touch /tmp/bbinit.lock + +# source list of finished events +[ -f /tmp/events ] && . /tmp/events + +# go through all unhandled events +for f in $( ls -1 /etc/events.d/ ) +do + . /etc/events.d/$f + + # check dependencies + eval dep=\$${f}_depends + havealldeps=1 + for d in $dep + do + eval havedep=\$have${d} + [ "x$havedep" == "x1" ] || havealldeps=0 + done + + # if nothing is missing execute script + if [ "x$havealldeps" == "x1" ]; then + echo executing $f + /etc/bbinit.d/$f & + rm /etc/events.d/$f + fi +done + +# unlock eventhandler +rm /tmp/bbinit.lock diff --git a/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example b/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example new file mode 100755 index 00000000..122cf566 --- /dev/null +++ b/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example @@ -0,0 +1,32 @@ +#!/bin/hush + +me=$(basename $0) + +# read event parameters +. /etc/events/$me +eval provides=\$${me}_provides + +# get config output of the dependencies +eval dep=\$${me}_depends +for d in $dep +do + [ -f /etc/event.conf/$d ] && . /etc/event.conf/$d +done + +# do some stuff +echo "[$me] starting .." +for i in 1 2 3 4 5 6 +do + echo "[$me] $i" + sleep 1 +done +echo "[$me] finished .." + +# write configuration output +value="test" +echo "${provides}_someconfig=\"$value\"" >> /etc/event.conf/$provides + +# trigger eventhandler +echo "have${provides}=1" >> /tmp/events +touch /tmp/event/$me + diff --git a/boot-env/pbs/uclib-rootfs/etc/events/example b/boot-env/pbs/uclib-rootfs/etc/events/example new file mode 100644 index 00000000..75768967 --- /dev/null +++ b/boot-env/pbs/uclib-rootfs/etc/events/example @@ -0,0 +1,2 @@ +example_depends="" +example_provides="example" diff --git a/boot-env/pbs/uclib-rootfs/init b/boot-env/pbs/uclib-rootfs/init index 3c992070..847cad87 100755 --- a/boot-env/pbs/uclib-rootfs/init +++ b/boot-env/pbs/uclib-rootfs/init @@ -45,7 +45,20 @@ done # device files get their own filesystem devdir="/dev" -mount -n -t tmpfs -o 'size=25%,mode=0755' initramfsdevs ${devdir} +mount -n -t tmpfs -o 'size=25%,mode=0755' mdev ${devdir} +mkdir -p /dev/pts +mount -t devpts devpts /dev/pts +echo /sbin/mdev > /proc/sys/kernel/hotplug +cat > /etc/mdev.conf << "EOF" +sda* 0:6 0660 +sdb* 0:6 0660 +sg* 0:6 0660 +hda* 0:6 0660 +hdb* 0:6 0660 +EOF + +mdev -s + export DEBUGLEVEL=0 # create basic device files an directories in dev @@ -143,6 +156,25 @@ fi if [ -n "${SSID}" ] ; then # WLAN setup will most probably change the network interface name stored in # nwif (to wlan0 or something like that) + [ $DEBUGLEVEL -gt 0 ] && echo "set essid to ${essid}"; + #value of essid unchecked yet + # load network adaptor modules + cd /lib/modules/$(ls /lib/modules/)/kernel/drivers/net/wireless + for mod in $(find . | grep .ko | sed 's,.*/\([^/]*\).ko,\1',); do + echo "Mod:"; + echo $mod; + modprobe $mod || echo "module $mod did not load for some reason" + usleep 10000 + done + cd / + wlanif=$(iwconfig 2>/dev/null|sed -n "/ESSID:/p"|sed "s/ .*//") + [ $DEBUGLEVEL -gt 0 ] && echo "wlancard recognized as ${wlanif}"; + ip link set dev ${wlanif} up + if iwconfig ${wlanif} mode managed essid "${essid}"; then + nwif=${wlanif} + else + error " Unable to configure the WLAN interface." + fi : else # check here for the active Ethernet link diff --git a/boot-env/preboot/uclib-rootfs/init b/boot-env/preboot/uclib-rootfs/init index f240d65d..ab2f9ca0 100755 --- a/boot-env/preboot/uclib-rootfs/init +++ b/boot-env/preboot/uclib-rootfs/init @@ -14,7 +14,7 @@ fetchip () { # we expect to get an ip address within 10++ seconds -( sleep 6 ; killall udhcpc >/dev/null 2>&1 ) & +( sleep 10 ; killall udhcpc >/dev/null 2>&1 ) & for i in 1 2 ; do udhcpc -f -n -q $vci -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null if grep "ip=" /tmp/ipstuff >/dev/null 2>&1 ; then @@ -141,6 +141,25 @@ fi if [ -n "${SSID}" ] ; then # WLAN setup will most probably change the network interface name stored in # nwif (to wlan0 or something like that) + [ $DEBUGLEVEL -gt 0 ] && echo "set essid to ${essid}"; + #value of essid unchecked yet + # load network adaptor modules + cd /lib/modules/$(ls /lib/modules/)/kernel/drivers/net/wireless + for mod in $(find . | grep .ko | sed 's,.*/\([^/]*\).ko,\1',); do + echo "Mod:"; + echo $mod; + modprobe $mod || echo "module $mod did not load for some reason" + usleep 10000 + done + cd / + wlanif=$(iwconfig 2>/dev/null|sed -n "/ESSID:/p"|sed "s/ .*//") + [ $DEBUGLEVEL -gt 0 ] && echo "wlancard recognized as ${wlanif}"; + ip link set dev ${wlanif} up + if iwconfig ${wlanif} mode managed essid "${essid}"; then + nwif=${wlanif} + else + error " Unable to configure the WLAN interface." + fi : else # check here for the active Ethernet link diff --git a/boot-env/syslinux/extlinux b/boot-env/syslinux/extlinux Binary files differindex d97dd70c..69d8bf56 100755 --- a/boot-env/syslinux/extlinux +++ b/boot-env/syslinux/extlinux diff --git a/boot-env/syslinux/isolinux.bin b/boot-env/syslinux/isolinux.bin Binary files differindex 80f71c98..bd778b3b 100644 --- a/boot-env/syslinux/isolinux.bin +++ b/boot-env/syslinux/isolinux.bin diff --git a/boot-env/syslinux/mboot.c32 b/boot-env/syslinux/mboot.c32 Binary files differindex dfff3789..929ade6f 100755 --- a/boot-env/syslinux/mboot.c32 +++ b/boot-env/syslinux/mboot.c32 diff --git a/boot-env/syslinux/menu.c32 b/boot-env/syslinux/menu.c32 Binary files differindex 9413ec46..67f9c29b 100755 --- a/boot-env/syslinux/menu.c32 +++ b/boot-env/syslinux/menu.c32 diff --git a/boot-env/syslinux/pxelinux.0 b/boot-env/syslinux/pxelinux.0 Binary files differindex 743948e3..0df4fbed 100644 --- a/boot-env/syslinux/pxelinux.0 +++ b/boot-env/syslinux/pxelinux.0 diff --git a/boot-env/syslinux/syslinux b/boot-env/syslinux/syslinux Binary files differindex dd0319cf..92b1b907 100755 --- a/boot-env/syslinux/syslinux +++ b/boot-env/syslinux/syslinux diff --git a/boot-env/syslinux/vesamenu.c32 b/boot-env/syslinux/vesamenu.c32 Binary files differindex d9884770..804e2fb8 100755 --- a/boot-env/syslinux/vesamenu.c32 +++ b/boot-env/syslinux/vesamenu.c32 diff --git a/initramfs/distro-specs/debian/functions-default b/initramfs/distro-specs/debian/functions-default index 9877f493..15639a2d 100644 --- a/initramfs/distro-specs/debian/functions-default +++ b/initramfs/distro-specs/debian/functions-default @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2007..2008 - OpenSLX GmbH +# Copyright (c) 2007..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -56,6 +56,13 @@ config_distro () { # create needed auxiliary directories in (/mnt)/var,/etc,... testmkd /mnt/var/run/screens root:utmp 0755 + + # add the slx specific path (/var/opt/openslx/bin) to the PATH variable + echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ +export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile + + # check for inittab file + #test -f /mnt/etc/inittab || error "$df_erritab" } # initial (boot time) runlevel scripts diff --git a/initramfs/distro-specs/scilin/functions-default b/initramfs/distro-specs/scilin/functions-default index e474b1b7..f9bb0f0e 100644 --- a/initramfs/distro-specs/scilin/functions-default +++ b/initramfs/distro-specs/scilin/functions-default @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -49,6 +49,8 @@ config_distro () { [ -e /mnt/etc/sysconfig/network ] && \ sed -e "s/HOSTNAME=.*/HOSTNAME=$host_name/" \ -e "s/GATEWAY=.*/GATEWAY=$gateway/" -i /mnt/etc/sysconfig/network + # check for inittab file + #test -f /mnt/etc/inittab || error "$df_erritab" } # initial (boot time) runlevel scripts diff --git a/initramfs/distro-specs/suse/functions-11.2 b/initramfs/distro-specs/suse/functions-11.2 new file mode 100644 index 00000000..ae8008b9 --- /dev/null +++ b/initramfs/distro-specs/suse/functions-11.2 @@ -0,0 +1,95 @@ +# Copyright (c) 2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# configuration script for OpenSuSE 11.2 to configure linux stateless clients +# (included by init, hwautocfg, servconfig within InitialRamFS after +# inclusion of the main functions file). This file is the main base for the +# several SuSE distro versions + +# settings of central variables (formerly done via config-*, these variables +# are disputable ...) +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present +# anyhow + +# start portmapper (needed at least for nfs and nis services) +config_portmap () { +# portmap is provided via rpcbind in suse 11.1,2 +testmkd /mnt/var/lib/rpcbind +rllinker "rpcbind" 4 5 +} +# acpi and powersave daemons, required e.g. to shutdown the machine via +# power button, no need for early start +config_acpi () { +rllinker acpid 22 12 +# dbus is required to run acpid and powersaved +start_dreshal="yes" +} +# configure dbus (inter application communication for kde and gnome), hal +# (hardware abstraction layer - used e.g. by powersaved) +config_dreshal () { +local start=1 +local stop=10 +if [ "x$start_dreshal" = "xyes" ]; then + for dir in /var/lib/misc /var/run/ConsoleKit \ + "/var/run/PolicyKit polkituser:polkituser" \ + "/var/lib/PolicyKit polkituser:polkituser" \ + "/var/run/dbus/at_console/pool"; do + testmkd /mnt${dir} + done + # enable access to removable devices + sed -i /mnt/etc/PolicyKit/PolicyKit.conf \ + -e "s/\(<\/config>\)/ @@new@@\n\1/" \ + -e "s/@@new@@/<match action=\"@@action@@\">\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ <return result=\"yes\"\/>/" + + if [ -f /mnt/etc/init.d/dbus ] ; then + strinfile "messagebus:" /mnt/etc/passwd || \ + echo "messagebus:x:102:103:User for D-BUS:/var/run/dbus:/bin/false" \ + >> /mnt/etc/passwd + strinfile "messagebus:" /mnt/etc/group || \ + echo "messagebus:!:103:" >> /mnt/etc/group + # create directories and set permissions with user and group id + testmkd /mnt/var/run/dbus messagebus:messagebus + testmkd /mnt/var/lib/dbus + # console-kit-daemon is often not started properly (why ever) + sed -i /mnt/etc/init.d/dbus \ + -e '/start_daemon -f $DBUS_D/a\ +\ \ \ \ \ \ \ \ start_daemon -f /usr/sbin/console-kit-daemon' + + rm -rf /mnt/etc/dbus-1/system.d/*etwork*anager.conf \ + /mnt/etc/dbus-1/system.d/nm-* \ + /mnt/etc/dbus-1/event.d/*NetworkManager* + + rllinker "dbus" $start $stop + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:106:107:User for haldaemon:/var/run/hal:/bin/false" \ + >> /mnt/etc/passwd + strinfile "haldaemon:" /mnt/etc/group || \ + echo "haldaemon:!:107:" >> /mnt/etc/group + echo -n "" >/mnt/var/lib/misc/PolicyKit.reload + chmod a+x /mnt/var/lib/misc/PolicyKit.reload + # create directories and set permissions with user and group id + for dir in /var/run/hald /var/run/hald/hald-local \ + /var/run/hald/hald-runner /var/cache/hald; do + testmkd /mnt/${dir} haldaemon:haldaemon + done + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "haldaemon" $start $stop + fi +fi +} diff --git a/initramfs/distro-specs/suse/functions-default b/initramfs/distro-specs/suse/functions-default index cb281f65..14bb5ff0 100644 --- a/initramfs/distro-specs/suse/functions-default +++ b/initramfs/distro-specs/suse/functions-default @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2008 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -48,9 +48,9 @@ grep -q -E "otebook" /etc/hwinfo.bios && \ sed -e "1i# /etc/sysconfig/sysctl - modified by $0 version $version" \ -e "s,ENABLE_SYSRQ=.*,ENABLE_SYSRQ=\"yes\"," \ -i /mnt/etc/sysconfig/sysctl -# add specific path /var/X11R6/bin ... +# add slx specific path /var/opt/openslx/bin ... echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ -PATH=\"\$PATH:/var/X11R6/bin\"\n\ +PATH=\"\$PATH:/var/opt/openslx/bin\"\n\ test \"\$UID\" -ge 100 && PATH=\"\$PATH:.\"\n\ QTDIR=/usr/lib/qt3\nexport QTDIR\nno_proxy='localhost'\n\ export no_proxy" >/mnt/etc/SuSEconfig/profile @@ -323,6 +323,8 @@ i\ # Script modified here by \$0 during stage3 bootup\ LINECOL=$(stty size); LINES=${LINECOL% *}; COLUMNS=${LINECOL#* } }' -e "/^if test -z \"\$LINES/,/fi$/d" -i /mnt/etc/rc.status +# check for inittab file +test -f /mnt/etc/inittab || error "$df_erritab" } # initial (boot time) runlevel scripts @@ -548,6 +550,8 @@ if [ -e /mnt/etc/sysconfig/autofs ] ; then -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \ -i /mnt/etc/sysconfig/autofs rllinker "autofs" 18 4 + # might be needed for autofs via NFS (start specific nfs related services) + # echo 'NFS_START_SERVICES="no"' >>/mnt/etc/sysconfig/nfs else error "$df_erramt" nonfatal fi diff --git a/initramfs/distro-specs/ubuntu/functions-10.04 b/initramfs/distro-specs/ubuntu/functions-10.04 new file mode 100644 index 00000000..7f73c4ca --- /dev/null +++ b/initramfs/distro-specs/ubuntu/functions-10.04 @@ -0,0 +1,16 @@ +# Copyright (c) 2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Configuration script for Ubuntu 10.04 configure OpenSLX Linux stateless +# clients (merged in stage2 with ubuntu/functions-default - and loaded within +# initial ramfs - stage3) It may overwrite settings from the default config +# file (/etc/functions) + +# no changes from default (as this is default at the moment) diff --git a/initramfs/distro-specs/ubuntu/functions-8.04 b/initramfs/distro-specs/ubuntu/functions-8.04 index c50f9d41..3b93e86d 100644 --- a/initramfs/distro-specs/ubuntu/functions-8.04 +++ b/initramfs/distro-specs/ubuntu/functions-8.04 @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2007 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -14,4 +14,283 @@ # initial ramfs - stage3) It may overwrite settings from the default config # file (/etc/functions) -# no changes from default +# distro specific configuration variables used in the setup functions +# (formerly done via config-*, these variables are disputable ...) +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw part +# of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present anyhow +#D_ETCEXCL="etc/gconf/*\n*.old\n*-\netc/autoinstall\nlogrotate*\nbootloader\n\ +#*~\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +#X11/xdm/pixmaps\ndhclient.script" +D_BINDMPTS="tmp root home media" +D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm" +D_RODIRSINRW="/etc/X11/xkb /var/lib/gconf /var/lib/dpkg /var/lib/aspell \ +/var/lib/pango /var/lib/defoma /var/cache/fontconfig /var/lib/dkms" +#D_RWDIRSINRO="/var/lib/gdm" +D_DIRINDXS="/var/X11R6/compose-cache /var/run/sysconfig/tmp /var/adm \ +/var/lib/nobody /var/lib/pam_devperm /var/lib/bluetooth /var/lib/texmf \ +/var/lib/nfs/sm /var/lib/misc /var/lib/acpi /var/spool/cron /var/lib/alsa \ +/var/lock/subsys/sysconfig" + +# empty functions are defined at the beginning of /etc/functions + +# distro specific stuff to initialize +preinit () { + # load unix module to provide sockets (is compiled into kernel on + # the live CDs!?) + modprobe ${MODPRV} unix 2>/dev/null || error "$df_errumod" nonfatal + modprobe ${MODPRV} vesafb 2>/dev/null || error "$df_errumod" nonfatal + modprobe ${MODPRV} fbcon 2>/dev/null || error "$df_errumod" nonfatal +} + +# distro specific function called from servconfig script +config_distro () { + # clean the runlevel directories which will be populated by the stage3 setup + for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do + rm -rf /mnt/etc/${dir}/* + done + # add the halt link to the 0 and 6 runlevel directories + ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt + ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot + + # remove annoying udev rule set for changing eth interface + rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1 + + # inittab is obsolete with the change to upstart in ubuntu 7.10, but to + # prevent missunderstandings with the blank inittab created by openslx init + # we'll write a comment.. + echo "# inittab is obsolete with the change to upstart from ubuntu 7.10" \ + > /mnt/etc/inittab + + # fix getty bug (console login on tty1 is started too early) + [ -f /mnt/etc/event.d/tty1 ] && \ + sed -i "s/start on runlevel 2/start on stopped rc2/" /mnt/etc/event.d/tty1 + + # for screen sessions + testmkd /mnt/var/run/screen root:utmp 0775 + + # no additional /dev/shm mount needed as it is always used + sed -e "/Mount a tmpfs on/,/domount tmpfs /d" \ + -i /mnt/etc/init.d/mountdevsubfs.sh + + # clean up the udev script as much is handled already in stage3 + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/# This next bit can/a\ /sbin/udevadm trigger" \ + -e "/# We need the uevent/,/# It's all over/d" \ + -e "/# Log things that/,/kill \$UDEV/d" -i /mnt/etc/init.d/udev + + # clean the mountall.sh script as only swap activation needed + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/pre_mountall/,/post_mountall/d" \ + -i /mnt/etc/init.d/mountall.sh + + # add the slx specific path (/var/opt/openslx/bin) to the PATH variable + echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ +export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile + + # check for inittab file (might fail for new style init -> upstart) + #test -f /mnt/etc/inittab || test -d /mnt/etc/event.d || \ + # error "$df_erritab" +} + +# initial (boot time) runlevel scripts +initial_boot () { +local count=10 +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. Proper shutdown is +# not needed!? +for i in mountkernfs.sh mountall.sh mountdevsubfs.sh keyboard-setup procps \ +bootlogd hwclock.sh sudo console-setup udev boot.slx $D_SPLASHY; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i +done +} + +# linking runlevel scripts +rllinker () { +local script="$1" +if [ $2 -lt 10 ] ; then + local start="0$2"; else local start="$2" +fi +if [ $3 -lt 10 ] ; then + local stop="0$3"; else local stop="$3" +fi +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc2.d/K$stop$script rc3.d/K$stop$script \ + rc2.d/S$start$script rc3.d/S$start$script ; do + if ! [ -f /mnt/etc/init.d/$script ]; then + echo "Target `pwd`../$script does not exist. Skipping links" + break + else + ln -sf ../init.d/$script /mnt/etc/$i + [ "$DEBUGLEVEL" == 5 ] && echo "Linked $script" + fi +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop + +# configure udev +config_udev () { + [ -c /dev/pktcdvd ] && { rm -rf /dev/pktcdvd; mkdir /dev/pktcdvd; } + if [ -f /mnt/etc/init.d/udev-finish ] ; then + rllinker "udev-finish" 24 2 + fi +} + +# function for ntp configuration +config_ntp () { +if [ -f /mnt/etc/init.d/ntp -a "x$start_ntp" != "xno" ] ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp + rllinker "ntp" 7 14 +fi +} +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + # testmkd /mnt/var/spool/atjobs + # testmkd /mnt/var/spool/atspool + # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool + rllinker "atd" 14 4 +fi +} +# function for configuration of cron services (fixme: to be moved to a plugin?) +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" 18 2 + # fixme! check for proper permissions! + testmkd /mnt/var/spool/crontabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error "$df_errcron" nonfatal + fi +fi +} +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/ssh ] ; then + #testmkd /mnt/var/run/sshd + rllinker "ssh" 12 10 + else + error "$df_errsshd" nonfatal + fi +fi +} +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" 24 2 + testmkd /mnt/var/lib/net-snmp + fi + # fixme!! + # write service monitor depending on services started + fi +} +# acpi and powersave +config_acpi () { + rllinker "acpid" 8 16 + #Commented out since battery checking is only useful for Notebooks + #rllinker "acpi-support" 99 2 +} +# configure hal, dbus, policykitd and services like that +config_dreshal () { +if [ "x$start_dreshal" = "xyes" ]; then + testmkd /mnt/var/lib/dbus + testmkd /mnt/var/lib/misc + testmkd /mnt/var/cache/hald + touch /mnt/var/lib/misc/PolicyKit.reload + chown root:polkituser /mnt/var/lib/misc/PolicyKit.reload + rm -rf /mnt/etc/dbus-1/system.d/*etwork*anager.conf \ + /mnt/etc/dbus-1/system.d/nm-* \ + /mnt/etc/dbus-1/event.d/*NetworkManager* + sed -i /mnt/etc/PolicyKit/PolicyKit.conf \ + -e "s/\(<\/config>\)/ @@new@@\n\1/" \ + -e "s/@@new@@/<match action=\"@@action@@\">\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ <return result=\"yes\"\/>/" + sed -i /mnt/etc/dbus-1/system.d/hal.conf \ + -e "s/^\([^d]*\)deny\(.*Volume.*\)/\1allow\2/" + rllinker "dbus" 2 20 + rllinker "hal" 3 18 + if [ ! -e /mnt/etc/init.d/policykit ] ; then + testmkd /mnt/var/lib/PolicyKit root:polkituser 1770 + testmkd /mnt/var/lib/PolicyKit-public root:polkituser + else + rllinker "policykit" 18 10 + fi +fi +} + +# initialize boot.slx - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script (fixme!!) +d_mkrlscript () { +local switch="$1" +local name="$2" +local info="$3" +case "$switch" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name written \ +from $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\n\ +. /lib/lsb/init-functions\n" >/mnt/etc/init.d/$name + echo -e "\n\ncase \"\$1\" in\n start)\n\tlog_begin_msg \"$info\"" \ + >>/mnt/etc/init.d/$name + chmod u+x /mnt/etc/init.d/$name + ;; + entry) + echo -e "\t${info}" >>/mnt/etc/init.d/${name} + ;; + close) + echo -e "\tlog_end_msg 0\n\t;;\n stop)\n\t;;\nesac\nexit 0" \ + >>/mnt/etc/init.d/$name + ;; +esac +} +# configure automounter +config_automount () { +if [ -f /mnt/etc/init.d/autofs ] ; then + testmkd /mnt/var/lock/subsys + sed -e "1i# /etc/default/autofs - file modified by\n#\t$0:\n#" \ + -e "s,TIMEOUT.*,TIMEOUT=60," -i /mnt/etc/default/autofs + config_portmap + rllinker "autofs" 12 4 + rllinker "nfs-common" 11 5 +fi +} +# start portmapper (needed at least for nfsN and nis services) +config_portmap () { + rllinker "portmap" 2 20 +} +# start NIS (fixme - does the service is really named ypbind??) +config_nis () { + if [ -f /mnt/etc/init.d/ypbind ] ; then + rllinker "ypbind" 6 16 + config_portmap + testmkd /mnt/var/yp/nicknames + else + error "$df_erryp" nonfatal + fi +} +# name service caching daemon (useful in most cases) +config_nscd () { + if [ -f /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/cache/nscd + rllinker "nscd" 20 5 + fi +} diff --git a/initramfs/distro-specs/ubuntu/functions-8.10 b/initramfs/distro-specs/ubuntu/functions-8.10 new file mode 100644 index 00000000..8a3469e7 --- /dev/null +++ b/initramfs/distro-specs/ubuntu/functions-8.10 @@ -0,0 +1,296 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Configuration script for Ubuntu 8.10 configure OpenSLX Linux stateless +# clients (merged in stage2 with ubuntu/functions-default - and loaded within +# initial ramfs - stage3) It may overwrite settings from the default config +# file (/etc/functions) + +# distro specific configuration variables used in the setup functions +# (formerly done via config-*, these variables are disputable ...) +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw part +# of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present anyhow +#D_ETCEXCL="etc/gconf/*\n*.old\n*-\netc/autoinstall\nlogrotate*\nbootloader\n\ +#*~\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +#X11/xdm/pixmaps\ndhclient.script" +D_BINDMPTS="tmp root home media" +D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm" +D_RODIRSINRW="/etc/X11/xkb /var/lib/gconf /var/lib/dpkg /var/lib/aspell \ +/var/lib/pango /var/lib/defoma /var/cache/fontconfig /var/lib/dkms" +#D_RWDIRSINRO="/var/lib/gdm" +D_DIRINDXS="/var/X11R6/compose-cache /var/run/sysconfig/tmp /var/adm \ +/var/lib/nobody /var/lib/pam_devperm /var/lib/bluetooth /var/lib/texmf \ +/var/lib/nfs/sm /var/lib/misc /var/lib/acpi /var/spool/cron /var/lib/alsa \ +/var/lock/subsys/sysconfig" + +# empty functions are defined at the beginning of /etc/functions + +# distro specific stuff to initialize +preinit () { + # load unix module to provide sockets (is compiled into kernel on + # the live CDs!?) + modprobe ${MODPRV} unix 2>/dev/null || error "$df_errumod" nonfatal + modprobe ${MODPRV} vesafb 2>/dev/null || error "$df_errumod" nonfatal + modprobe ${MODPRV} fbcon 2>/dev/null || error "$df_errumod" nonfatal +} + +# distro specific function called from servconfig script +config_distro () { + # clean the runlevel directories which will be populated by the stage3 setup + for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do + rm -rf /mnt/etc/${dir}/* + done + # add the halt link to the 0 and 6 runlevel directories + ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt + ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot + + # remove annoying udev rule set for changing eth interface + rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1 + + # inittab is obsolete with the change to upstart in ubuntu 7.10, but to + # prevent missunderstandings with the blank inittab created by openslx init + # we'll write a comment.. + echo "# inittab is obsolete with the change to upstart from ubuntu 7.10" \ + > /mnt/etc/inittab + + # fix getty bug (console login on tty1 is started too early) + [ -f /mnt/etc/event.d/tty1 ] && \ + sed -i "s/start on runlevel 2/start on stopped rc2/" /mnt/etc/event.d/tty1 + + # for screen sessions + testmkd /mnt/var/run/screen root:utmp 0775 + + # no additional /dev/shm mount needed as it is always used + sed -e "/Mount a tmpfs on/,/domount tmpfs /d" \ + -i /mnt/etc/init.d/mountdevsubfs.sh + + # clean up the udev script as much is handled already in stage3 + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/# This next bit can/a\ /sbin/udevadm trigger" \ + -e "/# We need the uevent/,/# It's all over/d" \ + -e "/# Log things that/,/kill \$UDEV/d" -i /mnt/etc/init.d/udev + + # clean the mountall.sh script as only swap activation needed + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/pre_mountall/,/post_mountall/d" \ + -i /mnt/etc/init.d/mountall.sh + + # add the slx specific path (/var/opt/openslx/bin) to the PATH variable + echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ +export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile + + # check for inittab file (might fail for new style init -> upstart) + #test -f /mnt/etc/inittab || test -d /mnt/etc/event.d || \ + # error "$df_erritab" +} + +# initial (boot time) runlevel scripts +initial_boot () { +local count=10 +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. Proper shutdown is +# not needed!? +for i in mountkernfs.sh mountall.sh mountdevsubfs.sh keyboard-setup procps \ +bootlogd hwclock.sh sudo console-setup udev boot.slx $D_SPLASHY; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i +done +} + +# linking runlevel scripts +rllinker () { +local script="$1" +if [ $2 -lt 10 ] ; then + local start="0$2"; else local start="$2" +fi +if [ $3 -lt 10 ] ; then + local stop="0$3"; else local stop="$3" +fi +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc2.d/K$stop$script rc3.d/K$stop$script \ + rc2.d/S$start$script rc3.d/S$start$script ; do + if ! [ -f /mnt/etc/init.d/$script ]; then + echo "Target `pwd`../$script does not exist. Skipping links" + break + else + ln -sf ../init.d/$script /mnt/etc/$i + [ "$DEBUGLEVEL" == 5 ] && echo "Linked $script" + fi +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop + +# configure udev +config_udev () { + [ -c /dev/pktcdvd ] && { rm -rf /dev/pktcdvd; mkdir /dev/pktcdvd; } + if [ -f /mnt/etc/init.d/udev-finish ] ; then + rllinker "udev-finish" 24 2 + fi +} + +# function for ntp configuration +config_ntp () { +if [ -f /mnt/etc/init.d/ntp -a "x$start_ntp" != "xno" ] ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp + rllinker "ntp" 7 14 +fi +} +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + # testmkd /mnt/var/spool/atjobs + # testmkd /mnt/var/spool/atspool + # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool + rllinker "atd" 14 4 +fi +} +# function for configuration of cron services (fixme: to be moved to a plugin?) +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" 18 2 + # fixme! check for proper permissions! + testmkd /mnt/var/spool/crontabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error "$df_errcron" nonfatal + fi +fi +} +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/ssh ] ; then + #testmkd /mnt/var/run/sshd + rllinker "ssh" 12 10 + else + error "$df_errsshd" nonfatal + fi +fi +} +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" 24 2 + testmkd /mnt/var/lib/net-snmp + fi + # fixme!! + # write service monitor depending on services started + fi +} +# acpi and powersave +config_acpi () { + rllinker "acpid" 8 16 + #Commented out since battery checking is only useful for Notebooks + #rllinker "acpi-support" 99 2 +} +# configure hal, dbus, policykitd and services like that +config_dreshal () { +if [ "x$start_dreshal" = "xyes" ]; then + testmkd /mnt/var/lib/dbus + testmkd /mnt/var/lib/misc + testmkd /mnt/var/cache/hald + touch /mnt/var/lib/misc/PolicyKit.reload + chown root:polkituser /mnt/var/lib/misc/PolicyKit.reload + rm -rf /mnt/etc/dbus-1/system.d/*etwork*anager.conf \ + /mnt/etc/dbus-1/system.d/nm-* \ + /mnt/etc/dbus-1/event.d/*NetworkManager* + sed -i /mnt/etc/PolicyKit/PolicyKit.conf \ + -e "s/\(<\/config>\)/ @@new@@\n\1/" \ + -e "s/@@new@@/<match action=\"@@action@@\">\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ <return result=\"yes\"\/>/" + sed -i /mnt/etc/dbus-1/system.d/hal.conf \ + -e "s/^\([^d]*\)deny\(.*Volume.*\)/\1allow\2/" + rllinker "dbus" 2 20 + rllinker "hal" 3 18 + if [ ! -e /mnt/etc/init.d/policykit ] ; then + testmkd /mnt/var/lib/PolicyKit root:polkituser 1770 + testmkd /mnt/var/lib/PolicyKit-public root:polkituser + else + rllinker "policykit" 18 10 + fi +fi +} + +# initialize boot.slx - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script (fixme!!) +d_mkrlscript () { +local switch="$1" +local name="$2" +local info="$3" +case "$switch" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name written \ +from $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\n\ +. /lib/lsb/init-functions\n" >/mnt/etc/init.d/$name + echo -e "\n\ncase \"\$1\" in\n start)\n\tlog_begin_msg \"$info\"" \ + >>/mnt/etc/init.d/$name + chmod u+x /mnt/etc/init.d/$name + ;; + entry) + echo -e "\t${info}" >>/mnt/etc/init.d/${name} + ;; + close) + echo -e "\tlog_end_msg 0\n\t;;\n stop)\n\t;;\nesac\nexit 0" \ + >>/mnt/etc/init.d/$name + ;; +esac +} +# configure automounter +config_automount () { +if [ -f /mnt/etc/init.d/autofs ] ; then + testmkd /mnt/var/lock/subsys + sed -e "1i# /etc/default/autofs - file modified by\n#\t$0:\n#" \ + -e "s,TIMEOUT.*,TIMEOUT=60," -i /mnt/etc/default/autofs + config_portmap + rllinker "autofs" 12 4 + rllinker "nfs-common" 11 5 +fi +} +# start portmapper (needed at least for nfsN and nis services) +config_portmap () { + rllinker "portmap" 2 20 +} +# start NIS (fixme - does the service is really named ypbind??) +config_nis () { + if [ -f /mnt/etc/init.d/ypbind ] ; then + rllinker "ypbind" 6 16 + config_portmap + testmkd /mnt/var/yp/nicknames + else + error "$df_erryp" nonfatal + fi +} +# name service caching daemon (useful in most cases) +config_nscd () { + if [ -f /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/cache/nscd + rllinker "nscd" 20 5 + fi +} diff --git a/initramfs/distro-specs/ubuntu/functions-9.04 b/initramfs/distro-specs/ubuntu/functions-9.04 index a5461d31..09567aa5 100644 --- a/initramfs/distro-specs/ubuntu/functions-9.04 +++ b/initramfs/distro-specs/ubuntu/functions-9.04 @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -14,4 +14,280 @@ # initial ramfs - stage3) It may overwrite settings from the default config # file (/etc/functions) -# no changes from default +# distro specific configuration variables used in the setup functions +# (formerly done via config-*, these variables are disputable ...) +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw part +# of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present anyhow +#D_ETCEXCL="etc/gconf/*\n*.old\n*-\netc/autoinstall\nlogrotate*\nbootloader\n\ +#*~\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +#X11/xdm/pixmaps\ndhclient.script" +D_BINDMPTS="tmp root home media" +D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm" +RODIRSINRW="/var/lib/gconf /var/lib/dpkg /var/lib/aspell /var/lib/mlocate \ +/var/lib/pango /var/lib/defoma /var/cache/fontconfig /var/lib/dkms" +#D_RWDIRSINRO="/var/lib/gdm" +D_DIRINDXS="/var/run/sysconfig/tmp /var/adm /var/lib/nobody /var/lib/pam \ +/var/lib/bluetooth /var/lib/texmf /var/lib/nfs/sm /var/lib/misc \ +/var/lib/acpi-support /var/spool/cron /var/lib/alsa /var/lock/subsys" + +# empty functions are defined at the beginning of /etc/functions + +# distro specific stuff to initialize +preinit () { + # load unix module to provide sockets (is compiled into kernel on + # the live CDs!?) + modprobe ${MODPRV} fbcon 2>/dev/null || error "$df_errumod" nonfatal +} + +# distro specific function called from servconfig script +config_distro () { + # clean the runlevel directories which will be populated by the stage3 setup + for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do + rm -rf /mnt/etc/${dir}/* + done + # add the halt link to the 0 and 6 runlevel directories + ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt + ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot + + # remove annoying udev rule set for changing eth interface + rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1 + + # inittab is obsolete with the change to upstart in ubuntu 7.10, but to + # prevent missunderstandings with the blank inittab created by openslx init + # we'll write a comment.. + echo "# inittab is obsolete with the change to upstart from ubuntu 7.10" \ + > /mnt/etc/inittab + + # fix getty bug (console login on tty1 is started too early) + [ -f /mnt/etc/event.d/tty1 ] && \ + sed -i "s/start on runlevel 2/start on stopped rc2/" /mnt/etc/event.d/tty1 + + # for screen sessions + testmkd /mnt/var/run/screen root:utmp 0775 + + # no additional /dev/shm mount needed as it is always used + sed -e "/Mount a tmpfs on/,/domount tmpfs /d" \ + -i /mnt/etc/init.d/mountdevsubfs.sh + + # clean up the udev script as much is handled already in stage3 + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/# This next bit can/a\ /sbin/udevadm trigger" \ + -e "/# We need the uevent/,/# It's all over/d" \ + -e "/# Log things that/,/kill \$UDEV/d" -i /mnt/etc/init.d/udev + + # clean the mountall.sh script as only swap activation needed + sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ + -e "/pre_mountall/,/post_mountall/d" \ + -i /mnt/etc/init.d/mountall.sh + + # add the slx specific path (/var/opt/openslx/bin) to the PATH variable + echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ +export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile + + # check for inittab file (might fail for new style init -> upstart) + #test -f /mnt/etc/inittab || test -d /mnt/etc/event.d || \ + # error "$df_erritab" +} + +# initial (boot time) runlevel scripts +initial_boot () { +local count=10 +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. Proper shutdown is +# not needed!? +for i in mountkernfs.sh mountall.sh mountdevsubfs.sh keyboard-setup procps \ +bootlogd hwclock.sh sudo console-setup udev boot.slx $D_SPLASHY; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i +done +} + +# linking runlevel scripts +rllinker () { +local script="$1" +if [ $2 -lt 10 ] ; then + local start="0$2"; else local start="$2" +fi +if [ $3 -lt 10 ] ; then + local stop="0$3"; else local stop="$3" +fi +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc2.d/K$stop$script rc3.d/K$stop$script \ + rc2.d/S$start$script rc3.d/S$start$script ; do + if ! [ -f /mnt/etc/init.d/$script ]; then + echo "Target `pwd`../$script does not exist. Skipping links" + break + else + ln -sf ../init.d/$script /mnt/etc/$i + [ "$DEBUGLEVEL" == 5 ] && echo "Linked $script" + fi +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop + +# configure udev +config_udev () { + [ -c /dev/pktcdvd ] && { rm -rf /dev/pktcdvd; mkdir /dev/pktcdvd; } + if [ -f /mnt/etc/init.d/udev-finish ] ; then + rllinker "udev-finish" 24 2 + fi +} + +# function for ntp configuration +config_ntp () { +if [ -f /mnt/etc/init.d/ntp -a "x$start_ntp" != "xno" ] ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp + rllinker "ntp" 7 14 +fi +} +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + # testmkd /mnt/var/spool/atjobs + # testmkd /mnt/var/spool/atspool + # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool + rllinker "atd" 14 4 +fi +} +# function for configuration of cron services (fixme: to be moved to a plugin?) +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" 18 2 + # fixme! check for proper permissions! + testmkd /mnt/var/spool/crontabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error "$df_errcron" nonfatal + fi +fi +} +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/ssh ] ; then + #testmkd /mnt/var/run/sshd + rllinker "ssh" 12 10 + else + error "$df_errsshd" nonfatal + fi +fi +} +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" 24 2 + testmkd /mnt/var/lib/net-snmp + fi + # fixme!! + # write service monitor depending on services started + fi +} +# acpi and powersave +config_acpi () { + rllinker "acpid" 8 16 + #Commented out since battery checking is only useful for Notebooks + #rllinker "acpi-support" 99 2 +} +# configure hal, dbus, policykitd and services like that +config_dreshal () { +if [ "x$start_dreshal" = "xyes" ]; then + testmkd /mnt/var/lib/dbus + testmkd /mnt/var/lib/misc + testmkd /mnt/var/cache/hald + touch /mnt/var/lib/misc/PolicyKit.reload + chown root:polkituser /mnt/var/lib/misc/PolicyKit.reload + rm -rf /mnt/etc/dbus-1/system.d/*etwork*anager.conf \ + /mnt/etc/dbus-1/system.d/nm-* \ + /mnt/etc/dbus-1/event.d/*NetworkManager* + sed -i /mnt/etc/PolicyKit/PolicyKit.conf \ + -e "s/\(<\/config>\)/ @@new@@\n\1/" \ + -e "s/@@new@@/<match action=\"@@action@@\">\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ <return result=\"yes\"\/>/" + sed -i /mnt/etc/dbus-1/system.d/hal.conf \ + -e "s/^\([^d]*\)deny\(.*Volume.*\)/\1allow\2/" + rllinker "dbus" 2 20 + rllinker "hal" 3 18 + if [ ! -e /mnt/etc/init.d/policykit ] ; then + testmkd /mnt/var/lib/PolicyKit root:polkituser 1770 + testmkd /mnt/var/lib/PolicyKit-public root:polkituser + else + rllinker "policykit" 18 10 + fi +fi +} + +# initialize boot.slx - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script (fixme!!) +d_mkrlscript () { +local switch="$1" +local name="$2" +local info="$3" +case "$switch" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name written \ +from $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\n\ +. /lib/lsb/init-functions\n" >/mnt/etc/init.d/$name + echo -e "\n\ncase \"\$1\" in\n start)\n\tlog_begin_msg \"$info\"" \ + >>/mnt/etc/init.d/$name + chmod u+x /mnt/etc/init.d/$name + ;; + entry) + echo -e "\t${info}" >>/mnt/etc/init.d/${name} + ;; + close) + echo -e "\tlog_end_msg 0\n\t;;\n stop)\n\t;;\nesac\nexit 0" \ + >>/mnt/etc/init.d/$name + ;; +esac +} +# configure automounter +config_automount () { +if [ -f /mnt/etc/init.d/autofs ] ; then + testmkd /mnt/var/lock/subsys + sed -e "1i# /etc/default/autofs - file modified by\n#\t$0:\n#" \ + -e "s,TIMEOUT.*,TIMEOUT=60," -i /mnt/etc/default/autofs + config_portmap + rllinker "autofs" 12 4 + rllinker "nfs-common" 11 5 +fi +} +# start portmapper (needed at least for nfsN and nis services) +config_portmap () { + rllinker "portmap" 2 20 +} +# start NIS (fixme - does the service is really named ypbind??) +config_nis () { + if [ -f /mnt/etc/init.d/ypbind ] ; then + rllinker "ypbind" 6 16 + config_portmap + testmkd /mnt/var/yp/nicknames + else + error "$df_erryp" nonfatal + fi +} +# name service caching daemon (useful in most cases) +config_nscd () { + if [ -f /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/cache/nscd + rllinker "nscd" 20 5 + fi +} diff --git a/initramfs/distro-specs/ubuntu/functions-9.10 b/initramfs/distro-specs/ubuntu/functions-9.10 index 5e5ddde1..28d1dba3 100644 --- a/initramfs/distro-specs/ubuntu/functions-9.10 +++ b/initramfs/distro-specs/ubuntu/functions-9.10 @@ -8,7 +8,7 @@ # # General information about OpenSLX can be found under http://openslx.org # -# Configuration script for Ubuntu 9.10 configure OpenSLX linux stateless +# Configuration script for Ubuntu 9.10 configure OpenSLX Linux stateless # clients (merged in stage2 with ubuntu/functions-default - and loaded within # initial ramfs - stage3) It may overwrite settings from the default config # file (/etc/functions) diff --git a/initramfs/distro-specs/ubuntu/functions-default b/initramfs/distro-specs/ubuntu/functions-default index 4215920d..bfd01524 100644 --- a/initramfs/distro-specs/ubuntu/functions-default +++ b/initramfs/distro-specs/ubuntu/functions-default @@ -1,5 +1,5 @@ # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -9,7 +9,7 @@ # # General information about OpenSLX can be found under http://openslx.org # -# Configuration script for general Ubuntu to configure OpenSLX linux +# Configuration script for general Ubuntu to configure OpenSLX Linux # stateless clients (executed within initial ramdisk after genconfig) # distro specific configuration variables used in the setup functions @@ -21,126 +21,92 @@ # D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on # TempFS usage # D_DIRINDXS - directories in client filesystem which should be present anyhow -#D_ETCEXCL="etc/gconf/*\n*.old\n*-\netc/autoinstall\nlogrotate*\nbootloader\n\ -#*~\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -#X11/xdm/pixmaps\ndhclient.script" D_BINDMPTS="tmp root home media" D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm" D_RODIRSINRW="/etc/X11/xkb /var/lib/gconf /var/lib/dpkg /var/lib/aspell \ /var/lib/pango /var/lib/defoma /var/cache/fontconfig /var/lib/dkms" -#D_RWDIRSINRO="/var/lib/gdm" -D_DIRINDXS="/var/X11R6/compose-cache /var/run/sysconfig/tmp /var/adm \ -/var/lib/nobody /var/lib/pam_devperm /var/lib/bluetooth /var/lib/texmf \ -/var/lib/nfs/sm /var/lib/misc /var/lib/acpi /var/spool/cron /var/lib/alsa \ -/var/lock/subsys/sysconfig" - -# empty functions are defined at the beginning of /etc/functions +D_DIRINDXS="/var/run/sysconfig/tmp /var/lib/nobody /var/lib/misc /var/lib/pam \ +/var/lib/bluetooth /var/lib/texmf /var/lib/nfs/sm /var/lib/acpi_support \ +/var/spool/cron /var/lib/alsa" # distro specific stuff to initialize -preinit () { - # load unix module to provide sockets (is compiled into kernel on - # the live CDs!?) - modprobe ${MODPRV} unix 2>/dev/null || error "$df_errumod" nonfatal - modprobe ${MODPRV} vesafb 2>/dev/null || error "$df_errumod" nonfatal - modprobe ${MODPRV} fbcon 2>/dev/null || error "$df_errumod" nonfatal +postinit () { + if [ $DEBUGLEVEL -gt 2 ]; then + export DEBUG_UPSTART=" -v --debug" + fi } # distro specific function called from servconfig script config_distro () { - # clean the runlevel directories which will be populated by the stage3 setup + # runlevel system changed significantly compared to pre 9.10 sys-v-init + # clean up nevertheless for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do rm -rf /mnt/etc/${dir}/* done - # add the halt link to the 0 and 6 runlevel directories - ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt - ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot - - # remove annoying udev rule set for changing eth interface - rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1 - - # inittab is obsolete with the change to upstart in ubuntu 7.10, but to - # prevent missunderstandings with the blank inittab created by openslx init - # we'll write a comment.. - echo "# inittab is obsolete with the change to upstart from ubuntu 7.10" \ - > /mnt/etc/inittab + # remove unneeded init scripts (stuff handled in stage3 which would + # interface with already existing setup) + # copy all event scripts to a special directory + testmkd /mnt/etc/init.inactive + echo -e "# This directory was created in OpenSLX stage3 and contains all \ +disabled\n# upstart scripts. They are moved by servconfig to init if this is \ +required." >/mnt/etc/init.inactive/README + mv /mnt/etc/init/* /mnt/etc/init.inactive + # copy initial upstart scripts back + for file in alsa-mixer-save.conf control-alt-delete.conf dbus.conf \ + dmesg.conf hwclock.conf hwclock-save.conf irqbalance.conf \ + module-init-tools.conf mountall.conf mounted*conf plymouth*conf \ + networking.conf procps.conf rc*.conf tty*conf udev*conf \ + upstart-udev-bridge.conf ; do + mv /mnt/etc/init.inactive/${file} /mnt/etc/init >/dev/null 2>&1 + done - # fix getty bug (console login on tty1 is started too early) - [ -f /mnt/etc/event.d/tty1 ] && \ - sed -i "s/start on runlevel 2/start on stopped rc2/" /mnt/etc/event.d/tty1 + # remove annoying udev rule set for changing eth interface and cd/dvds + rm /mnt/etc/udev/rules.d/*persistent*.rules >/dev/null 2>&1 # for screen sessions testmkd /mnt/var/run/screen root:utmp 0775 - # no additional /dev/shm mount needed as it is always used - sed -e "/Mount a tmpfs on/,/domount tmpfs /d" \ - -i /mnt/etc/init.d/mountdevsubfs.sh - - # clean up the udev script as much is handled already in stage3 - sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ - -e "/# This next bit can/a\ /sbin/udevadm trigger" \ - -e "/# We need the uevent/,/# It's all over/d" \ - -e "/# Log things that/,/kill \$UDEV/d" -i /mnt/etc/init.d/udev - - # clean the mountall.sh script as only swap activation needed - sed -e "3i# Script modified during SLX stage3 bootup (config_distro)" \ - -e "/pre_mountall/,/post_mountall/d" \ - -i /mnt/etc/init.d/mountall.sh + # add the slx specific path (/var/opt/openslx/bin) to the PATH variable + echo -e "# stuff generated by $0 (out of InitRamFS written $date)\n\ +export PATH=\"\$PATH:/var/opt/openslx/bin\"" >>/mnt/etc/profile } -# initial (boot time) runlevel scripts +# initial boot looks different since ubuntu upstart initial_boot () { -local count=10 -# boot.slx is a special runlevel script generated within initialramfs which -# should be executed before the normal runlevel scripts. Proper shutdown is -# not needed!? -for i in mountkernfs.sh mountall.sh mountdevsubfs.sh keyboard-setup procps \ -bootlogd hwclock.sh sudo console-setup udev boot.slx $D_SPLASHY; do - count=$(($count + 1)) - [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" - ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i -done + : } -# linking runlevel scripts +# runlevel linker - mostly deprecated in the old form because of new upstart +# mechanism (with backward compatibility) rllinker () { local script="$1" -if [ $2 -lt 10 ] ; then - local start="0$2"; else local start="$2" -fi -if [ $3 -lt 10 ] ; then - local stop="0$3"; else local stop="$3" -fi -# empty runlevel links - decision on running certain services is -# passed via configuration -for i in rc2.d/K$stop$script rc3.d/K$stop$script \ +# activating the new way, check if a appropriate script is available, else +# try the traditional approach +if [ -e /mnt/etc/init.inactive/${script}.conf ] ; then + mv /mnt/etc/init.inactive/${script}.conf /mnt/etc/init +elif [ -e /mnt/etc/init.d/${script} -a -n "$1" -a -n "$2" ] ; then + if [ $2 -lt 10 ] ; then + local start="0$2"; else local start="$2" + fi + if [ $3 -lt 10 ] ; then + local stop="0$3"; else local stop="$3" + fi + for i in rc2.d/K$stop$script rc3.d/K$stop$script \ rc2.d/S$start$script rc3.d/S$start$script ; do - if ! [ -f /mnt/etc/init.d/$script ]; then - echo "Target `pwd`../$script does not exist. Skipping links" - break - else ln -sf ../init.d/$script /mnt/etc/$i [ "$DEBUGLEVEL" == 5 ] && echo "Linked $script" - fi -done + done +else + error echo "Target $(pwd)../${script} does not exist. Skipping links." +fi } # set up localization like keytable, console dlocale () { # fixme -- use keytable setup script here # echo -e "\t# entries added by $0: $date" >> /mnt/etc/init.d/boot.slx -sed "s/LANG.*/LANG=\"${LANG}\"/" -i /mnt/etc/default/locale -#d_mkrlscript entry boot.slx "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" -} - -# group of functions for the normal runlevels - first parameter is start -# second stop - -# configure udev -config_udev () { - [ -c /dev/pktcdvd ] && { rm -rf /dev/pktcdvd; mkdir /dev/pktcdvd; } - if [ -f /mnt/etc/init.d/udev-finish ] ; then - rllinker "udev-finish" 24 2 - fi +sed -e "1i# File modified during SLX stage3 bootup (config_distro)" \ + -e "s/LANG.*/LANG=\"${LANG}\"/" -i /mnt/etc/default/locale } # function for ntp configuration @@ -149,7 +115,7 @@ if [ -f /mnt/etc/init.d/ntp -a "x$start_ntp" != "xno" ] ; then echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ >>/mnt/etc/passwd testmkd /mnt/var/lib/ntp/var/run/ntp - rllinker "ntp" 7 14 + fi } # function for atd @@ -158,14 +124,18 @@ if [ "x$start_atd" = "xyes" ]; then # testmkd /mnt/var/spool/atjobs # testmkd /mnt/var/spool/atspool # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool - rllinker "atd" 14 4 + if [ -f /mnt/etc/init.inactive/atd ] ; then + mv /mnt/etc/init.inactive/atd /mnt/etc/init + else + error "$df_erratd" nonfatal + fi fi } # function for configuration of cron services (fixme: to be moved to a plugin?) config_cron () { if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - rllinker "cron" 18 2 + if [ -f /mnt/etc/init.inactive/anacron ] ; then + mv /mnt/etc/init.inactive/anacron /mnt/etc/init # fixme! check for proper permissions! testmkd /mnt/var/spool/crontabs echo -e "# /etc/crontab - file generated by $0:\n\ @@ -180,30 +150,36 @@ fi # secure shell service config_sshd () { if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/ssh ] ; then - #testmkd /mnt/var/run/sshd - rllinker "ssh" 12 10 + if [ -f /mnt/etc/init.inactive/ssh.conf ] ; then + testmkd /mnt/var/run/sshd + mv /mnt/etc/init.inactive/ssh.conf /mnt/etc/init else error "$df_errsshd" nonfatal fi fi } -# snmp agent for remote monitoring +# snmp agent for remote monitoring (upstart functionality unchecked) config_snmp () { if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" 24 2 + if [ -f /mnt/etc/init.inactive/snmpd.conf ] ; then testmkd /mnt/var/lib/net-snmp - fi + mv /mnt/etc/init.inactive/snmpd.conf /mnt/etc/init + else # fixme!! # write service monitor depending on services started + : fi +fi } # acpi and powersave config_acpi () { - rllinker "acpid" 8 16 - #Commented out since battery checking is only useful for Notebooks - #rllinker "acpi-support" 99 2 + if [ -f /mnt/etc/init.inactive/acpid.conf ] ; then + mv /mnt/etc/init.inactive/acpid.conf /mnt/etc/init + else + # fixme!! + # write service monitor depending on services started + : + fi } # configure hal, dbus, policykitd and services like that config_dreshal () { @@ -223,14 +199,9 @@ if [ "x$start_dreshal" = "xyes" ]; then -e "s/@@return@@/ <return result=\"yes\"\/>/" sed -i /mnt/etc/dbus-1/system.d/hal.conf \ -e "s/^\([^d]*\)deny\(.*Volume.*\)/\1allow\2/" - rllinker "dbus" 2 20 - rllinker "hal" 3 18 - if [ ! -e /mnt/etc/init.d/policykit ] ; then - testmkd /mnt/var/lib/PolicyKit root:polkituser 1770 - testmkd /mnt/var/lib/PolicyKit-public root:polkituser - else - rllinker "policykit" 18 10 - fi + for dir in 10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d ; do + testmkd /mnt/var/lib/polkit-1/localauthority/${dir} + done fi } @@ -241,6 +212,7 @@ d_mkrlscript () { local switch="$1" local name="$2" local info="$3" +# ToDo: needs to be adapted to upstart mechanism case "$switch" in init) echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name written \ @@ -260,35 +232,46 @@ rerun\n# the mkdxsinitrd script to get them applied\n\n\ ;; esac } -# configure automounter +# configure automounter (unchecked) config_automount () { -if [ -f /mnt/etc/init.d/autofs ] ; then +if [ -f /mnt/etc/init.inactive/autofs.conf ] ; then + mv /mnt/etc/init.inactive/autofs.conf /mnt/etc/init testmkd /mnt/var/lock/subsys sed -e "1i# /etc/default/autofs - file modified by\n#\t$0:\n#" \ -e "s,TIMEOUT.*,TIMEOUT=60," -i /mnt/etc/default/autofs config_portmap - rllinker "autofs" 12 4 - rllinker "nfs-common" 11 5 + config_nfs fi } # start portmapper (needed at least for nfsN and nis services) config_portmap () { - rllinker "portmap" 2 20 + mv /mnt/etc/init.inactive/portmap.conf /mnt/etc/init + mv /mnt/etc/init.inactive/statd.conf /mnt/etc/init +} +# mostly unused yet (needs to be properly integrated) +config_nfs () { + [ -e /mnt/etc/init.inactive/gssd.conf ] && \ + mv /mnt/etc/init.inactive/gssd.conf /mnt/etc/init + [ -e /mnt/etc/init.inactive/rpc_pipefs.conf ] && \ + mv /mnt/etc/init.inactive/rpc_pipefs.conf /mnt/etc/init + [ -e /mnt/etc/init.inactive/idmapd.conf ] && \ + mv /mnt/etc/init.inactive/idmapd.conf /mnt/etc/init } -# start NIS (fixme - does the service is really named ypbind??) + +# start NIS (unchecked!! fixme - does the service is really named ypbind??) config_nis () { - if [ -f /mnt/etc/init.d/ypbind ] ; then - rllinker "ypbind" 6 16 + if [ -f /mnt/etc/init.inactive/ypbind.conf ] ; then + mv /mnt/etc/init.inactive/ypbind.conf /mnt/etc/init config_portmap testmkd /mnt/var/yp/nicknames else error "$df_erryp" nonfatal fi } -# name service caching daemon (useful in most cases) +# name service caching daemon (really existing!?) config_nscd () { - if [ -f /mnt/etc/init.d/nscd ] ; then - testmkd /mnt/var/cache/nscd - rllinker "nscd" 20 5 - fi + #if [ -f /mnt/etc/init.inactive/nscd.conf ] ; then + # testmkd /mnt/var/cache/nscd + #fi + : } diff --git a/initramfs/stage3-stuff/bin/hwautocfg b/initramfs/stage3-stuff/bin/hwautocfg index 0bfbdd2c..fee54a16 100755 --- a/initramfs/stage3-stuff/bin/hwautocfg +++ b/initramfs/stage3-stuff/bin/hwautocfg @@ -29,8 +29,14 @@ echo "0 0 0 0" >/proc/sys/kernel/printk echo "/sbin/mdev" >/proc/sys/kernel/hotplug modprobe -a ${MODPRV} usbhid hid-bright 2>/dev/null & nwcardlist=$(echo ${slxconf_listnwmod}|sed "s/\ /|/g") -hwinfo --netcard --usb-ctrl | grep modprobe | grep -E "$nwcardlist|hcd" | \ +# save results for later info and for Xen plugin when starting Xen VM +hwinfo --netcard --usb-ctrl >/etc/hwinfo.netcard-usbctrl +grep modprobe /etc/hwinfo.netcard-usbctrl | grep -E "$nwcardlist|hcd" | \ grep -v ehci | sed 's/.* Cmd: "//;s/"//' | sort -u >/etc/modprobe.base +# virtio hack +if [ $(grep -ic "virtio_pci" /etc/modprobe.base) -ge 1 ]; then + echo "modprobe virtio_net" >>/etc/modprobe.base +fi ash /etc/modprobe.base; mdev -s # optimization possible: exclude network and usb base drivers from the # following list (bios detection for non-hwautocfg component) diff --git a/initramfs/stage3-stuff/etc/functions b/initramfs/stage3-stuff/etc/functions index 4788a72b..f9ad22ae 100644 --- a/initramfs/stage3-stuff/etc/functions +++ b/initramfs/stage3-stuff/etc/functions @@ -1023,3 +1023,7 @@ config_nfsv4 () { keytable () { : } +# set up localization like keytable, console +dlocale () { +: +} diff --git a/initramfs/stage3-stuff/etc/messages b/initramfs/stage3-stuff/etc/messages index 734414c7..8c362144 100644 --- a/initramfs/stage3-stuff/etc/messages +++ b/initramfs/stage3-stuff/etc/messages @@ -112,9 +112,6 @@ init_wait=" Waited $ticks ticks to unmount kernel module or firmware \ directory ..." init_errumnt=" Unmount of the kernel modules directory \ failed for some reason. Some\n modprobe process still active!?" -init_erritab=" The file /etc/inittab does not exist or is no regular one. It \ -is needed\n for the bootup procedure to follow. If upstart is used instead no \ -inittab\n is needed any more, but a proper configured events.d." init_errsys=" Unmount of the kernel sys directory \ failed for some\nreason. You will get some error messages that some files \ could not be\n removed." @@ -151,6 +148,9 @@ configuration\n from your server. You could find that out by checking if \ /initramfs and\n /rootfs are present!" # messages from distro functions +df_erritab=" The file /etc/inittab does not exist or is no regular one. It \ +is needed\n for the bootup procedure to follow. If upstart is used instead no \ +inittab\n is needed any more, but a proper configured events.d." df_errumod=" Failed to load the \"unix\" module. Problems with Hardware \ detection\nwill probably arise." df_errserv="seems not to be installed or start script is\n not available\ diff --git a/initramfs/stage3-stuff/etc/messages.de b/initramfs/stage3-stuff/etc/messages.de index dee39590..0d68b551 100644 --- a/initramfs/stage3-stuff/etc/messages.de +++ b/initramfs/stage3-stuff/etc/messages.de @@ -1,5 +1,5 @@ # Copyright (c) 2003 - 2006 - RZ Uni Freiburg -# Copyright (c) 2006 - 2009 - OpenSLX GmbH +# Copyright (c) 2006 - 2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -121,8 +121,6 @@ init_wait=" Wartete $i Zeiteinheiten das Kernel-Modul- bzw. Firmware-Verzeichni auszuhaengen ..." init_errumnt=" Das Kernel Modul Verzeichnis auszuhaengen \ scheiterte aus irgendeinem Grund. Sind einige\n ,,modprobe'' noch aktiv!?" -init_erritab=" Die Datei /etc/inittab existiert nicht oder \ -ist keine regulaere. \nSie wird fuer den Boot-Process benoetigt." init_errsys=" Aushaengen des Kernel /sys Verzeichnisses schlug aus irgendeinem \ Grund\n fehl. Sie werden einige Fehlermeldungen bekommen,\ \ndass einige Dateien nicht entfernt werden konnten." @@ -160,6 +158,8 @@ erkennen Sie daran,\n dass die Verzeichnisse /initramfs, /rootfs angelegt \ wurden. Ihr\n OpenSLX Client wird deshalb nicht wie erwartet funktionieren." # messages from distro functions +df_erritab=" Die Datei /etc/inittab existiert nicht oder ist keine regulaere. \ +\n Sie wird fuer den Boot-Process benoetigt." df_errumod=" Das Laden des \"unix\" Moduls schlug fehl. \nWahrscheinlich \ werden Probleme bei der Hardware-Erkennung auftreten." df_errserv="ist entweder nicht installiert oder das Start-Skript ist nicht \ diff --git a/initramfs/stage3-stuff/init b/initramfs/stage3-stuff/init index a96c66e0..40816192 100755 --- a/initramfs/stage3-stuff/init +++ b/initramfs/stage3-stuff/init @@ -1,6 +1,6 @@ #!/bin/ash # Copyright (c) 2003..2006 - RZ Uni Freiburg -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -379,6 +379,7 @@ else fi runinithook '10-nw-if-config' + # check for multiple ethernet interfaces (we have at least the mac of PXE boot # device in $bootmac) # check here for the active ethernet link (skip non-ethN interfaces) @@ -410,6 +411,7 @@ if strinstr "eth" "$nwif" ; then done fi # hook to setup bridging (several virtualization tools ...) + runinithook '20-nw-bridge-config' # set up loopback networking @@ -802,6 +804,14 @@ fi runinithook '50-have-layered-fs' +# generate a set of default directories +. /etc/openslx.conf +for dir in $OPENSLX_DEFAULT_LOGDIR $OPENSLX_DEFAULT_BINDIR \ + $OPENSLX_DEFAULT_LIBDIR $OPENSLX_DEFAULT_VIRTDIR; do + testmkd /mnt/$dir +done +chmod -R 1777 /mnt/${OPENSLX_DEFAULT_LOGDIR} + # script for stuff to execute during early bootup d_mkrlscript init boot.slx "Running configuration postponed from InitRamFS" echo "fs complete at $(sysup)" >/tmp/fscmpl @@ -927,6 +937,7 @@ else fi runinithook '80-after-plugins' + # runtimer [ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ echo "** Plugin configuration finished at $(sysup)" @@ -969,8 +980,6 @@ mount 2>/dev/null | grep -q "/tmp/scratch type nfs" && \ done mount 2>/dev/null | grep -q /lib/modules && error "$init_errumnt" -# check for inittab file (might fail for new style init -> upstart) -test -f /mnt/etc/inittab || test -d /mnt/etc/event.d || error "$init_erritab" # close runlevel script for stuff to execute during early bootup d_mkrlscript close boot.slx "" # put /tmp into stage4 mtab and add stuff to stage4 fstab @@ -1015,4 +1024,5 @@ unset BOOT_IMAGE KCMDLINE KERNEL MODPRV NWMODULES OLDPWD UDEVD_EVENT_TIMEOUT \ runinithook '99-handing-over' # new style of pivoting (switch_root or run-init) -exec /sbin/switch_root -c dev/console /mnt /sbin/init || error "$init_runinit" +exec /sbin/switch_root -c dev/console /mnt /sbin/init $DEBUG_UPSTART || \ + error "$init_runinit" diff --git a/installer/OpenSLX/OSExport/Distro/Ubuntu.pm b/installer/OpenSLX/OSExport/Distro/Ubuntu.pm index aff03cf3..ef844d51 100644 --- a/installer/OpenSLX/OSExport/Distro/Ubuntu.pm +++ b/installer/OpenSLX/OSExport/Distro/Ubuntu.pm @@ -41,6 +41,8 @@ sub initDistroInfo - /var/spool/* - /var/run/* - /var/log/* + - /var/log/apt/* + + /var/log/apt - /var/lib/*dm/* - /var/lib/libnss-ldap/* - /var/cache/apt/archives/* diff --git a/installer/OpenSLX/OSSetup/Distro/Base.pm b/installer/OpenSLX/OSSetup/Distro/Base.pm index 99bae53f..f3fe05ab 100644 --- a/installer/OpenSLX/OSSetup/Distro/Base.pm +++ b/installer/OpenSLX/OSSetup/Distro/Base.pm @@ -72,7 +72,8 @@ sub initialize - /var/cache/apt/archives/lock - /var/cache/apt/archives/partial/* + /var/cache/apt/archives/partial - - /var/tmp/* + - /var/tmp/* + + /var/tmp/apt - /var/opt/openslx - /var/lib/vmware - /var/lib/ntp/* @@ -101,14 +102,16 @@ sub initialize + /lib - /home/* + /home - - /etc/vmware/installer.sh + - /etc/vmware/* + + /etc/vmware + - /etc/vmware-installer - /etc/grub* - /etc/shadow* - /etc/samba/secrets.tdb - /etc/resolv.conf.* - /etc/opt/openslx - /etc/exports* - - /etc/X11/xorg.c* + - /etc/X11/xorg.* - /etc/X11/XF86* + /etc - /dev/* @@ -117,6 +120,7 @@ sub initialize + /bin - /* - .svn + - .git - .*.cmd - *~ - *lost+found* diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm index 911fc543..72e8c7e8 100644 --- a/installer/OpenSLX/OSSetup/Engine.pm +++ b/installer/OpenSLX/OSSetup/Engine.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -56,6 +56,8 @@ use vars qw(%supportedDistros); 'suse-11.0_x86_64' => 'clone,update,shell', 'suse-11.1' => 'clone,install,update,shell', 'suse-11.1_x86_64' => 'clone,update,shell', + 'suse-11.2' => 'clone,install,update,shell', + 'suse-11.2_x86_64' => 'clone,update,shell', 'scilin-4.7' => 'clone,update,shell', 'scilin-5.3' => 'clone,update,shell', 'ubuntu-8.04' => 'clone,install,update,shell', @@ -66,6 +68,8 @@ use vars qw(%supportedDistros); 'ubuntu-9.04_amd64' => 'clone,update,shell', 'ubuntu-9.10' => 'clone,install,update,shell', 'ubuntu-9.10_amd64' => 'clone,update,shell', + 'ubuntu-10.04' => 'clone,install,update,shell', + 'ubuntu-10.04_amd64'=> 'clone,update,shell', ); my %localHttpServers; @@ -1102,8 +1106,9 @@ sub _generateDefaultDirs my $OPENSLX_DEFAULT_DIR = "/opt/openslx"; my $OPENSLX_DEFAULT_CONFDIR = "/etc/opt/openslx"; my $OPENSLX_DEFAULT_LOGDIR = "/var/log/openslx"; - my $OPENSLX_DEFAULT_BINDIR = "/var/opt/openslx/bin"; - my $OPENSLX_DEFAULT_LIBDIR = "/var/opt/openslx/lib"; + my $OPENSLX_DEFAULT_VARDIR = "/var/opt/openslx"; + my $OPENSLX_DEFAULT_BINDIR = "$OPENSLX_DEFAULT_VARDIR/bin"; + my $OPENSLX_DEFAULT_LIBDIR = "$OPENSLX_DEFAULT_VARDIR/lib"; my $OPENSLX_DEFAULT_VIRTDIR = "/var/lib/virt"; mkpath("$targetRoot/$OPENSLX_DEFAULT_DIR", "$targetRoot/$OPENSLX_DEFAULT_CONFDIR", @@ -1113,9 +1118,12 @@ sub _generateDefaultDirs "$targetRoot/$OPENSLX_DEFAULT_VIRTDIR"); slxsystem("chmod 1777 $targetRoot/$OPENSLX_DEFAULT_LOGDIR"); - my $openslxConfig = "OPENSLX_DEFAULT_DIR=$OPENSLX_DEFAULT_DIR\n"; + my $openslxConfig = "# Default OpenSLX directories defined by satge 1\n"; + $openslxConfig .= "# Version 0.2\n\n"; + $openslxConfig .= "OPENSLX_DEFAULT_DIR=$OPENSLX_DEFAULT_DIR\n"; $openslxConfig .= "OPENSLX_DEFAULT_CONFDIR=$OPENSLX_DEFAULT_CONFDIR\n"; $openslxConfig .= "OPENSLX_DEFAULT_LOGDIR=$OPENSLX_DEFAULT_LOGDIR\n"; + $openslxConfig .= "OPENSLX_DEFAULT_VARDIR=$OPENSLX_DEFAULT_VARDIR\n"; $openslxConfig .= "OPENSLX_DEFAULT_BINDIR=$OPENSLX_DEFAULT_BINDIR\n"; $openslxConfig .= "OPENSLX_DEFAULT_LIBDIR=$OPENSLX_DEFAULT_LIBDIR\n"; $openslxConfig .= "OPENSLX_DEFAULT_VIRTDIR=$OPENSLX_DEFAULT_VIRTDIR\n"; @@ -1151,7 +1159,6 @@ sub _copyUclibcRootfs kexec libcurses.so* libncurses.so* - mconf strace ); my $exclOpts = join ' ', map { "--exclude $_" } @excludes; diff --git a/lib/OpenSLX/DistroUtils/InitFile.pm b/lib/OpenSLX/DistroUtils/InitFile.pm index a7e5da5d..ab729959 100644 --- a/lib/OpenSLX/DistroUtils/InitFile.pm +++ b/lib/OpenSLX/DistroUtils/InitFile.pm @@ -144,10 +144,10 @@ sub setDesc { } sub addFunction { - my $self = shift; - my $name = shift; - my $script = shift; - my $flags = shift || {}; + my $self = shift; + my $name = shift; + my $script = shift; + my $flags = shift || {}; my $priority = $flags->{priority} || 5; push(@{$self->{'configHash'}->{'highlevelConfig'}}, diff --git a/lib/OpenSLX/Syscall.pm b/lib/OpenSLX/Syscall.pm index 172db4d0..da72ae3d 100644 --- a/lib/OpenSLX/Syscall.pm +++ b/lib/OpenSLX/Syscall.pm @@ -73,23 +73,25 @@ sub _loadPerlHeader # any of these). # If they are missing, we just have a go at creating all of them: mkpath($phLibDir) unless -e $phLibDir; - if (-l "/usr/include/asm" && !-e "$phLibDir/asm") { - my $asmFolder = readlink("/usr/include/asm"); - slxsystem("cd /usr/include && h2ph -rQ -d $phLibDir $asmFolder") == 0 - or die _tr('unable to create Perl-header from "asm" folder! (%s)', $!); - slxsystem("mv $phLibDir/$asmFolder $phLibDir/asm") == 0 - or die _tr('unable to cleanup "asm" folder for Perl headers! (%s)', $!); - } - elsif (-d "/usr/include/asm") { - slxsystem("cd /usr/include && h2ph -rQ -d $phLibDir asm") == 0 - or die _tr('unable to create Perl-header from "asm" folder! (%s)', $!); - } - else { - die _tr( - 'the folder "/usr/include/asm" is required - please install kernel headers!' - ); + if (!-e "$phLibDir/asm") { + if (-l "/usr/include/asm") { + my $asmFolder = readlink("/usr/include/asm"); + slxsystem("cd /usr/include && h2ph -rQ -d $phLibDir $asmFolder") == 0 + or die _tr('unable to create Perl-header from "asm" folder! (%s)', $!); + slxsystem("mv $phLibDir/$asmFolder $phLibDir/asm") == 0 + or die _tr('unable to cleanup "asm" folder for Perl headers! (%s)', $!); + } + elsif (-d "/usr/include/asm") { + slxsystem("cd /usr/include && h2ph -rQ -d $phLibDir asm") == 0 + or die _tr('unable to create Perl-header from "asm" folder! (%s)', $!); + } + else { + die _tr( + 'the folder "/usr/include/asm" is required - please install kernel headers!' + ); + } } - if (-e "usr/include/asm-generic" && !-e "$phLibDir/asm-generic") { + if (-e "/usr/include/asm-generic" && !-e "$phLibDir/asm-generic") { slxsystem("cd /usr/include && h2ph -rQ -d $phLibDir asm-generic") == 0 or die _tr('unable to create Perl-header from "asm-generic" folder! (%s)', $!); } diff --git a/lib/distro-info/suse-11.2/export-filter.example b/lib/distro-info/suse-11.2/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/lib/distro-info/suse-11.2/export-filter.example @@ -0,0 +1,15 @@ +# this file defines the filter rules used when exporting a vendor-OS +# of this distro +# +# copy this file to 'export-filter' and add your own filters to it +# in order to overrule the filters provided by openslx +# +#Examples: +# the following line would include anything below /var/spool/ +#+ /var/spool/* +# +# this would exclude anything in /etc that starts with dhcpd.conf +#- /etc/dhcpd.conf* +# +# and this would exclude all rpmnew-files: +#- *.rpmnew diff --git a/lib/distro-info/suse-11.2/mirrors/base b/lib/distro-info/suse-11.2/mirrors/base new file mode 100644 index 00000000..e30465d5 --- /dev/null +++ b/lib/distro-info/suse-11.2/mirrors/base @@ -0,0 +1,252 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.2/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.2/repo/oss +http://www.lizardsource.cn/distribution/11.2/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.2/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.2/repo/oss +http://download.opensuse.or.id/distribution/11.2/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.2/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/11.2/repo/oss +ftp://www.lizardsource.cn/distribution/11.2/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.2/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.2/repo/oss +http://opensuse.cbn.net.id/distribution/11.2/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/11.2/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/11.2/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.2/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.2/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.2/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.2/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.2/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.2/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.2/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.2/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.2/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.2/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.2/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.2/repo/oss +http://ftp.daum.net/opensuse/distribution/11.2/repo/oss +http://77.88.19.68/opensuse/distribution/11.2/repo/oss +http://77.88.19.73/opensuse/distribution/11.2/repo/oss +http://mirror.suse.ru/distribution/11.2/repo/oss +http://77.88.19.74/opensuse/distribution/11.2/repo/oss +http://93.158.155.193/opensuse/distribution/11.2/repo/oss +ftp://ftp.daum.net/opensuse/distribution/11.2/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.2/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.2/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.2/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.2/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.2/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.2/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/11.2/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.2/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.2/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.2/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.2/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.2/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.2/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.2/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.2/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.2/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.2/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.2/repo/oss +http://suse.inode.at/opensuse/distribution/11.2/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.2/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.2/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.2/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.2/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.2/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.2/repo/oss +http://suse.lagis.at/opensuse/distribution/11.2/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.2/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.2/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.2/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.2/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.2/repo/oss +ftp://suse.lagis.at/opensuse/distribution/11.2/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.2/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.2/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.2/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/11.2/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.2/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.2/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.2/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.2/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.2/repo/oss +http://opensuse.intergenia.de/distribution/11.2/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.2/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.2/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.2/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.2/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.2/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://widehat.opensuse.org/distribution/11.2/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.2/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.2/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.2/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.2/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.2/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.2/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.2/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.2/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.2/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/11.2/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.2/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.2/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/11.2/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.2/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.2/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.2/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.2/repo/oss +http://opensuse.cict.fr/distribution/11.2/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/11.2/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.2/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.2/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.2/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.2/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.2/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.2/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.2/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.2/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.2/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.2/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.2/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.2/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.2/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.2/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.2/repo/oss +http://repo1.linux.edu.lv/distribution/11.2/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.2/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.2/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.2/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.2/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.2/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.2/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.2/repo/oss +http://opensuse.uib.no/distribution/11.2/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.2/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.2/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.2/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.2/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.2/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.2/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.2/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.2/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.2/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.2/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.2/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.2/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.2/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/11.2/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.2/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/11.2/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.2/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.2/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.2/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.2/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.2/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.2/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.2/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.2/repo/oss +http://opensuse.ynet.sk/distribution/11.2/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.2/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.2/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.2/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.2/repo/oss +http://linux.dell.com/repo/community/distribution/11.2/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.2/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.2/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.2/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.2/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/11.2/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.2/repo/oss +http://opensuse.cs.utah.edu/distribution/11.2/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.2/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.2/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.2/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.2/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.2/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.2/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.2/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.2/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/11.2/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/11.2/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.2/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/11.2/repo/oss +http://130.57.19.201/distribution/11.2/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.2/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.2/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.2/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.2/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.2/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.2/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/11.2/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.2/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.2/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.2/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.2/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.2/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.2/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.2/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.2/repo/oss +ftp://mirror.nyi.net/opensusedistribution/11.2/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.2/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.2/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.2/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.2/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.2/repo/oss +http://opensuse.patan.com.ar/distribution/11.2/repo/oss +http://200.221.9.37/pub/opensuse/distribution/11.2/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/11.2/repo/oss +http://opensuse.pop.com.br/distribution/11.2/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.2/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.2/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.2/repo/oss diff --git a/lib/distro-info/suse-11.2/mirrors/base_non-oss b/lib/distro-info/suse-11.2/mirrors/base_non-oss new file mode 100644 index 00000000..47ee0d08 --- /dev/null +++ b/lib/distro-info/suse-11.2/mirrors/base_non-oss @@ -0,0 +1,250 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.2/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.2/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/11.2/repo/non-oss +http://www.lizardsource.cn/distribution/11.2/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.2/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.2/repo/non-oss +ftp://www.lizardsource.cn/distribution/11.2/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.2/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.2/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.2/repo/non-oss +http://download.opensuse.or.id/distribution/11.2/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.2/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.2/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/11.2/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.2/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.2/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.2/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.2/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.2/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.2/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.daum.net/opensuse/distribution/11.2/repo/non-oss +http://77.88.19.68/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.2/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.2/repo/non-oss +http://mirror.suse.ru/distribution/11.2/repo/non-oss +http://77.88.19.74/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.2/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/11.2/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.2/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.2/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.2/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.2/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.2/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.2/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.2/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.2/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.2/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.2/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.2/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.2/repo/non-oss +http://suse.lagis.at/opensuse/distribution/11.2/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/11.2/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.2/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.2/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.2/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.2/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.2/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.2/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.2/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.2/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.2/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.2/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://opensuse.intergenia.de/distribution/11.2/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.2/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.2/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.2/repo/non-oss +http://widehat.opensuse.org/distribution/11.2/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.2/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/11.2/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.2/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.2/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/11.2/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.2/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.2/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.2/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.2/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.2/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/11.2/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.2/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.2/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.2/repo/non-oss +http://opensuse.cict.fr/distribution/11.2/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.2/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.2/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.2/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/11.2/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.2/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.2/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.2/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.2/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.2/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.2/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.2/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.2/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.2/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.2/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.2/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.2/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.2/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.2/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.2/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/11.2/repo/non-oss +http://opensuse.uib.no/distribution/11.2/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.2/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.2/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.2/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.2/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.2/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.2/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.2/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.2/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.2/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.2/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.2/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.2/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.2/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.2/repo/non-oss +http://opensuse.ynet.sk/distribution/11.2/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.2/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.2/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/11.2/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.2/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.2/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.2/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.2/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.2/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.2/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.2/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.2/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.2/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/11.2/repo/non-oss +http://opensuse.cs.utah.edu/distribution/11.2/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/11.2/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.2/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.2/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.2/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/11.2/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/11.2/repo/non-oss +http://130.57.19.201/distribution/11.2/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/11.2/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/11.2/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.2/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.2/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.2/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.2/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.2/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.2/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.2/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.2/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.2/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.2/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.2/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.2/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.2/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.2/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.2/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/11.2/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.2/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.2/repo/non-oss +http://opensuse.patan.com.ar/distribution/11.2/repo/non-oss +http://opensuse.pop.com.br/distribution/11.2/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.2/repo/non-oss diff --git a/lib/distro-info/suse-11.2/mirrors/base_update b/lib/distro-info/suse-11.2/mirrors/base_update new file mode 100644 index 00000000..bc6e9a4c --- /dev/null +++ b/lib/distro-info/suse-11.2/mirrors/base_update @@ -0,0 +1,252 @@ +http://mirror.lupaworld.com/opensuse/update/11.2 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.2 +http://opensuse.mirror.ac.za/opensuse/update/11.2 +ftp://opensuse.mirror.ac.za/opensuse/update/11.2 +http://www.lizardsource.cn/update/11.2 +http://mirror.alva.ge/pub/opensuse/update/11.2 +http://mirror.alva.ge/pub/opensuse/update/11.2 +http://download.opensuse.or.id/update/11.2 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.2 +ftp://www.lizardsource.cn/update/11.2 +http://opensuse.cbn.net.id/update/11.2 +http://mirror.unej.ac.id/opensuse/update/11.2 +http://dl2.foss-id.web.id/opensuse/update/11.2 +ftp://mirror.isoc.org.il/opensuse/update/11.2 +http://repo.ugm.ac.id/opensuse/update/11.2 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.2 +http://mirror.isoc.org.il/pub/opensuse/update/11.2 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.2 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.2 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.2 +ftp://mirror.unej.ac.id/opensuse/update/11.2 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.2 +http://ftp.novell.co.jp/pub/opensuse/update/11.2 +ftp://repo.ugm.ac.id/opensuse/update/11.2 +http://ftp.riken.jp/Linux/opensuse/update/11.2 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.2 +ftp://ftp.kddilabs.jp/Linux/packages/opensuseupdate/11.2 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.2 +http://77.88.19.68/opensuse/update/11.2 +ftp://ftp.daum.net/opensuse/update/11.2 +http://77.88.19.73/opensuse/update/11.2 +ftp://ftp.riken.jp/Linux/opensuse/update/11.2 +http://mirror.suse.ru/update/11.2 +http://77.88.19.74/opensuse/update/11.2 +http://ftp.daum.net/opensuse/update/11.2 +http://93.158.155.193/opensuse/update/11.2 +ftp://ftp.kaist.ac.kr/opensuse/update/11.2 +ftp://spreader.yandex.net/opensuse/update/11.2 +ftp://ftp.chg.ru/pub/opensuse/update/11.2 +ftp://seeder.yandex.net/opensuse/update/11.2 +http://mirror.nus.edu.sg/opensuse/update/11.2 +ftp://mirror.in.th/opensuse/update/11.2 +ftp://allotter.yandex.net/opensuse/update/11.2 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.2 +ftp://ftp.metu.edu.tr/opensuse/update/11.2 +ftp://dispenser.yandex.net/opensuse/update/11.2 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.2 +http://ftp.chg.ru/pub/opensuse/update/11.2 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/11.2 +http://mirror-fpt-telecom.fpt.net/opensuse/update/11.2 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/11.2 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.2 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/11.2 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.2 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/11.2 +http://suse.inode.at/opensuse/update/11.2 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.2 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/11.2 +http://ftp.tugraz.at/mirror/opensuse/update/11.2 +ftp://suse.inode.at/opensuse/update/11.2 +http://suse.lagis.at/opensuse/update/11.2 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.2 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.2 +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.2 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.2 +ftp://suse.lagis.at/opensuse/update/11.2 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.2 +http://mirror.opensuse.com.ba/opensuse/update/11.2 +http://mirrors.netbg.com/opensuse/update/11.2 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.2 +ftp://mirror.switch.ch/mirror/opensuse/update/11.2 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.2 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.2 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.2 +http://ftp5.gwdg.de/pub/opensuse/update/11.2 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.2 +http://ftp.linux.cz/pub/linux/opensuse/update/11.2 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.2 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.2 +ftp://mirrors.netbg.com/opensuse/update/11.2 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.2 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.2 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.2 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.2 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.2 +ftp://ftp5.gwdg.de/pub/opensuse/update/11.2 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/11.2 +http://opensuse.intergenia.de/update/11.2 +http://ftp.uni-ulm.de/mirrors/opensuse/update/11.2 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.2 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.2 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.2 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.2 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.2 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.2 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.2 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.2 +http://ftp3.gwdg.de/pub/opensuse/update/11.2 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.2 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.2 +http://widehat.opensuse.org/update/11.2 +http://ftp4.gwdg.de/pub/opensuse/update/11.2 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.2 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.2 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.2 +http://ftp.uni-kassel.de/opensuse/update/11.2 +http://ftp.uni-bayreuth.de/linux/opensuse/update/11.2 +http://opensuse-linuxmigratio.at/update/11.2 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/11.2 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/11.2 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.2 +ftp://ftp.uni-siegen.de/pub/opensuse/update/11.2 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.2 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.2 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.2 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.2 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.2 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/11.2 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/11.2 +http://ftp.rediris.es/pub/mirror/opensuse/update/11.2 +ftp://ftp.klid.dk/opensuse/update/11.2 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.2 +http://suse.bifi.unizar.es/opensuse/update/11.2 +http://ftp.uni-siegen.de/opensuse/update/11.2 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.2 +http://ftp.klid.dk/ftp/opensuse/update/11.2 +http://opensuse.mirrors.proxad.net/opensuse/update/11.2 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/11.2 +ftp://mirror.ovh.net/opensuse/update/11.2 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.2 +http://mirror.ovh.net/opensuse/update/11.2 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.2 +http://fr2.rpmfind.net/linux/opensuse/update/11.2 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/11.2 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.2 +ftp://fr2.rpmfind.net/linux/opensuse/update/11.2 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.2 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.2 +http://opensuse.cict.fr/update/11.2 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.2 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.2 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.2 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.2 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.2 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/11.2 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.2 +http://roxen.integrity.hu/pub/opensuse/update/11.2 +ftp://mirror.cict.fr/opensuse/update/11.2 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.2 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.2 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.2 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.2 +http://rm.mirror.garr.it/mirrors/opensuse/update/11.2 +http://repo1.linux.edu.lv/update/11.2 +ftp://repo1.linux.edu.lv/update/11.2 +http://mirror.leaseweb.com/opensuse/update/11.2 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.2 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.2 +ftp://mirror.leaseweb.com/opensuse/update/11.2 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.2 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.2 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.2 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.2 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.2 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.2 +http://opensuse.hro.nl/opensuse/update/11.2 +http://opensuse.uib.no/update/11.2 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/11.2 +http://ftp.uninett.no/pub/linux/opensuse/update/11.2 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.2 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.2 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/11.2 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.2 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.2 +ftp://opensuse.hro.nl/opensuse/update/11.2 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.2 +ftp://ftp.pbone.net/pub/opensuse/update/11.2 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.2 +http://ftp.sileman.pl/pub/opensuse/update/11.2 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.2 +ftp://ftp.sileman.pl/pub/opensuse/update/11.2 +ftp://ftp.pbone.net/pub/opensuse/update/11.2 +http://cesium.di.uminho.pt/pub/opensuse/update/11.2 +http://ftp.gts.lug.ro/opensuse/update/11.2 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.2 +ftp://ftp.gts.lug.ro/opensuse/update/11.2 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.2 +http://ftp.ines.lug.ro/opensuse/update/11.2 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.2 +ftp://ftp.ines.lug.ro/opensuse/update/11.2 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.2 +http://mirrors.se.eu.kernel.org/opensuse/update/11.2 +http://ftp.df.lth.se/pub/opensuse/update/11.2 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.2 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.2 +http://opensuse.ynet.sk/update/11.2 +ftp://mirrors.se.eu.kernel.org/opensuse/update/11.2 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.2 +ftp://less.cogeco.net/openSUSE/update/11.2 +http://www.muug.mb.ca/pub/opensuse/update/11.2 +http://linux.dell.com/repo/community/update/11.2 +http://ftp.osuosl.org/pub/opensuse/update/11.2 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.2 +http://less.cogeco.net/ftp/openSUSE/update/11.2 +ftp://www.muug.mb.ca/pub/opensuse/update/11.2 +http://suse.mirrors.tds.net/pub/opensuse/update/11.2 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.2 +ftp://suse.mirrors.tds.net/pub/opensuse/update/11.2 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.2 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.2 +http://mirror.umoss.org/opensuse/update/11.2 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.2 +http://opensuse.cs.utah.edu/update/11.2 +http://mirrors.med.harvard.edu/opensuse/update/11.2 +ftp://ftp.osuosl.org/pub/opensuse/update/11.2 +http://mirrors.xmission.com/opensuse/update/11.2 +ftp://mirrors.xmission.com/opensuse/update/11.2 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.2 +http://mirrors1.kernel.org/opensuse/update/11.2 +http://opensuse.ca.unixheads.org/update/11.2 +http://mirror.rackspace.com/openSUSE/update/11.2 +http://130.57.19.201/update/11.2 +http://mirrors2.kernel.org/opensuse/update/11.2 +ftp://mirrors1.kernel.org/opensuse/update/11.2 +ftp://130.57.19.201/pub/opensuse/update/11.2 +ftp://mirrors2.kernel.org/opensuse/update/11.2 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.2 +ftp://mirror.rackspace.com/openSUSE/update/11.2 +http://ftp.utexas.edu/opensuse/update/11.2 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.2 +ftp://mirror.colorado.edu/pub/opensuse/update/11.2 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.2 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/11.2 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/11.2 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/11.2 +ftp://ftp.ussg.iu.edu/linux/opensuse/update/11.2 +http://mirror.nyi.net/opensuse/update/11.2 +ftp://mirror.colorado.edu/pub/opensuse/update/11.2 +http://mirrors.rit.edu/opensuse/update/11.2 +ftp://mirror.nyi.net/opensuseupdate/11.2 +http://ftp.iinet.net.au/pub/opensuse/update/11.2 +http://mirror.internode.on.net/pub/opensuse/update/11.2 +http://mirror.pacific.net.au/linux/opensuse/update/11.2 +ftp://ftp.iinet.net.au/pub/opensuse/update/11.2 +ftp://mirror.internode.on.net/pub/opensuse/update/11.2 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.2 +http://opensuse.patan.com.ar/update/11.2 +http://opensuse.c3sl.ufpr.br/update/11.2 +http://200.221.9.37/pub/opensuse/update/11.2 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.2 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.2 +http://opensuse.pop.com.br/update/11.2 diff --git a/lib/distro-info/suse-11.2/prereqfiles/etc/group b/lib/distro-info/suse-11.2/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/lib/distro-info/suse-11.2/prereqfiles/etc/group @@ -0,0 +1,33 @@ +root:x:0: +bin:x:1:daemon +daemon:x:2: +sys:x:3: +tty:x:5: +disk:x:6: +lp:x:7: +www:x:8: +kmem:x:9: +wheel:x:10: +mail:x:12: +news:x:13: +uucp:x:14: +shadow:x:15: +dialout:x:16: +audio:x:17: +floppy:x:19: +cdrom:x:20: +console:x:21: +utmp:x:22: +public:x:32: +video:x:33: +games:x:40: +xok:x:41: +trusted:x:42: +modem:x:43: +ftp:x:49: +man:x:62: +users:x:100: +nobody:x:65533: +nogroup:x:65534:nobody +messagebus:!:101: +haldaemon:!:102: diff --git a/lib/distro-info/suse-11.2/prereqfiles/etc/hosts b/lib/distro-info/suse-11.2/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/lib/distro-info/suse-11.2/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/lib/distro-info/suse-11.2/prereqfiles/etc/passwd b/lib/distro-info/suse-11.2/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/lib/distro-info/suse-11.2/prereqfiles/etc/passwd @@ -0,0 +1,14 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/bash +daemon:x:2:2:Daemon:/sbin:/bin/bash +lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash +mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false +news:x:9:13:News system:/etc/news:/bin/bash +uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash +games:x:12:100:Games account:/var/games:/bin/bash +man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash +wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false +ftp:x:40:49:FTP account:/srv/ftp:/bin/bash +nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash +messagebus:x:100:101:User for D-Bus:/var/run/dbus:/bin/false +haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false diff --git a/lib/distro-info/suse-11.2/prereqfiles/etc/shadow b/lib/distro-info/suse-11.2/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/lib/distro-info/suse-11.2/prereqfiles/etc/shadow @@ -0,0 +1,14 @@ +root::13481:::::: +bin:*:13481:::::: +daemon:*:13481:::::: +lp:*:13481:::::: +mail:*:13481:::::: +news:*:13481:::::: +uucp:*:13481:::::: +games:*:13481:::::: +man:*:13481:::::: +wwwrun:*:13481:::::: +ftp:*:13481:::::: +nobody:*:13481:::::: +messagebus:!:13481:0::7::: +haldaemon:!:13481:0::7::: diff --git a/lib/distro-info/suse-11.2/settings.default b/lib/distro-info/suse-11.2/settings.default new file mode 100644 index 00000000..7e152670 --- /dev/null +++ b/lib/distro-info/suse-11.2/settings.default @@ -0,0 +1,1126 @@ +bootstrap-packages = <<END + i586/aaa_base-11.2-10007.5.i586.rpm + i586/audit-libs-1.7.7-5.1.i586.rpm + i586/bash-3.2-141.10.i586.rpm + i586/boost-license-1.36.0-9.5.i586.rpm + i586/bzip2-1.0.5-34.5.i586.rpm + i586/ConsoleKit-0.2.10-60.16.i586.rpm + i586/coreutils-6.12-32.10.i586.rpm + i586/coreutils-lang-6.12-32.10.i586.rpm + i586/cpio-2.9-75.35.i586.rpm + i586/cpio-lang-2.9-75.35.i586.rpm + i586/cracklib-2.8.12-55.1.i586.rpm + i586/cracklib-dict-small-2.8.12-55.1.i586.rpm + i586/cron-4.1-194.28.i586.rpm + i586/cyrus-sasl-2.1.22-182.1.i586.rpm + i586/dbus-1-1.2.4-5.1.i586.rpm + i586/dbus-1-glib-0.76-32.1.i586.rpm + i586/device-mapper-1.02.27-7.1.i586.rpm + i586/diffutils-2.8.7-143.9.i586.rpm + i586/dhcpcd-3.2.3-44.1.i586.rpm + i586/dirmngr-1.0.2-1.39.i586.rpm + i586/e2fsprogs-1.41.1-11.9.i586.rpm + i586/elfutils-0.137-3.11.i586.rpm + i586/file-4.24-43.1.i586.rpm + i586/filesystem-11.2-2.3.i586.rpm + i586/fillup-1.42-242.8.i586.rpm + i586/findutils-4.4.0-38.27.i586.rpm + i586/gawk-3.1.6-1.44.i586.rpm + i586/gdbm-1.8.3-371.8.i586.rpm + i586/glib2-2.18.2-5.1.i586.rpm + i586/glib2-lang-2.18.2-5.1.i586.rpm + i586/glib2-branding-upstream-2.18.2-5.1.i586.rpm + i586/glibc-2.9-2.8.i586.rpm + i586/gpg2-2.0.9-25.105.i586.rpm + i586/gpg2-lang-2.0.9-25.105.i586.rpm + i586/grep-2.5.2-90.28.i586.rpm + i586/gzip-1.3.12-68.36.i586.rpm + i586/hal-0.5.12-10.1.i586.rpm + i586/info-4.12-1.85.i586.rpm + i586/insserv-1.12.0-22.15.i586.rpm + i586/irqbalance-0.55-120.8.i586.rpm + i586/kernel-default-2.6.27.7-9.1.i586.rpm + i586/kernel-default-base-2.6.27.7-9.1.i586.rpm + i586/keyutils-1.2-107.4.i586.rpm + i586/keyutils-libs-1.2-107.4.i586.rpm + i586/krb5-1.6.3-132.1.i586.rpm + i586/libacl-2.2.47-27.5.i586.rpm + i586/libasm1-0.137-3.11.i586.rpm + i586/libasound2-1.0.18-8.7.i586.rpm + i586/libattr-2.4.39-67.5.i586.rpm + i586/libbz2-1-1.0.5-34.5.i586.rpm + i586/libblkid1-1.41.1-11.9.i586.rpm + i586/libblocxx6-2.1.0.342-120.1.i586.rpm + i586/libboost_signals1_36_0-1.36.0-9.5.i586.rpm + i586/libcom_err2-1.41.1-11.9.i586.rpm + i586/libcurl4-7.19.0-11.2.i586.rpm + i586/libdb-4_5-4.5.20-94.17.i586.rpm + i586/libdw1-0.137-3.11.i586.rpm + i586/libelf1-0.137-3.11.i586.rpm + i586/libext2fs2-1.41.1-11.9.i586.rpm + i586/libexpat1-2.0.1-88.10.i586.rpm + i586/libgcc43-4.3.3_20081022-9.5.i586.rpm + i586/libgcrypt11.2.4.1-4.1.i586.rpm + i586/libglib-2_0-0-2.18.2-5.1.i586.rpm + i586/libgobject-2_0-0-2.18.2-5.1.i586.rpm + i586/libgpg-error0-1.6-6.10.i586.rpm + i586/libgthread-2_0-0-2.18.2-5.1.i586.rpm + i586/libidn-1.10-2.14.i586.rpm + i586/libksba-1.0.4-1.17.i586.rpm + i586/libldap-2_4-2-2.4.12-5.3.i586.rpm + i586/libncurses5-5.6-89.10.i586.rpm + i586/libncurses6-5.6-89.10.i586.rpm + i586/libnscd-2.0.2-72.47.i586.rpm + i586/libopenssl0_9_8-0.9.8h-28.4.i586.rpm + i586/libpt2-2.4.2-2.19.i586.rpm + i586/libreadline5-5.2-141.10.i586.rpm + i586/libreiserfs-0.3.0.5-107.47.i586.rpm + i586/libselinux1-2.0.71-3.38.i586.rpm + i586/libsepol1-2.0.32-5.38.i586.rpm + i586/libsmbios2-2.0.2-10.9.i586.rpm + i586/libstdc++43-4.3.3_20081022-9.5.i586.rpm + i586/libusb-0_1-4-0.1.12-136.10.i586.rpm + i586/libusb-1_0-0-0.9.3-4.20.i586.rpm + i586/libuuid1-1.41.1-11.9.i586.rpm + i586/libvolume_id-126-17.25.i586.rpm + i586/libvolume_id1-128-9.3.i586.rpm + i586/libxcrypt-3.0.1-25.20.i586.rpm + i586/libxml2-2.7.1-9.1.i586.rpm + i586/libzio-0.9-4.19.i586.rpm + i586/limal-1.5.1-1.12.i586.rpm + i586/limal-perl-1.5.1-1.12.i586.rpm + i586/login-3.37-1.5.i586.rpm + i586/logrotate-3.7.7-9.11.i586.rpm + i586/m4-1.4.12-1.13.i586.rpm + i586/metamail-2.7.19-1244.29.i586.rpm + i586/mingetty-1.0.7s-70.41.i586.rpm + i586/mkinitrd-2.4-34.1.i586.rpm + i586/module-init-tools-3.4-56.5.i586.rpm + i586/ncurses-utils-5.6-89.10.i586.rpm + i586/net-tools-1.60-725.5.i586.rpm + i586/openldap2-client-2.4.12-5.3.i586.rpm + i586/openslp-1.2.0-168.6.i586.rpm + i586/openssl-0.9.8h-28.4.i586.rpm + i586/openSUSE-release-11.2-1.19.i586.rpm + i586/openSUSE-release-ftp-11.2-1.19.i586.rpm + i586/pam-1.0.2-13.3.i586.rpm + i586/pam-config-0.68-1.3.i586.rpm + i586/pam-modules-11.2-5.1.i586.rpm + i586/parted-1.8.8-91.5.i586.rpm + i586/pciutils-3.0.1-1.26.i586.rpm + i586/pcre-7.8-1.26.i586.rpm + i586/perl-5.10.0-62.10.i586.rpm + i586/perl-base-5.10.0-62.10.i586.rpm + i586/perl-Bootloader-0.4.81-1.1.i586.rpm + i586/perl-gettext-1.05-91.163.i586.rpm + i586/permissions-2008.11.25-1.5.i586.rpm + i586/pinentry-0.7.5-61.14.i586.rpm + i586/pm-utils-0.99.4.20071229-10.3.i586.rpm + i586/pmtools-20071116-44.3.i586.rpm + i586/PolicyKit-0.9-13.9.i586.rpm + i586/popt-1.7-20.1.i586.rpm + i586/postfix-2.5.5-6.7.i586.rpm + i586/procmail-3.22-238.15.i586.rpm + i586/procps-3.2.7-147.11.i586.rpm + i586/psmisc-22.6-61.14.i586.rpm + i586/pth-2.0.7-102.29.i586.rpm + i586/pwdutils-3.2.2-2.8.i586.rpm + i586/reiserfs-3.6.19-116.62.i586.rpm + i586/rmail-8.14.3-50.9.i586.rpm + i586/rpm-4.4.2.3-20.1.i586.rpm + i586/satsolver-tools-0.13.0-3.3.i586.rpm + i586/SDL-1.2.13-104.1.i586.rpm + i586/sed-4.1.5-85.60.i586.rpm + i586/setserial-2.17-716.20.i586.rpm + i586/sharutils-4.6.3-3.100.i586.rpm + i586/sysvinit-2.86-186.7.i586.rpm + i586/tcpd-7.6-855.11.i586.rpm + i586/tcsh-6.15.00-93.3.i586.rpm + i586/terminfo-base-5.6-89.10.i586.rpm + i586/udev-128-9.3.i586.rpm + i586/util-linux-2.14.1-10.1.i586.rpm + i586/util-linux-lang-2.14.1-10.1.i586.rpm + i586/uucp-1.07-50.7.i586.rpm + i586/uuid-runtime-1.41.1-11.9.i586.rpm + i586/zlib-1.2.3-104.137.i586.rpm + noarch/netcfg-11.2-1.14.noarch.rpm + noarch/pciutils-ids-2008.11.26-2.4.noarch.rpm + noarch/suse-build-key-1.0-907.32.noarch.rpm +END +<metapackager zypper> + packages = <<END + i586/libzypp-5.24.5-1.1.i586.rpm + i586/zypper-1.0.2-1.5.i586.rpm + END +</metapackager> +<metapackager smart> + packages = <<END + i586/python-2.6.0-2.16.i586.rpm + i586/python-xml-2.6.0-2.12.i586.rpm + i586/rpm-python-4.4.2.3-20.1.i586.rpm + END +</metapackager> +<metapackager yum> + packages = <<END + i586/glib2-2.18.2-4.3.i586.rpm + i586/libxml2-2.7.1-8.3.i586.rpm + i586/libxml2-python-2.7.1-9.1.i586.rpm + i586/python-2.6.0-2.16.i586.rpm + i586/python-urlgrabber-3.1.0-178.8.i586.rpm + i586/python-xml-2.6.0-2.12.i586.rpm + i586/rpm-python-4.4.2.3-20.1.i586.rpm + i586/sqlite3-3.6.4-1.8.i586.rpm + i586/yum-metadata-parser-1.1.2-107.22.i586.rpm + END +</metapackager> +package-subdir = suse +prereq-packages = <<END + i586/bzip2-1.0.5-34.5.i586.rpm + i586/glibc-2.9-2.8.i586.rpm + i586/libselinux1-2.0.71-3.38.i586.rpm + i586/libbz2-1-1.0.5-34.5.i586.rpm + i586/popt-1.7-20.1.i586.rpm + i586/rpm-4.4.2.3-20.1.i586.rpm + i586/zlib-1.2.3-104.137.i586.rpm +END +<repository base> + name = openSUSE 11.2 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz +</repository> +<repository base_non-oss> + name = openSUSE 11.2 non-OSS + file-for-speedtest = suse/setup/descr/packages.en.gz +</repository> +<repository base_update> + name = openSUSE 11.2 updates + file-for-speedtest = repodata/primary.xml.gz +</repository> +<selection minimal> + packages = <<END + glibc-locale + END +</selection> +<selection textmode> + base = minimal + packages = <<END + acl + acpid + apparmor-docs + apparmor-parser + apparmor-profiles + apparmor-utils + ash + at + atk + attr + audit + autofs bc + bind-libs + bind-utils + binutils + blktrace + bundle-lang-common-en + cdrkit-cdrtools-compat + compat compat-openssl097g + cpufrequtils + cyrus-sasl-saslauthd + db-utils + deltarpm + dmraid + dos2unix + dosfstools + ed + eject + ethtool + fbset + fontconfig + freetype2 + gdb + genisoimage + glibc-i18ndata + gnutls + gpm + groff + hfsutils + icedax + ifplugd + initviocons + inst-source-utils + iproute2 + iputils + joe + kbd + klogd + kpartx + ksh + ksymoops + lcms + less + libaio + libapparmor1 + libart_lgpl + libatk-1_0-0 + libcap1 + libcap2 + libdrm + libevent-1_4-2 + libgimpprint + libgmodule-2_0-0 + libgnutls26 + libgssglue1 + libicu + libjpeg + liblazy1 + liblcms1 + libltdl3 + libltdl7 + liblzo2-2 + libmng + libnet + libopencdk10 + libopenct1 + libopensc2 + libpcap0 + libpng12-0 + libpython2_6-1_0 + librpcsecgss + libsensors3 + libsensors4 + libsnmp15 + libsqlite3-0 + libtiff3 + libtirpc1 + licenses + lukemftp + lvm2 + mailx + man + man-pages + microcode_ctl + multipath-tools + nbd + net-snmp + nfs-client + nfs-kernel-server + nfsidmap + nscd + ntfsprogs + ntp + openct + opensc + openssh + patch + pax + pcsc-lite + perl-Crypt-SmbHash + perl-DBD-SQLite + perl-DBI + perl-Digest-MD4 + perl-File-Tail + perl-HTML-Parser + perl-HTML-Tagset + perl-Net-Daemon + perl-PlRPC + perl-RPC-XML + perl-SNMP + perl-TermReadKey + perl-TimeDate + perl-URI + perl-XML-Parser + perl-XML-Writer + perl-libapparmor + perl-libwww-perl + ppp + preload + procinfo + providers + qlogic-firmware + recode + rpcbind + rsync + sash + screen + sensors + sg3_utils + smartmontools + smpppd + snmp-mibs + sqlite3 + strace + sudo + sysconfig + sysfsutils + syslog-ng + tcpdump + telnet + terminfo + timezone + ulimit + usbutils + utempter + vim + vim-base + vim-data + wdiff + wget + wireless-tools + wodim + wvstreams + xfsprogs + xinetd + yp-tools + ypbind + zip + zisofs-tools + zsh + END +</selection> +<selection kde> + base = textmode + packages = <<END + 3ddiag + a2ps + aalib + alsa + alsa-utils + amarok + amarok-libvisual + amarok-xine + arts + aspell + aspell-de + aspell-en + audiofile + autoyast2 + autoyast2-installation + bluez + bootsplash + bootsplash-branding-openSUSE + branding-openSUSE + bundle-lang-gnome-en + bundle-lang-kde-en + cabextract + cairo + cdparanoia + cdrdao + check + checkmedia + chmlib + chromium + clucene-core + compiz + compiz-branding-openSUSE + compiz-kde4 + cpp + cpp41 + cpp43 + cryptsetup + Crystalcursors + cups + cups-client + cups-drivers + cups-libs + curl + cyrus-sasl-crammd5 + cyrus-sasl-digestmd5 + cyrus-sasl-plain + dbus-1-mono + dbus-1-python + dbus-1-qt3 + dbus-1-x11 + dcraw + dejavu + desktop-data-openSUSE + desktop-data-openSUSE-extra-gnome + desktop-file-utils + dhcp + dhcp-client + dialog + digikam + digikamimageplugins + DirectFB + dnsmasq + dvd+rw-tools + eel + efont-unicode + enchant + enscript + evolution-data-server + exiftool + expat + fam + fftw3 + fileshareset + FirmwareUpdateKit + flac + fonts-config + foomatic-filters + freealut + freeglut + freetype + fribidi + frozen-bubble + frozen-bubble-server + ft2demos + fvwm2 + gcc-gij + gcc41-gij + gcc43-gij + gconf2 + gconf2-branding-openSUSE + gettext-runtime + gfxboot + gfxboot-branding-openSUSE + ggz + ggz-client-libs + ghostscript-fonts-other + ghostscript-fonts-std + ghostscript-library + ghostscript-omni + ghostscript-x11 + giflib + gimp + gimp-branding-openSUSE + gimp-help + gimp-plugins-python + gle + glib + glib-sharp2 + glibc-locale + glitz + gltt + gmime + gmp + gnokii + gpart + gpgme + GraphicsMagick + grub + gsf-sharp + gstreamer-0_10 + gstreamer-0_10-plugins-base + gtk + gtk-sharp2 + gtk2 + gtk2-branding-openSUSE + gtk2-engines + gtk2-theme-openSUSE + gtksourceview + gutenprint + gvfs + gwenview + gwenview-lang + hal-palm + hdparm + hicolor-icon-theme + hplip + hplip-hpijs + htdig + hunspell + hwinfo + icewm + icewm-default + id3lib + ifnteuro + IlmBase + ImageMagick + imlib + imlib2 + imlib2-loaders + info2html + intlfnts + iptables + ispell + ispell-american + ispell-german + ispell-ngerman + jack + jfsutils + jpackage-utils + jpeg + k3b + kaffeine + kde-susetranslations + kde3-i18n-de + kde4-ark + kde4-filesystem + kde4-kdm + kde4-kdm-branding-openSUSE + kde4-kget + kde4-kgreeter-plugins + kde4-kmix + kde4-knewsticker + kde4-konqueror + kde4-konqueror-plugins + kde4-kopete + kde4-kpat + kde4-krdc + kde4-kscd + kde4-ksudoku + kde4-kwin + kde4-okular + kde4-plasma-addons + kdeaddons3-kicker + kdeartwork3-kscreensaver + kdeartwork3-xscreensaver + kdebase3 + kdebase3-nsplugin + kdebase3-runtime + kdebase3-samba + kdebase3-session + kdebase3-SuSE + kdebase3-SuSE-branding-openSUSE + kdebase3-SuSE-lang + kdebase4-openSUSE + kdebase4-runtime + kdebase4-workspace + kdebase4-workspace-branding-openSUSE + kdebase4-workspace-ksysguardd + kdebluetooth + kdebluetooth-lang + kdegames4-carddecks-default + kdegraphics3 + kdegraphics3-kamera + kdegraphics3-scan + kdelibs3 + kdelibs3-default-style + kdelibs3-doc + kdelibs4 + kdelibs4-core + kdemultimedia3 + kdepim3 + kdepim3-kpilot + kdepim3-notes + kdepimlibs4 + kdetv + kdetv-lang + kio_ipodslave + kio_iso + kio_slp + kio_sysinfo + kipi-plugins + kitchensync + knights + koffice + koffice-i18n-de + koffice-i18n-de-doc + koffice-illustration + konversation + kpowersave + kpowersave-lang + krecord + krename + krusader + ktorrent + kwin-decor-suse2 + lbreakout + libakode + libakonadi4 + libakonadiprotocolinternals1 + libao + libarchive2 + libavahi-client3 + libavahi-common3 + libavahi-glib1 + libbabl-0_0-0 + libbeagle1 + libbluetooth3 + libbonobo + libbonoboui + libcanberra-gtk + libcanberra-gtk0 + libcanberra0 + libcroco + libcroco-0_6-3 + libcryptsetup0 + libdbus-1-qt3-0 + libdjvulibre21 + libdns_sd + libdvdread4 + libeel-2-2 + libenchant1 + libesd0 + libevoldap-2_4-2 + libexempi3 + libexif + libexiv2-4 + libFLAC++6 + libFLAC8 + libflashsupport + libfuse2 + libgcj41 + libgcj43 + libgegl-0_0-0 + libggz2 + libgio-2_0-0 + libgio-fam + libglade2 + libgmime-2_0-3 + libgnome + libgnome-desktop-2-7 + libgnome-menu2 + libgnomecanvas + libgnomecups + libgnomekbd + libgnomeprint + libgnomeprintui + libgnomesu + libgnomesu0 + libgnomeui + libgomp43 + libgpgme11 + libgphoto2 + libgpod-tools + libgpod3 + libGraphicsMagick2 + libgsf + libgsf-1-114 + libgsf-gnome + libgssglue-devel + libgstinterfaces-0_10-0 + libgstreamer-0_10-0 + libgtkhtml + libgtkimageview0 + libgtksourceview-2_0-0 + libgtop + libgtop-2_0-7 + libgvfscommon0 + libgweather + libgweather1 + libical0 + libidl + libieee1284 + libjack0 + libjasper + libkcal + libkcal2 + libkcddb4 + libkcompactdisc4 + libkdcraw3 + libkde4 + libkdecore4 + libkdegames4 + libkdepimlibs4 + libkexiv2-3 + libkipi0 + libkmime2 + libkonq5 + libktnef1 + libldapcpp1 + liblpsolve55 + liblua5_1 + libMagick++1 + libMagickCore1 + libMagickWand1 + libmal + libmikmod + libmpcdec5 + libmpfr1 + libmtp8 + libmusicbrainz4 + libneon27 + libnetpbm10 + libnjb + libnjb5 + libnl + libnsssharedhelper0 + libofa0 + libogg0 + liboil + libopensync + libopensync-plugin-file + libopensync-plugin-gnokii + libopensync-plugin-gpe + libopensync-plugin-irmc + libopensync-plugin-kdepim + libopensync-plugin-opie + libopensync-plugin-palm + libopensync-plugin-sunbird + libopensync-plugin-syncml + libopensync-tools + libotr2 + libphonon4 + libpisock9 + libpoppler-glib4 + libpoppler-qt2 + libpoppler-qt4-3 + libpoppler4 + libpulse0 + libpulsecore4 + libqca2 + libqimageblitz4 + libqscintilla2-4 + libqt4 + libqt4-qt3support + libqt4-sql + libqt4-sql-unixODBC + libqt4-x11 + libqtpod0 + libQtWebKit4 + libraptor1 + librasqal1 + libredland0 + librsvg + libsamplerate + libsmbclient0 + libsndfile + libsoprano4 + libsoup + libsoup-2_4-1 + libspectre1 + libspeex + libstrigi0 + libstroke + libsyncml0 + libtalloc1 + libtasn1 + libtasn1-3 + libtdb1 + libtheora0 + libtunepimp + libtunepimp5 + libvisual + libvisual-plugins + libVNCServer + libvorbis + libwbclient0 + libwbxml2-0 + libwebkit-1_0-1 + libwmf + libwnck + libwnck-1-22 + libwpd-0_8-8 + libwpg-0_1-1 + libwps-0_1-1 + libx86 + libxine1 + libxine1-gnome-vfs + libxine1-pulse + libxklavier + libxklavier12 + libxml2-python + libxslt + libzip1 + libzvbi0 + limal-ca-mgm + limal-ca-mgm-perl + limal-nfs-server + limal-nfs-server-perl + lsb + lsof + make + manufacturer-PPDs + master-boot-code + mdadm + mesa + metacity + misc-console-font + modemManager + mono-core + mono-data + mono-data-sqlite + mono-web + mono-winforms + mozilla-nspr + mozilla-nss + mozilla-xulrunner181 + mozilla-xulrunner190 + mozilla-xulrunner190-gnomevfs + mozilla-xulrunner190-translations + mozillaFirefox + mozillaFirefox-branding-openSUSE + mozillaFirefox-translations + mtools + myspell-american + myspell-german + nautilus + neon + netcat + netpbm + networkManager + networkManager-glib + networkManager-kde + numlockx + obexftp + ocrad + openal + OpenEXR + openobex + OpenOffice_org + OpenOffice_org-base + OpenOffice_org-branding-openSUSE + OpenOffice_org-calc + OpenOffice_org-components + OpenOffice_org-draw + OpenOffice_org-filters + OpenOffice_org-filters-optional + OpenOffice_org-help-de + OpenOffice_org-help-en-US + OpenOffice_org-icon-themes + OpenOffice_org-impress + OpenOffice_org-kde + OpenOffice_org-l10n-de + OpenOffice_org-l10n-extras + OpenOffice_org-libs-core + OpenOffice_org-libs-extern + OpenOffice_org-libs-gui + OpenOffice_org-mailmerge + OpenOffice_org-math + OpenOffice_org-pyuno + OpenOffice_org-Quickstarter + OpenOffice_org-templates-en + OpenOffice_org-templates-labels-a4 + OpenOffice_org-templates-labels-letter + OpenOffice_org-templates-presentation-layouts + OpenOffice_org-thesaurus-en + OpenOffice_org-ure + OpenOffice_org-writer + openssh-askpass + opensuse-codecs-installer + opensuse-manual_de + opensuse-manual_en + opensuse-manual_en-pdf + opt_gnome-compat + orbit2 + oxygen-icon-theme + pango + perl-Config-Crontab + perl-Crypt-SSLeay + perl-Digest-HMAC + perl-Digest-SHA1 + perl-IO-Socket-SSL + perl-Net-DNS + perl-Net-IP + perl-Net-SSLeay + perl-NetxAP + perl-Parse-RecDescent + perl-spamassassin + perl-X500-DN + perl-XML-LibXML + perl-XML-LibXML-Common + perl-XML-NamespaceSupport + perl-XML-SAX + perl-XML-Simple + phalanx + phonon + phonon-backend-gstreamer-0_10 + pilot-link + pinentry-qt + pkg-config + plasma-theme-aya + pm-profiler + PolicyKit-gnome-libs + powerdevil + pptp + pulseaudio + pulseaudio-esound-compat + python + python-base + python-cairo + python-gobject2 + python-gtk + python-numeric + python-qt + python-qt4 + python-ReportLab + python-sip + python-xml + pyxml + qca + qt3 + qtcurve-gtk2 + rdesktop + release-notes-openSUSE + rrdtool + ruby + sane-backends + sane-backends-autoconfig + sane-frontends + sax2 + sax2-gui + sax2-ident + sax2-libsax + sax2-libsax-perl + sax2-tools + scpm + SDL_image + SDL_mixer + SDL_net + SDL_Pango + SDL_perl + SDL_ttf + sgml-skel + shared-mime-info + soprano + sound-theme-freedesktop + spamassassin + speex + splashy + splashy-branding-openSUSE + sqlite2 + startup-notification + strigi + SuSEfirewall2 + susehelp + susehelp_de + susehelp_en + suseRegister + syslinux + taglib + tango-icon-theme + tar + tcl + tightvnc + tk + ufraw + ufraw-gimp + unclutter + unixODBC + unzip + usb_modeswitch + v4l-conf + w3m + wbxml2 + words + wpa_supplicant + wv + wvdial + x11-input-synaptics + x11-input-wacom + x11-tools + xalan-j2 + xaw3d + xdg-menu + xdg-utils + xdmbgrd + xerces-j2 + xerces-j2-xml-apis + xkeyboard-config + xli + xlockmore + xorg-x11 + xorg-x11-driver-input + xorg-x11-driver-video + xorg-x11-driver-video-radeonhd + xorg-x11-driver-video-unichrome + xorg-x11-fonts + xorg-x11-fonts-core + xorg-x11-libfontenc + xorg-x11-libICE + xorg-x11-libs + xorg-x11-libSM + xorg-x11-libX11 + xorg-x11-libX11-ccache + xorg-x11-libXau + xorg-x11-libxcb + xorg-x11-libXdmcp + xorg-x11-libXext + xorg-x11-libXfixes + xorg-x11-libxkbfile + xorg-x11-libXmu + xorg-x11-libXp + xorg-x11-libXpm + xorg-x11-libXprintUtil + xorg-x11-libXrender + xorg-x11-libXt + xorg-x11-libXv + xorg-x11-server + xorg-x11-xauth + xorg-x11-Xvnc + xpdf-tools + xscreensaver + xterm + xtermset + yakuake + yast2 + yast2-apparmor + yast2-backup + yast2-bootloader + yast2-branding-openSUSE + yast2-control-center + yast2-control-center-gnome + yast2-control-center-qt + yast2-core + yast2-country + yast2-country-data + yast2-firewall + yast2-gtk + yast2-hardware-detection + yast2-inetd + yast2-installation + yast2-irda + yast2-iscsi-client + yast2-kerberos-client + yast2-ldap + yast2-ldap-client + yast2-libyui + yast2-mail + yast2-mouse + yast2-ncurses + yast2-network + yast2-nfs-client + yast2-nfs-common + yast2-nis-client + yast2-ntp-client + yast2-online-update + yast2-online-update-frontend + yast2-packager + yast2-pam + yast2-perl-bindings + yast2-pkg-bindings + yast2-power-management + yast2-printer + yast2-profile-manager + yast2-qt + yast2-registration + yast2-registration-branding-openSUSE + yast2-repair + yast2-restore + yast2-runlevel + yast2-samba-client + yast2-samba-server + yast2-scanner + yast2-schema + yast2-security + yast2-slp + yast2-sound + yast2-storage + yast2-storage-lib + yast2-sudo + yast2-support + yast2-sysconfig + yast2-theme-openSUSE + yast2-trans-de + yast2-trans-stats + yast2-transfer + yast2-tune + yast2-tv + yast2-update + yast2-users + yast2-x11 + yast2-xml + yast2-ycp-ui-bindings + zvbi + END +</selection> +<selection kde-additional> + base = kde + packages = <<END + cm_gtk + flash-player + java-1_5_0-gcj-compat + java-1_5_0-sun + java-1_5_0-sun-plugin + suspend + END +</selection> +<selection gnome> + base = textmode + packages = <<END + END +</selection> +<selection default> + base = minimal +</selection> + diff --git a/lib/distro-info/suse-11.2/settings.example b/lib/distro-info/suse-11.2/settings.example new file mode 100644 index 00000000..a8db67df --- /dev/null +++ b/lib/distro-info/suse-11.2/settings.example @@ -0,0 +1,23 @@ +# rename this file to 'settings' and edit it as you please +# +# for a list of all options, have a look at the corresponding +# settings.default in /opt/openslx/share/distro-info + +# use local installation source +#<repository base> +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/oss +#</repository> +#<repository base_non-oss> +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/non-oss +#</repository> +#<repository base_update> +# local-url = /srv/ftp/pub/suse/update/11.2 +#</repository> + +# add a new selection: +#<selection my_kde> +# base = kde +# packages = <<END +# kinternet +# END +#</selection> diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ddcc28cd --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQGiBEHtkpsRBACRHiXh3olS++6/Mp9N7ByGMmjaaE+Y8cJQLUPG1myrbW5aogIP +0WenayhGbbgOHNWgd5dQ8KQpYYFoQuUHjFYzj5MvgrdOENOvD7ZNJ6+EmbkNh5cV +zUYfNG9jdiGweZkyA1sh8DYS0JiUmQ4CzaBD/DotB/dCmDcyuNQFiw4qKwCglQah +ATyueBRsOiXl0NIs1uB6dkkD/1A2YmQ6te1q38a1J+a8os6bDlMZhVnkZdhJdw6x +eBwUb9XS0n7hyt/AKCcBnrDEUQJuhBMNgzctJvbuMv27yRMANAXZDQkp0ip/yHLJ +PhUdSNTTRHOL9bV3t+JuZ9xmuclprwyrrJYUkEESXNc0tkuczHBP2c/RqA3OxYHt +hrHLA/9Pqe2gEleeo8l26u/uFXs2dtwjh8EZmdhHoqGcOlpYR4DyAg2D+jYfh3RI +oPzIwRlHVUR1ii5h8iPi98BVuEvukwfbbQ1K22Jwzxt6w3ihCXBKWKbeC3ElIMfA +hVMchLFUbTAw+yodO/u3NHxKQ34+ginid9dVyxV5T0gpDEEHObQrT3BlbiBFbnRl +cnByaXNlIFNlcnZlciA8c3VwcG9ydEBub3ZlbGwuY29tPoheBBMRAgAeBQJB7ZKb +AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHPSXWMN+zGID4oAoJPTGZbZApW+ +tuU422mHYGwoqgjrAJ9fhzRhRbV3YsOxKUomNeuIfmWGXA== +=Qv5+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..8cc6c669 --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIC +GwMECwcDAgMVAgMDFgIBAh4BAheABQJIHzCqBQkHwXpNAAoJEOOlw2Awfj1UvWgE +AIRoxE8S6jQB7S43SVcX06FHJeUJ/m+1ErIj9LwJTYrR/8qsDjTgrttgb+nBHkIj +NhCCLAuR8sWj3CxsUMH2fayryNnwZEWGqnzo7Jtt4R1Ur3h5pHYonFjfoJyFUZjJ +7Mhw7/TuOWx20FrzqBi8tbHx8pd7Fa5lCUgopVtMh6GR +=R56j +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..31f2005c --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQENAzbhLQQAAAEIAKAkXHe0lWRBXLpn38hMHy03F0I4Sszmoc8aaKJrhfhyMlOA +BqvklPLE2f9UrI4Xc860gH79ZREwAgPt0pi6+SleNFLNcNFAuuHMLQOOsaMFatbz +JR9i4m/lf6q929YROu5zB48rBAlcfTm+IBbijaEdnqpwGib45wE/Cfy6FAttBHQh +1Kp+r/jPbf1mYAvljUfHKuvbg8t2EIQz/5yGp+n5trn9pElfQO2cRBq8LFpf1l+U +P7EKjFmlOq+Gs/fF98/dP3DfniSd78LQPq5vp8RL8nr/o2i7jkAQ33m4f1wOBWd+ +cZovrKXYlXiR+Bf7m2hpZo+/sAzhd7LmAD0l09kABRG0JVN1U0UgU2VjdXJpdHkg +VGVhbSA8c2VjdXJpdHlAc3VzZS5kZT6JARUDBRA24S1H5Fiyh7HKPEUBAVcOB/9b +yHYji1/+4Xc2GhvXK0FSJN0MGgeXgW47yxDL7gmR4mNgjlIOUHZj0PEpVjWepOJ7 +tQS3L9oP6cpj1Fj/XxuLbkp5VCQ61hpt54coQAvYrnT9rtWEGN+xmwejT1WmYmDJ +xG+EGBXKr+XP69oIUl1E2JO3rXeklulgjqRKos4cdXKgyjWZ7CP9V9daRXDtje63 +Om8gwSdU/nCvhdRIWp/Vwbf7Ia8iZr9OJ5YuQl0DBG4qmGDDrvImgPAFkYFzwlqo +choXFQ9y0YVCV41DnR+GYhwl2qBd81T8aXhihEGPIgaw3g8gd8B5o6mPVgl+nJqI +BkEYGBusiag2pS6qwznZiQEVAwUQNuEtBHey5gA9JdPZAQFtOAf+KVh939b0J94u +v/kpg4xs1LthlhquhbHcKNoVTNspugiC3qMPyvSX4XcBr2PC0cVkS4Z9PY9iCfT+ +x9WM96g39dAF+le2CCx7XISk9XXJ4ApEy5g4AuK7NYgAJd39PPbERgWnxjxir9g0 +Ix30dS30bW39D+3NPU5Ho9TD/B7UDFvYT5AWHl3MGwo3a1RhTs6sfgL7yQ3U+mvq +MkTExZb5mfN1FeaYKMopoI4VpzNVeGxQWIz67VjJHVyUlF20ekOz4kWVgsxkc8G2 +saqZd6yv2EwqYTi8BDAduweP33KrQc4KDDommQNDOXxaKOeCoESIdM4p7Esdjq1o +L0oixF12CohGBBARAgAGBQI7HmHDAAoJEJ5A4xAACqukTlQAoI4QzP9yjPohY7OU +F7J3eKBTzp25AJ42BmtSd3pvm5ldmognWF3Trhp+GYkAlQMFEDe3O8IWkDf+zvyS +FQEBAfkD/3GG5UgJj18UhYmh1gfjIlDcPAeqMwSytEHDENmHC+vlZQ/p0mT9tPiW +tp34io54mwr+bLPN8l6B5GJNkbGvH6M+mO7R8Lj4nHL6pyAv3PQr83WyLHcaX7It +Klj371/4yzKV6qpz43SGRK4MacLo2rNZ/dNej7lwPCtzCcFYwqkiiEYEEBECAAYF +AjoaQqQACgkQx1KqMrDf94ArewCfWnTUDG5gNYkmHG4bYL8fQcizyA4An2eVo/n+ +3J2KRWSOhpAMsnMxtPbB +=Ay23 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..580858ba --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQENBEkUTD8BCADWLy5d5IpJedHQQSXkC1VK/oAZlJEeBVpSZjMCn8LiHaI9Wq3G +3Vp6wvsP1b3kssJGzVFNctdXt5tjvOLxvrEfRJuGfqHTKILByqLzkeyWawbFNfSQ +93/8OunfSTXC1Sx3hgsNXQuOrNVKrDAQUqT620/jj94xNIg09bLSxsjN6EeTvyiO +mtE9H1J03o9tY6meNL/gcQhxBvwuo205np0JojYBP0pOfN8l9hnIOLkA0yu4ZXig +oKOVmf4iTjX4NImIWldT+UaWTO18NWcCrujtgHueytwYLBNV5N0oJIP2VYuLZfSD +VYuPllv7c6O2UEOXJsdbQaVuzU1HLocDyipnABEBAAG0NG9wZW5TVVNFIFByb2pl +Y3QgU2lnbmluZyBLZXkgPG9wZW5zdXNlQG9wZW5zdXNlLm9yZz6JATwEEwECACYF +AkkUTD8CGwMFCQPCZwAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRC4iy/UPb3C +hIE9B/9DUwwQ5c+8xW0x2Fli5Yn1P+4Wq3nmB+ZTpM5Q1a7A2l+HhpUBsnwx2e/4 +RuXlJ06uYby8UpXCli44jXFepJgiXp7ZRPX5A06aY9Pz0wawsMtYQS716+vSV3e3 +ynZmTGKxj8Z94TEVcEjMP1/XpjW22DcpItRJX2VCW7lUXDmRfQzBEolcfwlF7a1B +VcSqGZX8JvuTocLX/+fYBhZYQvERw6PUVGoEskMXMoRg6PqWMesW9Bq3cm8oeBa2 +4YmGLkN2ztBIbqRMSv0binKcddHHvRlxVFRXrnnlXrEPKrx9Fbu4vkqrG+EKE6+v +GO73ROyEcJuuoJTYsKPx6Uic5gRl +=guZP +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..fdd693f9 --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQGiBEeWWzMRBADU8l2IckSzgdUS1dn0WMM7wXK4seoFsHHQw/0unHCQCxpyDMnn +TKV86p5KTbR1FDdeaZlY0yCV+IGsiIxLyuUdJn8vuA5gA5ZkUr89/HtWaeZVl77J +HIQxvhDRBWCOO4QNtrZYWvGbvl83wl/zOfdLEs8IGElt0LgfohyTA1qfrwCg/Hac +tDDscXsPlo5Jek/+3RHVeD0D/30riCpfpLJOmhraLg1EbWsE0mN9IQsl+WDPdoYo +bB76z6eH3e38618WzP/LTG4WuVbwpSSqmXyfdVpXxWzESfT8q0B8CGpHf/Sa/T/L +emohmRnLvkf/tAfxFmDMm1jOewJIE9S35jANGHVJcxmfRNpPWC7uHnqjopnsmDkL +kMEdBAC6YcpDOcMJZ9sJbt/JNZBaoT5CltgMDlSN50t2v/J5em8qMLqCSNF5UJyd +LFnePHTHy6gVjWbqcC0ncFzOqM1y644Up7BoKSAr1hRTl6Mw9S3UfZZZ0al3JtWt +8y0eFIW3QP66w1AL0LO2bZMBuOvhb63DXv5iHorcxk0yIFbbybRCb3BlblNVU0U6 +RmFjdG9yeSBPQlMgUHJvamVjdCA8b3BlblNVU0U6RmFjdG9yeUBidWlsZC5vcGVu +c3VzZS5vcmc+iGYEExECACYFAkeWWzMCGwMFCQQesAAGCwkIBwMCBBUCCAMEFgID +AQIeAQIXgAAKCRAcchwkVrQXevBsAKCOeScnlH2fWVBJGHTOVJ3M4yBqDACbBeNk +PuWo05AOQ3M1dLE1hkN36G+IRgQTEQIABgUCR5ZbMwAKCRA7MBG3a51lI7PfAKCc +9ZtKfI5G/g66V7pSMXh9gi+ykgCgivPfGMDh9HIROwBIudo2qGImOqI= +=htdw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..d0f64278 --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQGiBER0iroRBADfqUeJmPCXqPJFnf3CVKy40dL1F+gfvP+JHN7/uu4c9+oCYjI1 +uAE8iGTm/Twb/Zzbs4dt0iWjhNFXbRi42rMww4d/8QcPYZ21WSehh+fv8nCjt2sw +LeC87ar2SR8OTpJBK0fQlcd4e6H5GMntfI6SYEUOPd8m/eQ+4+1AxpUUpwCgswaF +13fePZGI//pDn5tGjbvmaP8D/R3qum/I+oDS8lbFeeDS10GkEkwTYec13gdfsq6I +yzIj7VBsC+rGfbipv+VGR61Q4d19pOHKLDekr9OG+3G4ZcYM4NQvQZR+QIlp3xWu +nBmYD1LRkHLVj+Z4DGQhjjOffkPSuacKPymMaZ/aRiLgTIAo97W2YPhutscXrLSG +2Y+BA/4jsyaDb7kbW4wc8RtPIcuFEheVqgBeRakP9Uj47kBMBEpPtI/mIdY5liKk +ztKnuQG6ROYLNV/PW0ZbE1uT64C710weh4cB3PnZLV5P10deDLBjHk8MJQGCTSDD +JYvhutUzQfshAU6j2kErGvKdZxWGezab34vFyMP2oLGqswPAJrRQTm92ZWxsIFBy +b3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20pIDxub3ZlbGwt +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQW +AgMBAh4BAheABQJIFkiPBQkHhmvVAAoJEBTCi8l+LjsFn4QAn2wgOHudNubNZvTz +NdaYJKJ0m2qnAJ9hd0nQBhn28H4Ii4a4h7kpGWRxN4hGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=MWDN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..c813e864 --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff +4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d +M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO +QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK +XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE +D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd +G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM +CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE +myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiAhsDBAsHAwID +FQIDAxYCAQIeAQIXgAUCSB80OgUJEfKmuQAKCRCoTtronIAKyuJlAJ0cWZifmBO6 +Eh71jattipdMhUYBTwCfSXbJJtuF3c96JPmpmT8be2LDo86IRgQQEQIABgUCOnBe +UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev +k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ +EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl +cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV +nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe +U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv +B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 ++D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU +KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn +OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z +3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe +lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 +l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR +YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 +bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon +l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp +MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L +1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ +1dbriEwEGBECAAwFAkgfNGYFCRHyptQACgkQqE7a6JyACsrv3ACbBLhafFXmTjH3 +JJWFJGWuIOaZUosAniPs4feEyN46gjXGgcZc2Ai8nkm6 +=mY6G +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..18086b97 --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQILBERqCJkBEACdqhZWdAbUHLIumXMEgv+GFjr1ZzVHgynnFOzztU/8sxZNa9cm +YV4HZpVfjMr7fos3ArzyiPPt/336cf7w9p79/ZS4rHSNPDMlPCtXYvFxUbvU0/GY +q4jwcBsrJ0xaJ9CP5bWyAgVKOb7Y6k0ktaLjRR+tDfMsHA4H0ClMoRr6ATw8NL0e +VCfAHuzqCKvX1If8ng+wTivtAhKvz/WwQiELNELmPfc5tZHOw8NgP/r0Pze18Hn2 +dlAHu0WpC7uoR00vscsMIJiJJPcsxbL1F1eADKnk+wEy8Go+EJeJ5i0WoFbqD52q +Lv/C/oY6NVtVY0MBwtn+oQNSnQ4JBsB/Akdt53LAi0ZtNQxMyUW+76R8FCOmVCV8 +WGiF5CPRP0yvG80AMBjBjKjHb/v8ov5MnIyFimzAHS1gQcUNxTEYA/5eFwoYcGcK +weGq9FUjPTzLQAgvp7XmOzHpSAfJ7qysxFTepNsSZZhgizJyInrdQldr+GYcUNqB +krD9MWmFop975OxhCTEnNv/HcE79r8WD26HzDFYxTiTJbr0pU/ivBzo+rjq+YG2V +stJk+udVYmZTnC4LmXus8JiNuqBXbxNscwCBpcJ8YcfCV6uh+7E0XfXZsgVUFLp1 +NF+ylYRGTycOlWoZODrnJevZW7N9O3bWRx/G2P4bJD07LsDLe4i5hymf5QAGKbRQ +Tm92ZWxsIFByb3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20p +IDxub3ZlbGwtcHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6JAjMEEwECAB0FAkRqCJkG +CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBHijLooZEiCKSFD/93vZHCAMLEfksU +KnvXl08bv1rfuamuyJnE3ANRE5RDyypriHMCnkVxazvQ2WI4W4UEjluL9+SzZwtV +ZvKVoAr31614nSyWwv2YnJTHfjMG+xRlkolZMnuIiB9PcCBo9+GPU0ABuzo4pEJW +NIRoSS1NFbAZBhtUnY0cN+trM5QObLl7xXTavLyGk//blkk57fov7GXsQJlZUig0 +l2yt5XNyGpLUnTMDumHh8b389quF+0+ZfdwOy7A768xjipAZiTvIujBrEv51wrxh +0HBT0VGA0MhD9t0B+Ce4BM9P/iVMO00naaOp6PqMfPPKxQQqer8qy1i6UWBx95SY +mKZBIvOm2d9PezDxkckCu61r6krx1iKnT1wdprCAkIYwALK118SpbxuyGW0bhRHc +wsc/akzWH72fS0Xu49mvL4k4A2U9asdeQid3dMgbtm5mSWof0yiU/G4YNn0yeXoY +oG1VbCAqQbFX1Rvd6GITJVqI+ekW/uMA9BP78dF8wBeG0+QmpQnSf+eOsxB/RT8o +Kb4hHY+29MUlg+i9ceVt7hoKr03J/uIG5TXFXRYLaI0iAFVlKfWxpqDfS2XA4+dD +VYt+5RDgBcnxDaTB4FE9GqcYScNfe7+NFtL0p0wOPftbmgZzGjucTmrD8mDUNdqA +xGK7vlk4GATSfOQlq7G6LXW6RYnInohGBBMRAgAGBQJEazMlAAoJEKhO2uicgArK +2vMAn0TbVDESEVKVuFZStrfIzOvJQrR9AJsH733Ju1kE99GFrdfCeGqpckmNhg== +=E+qN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg b/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg Binary files differnew file mode 100644 index 00000000..5bd5a78e --- /dev/null +++ b/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg diff --git a/lib/distro-info/suse-11.2_x86_64/mirrors/base b/lib/distro-info/suse-11.2_x86_64/mirrors/base new file mode 100644 index 00000000..8d55eac4 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/mirrors/base @@ -0,0 +1,247 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.1/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/11.1/repo/oss +http://www.lizardsource.cn/distribution/11.1/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.1/repo/oss +ftp://www.lizardsource.cn/distribution/11.1/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/oss +http://download.opensuse.or.id/distribution/11.1/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/11.1/repo/oss +http://opensuse.cbn.net.id/distribution/11.1/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.1/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.1/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/11.1/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.1/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.1/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.1/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.1/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.1/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.1/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.1/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.1/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.1/repo/oss +http://ftp.daum.net/opensuse/distribution/11.1/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.1/repo/oss +http://77.88.19.68/opensuse/distribution/11.1/repo/oss +http://77.88.19.73/opensuse/distribution/11.1/repo/oss +http://mirror.suse.ru/distribution/11.1/repo/oss +http://77.88.19.74/opensuse/distribution/11.1/repo/oss +http://93.158.155.193/opensuse/distribution/11.1/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.daum.net/opensuse/distribution/11.1/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.1/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.1/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.1/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.1/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.1/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.1/repo/oss +http://suse.inode.at/opensuse/distribution/11.1/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.1/repo/oss +http://suse.lagis.at/opensuse/distribution/11.1/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.1/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.1/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.1/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.1/repo/oss +ftp://suse.lagis.at/opensuse/distribution/11.1/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.1/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/11.1/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.1/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.1/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.1/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://opensuse.intergenia.de/distribution/11.1/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.1/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +http://widehat.opensuse.org/distribution/11.1/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.1/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.1/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.1/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.1/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/11.1/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/11.1/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.1/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.1/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.1/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.1/repo/oss +http://opensuse.cict.fr/distribution/11.1/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.1/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.1/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/11.1/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.1/repo/oss +http://repo1.linux.edu.lv/distribution/11.1/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.1/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.1/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.1/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.1/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.1/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.1/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.1/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/oss +http://opensuse.uib.no/distribution/11.1/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.1/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.1/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.1/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.1/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.1/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.1/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/oss +http://opensuse.ynet.sk/distribution/11.1/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.1/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.1/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.1/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.1/repo/oss +http://linux.dell.com/repo/community/distribution/11.1/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/11.1/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.1/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.1/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.1/repo/oss +http://opensuse.cs.utah.edu/distribution/11.1/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.1/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/11.1/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.1/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/11.1/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.1/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/11.1/repo/oss +http://130.57.19.201/distribution/11.1/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/11.1/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.1/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.1/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.1/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.1/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.1/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.1/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.1/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.1/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.1/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.1/repo/oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/11.1/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.nyi.net/opensusedistribution/11.1/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.1/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.1/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.1/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.1/repo/oss +http://opensuse.patan.com.ar/distribution/11.1/repo/oss +http://200.221.9.37/pub/opensuse/distribution/11.1/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/11.1/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.1/repo/oss +http://opensuse.pop.com.br/distribution/11.1/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/oss diff --git a/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss b/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..bd887ed3 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss @@ -0,0 +1,246 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/11.1/repo/non-oss +http://www.lizardsource.cn/distribution/11.1/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.1/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.1/repo/non-oss +http://download.opensuse.or.id/distribution/11.1/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.1/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.1/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.1/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/11.1/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.1/repo/non-oss +ftp://www.lizardsource.cn/distribution/11.1/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.1/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.1/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.1/repo/non-oss +http://ftp.daum.net/opensuse/distribution/11.1/repo/non-oss +http://77.88.19.68/opensuse/distribution/11.1/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.1/repo/non-oss +http://mirror.suse.ru/distribution/11.1/repo/non-oss +http://77.88.19.74/opensuse/distribution/11.1/repo/non-oss +http://93.158.155.193/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.1/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.1/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.1/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.1/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.1/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.1/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/non-oss +http://suse.lagis.at/opensuse/distribution/11.1/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/11.1/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.1/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/11.1/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.1/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.1/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.1/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.1/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://opensuse.intergenia.de/distribution/11.1/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.1/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +http://widehat.opensuse.org/distribution/11.1/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.1/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/11.1/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.1/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.1/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/11.1/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.1/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.1/repo/non-oss +http://opensuse.cict.fr/distribution/11.1/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.1/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/11.1/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.1/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.1/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.1/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.1/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.1/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.1/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.1/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/non-oss +http://opensuse.uib.no/distribution/11.1/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.1/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.1/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.1/repo/non-oss +http://opensuse.ynet.sk/distribution/11.1/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.1/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.1/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/11.1/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.1/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.1/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/non-oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.1/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.1/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/11.1/repo/non-oss +http://opensuse.cs.utah.edu/distribution/11.1/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/11.1/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/11.1/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/11.1/repo/non-oss +http://130.57.19.201/distribution/11.1/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.1/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.1/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.1/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.1/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.1/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/11.1/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.1/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.1/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.patan.com.ar/distribution/11.1/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.1/repo/non-oss +http://opensuse.pop.com.br/distribution/11.1/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/non-oss diff --git a/lib/distro-info/suse-11.2_x86_64/mirrors/base_update b/lib/distro-info/suse-11.2_x86_64/mirrors/base_update new file mode 100644 index 00000000..d0c666e0 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/mirrors/base_update @@ -0,0 +1,246 @@ +http://opensuse.mirror.ac.za/opensuse/update/11.1 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.1 +http://download.opensuse.or.id/update/11.1 +ftp://opensuse.mirror.ac.za/opensuse/update/11.1 +http://mirror.lupaworld.com/opensuse/update/11.1 +http://www.lizardsource.cn/update/11.1 +http://mirror.alva.ge/pub/opensuse/update/11.1 +http://mirror.alva.ge/pub/opensuse/update/11.1 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.1 +http://mirror.unej.ac.id/opensuse/update/11.1 +http://opensuse.cbn.net.id/update/11.1 +http://repo.ugm.ac.id/opensuse/update/11.1 +ftp://mirror.unej.ac.id/opensuse/update/11.1 +http://dl2.foss-id.web.id/opensuse/update/11.1 +http://mirror.isoc.org.il/pub/opensuse/update/11.1 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.1 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.1 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.1 +ftp://mirror.isoc.org.il/opensuse/update/11.1 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.1 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.1 +ftp://repo.ugm.ac.id/opensuse/update/11.1 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.1 +ftp://www.lizardsource.cn/update/11.1 +http://ftp.riken.jp/Linux/opensuse/update/11.1 +http://ftp.daum.net/opensuse/update/11.1 +http://77.88.19.68/opensuse/update/11.1 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.1 +http://77.88.19.73/opensuse/update/11.1 +ftp://ftp.riken.jp/Linux/opensuse/update/11.1 +http://mirror.suse.ru/update/11.1 +http://77.88.19.74/opensuse/update/11.1 +http://93.158.155.193/opensuse/update/11.1 +ftp://dispenser.yandex.net/opensuse/update/11.1 +ftp://ftp.kaist.ac.kr/opensuse/update/11.1 +ftp://ftp.chg.ru/pub/opensuse/update/11.1 +ftp://spreader.yandex.net/opensuse/update/11.1 +ftp://allotter.yandex.net/opensuse/update/11.1 +http://mirror.nus.edu.sg/opensuse/update/11.1 +ftp://seeder.yandex.net/opensuse/update/11.1 +ftp://ftp.metu.edu.tr/opensuse/update/11.1 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.1 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/11.1 +ftp://mirror.in.th/opensuse/update/11.1 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.1 +http://ftp.chg.ru/pub/opensuse/update/11.1 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/11.1 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/11.1 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.1 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.1 +http://mirror-fpt-telecom.fpt.net/opensuse/update/11.1 +http://suse.inode.at/opensuse/update/11.1 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/11.1 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.1 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.1 +http://ftp.tugraz.at/mirror/opensuse/update/11.1 +ftp://suse.inode.at/opensuse/update/11.1 +http://suse.lagis.at/opensuse/update/11.1 +ftp://suse.lagis.at/opensuse/update/11.1 +http://mirror.opensuse.com.ba/opensuse/update/11.1 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.1 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.1 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.1 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.1 +http://mirrors.netbg.com/opensuse/update/11.1 +ftp://mirrors.netbg.com/opensuse/update/11.1 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.1 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.1 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.1 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.1 +http://ftp.linux.cz/pub/linux/opensuse/update/11.1 +ftp://mirror.switch.ch/mirror/opensuse/update/11.1 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.1 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.1 +http://ftp5.gwdg.de/pub/opensuse/update/11.1 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.1 +ftp://ftp5.gwdg.de/pub/opensuse/update/11.1 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.1 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.1 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.1 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.1 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/11.1 +http://opensuse.intergenia.de/update/11.1 +http://ftp.uni-ulm.de/mirrors/opensuse/update/11.1 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.1 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.1 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.1 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.1 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.1 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.1 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.1 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.1 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.1 +http://ftp3.gwdg.de/pub/opensuse/update/11.1 +http://widehat.opensuse.org/update/11.1 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.1 +http://ftp.uni-kassel.de/opensuse/update/11.1 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.1 +http://ftp4.gwdg.de/pub/opensuse/update/11.1 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.1 +http://ftp.uni-bayreuth.de/linux/opensuse/update/11.1 +http://opensuse-linuxmigratio.at/update/11.1 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/11.1 +http://ftp.uni-siegen.de/opensuse/update/11.1 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/11.1 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.1 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.1 +http://ftp.klid.dk/ftp/opensuse/update/11.1 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.1 +ftp://ftp.uni-siegen.de/pub/opensuse/update/11.1 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.1 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/11.1 +http://ftp.rediris.es/pub/mirror/opensuse/update/11.1 +ftp://ftp.klid.dk/opensuse/update/11.1 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.1 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.1 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/11.1 +http://opensuse.mirrors.proxad.net/opensuse/update/11.1 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/11.1 +http://mirror.ovh.net/opensuse/update/11.1 +http://suse.bifi.unizar.es/opensuse/update/11.1 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.1 +http://fr2.rpmfind.net/linux/opensuse/update/11.1 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.1 +http://opensuse.cict.fr/update/11.1 +ftp://mirror.cict.fr/opensuse/update/11.1 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.1 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.1 +ftp://fr2.rpmfind.net/linux/opensuse/update/11.1 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.1 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/11.1 +ftp://mirror.ovh.net/opensuse/update/11.1 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/11.1 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.1 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.1 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.1 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.1 +http://roxen.integrity.hu/pub/opensuse/update/11.1 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.1 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.1 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.1 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.1 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.1 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.1 +http://rm.mirror.garr.it/mirrors/opensuse/update/11.1 +http://repo1.linux.edu.lv/update/11.1 +http://mirror.leaseweb.com/opensuse/update/11.1 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.1 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.1 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.1 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.1 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.1 +ftp://mirror.leaseweb.com/opensuse/update/11.1 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.1 +http://opensuse.hro.nl/opensuse/update/11.1 +ftp://repo1.linux.edu.lv/update/11.1 +http://opensuse.uib.no/update/11.1 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/11.1 +http://ftp.uninett.no/pub/linux/opensuse/update/11.1 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.1 +ftp://opensuse.hro.nl/opensuse/update/11.1 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.1 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.1 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.1 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/11.1 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.1 +http://ftp.sileman.pl/pub/opensuse/update/11.1 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.1 +ftp://ftp.pbone.net/pub/opensuse/update/11.1 +http://cesium.di.uminho.pt/pub/opensuse/update/11.1 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.1 +ftp://ftp.sileman.pl/pub/opensuse/update/11.1 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.1 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.1 +http://ftp.gts.lug.ro/opensuse/update/11.1 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.1 +http://ftp.ines.lug.ro/opensuse/update/11.1 +ftp://ftp.ines.lug.ro/opensuse/update/11.1 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.1 +http://mirrors.se.eu.kernel.org/opensuse/update/11.1 +ftp://ftp.pbone.net/pub/opensuse/update/11.1 +http://ftp.df.lth.se/pub/opensuse/update/11.1 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.1 +ftp://ftp.gts.lug.ro/opensuse/update/11.1 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.1 +http://less.cogeco.net/ftp/openSUSE/update/11.1 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.1 +http://opensuse.ynet.sk/update/11.1 +ftp://mirrors.se.eu.kernel.org/opensuse/update/11.1 +http://www.muug.mb.ca/pub/opensuse/update/11.1 +http://linux.dell.com/repo/community/update/11.1 +ftp://www.muug.mb.ca/pub/opensuse/update/11.1 +http://ftp.osuosl.org/pub/opensuse/update/11.1 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.1 +http://suse.mirrors.tds.net/pub/opensuse/update/11.1 +http://mirrors.med.harvard.edu/opensuse/update/11.1 +ftp://ftp.osuosl.org/pub/opensuse/update/11.1 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.1 +http://mirror.umoss.org/opensuse/update/11.1 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.1 +http://opensuse.cs.utah.edu/update/11.1 +http://opensuse.ca.unixheads.org/update/11.1 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.1 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.1 +http://mirrors.xmission.com/opensuse/update/11.1 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.1 +ftp://suse.mirrors.tds.net/pub/opensuse/update/11.1 +http://mirrors2.kernel.org/opensuse/update/11.1 +ftp://mirrors.xmission.com/opensuse/update/11.1 +http://mirrors1.kernel.org/opensuse/update/11.1 +ftp://mirrors2.kernel.org/opensuse/update/11.1 +http://130.57.19.201/update/11.1 +ftp://mirrors1.kernel.org/opensuse/update/11.1 +ftp://mirror.rackspace.com/openSUSE/update/11.1 +ftp://130.57.19.201/pub/opensuse/update/11.1 +http://ftp.utexas.edu/opensuse/update/11.1 +ftp://mirror.colorado.edu/pub/opensuse/update/11.1 +http://mirror.rackspace.com/openSUSE/update/11.1 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/11.1 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.1 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.1 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.1 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/11.1 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/11.1 +http://mirror.nyi.net/opensuse/update/11.1 +ftp://mirror.colorado.edu/pub/opensuse/update/11.1 +http://mirrors.rit.edu/opensuse/update/11.1 +http://ftp.iinet.net.au/pub/opensuse/update/11.1 +ftp://mirror.nyi.net/opensuseupdate/11.1 +http://mirror.internode.on.net/pub/opensuse/update/11.1 +http://mirror.pacific.net.au/linux/opensuse/update/11.1 +ftp://ftp.iinet.net.au/pub/opensuse/update/11.1 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.1 +http://200.221.9.37/pub/opensuse/update/11.1 +http://opensuse.c3sl.ufpr.br/update/11.1 +http://opensuse.pop.com.br/update/11.1 +http://opensuse.patan.com.ar/update/11.1 +ftp://mirror.internode.on.net/pub/opensuse/update/11.1 +ftp://mirror.pacific.net.au/linux/opensuse/update/11.1 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.1 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.1 diff --git a/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group @@ -0,0 +1,33 @@ +root:x:0: +bin:x:1:daemon +daemon:x:2: +sys:x:3: +tty:x:5: +disk:x:6: +lp:x:7: +www:x:8: +kmem:x:9: +wheel:x:10: +mail:x:12: +news:x:13: +uucp:x:14: +shadow:x:15: +dialout:x:16: +audio:x:17: +floppy:x:19: +cdrom:x:20: +console:x:21: +utmp:x:22: +public:x:32: +video:x:33: +games:x:40: +xok:x:41: +trusted:x:42: +modem:x:43: +ftp:x:49: +man:x:62: +users:x:100: +nobody:x:65533: +nogroup:x:65534:nobody +messagebus:!:101: +haldaemon:!:102: diff --git a/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd @@ -0,0 +1,14 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/bash +daemon:x:2:2:Daemon:/sbin:/bin/bash +lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash +mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false +news:x:9:13:News system:/etc/news:/bin/bash +uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash +games:x:12:100:Games account:/var/games:/bin/bash +man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash +wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false +ftp:x:40:49:FTP account:/srv/ftp:/bin/bash +nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash +messagebus:x:100:101:User for D-Bus:/var/run/dbus:/bin/false +haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false diff --git a/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow @@ -0,0 +1,14 @@ +root::13481:::::: +bin:*:13481:::::: +daemon:*:13481:::::: +lp:*:13481:::::: +mail:*:13481:::::: +news:*:13481:::::: +uucp:*:13481:::::: +games:*:13481:::::: +man:*:13481:::::: +wwwrun:*:13481:::::: +ftp:*:13481:::::: +nobody:*:13481:::::: +messagebus:!:13481:0::7::: +haldaemon:!:13481:0::7::: diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQGiBEHtkpsRBACRHiXh3olS++6/Mp9N7ByGMmjaaE+Y8cJQLUPG1myrbW5aogIP +0WenayhGbbgOHNWgd5dQ8KQpYYFoQuUHjFYzj5MvgrdOENOvD7ZNJ6+EmbkNh5cV +zUYfNG9jdiGweZkyA1sh8DYS0JiUmQ4CzaBD/DotB/dCmDcyuNQFiw4qKwCglQah +ATyueBRsOiXl0NIs1uB6dkkD/1A2YmQ6te1q38a1J+a8os6bDlMZhVnkZdhJdw6x +eBwUb9XS0n7hyt/AKCcBnrDEUQJuhBMNgzctJvbuMv27yRMANAXZDQkp0ip/yHLJ +PhUdSNTTRHOL9bV3t+JuZ9xmuclprwyrrJYUkEESXNc0tkuczHBP2c/RqA3OxYHt +hrHLA/9Pqe2gEleeo8l26u/uFXs2dtwjh8EZmdhHoqGcOlpYR4DyAg2D+jYfh3RI +oPzIwRlHVUR1ii5h8iPi98BVuEvukwfbbQ1K22Jwzxt6w3ihCXBKWKbeC3ElIMfA +hVMchLFUbTAw+yodO/u3NHxKQ34+ginid9dVyxV5T0gpDEEHObQrT3BlbiBFbnRl +cnByaXNlIFNlcnZlciA8c3VwcG9ydEBub3ZlbGwuY29tPoheBBMRAgAeBQJB7ZKb +AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHPSXWMN+zGID4oAoJPTGZbZApW+ +tuU422mHYGwoqgjrAJ9fhzRhRbV3YsOxKUomNeuIfmWGXA== +=Qv5+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIC +GwMECwcDAgMVAgMDFgIBAh4BAheABQJIHzCqBQkHwXpNAAoJEOOlw2Awfj1UvWgE +AIRoxE8S6jQB7S43SVcX06FHJeUJ/m+1ErIj9LwJTYrR/8qsDjTgrttgb+nBHkIj +NhCCLAuR8sWj3CxsUMH2fayryNnwZEWGqnzo7Jtt4R1Ur3h5pHYonFjfoJyFUZjJ +7Mhw7/TuOWx20FrzqBi8tbHx8pd7Fa5lCUgopVtMh6GR +=R56j +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQENAzbhLQQAAAEIAKAkXHe0lWRBXLpn38hMHy03F0I4Sszmoc8aaKJrhfhyMlOA +BqvklPLE2f9UrI4Xc860gH79ZREwAgPt0pi6+SleNFLNcNFAuuHMLQOOsaMFatbz +JR9i4m/lf6q929YROu5zB48rBAlcfTm+IBbijaEdnqpwGib45wE/Cfy6FAttBHQh +1Kp+r/jPbf1mYAvljUfHKuvbg8t2EIQz/5yGp+n5trn9pElfQO2cRBq8LFpf1l+U +P7EKjFmlOq+Gs/fF98/dP3DfniSd78LQPq5vp8RL8nr/o2i7jkAQ33m4f1wOBWd+ +cZovrKXYlXiR+Bf7m2hpZo+/sAzhd7LmAD0l09kABRG0JVN1U0UgU2VjdXJpdHkg +VGVhbSA8c2VjdXJpdHlAc3VzZS5kZT6JARUDBRA24S1H5Fiyh7HKPEUBAVcOB/9b +yHYji1/+4Xc2GhvXK0FSJN0MGgeXgW47yxDL7gmR4mNgjlIOUHZj0PEpVjWepOJ7 +tQS3L9oP6cpj1Fj/XxuLbkp5VCQ61hpt54coQAvYrnT9rtWEGN+xmwejT1WmYmDJ +xG+EGBXKr+XP69oIUl1E2JO3rXeklulgjqRKos4cdXKgyjWZ7CP9V9daRXDtje63 +Om8gwSdU/nCvhdRIWp/Vwbf7Ia8iZr9OJ5YuQl0DBG4qmGDDrvImgPAFkYFzwlqo +choXFQ9y0YVCV41DnR+GYhwl2qBd81T8aXhihEGPIgaw3g8gd8B5o6mPVgl+nJqI +BkEYGBusiag2pS6qwznZiQEVAwUQNuEtBHey5gA9JdPZAQFtOAf+KVh939b0J94u +v/kpg4xs1LthlhquhbHcKNoVTNspugiC3qMPyvSX4XcBr2PC0cVkS4Z9PY9iCfT+ +x9WM96g39dAF+le2CCx7XISk9XXJ4ApEy5g4AuK7NYgAJd39PPbERgWnxjxir9g0 +Ix30dS30bW39D+3NPU5Ho9TD/B7UDFvYT5AWHl3MGwo3a1RhTs6sfgL7yQ3U+mvq +MkTExZb5mfN1FeaYKMopoI4VpzNVeGxQWIz67VjJHVyUlF20ekOz4kWVgsxkc8G2 +saqZd6yv2EwqYTi8BDAduweP33KrQc4KDDommQNDOXxaKOeCoESIdM4p7Esdjq1o +L0oixF12CohGBBARAgAGBQI7HmHDAAoJEJ5A4xAACqukTlQAoI4QzP9yjPohY7OU +F7J3eKBTzp25AJ42BmtSd3pvm5ldmognWF3Trhp+GYkAlQMFEDe3O8IWkDf+zvyS +FQEBAfkD/3GG5UgJj18UhYmh1gfjIlDcPAeqMwSytEHDENmHC+vlZQ/p0mT9tPiW +tp34io54mwr+bLPN8l6B5GJNkbGvH6M+mO7R8Lj4nHL6pyAv3PQr83WyLHcaX7It +Klj371/4yzKV6qpz43SGRK4MacLo2rNZ/dNej7lwPCtzCcFYwqkiiEYEEBECAAYF +AjoaQqQACgkQx1KqMrDf94ArewCfWnTUDG5gNYkmHG4bYL8fQcizyA4An2eVo/n+ +3J2KRWSOhpAMsnMxtPbB +=Ay23 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..aaec909b --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQENBEkUTD8BCADWLy5d5IpJedHQQSXkC1VK/oAZlJEeBVpSZjMCn8LiHaI9Wq3G +3Vp6wvsP1b3kssJGzVFNctdXt5tjvOLxvrEfRJuGfqHTKILByqLzkeyWawbFNfSQ +93/8OunfSTXC1Sx3hgsNXQuOrNVKrDAQUqT620/jj94xNIg09bLSxsjN6EeTvyiO +mtE9H1J03o9tY6meNL/gcQhxBvwuo205np0JojYBP0pOfN8l9hnIOLkA0yu4ZXig +oKOVmf4iTjX4NImIWldT+UaWTO18NWcCrujtgHueytwYLBNV5N0oJIP2VYuLZfSD +VYuPllv7c6O2UEOXJsdbQaVuzU1HLocDyipnABEBAAG0NG9wZW5TVVNFIFByb2pl +Y3QgU2lnbmluZyBLZXkgPG9wZW5zdXNlQG9wZW5zdXNlLm9yZz6JATwEEwECACYF +AkkUTD8CGwMFCQPCZwAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRC4iy/UPb3C +hIE9B/9DUwwQ5c+8xW0x2Fli5Yn1P+4Wq3nmB+ZTpM5Q1a7A2l+HhpUBsnwx2e/4 +RuXlJ06uYby8UpXCli44jXFepJgiXp7ZRPX5A06aY9Pz0wawsMtYQS716+vSV3e3 +ynZmTGKxj8Z94TEVcEjMP1/XpjW22DcpItRJX2VCW7lUXDmRfQzBEolcfwlF7a1B +VcSqGZX8JvuTocLX/+fYBhZYQvERw6PUVGoEskMXMoRg6PqWMesW9Bq3cm8oeBa2 +4YmGLkN2ztBIbqRMSv0binKcddHHvRlxVFRXrnnlXrEPKrx9Fbu4vkqrG+EKE6+v +GO73ROyEcJuuoJTYsKPx6Uic5gRl +=guZP +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..f0bb55a3 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQGiBEeWWzMRBADU8l2IckSzgdUS1dn0WMM7wXK4seoFsHHQw/0unHCQCxpyDMnn +TKV86p5KTbR1FDdeaZlY0yCV+IGsiIxLyuUdJn8vuA5gA5ZkUr89/HtWaeZVl77J +HIQxvhDRBWCOO4QNtrZYWvGbvl83wl/zOfdLEs8IGElt0LgfohyTA1qfrwCg/Hac +tDDscXsPlo5Jek/+3RHVeD0D/30riCpfpLJOmhraLg1EbWsE0mN9IQsl+WDPdoYo +bB76z6eH3e38618WzP/LTG4WuVbwpSSqmXyfdVpXxWzESfT8q0B8CGpHf/Sa/T/L +emohmRnLvkf/tAfxFmDMm1jOewJIE9S35jANGHVJcxmfRNpPWC7uHnqjopnsmDkL +kMEdBAC6YcpDOcMJZ9sJbt/JNZBaoT5CltgMDlSN50t2v/J5em8qMLqCSNF5UJyd +LFnePHTHy6gVjWbqcC0ncFzOqM1y644Up7BoKSAr1hRTl6Mw9S3UfZZZ0al3JtWt +8y0eFIW3QP66w1AL0LO2bZMBuOvhb63DXv5iHorcxk0yIFbbybRCb3BlblNVU0U6 +RmFjdG9yeSBPQlMgUHJvamVjdCA8b3BlblNVU0U6RmFjdG9yeUBidWlsZC5vcGVu +c3VzZS5vcmc+iGYEExECACYFAkeWWzMCGwMFCQQesAAGCwkIBwMCBBUCCAMEFgID +AQIeAQIXgAAKCRAcchwkVrQXevBsAKCOeScnlH2fWVBJGHTOVJ3M4yBqDACbBeNk +PuWo05AOQ3M1dLE1hkN36G+IRgQTEQIABgUCR5ZbMwAKCRA7MBG3a51lI7PfAKCc +9ZtKfI5G/g66V7pSMXh9gi+ykgCgivPfGMDh9HIROwBIudo2qGImOqI= +=htdw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQGiBER0iroRBADfqUeJmPCXqPJFnf3CVKy40dL1F+gfvP+JHN7/uu4c9+oCYjI1 +uAE8iGTm/Twb/Zzbs4dt0iWjhNFXbRi42rMww4d/8QcPYZ21WSehh+fv8nCjt2sw +LeC87ar2SR8OTpJBK0fQlcd4e6H5GMntfI6SYEUOPd8m/eQ+4+1AxpUUpwCgswaF +13fePZGI//pDn5tGjbvmaP8D/R3qum/I+oDS8lbFeeDS10GkEkwTYec13gdfsq6I +yzIj7VBsC+rGfbipv+VGR61Q4d19pOHKLDekr9OG+3G4ZcYM4NQvQZR+QIlp3xWu +nBmYD1LRkHLVj+Z4DGQhjjOffkPSuacKPymMaZ/aRiLgTIAo97W2YPhutscXrLSG +2Y+BA/4jsyaDb7kbW4wc8RtPIcuFEheVqgBeRakP9Uj47kBMBEpPtI/mIdY5liKk +ztKnuQG6ROYLNV/PW0ZbE1uT64C710weh4cB3PnZLV5P10deDLBjHk8MJQGCTSDD +JYvhutUzQfshAU6j2kErGvKdZxWGezab34vFyMP2oLGqswPAJrRQTm92ZWxsIFBy +b3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20pIDxub3ZlbGwt +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQW +AgMBAh4BAheABQJIFkiPBQkHhmvVAAoJEBTCi8l+LjsFn4QAn2wgOHudNubNZvTz +NdaYJKJ0m2qnAJ9hd0nQBhn28H4Ii4a4h7kpGWRxN4hGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=MWDN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQGiBDnu9IERBACT8Y35+2vv4MGVKiLEMOl9GdST6MCkYS3yEKeueNWc+z/0Kvff +4JctBsgs47tjmiI9sl0eHjm3gTR8rItXMN6sJEUHWzDP+Y0PFPboMvKx0FXl/A0d +M+HFrruCgBlWt6FA+okRySQiliuI5phwqkXefl9AhkwR8xocQSVCFxcwvwCglVcO +QliHu8jwRQHxlRE0tkwQQI0D+wfQwKdvhDplxHJ5nf7U8c/yE/vdvpN6lF0tmFrK +XBUX+K7u4ifrZlQvj/81M4INjtXreqDiJtr99Rs6xa0ScZqITuZC4CWxJa9GynBE +D3+D2t1V/f8l0smsuYoFOF7Ib49IkTdbtwAThlZp8bEhELBeGaPdNCcmfZ66rKUd +G5sRA/9ovnc1krSQF2+sqB9/o7w5/q2qiyzwOSTnkjtBUVKn4zLUOf6aeBAoV6NM +CC3Kj9aZHfA+ND0ehPaVGJgjaVNFhPi4x0e7BULdvgOoAqajLfvkURHAeSsxXIoE +myW/xC1sBbDkDUIBSx5oej73XCZgnj/inphRqGpsb+1nKFvF+rQoU3VTRSBQYWNr +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiAhsDBAsHAwID +FQIDAxYCAQIeAQIXgAUCSB80OgUJEfKmuQAKCRCoTtronIAKyuJlAJ0cWZifmBO6 +Eh71jattipdMhUYBTwCfSXbJJtuF3c96JPmpmT8be2LDo86IRgQQEQIABgUCOnBe +UgAKCRCeQOMQAAqrpNzOAKCL512FZvv4VZx94TpbA9lxyoAejACeOO1HIbActAev +k5MUBhNeLZa/qM2JARUDBRA6cGBvd7LmAD0l09kBATWnB/9An5vfiUUE1VQnt+T/ +EYklES3tXXaJJp9pHMa4fzFa8jPVtv5UBHGee3XoUNDVwM2OgSEISZxbzdXGnqIl +cT08TzBUD9i579uifklLsnr35SJDZ6ram51/CWOnnaVhUzneOA9gTPSr+/fT3WeV +nwJiQCQ30kNLWVXWATMnsnT486eAOlT6UNBPYQLpUprF5Yryk23pQUPAgJENDEqe +U6iIO9Ot1ZPtB0lniw+/xCi13D360o1tZDYOp0hHHJN3D3EN8C1yPqZd5CvvznYv +B6bWBIpWcRgdn2DUVMmpU661jwqGlRz1F84JG/xe4jGuzgpJt9IXSzyohEJB6XG5 ++D0BuQINBDnu9JIQCACEkdBN6Mxf5WvqDWkcMRy6wnrd9DYJ8UUTmIT2iQf07tRU +KJJ9v0JXfx2Z4d08IQSMNRaq4VgSe+PdYgIy0fbj23Via5/gO7fJEpD2hd2f+pMn +OWvH2rOOIbeYfuhzAc6BQjAKtmgR0ERUTafTM9Wb6F13CNZZNZfDqnFDP6L12w3z +3F7FFXkz07Rs3AIto1ZfYZd4sCSpMr/0S5nLrHbIvGLp271hhQBeRmmoGEKO2JRe +lGgUJ2CUzOdtwDIKT0LbCpvaP8PVnYF5IFoYJIWRHqlEt5ucTXstZy7vYjL6vTP4 +l5xs+LIOkNmPhqmfsgLzVo0UaLt80hOwc4NvDCOLAAMGB/9g+9V3ORzw4LvO1pwR +YJqfDKUq/EJ0rNMMD4N8RLpZRhKHKJUm9nNHLbksnlZwrbSTM5LpC/U6sheLP+l0 +bLVoq0lmsCcUSyh+mY6PxWirLIWCn/IAZAGnXb6Zd6TtIJlGG6pqUN8QxGJYQnon +l0uTJKHJENbI9sWHQdcTtBMc34gorHFCo1Bcvpnc1LFLrWn7mfoGx6INQjf3HGQp +MXAWuSBQhzkazY6vaWFpa8bBJ+gKbBuySWzNm3rFtT5HRKMWpO+M9bHp4d+puY0L +1YwN1OMatcMMpcWnZpiWiR83oi32+xtWUY2U7Ae38mMag8zFbpeqPQUsDv9V7CAJ +1dbriEwEGBECAAwFAkgfNGYFCRHyptQACgkQqE7a6JyACsrv3ACbBLhafFXmTjH3 +JJWFJGWuIOaZUosAniPs4feEyN46gjXGgcZc2Ai8nkm6 +=mY6G +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.9 (GNU/Linux) + +mQILBERqCJkBEACdqhZWdAbUHLIumXMEgv+GFjr1ZzVHgynnFOzztU/8sxZNa9cm +YV4HZpVfjMr7fos3ArzyiPPt/336cf7w9p79/ZS4rHSNPDMlPCtXYvFxUbvU0/GY +q4jwcBsrJ0xaJ9CP5bWyAgVKOb7Y6k0ktaLjRR+tDfMsHA4H0ClMoRr6ATw8NL0e +VCfAHuzqCKvX1If8ng+wTivtAhKvz/WwQiELNELmPfc5tZHOw8NgP/r0Pze18Hn2 +dlAHu0WpC7uoR00vscsMIJiJJPcsxbL1F1eADKnk+wEy8Go+EJeJ5i0WoFbqD52q +Lv/C/oY6NVtVY0MBwtn+oQNSnQ4JBsB/Akdt53LAi0ZtNQxMyUW+76R8FCOmVCV8 +WGiF5CPRP0yvG80AMBjBjKjHb/v8ov5MnIyFimzAHS1gQcUNxTEYA/5eFwoYcGcK +weGq9FUjPTzLQAgvp7XmOzHpSAfJ7qysxFTepNsSZZhgizJyInrdQldr+GYcUNqB +krD9MWmFop975OxhCTEnNv/HcE79r8WD26HzDFYxTiTJbr0pU/ivBzo+rjq+YG2V +stJk+udVYmZTnC4LmXus8JiNuqBXbxNscwCBpcJ8YcfCV6uh+7E0XfXZsgVUFLp1 +NF+ylYRGTycOlWoZODrnJevZW7N9O3bWRx/G2P4bJD07LsDLe4i5hymf5QAGKbRQ +Tm92ZWxsIFByb3ZvIEJ1aWxkIChDb250YWN0IHNlY3VyaXR5QG5vdmVsbC5jb20p +IDxub3ZlbGwtcHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6JAjMEEwECAB0FAkRqCJkG +CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBHijLooZEiCKSFD/93vZHCAMLEfksU +KnvXl08bv1rfuamuyJnE3ANRE5RDyypriHMCnkVxazvQ2WI4W4UEjluL9+SzZwtV +ZvKVoAr31614nSyWwv2YnJTHfjMG+xRlkolZMnuIiB9PcCBo9+GPU0ABuzo4pEJW +NIRoSS1NFbAZBhtUnY0cN+trM5QObLl7xXTavLyGk//blkk57fov7GXsQJlZUig0 +l2yt5XNyGpLUnTMDumHh8b389quF+0+ZfdwOy7A768xjipAZiTvIujBrEv51wrxh +0HBT0VGA0MhD9t0B+Ce4BM9P/iVMO00naaOp6PqMfPPKxQQqer8qy1i6UWBx95SY +mKZBIvOm2d9PezDxkckCu61r6krx1iKnT1wdprCAkIYwALK118SpbxuyGW0bhRHc +wsc/akzWH72fS0Xu49mvL4k4A2U9asdeQid3dMgbtm5mSWof0yiU/G4YNn0yeXoY +oG1VbCAqQbFX1Rvd6GITJVqI+ekW/uMA9BP78dF8wBeG0+QmpQnSf+eOsxB/RT8o +Kb4hHY+29MUlg+i9ceVt7hoKr03J/uIG5TXFXRYLaI0iAFVlKfWxpqDfS2XA4+dD +VYt+5RDgBcnxDaTB4FE9GqcYScNfe7+NFtL0p0wOPftbmgZzGjucTmrD8mDUNdqA +xGK7vlk4GATSfOQlq7G6LXW6RYnInohGBBMRAgAGBQJEazMlAAoJEKhO2uicgArK +2vMAn0TbVDESEVKVuFZStrfIzOvJQrR9AJsH733Ju1kE99GFrdfCeGqpckmNhg== +=E+qN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg Binary files differnew file mode 100644 index 00000000..5bd5a78e --- /dev/null +++ b/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg diff --git a/lib/distro-info/ubuntu-10.04/mirrors/base b/lib/distro-info/ubuntu-10.04/mirrors/base new file mode 100644 index 00000000..cddbef70 --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/mirrors/base @@ -0,0 +1,162 @@ +http://archive.ubuntu.com.ba/ubuntu +http://archive.ubuntu.com/ubuntu +ftp://br.archive.ubuntu.com/ubuntu +ftp://bw.archive.ubuntu.com/ubuntu +http://cl.archive.ubuntu.com/ubuntu +http://cudlug.cudenver.edu/ubuntu +http://cz.archive.ubuntu.com/ubuntu +ftp://darkstar.ist.utl.pt/pub/ubuntu/archive +http://darkstar.ist.utl.pt/ubuntu/archive +http://de.archive.ubuntu.com/ubuntu +http://debian.charite.de/ubuntu +http://debian.linux.org.tw/ubuntu +http://dk.archive.ubuntu.com/ubuntu +http://es.archive.ubuntu.com/ubuntu +http://espelhos.edugraf.ufsc.br/ubuntu +ftp://free.nchc.org.tw/ubuntu +http://ftp-stud.fht-esslingen.de/Mirrors/ubuntu +http://ftp-stud.hs-esslingen.de/ubuntu +http://ftp.belnet.be/linux/ubuntu/ubuntu +http://ftp.belnet.be/pub/mirror/ubuntu.com/ubuntu +http://ftp.caliu.info/pub/distribucions/ubuntu/ubuntu +http://ftp.chg.ru/pub/Linux/ubuntu/archive +ftp://ftp.ciril.fr/pub/linux/ubuntu/archives +http://ftp.citylink.co.nz/ubuntu +http://ftp.crihan.fr/ubuntu +ftp://ftp.cw.net/pub/linux/ftp.ubuntu.com/ubuntu +http://ftp.cw.net/ubuntu +http://ftp.dateleco.es/ubuntu +http://ftp.dei.uc.pt/pub/linux/ubuntu/archive +http://ftp.duth.gr/pub/ubuntu +http://ftp.ecc.u-tokyo.ac.jp/ubuntu +http://ftp.estpak.ee/ubuntu +ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.freepark.org/ubuntu +ftp://ftp.fu-berlin.de/linux/ubuntu +ftp://ftp.funet.fi/pub/mirrors/archive.ubuntu.com +http://ftp.gil.di.uminho.pt/ubuntu +ftp://ftp.gtlib.gatech.edu/pub/ubuntu +http://ftp.gui.uva.es/sites/ubuntu.com/ubuntu +http://ftp.heanet.ie/pub/ubuntu +http://ftp.hosteurope.de/mirror/archive.ubuntu.com +ftp://ftp.iinet.net.au/pub/ubuntu +ftp://ftp.iitm.ac.in/ubuntu +http://ftp.kaist.ac.kr/pub/ubuntu +http://ftp.kfki.hu/linux/ubuntu +ftp://ftp.kfki.hu/pub/linux/ubuntu +http://ftp.leg.uct.ac.za/pub/linux/ubuntu +http://ftp.linux.edu.lv/ubuntu +ftp://ftp.linux.org.tr/pub/ubuntu +http://ftp.lug.ro/ubuntu +ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu +ftp://ftp.mipt.ru/mirror/ubuntu +ftp://ftp.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://ftp.netspace.net.au/pub/ubuntu +http://ftp.ntua.gr/pub/linux/ubuntu +ftp://ftp.oleane.net/ubuntu +ftp://ftp.otenet.gr/ubuntu +http://ftp.port80.se/ubuntu +http://ftp.pwr.wroc.pl/ubuntu +ftp://ftp.rrzn.uni-hannover.de/pub/mirror/linux/ubuntu +ftp://ftp.science.nus.edu.sg/pub/ubuntu +http://ftp.science.nus.edu.sg/ubuntu +http://ftp.stw-bonn.de/ubuntu +http://ftp.ticklers.org/archive.ubuntu.org/ubuntu +ftp://ftp.tiscali.nl/pub/mirror/ubuntu +http://ftp.tiscali.nl/ubuntu +http://ftp.tu-chemnitz.de/pub/linux/ubuntu +ftp://ftp.tudelft.nl/pub/Linux/archive.ubuntu.com +http://ftp.tuke.sk/ubuntu +http://ftp.twaren.net/Linux/Ubuntu/ubuntu +http://ftp.u-picardie.fr/mirror/ubuntu/ubuntu +ftp://ftp.uasw.edu/linux/ubuntu/archive +http://ftp.ucr.ac.cr/ubuntu +http://ftp.udc.es/ubuntu +http://ftp.uni-kl.de/pub/linux/ubuntu +http://ftp.uni-muenster.de/pub/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.unina.it/pub/linux/distributions/ubuntu +http://ftp.uninett.no/ubuntu +http://ftp.usf.edu/pub/ubuntu +http://ftp.ussg.iu.edu/linux/ubuntu +ftp://ftp.vectranet.pl/ubuntu +http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives +ftp://ftpserv.tudelft.nl/pub/Linux/archive.ubuntu.com +http://gd.tuwien.ac.at/opsys/linux/ubuntu/archive +http://godel.cs.bilgi.edu.tr/ubuntu +http://gulus.USherbrooke.ca/ubuntu +http://hr.archive.ubuntu.com/ubuntu +http://ie.archive.ubuntu.com/ubuntu +http://klid.dk/ftp/ubuntu +ftp://klid.dk/ubuntu +http://kr.archive.ubuntu.com/ubuntu +http://lug.mtu.edu/ubuntu +http://mir1.ovh.net/ubuntu +http://mirror.anl.gov/pub/ubuntu +http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive +http://mirror.cs.umn.edu/ubuntu +http://mirror.hgkz.ch/ubuntu +http://mirror.imbrandon.com/ubuntu +http://mirror.lcsee.wvu.edu/ubuntu +http://mirror.letsopen.com/os/ubuntu +http://mirror.lupaworld.com/ubuntu/archive +http://mirror.nttu.edu.tw/ubuntu +http://mirror.optus.net/ubuntu +http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu +http://mirror.pacific.net.au/linux/ubuntu +http://mirror.rootguide.org/ubuntu +http://mirror.switch.ch/ftp/mirror/ubuntu +ftp://mirror.switch.ch/mirror/ubuntu +http://mirror.uni-c.dk/ubuntu +http://mirror.utdlug.org/linux/distributions/ubuntu/packages +http://mirrors.cat.pdx.edu/ubuntu +http://mirrors.ccs.neu.edu/archive.ubuntu.com +ftp://mirrors.ccs.neu.edu/net/mirrors/archive.ubuntu.com +http://mirrors.cs.wmich.edu/ubuntu +ftp://mirrors.easynews.com/linux/ubuntu +http://mirrors.kernel.org/ubuntu +http://mirrors.nic.funet.fi/ubuntu +http://mirrors.shlug.org/ubuntu +ftp://mirrors.virginmedia.com/mirrors/ubuntu/archive +http://mirrors.xmission.com/ubuntu +http://mt.archive.ubuntu.com/ubuntu +http://na.mirror.garr.it/mirrors/ubuntu-archive +ftp://neacm.fe.up.pt/pub/ubuntu +http://neacm.fe.up.pt/ubuntu +http://nl.archive.ubuntu.com/ubuntu +http://nl2.archive.ubuntu.com/ubuntu +http://nz2.archive.ubuntu.com/ubuntu +http://packages.midian.hu//pub/linux/distributions/ubuntu +http://se.archive.ubuntu.com/ubuntu +http://sft.if.usp.br/ubuntu +http://snert.mi.hs-heilbronn.de/pub/ubuntu/ubuntu +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/ubuntu/ubuntu +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/ubuntu/ubuntu +http://tezcatl.fciencias.unam.mx/ubuntu +http://th.archive.ubuntu.com/ubuntu +ftp://tw.archive.ubuntu.com/ubuntu +http://ubuntu-archive.datahop.it/ubuntu +http://ubuntu.c3sl.ufpr.br/ubuntu +http://ubuntu.cn99.com/ubuntu +http://ubuntu.cs.utah.edu/ubuntu +http://ubuntu.csie.nctu.edu.tw/ubuntu +http://ubuntu.eriders.ge/ubuntu +http://ubuntu.fastbull.org/ubuntu +http://ubuntu.indika.net.id/ubuntu +http://ubuntu.inode.at/ubuntu +http://ubuntu.intergenia.de/ubuntu +http://ubuntu.ipacct.com/ubuntu +http://ubuntu.lhi.is/ubuntu +http://ubuntu.linux-bg.org/ubuntu +http://ubuntu.mirror.frontiernet.net/ubuntu +http://ubuntu.mirror.rafal.ca/ubuntu +http://ubuntu.mirrors.skynet.be/pub/ubuntu.com/ubuntu +http://ubuntu.snet.uz/ubuntu +http://ubuntu.supp.name/ubuntu +http://ubuntu.task.gda.pl/ubuntu +http://ubuntu.univ-nantes.fr/ubuntu +http://ubuntu.uz/ubuntu +http://ubuntu.ynet.sk/ubuntu +http://www.gtlib.gatech.edu/pub/ubuntu +http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com +ftp://yu.archive.ubuntu.com/ubuntu diff --git a/lib/distro-info/ubuntu-10.04/mirrors/base_security b/lib/distro-info/ubuntu-10.04/mirrors/base_security new file mode 100644 index 00000000..3617b3dd --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/mirrors/base_security @@ -0,0 +1,162 @@ +http://archive.ubuntu.com.ba/ubuntu +http://archive.ubuntu.com/ubuntu +http://br.archive.ubuntu.com/ubuntu +http://bw.archive.ubuntu.com/ubuntu +http://cl.archive.ubuntu.com/ubuntu +http://cudlug.cudenver.edu/ubuntu +ftp://cz.archive.ubuntu.com/MIRRORS/archive.ubuntu.com/mirror/ubuntu +http://cz.archive.ubuntu.com/ubuntu +ftp://darkstar.ist.utl.pt/pub/ubuntu/archive +http://darkstar.ist.utl.pt/ubuntu/archive +http://de.archive.ubuntu.com/ubuntu +http://debian.charite.de/ubuntu +http://debian.linux.org.tw/ubuntu +http://dk.archive.ubuntu.com/ubuntu +http://es.archive.ubuntu.com/ubuntu +http://espelhos.edugraf.ufsc.br/ubuntu +http://free.nchc.org.tw/ubuntu +http://ftp-stud.fht-esslingen.de/Mirrors/ubuntu +http://ftp-stud.hs-esslingen.de/ubuntu +http://ftp.belnet.be/linux/ubuntu/ubuntu +http://ftp.belnet.be/pub/mirror/ubuntu.com/ubuntu +http://ftp.caliu.info/pub/distribucions/ubuntu/ubuntu +http://ftp.chg.ru/pub/Linux/ubuntu/archive +ftp://ftp.ciril.fr/pub/linux/ubuntu/archives +http://ftp.citylink.co.nz/ubuntu +http://ftp.crihan.fr/ubuntu +ftp://ftp.cw.net/pub/linux/ftp.ubuntu.com/ubuntu +http://ftp.cw.net/ubuntu +http://ftp.dateleco.es/ubuntu +http://ftp.dei.uc.pt/pub/linux/ubuntu/archive +http://ftp.duth.gr/pub/ubuntu +http://ftp.ecc.u-tokyo.ac.jp/ubuntu +http://ftp.estpak.ee/ubuntu +ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.freepark.org/ubuntu +ftp://ftp.fu-berlin.de/linux/ubuntu +ftp://ftp.funet.fi/pub/mirrors/archive.ubuntu.com +http://ftp.gil.di.uminho.pt/ubuntu +http://ftp.gui.uva.es/sites/ubuntu.com/ubuntu +http://ftp.halifax.rwth-aachen.de/ubuntu +http://ftp.heanet.ie/pub/ubuntu +http://ftp.hosteurope.de/mirror/archive.ubuntu.com +http://ftp.iinet.net.au/pub/ubuntu +http://ftp.iitm.ac.in/ubuntu +http://ftp.kaist.ac.kr/pub/ubuntu +http://ftp.kfki.hu/linux/ubuntu +ftp://ftp.kfki.hu/pub/linux/ubuntu +http://ftp.leg.uct.ac.za/pub/linux/ubuntu +http://ftp.linux.edu.lv/ubuntu +http://ftp.lug.ro/ubuntu +ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu +ftp://ftp.mipt.ru/mirror/ubuntu +ftp://ftp.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://ftp.netspace.net.au/pub/ubuntu +http://ftp.ntua.gr/pub/linux/ubuntu +ftp://ftp.oleane.net/ubuntu +ftp://ftp.otenet.gr/ubuntu +http://ftp.pwr.wroc.pl/ubuntu +ftp://ftp.rrzn.uni-hannover.de/pub/mirror/linux/ubuntu +http://ftp.science.nus.edu.sg/ubuntu +http://ftp.stw-bonn.de/ubuntu +http://ftp.ticklers.org/archive.ubuntu.org/ubuntu +ftp://ftp.tiscali.nl/pub/mirror/ubuntu +http://ftp.tiscali.nl/ubuntu +http://ftp.tu-chemnitz.de/pub/linux/ubuntu +ftp://ftp.tudelft.nl/pub/Linux/archive.ubuntu.com +http://ftp.tuke.sk/ubuntu +http://ftp.twaren.net/Linux/Ubuntu/ubuntu +http://ftp.u-picardie.fr/mirror/ubuntu/ubuntu +ftp://ftp.uasw.edu/linux/ubuntu/archive +http://ftp.ucr.ac.cr/ubuntu +http://ftp.udc.es/ubuntu +http://ftp.uni-kl.de/pub/linux/ubuntu +http://ftp.uni-muenster.de/pub/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.unina.it/pub/linux/distributions/ubuntu +http://ftp.uninett.no/ubuntu +http://ftp.usf.edu/pub/ubuntu +http://ftp.ussg.iu.edu/linux/ubuntu +ftp://ftp.vectranet.pl/ubuntu +http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives +ftp://ftpserv.tudelft.nl/pub/Linux/archive.ubuntu.com +http://gd.tuwien.ac.at/opsys/linux/ubuntu/archive +http://godel.cs.bilgi.edu.tr/ubuntu +http://gulus.USherbrooke.ca/ubuntu +http://hr.archive.ubuntu.com/ubuntu +http://ie.archive.ubuntu.com/ubuntu +http://kr.archive.ubuntu.com/ubuntu +http://lug.mtu.edu/ubuntu +http://mir1.ovh.net/ubuntu +http://mirror.anl.gov/pub/ubuntu +http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive +http://mirror.cs.umn.edu/ubuntu +http://mirror.hgkz.ch/ubuntu +http://mirror.imbrandon.com/ubuntu +http://mirror.lcsee.wvu.edu/ubuntu +http://mirror.letsopen.com/os/ubuntu +http://mirror.lupaworld.com/ubuntu/archive +http://mirror.nttu.edu.tw/ubuntu +http://mirror.optus.net/ubuntu +http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu +http://mirror.pacific.net.au/linux/ubuntu +http://mirror.rootguide.org/ubuntu +http://mirror.switch.ch/ftp/mirror/ubuntu +ftp://mirror.switch.ch/mirror/ubuntu +http://mirror.uni-c.dk/ubuntu +http://mirror.utdlug.org/linux/distributions/ubuntu/packages +http://mirror2.etf.bg.ac.yu/distributions/ubuntu/ubuntu-archive +http://mirrors.cat.pdx.edu/ubuntu +http://mirrors.ccs.neu.edu/archive.ubuntu.com +http://mirrors.cs.wmich.edu/ubuntu +http://mirrors.easynews.com/linux/ubuntu +http://mirrors.kernel.org/ubuntu +http://mirrors.nic.funet.fi/ubuntu +http://mirrors.shlug.org/ubuntu +ftp://mirrors.virginmedia.com/mirrors/ubuntu/archive +http://mirrors.xmission.com/ubuntu +http://mt.archive.ubuntu.com/ubuntu +http://na.mirror.garr.it/mirrors/ubuntu-archive +ftp://neacm.fe.up.pt/pub/ubuntu +http://neacm.fe.up.pt/ubuntu +http://nl.archive.ubuntu.com/ubuntu +http://nl2.archive.ubuntu.com/ubuntu +http://nz2.archive.ubuntu.com/ubuntu +http://packages.midian.hu//pub/linux/distributions/ubuntu +http://se.archive.ubuntu.com/ubuntu +http://sft.if.usp.br/ubuntu +http://snert.mi.hs-heilbronn.de/pub/ubuntu/ubuntu +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/ubuntu/ubuntu +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/ubuntu/ubuntu +http://tezcatl.fciencias.unam.mx/ubuntu +http://th.archive.ubuntu.com/ubuntu +http://tw.archive.ubuntu.com/ubuntu +http://ubuntu-archive.datahop.it/ubuntu +http://ubuntu.c3sl.ufpr.br/ubuntu +http://ubuntu.cn99.com/ubuntu +http://ubuntu.cs.uaf.edu/ubuntu +http://ubuntu.cs.utah.edu/ubuntu +http://ubuntu.csie.nctu.edu.tw/ubuntu +http://ubuntu.eriders.ge/ubuntu +http://ubuntu.fastbull.org/ubuntu +http://ubuntu.indika.net.id/ubuntu +http://ubuntu.inode.at/ubuntu +http://ubuntu.intergenia.de/ubuntu +http://ubuntu.ipacct.com/ubuntu +http://ubuntu.lhi.is/ubuntu +http://ubuntu.linux-bg.org/ubuntu +http://ubuntu.mirror.ac.za/ubuntu-archive +http://ubuntu.mirror.frontiernet.net/ubuntu +http://ubuntu.mirror.rafal.ca/ubuntu +http://ubuntu.mirrors.skynet.be/pub/ubuntu.com/ubuntu +http://ubuntu.org.ua/ubuntu +http://ubuntu.snet.uz/ubuntu +http://ubuntu.supp.name/ubuntu +http://ubuntu.task.gda.pl/ubuntu +http://ubuntu.univ-nantes.fr/ubuntu +http://ubuntu.uz/ubuntu +http://ubuntu.ynet.sk/ubuntu +http://www.gtlib.gatech.edu/pub/ubuntu +http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com +http://wwwftp.ciril.fr/pub/linux/ubuntu/archives +ftp://yu.archive.ubuntu.com/ubuntu diff --git a/lib/distro-info/ubuntu-10.04/mirrors/base_updates b/lib/distro-info/ubuntu-10.04/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/mirrors/base_updates @@ -0,0 +1,171 @@ +http://archive.ubuntu.com.ba/ubuntu +http://archive.ubuntu.com/ubuntu +ftp://br.archive.ubuntu.com/ubuntu +ftp://bw.archive.ubuntu.com/ubuntu +http://cl.archive.ubuntu.com/ubuntu +http://cudlug.cudenver.edu/ubuntu +ftp://cz.archive.ubuntu.com/MIRRORS/archive.ubuntu.com/mirror/ubuntu +http://cz.archive.ubuntu.com/ubuntu +ftp://darkstar.ist.utl.pt/pub/ubuntu/archive +http://darkstar.ist.utl.pt/ubuntu/archive +http://de.archive.ubuntu.com/ubuntu +http://debian.charite.de/ubuntu +http://debian.linux.org.tw/ubuntu +http://dk.archive.ubuntu.com/ubuntu +http://es.archive.ubuntu.com/ubuntu +http://espelhos.edugraf.ufsc.br/ubuntu +ftp://free.nchc.org.tw/ubuntu +http://ftp-stud.fht-esslingen.de/Mirrors/ubuntu +http://ftp-stud.hs-esslingen.de/ubuntu +http://ftp.belnet.be/linux/ubuntu/ubuntu +http://ftp.belnet.be/pub/mirror/ubuntu.com/ubuntu +http://ftp.caliu.info/pub/distribucions/ubuntu/ubuntu +http://ftp.chg.ru/pub/Linux/ubuntu/archive +ftp://ftp.ciril.fr/pub/linux/ubuntu/archives +http://ftp.citylink.co.nz/ubuntu +http://ftp.crihan.fr/ubuntu +ftp://ftp.cw.net/pub/linux/ftp.ubuntu.com/ubuntu +http://ftp.cw.net/ubuntu +http://ftp.dateleco.es/ubuntu +http://ftp.dei.uc.pt/pub/linux/ubuntu/archive +http://ftp.duth.gr/pub/ubuntu +http://ftp.ecc.u-tokyo.ac.jp/ubuntu +http://ftp.estpak.ee/ubuntu +ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.freepark.org/ubuntu +ftp://ftp.fu-berlin.de/linux/ubuntu +ftp://ftp.funet.fi/pub/mirrors/archive.ubuntu.com +http://ftp.gil.di.uminho.pt/ubuntu +ftp://ftp.gtlib.gatech.edu/pub/ubuntu +http://ftp.gui.uva.es/sites/ubuntu.com/ubuntu +http://ftp.halifax.rwth-aachen.de/ubuntu +http://ftp.heanet.ie/pub/ubuntu +http://ftp.hosteurope.de/mirror/archive.ubuntu.com +ftp://ftp.iinet.net.au/pub/ubuntu +ftp://ftp.iitm.ac.in/ubuntu +http://ftp.kaist.ac.kr/pub/ubuntu +http://ftp.kfki.hu/linux/ubuntu +ftp://ftp.kfki.hu/pub/linux/ubuntu +http://ftp.leg.uct.ac.za/pub/linux/ubuntu +http://ftp.linux.edu.lv/ubuntu +ftp://ftp.linux.org.tr/pub/ubuntu +http://ftp.lug.ro/ubuntu +ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu +ftp://ftp.mipt.ru/mirror/ubuntu +ftp://ftp.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://ftp.netspace.net.au/pub/ubuntu +http://ftp.ntua.gr/pub/linux/ubuntu +ftp://ftp.oleane.net/ubuntu +ftp://ftp.otenet.gr/ubuntu +ftp://ftp.polytechnic.edu.na/pub/ubuntu +http://ftp.port80.se/ubuntu +http://ftp.pwr.wroc.pl/ubuntu +ftp://ftp.rrzn.uni-hannover.de/pub/mirror/linux/ubuntu +ftp://ftp.science.nus.edu.sg/pub/ubuntu +http://ftp.science.nus.edu.sg/ubuntu +http://ftp.stw-bonn.de/ubuntu +http://ftp.ticklers.org/archive.ubuntu.org/ubuntu +ftp://ftp.tiscali.nl/pub/mirror/ubuntu +http://ftp.tiscali.nl/ubuntu +http://ftp.tu-chemnitz.de/pub/linux/ubuntu +ftp://ftp.tudelft.nl/pub/Linux/archive.ubuntu.com +http://ftp.tuke.sk/ubuntu +http://ftp.twaren.net/Linux/Ubuntu/ubuntu +http://ftp.u-picardie.fr/mirror/ubuntu/ubuntu +ftp://ftp.uasw.edu/linux/ubuntu/archive +http://ftp.ucr.ac.cr/ubuntu +http://ftp.udc.es/ubuntu +http://ftp.uni-kl.de/pub/linux/ubuntu +http://ftp.uni-muenster.de/pub/mirrors/ftp.ubuntu.com/ubuntu +http://ftp.unina.it/pub/linux/distributions/ubuntu +http://ftp.uninett.no/ubuntu +http://ftp.usf.edu/pub/ubuntu +http://ftp.ussg.iu.edu/linux/ubuntu +ftp://ftp.vectranet.pl/ubuntu +http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives +ftp://ftpserv.tudelft.nl/pub/Linux/archive.ubuntu.com +http://gd.tuwien.ac.at/opsys/linux/ubuntu/archive +http://godel.cs.bilgi.edu.tr/ubuntu +http://gulus.USherbrooke.ca/ubuntu +http://hr.archive.ubuntu.com/ubuntu +http://ie.archive.ubuntu.com/ubuntu +http://klid.dk/ftp/ubuntu +ftp://klid.dk/ubuntu +http://kr.archive.ubuntu.com/ubuntu +http://lug.mtu.edu/ubuntu +http://mir1.ovh.net/ubuntu +http://mirror.anl.gov/pub/ubuntu +http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive +http://mirror.cs.umn.edu/ubuntu +http://mirror.etf.bg.ac.yu/distributions/ubuntu/ubuntu-archive +http://mirror.hgkz.ch/ubuntu +http://mirror.imbrandon.com/ubuntu +http://mirror.lcsee.wvu.edu/ubuntu +http://mirror.letsopen.com/os/ubuntu +http://mirror.lupaworld.com/ubuntu/archive +http://mirror.nttu.edu.tw/ubuntu +http://mirror.optus.net/ubuntu +http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu +http://mirror.pacific.net.au/linux/ubuntu +http://mirror.rootguide.org/ubuntu +http://mirror.switch.ch/ftp/mirror/ubuntu +ftp://mirror.switch.ch/mirror/ubuntu +http://mirror.uni-c.dk/ubuntu +http://mirror.utdlug.org/linux/distributions/ubuntu/packages +http://mirror2.etf.bg.ac.yu/distributions/ubuntu/ubuntu-archive +http://mirrors.cat.pdx.edu/ubuntu +http://mirrors.ccs.neu.edu/archive.ubuntu.com +ftp://mirrors.ccs.neu.edu/net/mirrors/archive.ubuntu.com +http://mirrors.cs.wmich.edu/ubuntu +ftp://mirrors.easynews.com/linux/ubuntu +http://mirrors.kernel.org/ubuntu +http://mirrors.nic.funet.fi/ubuntu +http://mirrors.shlug.org/ubuntu +ftp://mirrors.virginmedia.com/mirrors/ubuntu/archive +http://mirrors.xmission.com/ubuntu +http://mt.archive.ubuntu.com/ubuntu +http://na.mirror.garr.it/mirrors/ubuntu-archive +ftp://neacm.fe.up.pt/pub/ubuntu +http://neacm.fe.up.pt/ubuntu +http://nl.archive.ubuntu.com/ubuntu +http://nl2.archive.ubuntu.com/ubuntu +http://nz2.archive.ubuntu.com/ubuntu +http://packages.midian.hu//pub/linux/distributions/ubuntu +http://se.archive.ubuntu.com/ubuntu +http://sft.if.usp.br/ubuntu +http://snert.mi.hs-heilbronn.de/pub/ubuntu/ubuntu +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/ubuntu/ubuntu +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/ubuntu/ubuntu +http://tezcatl.fciencias.unam.mx/ubuntu +http://th.archive.ubuntu.com/ubuntu +ftp://tw.archive.ubuntu.com/ubuntu +http://ubuntu-archive.datahop.it/ubuntu +http://ubuntu.c3sl.ufpr.br/ubuntu +http://ubuntu.cn99.com/ubuntu +http://ubuntu.cs.uaf.edu/ubuntu +http://ubuntu.cs.utah.edu/ubuntu +http://ubuntu.csie.nctu.edu.tw/ubuntu +http://ubuntu.eriders.ge/ubuntu +http://ubuntu.fastbull.org/ubuntu +http://ubuntu.indika.net.id/ubuntu +http://ubuntu.inode.at/ubuntu +http://ubuntu.intergenia.de/ubuntu +http://ubuntu.ipacct.com/ubuntu +http://ubuntu.lhi.is/ubuntu +http://ubuntu.linux-bg.org/ubuntu +ftp://ubuntu.mirror.ac.za/ubuntu-archive +http://ubuntu.mirror.frontiernet.net/ubuntu +http://ubuntu.mirror.rafal.ca/ubuntu +http://ubuntu.mirrors.skynet.be/pub/ubuntu.com/ubuntu +http://ubuntu.org.ua/ubuntu +http://ubuntu.snet.uz/ubuntu +http://ubuntu.supp.name/ubuntu +http://ubuntu.task.gda.pl/ubuntu +http://ubuntu.univ-nantes.fr/ubuntu +http://ubuntu.uz/ubuntu +http://ubuntu.ynet.sk/ubuntu +http://www.gtlib.gatech.edu/pub/ubuntu +http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu +http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com +http://wwwftp.ciril.fr/pub/linux/ubuntu/archives +ftp://yu.archive.ubuntu.com/ubuntu diff --git a/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts b/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/lib/distro-info/ubuntu-10.04/settings.default b/lib/distro-info/ubuntu-10.04/settings.default new file mode 100644 index 00000000..acf37c4e --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/settings.default @@ -0,0 +1,76 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.20_all.deb +release-name = lucid +<repository base> + components = main restricted + distribution = lucid + name = Ubuntu 10.04 + repo-subdir = dists + file-for-speedtest = dists/lucid/main/binary-i386/Packages.bz2 +</repository> +<repository base_security> + components = main restricted + distribution = lucid-security + name = Ubuntu 10.04 Security + repo-subdir = dists + file-for-speedtest = dists/lucid-security/main/binary-i386/Packages.bz2 +</repository> +<repository base_updates> + components = main restricted + distribution = lucid-updates + name = Ubuntu 10.04 Updates + repo-subdir = dists + file-for-speedtest = dists/lucid-updates/main/binary-i386/Packages.bz2 +</repository> +<selection minimal> + packages = <<END + language-pack-de + linux-image-generic + END +</selection> +<selection standard> + base = minimal + packages = <<END + ubuntu-standard + END +</selection> +<selection gnome> + base = minimal + packages = <<END + ubuntu-desktop + END +</selection> +<selection kde> + base = minimal + packages = <<END + kubuntu-desktop + END +</selection> +<selection xfce> + base = minimal + packages = <<END + xubuntu-desktop + END +</selection> +<selection edubuntu-server> + base = minimal + packages = <<END + edubuntu-server + END +</selection> +<selection edubuntu-gnome> + base = minimal + packages = <<END + edubuntu-desktop-gnome + END +</selection> +<selection edubuntu-kde> + base = minimal + packages = <<END + edubuntu-desktop-kde + END +</selection> +<selection default> + base = minimal +</selection> diff --git a/lib/distro-info/ubuntu-10.04/settings.example b/lib/distro-info/ubuntu-10.04/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/lib/distro-info/ubuntu-10.04/settings.example @@ -0,0 +1,23 @@ +# rename this file to 'settings' and edit it as you please +# +# for a list of all options, have a look at the corresponding +# settings.default in /opt/openslx/share/distro-info + +# use local installation source +#<repository base> +# local-url = /srv/ftp/pub/ubuntu +#</repository> +#<repository base_updates> +# local-url = /srv/ftp/pub/ubuntu +#</repository> +#<repository base_security> +# local-url = /srv/ftp/pub/ubuntu +#</repository> + +# add a new selection: +#<selection my_kde> +# base = kde +# packages = <<END +# kinternet +# END +#</selection> diff --git a/os-plugins/plugins/bootsplash/init-hooks/10-have-nw-modules/bootsplash.sh b/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh index 7f3d563e..7f3d563e 100644 --- a/os-plugins/plugins/bootsplash/init-hooks/10-have-nw-modules/bootsplash.sh +++ b/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm index dfeb1d0a..1dc0482c 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm @@ -69,7 +69,7 @@ sub GDMConfigHashForWorkstation my $configHash = $self->SUPER::GDMConfigHashForWorkstation();
$configHash->{'daemon'}->{SessionDesktopDir} =
- '/etc/X11/sessions/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions';
+ '/etc/X11/session/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions';
$configHash->{'daemon'}->{Greeter} =
'/usr/libexec/gdmgreeter';
@@ -119,10 +119,10 @@ sub _setupCommonDmScript ( su -c "rm -rf /tmp/*" - $USER
echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) &
. /etc/X11/xdm/Xreset.system' >/mnt/etc/X11/xdm/Xreset
- chmod a+x /mnt/etc/X11/xdm/Xreset* - - # enable the inittab entry again (incomplete) - # sed -e "s,# line deleted.*,x:5:respawn:/etc/X11/prefdm -nodaemon," \ + chmod a+x /mnt/etc/X11/xdm/Xreset*
+
+ # enable the inittab entry again (incomplete)
+ # sed -e "s,# line deleted.*,x:5:respawn:/etc/X11/prefdm -nodaemon," \
# -i /mnt/etc/inittab
End-of-Here
diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm index 3d451e9e..86ae59f9 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -75,7 +75,7 @@ sub GDMConfigHashForWorkstation my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); $configHash->{'daemon'}->{SessionDesktopDir} = - '/etc/X11/sessions/:/usr/share/xsessions/'; + '/etc/X11/session/:/usr/share/xsessions/'; $configHash->{'daemon'}->{DefaultSession} = 'default.desktop'; $configHash->{'daemon'}->{Greeter} = '/usr/lib/gdm/gdmgreeter'; @@ -124,9 +124,11 @@ sub setupKDMScript sed -i "s/DISPLAYMANAGER=.*/DISPLAYMANAGER=\"kdm$kdmver\"/" \ /mnt/etc/sysconfig/displaymanager [ $(grep -q DISPLAYMANAGER /mnt/etc/sysconfig/displaymanager) ] && \ - echo "DISPLAYMANAGER=\"kdm$kdmver\"" >> /mnt/et/sysconfig/displaymanager + echo "DISPLAYMANAGER=\"kdm$kdmver\"" >>/mnt/etc/sysconfig/displaymanager sed -i "s/DEFAULT_WM=.*/DEFAULT_WM=\"$desktop_kind\"/" \ /mnt/etc/sysconfig/windowmanager + # needed for compatibility X11/session(s) + ln -s /etc/X11/session /mnt/etc/X11/sessions End-of-Here return $script; diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm index c7f27d65..ac14b2a5 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -44,7 +44,7 @@ sub GDMConfigHashForWorkstation my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); $configHash->{'daemon'}->{SessionDesktopDir} = - '/etc/X11/sessions/:/usr/share/xsessions/'; + '/etc/X11/session/:/usr/share/xsessions/'; $configHash->{'daemon'}->{Greeter} = '/opt/gnome/lib/gdm/gdmgreeter'; diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm index 6e69ee14..14f56b48 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006..2009 - OpenSLX GmbH +# Copyright (c) 2006..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -33,7 +33,7 @@ sub GDMPathInfo my $pathInfo = $self->SUPER::GDMPathInfo(); # link gdm.conf-custom instead of gdm.conf - $pathInfo->{config} = '/etc/gdm/gdm.conf-custom'; + $pathInfo->{config} = '/etc/gdm/custom.conf'; return $pathInfo; } @@ -57,9 +57,10 @@ sub setupGDMScript echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & . /etc/gdm/PostSession/Default.system' >/mnt/etc/gdm/PostSession/Default chmod a+x /mnt/etc/gdm/PostSession/Default* - # gdm should be started after dbus/hal - rllinker gdm 5 10 + # gdm should be started via upstart mechanism + mv /mnt/etc/init.inactive/gdm.conf /mnt/etc/init echo '/usr/sbin/gdm' >/mnt/etc/X11/default-display-manager + # possible to do this directly? chroot /mnt update-alternatives --set x-window-manager /usr/bin/metacity chroot /mnt update-alternatives --set x-session-manager \ /usr/bin/gnome-session @@ -67,39 +68,21 @@ sub setupGDMScript rm -rf /mnt/var/lib/gdm mkdir -m 1770 /mnt/var/lib/gdm chown root:gdm /mnt/var/lib/gdm - sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \ - -i /mnt$configFile + #sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \ + # -i /mnt$configFile End-of-Here return $script; } -sub KDMVersion -{ - my $self = shift; - my $vendorOSName = $self->{'engine'}->{'vendor-os-name'}; - - my $kdmVer; - if ( $vendorOSName =~ /ubuntu-8.04.*/ ) { - $kdmVer = "3"; - } - else { - $kdmVer = "4"; - } - - return $kdmVer; - -} - sub KDMPathInfo { my $self = shift; my $pathInfo = $self->SUPER::KDMPathInfo(); - my $kdmVer = $self->KDMVersion(); $pathInfo = { - config => "/etc/kde$kdmVer/kdm/kdmrc", + config => "/etc/kde4/kdm/kdmrc", paths => [ '/var/lib/kdm', '/var/run/kdm', @@ -113,18 +96,30 @@ sub GDMConfigHashForWorkstation { my $self = shift; - my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); - $configHash->{'daemon'}->{SessionDesktopDir} = - '/etc/X11/sessions/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions/'; - - return $configHash; + return { + 'chooser' => { + Multicast => 'false', + }, + 'daemon' => { + AutomaticLoginEnable => 'false', + Group => 'gdm', + User => 'gdm', + DefaultSession => 'default.desktop', + }, + 'security' => { + DisallowTCP => 'true', + }, + 'xdmcp' => { + Enable => 'false', + }, + }; } sub KDMConfigHashForWorkstation { my $self = shift; - my $kdmVer = $self->KDMVersion(); + my $kdmVer = "4"; my $configHash = $self->SUPER::KDMConfigHashForWorkstation(); $configHash->{'General'}->{PidFile} = "/var/run/kdm.pid"; $configHash->{'X-:0-Core'}->{Setup} = "/etc/kde$kdmVer/kdm/Xsetup"; @@ -132,7 +127,7 @@ sub KDMConfigHashForWorkstation $configHash->{'X-:0-Core'}->{Session} = "/etc/kde$kdmVer/kdm/Xsession"; $configHash->{'X-:0-Core'}->{Reset} = "/etc/kde$kdmVer/kdm/Xreset"; $configHash->{'X-:0-Core'}->{SessionsDirs} = - '/etc/X11/sessions,/usr/share/xsessions,/usr/share/apps/kdm/sessions'; + '/etc/X11/session,/usr/share/xsessions,/usr/share/apps/kdm/sessions'; $configHash->{'X-:0-Core'}->{ServerAttempts} = "2"; return $configHash; @@ -143,14 +138,9 @@ sub setupKDMScript my $self = shift; my $repoPath = shift; - my $kdmVer = $self->KDMVersion(); + my $kdmVer = "4"; my $script = $self->SUPER::setupKDMScript($repoPath); - # change default theme to openslx-legacy if kdm3 - if ( $kdmVer == "3" ) { - print " * Please change to openslx-legacy theme when using kdm3\n"; - } - $script .= "kdmver=$kdmVer\n"; $script .= unshiftHereDoc(<<' End-of-Here'); @@ -165,7 +155,7 @@ sub setupKDMScript . /etc/kde$kdmver/kdm/Xreset.system' >/mnt/etc/kde$kdmver/kdm/Xreset chmod a+x /mnt/etc/kde$kdmver/kdm/Xreset* - rllinker kdm 1 10 + mv /mnt/etc/init.inactive/kdm.conf /mnt/etc/init echo '/usr/bin/kdm' > /mnt/etc/X11/default-display-manager chroot /mnt update-alternatives --set x-window-manager /usr/bin/kwin chroot /mnt update-alternatives --set x-session-manager \ diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm new file mode 100644 index 00000000..6f00f181 --- /dev/null +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm @@ -0,0 +1,161 @@ +# Copyright (c) 2006..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# desktop/OpenSLX/Distro/Ubuntu_8.pm +# - provides Ubuntu-specific overrides of the distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Ubuntu_8; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub GDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::GDMPathInfo(); + + # link gdm.conf-custom instead of gdm.conf + $pathInfo->{config} = '/etc/gdm/gdm.conf-custom'; + + return $pathInfo; +} + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupGDMScript($repoPath); + + my $configFile = $self->GDMPathInfo->{config}; + + $script .= unshiftHereDoc(<<' End-of-Here'); + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/gdm/PostSession/Default \ + >/mnt/etc/gdm/PostSession/Default.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & + . /etc/gdm/PostSession/Default.system' >/mnt/etc/gdm/PostSession/Default + chmod a+x /mnt/etc/gdm/PostSession/Default* + # gdm should be started after dbus/hal + rllinker gdm 5 10 + echo '/usr/sbin/gdm' >/mnt/etc/X11/default-display-manager + chroot /mnt update-alternatives --set x-window-manager /usr/bin/metacity + chroot /mnt update-alternatives --set x-session-manager \ + /usr/bin/gnome-session + # gdm does not like AUFS/UnionFS on its var directory + rm -rf /mnt/var/lib/gdm + mkdir -m 1770 /mnt/var/lib/gdm + chown root:gdm /mnt/var/lib/gdm + sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \ + -i /mnt$configFile + End-of-Here + + return $script; +} + +sub KDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::KDMPathInfo(); + my $kdmVer = "3"; + + $pathInfo = { + config => "/etc/kde$kdmVer/kdm/kdmrc", + paths => [ + '/var/lib/kdm', + '/var/run/kdm', + ], + }; + + return $pathInfo; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); + $configHash->{'daemon'}->{SessionDesktopDir} = + '/etc/X11/session/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions/'; + + return $configHash; +} + +sub KDMConfigHashForWorkstation +{ + my $self = shift; + + my $kdmVer = "4"; + my $configHash = $self->SUPER::KDMConfigHashForWorkstation(); + $configHash->{'General'}->{PidFile} = "/var/run/kdm.pid"; + $configHash->{'X-:0-Core'}->{Setup} = "/etc/kde$kdmVer/kdm/Xsetup"; + $configHash->{'X-:0-Core'}->{Startup} = "/etc/kde$kdmVer/kdm/Xstartup"; + $configHash->{'X-:0-Core'}->{Session} = "/etc/kde$kdmVer/kdm/Xsession"; + $configHash->{'X-:0-Core'}->{Reset} = "/etc/kde$kdmVer/kdm/Xreset"; + $configHash->{'X-:0-Core'}->{SessionsDirs} = + '/etc/X11/session,/usr/share/xsessions,/usr/share/apps/kdm/sessions'; + $configHash->{'X-:0-Core'}->{ServerAttempts} = "2"; + + return $configHash; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $kdmVer = "4"; + my $script = $self->SUPER::setupKDMScript($repoPath); + + # change default theme to openslx-legacy if kdm3 + if ( $kdmVer == "3" ) { + print " * Please change to openslx-legacy theme when using kdm3\n"; + } + + $script .= "kdmver=$kdmVer\n"; + $script .= unshiftHereDoc(<<' End-of-Here'); + + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/kde$kdmver/kdm/Xreset \ + >/mnt/etc/kde$kdmver/kdm/Xreset.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" - $USER + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null + chmod 0400 /tmp/files.removed ) & + . /etc/kde$kdmver/kdm/Xreset.system' >/mnt/etc/kde$kdmver/kdm/Xreset + chmod a+x /mnt/etc/kde$kdmver/kdm/Xreset* + + rllinker kdm 1 10 + echo '/usr/bin/kdm' > /mnt/etc/X11/default-display-manager + chroot /mnt update-alternatives --set x-window-manager /usr/bin/kwin + chroot /mnt update-alternatives --set x-session-manager \ + /usr/bin/startkde + End-of-Here + + return $script; +} + +1; diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm new file mode 100644 index 00000000..1022d6e8 --- /dev/null +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm @@ -0,0 +1,161 @@ +# Copyright (c) 2006..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# desktop/OpenSLX/Distro/Ubuntu_9_04.pm +# - provides Ubuntu-specific overrides of the distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Ubuntu_9_04; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub GDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::GDMPathInfo(); + + # link gdm.conf-custom instead of gdm.conf + $pathInfo->{config} = '/etc/gdm/gdm.conf-custom'; + + return $pathInfo; +} + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupGDMScript($repoPath); + + my $configFile = $self->GDMPathInfo->{config}; + + $script .= unshiftHereDoc(<<' End-of-Here'); + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/gdm/PostSession/Default \ + >/mnt/etc/gdm/PostSession/Default.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & + . /etc/gdm/PostSession/Default.system' >/mnt/etc/gdm/PostSession/Default + chmod a+x /mnt/etc/gdm/PostSession/Default* + # gdm should be started after dbus/hal + rllinker gdm 5 10 + echo '/usr/sbin/gdm' >/mnt/etc/X11/default-display-manager + chroot /mnt update-alternatives --set x-window-manager /usr/bin/metacity + chroot /mnt update-alternatives --set x-session-manager \ + /usr/bin/gnome-session + # gdm does not like AUFS/UnionFS on its var directory + rm -rf /mnt/var/lib/gdm + mkdir -m 1770 /mnt/var/lib/gdm + chown root:gdm /mnt/var/lib/gdm + sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \ + -i /mnt$configFile + End-of-Here + + return $script; +} + +sub KDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::KDMPathInfo(); + my $kdmVer = "4"; + + $pathInfo = { + config => "/etc/kde$kdmVer/kdm/kdmrc", + paths => [ + '/var/lib/kdm', + '/var/run/kdm', + ], + }; + + return $pathInfo; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); + $configHash->{'daemon'}->{SessionDesktopDir} = + '/etc/X11/session/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions/'; + + return $configHash; +} + +sub KDMConfigHashForWorkstation +{ + my $self = shift; + + my $kdmVer = "4"; + my $configHash = $self->SUPER::KDMConfigHashForWorkstation(); + $configHash->{'General'}->{PidFile} = "/var/run/kdm.pid"; + $configHash->{'X-:0-Core'}->{Setup} = "/etc/kde$kdmVer/kdm/Xsetup"; + $configHash->{'X-:0-Core'}->{Startup} = "/etc/kde$kdmVer/kdm/Xstartup"; + $configHash->{'X-:0-Core'}->{Session} = "/etc/kde$kdmVer/kdm/Xsession"; + $configHash->{'X-:0-Core'}->{Reset} = "/etc/kde$kdmVer/kdm/Xreset"; + $configHash->{'X-:0-Core'}->{SessionsDirs} = + '/etc/X11/session,/usr/share/xsessions,/usr/share/apps/kdm/sessions'; + $configHash->{'X-:0-Core'}->{ServerAttempts} = "2"; + + return $configHash; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $kdmVer = "4"; + my $script = $self->SUPER::setupKDMScript($repoPath); + + # change default theme to openslx-legacy if kdm3 + if ( $kdmVer == "3" ) { + print " * Please change to openslx-legacy theme when using kdm3\n"; + } + + $script .= "kdmver=$kdmVer\n"; + $script .= unshiftHereDoc(<<' End-of-Here'); + + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/kde$kdmver/kdm/Xreset \ + >/mnt/etc/kde$kdmver/kdm/Xreset.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" - $USER + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null + chmod 0400 /tmp/files.removed ) & + . /etc/kde$kdmver/kdm/Xreset.system' >/mnt/etc/kde$kdmver/kdm/Xreset + chmod a+x /mnt/etc/kde$kdmver/kdm/Xreset* + + rllinker kdm 1 10 + echo '/usr/bin/kdm' > /mnt/etc/X11/default-display-manager + chroot /mnt update-alternatives --set x-window-manager /usr/bin/kwin + chroot /mnt update-alternatives --set x-session-manager \ + /usr/bin/startkde + End-of-Here + + return $script; +} + +1; diff --git a/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm b/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm index 6a6c7a8e..d0a629e4 100644 --- a/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm +++ b/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2009 - OpenSLX GmbH +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING diff --git a/os-plugins/plugins/pvs/XX_pvs.sh b/os-plugins/plugins/pvs/XX_pvs.sh index e96f5a63..9a86574f 100644 --- a/os-plugins/plugins/pvs/XX_pvs.sh +++ b/os-plugins/plugins/pvs/XX_pvs.sh @@ -1,5 +1,5 @@ -# Copyright (c) 2009 - RZ Uni Freiburg -# Copyright (c) 2009 - OpenSLX GmbH +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -21,20 +21,20 @@ if [ -e /initramfs/plugin-conf/pvs.conf ]; then . /initramfs/plugin-conf/pvs.conf if [ $pvs_active -ne 0 ]; then [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'pvs' os-plugin ..."; - # configure central pvs client configuration file - testmkdi /mnt/etc/pvs + # location of central pvs configuration files + testmkdi /mnt/etc/openslx/pvs # add it to the Xserver script (?) # link the executables - for tool in poolVS poolVSClient VNCwrapper ; do - ln -s /opt/openslx/plugin-repo/pvs/${tool} /mnt/var/X11R6/bin/${tool} - done + #for tool in poolVS poolVSClient VNCwrapper ; do + # ln -s /opt/openslx/plugin-repo/pvs/${tool} /mnt/var/X11R6/bin/${tool} + #done # write config file - echo "# parameters generated by $0" > /mnt/etc/pvs/pvs.conf - echo "pvs_PARAMS=\"$PARAMS\"" >> /mnt/etc/pvs/pvs.conf - echo "pvs_X11=\"$pvs_X11\"" >> /mnt/etc/pvs/pvs.conf + #echo "# parameters generated by $0" > /mnt/etc/pvs/pvs.conf + #echo "pvs_PARAMS=\"$PARAMS\"" >> /mnt/etc/pvs/pvs.conf + #echo "pvs_X11=\"$pvs_X11\"" >> /mnt/etc/pvs/pvs.conf [ $DEBUGLEVEL -gt 0 ] && echo "done with 'pvs' os-plugin ..."; diff --git a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm index 9b6fffd2..e4ef657f 100644 --- a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm +++ b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm @@ -103,7 +103,7 @@ sub installationPhase { my $self = shift; my $info = shift; - + $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'}; $self->{pluginTempPath} = $info->{'plugin-temp-path'}; $self->{openslxBasePath} = $info->{'openslx-base-path'}; @@ -111,8 +111,9 @@ sub installationPhase $self->{attrs} = $info->{'plugin-attrs'}; my $engine = $self->{'os-plugin-engine'}; - my $pluginRepoPath = "$self->{pluginRepositoryPath}"; - + my $pluginRepoPath = $info->{'plugin-repo-path'}; + my $openslxBasePath = $info->{'openslx-base-path'}; + # Different names of the tool (should be unified somehow!?) if (!isInPath('qemu-kvm') || !isInPath('kvm')) { $engine->installPackages( @@ -123,55 +124,92 @@ sub installationPhase if (!isInPath('sudo')) { $engine->installPackages($self->{distro}->getPackageName('sudo')); } - # Copy run-virt.include to the appropriate place for inclusion in stage4 - copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/run-virt.include", - "$self->{pluginRepositoryPath}/"); - # Copy the later /etc/qemu-ifup,down - copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/qemu-if*", - "$self->{pluginRepositoryPath}/"); - chmod 0755, "$self->{pluginRepositoryPath}/qemu-ifup"; - chmod 0755, "$self->{pluginRepositoryPath}/qemu-ifdown"; + + # Copy run-virt.include and template files to the appropriate place for + # inclusion in stage4 + my $pluginName = $self->{'name'}; + my $pluginBasePath = "$openslxBasePath/lib/plugins/$pluginName/files"; + foreach my $file ( qw( run-virt.include ifup ifdown ) ) { + copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); + } + chmod 0755, "$pluginRepoPath/ifup", "$pluginRepoPath/ifdown"; my $initFile = newInitFile(); + $initFile->setName("qemukvm"); $initFile->setDesc("Setup environment for QEMU/KVM"); - $initFile->addToBlock('head','. /etc/opt/openslx/network.qemukvm'); + # TODO: default dirs als globale funktion anbieten + $initFile-> + addToBlock('head','. /etc/opt/openslx/plugins/qemukvm/network.conf'); + + # TODO: remove all runlevel links for qemu-kvm or kvm + my $kvm_module = unshiftHereDoc(<<' End-of-Here'); + # Figure out which module we need. + if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then + module=kvm_intel + elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then + module=kvm_amd + else + module=kqemu + fi + End-of-Here + my $do_start = unshiftHereDoc(<<' End-of-Here'); - # Adding the tap0 interface to the existing bridge configured in stage3 - for i in 0 1 2; do - /opt/openslx/uclib-rootfs/sbin/tunctl -t tap${i} >/dev/null 2>&1 - ip link set dev tap${i} up - done - /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tap0 - ip addr add ${nataddress} dev tap1 - ip addr add ${hoaddress} dev tap2 - echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding - echo "1" >/proc/sys/net/ipv4/conf/tap0/forwarding + # loading kvm module + kvm_module + [ -n "${module}" ] && modprobe -q ${module} + # load the tunnel device module + modprobe -q tun + # TODO: maybe in the ifup-script better solution? + # configuring the tap0 interface to the existing bridge configured in stage3 + #for i in 0 1 2; do + # /opt/openslx/uclib-rootfs/sbin/tunctl -t tap${i} >/dev/null 2>&1 + # ip link set dev tap${i} up + #done + #/opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tap0 + #ip addr add ${nataddress} dev tap1 + #ip addr add ${hoaddress} dev tap2 + #echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding + #echo "1" >/proc/sys/net/ipv4/conf/tap0/forwarding + # make /dev/fb0 writable for all + # TODO: maybe solve via group or udev, etc... + chmod 766 /dev/fb* End-of-Here + my $do_stop = unshiftHereDoc(<<' End-of-Here'); - /opt/openslx/uclib-rootfs/usr/sbin/brctl delif br0 tap0 - ip addr del ${nataddress} dev tap1 - ip addr del ${hoaddress} dev tap2 - echo "0" >/proc/sys/net/ipv4/conf/br0/forwarding - echo "0" >/proc/sys/net/ipv4/conf/tap0/forwarding + kvm_module + [ -n "${module}" ] && modprobe -q -r ${module} + modprobe -q -r tun + # TODO: tun removed, so this is not necessary + #/opt/openslx/uclib-rootfs/usr/sbin/brctl delif br0 tap0 + #ip addr del ${nataddress} dev tap1 + #ip addr del ${hoaddress} dev tap2 + #echo "0" >/proc/sys/net/ipv4/conf/br0/forwarding + #echo "0" >/proc/sys/net/ipv4/conf/tap0/forwarding + chmod 760 /dev/fb* End-of-Here - + + my $do_restart = unshiftHereDoc(<<' End-of-Here'); + do_stop && do_start + End-of-Here + # add helper functions to initfile # first parameter name of the function # second parameter content of the function + $initFile->addFunction('kvm_module', $kvm_module); $initFile->addFunction('do_start', $do_start); $initFile->addFunction('do_stop', $do_stop); - $initFile->addFunction('do_restart', " : # do nothing here"); - + $initFile->addFunction('do_restart', $do_restart); + # place a call of the helper function in the stop block of the init file # first parameter name of the function # second parameter name of the block $initFile->addFunctionCall('do_start', 'start'); $initFile->addFunctionCall('do_stop', 'stop'); $initFile->addFunctionCall('do_restart', 'restart'); - + my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; - + # write qemukvm initfile to plugin path spitFile( "$pluginRepoPath/qemukvm", diff --git a/os-plugins/plugins/qemukvm/XX_qemukvm.sh b/os-plugins/plugins/qemukvm/XX_qemukvm.sh index 49dc165b..36ff4f59 100644 --- a/os-plugins/plugins/qemukvm/XX_qemukvm.sh +++ b/os-plugins/plugins/qemukvm/XX_qemukvm.sh @@ -1,4 +1,4 @@ -# Copyright (c) 2008, 2009 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -11,86 +11,56 @@ # Script is included from init via the "." load function - thus it has all # variables and functions available -write_networking_conf () -{ -local natnetwork="192.168.101" -local honetwork="192.168.102" -echo " -# udhcpd configuration file written by $0 during OpenSLX stage3 configuration +# include default directories +. /etc/openslx.conf -# The start and end of the IP lease block -start CNETWORK.20 -end CNETWORK.100 - -# The interface that udhcpd will use -interface NWIF - -# How long an offered address is reserved (leased) in seconds -offer_time 6000 - -# The location of the leases file -lease_file /tmp/qemu-USER/udhcpd.leases - -# The location of the pid file -pidfile /tmp/qemu-USER/udhcpd.pid - -opt dns ${domain_name_servers} -option subnet 255.255.255.0 -opt router CNETWORK.254 -opt wins CNETWORK.10 -option domain virtual.site ${domain_name} - -# Additional options known to udhcpd -#subnet #timezone -#router #timesvr -#namesvr #dns -#logsvr #cookiesvr -#lprsvr #bootsize -#domain #swapsvr -#rootpath #ipttl -#mtu #broadcast -#wins #lease -#ntpsrv #tftp -#bootfile -" >/mnt/etc/opt/openslx/udhcpd.qemukvm -echo -e "nataddress=${natnetwork}.254/24\nhoaddress=${honetwork}.254/24" \ - >/mnt/etc/opt/openslx/network.qemukvm -} +CONFFILE=/initramfs/plugin-conf/qemukvm.conf +PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/qemukvm +PLUGINDIR=${OPENSLX_DEFAULT_DIR}/plugin-repo/qemukvm +VIRTDIR=/mnt/${OPENSLX_DEFAULT_VIRTDIR}/qemukvm +LOGDIR=/mnt/${OPENSLX_DEFAULT_LOGDIR} # check if the configuration file is available -if [ -e /initramfs/plugin-conf/qemukvm.conf ]; then +if [ -e ${CONFFILE} ]; then - # check for the virtualization CPU features - if grep -q "svm" /proc/cpuinfo && modprobe ${MODPRV} kvm_amd ; then - [ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_amd module" - elif grep -q "vmx" /proc/cpuinfo && modprobe ${MODPRV} kvm_intel ; then - [ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_intel module" - elif modprobe ${MODPRV} kqemu ; then - [ $DEBUGLEVEL -gt 0 ] && \ - error " * Successfully loaded the kqemu module, but loading of kvm_amd \ -or kvm_intel\n failed, because no virtualization extenstion found in this \ -CPU. Please\n enable the extension within your machines BIOS or get another \ -CPU." nonfatal - else - error " * All module loading failed including the kqemu module, which \ -was either\n not found or couldn't be loaded for other reasons. Thus using \ -qemu(-kvm)\n makes not much sense." - exit 1 - fi - # load the tunnel device module - modprobe tun 2>/dev/null - # load needed variables - . /initramfs/plugin-conf/qemukvm.conf + . ${CONFFILE} # Test if this plugin is activated... more or less useless with the # new plugin system - if [ $qemukvm_active -ne 0 ]; then - + if [ ${qemukvm_active} -ne 0 2>/dev/null ]; then [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'qemukvm' os-plugin ..."; + # load general configuration . /initramfs/machine-setup + # copy virtualization include files and qemukvm.conf to config dir + testmkd ${PLUGINCONFDIR} + cp /mnt/${PLUGINDIR}/run-virt.include ${PLUGINCONFDIR} + cp ${CONFFILE} ${PLUGINCONFDIR} + +# # check for the virtualization CPU features +# if grep -q "vmx" /proc/cpuinfo && modprobe ${MODPRV} kvm_intel ; then +# [ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_intel module" +# echo "kvm=intel" >> ${PLUGINCONFDIR}/qemukvm.conf +# elif grep -q "svm" /proc/cpuinfo && modprobe ${MODPRV} kvm_amd ; then +# [ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_amd module" +# echo "kvm=amd" >> ${PLUGINCONFDIR}/qemukvm.conf +# elif modprobe ${MODPRV} kqemu ; then +# [ $DEBUGLEVEL -gt 0 ] && \ +# error " * Successfully loaded the kqemu module, but loading of kvm_amd \ +#or kvm_intel\n failed, because no virtualization extenstion found in this \ +#CPU. Please\n enable the extension within your machines BIOS or get another \ +#CPU." nonfatal +# else +# error " * All module loading failed including the kqemu module, which \ +#was either\n not found or couldn't be loaded for other reasons. Thus using \ +#qemu(-kvm)\n makes not much sense." nonfatal +# fi + +# # load the tunnel device module +# modprobe tun 2>/dev/null + # get source of qemukvm image server (get type, server and path) if strinstr "/" "${qemukvm_imagesrc}" ; then qkimgprot=$(uri_token ${qemukvm_imagesrc} prot) @@ -106,37 +76,36 @@ qemu(-kvm)\n makes not much sense." [ $DEBUGLEVEL -gt 1 ] && error " * Incomplete information in variable \ ${qemukvm_imagesrc}." nonfatal fi - # copy version depending files - the vmchooser expects for every virtua- - # lization plugin a file named after it (here run-qemukvm.include) - testmkd /mnt/etc/opt/openslx - cp /mnt/opt/openslx/plugin-repo/qemukvm/run-virt.include \ - /mnt/etc/opt/openslx/run-qemukvm.include - # create a template udhcpd configuration file - write_networking_conf + + # create a network configuration template (variables should be setable in + # the future, see vmware plugin) + natnetwork="192.168.101" + honetwork="192.168.102" + echo -e "nataddress=${natnetwork}.254/24\nhoaddress=${honetwork}.254/24" \ + >${PLUGINCONFDIR}/network.conf # copy the runlevel script (proper place for all distros??) - cp /mnt/opt/openslx/plugin-repo/qemukvm/qemukvm /mnt/etc/init.d + cp /mnt/${PLUGINDIR}/qemukvm /mnt/etc/init.d chmod 0755 /mnt/etc/init.d/qemukvm rllinker "qemukvm" 22 2 # copy the /etc/qemu-ifup script and enable extended rights for running # the emulator and certain network commands via sudo - ln -sf /opt/openslx/plugin-repo/qemukvm/qemu-ifup /mnt/etc/qemu-ifup - ln -sf /opt/openslx/plugin-repo/qemukvm/qemu-ifdown /mnt/etc/qemu-ifdown - ln -sf /opt/openslx/plugin-repo/qemukvm/qemu-ifup /mnt/etc/kvm-ifup - ln -sf /opt/openslx/plugin-repo/qemukvm/qemu-ifdown /mnt/etc/kvm-ifdown - - for qemubin in qemu kvm ; do - qemu="$(binfinder ${qemubin})" - [ -n "${qemu}" ] && \ - echo "ALL ALL=NOPASSWD: ${qemu}" >>/mnt/etc/sudoers - done - echo -e "#ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/sbin/tunctl -t tap*\n\ -#ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/sbin/ip addr add * dev tap*\n\ -#ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tap*\n\ -ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/usr/sbin/udhcpd -S /tmp/qemu*\n\ -ALL ALL=NOPASSWD: killall udhcpd" >>/mnt/etc/sudoers + ln -sf ${PLUGINDIR}/ifup ${PLUGINCONFDIR}/ifup + ln -sf ${PLUGINDIR}/ifdown ${PLUGINCONFDIR}/ifdown + + cat >> /mnt/etc/sudoers << EOF +# allow to start and stop kvm services / load-/unload kvm modules +#ALL ALL=NOPASSWD: /etc/init.d/qemukvm +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/sbin/tunctl -t tap* +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tap* +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/bin/ip link set dev tap* up +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/bin/ip addr add * dev tap* +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/usr/sbin/udhcpd -S /tmp/qemukvm/*/udhcpd.conf +ALL ALL=NOPASSWD: /opt/openslx/uclib-rootfs/bin/cp /tmp/qemukvm/*/forwarding /proc/sys/net/ipv4/conf/tap*/forwarding +#ALL ALL=NOPASSWD: ${killall} udhcpd +EOF fi else - [ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of qemukvm plugin failed" + [ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of 'qemukvm' plugin failed" fi diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifdown b/os-plugins/plugins/qemukvm/files/ifdown index 8c52d76f..e741d9ca 100644 --- a/os-plugins/plugins/qemukvm/files/qemu-ifdown +++ b/os-plugins/plugins/qemukvm/files/ifdown @@ -9,21 +9,24 @@ # # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- -# qemu-ifup +# ifdown # - Script used for network cleanup of qemukvm in stage4 # ----------------------------------------------------------------------------- -# Clean up script +# get VM_ID through tap name +VM_ID=$(echo $1 | grep -oE "0[0-4]$") +QKTMPDIR=/tmp/qemukvm/${USER}/${VM_ID} +touch /tmp/qemukvm/udhcpd.pids +chmod 666 tmp/qemukvm/udhcpd.pids case "$1" in - tap1) - # Bringing down the dhcp server - killall udhcpd 2>/dev/null - #iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE 2>/dev/null + tapnat0*) + # kill udhcpd + cat ${QKTMPDIR}/udhcpd.pid >> /tmp/qemukvm/udhcpd-unused.pid ;; - tap2) - # Bringing down the dhcp server - killall udhcpd 2>/dev/null + taphost0*) + # kill udhcpd + cat ${QKTMPDIR}/udhcpd.pid >> /tmp/qemukvm/udhcpd-unused.pid ;; esac diff --git a/os-plugins/plugins/qemukvm/files/ifup b/os-plugins/plugins/qemukvm/files/ifup new file mode 100644 index 00000000..b3218798 --- /dev/null +++ b/os-plugins/plugins/qemukvm/files/ifup @@ -0,0 +1,75 @@ +#!/bin/sh +# Copyright (c) 2009..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# ifup +# - Script used for network setup of qemukvm in stage4 +# ----------------------------------------------------------------------------- + +. /etc/opt/openslx/openslx.conf + +PLUGINCONFDIR=${OPENSLX_DEFAULT_CONFDIR}/plugins/qemukvm + +# get VM_ID through tap name +VM_ID=$(echo $1 | grep -oE "0[0-4]$") +QKTMPDIR=/tmp/qemukvm/${USER}/${VM_ID} + +# Use the udhcpcd as DHCP server and brctl as provided by default in OpenSLX +# environments via uclibc-wrapper. +. ${PLUGINCONFDIR}/network.conf + +# Just decide by the virtual network device used which kind of connection +# should be set up (passed in $1): tap0 = bridge, tap1 = nat, tap2 = hostonly. +case "$1" in + tapbridge0*) + sudo ip link set dev $1 up + # TODO: forwarding?, where needed + echo "1" >${QKTMPDIR}/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding + ;; + tapnat0*) + # Configuring DHCP on host tapnat interface and enable IP masquerading + sudo ip addr add ${nataddress} dev $1 + sudo ip link set dev $1 up + # TODO: forwarding?, where needed + echo "1" >${QKTMPDIR}/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding + # TODO: we use here atatic address, maybe change later + sed -e "s,NWIF,$1,;s,CNETWORK,192.168.1${VM_ID}," \ + -e "s,PIDFILE,${QKTMPDIR}/udhcpd.pid," \ + -e "s,LEASEFILE,${QKTMPDIR}/udhcpd.leases," \ + ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf \ + >${QKTMPDIR}/udhcpd.conf + touch ${QKTMPDIR}/udhcpd.leases + sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ + -S ${QKTMPDIR}/udhcpd.conf + # iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE + ;; + taphost0*) + # Configuring DHCP on host taphost interface + sudo ip addr add ${hoaddress} dev $1 + sudo ip link set dev $1 up + # TODO: forwarding?, where needed + echo "1" >${QKTMPDIR}/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding + sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding + sed -e "s,NWIF,$1,;s,USER,${USER},;s,CNETWORK,192.168.1${VM_ID}," \ + -e "s,PIDFILE,${QKTMPDIR}/udhcpd.pid," \ + -e "s,LEASEFILE,${QKTMPDIR}/udhcpd.leases," \ + ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf >${QKTMPDIR}/udhcpd.conf + touch ${QKTMPDIR}/udhcpd.leases + sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ + -S ${QKTMPDIR}/udhcpd.conf + ;; +esac + +exit 0 diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifup b/os-plugins/plugins/qemukvm/files/qemu-ifup deleted file mode 100644 index 9cd2dd0b..00000000 --- a/os-plugins/plugins/qemukvm/files/qemu-ifup +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# Copyright (c) 2009 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your suggestions, praise, or complaints to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org/ -# ----------------------------------------------------------------------------- -# qemu-ifup -# - Script used for network setup of qemukvm in stage4 -# ----------------------------------------------------------------------------- - -# Use the udhcpcd as DHCP server and brctl as provided by default in OpenSLX -# environments via uclibc-wrapper. - -. /etc/opt/openslx/network.qemukvm - -# Just decide by the virtual network device used which kind of connection -# should be set up (passed in $1): tap0 = bridge, tap1 = nat, tap2 = hostonly. -case "$1" in - tap0) - # Adding the tap0 interface to the existing bridge configured in stage3 - # brctl addif br0 tap0 - ;; - tap1) - # Configuring DHCP on host tap1 interface and enable IP masquerading - [ -d /tmp/qemu-$USER ] || mkdir -p /tmp/qemu-$USER - sed "s,NWIF,tap1,;s,/misc/,/qemu/,;s,USER,$USER,;s,CNETWORK,$nataddress," \ - /etc/opt/openslx/udhcpd.qemukvm >/tmp/qemu-$USER/udhcpd.conf - touch /tmp/qemu-$USER/udhcpd.leases - # ip link set tap1 up - # ip addr add 192.168.101.254/24 dev tap1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S /tmp/qemu-$USER/udhcpd.conf - # iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE - ;; - tap2) - # Configuring DHCP on host tap2 interface - [ -d /tmp/qemu-$USER ] || mkdir -p /tmp/qemu-$USER - sed "s,NWIF,tap2,;s,/misc/,/qemu/,;s,USER,$USER,;s,CNETWORK,$hoaddress," \ - /etc/opt/openslx/udhcpd.qemukvm >/tmp/qemu-$USER/udhcpd.conf - touch /tmp/qemu-$USER/udhcpd.leases - # ip link set tap2 up - # ip addr add 192.168.101.254/24 dev tap2 - sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S /tmp/qemu-$USER/udhcpd.conf - ;; -esac - -# Produce a clean exit status -exit 0 - diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include index b1f76535..02c70469 100644 --- a/os-plugins/plugins/qemukvm/files/run-virt.include +++ b/os-plugins/plugins/qemukvm/files/run-virt.include @@ -1,6 +1,7 @@ -# qemukvm.include -# -# Copyright (c) 2009 - OpenSLX GmbH +# run-virt.include +# ----------------------------------------------------------------------------- +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -9,36 +10,167 @@ # send your feedback to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org -# -# Include script for running the QEMU/Linux KVM virtual machine on an OpenSLX -# client via the run-virt.sh. The stuff is copied to /etc/opt/openslx/run- -# qemukvm.include during stage3. +# ----------------------------------------------------------------------------- +# run-virt.include +# - Include script for running the QEMU/Linux KVM virtual machine on an +# OpenSLX client via the run-virt.sh or run-vmgrid.sh +################################################################################ + +################################################################################ +### Include general configuration +################################################################################ +if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf ]; then + . ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf +else + writelog "Problems reading config file of ${self} plugin" + # TODO: exit wenn conf wichtig + #exit 1 +fi + +################################################################################ +### Declaration of default variables +################################################################################ + +PLUGINCONFQK="${PLUGINCONFROOT}/${self}" +PLUGINDIRQK=${OPENSLX_DEFAULT_DIR}/plugin-repo/${self} +# create TMPDIR for all users +mkdir -m 1777 /tmp/${self} 2>/dev/null +# TMPDIR +QKTMPDIR="/tmp/${self}/${USER}/${VM_ID}" +# define dirs and files which can be removed after exit, be carefull! +RMDIRS="${QKTMPDIR}" +rm -rf ${RMDIRS} 2>/dev/null +mkdir -m 1777 -p ${QKTMPDIR} 2>/dev/null +# vmpath is the path to the vm, here an image (img|qcow*|vmdk) +diskfile=${vmpath} + +# check the file type +if echo ${imgname} | grep -iE "img|qcow|vmdk" >/dev/null 2>&1; then + imgtype=$(echo ${imgname##*.} | tr [a-z] [A-Z]) +else + writelog "${imgname} is not a valid image type (img|qcow*|vmdk), exiting!" + exit 1 +fi -# include general configuration from vmchooser -. /etc/opt/openslx/run-virt.include +# hot keys ALT+CTRL+SHIFT +VIRTCMDOPTS="${VIRTCMDOPTS} -alt-grab" + +# display name, remove blanks because of cmdline problems +displayname=$(echo ${displayname} | sed -e "s, ,-,g") +VIRTCMDOPTS="${VIRTCMDOPTS} -name ${displayname}" + +writelog "Directories:" +writelog "\tTMPDIR:\t\t\t$QKTMPDIR" +writelog "Diskimage:" +writelog "\tDisk type:\t\t$imgtype" +writelog "\tDisk file:\t\t$diskfile" + +################################################################################ +### Hardware checks +################################################################################ + +# memory part equal to vmware plugin +# percentage of memory to use for virtualbox in standard case +if [ -n "${forcemem}" ]; then + mem="${forcemem}" +else + permem=30 + if [ "${totalmem}" -ge "1600" ]; then + permem=40 + fi +# # check if /tmp is on harddisk +# if grep -qe "/dev/.* /tmp " /proc/mounts ; then +# permem=60 +# id44="1" +# # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well +# # (40% vmware | 40% confdir(vmem...) | 20% host +# # VMplayer 2+ issue +# # TODO: makes this sense for vbox? +# #if [ "${totalmem}" -ge "2500" ]; then +# #permem=40 +# #rmdir ${snapshotdir} +# #snapshotdirold=${snapshotdir} +# #snapshotdir=/dev/shm/${self}/${USER}/${VM_ID} +# #mkdir -p ${snapshotdir} +# #ln -sf ${snapshotdir} ${snapshotdirold} +# #fi +# fi + mem=$(expr ${totalmem} / 100 \* ${permem}) + if [ "${id44}" = "1" ]; then + memhost=$(expr ${totalmem} - ${mem}) + else + memhost=$(expr ${totalmem} - ${mem} - ${mem}) + fi + # static first + permem=50 + mem=$(expr ${totalmem} / 100 \* ${permem}) + if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then + writelog "Memory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" + writelog "Min. 256 MB for host and guest!" + exit 1 + fi +fi -permem=50 -mem=$(expr ${totalmem} / 100 \* ${permem}) VIRTCMDOPTS="${VIRTCMDOPTS} -m ${mem}" # network adaptor alternatives: rtl8139, pcnet, e1000 -VIRTCMDOPTS="${VIRTCMDOPTS} -net nic,model=pcnet" +network_card=${network_card:=pcnet} +VIRTCMDOPTS="${VIRTCMDOPTS} -net nic,macaddr=${macaddr},model=${network_card}" +# define net kind and apply script +qemu_ifscr="script=${PLUGINCONFQK}/ifup,downscript=${PLUGINCONFQK}/ifdown" case "${network_kind}" in bridge*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap0" + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapbridge${VM_ID},${qemu_ifscr}" + sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapbridge${VM_ID} -u ${USER} \ + >/dev/null 2>&1 + sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapbridge${VM_ID} + POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapbridge${VM_ID}" + ;; + nat) + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapnat${VM_ID},${qemu_ifscr}" + sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapnat${VM_ID} -u ${USER} \ + >/dev/null 2>&1 + sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapnat${VM_ID} + POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapnat${VM_ID}" ;; - nat|NAT) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap1" + host*) + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=taphost${VM_ID},${qemu_ifscr}" + sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t taphost${VM_ID} -u ${USER} \ + >/dev/null 2>&1 + sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 taphost${VM_ID} + POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d taphost${VM_ID}" ;; - hostonly) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap2" + *) + network_kind="user" + VIRTCMDOPTS="${VIRTCMDOPTS} -net user" ;; esac +# translate boot, use if set else set to HardDisk +if [ -n "${boot}" ]; then + case ${boot} in + n*) # usually support for a,c,d,n, stands for Floppy, HD, CD-ROM, Network + boot="n" + # TODO: does not work yet, can be removed if tap1 solution better + if [ "${network_kind}" = "user" ] && [ -n "${virtualbox_tftpdir}" ]; then + VIRTCMDOPTS="${VIRTCMDOPTS},tftp=${virtualbox_tftpdir}" + fi + ;; + # later maybe c|disk|hd*|sd*) for HD and d|cd*) for CD-ROM + *) + boot="c" + ;; + esac +else + boot="c" +fi + +# external GUI port +vncport="590${VM_ID}" + +# TODO: most of the following does not make much sense yet ... # virtual fd/cd/dvd and drive devices, floppy b: for configuration -#VIRTCMDOPTS="${VIRTCMDOPTS} -fda /dev/fd0" -VIRTCMDOPTS="${VIRTCMDOPTS} -fdb /var/lib/virt/vmchooser/loopimg/fd.img" # if $floppy_0 from run-virt.include set then fdtest="TRUE" fdtest= fdtest=${floppy_0:+"TRUE"} @@ -61,17 +193,114 @@ cdrom1=${cdtest:-"FALSE"} ide="TRUE" hddrv="ide" +# TODO: nur bei vmchooser +#VIRTCMDOPTS="${VIRTCMDOPTS} -fda /dev/fd0" +#VIRTCMDOPTS="${VIRTCMDOPTS} -fdb ${floppy1name}" + # audio VIRTCMDOPTS="${VIRTCMDOPTS} -soundhw all" # serial #VIRTCMDOPTS="${VIRTCMDOPTS} -serial /dev/ttyS0" -# set the variables appropriately -for tool in kvm qemu-kvm qemu; do - VIRTCMD=$(which ${tool} 2>/dev/null) - [ "x$VIRTCMD" != "x" ] && break -done -[ -z $VIRTCMD ] && { writelog "No qemu/kvm tool found."; exit 1; } -VIRTCMD="sudo $VIRTCMD" -VIRTCMDOPTS="${VIRTCMDOPTS} -boot c -alt-grab ${diskfile}" +writelog "Virtual Hardware:" +writelog "\tGuest RAM:\t\t${mem} MB" +# echo nur wenn memhost gesetzt +[ -n "${memhost}" ] && writelog "\tHost RAM:\t\t${memhost} MB" +writelog "\tMAC address:\t\t$macaddr" +writelog "\tNetwork card:\t\t${network_card}" +writelog "\tNetwork kind:\t\t${network_kind}" +#writelog "\tCD-ROM1:\t${cdrom0}" +#writelog "\tCD-ROM2:\t${cdrom1}" +#writelog "\tFloppy_A:\t${floppy0}" +#writelog "\tFloppy_B:\t${floppy1}" +#writelog "\tShared Folders 'home':\t/home/${USER}" + +################################################################################ +### finally set env for run-virt.sh +################################################################################ + +# TODO: besser drive statt hda? +#-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] +# [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] +# [,cache=writethrough|writeback|none][,format=f][,serial=s] +# [,boot=on|off] +#-snapshot write to temporary files instead of disk image files +#-usb enable the USB driver (will be the default soon) +#-usbdevice name add the host or guest USB device 'name' +#-nographic disable graphical output and redirect serial I/Os to console +#-vga [std|cirrus|vmware|none] select video card type +#-vnc display start a VNC server on display +#-tftp dir allow tftp access to files in dir [-net user] +#-bootp file advertise file in BOOTP replies +#-no-fd-bootchk disable boot signature checking for floppy disks +#-no-acpi disable ACPI +#-kernel bzImage use 'bzImage' as kernel image +#-append cmdline use 'cmdline' as kernel command line +#-initrd file use 'file' as initial ram disk +#-serial dev redirect the serial port to char device 'dev' +#-parallel dev redirect the parallel port to char device 'dev' +#-monitor dev redirect the monitor to char device 'dev' +#-pidfile file write PID to 'file' +#-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) +#-L path set the directory for the BIOS, VGA BIOS and keymaps +#-bios file set the filename for the BIOS +#-no-kvm disable KVM hardware virtualization +#-enable-nesting enable support for running a VM inside the VM (AMD only) +#-no-reboot exit instead of rebooting +#-no-shutdown stop before shutdown +#-loadvm [tag|id] +# start right away with a saved state (loadvm in monitor) +#-daemonize daemonize QEMU after initializing +#-kvm-shadow-memory megs set the amount of shadow pages to be allocated +#-mem-path set the path to hugetlbfs/tmpfs mounted directory, also +# enables allocation of guest memory with huge pages +#-mem-prealloc toggles preallocation of -mem-path backed physical memory +# at startup. Default is enabled. +#-option-rom rom load a file, rom, into the option ROM space +#-localtime set the real time clock to local time [default=utc] +#-startdate select initial date of the clock +#-icount [N|auto] +# enable virtual instruction counter with 2^N clock ticks per instruction +#-echr chr set terminal escape character instead of ctrl-a +#-virtioconsole c +# set virtio console +#-show-cursor show cursor + +# check for kvm modules +if [ -c /dev/kvm ]; then + for tool in kvm qemu-kvm; do + VIRTCMD=$(which ${tool} 2>/dev/null) + [ -n "$VIRTCMD" ] && break + done +else + VIRTCMD=$(which qemu 2>/dev/null) + writelog "KVM available but /dev/kvm not found!" + writelog "Trying fallback to QEMU emulation." +fi + +if [ -z "${VIRTCMD}" ]; then + writelog "No QEMU/KVM found, exiting!" + rm -rf ${RMDIRS} + exit 1 +elif [ "${VIRTCMD##*/}" = "qemu" ]; then + writelog "User space emulation:\t\t${VIRTCMD}" +else + writelog "User space virtualization:\t${VIRTCMD}" +fi + +# using snapshots +VIRTCMDOPTS="${VIRTCMDOPTS} -snapshot" + +# TODO: boot als var, -boot n, tftp... +VIRTCMDOPTS="${VIRTCMDOPTS} -boot c" + +# set headless mode +# define first, you do not want VIRTCMDOPTS from graphical start +VIRTCMDHL=${VIRTCMD} +VIRTCMDOPTSHL="${VIRTCMDOPTS} -nographic ${diskfile}" + +# graphical start +# vga std/cirrus/vmware? +#VIRTCMDOPTS="${VIRTCMDOPTS} -vga std -full-screen ${diskfile}" +VIRTCMDOPTS="${VIRTCMDOPTS} ${diskfile}" diff --git a/os-plugins/plugins/qemukvm/init-hooks/20-nw-bridge-config/bridge.sh b/os-plugins/plugins/qemukvm/init-hooks/20-nw-bridge-config/bridge.sh index 6aabe8ad..c4c548fb 100644 --- a/os-plugins/plugins/qemukvm/init-hooks/20-nw-bridge-config/bridge.sh +++ b/os-plugins/plugins/qemukvm/init-hooks/20-nw-bridge-config/bridge.sh @@ -10,7 +10,7 @@ # General information about OpenSLX can be found at http://openslx.org # # Init hook to create a bridge on the active network interface -# (should be kept identical to the files of virtualbox and qemukvm plugins) +# (should be kept identical to the files of virtualbox and vmware plugins) ############################################################################# local bridge=br0 diff --git a/os-plugins/plugins/qemukvm/init-hooks/60-have-servconfig/vm-dhcpd.sh b/os-plugins/plugins/qemukvm/init-hooks/60-have-servconfig/vm-dhcpd.sh new file mode 100755 index 00000000..396631c1 --- /dev/null +++ b/os-plugins/plugins/qemukvm/init-hooks/60-have-servconfig/vm-dhcpd.sh @@ -0,0 +1,60 @@ +#!/bin/ash +# Copyright (c) 2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Init hook to create a bridge on the active network interface +# (should be kept identical to the files of virtualbox and vmware plugins) +############################################################################# + +. /etc/openslx.conf + +CONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR} +testmkd ${CONFDIR} + +# configuring dhcpd stub for virtual networks +cat > ${CONFDIR}/udhcpd.conf << EOF +# general udhcpd configuration file for virtual machines written by +# $0 during OpenSLX stage3 configuration + +# start and end of the IP lease block +start CNETWORK.20 +end CNETWORK.100 + +# interface that udhcpd will use +interface NWIF + +# how long an offered address is reserved (leased) in seconds +offer_time 6000 + +# location of the leases file +lease_file LEASEFILE + +# location of the pid file +pidfile PIDFILE + +option dns ${domain_name_servers} +option subnet 255.255.255.0 +option router CNETWORK.254 +option wins CNETWORK.10 +option domain virtual.site ${domain_name} + +# additional options known to udhcpd +#subnet #timezone +#router #timesvr +#namesvr #dns +#logsvr #cookiesvr +#lprsvr #bootsize +#domain #swapsvr +#rootpath #ipttl +#mtu #broadcast +#wins #lease +#ntpsrv #tftp +#bootfile +EOF diff --git a/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm b/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm index 25be964c..654d755e 100644 --- a/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm @@ -53,6 +53,7 @@ sub runlevelInfo my %nameMap = ( 'syslogd' => 'sysklogd', 'syslog-ng' => 'syslog-ng', + 'rsyslog' => 'rsyslog', ); my $rlInfo = { scriptName => $nameMap{$kind}, @@ -71,6 +72,20 @@ sub getPackageName my %nameMap = ( 'syslogd' => 'sysklogd', 'syslog-ng' => 'syslog-ng', + 'rsyslog' => 'rsyslog', + ); + return $nameMap{$name}; +} + +sub getBinaryName +{ + my $self = shift; + my $name = shift; + + my %nameMap = ( + 'syslogd' => 'sysklogd', + 'syslog-ng' => 'syslog-ng', + 'rsyslog' => 'rsyslogd', ); return $nameMap{$name}; } diff --git a/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm b/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm index 6645f9ef..2952f2e7 100644 --- a/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm +++ b/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm @@ -68,9 +68,9 @@ sub getAttrInfo description => unshiftHereDoc(<<' End-of-Here'), kind of syslog to use \(syslogd-ng or old-style syslog\) End-of-Here - content_regex => qr{^(syslog-ng|syslog)$}, - content_descr => 'allowed: syslogd-ng, syslog', - default => 'syslog-ng', + content_regex => qr{^(syslog-ng|syslogd|rsyslog)$}, + content_descr => 'allowed: syslog-ng, syslogd, rsyslog', + default => 'rsyslog', }, 'syslog::host' => { applies_to_systems => 1, @@ -126,19 +126,27 @@ sub installationPhase my $engine = $self->{'os-plugin-engine'}; - if ($self->{kind} eq 'syslog-ng' && !isInPath('syslog-ng')) { + if ($self->{kind} eq 'rsyslog' && !isInPath($self->{distro}->getBinaryName('rsyslog'))) { $engine->installPackages($self->{distro}->getPackageName('syslog-ng')); } + + if ($self->{kind} eq 'syslog-ng' && !isInPath('syslog-ng')) { + $engine->installPackages($self->{distro}->getPackageName($self->{distro}->getBinaryName('syslog-ng'))); + } + # not sure if we ever should setup this service - if ($self->{kind} eq 'syslogd' && !isInPath('syslog')) { + if ($self->{kind} eq 'syslogd' && !isInPath($self->{distro}->getBinaryName('syslogd'))) { $engine->installPackages($self->{distro}->getPackageName('syslogd')); } if (!$self->{kind}) { - if (qx{which syslog-ng}) { + if (qx{which $self->{distro}->getBinaryName('rsyslog')}) { + $self->{kind} = 'rsyslog'; + } + elsif (qx{which $self->{distro}->getBinaryName('syslog-ng')}) { $self->{kind} = 'syslog-ng'; } - elsif (qx{which syslogd}) { + elsif (qx{which $self->{distro}->getBinaryName('syslogd')}) { $self->{kind} = 'syslogd'; } else { @@ -150,7 +158,10 @@ sub installationPhase } # start to actually do something - according to current stage1 attributes - if ($self->{kind} eq 'syslog-ng') { + if ($self->{kind} eq 'rsyslog') { + $self->_setupRsyslog($self->{attrs}); + } + elsif ($self->{kind} eq 'syslog-ng') { $self->_setupSyslogNG($self->{attrs}); } elsif ($self->{kind} eq 'syslogd') { @@ -158,7 +169,7 @@ sub installationPhase } else { die _tr( - 'unknown kind "%s" given, only "syslog-ng" and "syslogd" are supported!', + 'unknown kind "%s" given, only "rsyslog", "syslog-ng" and "syslogd" are supported!', $self->{kind} ); } @@ -174,6 +185,14 @@ sub removalPhase return; } +sub _setupRsyslog +{ + my $self = shift; + my $attrs = shift; + + return; +} + sub _setupSyslogNG { my $self = shift; @@ -229,6 +248,7 @@ sub _setupSyslogNG END fi + testmkd /mnt/var/run/rsyslog rllinker $rlInfo->{scriptName} $rlInfo->{startAt} $rlInfo->{stopAt} End-of-Here diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm index fad96ea1..9af3191e 100644 --- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm @@ -31,6 +31,7 @@ sub installVbox my $self = shift; my $engine = $self->{'engine'}; + # should be replaced by proper function my $release = `lsb_release -rs`; chomp($release); diff --git a/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm b/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm index e936590e..fd1424f1 100644 --- a/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm +++ b/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2009 - OpenSLX GmbH +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -9,7 +9,7 @@ # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # virtualbox.pm -# - Declares necessary information for the virtualbox plugin +# - declares necessary information for the virtualbox plugin # ----------------------------------------------------------------------------- package OpenSLX::OSPlugin::virtualbox; @@ -168,7 +168,7 @@ sub _writeRunlevelScript ); $initfile->addFunction( 'vmstatus', - ' if running vboxdrv; then + 'if running vboxdrv; then if running vboxnetflt; then echo "VirtualBox kernel modules (vboxdrv and vboxnetflt) are loaded." else @@ -188,7 +188,7 @@ sub _writeRunlevelScript ' modprobe vboxdrv && modprobe vboxnetflt', ); $initfile->addFunction( - 'stop', + 'stop', ' rmmod vboxnetflt && rmmod vboxdrv', ); $initfile->addToCase( @@ -208,12 +208,9 @@ sub _writeRunlevelScript 'stop && start' ); - # get distro version (does not work and makes no sense to call an external - # function which is not available in all distros) - # my $workaround_distro = qx(lsb_release -si); - # alternative from bootsplash.pm - my $workaround_distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; - my $runlevelscript = getInitFileForDistro($initfile, $workaround_distro); + # get distro version + my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; + my $runlevelscript = getInitFileForDistro($initfile, $distro); # todo: because we dont have distribution or version dependend # init scripts we could put it directly into /etc/init.d... diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm index ba8a32b0..43e4ea1f 100644 --- a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm @@ -54,11 +54,11 @@ sub copyDefaultSession # Take the default path of SuSE # (as we have the most experience with it) - if( -f "/etc/X11/sessions/default.desktop") { - rename("/etc/X11/sessions/default.desktop", - "/etc/X11/sessions/default.desktop.back") + if( -f "/etc/X11/session/default.desktop") { + rename("/etc/X11/session/default.desktop", + "/etc/X11/session/default.desktop.back") } - copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); + copyFile("$pluginroot/default.desktop","/etc/X11/session"); return 1; }
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm index 9e0bf551..c93a066b 100644 --- a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2008 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -33,17 +33,15 @@ use OpenSLX::Utils; sub copyDefaultSession { - my $self = shift; - my $pluginroot = shift; - - - # Take the default path of SuSE - # (as we have the most experience with it) - if( -f "/etc/X11/sessions/default.desktop") { - rename("/etc/X11/sessions/default.desktop", - "/etc/X11/sessions/default.desktop.back") + my $self = shift; + my $pluginroot = shift; + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/etc/X11/session/default.desktop") { + rename("/etc/X11/session/default.desktop", + "/etc/X11/session/default.desktop.back") } - copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); - - return 1; + copyFile("$pluginroot/default.desktop","/etc/X11/session"); + return 1; }
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/XX_vmchooser.sh b/os-plugins/plugins/vmchooser/XX_vmchooser.sh index d3ade116..168bcda1 100644 --- a/os-plugins/plugins/vmchooser/XX_vmchooser.sh +++ b/os-plugins/plugins/vmchooser/XX_vmchooser.sh @@ -1,5 +1,5 @@ # Copyright (c) 2008, 2009 - RZ Uni Freiburg -# Copyright (c) 2008, 2009 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -51,32 +51,6 @@ if [ -e $CONFFILE ]; then mount -n -t msdos -o loop,umask=000 ${PLUGINCONFDIR}/loopimg/fd.img \ ${PLUGINCONFDIR}/fd-loop - # create run-virt.include header (and fill in information on removable - # devices if present - echo -e "# run-virt.include created by $0 during stage3 plugin setup" \ - >${PLUGINCONFDIR}/run-virt.include - - waitfor /etc/hwinfo.cdrom - j=0 - for i in $(cat /etc/hwinfo.cdrom); do - echo "cdrom_$j=$i" >>${PLUGINCONFDIR}/run-virt.include - j=$(expr $j + 1) - done - - waitfor /etc/hwinfo.floppy - j=0 - for i in $(cat /etc/hwinfo.floppy); do - echo "floppy_$j=$i" >>${PLUGINCONFDIR}/run-virt.include - j=$(expr $j + 1) - done - - CPU_CORES=$(grep 'processor.*:' /proc/cpuinfo | wc -l) - if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then - echo "cpu_cores=\"${CPU_CORES}\"" >>${PLUGINCONFDIR}/run-virt.include - else - echo 'cpu_cores="1"' >>${PLUGINCONFDIR}/run-virt.include - fi - # finished ... [ $DEBUGLEVEL -gt 0 ] && echo "done with 'vmchooser' os-plugin ..." fi diff --git a/os-plugins/plugins/vmchooser/files/run-virt.sh b/os-plugins/plugins/vmchooser/files/run-virt.sh index 5aefc47e..771ebef4 100644 --- a/os-plugins/plugins/vmchooser/files/run-virt.sh +++ b/os-plugins/plugins/vmchooser/files/run-virt.sh @@ -22,8 +22,9 @@ . /etc/opt/openslx/openslx.conf PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser -# include general configuration from vmchooser -. ${PLUGINCONFDIR}/run-virt.include +# load general virtualization information +[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \ + . ${PLUGINCONFROOT}/virtualization/virtualization.conf # Sanity checks ################################################################################ @@ -40,13 +41,14 @@ xml=$1 ################################################################################ # File name of the image -imagename=$(grep -io "<image_name param=.*\"" ${xml} | \ +imgname=$(grep -io "<image_name param=.*\"" ${xml} | \ awk -F "\"" '{ print $2 }') case ${xml} in /tmp/*) # we do not need folder name as it is already included by vmchooser - diskfile=$imagename + diskfile=$imgname + imgname=$(basename ${imgname}) ;; *) # Path to the image @@ -54,18 +56,25 @@ case ${xml} in [ -z $imgpath ] && \ { imgpath=$(readlink -f $xml); imgpath=${imgpath%/*.xml}; } # Diskfile is file including absolute path to it - diskfile=$imgpath/$imagename + diskfile=$imgpath/$imgname ;; esac +# TODO: change to new var vmpath, remove diskfile afterwards +vmpath=$diskfile [ -e $diskfile ] || { echo -e "\n\tImage file $diskfile not found!"; exit 1; } # Short description of the image (as present in the vmchooser menu line) -short_description=$(grep -o "short_description param=.*\"" ${xml} | \ +vm_name=$(grep -o "short_description param=.*\"" ${xml} | \ sed -e "s/&.*;/; /g" | awk -F "\"" '{print $2}') # If ${short_description} not defined use ${image_name} -short_description=${short_description:-"${image_name}"} -displayname=${short_description} +# if ${vm_name} not defined use ${imgname} +vm_name=${vm_name:-"${imgname%.*}"} +# define vm_shortname since vm_name can be very long +vm_shortname=$(echo ${imgname%.*} | sed -e "s, ,-,g") +displayname=${vm_name} +# remove blanks +vm_name=$(echo ${vm_name} | sed -e "s, ,-,g") # Type of virtual machine to run virt_mach=$(grep -o "virtualmachine param=.*\"" ${xml} | \ @@ -74,7 +83,7 @@ virt_mach=$(grep -o "virtualmachine param=.*\"" ${xml} | \ # Make a guess from the filename extension if ${virt_mach} is empty (not set # within the xml file) if [ -z ${virt_mach} ] ; then - case "$(echo ${imagename##*.}|tr [A-Z] [a-z])" in + case "$(echo ${imgname##*.}|tr [A-Z] [a-z])" in vmdk) virt_mach="vmware" ;; @@ -104,19 +113,29 @@ parallel=$(grep -io '<parport param=.*"' ${xml} | awk -F '"' '{ print $2 }') # Declaration of default variables ############################################################################### +# VM-ID static (0D) +VM_ID="00" + # cpu cores cpu_cores="${cpu_cores}" -# Get total amount of memory installed in your machine -totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024) +# check for CPU virtualization flags + +# total amount of memory defined in stage 3 permem=60 +# get a result which can be divided through 4 mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) - -# Configuring ethernet mac address: first four bytes are fixed (00:50:56:0D) -# the last two bytes are taken from the first local network adaptor of the host -# system -mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \ - | awk -F ":" '{print $(NF-1)":"$NF}') +[ -n "${mainvirtmem}" ] && forcemem=$(expr ${mainvirtmem} / 4 \* 4) + +# configuring ethernet mac address: first 3 bytes are fixed (00:50:56) +# 4th byte is the VM-ID (0D) +# last two bytes are taken from the bridge of the host +# define one MAC per guest +macguestpart="00:50:56:${VM_ID}" +machostpart=$(echo ${machostaddr} | awk -F ":" '{print $(NF-1)":"$NF}') +macaddr=$(echo "${macguestpart}:${machostpart}" | tr [a-z] [A-Z]) +#TODO: remove when vmware modified +mac=${machostpart} # virtual fd/cd/dvd and drive devices, floppy b: for configuration # if $floppy_0 from run-virt.include set then fdtest="TRUE" @@ -142,6 +161,10 @@ ide="TRUE" scsi="FALSE" hddrv="ide" +# add rw share +sharepath="${HOME}" +sharename="home" + # Display resolution within the host system hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$") xres=$(echo "${hostres}" | awk '{print $3}') @@ -220,11 +243,11 @@ writelog () # Logo for console cat <<EOL - - .----.--.--.-----.--.--.--.----.-----. - | _| | | | | | | _|_ _| - |__| |_____|__|__|\___/|__|__| |_| -OpenSLX script for preparing virtual machine environment ... + __ __ + .----.--.--.-----.___.--.--.|__|.----.| |_ + | _| | | |___| | || || _|| _| + |__| |_____|__|__| \___/ |__||__| |____| + OpenSLX virtual machine environment preparation script ... EOL @@ -241,15 +264,17 @@ writelog "finished\n" # Copy guest configuration (with added information) config.xml to be accessed # via virtual floppy # fixme -> to be changed (vmchooser adapts the file content!?) -echo "Please fix the config.xml generation" +#TODO: wozu echo? +#echo "Please fix the config.xml generation" cp ${xml} ${PLUGINCONFDIR}/fd-loop/config.xml # Check if virtual machine container file exists -filecheck +#filecheck # Get all virtual machine specific stuff from the respective include file -if [ -e ${PLUGINCONFROOT}/${virt_mach}/run-${virt_mach}.include ] ; then - . ${PLUGINCONFROOT}/${virt_mach}/run-${virt_mach}.include +if [ -e ${PLUGINCONFROOT}/${virt_mach}/run-virt.include ] ; then + self=${virt_mach} + . ${PLUGINCONFROOT}/${virt_mach}/run-virt.include # start a windowmanager for easier handling # (expect problems /w windows opening in background /w vmware without wm) for dm in xfwm4 metacity openbox blackbox kwin fvwm2 ; do @@ -264,7 +289,7 @@ if [ -e ${PLUGINCONFROOT}/${virt_mach}/run-${virt_mach}.include ] ; then fi done ${VIRTCMD} ${VIRTCMDOPTS} - writelog "Bye.\n" + writelog "Bye." exit 0 else writelog "Failed because of missing ${virt_mach} plugin." diff --git a/os-plugins/plugins/vmchooser/init-hooks/80-after-plugins/virtualization.sh b/os-plugins/plugins/vmchooser/init-hooks/80-after-plugins/virtualization.sh new file mode 100644 index 00000000..400075cd --- /dev/null +++ b/os-plugins/plugins/vmchooser/init-hooks/80-after-plugins/virtualization.sh @@ -0,0 +1,135 @@ +# Copyright (c) 2008..2010 - RZ Uni Freiburg +# Copyright (c) 2008..2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# script is included from init via the "." load function - thus it has all +# variables and functions available + +# virtual virtualization plugin +# make sure that this file is the same in vmgrid and vmchooser plugin! + +# include default directories +. /etc/openslx.conf + +CONFFILEVMCHOOSER="/initramfs/plugin-conf/vmchooser.conf" +CONFFILEVMGRID="/initramfs/plugin-conf/vmgrid.conf" +PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualization + +# check if plugins available +active=0 +[ -f ${CONFFILEVMCHOOSER} ] && . ${CONFFILEVMCHOOSER} +[ ${vmchooser_active} -ne 0 ] && active=1 +[ -f ${CONFFILEVMGRID} ] && . ${CONFFILEVMGRID} +[ ${vmgrid_active} -ne 0 ] && active=1 + +[ $DEBUGLEVEL -gt 0 ] \ + && echo -e "Executing the virtual 'virtualization' plugin ... \c" + +if [ ${active} -ne 0 ] ; then + + # load general configuration + . /etc/initramfs-setup + # include functions + . /etc/functions + + testmkd ${PLUGINCONFDIR} + + # check if vmgrid active and change free mem + totalmem=$(expr $(grep -i "memtotal" /proc/meminfo \ + | awk '{print $2}') / 1024) + echo "totalmem=${totalmem}" >> ${PLUGINCONFDIR}/virtualization.conf + + if [ ${vmgrid_active} -ne 0 ]; then + + totalmemtest=$(expr $(echo ${vmgrid_memratio} \ + | awk -F ',' '{print $1" + "$2" + "$3" + "$4" + "$5" + "$6}')) + + # not more than 100% memory assigned + if [ ${totalmemtest} -le 100 2>/dev/null ]; then + + # host mem + hostratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $6}') + hostmem=$(expr ${totalmem} \* ${hostratio} / 100 2>/dev/null) + if [ ${hostmem} -lt 256 2>/dev/null ]; then + # min. 256 MB for host + hostmem=256 + fi + + # main vm mem (vmchooser) + if [ ${vmchooser_active} -ne 0 ]; then + mainvirtratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $5}') + mainvirtmem=$(expr ${totalmem} \* ${mainvirtratio} / 100 2>/dev/null) + if [ ${mainvirtmem} -lt 512 2>/dev/null ]; then + # min. 512 for vmchooser + mainvirtmem=512 + fi + else + mainvirtratio=0 + mainvirtmem=0 + fi + + cat << EOF >> ${PLUGINCONFDIR}/virtualization.conf +hostratio=${hostratio} +hostmem=${hostmem} +mainvirtratio=${mainvirtratio} +mainvirtmem=${mainvirtmem} +EOF + + fi + fi + + # cpu cores + CPU_CORES=$(grep 'processor.*:' /proc/cpuinfo | wc -l) + if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then + echo "cpu_cores=${CPU_CORES}" \ + >> ${PLUGINCONFDIR}/virtualization.conf + else + echo 'cpu_cores=1' >> ${PLUGINCONFDIR}/virtualization.conf + fi + + # arch + echo "host_arch=$(uname -m)" >> ${PLUGINCONFDIR}/virtualization.conf + + # VT enabled cpu? + if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf + echo 'kvm_module="kvm_intel"' >> ${PLUGINCONFDIR}/virtualization.conf + elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf + echo 'kvm_module="kvm_amd"' >> ${PLUGINCONFDIR}/virtualization.conf + else + echo "vtflag=0" >> ${PLUGINCONFDIR}/virtualization.conf + fi + + # write mac + echo "machostaddr=${macaddr}" >> ${PLUGINCONFDIR}/virtualization.conf + + # get further hw information + waitfor /etc/hwinfo.cdrom + j=0 + for i in $(cat /etc/hwinfo.cdrom); do + echo "cdrom_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf + j=$(expr $j + 1) + done + + waitfor /etc/hwinfo.floppy + j=0 + for i in $(cat /etc/hwinfo.floppy); do + echo "floppy_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf + j=$(expr $j + 1) + done + + # finished ... + [ $DEBUGLEVEL -gt 0 ] \ + && echo "ok" +else + [ $DEBUGLEVEL -gt 0 ] \ + && echo "failed" +fi diff --git a/os-plugins/plugins/vmgrid/OpenSLX/OSPlugin/vmgrid.pm b/os-plugins/plugins/vmgrid/OpenSLX/OSPlugin/vmgrid.pm new file mode 100644 index 00000000..d73e0720 --- /dev/null +++ b/os-plugins/plugins/vmgrid/OpenSLX/OSPlugin/vmgrid.pm @@ -0,0 +1,322 @@ +# Copyright (c) 2008, 2009 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmgrid.pm +# - ... +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::vmgrid; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; +use OpenSLX::DistroUtils; + +sub new +{ + my $class = shift; + + my $self = { + name => 'vmgrid', + }; + + return bless $self, $class; +} + +# TODO: desc +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + ... + End-of-Here + precedence => 80, + #required => [ qr{^(vmware|virtualbox|qemukvm|xen)$} ], + #openvz|vserver + # TODO: virtaul plugin (requires, provides?) + #required => [ qw( virtualization ) ], + #provided => [ qw( virtualization ) ], + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + 'vmgrid::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'vmgrid'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + 'vmgrid::virt' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + which virtualization technique schould be used? + End-of-Here + content_regex => qr{^(vmware|virtualbox|qemukvm|xen)$}, + #openvz|vserver + content_descr => 'vmware, virtualbox, qemukvm, xen', + #openvz, vserver + default => undef, + }, + 'vmgrid::roshare' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + do you want to mount external resources? + e.g. NFS share /w virt images ... + will be mounted to /var/lib/virt/vmgrid + End-of-Here + content_regex => qr{^nfs://}, + content_descr => 'NFS share as URI (nfs://...)', + default => undef, + }, + 'vmgrid::rwshare' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + do you want a persistent storage device? + use local hard drive (ID45) or NFS share. + will be mounted to /var/opt/openslx/plugins/vmgrid/share + End-of-Here + content_regex => qr{^(id45|nfs://)}, + content_descr => 'NFS share as URI (nfs://...) or "id45"', + default => undef, + }, + 'vmgrid::imgpath' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + location of virtual images + for starts /wo full path + End-of-Here + content_descr => 'absolute path to vm image files', + default => '/var/lib/virt/vmgrid/images', + }, + 'vmgrid::xmlpath' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + location of XML configuration for virtual images + for starts /wo full path + End-of-Here + content_descr => 'absolute path to vm xml files', + default => '/var/lib/virt/vmgrid/xml', + }, + 'vmgrid::startvms' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + which virtaul machines should be started per default + comma separated list. first will be started first, + second second, and so on, max. 4 VMs + End-of-Here + content_descr => 'name of xml file e.g. scilin-5.4-wn(.xml)', + default => undef, + }, + 'vmgrid::hvm' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + use hardware virtualization, if applicable + override the settings of the corresponding virt plugin + (only if supported by plugin) + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'vmgrid::maxvcpus' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + use this number of vcpus as maximum for one vm + will be used only if applicable + (only if supported by plugin) + End-of-Here + content_regex => qr{^(1|2|4|8|16)$}, + content_descr => '1, 2, 4, 8, 16', + default => undef, + }, + 'vmgrid::minvcpus' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + use this number of vcpus as minimum for one vm + will be used only if applicable + (only if supported by plugin) + End-of-Here + content_regex => qr{^(1|2|4|8|16)$}, + content_descr => '1, 2, 4, 8, 16', + default => undef, + }, + 'vmgrid::memratio' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + define memory ratio in nn% + order: grid client 1, 2, 3, 4, other VMs, host + if desktop virtualization defined the free memory will be + distributed between the remaining grid clients, + according to their ratio + if less than 4 VMs defined in startvms the memory is being + reserved for a later manual start + set to 0 if you don't intend to start them manually + (only if supported by plugin) + End-of-Here + content_regex => qr{^(\d\d??,\d\d??,\d\d??,\d\d??,\d\d??,\d\d??)$}, + content_descr => '\d\d??,\d\d??,\d\d??,\d\d??,\d\d??,\d\d??', + default => '40,0,0,0,40,20', + }, + 'vmgrid::maxram' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + maximum of RAM used for ALL vms + will be used only if applicable + (only if supported by plugin) + End-of-Here + content_regex => qr{^(1|2|3|4|5|6|7|8|9)}, + content_descr => 'absolute or relative e.g. 512 or 50%', + default => undef, + }, + 'vmgrid::minram' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + minimum of RAM used for ALL vms + will be used only if applicable + (only if supported by plugin) + End-of-Here + content_regex => qr{^(1|2|3|4|5|6|7|8|9)}, + content_descr => 'absolute or relative e.g. 512 or 50%', + default => undef, + }, + }; +} + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + my $pluginRepoPath = $info->{'plugin-repo-path'}; + my $openslxBasePath = $info->{'openslx-base-path'}; + + $self->_writeRunlevelScript(); + + # copy all needed files now: + my $pluginName = $self->{'name'}; + my $pluginBasePath = "$openslxBasePath/lib/plugins/$pluginName/files"; + foreach my $file ( qw( vmgrid run-vmgrid.sh ) ) { + copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); + chmod 0755, "$pluginRepoPath/$file"; + } + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +# Write the runlevelscript +sub _writeRunlevelScript +{ + my $self = shift; + my $initfile = newInitFile(); + + $initfile->setName("vmgrid-slx"); + $initfile->setDesc("Setup environment for vmgrid. Part of OpenSLX vmgrid plugin."); + + # todo: Function need to be formated proper... not important right now + #$initfile->addFunction( + # 'running', + # 'lsmod | grep -q "$1[^_-]"' + #); + + # Is a VM running? + my $runningvms = unshiftHereDoc(<<' End-of-Here'); + if [ -e /tmp/vmgrid/vmgrid.pids ]; then + for pid in $(cat /tmp/vmgrid/vmgrid.pids); do + if ps aux | grep " ${pid} " | grep vmgrid; then + echo "Running: ${pid}" + fi + done + fi + End-of-Here + + # Kill all VMS! + my $killvms = unshiftHereDoc(<<' End-of-Here'); + if [ -e /tmp/vmgrid/vmgrid.pids ]; then + for pid in $(cat /tmp/vmgrid/vmgrid.pids); do + if ps aux | grep " ${pid} " | grep vmgrid; then + kill ${pid} + fi + done + fi + End-of-Here + + # FORCE: Kill all VMS! + my $fkillvms = unshiftHereDoc(<<' End-of-Here'); + if [ -e /tmp/vmgrid/vmgrid.pids ]; then + for pid in $(cat /tmp/vmgrid/vmgrid.pids); do + if ps aux | grep " ${pid} " | grep vmgrid; then + kill -9 ${pid} + fi + done + fi + End-of-Here + + $initfile->addFunction( + 'start', + ' vmgrid', + ); + $initfile->addToCase( + 'kill', + 'killvms' + ); + $initfile->addToCase( + 'force-kill', + 'fkillvms' + ); + $initfile->addToCase( + 'status', + 'runningvms' + ); + $initfile->addToCase( + 'restart', + 'stop && start' + ); + + # get distro version +# my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; +# my $runlevelscript = getInitFileForDistro($initfile, $distro); +# +# spitFile("$self->{'pluginRepositoryPath'}/vmgrid-slx", $runlevelscript); +} + +1; diff --git a/os-plugins/plugins/vmgrid/XX_vmgrid.sh b/os-plugins/plugins/vmgrid/XX_vmgrid.sh new file mode 100644 index 00000000..f75c895d --- /dev/null +++ b/os-plugins/plugins/vmgrid/XX_vmgrid.sh @@ -0,0 +1,104 @@ +# Copyright (c) 2008..2010 - RZ Uni Freiburg +# Copyright (c) 2008..2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# script is included from init via the "." load function - thus it has all +# variables and functions available + +# include default directories +. /etc/openslx.conf + +CONFFILE="/initramfs/plugin-conf/vmgrid.conf" +PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/vmgrid +VIRTUALIZATIONPLUGIN=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualization +#RWSHARE=/mnt/${OPENSLX_DEFAULT_VARDIR}/plugins/vmgrid/share +RWSHARE=/mnt/var/opt/openslx/plugins/vmgrid/share +RWSHAREMNT=/mnt/var/opt/openslx/mnt/vmgrid +BINDIR=/mnt/${OPENSLX_DEFAULT_BINDIR} +PLUGINDIR=${OPENSLX_DEFAULT_DIR}/plugin-repo/vmgrid +VIRTDIR=/mnt/${OPENSLX_DEFAULT_VIRTDIR}/vmgrid + +if [ -f $CONFFILE ]; then + + # load needed variables + . $CONFFILE + + if [ ${vmgrid_active} -ne 0 ] ; then + [ ${DEBUGLEVEL} -gt 0 ] && echo "executing the 'vmgrid' os-plugin ..." + + # load general configuration + . /etc/initramfs-setup + # include functions + . /etc/functions + + testmkd ${PLUGINCONFDIR} + testmkd ${VIRTDIR} + cp $CONFFILE ${PLUGINCONFDIR}/vmgrid.conf + # create link to binpath + ln -fs ${PLUGINDIR}/vmgrid ${BINDIR}/vmgrid + ln -fs ${PLUGINDIR}/run-vmgrid.sh ${BINDIR}/run-vmgrid.sh + + # mount nfs virt ro share + if strinstr "nfs://" "${vmgrid_roshare}"; then + virtsrcprot=$(uri_token ${vmgrid_roshare} prot) + virtsrcserv=$(uri_token ${vmgrid_roshare} server) + virtsrcpath="$(uri_token ${vmgrid_roshare} path)" + if [ -n "${virtsrcprot}" -a -n "${virtsrcserv}" -a -n "${virtsrcpath}" ]; + then + virtsrctarget=${VIRTDIR} + # mount the vmgrid source ro + fsmount ${virtsrcprot} ${virtsrcserv} ${virtsrcpath} ${virtsrctarget} \ + ro + fi + fi + + # create rw share + testmkd ${RWSHARE} + # bind mount id 45 to ${RWSHARE} + if strinstr "id45" "${vmgrid_rwshare}" ; then + id45part=$(grep " 45 " /etc/disk.partition | awk '{print $1}' | \ + cut -f 3,3 -d /) + if [ -n "${id45part}" ]; then + testmkd /mnt/media/${id45part}/vmgrid + mount --bind -n /mnt/media/${id45part}/vmgrid ${RWSHARE} \ + >>/tmp/vmgrid.log 2>&1 + fi + # mount nfs rw share + elif strinstr "nfs://" "${vmgrid_rwshare}" ; then + rwshareprot=$(uri_token ${vmgrid_rwshare} prot) + rwshareserv=$(uri_token ${vmgrid_rwshare} server) + rwsharepath="$(uri_token ${vmgrid_rwshare} path)" + if [ -n "${rwshareprot}" -a -n "${rwshareserv}" -a -n "${rwsharepath}" ]; + then + # mount to a dir fist to create spec host dir, then bind mount + testmkd ${RWSHAREMNT} + rwtarget=${RWSHAREMNT} + # mount the vmgrid source rw + fsmount ${rwshareprot} ${rwshareserv} ${rwsharepath} ${rwtarget} rw + # hostname? + host_name=${host_name:=$clientip} + testmkd ${RWSHAREMNT}/${host_name} + mount --bind ${RWSHAREMNT}/${host_name} ${RWSHARE} \ + >>/tmp/vmgrid.log 2>&1 + fi + else + testmkd /mnt/tmp/vmgrid + mount --bind -n /mnt/tmp/vmgrid ${RWSHARE} >>/tmp/vmgrid.log 2>&1 + fi + # chmod so that everybody can write + chmod 1777 ${RWSHARE} + echo "vmgrid_rwmnt=${RWSHARE#/mnt}" >> ${PLUGINCONFDIR}/vmgrid.conf + + # finished ... + [ $DEBUGLEVEL -gt 0 ] && echo "done with 'vmgrid' os-plugin ..." + fi +else + [ $DEBUGLEVEL -gt 0 ] && echo " * configuration of 'vmgrid' os-plugin failed" +fi diff --git a/os-plugins/plugins/vmgrid/files/run-vmgrid.sh b/os-plugins/plugins/vmgrid/files/run-vmgrid.sh new file mode 100644 index 00000000..1501749e --- /dev/null +++ b/os-plugins/plugins/vmgrid/files/run-vmgrid.sh @@ -0,0 +1,395 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Copyright (c) 2007..2010 - RZ Uni FR +# Copyright (c) 2007..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmgrid +# - This is the generic wrapper for the several virtualization solutions... +################################################################################ + +. /etc/opt/openslx/openslx.conf + +################################################################################ +### Define default dirs / get configs +################################################################################ + +PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins +PLUGINCONFVMGRID=${PLUGINCONFROOT}/vmgrid +RWSHARE=/var/opt/openslx/plugins/vmgrid/share +# include general configuration from vmgrid +[ -f ${PLUGINCONFVMGRID}/vmgrid.conf ] && \ + . ${PLUGINCONFVMGRID}/vmgrid.conf +# load general virtualization information +[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \ + . ${PLUGINCONFROOT}/virtualization/virtualization.conf +# get the vmchooser_active var +[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \ + . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf + +################################################################################ +### Functions used throughout the script +################################################################################ + +# function to write to stdout and logfile +LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-vmgrid.${USER}.$$.log +writelog () { + # write to stdout + echo -e "$1" + # log into file + echo -e "$1" >> ${LOGFILE} + # log into share dir, so that log is available in vm as well + echo -e "$1" >> ${vmgrid_rwmnt}/logs/run-vmgrid.${USER}.$$.log +} + +################################################################################ +### Get XML file and dir +################################################################################ + +# check if mem or graphical mode set +headless=1 +while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + echo -e "Usage: run-vmgrid.sh [-g] [--mem <memorysize in MB>] \c" + echo -e "[/path/]filename[.xml]" + exit + ;; + -g) + headless=0 + ;; + --mem) + # get a result which can be divided through 4 + forcemem=$2 + echo $2 | grep -q '[1-9][0-9]\{2,3\}$' && forcemem=$(expr $2 / 4 \* 4) + shift + ;; + *) + xmlfile=$@ + break + ;; + esac + shift +done + +# absolute or relative path? +if ls ${xmlfile} 2>/dev/null | grep '/' >/dev/null 2>&1; then + xmlpath=$(dirname ${xmlfile}) + xmlfile=$(basename ${xmlfile}) +else + xmlpath=${vmgrid_xmlpath} +fi +# full path +xmlfile="${xmlpath}/${xmlfile%.xml}.xml" + +################################################################################ +### Sanity checks +################################################################################ + +# test if the xml file is valid +if ! [ -r "${xmlfile}" ]; then + writelog "${xmlfile} not a readable XML file!" + run-vmgrid.sh -h & + exit 1 +fi + +# start to log, create shrare log dir +mkdir -m 1777 -p ${vmgrid_rwmnt}/logs +echo "Starting to log at $(date)" \ + >${vmgrid_rwmnt}/logs/run-vmgrid.${USER}.$$.log + +# test how many instances running +runningvms=$(ps aux | grep "run-vmgrid.sh " | grep -v grep | wc -l) +# 2 steps, /w only one is seems not to work +runningvms=$(expr ${runningvms} - 1) +# if Xen use different method +if [ "${vmgrid_virt}" = "xen" ]; then + runningvms=$(xm list 2>/dev/null | grep -vE "Domain-0|Name.*ID" | wc -l) + runningvms=$(expr ${runningvms} + 1) +fi +# check value +if [ ${runningvms} -le 0 ]; then + writelog "Error in value: Running VMs: ${runningvms}. Exit!" + exit 1 +fi +# check if vmchooser plugin installed +if [ -n "${vmchooser_active}" ] && [ ${runningvms} -gt 1 ]; then + # only allow one instance of vmgrid + writelog "Already 1 VMs running and vmchooser plugin is active." + writelog "Can't start ${xmlfile}, exiting!" + exit 1 +# else allow max. 4 instances +elif [ ${runningvms} -gt 4 ]; then + writelog "Already 4 VMs running, exiting!" + exit 1 +fi +VM_ID="0${runningvms}" + +# test if XML file +if ! grep '<?xml' "${xmlfile}" >/dev/null 2>&1; then + writelog \ + "Submitted configuration file ${xmlfile} seems to have wrong XML format" + exit 1 +fi + +################################################################################ +### Logo for console +################################################################################ + +cat <<EOL + __ __ + .----.--.--.-----.___.--.--.--------.-----.----.|__|.--| | + | _| | | |___| | | | _ | _|| || _ | + |__| |_____|__|__| \___/|__|__|__|___ |__| |__||_____| + |_____| + OpenSLX virtual machine environment preparation script ... + +EOL + +################################################################################ +### Read needed variables from XML file +################################################################################ + +writelog "Starting configuration..." +writelog "\tVM-ID:\t\t\t${VM_ID}" +writelog "\tLogfile:\t\t${OPENSLX_DEFAULT_LOGDIR}/run-vmgrid.${USER}.$$.log" +writelog "\t/tmp info:\t\t$(df -h | grep " /tmp$" | awk '{print $2}') \c" +writelog "$(grep "/tmp " /proc/mounts | awk '{print $1" "$2" "$3" "$4}')" +writelog "\tVM XML dir:\t\t$(dirname ${xmlfile})" + +if ! grep '<?xml' "${xmlfile}" >/dev/null 2>&1; then + writelog \ + "Submitted configuration file ${xmlfile} seems to have wrong XML format" + exit 1 +fi + +writelog "\tXML file:\t\t$xmlfile" +writelog "VM config:" + +# name of the virt image or dir +imgname=$(grep -io '<image_name param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }') + +# image mode +imgmode=$(grep -io '<image_mode param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }') + +# get boot attr +boot=$(grep -io 'boot param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }') +diskless=0 + +# special rw image +if [ "${imgmode}" = "rwimg" ]; then + # maybe you want to use an empty rw imgae? + # define only for writelog, will be set in the plugin include again! + vmpath="{special rw image}" + # add new path for rwimg + imgpath=${vmgrid_rwmnt}/specialrwimages + unset $imgname + mkdir -m 1777 -p ${imgpath} +# diskless boot +elif [ "${boot}" = "n" ] && [ -z "${imgname}" ]; then + diskless=1 + vmpath="{diskless boot}" +# imagename /w full path +elif echo ${imgname} 2>/dev/null | grep -q '^/' >/dev/null 2>&1; then + imgpath=$(dirname ${imgname}) + imgname=$(basename ${imgname}) + vmpath=${imgpath}/${imgname} +# get path from var +else + imgpath=${vmgrid_imgpath} + vmpath=${imgpath}/${imgname} +fi + +# check if virtual machine container file exists, only if not rwimg +if ! [ -e "${vmpath}" ] && [ "${imgmode}" != "rwimg" ] && [ ${diskless} -eq 0 ]; +then + writelog "Virtual machine image or directory ${vmpath} not found!" + exit 1 +fi + +# name of the virt machine, sed because of Windows formatting +vm_name=$(grep -o 'short_description param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') +# if ${vm_name} not defined use ${xmlfile} +vm_name=${vm_name:-${xmlfile%.xml}} + +# define vm_shortname since vm_name can be very long +vm_shortname=$(basename ${xmlfile%.xml} | sed -e "s, ,-,g") + +# vm_name = displayname, define for old scripts +displayname=${vm_name} + +[ "${imgmode}" != "rwimg" ] && [ ${diskless} -eq 0 ] \ + && writelog "\tVM Image dir:\t\t${imgpath}" +writelog "\tVM file/dir:\t\t$vmpath" + +# is there an additional configuration provided? +additional_config=$(grep -o 'additional_config param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') + +# image is for the following virtual machine +xmlvirt=$(grep -o 'virtualmachine param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') + +# make a guess from the filename extension if ${xmlvirt} is empty +# (not set within the XML file) +if [ -z "${xmlvirt}" ] && [ -n "${additional_config}" ]; then + writelog "No virtual machine parameter defined in ${xmlfile}" + writelog "Trying to guess VM...\c" + case "$(cat ${additional_config} | tr [A-Z] [a-z])" in + *config.version*|*virtualhw.version*|*independent-nonpersistent*|*vmdk*) + xmlvirt="vmware" + ;; + *innotek*|*virtualbox*) + xmlvirt="virtualbox" + ;; + *qemu*|*kvm*) + xmlvirt="qemukvm" + ;; + *) + xmlvirt="none" + ;; + esac +elif [ -z "${xmlvirt}" ]; then + case "$(echo ${imgname##*.} | tr [A-Z] [a-z])" in + vmdk) + xmlvirt="vmware" + ;; + vbox) + xmlvirt="virtualbox" + ;; + img|qcow*) + xmlvirt="qemukvm" + ;; + *) + xmlvirt="none" + ;; + esac + writelog "result:\t${xmlvirt}" +fi + +# check for virt +if [ "${vmgrid_virt}" != "${xmlvirt}" ]; then + writelog "The virtual machine specified in ${xmlfile}" + writelog "does not match the virtualization used here (${vmgrid_virt})" + exit 1 +fi + +# definition of the client system +vmostype=$(grep -io '<os param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }' \ + | tr [A-Z] [a-z]) + +# definition of the networking the client system is connected to +network_kind=$(grep -io 'network param=.*"' ${xmlfile} \ + | awk -F '"' '{ print $2 }' | tr [A-Z] [a-z]) +network_card=$(grep -io 'netcard param=.*"' ${xmlfile} \ + | awk -F '"' '{ print $2 }'| tr [A-Z] [a-z]) + +writelog "\tVirtualization:\t\t$xmlvirt" +writelog "\tVM name:\t\t$vm_name" +writelog "\tVM short name:\t\t$vm_shortname" + +############################################################################### +### Declaration of default variables +############################################################################### + +# TODO: cpu cores +#vmgrid::maxvcpus +#vmgrid::minvcpus +#cpu_cores="${cpu_cores}" + +# check for CPU virtualization flags +#vmgrid::hvm + +# total amount of memory defined in stage 3 +permem=60 +# get a result which can be divided through 4 +mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) +#vmgrid::maxram +#vmgrid::minram + +# configuring ethernet mac address: first 3 bytes are fixed (00:50:56) +# 4th byte is the VM-ID +# last two bytes are taken from the bridge of the host +# define one MAC per guest +macguestpart="00:50:56:${VM_ID}" +machostpart=$(echo ${machostaddr} | awk -F ":" '{print $(NF-1)":"$NF}') +macaddr=$(echo "${macguestpart}:${machostpart}" | tr [a-z] [A-Z]) + +# ide is expected default, test for the virtual disk image type should +# be done while creating the runscripts ... +# TODO: cdrom / floppy? +ide="TRUE" +scsi="FALSE" +hddrv="ide" + +# add rw share +sharepath="${vmgrid_rwmnt}/folders/${vm_shortname}" +mkdir -p ${sharepath} +chmod -f 1777 "${vmgrid_rwmnt}/folders" +sharename="share" + +# set hostname: using original hostname and adding string +hostname="vmgrid${VM_ID}-$(hostname)" + +writelog "\tVM Hostname:\t\t$hostname" + +################################################################################ +### Setup the rest of the environment and run the configured vm +################################################################################ + +# Copy guest configuration (with added information) config.xml to be accessed +# via virtual floppy +# TODO: virt-floppy needed? + +# Get all virtual machine specific stuff from the respective include file +# TODO: rename to run-vuirt.include +if [ -e ${PLUGINCONFROOT}/${vmgrid_virt}/run-virt.include ] ; then + writelog "Starting ${vmgrid_virt} specific part ..." + self=${vmgrid_virt} + . ${PLUGINCONFROOT}/${vmgrid_virt}/run-virt.include +else + writelog "Failed because of missing ${vmgrid_virt} plugin" + exit 1 +fi + +# start graphical mode +if [ ${headless} -eq 0 ]; then + if [ -z "${VIRTCMD}" ]; then + writelog "Grapical mode not available, exiting!" + exit 1 + fi + writelog "Starting ${vmgrid_virt} in graphical mode..." + ${VIRTCMD} ${VIRTCMDOPTS} 2>/dev/null +# start headless +elif [ -n "${VIRTCMDHL}" ]; then + writelog "Starting ${vmgrid_virt} in headless mode..." + ${VIRTCMDHL} ${VIRTCMDOPTSHL} 2>/dev/null +else + writelog "${vmgrid_virt}: No headless mode defined, exiting!" + exit 1 +fi + +# postrun for scripts after virtualization finishes +if [ -n "${POSTRUN}" ]; then + eval ${POSTRUN} >/dev/null 2>&1 +fi + +# remove config dirs when finished +if echo "${RMDIRS}" 2>/dev/null | grep -q ${vmgrid_virt}; then + writelog "${vmgrid_virt} exited. Cleanning up... \c" + rm -rf ${RMDIRS} >/dev/null 2>&1 + writelog "done" +fi + +echo -e "Bye." +exit 0 diff --git a/os-plugins/plugins/vmgrid/files/vmgrid b/os-plugins/plugins/vmgrid/files/vmgrid new file mode 100644 index 00000000..d8ccd938 --- /dev/null +++ b/os-plugins/plugins/vmgrid/files/vmgrid @@ -0,0 +1,143 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Copyright (c) 2007..2010 - RZ Uni FR +# Copyright (c) 2007..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# vmgrid +# - Script for autostarts defined in vmgrid::startvms +################################################################################ + +# include default directories +. /etc/opt/openslx/openslx.conf + +################################################################################ +### Manual Start +################################################################################ + +if [ -n "$1" ]; then + if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + echo -e "Usage: vmgrid [[-g] [--mem <memorysize in MB>] \c" + echo -e "[/path/]filename[.xml]]" + exit 0 + else + echo "Starting run-vmgrid.sh with options '$@'" + run-vmgrid.sh $@ 2>/dev/null + exit + fi +fi + +################################################################################ +### Define default dirs / get configs +################################################################################ + +PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins +PLUGINCONFDIR=${PLUGINCONFROOT}/vmgrid +RWSHARE=/var/opt/openslx/plugins/vmgrid/share +# include general configuration from vmgrid +[ -f ${PLUGINCONFDIR}/vmgrid.conf ] && \ + . ${PLUGINCONFDIR}/vmgrid.conf +# load general virtualization information +[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \ + . ${PLUGINCONFROOT}/virtualization/virtualization.conf + +################################################################################ +### Functions used throughout the script +################################################################################ + +# function to write to stdout and logfile +writelog () { + # write to stdout + echo -e "$1" + # log into file + echo -e "$1" >> ${OPENSLX_DEFAULT_LOGDIR}/run-vmgrid.${USER}.$$.log + # log into share dir, so that log is available in vm as well + echo -e "$1" >> ${vmgrid_rwmnt}/logs/run-vmgrid.${USER}.$$.log +} + +################################################################################ +### Configure VMs for autostart and set RAM +################################################################################ + +# start to log, create share log dir +mkdir -m 1777 -p ${vmgrid_rwmnt}/logs +mkdir -m 1777 -p /tmp/vmgrid +mkdir -p /tmp/vmgrid/${USER} +echo "Starting to log at $(date)" \ + >${vmgrid_rwmnt}/logs/run-vmgrid.${USER}.$$.log + +if [ -z "${hostratio}" ]; then + writelog "There has been an error in the memory configuration in stage 3" + writelog "Please check your memory ratio settings, exiting!" + exit 1 +fi + +# remove blanks +vmgrid_startvms=$(echo ${vmgrid_startvms} | sed -e "s, *,,g") +vmgrid_memratio=$(echo ${vmgrid_memratio} | sed -e "s, *,,g") + +# hostmem, mainvirt from virtualization plugin +# ratio minus other vms and host +restratio=$(expr 100 - ${hostratio} - ${mainvirtratio}) + +# hostmem, totalmem, mainvirtmem from virtualization plugin +# calculate freemem +freemem=$(expr ${totalmem} - ${hostmem} - ${mainvirtmem} 2>/dev/null) +if [ ${freemem} -lt 512 2>/dev/null ]; then + writelog "Not enough free RAM for this plugin, free: ${freemem} MB" + exit 1 +fi + +# get clients mem ratio +vmsumratios=0 +for i in {1..4}; do + vm[$i]=$(echo ${vmgrid_startvms} | awk -F ',' '{print $1}') + # remove ${vm[$i]} from list because of '{print $1}' + vmgrid_startvms=$(echo ${vmgrid_startvms} | sed -e "s,${vm[$i]}\,*,,") + vmratio[$i]=$(echo ${vmgrid_memratio} | awk -F ',' '{print $1}') + # remove ${vmratio[$i]} from list because of '{print $1}' + vmgrid_memratio=$(echo ${vmgrid_memratio} | sed -e "s/${vmratio[$i]},*//") + vmsumratios=$(expr ${vmsumratios} + ${vmratio[$i]} 2>/dev/null) +done + +for i in {1..4}; do + # calculate VMs mem: mem = $freemem * $vmratio/100 * 100/$restratio + # multiple of 4 + vmmem[$i]=$(expr ${freemem} \* ${vmratio[$i]} / ${restratio} / 4 \* 4 \ + 2>/dev/null) + if [ -n "${vm[$i]}" ] && [ ${vmmem[$i]} -lt 512 2>/dev/null ]; then + writelog "Not enough free RAM for ${vm[$i]} (min. 512 MB), \c" + writelog "free: ${vmmem[$i]} MB" + unset vm[$i] + fi +done + +################################################################################ +### Start the VMs +################################################################################ + +# start vms +for i in {1..4}; do + if [ -n "${vm[$i]}" ]; then + alreadyrunning=$(ps aux | grep run-vmgrid.sh | grep -v grep | \ + grep "${vm[$i]}" | wc -l) + if [ ${alreadyrunning} -gt 0 2>/dev/null ]; then + writelog "${vm[$i]} already running, skipping!" + else + writelog "Starting ${vm[$i]} via run-vmgrid.sh with ${vmmem[$i]} MB RAM" + run-vmgrid.sh --mem ${vmmem[$i]} ${vm[$i]} 2>/dev/null & + echo $! > /tmp/vmgrid/${USER}/vmgrid.pids + # wait 5 secs for the next vm to start + sleep 10 + fi + fi +done + +exit 0 diff --git a/os-plugins/plugins/vmgrid/init-hooks/80-after-plugins/virtualization.sh b/os-plugins/plugins/vmgrid/init-hooks/80-after-plugins/virtualization.sh new file mode 100644 index 00000000..400075cd --- /dev/null +++ b/os-plugins/plugins/vmgrid/init-hooks/80-after-plugins/virtualization.sh @@ -0,0 +1,135 @@ +# Copyright (c) 2008..2010 - RZ Uni Freiburg +# Copyright (c) 2008..2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# script is included from init via the "." load function - thus it has all +# variables and functions available + +# virtual virtualization plugin +# make sure that this file is the same in vmgrid and vmchooser plugin! + +# include default directories +. /etc/openslx.conf + +CONFFILEVMCHOOSER="/initramfs/plugin-conf/vmchooser.conf" +CONFFILEVMGRID="/initramfs/plugin-conf/vmgrid.conf" +PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualization + +# check if plugins available +active=0 +[ -f ${CONFFILEVMCHOOSER} ] && . ${CONFFILEVMCHOOSER} +[ ${vmchooser_active} -ne 0 ] && active=1 +[ -f ${CONFFILEVMGRID} ] && . ${CONFFILEVMGRID} +[ ${vmgrid_active} -ne 0 ] && active=1 + +[ $DEBUGLEVEL -gt 0 ] \ + && echo -e "Executing the virtual 'virtualization' plugin ... \c" + +if [ ${active} -ne 0 ] ; then + + # load general configuration + . /etc/initramfs-setup + # include functions + . /etc/functions + + testmkd ${PLUGINCONFDIR} + + # check if vmgrid active and change free mem + totalmem=$(expr $(grep -i "memtotal" /proc/meminfo \ + | awk '{print $2}') / 1024) + echo "totalmem=${totalmem}" >> ${PLUGINCONFDIR}/virtualization.conf + + if [ ${vmgrid_active} -ne 0 ]; then + + totalmemtest=$(expr $(echo ${vmgrid_memratio} \ + | awk -F ',' '{print $1" + "$2" + "$3" + "$4" + "$5" + "$6}')) + + # not more than 100% memory assigned + if [ ${totalmemtest} -le 100 2>/dev/null ]; then + + # host mem + hostratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $6}') + hostmem=$(expr ${totalmem} \* ${hostratio} / 100 2>/dev/null) + if [ ${hostmem} -lt 256 2>/dev/null ]; then + # min. 256 MB for host + hostmem=256 + fi + + # main vm mem (vmchooser) + if [ ${vmchooser_active} -ne 0 ]; then + mainvirtratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $5}') + mainvirtmem=$(expr ${totalmem} \* ${mainvirtratio} / 100 2>/dev/null) + if [ ${mainvirtmem} -lt 512 2>/dev/null ]; then + # min. 512 for vmchooser + mainvirtmem=512 + fi + else + mainvirtratio=0 + mainvirtmem=0 + fi + + cat << EOF >> ${PLUGINCONFDIR}/virtualization.conf +hostratio=${hostratio} +hostmem=${hostmem} +mainvirtratio=${mainvirtratio} +mainvirtmem=${mainvirtmem} +EOF + + fi + fi + + # cpu cores + CPU_CORES=$(grep 'processor.*:' /proc/cpuinfo | wc -l) + if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then + echo "cpu_cores=${CPU_CORES}" \ + >> ${PLUGINCONFDIR}/virtualization.conf + else + echo 'cpu_cores=1' >> ${PLUGINCONFDIR}/virtualization.conf + fi + + # arch + echo "host_arch=$(uname -m)" >> ${PLUGINCONFDIR}/virtualization.conf + + # VT enabled cpu? + if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf + echo 'kvm_module="kvm_intel"' >> ${PLUGINCONFDIR}/virtualization.conf + elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf + echo 'kvm_module="kvm_amd"' >> ${PLUGINCONFDIR}/virtualization.conf + else + echo "vtflag=0" >> ${PLUGINCONFDIR}/virtualization.conf + fi + + # write mac + echo "machostaddr=${macaddr}" >> ${PLUGINCONFDIR}/virtualization.conf + + # get further hw information + waitfor /etc/hwinfo.cdrom + j=0 + for i in $(cat /etc/hwinfo.cdrom); do + echo "cdrom_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf + j=$(expr $j + 1) + done + + waitfor /etc/hwinfo.floppy + j=0 + for i in $(cat /etc/hwinfo.floppy); do + echo "floppy_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf + j=$(expr $j + 1) + done + + # finished ... + [ $DEBUGLEVEL -gt 0 ] \ + && echo "ok" +else + [ $DEBUGLEVEL -gt 0 ] \ + && echo "failed" +fi diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm index 51361f31..d59227ad 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm @@ -44,190 +44,4 @@ sub initialize return 1; } -sub fillRunlevelScript -{ - my $self = shift; - my $location = shift; - my $kind = shift; - -# my $initfile = newInitFile(); -# $initfile->addFunction( -# 'load_modules', -# ' -# # to be filled in via the stage1 configuration script -# insmod /lib/modules/\$(uname -r)/misc/vmmon.ko || return 1 -# insmod /lib/modules/\$(uname -r)/misc/vmnet.ko || return 1 -# insmod /lib/modules/\$(uname -r)/misc/vmblock.ko 2>/dev/null || return 0 -# ' -# {param => "value"} -# ); -# -# $initfile->addFunctionCall( -# 'functionName', -# 'start', # name of block -# {priority => 5, } -# ); -# -# $initfile->addDaemon("/bin/mydaemon"); -# -# my $runlevelscript = getInitFileForDistro($initfile, "ubuntu"); - - my $script = unshiftHereDoc(<<" End-of-Here"); - #!/bin/sh - # completely generic start/stop script, generated via stage1 'vmware' plugin - # install - # inspiration taken from vmware start script: - # Copyright 1998-2007 VMware, Inc. All rights reserved. - # - # This script manages the services needed to run VMware software - - # Basic support for the Linux Standard Base Specification 1.3 - ### BEGIN INIT INFO - # Provides: VMware - # Required-Start: \$syslog - # Required-Stop: - # Default-Start: 2 3 5 - # Default-Stop: 0 6 - # Short-Description: Manages the services needed to run VMware software - # Description: Manages the services needed to run VMware software - ### END INIT INFO - load_modules() { - End-of-Here - - # Load modules - if ($kind eq 'local' || $kind eq 'local25') { - $script .= unshiftHereDoc(<<" End-of-Here"); - # to be filled in via the stage1 configuration script - insmod /lib/modules/\$(uname -r)/misc/vmmon.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmnet.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmblock.ko 2>/dev/null || return 0 - End-of-Here - } elsif ($kind eq 'vmpl1.0') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - End-of-Here - } elsif ($kind eq "vmpl2.0") { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } elsif ($kind eq 'vmpl2.5') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind} - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } - - # unload modules - $script .= unshiftHereDoc(<<" End-of-Here"); - } - - unload_modules() { - # to be filled with the proper list within via the stage1 - # configuration script - rmmod vmmon vmblock vmnet vmmon 2>/dev/null - - } - End-of-Here - - - # setup vmnet0 and vmnet8 - # depends on specific stage3 setting. I let this if in the code - # because else this whole if-reducing process will become more - # complicated and the code will get less understandable - $script .= unshiftHereDoc(<<" End-of-Here"); - # the bridged interface - setup_vmnet0() { - if [ -n "\$vmnet0" ] ; then - # the path might be directly point to the plugin dir - End-of-Here - if ($kind eq 'vmpl2.5' || $kind eq 'local25') { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0\n"; - } else { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0\n"; - } - $script .= unshiftHereDoc(<<" End-of-Here"); - fi - } - # we definately prefer the hostonly interface for NATed operation too - # distinction is made via enabled forwarding - setup_vmnet1() { - if [ -n "\$vmnet1" ] ; then - # the path might be directly point to the plugin dir - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ - /dev/vmnet1 vmnet1 - dhcpif="\$dhcpif vmnet1" - ip addr add \$vmnet1 dev vmnet1 - ip link set vmnet1 up - if [ -n "\$vmnet1nat" ] ; then - # needs refinement interface name for eth0 is known in stage3 already - echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null - echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null - #iptables -A -s vmnet1 -d eth0 - fi - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet1.conf -lf \\ - /var/run/vmware/dhcpd-vmnet1.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1 2>/dev/null # or logfile - fi - } - # incomplete ... - setup_vmnet8() { - if [ -n "\$vmnet8" ] ; then - #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \\ - /dev/vmnet8 vmnet8 - ip addr add \$vmnet8 dev vmnet8 - ip link set vmnet8 up - # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 - $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ - -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf 2>/dev/null # or logfile - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet8.conf -lf \\ - /var/run/vmware/dhcpd-vmnet8.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8 2>/dev/null # or logfile - fi - } - case \$1 in - start) - echo "Starting vmware background services ..." - # include default directories - . /etc/opt/openslx/openslx.conf - # load the configuration file - . \${OPENSLX_DEFAULT_CONFDIR}/plugins/vmware/vmware.conf - load_modules - setup_vmnet0 - setup_vmnet1 - setup_vmnet8 - ;; - stop) - # message output should match the given vendor-os - echo "Stopping vmware background services ..." - killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray vmnet-dhcpd 2>/dev/null - # wait for shutting down of interfaces... vmnet needs kinda - # long - sleep 1 - unload_modules - ;; - #status) - # echo "Say something useful here ..." - #;; - restart) - "\$0" stop - "\$0" start - ;; - esac - exit 0 - End-of-Here - return $script; -} - 1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm index 1c03540f..912bdfa0 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2007 - OpenSLX GmbH +# Copyright (c) 2007..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -25,6 +25,5 @@ use OpenSLX::Basics; ### interface methods ################################################################################ -# TODO: implement! 1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm index a57e5c8e..2e1197d8 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm @@ -25,178 +25,4 @@ use OpenSLX::Basics; ### interface methods ################################################################################ -sub fillRunlevelScript -{ - my $self = shift; - my $location = shift; - my $kind = shift; - - my $script = unshiftHereDoc(<<" End-of-Here"); - #!/sbin/runscript - # Gentoo compatible (hopefully) start/stop script, generated via stage1 'vmware' - # plugin installation - # - # inspiration taken from vmware start script: - # Copyright 1998-2007 VMware, Inc. All rights reserved. - # - # This script manages the services needed to run VMware software - - # dependency definitions - depend() { - # use syslog - # need ... - } - - # helper functions - load_modules() { - End-of-Here - - # load modules - if ($kind eq 'local' || $kind eq 'local25' || $kind eq 'local30') { - if ($kind eq 'local30') { - $script .= unshiftHereDoc(<<" End-of-Here"); - # vmplayer 3.0 specific stuff - insmod /lib/modules/\$(uname -r)/misc/vsock.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmci.ko || return 1 - End-of-Here - } - $script .= unshiftHereDoc(<<" End-of-Here"); - # to be filled in via the stage1 configuration script - insmod /lib/modules/\$(uname -r)/misc/vmmon.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmnet.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmblock.ko 2>/dev/null || return 0 - End-of-Here - } elsif ($kind eq 'vmpl1.0') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - End-of-Here - } elsif ($kind eq "vmpl2.0") { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } elsif ($kind eq 'vmpl2.5') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } elsif ($kind eq 'vmpl3.0') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - insmod \${module_src_path}/vsock.ko - insmod \${module_src_path}/vmci.ko - End-of-Here - } - - # unload modules - $script .= unshiftHereDoc(<<" End-of-Here"); - } - - unload_modules() { - # to be filled with the proper list within via the stage1 - # configuration script - rmmod vmmon vmblock vmnet vmmon vmci vsock 2>/dev/null - } - End-of-Here - - - - # setup vmnet0 and vmnet8 - # depends on specific stage3 setting. I let this if in the code - # because else this whole if-reducing process will become more - # complicated and the code will get less understandable - $script .= unshiftHereDoc(<<" End-of-Here"); - # the bridged interface - setup_vmnet0() { - if [ -n "\$vmnet0" ] ; then - # the path might be directly point to the plugin dir - End-of-Here - if ($kind eq 'vmpl2.5' || $kind eq 'vmpl3.0' || $kind eq 'local25' || $kind eq 'local30') { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0\n"; - } else { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0\n"; - } - $script .= unshiftHereDoc(<<" End-of-Here"); - fi - } - # we definately prefer the hostonly interface for NATed operation too - # distinction is made via enabled forwarding - setup_vmnet1() { - if [ -n "\$vmnet1" ] ; then - #test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 - # the path might be directly point to the plugin dir - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ - /dev/vmnet1 vmnet1 - dhcpif="\$dhcpif vmnet1" - ip addr add \$vmnet1 dev vmnet1 - ip link set vmnet1 up - if [ -n "\$vmnet1nat" ] ; then - # needs refinement interface name for eth0 is known in stage3 already - echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null - echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null - #iptables -A -s vmnet1 -d eth0 - fi - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet8.conf \\ - -lf /var/run/vmware/dhcpd-vmnet1.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1 2>/dev/null # or logfile - fi - } - # incomplete ... - setup_vmnet8() { - if [ -n "\$vmnet8" ] ; then - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \\ - /dev/vmnet8 vmnet8 - ip addr add \$vmnet8 dev vmnet8 - ip link set vmnet8 up - # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 - $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ - -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf 2>/dev/null # or logfile - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet8.conf \\ - -lf /var/run/vmware/dhcpd-vmnet8.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8 2>/dev/null # or logfile - fi - } - - # start/stop functions - start() { - ebegin "Starting vmware background services ..." - # include default directories - . /etc/opt/openslx/openslx.conf - # load the configuration file - . \${OPENSLX_DEFAULT_CONFDIR}/plugins/vmware/vmware.conf - load_modules || eerror "The loading of vmware modules failed" - setup_vmnet0 || eerror "Problems setting up vmnet0 interface" - setup_vmnet1 || eerror "Problems setting up vmnet1 interface" - setup_vmnet8 || eerror "Problems setting up vmnet8 interface" - eend $? - } - - stop() { - # message output should match the given vendor-os - ebegin "Stopping vmware background services ..." - killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray vmnet-dhcpd 2>/dev/null - # wait for shutting down of interfaces. vmnet needs kinda - # long - sleep 1 - unload_modules - eend $? - } - End-of-Here - return $script; -} - 1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm index 7d22c70d..c1b2ecf4 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2008 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -25,209 +25,4 @@ use OpenSLX::Utils; ### interface methods ################################################################################ -sub fillRunlevelScript -{ - my $self = shift; - my $location = shift; - my $kind = shift; - - my $script = unshiftHereDoc(<<" End-of-Here"); - #!/bin/sh - # SuSE compatible start/stop script, generated via stage1 'vmware' plugin - # installation - # - # inspiration taken from vmware start script: - # Copyright 1998-2007 VMware, Inc. All rights reserved. - # - # This script manages the services needed to run VMware software - - # Basic support for the Linux Standard Base Specification 1.3 - ### BEGIN INIT INFO - # Provides: VMware - # Required-Start: \$syslog - # Required-Stop: - # Default-Start: 2 3 5 - # Default-Stop: 0 6 - # Short-Description: Manages the services needed to run VMware software - # Description: Manages the services needed to run VMware software - ### END INIT INFO - - # helper functions - load_modules() { - End-of-Here - - # Load modules - if ($kind eq 'local' || $kind eq 'local25' || $kind eq 'local30') { - if ($kind eq 'local30') { - $script .= unshiftHereDoc(<<" End-of-Here"); - # vmplayer 3.0 specific stuff - insmod /lib/modules/\$(uname -r)/misc/vsock.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmci.ko || return 1 - End-of-Here - } - $script .= unshiftHereDoc(<<" End-of-Here"); - # to be filled in via the stage1 configuration script - insmod /lib/modules/\$(uname -r)/misc/vmmon.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmnet.ko || return 1 - insmod /lib/modules/\$(uname -r)/misc/vmblock.ko 2>/dev/null || return 0 - End-of-Here - } elsif ($kind eq 'vmpl1.0') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - End-of-Here - } elsif ($kind eq "vmpl2.0") { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } elsif ($kind eq 'vmpl2.5') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - End-of-Here - } elsif ($kind eq 'vmpl3.0') { - $script .= unshiftHereDoc(<<" End-of-Here"); - vmware_kind_path=/opt/openslx/plugin-repo/vmware/${kind}/ - module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmmon.ko - insmod \${module_src_path}/vmnet.ko - insmod \${module_src_path}/vmblock.ko - insmod \${module_src_path}/vsock.ko - insmod \${module_src_path}/vmci.ko - End-of-Here - } - - # unload modules - $script .= unshiftHereDoc(<<" End-of-Here"); - } - - unload_modules() { - # to be filled with the proper list within via the stage1 - # configuration script - rmmod vmmon vmblock vmnet vmmon vmci vsock 2>/dev/null - } - End-of-Here - - # setup vmnet0 and vmnet8 - # depends on specific stage3 setting. A complete rewrite would be - # needed (generation of proper runlevel scripts depending on distro - # and VMware version, see tickets #211, 290) - $script .= unshiftHereDoc(<<" End-of-Here"); - # the bridged interface - setup_vmnet0() { - if [ -n "\$vmnet0" ] ; then - # the path might be directly point to the plugin dir - End-of-Here - if ($kind eq 'vmpl2.5' || $kind eq 'vmpl3.0' || $kind eq 'local25' || $kind eq 'local30') { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0\n"; - } else { - $script .= " $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0\n"; - } - $script .= unshiftHereDoc(<<" End-of-Here"); - fi - } - # we definately prefer the hostonly interface for NATed operation too - # distinction is made via enabled forwarding - setup_vmnet1() { - if [ -n "\$vmnet1" ] ; then - # the path might be directly point to the plugin dir - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ - /dev/vmnet1 vmnet1 - dhcpif="\$dhcpif vmnet1" - ip addr add \$vmnet1 dev vmnet1 - ip link set vmnet1 up - if [ -n "\$vmnet1nat" ] ; then - # needs refinement interface name for eth0 is known in stage3 already - # available from \$nwif - echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null - echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null - #iptables -A -s vmnet1 -d eth0 - fi - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet1.conf \\ - -lf /var/run/vmware/dhcpd-vmnet1.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1 2>/dev/null # or logfile - fi - } - # incomplete ... - setup_vmnet8() { - if [ -n "\$vmnet8" ] ; then - # we don't need the following test. It's handled by - # XX_vmware.sh - #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 - $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \\ - /dev/vmnet8 vmnet8 - ip addr add \$vmnet8 dev vmnet8 - ip link set vmnet8 up - # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 - $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ - -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf 2>/dev/null # or logfile - $location/vmnet-dhcpd -cf /etc/vmware/dhcpd-vmnet8.conf \\ - -lf /var/run/vmware/dhcpd-vmnet8.leases \\ - -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8 2>/dev/null # or logfile - fi - } - # load the helper stuff - . /etc/rc.status - # reset the script status - rc_reset - - case \$1 in - start) - echo -n "Starting vmware background services ..." - # include default directories - . /etc/opt/openslx/openslx.conf - # load the configuration file - . \${OPENSLX_DEFAULT_CONFDIR}/plugins/vmware/vmware.conf - # hack to access the first serial/parallel port - chmod a+rw /dev/ttyS0 - chmod a+rw /dev/parport0 - load_modules - setup_vmnet0 - setup_vmnet1 - setup_vmnet8 - rc_status -v - ;; - stop) - # message output should match the given vendor-os - echo -n "Stopping vmware background services ..." - killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray vmnet-dhcpd 2>/dev/null - # wait for shutting down of interfaces. vmnet needs kinda - # long - sleep 1 - unload_modules - # workaround, because we can kill and unload more as we have - # started - rc_reset - rc_status -v - ;; - # we don't need a status yet... at least as long as it is - # unclear in which path the corresponding binary (see original - # /etc/init.d/vmware) is in our case - #status) - # echo -n "Say something useful here ..." - #;; - restart) - "\$0" stop - "\$0" start - ;; - *) - echo "Usage: `basename "\$0"` {start|stop|restart}" - exit 1 - ;; - esac - exit 0 - End-of-Here - return $script; -} - 1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm index d7ffc2e5..922fb34f 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2007 - OpenSLX GmbH +# Copyright (c) 2007..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING diff --git a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm index 1a4540f0..4ebaa2b6 100644 --- a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm +++ b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2008, 2009 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -23,6 +23,7 @@ use File::Path; use OpenSLX::Basics; use OpenSLX::Utils; +use OpenSLX::DistroUtils; sub new { @@ -131,12 +132,12 @@ sub getAttrInfo applies_to_clients => 1, description => unshiftHereDoc(<<' End-of-Here'), Which set of VMware binaries to use: installed (local) or provided by the - plugin itself (vmpl1.0, vmpl2.0, vmpl2.5)? + plugin itself (vmpl1.0, vmpl2.0, vmpl2.5, vmpl3.0)? End-of-Here # only allow the supported once... # TODO: modify if we know which of them work #content_regex => qr{^(local|vmws(5\.5|6.0)|vmpl(1\.0|2\.0))$}, - content_regex => qr{^(local|vmpl2\.0|vmpl1\.0|vmpl2\.5)$}, + content_regex => qr{^(local|vmpl3\.0||vmpl2\.0|vmpl1\.0|vmpl2\.5)$}, content_descr => 'Allowed values: local, vmpl2.0', #TODO: what if we don't have a local installation. default # is still local. Someone has a clue how to test @@ -255,7 +256,6 @@ sub preInstallationPhase() } } - sub installationPhase { my $self = shift; @@ -300,6 +300,7 @@ sub installationPhase if (-e "/usr/bin/vmware" && ! -e "/usr/bin/vmware.slx-bak") { rename("/usr/bin/vmware", "/usr/bin/vmware.slx-bak"); } + } sub removalPhase @@ -325,9 +326,7 @@ sub checkStage3AttrValues my $vendorOSAttrs = shift; my @problems; - my $vm_kind = $stage3Attrs->{'vmware::kind'} || ''; - - + my $vm_kind = $stage3Attrs->{'vmware::kind'} || ''; my $vmimg = $stage3Attrs->{'vmware::imagesrc'} || ''; if ($vm_kind eq 'local' && ! -x "/usr/lib/vmware/bin/vmplayer") { @@ -343,6 +342,13 @@ sub checkStage3AttrValues ); } + if ($vm_kind eq 'vmpl1.0' && + ! -d "/opt/openslx/plugin-repo/vmware/vmpl1.0/vmroot") { + push @problems, _tr( + "No OpenSLX installation of VMware Player 1 found or installation failed. Using it as virtual machine wouldn't work!" + ); + } + if ($vm_kind eq 'vmpl2.0' && ! -d "/opt/openslx/plugin-repo/vmware/vmpl2.0/vmroot") { push @problems, _tr( @@ -357,10 +363,10 @@ sub checkStage3AttrValues ); } - if ($vm_kind eq 'vmpl1.0' && - ! -d "/opt/openslx/plugin-repo/vmware/vmpl1.0/vmroot") { + if ($vm_kind eq 'vmpl3.0' && + ! -d "/opt/openslx/plugin-repo/vmware/vmpl3.0/vmroot") { push @problems, _tr( - "No OpenSLX installation of VMware Player 1 found or installation failed. Using it as virtual machine wouldn't work!" + "No OpenSLX installation of VMware Player 3 found or installation failed. Using it as virtual machine wouldn't work!" ); } @@ -374,21 +380,143 @@ sub checkStage3AttrValues ## local, non-general OpenSLX functions ####################################### -# write the runlevelscript depending on the version +# Write the runlevelscript +# usage: _writeRunlevelScript("$vmpath", "$kind") sub _writeRunlevelScript { my $self = shift; - my $location = shift; - my $file = shift; + my $vmpath = shift; my $kind = shift; - - # $location points to the path where vmware helpers are installed - # call the distrospecific fillup - # should use the abstract write runlevel script way, see - # http://lab.openslx.org/repositories/revision/openslx/2405 ff. - my $runlevelScript = $self->{distro}->fillRunlevelScript($location, $kind); + my $initfile = newInitFile(); + + my $script = ""; + my $modpath = ""; + my $modlist = ""; + # vmpath is to be redefined here ... + if ($kind =~ /local*/) { + $vmpath = ""; + $modpath = "/lib/modules/\$(uname -r)/misc"; + } elsif ($kind =~ /vmpl*/) { + $vmpath = "/opt/openslx/plugin-repo/vmware/${kind}"; + $modpath = "${vmpath}/vmroot/modules"; + } - spitFile($file, $runlevelScript); + $initfile->setName("vmware-slx"); + $initfile->setDesc("Setup environment for VMware Workstation or Player ($kind)."); + + # functions ... + $modlist = "vmnet vmmon"; + $script = unshiftHereDoc(<<" End-of-Here"); + # VMplayer common stuff + insmod ${modpath}/vmmon.ko || return 1 + insmod ${modpath}/vmnet.ko || return 1 + End-of-Here + if ($kind eq 'local30' || $kind eq 'vmpl3.0') { + $script .= unshiftHereDoc(<<" End-of-Here"); + # VMplayer 3.0 specific stuff + insmod ${modpath}/vmci.ko + insmod ${modpath}/vmblock.ko + insmod ${modpath}/vsock.ko + End-of-Here + $modlist .= "vsock vmci vmblock"; + } elsif ($kind eq 'local20' || $kind eq 'local25' || $kind eq 'vmpl2.0' || $kind eq 'vmpl2.5') { + $script .= unshiftHereDoc(<<" End-of-Here"); + # VMplayer 2.X specific stuff + insmod ${modpath}/vmblock.ko + End-of-Here + $modlist .= "vmblock"; + } + $initfile->addFunction( + "load_modules", + "$script" + ); + $initfile->addFunction( + "unload_modules", + "rmmod $modlist 2>/dev/null" + ); + # vmnet0,1,8 (bridge, nat, host-only) interface definition + $script = unshiftHereDoc(<<" End-of-Here"); + # let point the path directly to the directory where the binary lives + location="$vmpath/usr/bin" + if [ -n "\$vmnet0" ] ; then + # the path might be directly point to the plugin dir + End-of-Here + if ($kind eq 'vmpl1.0' || $kind eq 'vmpl2.0' || $kind eq 'local10' || $kind eq 'local20') { + $script .= " \$location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0\n"; + } else { + $script .= " \$location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0\n"; + } + $script .= unshiftHereDoc(<<" End-of-Here"); + fi + if [ -n "\$vmnet1" ] ; then + \$location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ + /dev/vmnet1 vmnet1 + ip addr add \$vmnet1 dev vmnet1 + ip link set vmnet1 up + if [ -n "\$vmnet1nat" ] ; then + echo "1" >/proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null + echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null + #iptables -A -s vmnet1 -d br0 + fi + /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \\ + -S /etc/vmware/udhcpd/udhcpd-vmnet1.conf + fi + if [ -n "\$vmnet8" ] ; then + \$location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \\ + /dev/vmnet8 vmnet8 + ip addr add \$vmnet8 dev vmnet8 + ip link set vmnet8 up + echo "1" >/proc/sys/net/ipv4/conf/vmnet8/forwarding 2>/dev/null + echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null + iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE + /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \\ + -S /etc/vmware/udhcpd/udhcpd-vmnet8.conf + fi + End-of-Here + $initfile->addFunction( + "vmnetif", + "$script" + ); + $script = unshiftHereDoc(<<" End-of-Here"); + # include default directories + . /etc/opt/openslx/openslx.conf + # load the configuration file + . \${OPENSLX_DEFAULT_CONFDIR}/plugins/vmware/vmware.conf + # hack to access the first serial/parallel port + chmod a+rw /dev/ttyS0 + chmod a+rw /dev/parport0 + load_modules + vmnetif + End-of-Here + $initfile->addToCase( + "start", + "$script" + ); + $script = unshiftHereDoc(<<" End-of-Here"); + killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ + vmware-tray vmnet-dhcpd 2>/dev/null + # might take a while until all services are shut down + sleep 1 + unload_modules + End-of-Here + $initfile->addToCase( + "stop", + "$script" + ); + $initfile->addToCase( + "status", + "vmstatus" + ); + $initfile->addToCase( + "restart", + "\$0 stop && \$0 start" + ); + + my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; + my $runlevelscript = getInitFileForDistro($initfile, $distro); + # todo: because we dont have distribution or version dependend + # init scripts we could put it directly into /etc/init.d... + spitFile("$self->{'pluginRepositoryPath'}/vmware-slx", $runlevelscript); } @@ -523,12 +651,6 @@ sub _localInstallation my $vmversion = ""; my $vmbuildversion = ""; - my $pluginFilesPath - = "$self->{'openslxBasePath'}/lib/plugins/$self->{'name'}/files"; - my $installationPath = "$self->{'pluginRepositoryPath'}/$kind"; - - mkpath($installationPath); - # if vmware ws is installed, vmplayer is installed, too. # we will only use vmplayer if (-e "/usr/lib/vmware/bin/vmplayer") { @@ -538,37 +660,43 @@ sub _localInstallation $vmversion = $versionhash{vmversion}; $vmbuildversion = $versionhash{vmbuildversion}; - ## Copy needed files - my @files = qw(nvram); - foreach my $file (@files) { - copyFile("$pluginFilesPath/$file", "$installationPath"); + # set version information + # VMplayer 2.0 + if ($vmversion eq "2.0" || $vmversion eq "6.0") { + $kind="local20"; + # VMplayer 2.5 + } elsif ($vmversion eq "2.5" || $vmversion eq "6.5") { + $kind="local25"; + # VMplayer 3.0, Workstation 7.0 + } elsif ($vmversion eq "3.0" || $vmversion eq "7.0") { + $kind="local30"; } + # Create runlevel script depending on detected version + $self->_writeRunlevelScript("$vmpath", "$kind"); - # Create runlevel script -> to be fixed!! - my $runlevelScript = "$self->{'pluginRepositoryPath'}/$kind/vmware.init"; - if ($vmversion eq "2.5") { - $self->_writeRunlevelScript($vmbin, $runlevelScript, "local25"); - } elsif ($vmversion eq "3.0") { - $self->_writeRunlevelScript($vmbin, $runlevelScript, "local30"); - } else { - $self->_writeRunlevelScript($vmbin, $runlevelScript, $kind); + # Create wrapper scripts, kind of localNN is set to local + if ( $kind =~ /local*/ ) { $kind = "local"; } + if (-e "/usr/lib/vmware/bin/vmware") { + $self->_writeWrapperScript("$vmpath", "$kind", "ws"); + } + if (-e "/usr/lib/vmware/bin/vmplayer") { + $self->_writeWrapperScript("$vmpath", "$kind", "player"); } - # Create wrapper scripts - if (-e "/usr/bin/vmware") { - $self->_writeWrapperScript("$vmpath", "$kind", "ws") - } else { - $self->_writeWrapperScript("$vmpath", "$kind", "player") + # copy nvram file + my $pluginFilesPath + = "$self->{'openslxBasePath'}/lib/plugins/$self->{'name'}/files"; + my @files = qw(nvram); + foreach my $file (@files) { + copyFile("$pluginFilesPath/$file", "$self->{'pluginRepositoryPath'}/$kind"); } - } - # else { TODO: errorhandling } - - ## Creating needed config /etc/vmware/config + } # else { TODO: errorhandling if file or string doesn't exist } + + ## creating needed config /etc/vmware/config $self->_writeVmwareConfigs("$kind", "$vmpath"); } - sub _vmpl2Installation { my $self = shift; @@ -595,8 +723,7 @@ sub _vmpl2Installation { system("/bin/sh /opt/openslx/plugin-repo/$self->{'name'}/$kind/install-vmpl.sh $kind"); # Create runlevel script - my $runlevelScript = "$self->{'pluginRepositoryPath'}/$kind/vmware.init"; - $self->_writeRunlevelScript($vmbin, $runlevelScript, $kind); + $self->_writeRunlevelScript($vmpath, $kind); # Create wrapperscripts $self->_writeWrapperScript("$vmpath", "$kind", "player"); @@ -631,8 +758,7 @@ sub _vmpl25Installation { system("/bin/sh /opt/openslx/plugin-repo/$self->{'name'}/$kind/install-vmpl.sh $kind"); # Create runlevel script - my $runlevelScript = "$self->{'pluginRepositoryPath'}/$kind/vmware.init"; - $self->_writeRunlevelScript($vmbin, $runlevelScript, $kind); + $self->_writeRunlevelScript($vmpath, $kind); # Create wrapperscripts $self->_writeWrapperScript("$vmpath", "$kind", "player"); @@ -667,8 +793,7 @@ sub _vmpl1Installation { system("/bin/sh /opt/openslx/plugin-repo/$self->{'name'}/$kind/install-vmpl.sh $kind"); # Create runlevel script - my $runlevelScript = "$self->{'pluginRepositoryPath'}/$kind/vmware.init"; - $self->_writeRunlevelScript($vmbin, $runlevelScript, $kind); + $self->_writeRunlevelScript($vmpath, $kind); # create wrapper scripts $self->_writeWrapperScript("$vmpath", "$kind", "player"); diff --git a/os-plugins/plugins/vmware/XX_vmware.sh b/os-plugins/plugins/vmware/XX_vmware.sh index b31df648..116561f6 100644 --- a/os-plugins/plugins/vmware/XX_vmware.sh +++ b/os-plugins/plugins/vmware/XX_vmware.sh @@ -12,6 +12,10 @@ # script is included from init via the "." load function - thus it has all # variables and functions available +# TODO: +# configs nach /etc/opt/openslx/plugins/vmware +# cp nach run-virt.include + # TODO: nvram,functions # write /etc/vmware/config (if a non-standard location of vmware basedir is # to be configured), /etc/init.d/vmware @@ -43,6 +47,7 @@ if [ -e /initramfs/plugin-conf/vmware.conf ]; then testmkd /dev/shm/vmware 1777 testmkd /mnt/var/run/vmware 1777 testmkd ${PLUGINCONFDIR} + testmkd /mnt/etc/vmware/udhcpd # write the ${PLUGINCONFDIR}/vmware.conf file # check for the several variables and write the several files: @@ -55,27 +60,9 @@ stage3 setup" > ${PLUGINCONFDIR}/vmware.conf if [ "$vmware_bridge" = 1 ] ; then echo "vmnet0=true" >> ${PLUGINCONFDIR}/vmware.conf fi - # write the common dhcpd.conf header for vmnet1,8 - if [ -n "$vmware_vmnet1" -o -n "$vmware_vmnet8" ] ; then - # use the dns servers known to the vmware host - local dnslist=$(echo "$domain_name_servers"|sed "s/ /,/g") - echo "# Common dhcpd.conf header written in stage3 ..." \ - > /mnt/etc/vmware/dhcpd-head.conf - echo "allow unknown-clients;" \ - >> /mnt/etc/vmware/dhcpd-head.conf - echo "default-lease-time 1800;" \ - >> /mnt/etc/vmware/dhcpd-head.conf - echo "max-lease-time 7200;" \ - >> /mnt/etc/vmware/dhcpd-head.conf - echo "option domain-name-servers $dnslist;" \ - >> /mnt/etc/vmware/dhcpd-head.conf - echo "option domain-name \"vm.local\";" \ - >> /mnt/etc/vmware/dhcpd-head.conf - fi # variable might contain ",NAT" which is to be taken off if [ -n "$vmware_vmnet1" ] ; then - cp /mnt/etc/vmware/dhcpd-head.conf /mnt/etc/vmware/dhcpd-vmnet1.conf local vmnet1=${vmware_vmnet1%,*} # x.x.x.x/yy,NAT => 'x.x.x.x/yy' local vmnat=${vmware_vmnet1#$vmnet1*} # x.x.x.x/yy,NAT => ',NAT' local vmip=${vmnet1%/*} # x.x.x.x/yy => 'x.x.x.x'"> @@ -83,26 +70,15 @@ stage3 setup" > ${PLUGINCONFDIR}/vmware.conf local vmsub=$(echo $vmip |sed 's,\(.*\)\..*,\1,') # x.x.x.x => x.x.x echo -e "vmnet1=$vmnet1" >> ${PLUGINCONFDIR}/vmware.conf [ -n "$vmnat" ] && echo "vmnet1nat=true" >> ${PLUGINCONFDIR}/vmware.conf - echo -e "\n# definition for virtual vmnet1 interface" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - echo -e "subnet $(ipcalc -n $vmnet1|sed s/.*=//) netmask \ -$(ipcalc -m $vmnet1|sed s/.*=//) {" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - echo -e "\trange ${vmsub}.10 ${vmsub}.20;" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - echo -e "\toption broadcast-address $(ipcalc -b $vmnet1|sed s/.*=//);" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - # Maybe a different ip is needed s. nat: vmnet="${vmsub}.2" - echo -e "\toption routers $vmip;" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - echo -e "}" \ - >> /mnt/etc/vmware/dhcpd-vmnet1.conf - mknod /dev/vmnet1 c 119 1 + # setting up the udhcpd configuration + sed -e "s,NWIF,vmnet1,;s,/misc/,/vmware/," \ + -e "s,CNETWORK,$vmsub,;s,PIDFILE,/var/run/vmware/udhcpd-vmnet1.pid," \ + -e "s,LEASEFILE,/var/run/vmware/udhcpd-vmnet1.leases," \ + /mnt/etc/opt/openslx/udhcpd.conf >/mnt/etc/vmware/udhcpd/udhcpd-vmnet1.conf fi # vmware nat interface configuration if [ -n "$vmware_vmnet8" ] ; then - cp /mnt/etc/vmware/dhcpd-head.conf /mnt/etc/vmware/dhcpd-vmnet8.conf local vmnet8ip=${vmware_vmnet8%/*} local vmpx=${vmware_vmnet8#*/} local vmsub=$(echo $vmnet8ip |sed 's,\(.*\)\..*,\1,') # x.x.x.x => x.x.x"> @@ -111,19 +87,12 @@ $(ipcalc -m $vmnet1|sed s/.*=//) {" \ local vmip="${vmsub}.1" local vmnet="${vmsub}.2" echo -e "vmnet8=$vmip/$vmpx" >>${PLUGINCONFDIR}/vmware.conf - echo -e "\n# definition for virtual vmnet8 interface" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf - echo -e "subnet $(ipcalc -n $vmip/$vmpx|sed s/.*=//) netmask \ -$(ipcalc -m $vmip/$vmpx|sed s/.*=//) {" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf - echo -e "\trange ${vmsub}.10 ${vmsub}.20;" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf - echo -e "\toption broadcast-address $(ipcalc -b $vmip/$vmpx|sed s/.*=//);" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf - echo -e "\toption routers $vmnet;" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf - echo -e "}" \ - >> /mnt/etc/vmware/dhcpd-vmnet8.conf + # setting up the udhcpd configuration + sed -e "s,NWIF,vmnet8,;s,/misc/,/vmware/," \ + -e "s,CNETWORK,$vmsub,;s,PIDFILE,/var/run/vmware/udhcpd-vmnet8.pid," \ + -e "s,LEASEFILE,/var/run/vmware/udhcpd-vmnet8.leases," \ + /mnt/etc/opt/openslx/udhcpd.conf >/mnt/etc/vmware/udhcpd/udhcpd-vmnet8.conf + # might be not needed any more ... echo -e "# Linux NAT configuration file" \ > /mnt/etc/vmware/nat.conf echo -e "[host]" \ @@ -143,11 +112,9 @@ $(ipcalc -m $vmip/$vmpx|sed s/.*=//) {" \ echo -e "[incomingudp]" \ >> /mnt/etc/vmware/nat.conf echo "00:50:56:F1:30:50" > /mnt/etc/vmware/vmnet-natd-8.mac - mknod /dev/vmnet8 c 119 8 fi # copy the runlevel script to the proper place and activate it - sed "s/eth0/$nwif/g" ${PLUGINDIR}/${vmware_kind}/vmware.init \ - > /mnt/etc/init.d/vmware-env \ + sed "s/eth0/$nwif/g" ${PLUGINDIR}/vmware-slx > /mnt/etc/init.d/vmware-env \ || echo " * Error copying runlevel script. Shouldn't happen." chmod a+x /mnt/etc/init.d/vmware-env rllinker "vmware-env" 20 2 @@ -174,16 +141,16 @@ ${vmware_imagesrc}." nonfatal ############################################################################ # vmware stuff second part: setting up the environment - # make vmware dhcpd more silent - touch /mnt/var/run/vmware/dhcpd-vmnet1.leases \ - /mnt/var/run/vmware/dhcpd-vmnet8.leases + # make udhcpd more silent + touch /mnt/var/run/vmware/udhcpd-vmnet1.leases \ + /mnt/var/run/vmware/udhcpd-vmnet8.leases # create the needed devices which effects all vmware options # they are not created automatically via module load - for i in "/dev/vmnet0 c 119 0" "/dev/vmmon c 10 165"; do + for i in "/dev/vmnet0 c 119 0" "/dev/vmnet1 c 119 1" \ + "/dev/vmnet8 c 119 8" "/dev/vmmon c 10 165"; do mknod $i done - chmod 0700 /dev/vmnet* echo -e "usbfs\t\t/proc/bus/usb\tusbfs\t\tauto\t\t 0 0" >> /mnt/etc/fstab @@ -196,9 +163,8 @@ ${vmware_imagesrc}." nonfatal prefvmx.useRecommendedLockedMemSize = "TRUE"' | sed -e "s/^ *//" \ >/mnt/etc/vmware/config - # copy version depending files - the vmchooser expects for every virtua- - # lization plugin a file named after it (here run-vmware.include) - cp ${PLUGINDIR}/run-virt.include ${PLUGINCONFDIR}/run-vmware.include + # copy virtualization include files to config dir + cp ${PLUGINDIR}/run-virt.include ${PLUGINCONFDIR} # copy version depending files cp ${PLUGINDIR}/${vmware_kind}/vmplayer ${BINDIR}/vmplayer if [ -e ${PLUGINDIR}/${vmware_kind}/vmware ]; then diff --git a/os-plugins/plugins/vmware/files/run-virt.include b/os-plugins/plugins/vmware/files/run-virt.include index 6641d491..8b91275a 100644 --- a/os-plugins/plugins/vmware/files/run-virt.include +++ b/os-plugins/plugins/vmware/files/run-virt.include @@ -1,7 +1,7 @@ # run-virt.include # ----------------------------------------------------------------------------- -# Copyright (c) 2009 - RZ Uni Freiburg -# Copyright (c) 2009 - OpenSLX GmbH +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -13,7 +13,7 @@ # ----------------------------------------------------------------------------- # run-virt.include # - component for vmware/player of the vmchooser plugin run-virt.sh -# ----------------------------------------------------------------------------- +################################################################################ # configuration writer functions ################################################################################ @@ -42,7 +42,7 @@ sharedFolder.option = \"alwaysEnabled\"" >>${conffile} esac case "$vmversion" in 2.5|3.*|6.5|7.*) - if [ "${cpu_cores}" -ge "2" 2>/dev/null]; then + if [ "${cpu_cores}" -ge "2" 2>/dev/null ]; then numvcpus="2" fi cap3d="TRUE" # helper var for loging output @@ -140,8 +140,8 @@ usb.generic.autoconnect = \"TRUE\" sharedFolder0.present = \"TRUE\" sharedFolder0.enabled = \"${shared_folder}\" sharedFolder0.expiration = \"never\" -sharedFolder0.guestName = \"Home\" -sharedFolder0.hostPath = \"${HOME}\" +sharedFolder0.guestName = \"${sharename}\" +sharedFolder0.hostPath = \"${sharepath}\" sharedFolder0.readAccess = \"TRUE\" sharedFolder0.writeAccess = \"TRUE\" sharedFolder.maxNum = \"1\" @@ -300,30 +300,41 @@ case "$parallel" in ;; esac -# percentage of memory to use for vmwares in standard case -permem=30 -if [ "${totalmem}" -ge "1600" ]; then - permem=40 -fi -# check if /tmp is on harddisk -if grep -qe "/dev/.* /tmp " /proc/mounts ; then - permem=60 - id44="1" - # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well - # (40% vmware | 40% confdir(vmem...) | 20% host - # VMplayer 2+ issue +# adjust memory available for vmware guests +if [ -n "${forcemem}" ]; then + mem="${forcemem}" +else + case "$vmversion" in + 2.*) + permem=30 + ;; + 3.*) + permem=25 + ;; + esac if [ "${totalmem}" -ge "2500" ]; then permem=40 - confdir=/dev/shm/vmware/$USER - conffile=${confdir}/run-vmware.conf - mkdir -p /dev/shm/vmware/$USER fi -fi -mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) -if [ "${id44}" = "1" ]; then - memhost=$(expr ${totalmem} - ${mem}) -else - memhost=$(expr ${totalmem} - ${mem} - ${mem}) + # check if /tmp is on harddisk + if grep -qe "/dev/.* /tmp " /proc/mounts ; then + permem=60 + id44="1" + # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well + # (40% vmware | 40% confdir(vmem...) | 20% host + # VMplayer 2+ issue + if [ "${totalmem}" -ge "2500" ]; then + permem=40 + confdir=/dev/shm/vmware/$USER + conffile=${confdir}/run-vmware.conf + mkdir -p /dev/shm/vmware/$USER + fi + fi + mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) + if [ "${id44}" = "1" ]; then + hostmem=$(expr ${totalmem} - ${mem}) + else + hostmem=$(expr ${totalmem} - ${mem} - ${mem}) + fi fi # check if ide/scsi and hwver of image @@ -390,8 +401,8 @@ writelog "# File created by $0 (VMversion ${vmversion})\n# on $(date)\n" writelog "Starting with non-persistent mode ...\n" # check memory range -if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then - writelog "\tMemory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" +if [ "${mem}" -lt "256" ] || [ "${hostmem}" -lt "256" ]; then + writelog "\tMemory out of range: ${mem} MB (guest) / ${hostmem} MB (host)!" writelog "\tMin. 256 MB for host and guest!" exit 1 fi @@ -413,7 +424,8 @@ if [ -n "${network_card}" ]; then writelog "\tNet Adaptor:\t${network_card}" fi writelog "\tMem:\t\t${mem} MB" -writelog "\tHostmem:\t${memhost} MB" +# echo nur wenn hostmem gesetzt +[ -n "${hostmem}" ] && writelog "\tHostmem:\t${hostmem} MB" writelog "\tMax. res.:\t${xres}x${yres}" writelog "\tCD-ROM1:\t${cdrom0}" writelog "\tCD-ROM2:\t${cdrom1}" @@ -443,6 +455,6 @@ writelog "" # finally set env for run-virt.sh ################################################################################ -VIRTCMD=vmplayer +# using the modified version of the wrapper script +VIRTCMD="${OPENSLX_DEFAULT_BINDIR}/vmplayer" VIRTCMDOPTS="${vmopt} ${conffile}" - diff --git a/os-plugins/plugins/vmware/init-hooks/20-nw-bridge-config/bridge.sh b/os-plugins/plugins/vmware/init-hooks/20-nw-bridge-config/bridge.sh index 6aabe8ad..07113867 100755 --- a/os-plugins/plugins/vmware/init-hooks/20-nw-bridge-config/bridge.sh +++ b/os-plugins/plugins/vmware/init-hooks/20-nw-bridge-config/bridge.sh @@ -1,5 +1,5 @@ #!/bin/ash -# Copyright (c) 2009 - OpenSLX GmbH +# Copyright (c) 2009..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING diff --git a/os-plugins/plugins/vmware/init-hooks/60-have-servconfig/vm-dhcpd.sh b/os-plugins/plugins/vmware/init-hooks/60-have-servconfig/vm-dhcpd.sh new file mode 100755 index 00000000..6bdfb8f1 --- /dev/null +++ b/os-plugins/plugins/vmware/init-hooks/60-have-servconfig/vm-dhcpd.sh @@ -0,0 +1,56 @@ +#!/bin/ash +# Copyright (c) 2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Init hook to create a bridge on the active network interface +# (should be kept identical to the files of virtualbox and qemukvm plugins) +############################################################################# + +# configuring dhcpd stub for virtual networks +testmkd /mnt/etc/opt/openslx +echo " +# general udhcpd configuration file for virtual machines written by +# $0 during OpenSLX stage3 configuration + +# start and end of the IP lease block +start CNETWORK.20 +end CNETWORK.100 + +# interface that udhcpd will use +interface NWIF + +# how long an offered address is reserved (leased) in seconds +offer_time 6000 + +# location of the leases file +lease_file LEASEFILE + +# location of the pid file +pidfile PIDFILE + +opt dns ${domain_name_servers} +option subnet 255.255.255.0 +opt router CNETWORK.254 +opt wins CNETWORK.10 +option domain virtual.site ${domain_name} + +# additional options known to udhcpd +#subnet #timezone +#router #timesvr +#namesvr #dns +#logsvr #cookiesvr +#lprsvr #bootsize +#domain #swapsvr +#rootpath #ipttl +#mtu #broadcast +#wins #lease +#ntpsrv #tftp +#bootfile +" >/mnt/etc/opt/openslx/udhcpd.conf diff --git a/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm b/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm index 5e500b49..8af752b4 100644 --- a/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm +++ b/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm @@ -59,24 +59,126 @@ sub getAttrInfo End-of-Here content_regex => qr{^(0|1)$}, content_descr => '1 means active - 0 means inactive', - default => '1', + # set active to 0, later set specially created Xen system to 1 + default => '0', + }, + # attribute 'imagesrc' defines where we can find xen images + 'xen::imagesrc' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + Where do we store our xen images? NFS? Filesystem? + End-of-Here + content_regex => qr{^(/|nfs://)}, + content_descr => 'local path or URI or "-" (unset)', + default => undef, + }, + # attribute 'tftpdir' defines TFTP dir for network boots /w NAT + 'xen::tftpdir' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + Do you want to define a stage 4 TFTP dir for netwoork boots? + Needed to boot Xen via NFS, we only need the initramfs + Hint: Mount your TFTP ro via NFS to a local dir + End-of-Here + content_regex => qr{^(/)}, + content_descr => 'local path or "-" (unset)', + default => undef, }, }; } +sub installationPhase +{ + my $self = shift; + my $info = shift; + + $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'}; + $self->{openslxBasePath} = $info->{'openslx-base-path'}; + + # Copy run-virt.include and template files to the appropriate place for + # inclusion in stage4 + my $pluginName = $self->{'name'}; + my $pluginBasePath = + "$self->{openslxBasePath}/lib/plugins/$pluginName/files"; + + foreach my $file ( qw( run-virt.include machine.include hvm.include ) ) { + copyFile("$pluginBasePath/$file", "$self->{pluginRepositoryPath}/"); + chmod 0644, "$self->{pluginRepositoryPath}/$file"; + } + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + sub suggestAdditionalKernelModules { my $self = shift; my $makeInitRamFSEngine = shift; my @suggestedModules; - - # Xen needs bridge module and for SUSE 10.2 netloop other OS: to be checked - if ($makeInitRamFSEngine->{'distro-name'} =~ m{^suse}i) { - push @suggestedModules, qw( bridge netloop ) - } - + + # Xen needs bridge module, for guests xennet and maybe xenblk + # earlier versions needed netloop + push @suggestedModules, qw( bridge xennet xenblk ); + return @suggestedModules; } +#sub _xenLabel +#{ +# # set label for each Xen system +# foreach my $info (@$systemInfos) { +# if ($info->{xen::active} eq 1) { +# my $label = $info->{label} || ''; +# if (!length($label) || $label eq $info->{name}) { +# if ($info->{name} =~ m{^(.+)::(.+)$}) { +# my $system = $1; +# my $exportType = $2; +# $label = $system . "-xen" . ' ' x (36-length($system)) +# . $exportType; +# } else { +# $label = $info->{name}; +# } +# } +# } +# $info->{pxeLabel} = $label; +# } +# return $info; #??? +#} + +#sub _xenBootEntry +#{ +# # Xen entries look different +# # Example: +# # KERNEL mboot.c32 vendor-os/xen.gz dom0_mem=128000 --- +# # vendor-os/vmlinuz-xen debug=3 --- vendor-os/initramfs-1 +# # TODO: versionsort oder per attr? +# if ($info->{xen::active} eq 1) { +# my $xenKernel = slxsystem(ls /boot/xen* | sort | tail -n 1); +# $append .= " file=$bootURI" if length($bootURI); +# $append .= " file=$tftpPrefix" if length($tftpPrefix); +# $append .= " $clientAppend"; +# $append .= " --- $pxePrefix$vendorOSName/$info->{'initramfs-name'}"; +# $slxLabels .= "LABEL openslx-$info->{'external-id'}-xen\n"; +# # $slxLabels .= $pxeDefault; +# $slxLabels .= "\tMENU LABEL ^$info->{pxeLabel}\n"; +# $slxLabels .= "\tKERNEL mboot.c32\n"; +# $slxLabels .= "\tAPPEND $pxePrefix$vendorOSName/$xenKernel"; +# # $slxLabels .= " dom0_mem=128000"; +# $slxLabels .= " --- $pxePrefix$vendorOSName/$kernelName"; +# $slxLabels .= " --- $append\n"; +# $slxLabels .= "\tIPAPPEND 3\n"; +# } +# return $slxLabels; +#} + 1; diff --git a/os-plugins/plugins/xen/XX_xen.sh b/os-plugins/plugins/xen/XX_xen.sh index ba2c4f00..af3f6cc4 100644 --- a/os-plugins/plugins/xen/XX_xen.sh +++ b/os-plugins/plugins/xen/XX_xen.sh @@ -14,16 +14,60 @@ # script is included from init via the "." load function - thus it has all # variables and functions available -if [ -e /initramfs/plugin-conf/xen.conf ]; then - . /initramfs/plugin-conf/xen.conf - if [ $xen_active -ne 0 ]; then +# include default directories +. /etc/openslx.conf + +CONFFILE=/initramfs/plugin-conf/xen.conf +PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/xen +PLUGINDIR=/mnt/${OPENSLX_DEFAULT_DIR}/plugin-repo/xen +VIRTDIR=/mnt/${OPENSLX_DEFAULT_VIRTDIR}/xen + +# check if the configuration file is available +if [ -e ${CONFFILE} ]; then + + # load needed variables + . ${CONFFILE} + + # Test if this plugin is activated... more or less useless with the + # new plugin system + if [ $xen_active -ne 0 2>/dev/null ]; then + + [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'xen' os-plugin ..."; + + # load general configuration + . /etc/initramfs-setup + + # get source of xen image server (get type, server and path) + if strinstr "/" "${xen_imagesrc}" ; then + vbimgprot=$(uri_token ${xen_imagesrc} prot) + vbimgserv=$(uri_token ${xen_imagesrc} server) + vbimgpath="$(uri_token ${xen_imagesrc} path)" + fi + if [ -n "${vbimgserv}" ] ; then + # directory where qemu images are expected in + mnttarget=${VIRTDIR} + # mount the xen image source readonly (ro) + fsmount ${vbimgprot} ${vbimgserv} ${vbimgpath} ${mnttarget} ro + else + [ $DEBUGLEVEL -gt 1 ] && \ + error " * Incomplete information in variable ${xen_imagesrc}." \ + nonfatal + fi + + # copy virtualization include files to config dir + testmkd ${PLUGINCONFDIR} testmkd /mnt/var/log/xen testmkd /mnt/var/run/xend testmkd /mnt/var/run/xenstored + cp ${PLUGINDIR}/*.include ${PLUGINCONFDIR} + # copy ${CONFFILE} to ${PLUGINCONFDIR} just in case + cp ${CONFFILE} ${PLUGINCONFDIR} + # activate init files + # TODO: in xen-slx start + # increase loop devices for loop images + modprobe -q loop max_loop=64 >/tmp/xen.log 2>&1 rllinker "xendomains" 14 8 rllinker "xend" 13 9 - - modprobe loop max_loop=64 fi fi diff --git a/os-plugins/plugins/xen/files/hvm.include b/os-plugins/plugins/xen/files/hvm.include new file mode 100644 index 00000000..beb9315a --- /dev/null +++ b/os-plugins/plugins/xen/files/hvm.include @@ -0,0 +1,209 @@ +# This is an machine template for run-virt.include of the Xen plugin. +# This template was taken from an example in openSUSE 11.2 +# HVM template + +cat <<EOF +# -*- mode: python; -*- +#============================================================================ +# Python configuration setup for 'xm create'. +# This configuration was created through $0 on $(date) +#============================================================================ + +import os, re + +arch_libdir = 'lib' +arch = os.uname()[4] +if os.uname()[0] == 'Linux' and re.search('64', arch): + arch_libdir = 'lib64' + +#---------------------------------------------------------------------------- +# Kernel image file. +kernel = "/usr/lib/xen/boot/hvmloader" + +# The domain build function. HVM domain uses 'hvm'. +builder='hvm' + +# Initial memory allocation (in megabytes) for the new domain. +memory = ${mem} + +# Shadow pagetable memory for the domain, in MB. +# If not explicictly set, xend will pick an appropriate value. +# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu. +#shadow_memory = 8 + +# A name for your domain. All domains must have different names. +name = "${vm_name}" + +#----------------------------------------------------------------------------- +# The number of cpus guest platform has, default=1 +#vcpus=1 + +# Enable/disable HVM guest PAE, default=1 (enabled) +#pae=1 + +# Enable/disable HVM guest ACPI, default=1 (enabled) +#acpi=1 + +# Enable/disable HVM APIC mode, default=1 (enabled) +# Note that this option is ignored if vcpus > 1 +#apic=1 + +# Enable/disable extended power management support within HVM guest, i.e., beyond +# S3, S4, S5 within guest like exposing battery meter. +# 0 (default option, extended power management support disabled) +# 1 (pass-through mode; uses pass-through as needed; efficient but limited in scope) +# 2 (non pass-through mode; extended scope, likely to work on all applicable environment +# but comparitively less efficient than pass-through mode) +# xen_extended_power_mgmt=0 + +# List of which CPUS this domain is allowed to use, default Xen picks +#cpus = "" # leave to Xen to pick +#cpus = "0" # all vcpus run on CPU0 +#cpus = "0-3,5,^1" # all vcpus run on cpus 0,2,3,5 +#cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3 + +#---------------------------------------------------------------------------- +# Optionally define mac and/or bridge for the network interfaces. +# Random MACs are assigned if not given. +#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ] +# type=ioemu specify the NIC is an ioemu device not netfront +#vif = [ 'type=ioemu, bridge=xenbr0' ] +vif = [ '${xen_vif}' ] + +#---------------------------------------------------------------------------- +# Define the disk devices you want the domain to have access to, and +# what you want them accessible as. +# Each disk entry is of the form phy:UNAME,DEV,MODE +# where UNAME is the device, DEV is the device name the domain will see, +# and MODE is r for read-only, w for read-write. +#disk = [ 'phy:hda1,hda1,r' ] +#disk = [ 'file:/var/lib/xen/images/disk.img,ioemu:hda,w', ',hdc:cdrom,r' ] +disk = [ '${xen_disk}' ] + +#---------------------------------------------------------------------------- +# Configure the behaviour when a domain exits. There are three 'reasons' +# for a domain to stop: poweroff, reboot, and crash. For each of these you +# may specify: +# "destroy", meaning that the domain is cleaned up as normal; +# "restart", meaning that a new domain is started in place of the old +# one; +# "preserve", meaning that no clean-up is done until the domain is +# manually destroyed (using xm destroy, for example); or +# "rename-restart", meaning that the old domain is not cleaned up, but is +# renamed and a new domain started in its place. +# In the event a domain stops due to a crash, you have the additional options: +# "coredump-destroy", meaning dump the crashed domain's core and then destroy; +# "coredump-restart', meaning dump the crashed domain's core and the restart. +# The default is +# on_poweroff = 'destroy' +# on_reboot = 'restart' +# on_crash = 'restart' +#on_poweroff = 'destroy' +#on_reboot = 'restart' +#on_crash = 'restart' + +#============================================================================ +# HVM specific +#============================================================================ +# Device Model to be used +device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm' + +#----------------------------------------------------------------------------- +# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d) +# default: hard disk, cd-rom, floppy +#boot="cda" + +#----------------------------------------------------------------------------- +# write to temporary files instead of disk image files +#snapshot=1 + +#---------------------------------------------------------------------------- +# enable SDL library for graphics, default = 0 +sdl=0 + +#---------------------------------------------------------------------------- +# enable OpenGL for texture rendering inside the SDL window, default = 1 +# valid only if sdl is enabled. +opengl=1 + +#---------------------------------------------------------------------------- +# enable VNC library for graphics, default = 1 +vnc=1 + +#---------------------------------------------------------------------------- +# address that should be listened on for the VNC server if vnc is set. +# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp +#vnclisten="127.0.0.1" + +#---------------------------------------------------------------------------- +# set VNC display number, default = domid +#vncdisplay=1 + +#---------------------------------------------------------------------------- +# try to find an unused port for the VNC server, default = 1 +#vncunused=1 + +#---------------------------------------------------------------------------- +# set password for domain's VNC console +# default is depents on vncpasswd in xend-config.sxp +vncpasswd='' + +#---------------------------------------------------------------------------- +# no graphics, use serial port +#nographic=0 + +#---------------------------------------------------------------------------- +# enable stdvga, default = 0 (use cirrus logic device model) +stdvga=0 + +#----------------------------------------------------------------------------- +# serial port re-direct to pty deivce, /dev/pts/n +# then xm console or minicom can connect +serial='pty' + + +#----------------------------------------------------------------------------- +# Qemu Monitor, default is disable +# Use ctrl-alt-2 to connect +#monitor=1 + + +#----------------------------------------------------------------------------- +# enable sound card support, [sb16|es1370|all|..,..], default none +#soundhw='sb16' + + +#----------------------------------------------------------------------------- +# set the real time clock to local time [default=0 i.e. set to utc] +#localtime=1 + + +#----------------------------------------------------------------------------- +# set the real time clock offset in seconds [default=0 i.e. same as dom0] +#rtc_timeoffset=3600 + +#----------------------------------------------------------------------------- +# start in full screen +#full-screen=1 + + +#----------------------------------------------------------------------------- +# Enable USB support (specific devices specified at runtime through the +# monitor window) +#usb=1 +# Enable USB mouse support (only enable one of the following, `mouse' for +# PS/2 protocol relative mouse, `tablet' for +# absolute mouse) +#usbdevice='mouse' +#usbdevice='tablet' + +#----------------------------------------------------------------------------- +# Set keyboard layout, default is en-us keyboard. +#keymap='de' + +#----------------------------------------------------------------------------- +# Enable/disable xen platform PCI device, default=1 (enabled) +#xen_platform_pci=1 + +#============================================================================ +EOF diff --git a/os-plugins/plugins/xen/files/machine.include b/os-plugins/plugins/xen/files/machine.include new file mode 100644 index 00000000..06848949 --- /dev/null +++ b/os-plugins/plugins/xen/files/machine.include @@ -0,0 +1,167 @@ +# This is an machine template for run-virt.include of the Xen plugin. +# This template was taken from an example in openSUSE 11.2 + +cat <<EOF +# -*- mode: python; -*- +#============================================================================ +# Python configuration setup for 'xm create'. +# This configuration was created through $0 on $(date) +#============================================================================ + +#---------------------------------------------------------------------------- +# Kernel image file and (optional) ramdisk (initrd). +kernel = "${xen_kernel}" +ramdisk = "${xen_ramdisk}" + +# Or use domUloader instead of kernel/ramdisk to get kernel from domU FS +#bootloader = "/usr/lib/xen/boot/domUloader.py" +#bootentry = "hda1:/${xen_kernel},/${xen_ramdisk}" +# TODO: check these: +#bootargs="--entry=xvda2:/boot/vmlinuz-xen,/boot/initrd-xen" + +localtime=0 + +# The domain build function. Default is 'linux', HVM domain uses 'hvm'. +builder = 'linux' + +# Initial memory allocation (in megabytes) for the new domain. +memory = ${mem} + +# A name for your domain. All domains must have different names. +name = "${vm_name}" + +# List of which CPUS this domain is allowed to use, default Xen picks +#cpus = "" # leave to Xen to pick +#cpus = "0" # all vcpus run on CPU0 +#cpus = "0-3,5,^1" # run on cpus 0,2,3,5 +#cpus = "${xen_cpus}" + +# Number of Virtual CPUS to use, default is 1 +#vcpus = ${xen_vcpus} + +#---------------------------------------------------------------------------- +# Define network interfaces. + +# By default, no network interfaces are configured. You may have one created +# with sensible defaults using an empty vif clause: +# vif = [ '' ] +# or optionally override backend, bridge, ip, mac, script, type, or vifname: +# vif = [ 'mac=00:16:3e:00:00:11, bridge=xenbr0' ] +# or more than one interface may be configured: +# vif = [ '', 'bridge=xenbr1' ] +vif = [ '${xen_vif}' ] + +#---------------------------------------------------------------------------- +# Define the disk devices you want the domain to have access to, and +# what you want them accessible as. +# Each disk entry is of the form phy:UNAME,DEV,MODE +# where UNAME is the device, DEV is the device name the domain will see, +# and MODE is r for read-only, w for read-write. +# disk = [ 'phy:hda1,hda1,w' ] +${xen_disk} + +#---------------------------------------------------------------------------- +# Define frame buffer device. +# By default, no frame buffer device is configured. +# To create one using the SDL backend and sensible defaults: +# vfb = [ 'type=sdl' ] +# This uses environment variables XAUTHORITY and DISPLAY. You +# can override that: +# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ] +# To create one using the VNC backend and sensible defaults: +# vfb = [ 'type=vnc' ] +# The backend listens on 127.0.0.1 port 5900+N by default, where N is +# the domain ID. You can override both address and N: +# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=1' ] +# Or you can bind the first unused port above 5900: +# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vnunused=1' ] +# You can override the password: +# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ] +# Empty password disables authentication. Defaults to the vncpasswd +# configured in xend-config.sxp. + +#---------------------------------------------------------------------------- +# Define to which TPM instance the user domain should communicate. +# The vtpm entry is of the form 'instance=INSTANCE,backend=DOM' +# where INSTANCE indicates the instance number of the TPM the VM +# should be talking to and DOM provides the domain where the backend +# is located. +# Note that no two virtual machines should try to connect to the same +# TPM instance. The handling of all TPM instances does require +# some management effort in so far that VM configration files (and thus +# a VM) should be associated with a TPM instance throughout the lifetime +# of the VM / VM configuration file. The instance number must be +# greater or equal to 1. +#vtpm = [ 'instance=1,backend=0' ] + +#---------------------------------------------------------------------------- +# Set the kernel command line for the new domain. +# You only need to define the IP parameters and hostname if the domain's +# IP config doesn't, e.g. in ifcfg-eth0 or via DHCP. +# You can use 'extra' to set the runlevel and custom environment +# variables used by custom rc scripts (e.g. VMID=, usr= ). + +# Set if you want dhcp to allocate the IP address. +dhcp="${xen_dhcp}" +# Set netmask. +#netmask= +# Set default gateway. +#gateway= +# Set the hostname. +hostname= "${hostname}" + +# Set root device (eg. /dev/hda1). +root = "${xen_root}" + +# Root device for nfs. +#root = "/dev/nfs" +# The nfs server. +#nfs_server = '169.254.1.0' +# Root directory on the nfs server. +#nfs_root = '/full/path/to/root/directory' + +# Extra arguments to pass to the kernel. +# Eg: set runlevel +extra = "${xen_extra}" + +#---------------------------------------------------------------------------- +# Configure the behaviour when a domain exits. There are three 'reasons' +# for a domain to stop: poweroff, reboot, and crash. For each of these you +# may specify: +# "destroy", meaning that the domain is cleaned up as normal; +# "restart", meaning that a new domain is started in place of the old +# one; +# "preserve", meaning that no clean-up is done until the domain is +# manually destroyed (using xm destroy, for example); or +# "rename-restart", meaning that the old domain is not cleaned up, but is +# renamed and a new domain started in its place. +# In the event a domain stops due to a crash, you have the additional options: +# "coredump-destroy", meaning dump the crashed domain's core and then destroy; +# "coredump-restart', meaning dump the crashed domain's core and the restart. +# The default is +# on_poweroff = 'destroy' +# on_reboot = 'restart' +# on_crash = 'restart' +#on_poweroff = 'destroy' +#on_reboot = 'restart' +#on_crash = 'restart' + +#----------------------------------------------------------------------------- +# Configure PVSCSI devices: +# PDEV gives physical SCSI device to be attached to specified guest +# domain by one of the following identifier format. +# - XX:XX:XX:XX (4-tuples with decimal notation which shows +# "host:channel:target:lun") +# - /dev/sdxx or sdx +# - /dev/stxx or stx +# - /dev/sgxx or sgx +# - result of 'scsi_id -gu -s'. +# ex. # scsi_id -gu -s /block/sdb +# 36000b5d0006a0000006a0257004c0000 +# VDEV gives virtual SCSI device by 4-tuples (XX:XX:XX:XX) as +# which the specified guest domain recognize. +#vscsi = [ 'PDEV, VDEV' ] +#vscsi = [ '/dev/sdx, 0:0:0:0' ] + +#============================================================================ +EOF diff --git a/os-plugins/plugins/xen/files/run-virt.include b/os-plugins/plugins/xen/files/run-virt.include new file mode 100644 index 00000000..43213e34 --- /dev/null +++ b/os-plugins/plugins/xen/files/run-virt.include @@ -0,0 +1,157 @@ +# run-virt.include +# ----------------------------------------------------------------------------- +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - OpenSLX GmbH +# +# This program/file is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# ----------------------------------------------------------------------------- +# run-virt.include +# - Include script for running Xen on an OpenSLX client via the run-virt.sh +# or run-vmgrid.sh +################################################################################ + +################################################################################ +### Include general configuration +################################################################################ +if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf ]; then + . ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf +else + writelog "Problems reading config file of ${self} plugin" + exit 1 +fi + +################################################################################ +### Declaration of default variables +################################################################################ + +PLUGINCONFXEN="${PLUGINCONFROOT}/${self}" +# create TMPDIR for all users +mkdir -m 1777 /tmp/${self} 2>/dev/null +# dir for configs +confdir="/tmp/${self}/${USER}/${VM_ID}" +# use vm_shortname for VM name since vm_name can be very long +# add id so we can start more tahn one of the same image +vm_name="${vm_shortname}-${VM_ID}" +conffile=${confdir}/${vm_name} +# define dirs and files which can be removed after exit, be carefull! +rm -rf ${confdir} 2>/dev/null +mkdir -p ${confdir} 2>/dev/null + +xen_kernel=${kernel:-"/boot/vmlinuz-xen"} +xen_ramdisk=${initramfs:-"/boot/initrd-xen"} +xen_extra="xencons=tty 3" +[ -n "${imgname}" ] && xen_disk="disk = [ 'file:${vmpath},hda1,r' ]" + +writelog "Directories:" +writelog "\tConfig dir:\t\t$confdir" + +################################################################################ +### Hardware checks +################################################################################ + +# memory part equal to vmware plugin +# percentage of memory to use for virtualbox in standard case +if [ -n "${forcemem}" ]; then + mem="${forcemem}" +else + permem=30 + if [ "${totalmem}" -ge "1600" ]; then + permem=40 + fi + # check if /tmp is on harddisk + if grep -qe "/dev/.* /tmp " /proc/mounts ; then + permem=60 + id44="1" + # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well + # (40% vmware | 40% confdir(vmem...) | 20% host + # VMplayer 2+ issue + # TODO: makes this sense for vbox? + #if [ "${totalmem}" -ge "2500" ]; then + #permem=40 + #rmdir ${snapshotdir} + #snapshotdirold=${snapshotdir} + #snapshotdir=/dev/shm/${self}/${USER}/${VM_ID} + #mkdir -p ${snapshotdir} + #ln -sf ${snapshotdir} ${snapshotdirold} + #fi + fi + mem=$(expr ${totalmem} / 100 \* ${permem}) + if [ "${id44}" = "1" ]; then + memhost=$(expr ${totalmem} - ${mem}) + else + memhost=$(expr ${totalmem} - ${mem} - ${mem}) + fi + #permem=40 + #mem=$(expr ${totalmem} * ${permem}) + if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then + writelog "Memory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" + writelog "Min. 256 MB for host and guest!" + exit 1 + fi +fi + +# translate network kinds (nat, bridged, host-only) +case "${network_kind}" in + bridge*) + xen_vif="mac=$macaddr, bridge=br0" + ;; + *) + xen_vif="mac=$macaddr" +esac +xen_dhcp="dhcp" # off + +# translate boot, use if set else set to disk +xen_root=/dev/hda1 +case ${boot} in + n*|tftp) + pxe_label=$(grep -o 'pxe_label param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') + pxe_label=$(grep -A 3 "^LABEL *${pxe_label}" \ + ${xen_tftpdir}/pxelinux.cfg/default 2>/dev/null \ + | grep "^ *KERNEL ") + if [ -n "${pxe_label}" ] && [ -n "${xen_tftpdir}" ]; then + xen_root=/dev/nfs + xen_kernel="${xen_tftpdir}/$(echo ${pxe_label} \ + | awk -F " --- " '{print $2}' | awk '{print $1}')" + xen_ramdisk="${xen_tftpdir}/$(echo ${pxe_label} \ + | awk -F " --- " '{print $3}')" + fi + ;; + # later maybe c|disk|hd*|sd*) for HD and d|cd*) for CD-ROM + *) + xen_root=/dev/hda1 + ;; +esac + +[ ${diskless} -eq 0 ] && writelog "Diskimage:" +[ ${diskless} -eq 0 ] && writelog "\tMachine diskfile:\t$vmpath" +writelog "Virtual Hardware:" +writelog "\tGuest RAM:\t\t${mem} MB" +# echo nur wenn memhost gesetzt +[ -n "${memhost}" ] && writelog "\tHost RAM:\t\t${memhost} MB" +writelog "\tMAC address:\t\t$macaddr" + +################################################################################ +### Pepare and configure virtual machine and disk image +################################################################################ + +. ${PLUGINCONFXEN}/machine.include > ${conffile} + +################################################################################ +### finally set env for run-virt.sh +################################################################################ + +# set the variables appropriately (several interfaces with different names) +VIRTCMD=$(which xm 2>/dev/null) +# '-c' for console, no graphical output available, later vnc possible +VIRTCMDOPTS="create -c ${conffile}" + +# set headless mode +VIRTCMDHL=$(which xm 2>/dev/null) +VIRTCMDOPTSHL="create ${conffile}" diff --git a/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh b/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh deleted file mode 100644 index 321b6a06..00000000 --- a/os-plugins/plugins/xen/init-hooks/10-have-nw-modules/xen.sh +++ /dev/null @@ -1,23 +0,0 @@ -# configure Xen bridge xenbr0 -modprobe ${MODPRV} netloop -local ipls -local vifnum="0" -local bridge="xenbr${vifnum}" -local netdev="eth${vifnum}" -local pdev="p${netdev}" -local vdev="veth${vifnum}" -local vif0="vif0.${vifnum}" -# fixme: that is the mac address of main ethernet device -local mac=`ip link show ${netdev} | grep 'link\/ether' | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/'` - -brctl addbr ${bridge} -brctl stp ${bridge} off -brctl setfd ${bridge} 0 -brctl addif ${bridge} ${vif0} -for ipls in "${netdev} name ${pdev}" "${vdev} name ${netdev}" \ - "${pdev} down arp off" "${pdev} addr fe:ff:ff:ff:ff:ff" \ - "${netdev} addr ${mac} arp on" "${bridge} up" "${vif0} up" \ - "${pdev} up" "${netdev} up"; do - ip link set ${ipls} -done -brctl addif ${bridge} ${pdev} diff --git a/os-plugins/plugins/xen/init-hooks/10-nw-if-config/xennet.sh b/os-plugins/plugins/xen/init-hooks/10-nw-if-config/xennet.sh new file mode 100644 index 00000000..d514b68d --- /dev/null +++ b/os-plugins/plugins/xen/init-hooks/10-nw-if-config/xennet.sh @@ -0,0 +1,4 @@ +# load xennet if necessary, usualy within a NFS VM +if grep -q "Xen Virtual Ethernet Card" /etc/hwinfo.netcard-usbctrl; then + modprobe xennet >/tmp/xennet.log 2>&1 +fi diff --git a/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/bridge.sh b/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/bridge.sh new file mode 100755 index 00000000..6aabe8ad --- /dev/null +++ b/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/bridge.sh @@ -0,0 +1,30 @@ +#!/bin/ash +# Copyright (c) 2009 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Init hook to create a bridge on the active network interface +# (should be kept identical to the files of virtualbox and qemukvm plugins) +############################################################################# + +local bridge=br0 +local brnwif=${nwif} +local nwifmac=${macaddr} + +# bridge 0 already defined or some other problem +brctl addbr ${bridge} || exit 0 +brctl stp ${bridge} 0 +brctl setfd ${bridge} 0.000000000001 +ip link set addr ${nwifmac} ${bridge} +ip link set dev ${nwif} up +brctl addif ${bridge} ${nwif} + +# fixme: sending back the variable to init does not work properly at the +# moment +nwif=${bridge} diff --git a/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/xen-bridge.sh b/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/xen-bridge.sh deleted file mode 100755 index 7267969c..00000000 --- a/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/xen-bridge.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/ash -# Copyright (c) 2009 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# -# XEN specific init hook to create a bridge on the active network interface -############################################################################# - -# configure Xen bridge xenbr0 (would it be possible to make it just br0?) - -modprobe ${MODPRV} netloop -local ipls -local vifnum="0" -local bridge="xenbr${vifnum}" -local netdev="eth${vifnum}" # should be ${nwif} -local pdev="p${netdev}" -local vdev="veth${vifnum}" -local vif0="vif0.${vifnum}" -# fixme: that is the mac address of main ethernet device -local mac=${macaddr} - -brctl addbr ${bridge} -brctl stp ${bridge} off -brctl setfd ${bridge} 0.000000000001 -brctl addif ${bridge} ${vif0} -for ipls in "${netdev} name ${pdev}" "${vdev} name ${netdev}" \ - "${pdev} down arp off" "${pdev} addr fe:ff:ff:ff:ff:ff" \ - "${netdev} addr ${mac} arp on" "${netdev} addr ${mac} arp on" \ - "${bridge} up" "${vif0} up" "${pdev} up" ; do - ip link set ${ipls} -done -brctl addif ${bridge} ${pdev} - -# fixme: sending back the variable to init does not work properly at the -# moment -nwif=${bridge} diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm index 4cb7804b..61372d54 100644 --- a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm @@ -356,7 +356,6 @@ sub installAtiOldStyle } rmtree("$repopath/ati/temp"); - } 1; diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_2.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_2.pm new file mode 100644 index 00000000..5cddcef0 --- /dev/null +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_2.pm @@ -0,0 +1,53 @@ +# Copyright (c) 2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# xserver/OpenSLX/Distro/Suse_11_2.pm +# - provides SUSE-specific overrides of the Distro API for the xserver +# plugin. +# ----------------------------------------------------------------------------- +package xserver::OpenSLX::Distro::Suse_11_2; + +use strict; +use warnings; + +use base qw(xserver::OpenSLX::Distro::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; +use OpenSLX::DistroUtils; + +use Data::Dumper; + +################################################################################ +### interface methods +################################################################################ + +sub setupXserverScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupXserverScript($repoPath); + + $script .= unshiftHereDoc(<<' End-of-Here'); + # SuSE specific extension to stage3 xserver.sh + testmkd /mnt/var/lib/xkb/compiled + testmkd /mnt/var/lib/X11 + testmkd /mnt/var/lib/xdm/authdir/authfiles 0700 + ln -s /usr/bin/Xorg /mnt/var/lib/X11/X + rm /mnt/etc/X11/xdm/SuSEconfig.xdm + End-of-Here + + return $script; +} + +1; diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu.pm index 537ef54c..728e6a03 100644 --- a/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu.pm +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu.pm @@ -1,4 +1,4 @@ -# Copyright (c) 2008 - OpenSLX GmbH +# Copyright (c) 2008..2010 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -26,6 +26,21 @@ use OpenSLX::Utils; ### interface methods ################################################################################ +# needs to be implemented ... +sub XserverPathInfo +{ + my $self = shift; + + my $pathInfo = { + config => '/etc/X11/xorg.openslx', + paths => [ + '/usr/bin', + ], + }; + + return $pathInfo; +} + sub setupXserverScript { my $self = shift; @@ -37,6 +52,12 @@ sub setupXserverScript # Ubuntu specific extension to stage3 xserver.sh testmkd /mnt/var/run/xauth testmkd /mnt/var/lib/xkb + ln -sf /usr/bin/Xorg /mnt/etc/X11/X + # newer Xorgs do not need predefined configuration file, not needed if + # XserverPathInfo gets implemented ... + sed -e "1i# xorg.conf not needed in most cases for Xorg 1.7+" \ + /mnt/etc/X11/xorg.conf >/etc/X11/xorg.openslx 2>/dev/null + rm /mnt/etc/X11/xorg.conf 2>/dev/null End-of-Here return $script; diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_8.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_8.pm new file mode 100644 index 00000000..0c152dba --- /dev/null +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_8.pm @@ -0,0 +1,71 @@ +# Copyright (c) 2008..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# xserver/OpenSLX/Distro/Ubuntu_8.pm +# - provides Ubuntu-specific overrides of the distro API for the xserver +# plugin. +# ----------------------------------------------------------------------------- +package xserver::OpenSLX::Distro::Ubuntu_8; + +use strict; +use warnings; + +use base qw(xserver::OpenSLX::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub setupXserverScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupXserverScript($repoPath); + + $script .= unshiftHereDoc(<<' End-of-Here'); + # Ubuntu specific extension to stage3 xserver.sh + testmkd /mnt/var/run/xauth + testmkd /mnt/var/lib/xkb + ln -sf /usr/bin/Xorg /mnt/etc/X11/X + End-of-Here + + return $script; +} + + +sub installNvidia +{ + my $self = shift; + my $repopath = shift || "/opt/openslx/plugin-repo/xserver/"; + my $pkgpath = shift || "packages"; + + my $distroName = $self->{engine}->distroName(); + + system($repopath."/ubuntu-gfx-install.sh nvidia $distroName"); + +} + +sub installAti +{ + my $self = shift; + my $repopath = shift || "/opt/openslx/plugin-repo/xserver/"; + my $pkgpath = shift || "packages"; + + my $distroName = $self->{engine}->distroName(); + + system($repopath."/ubuntu-gfx-install.sh ati $distroName"); + +} + +1; diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_9.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_9.pm new file mode 100644 index 00000000..80dccbc9 --- /dev/null +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_9.pm @@ -0,0 +1,30 @@ +# Copyright (c) 2008..2010 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# xserver/OpenSLX/Distro/Ubuntu_9.pm +# - provides Ubuntu-specific overrides of the distro API for the xserver +# plugin. +# ----------------------------------------------------------------------------- +package xserver::OpenSLX::Distro::Ubuntu_9; + +use strict; +use warnings; + +use base qw(xserver::OpenSLX::Distro::Ubuntu_8); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + + +1; diff --git a/os-plugins/plugins/xserver/init-hooks/00-started/xserver.sh b/os-plugins/plugins/xserver/init-hooks/00-started/xserver.sh index 71d185e0..f9c3e7a7 100644 --- a/os-plugins/plugins/xserver/init-hooks/00-started/xserver.sh +++ b/os-plugins/plugins/xserver/init-hooks/00-started/xserver.sh @@ -19,6 +19,11 @@ # automatic Xorg configation fails in this field. If no useable info was # detected just delete the file. +# not really needed for ubuntu 10.04 +# ToDo: fix so it is not installed by default +#echo ${slx_distro_name}${slx_distro_ver}>/tmp/utest +#[ ${slx_distro_name} = "ubuntu" ] && [ ${slx_distro_ver} = "10.04" ] && exit 0 + # tablet detection function tabletdetect () { sleep 1; waitfor /etc/hwinfo.bios 20000 @@ -39,4 +44,3 @@ tabletdetect () { ( hwinfo --monitor >/etc/hwinfo.display; grep "Generic Monitor" \ /etc/hwinfo.display >/dev/null 2>&1 && rm /etc/hwinfo.display ) & ( tabletdetect ) & - |