From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- src/bin/devel-tools/determineMinimumPackageSet.pl | 183 ++ src/bin/devel-tools/extractTranslations.pl | 242 ++ src/bin/devel-tools/generateSettings.pl | 207 ++ src/bin/devel-tools/parseSusePatterns.pl | 163 + src/bin/slxldd | 128 + src/bin/slxsettings | 381 +++ src/boot-env/OpenSLX/BootEnvironment/Base.pm | 160 + src/boot-env/OpenSLX/BootEnvironment/PBS.pm | 247 ++ src/boot-env/OpenSLX/BootEnvironment/PXE.pm | 336 +++ src/boot-env/OpenSLX/BootEnvironment/Preboot.pm | 209 ++ .../OpenSLX/BootEnvironment/Preboot/Base.pm | 111 + src/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm | 155 + src/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm | 48 + .../OpenSLX/MakeInitRamFS/Distro/Debian.pm | 61 + .../OpenSLX/MakeInitRamFS/Distro/Scilin.pm | 61 + src/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm | 62 + .../OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm | 73 + .../OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm | 38 + src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm | 453 +++ src/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm | 42 + .../OpenSLX/MakeInitRamFS/Engine/Preboot.pm | 143 + .../OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm | 264 ++ src/boot-env/pbs/uclib-rootfs/bin/bbinit | 19 + src/boot-env/pbs/uclib-rootfs/bin/handleEvents | 38 + src/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example | 32 + src/boot-env/pbs/uclib-rootfs/etc/events/example | 2 + src/boot-env/pbs/uclib-rootfs/init | 234 ++ .../preboot/preboot-scripts/dialog.functions | 105 + .../preboot/conf/apache-openslx-preboot.conf | 24 + src/boot-env/preboot/http-server/user_settings.pl | 97 + src/boot-env/preboot/http-server/users.pl | 90 + .../preboot/preboot-scripts/dialog.functions | 105 + src/boot-env/preboot/preboot.sh | 95 + src/boot-env/preboot/uclib-rootfs/init | 216 ++ src/boot-env/preboot/uclib-rootfs/lib/libcurses.so | 1 + .../preboot/uclib-rootfs/lib/libncurses.so | 1 + .../preboot/uclib-rootfs/lib/libncurses.so.5 | 1 + .../preboot/uclib-rootfs/lib/libncurses.so.5.6 | Bin 0 -> 229164 bytes src/boot-env/preboot/uclib-rootfs/usr/bin/clear | Bin 0 -> 5156 bytes src/boot-env/preboot/uclib-rootfs/usr/bin/dialog | Bin 0 -> 108520 bytes src/boot-env/preboot/uclib-rootfs/usr/bin/w3m | Bin 0 -> 1093832 bytes .../preboot/uclib-rootfs/usr/lib/libcrypto.so | 1 + .../uclib-rootfs/usr/lib/libcrypto.so.0.9.8 | Bin 0 -> 1143120 bytes .../preboot/uclib-rootfs/usr/lib/libcurses.so | 11 + .../preboot/uclib-rootfs/usr/lib/libform.so | 1 + .../preboot/uclib-rootfs/usr/lib/libform.so.5 | 1 + .../preboot/uclib-rootfs/usr/lib/libform.so.5.6 | Bin 0 -> 39044 bytes .../preboot/uclib-rootfs/usr/lib/libmenu.so | 1 + .../preboot/uclib-rootfs/usr/lib/libmenu.so.5 | 1 + .../preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 | Bin 0 -> 21968 bytes .../preboot/uclib-rootfs/usr/lib/libncurses.so | 11 + .../preboot/uclib-rootfs/usr/lib/libpanel.so | 1 + .../preboot/uclib-rootfs/usr/lib/libpanel.so.5 | 1 + .../preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 | Bin 0 -> 9212 bytes .../preboot/uclib-rootfs/usr/lib/libssl.so | 1 + .../preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 | Bin 0 -> 237392 bytes src/boot-env/preboot/uclib-rootfs/usr/sbin/kdump | Bin 0 -> 5200 bytes src/boot-env/preboot/uclib-rootfs/usr/sbin/kexec | Bin 0 -> 104068 bytes src/boot-env/syslinux/LICENSE | 3 + src/boot-env/syslinux/README.iso | 6 + src/boot-env/syslinux/README.pxe | 68 + src/boot-env/syslinux/extlinux | Bin 0 -> 52294 bytes src/boot-env/syslinux/initramfs-shutdown | Bin 0 -> 665088 bytes src/boot-env/syslinux/isolinux.bin | Bin 0 -> 14336 bytes src/boot-env/syslinux/kernel-shutdown | Bin 0 -> 688752 bytes src/boot-env/syslinux/mboot.c32 | Bin 0 -> 30380 bytes src/boot-env/syslinux/mbr.bin | Bin 0 -> 440 bytes src/boot-env/syslinux/menu.c32 | Bin 0 -> 54836 bytes src/boot-env/syslinux/pxechain.com | Bin 0 -> 998 bytes src/boot-env/syslinux/pxelinux.0 | Bin 0 -> 16662 bytes src/boot-env/syslinux/pxemenu-bottom.example | 39 + src/boot-env/syslinux/pxemenu-include.example | 58 + src/boot-env/syslinux/syslinux | Bin 0 -> 25472 bytes src/boot-env/syslinux/themes/openslx/openslx.png | Bin 0 -> 20453 bytes src/boot-env/syslinux/themes/openslx/theme.conf | 40 + .../syslinux/themes/openslxpbs/openslx.png | Bin 0 -> 168728 bytes src/boot-env/syslinux/themes/openslxpbs/theme.conf | 40 + src/boot-env/syslinux/vesamenu.c32 | Bin 0 -> 147996 bytes src/config-db/OpenSLX/AttributeRoster.pm | 537 ++++ src/config-db/OpenSLX/ConfigDB.pm | 3190 ++++++++++++++++++++ src/config-db/OpenSLX/ConfigExport/DHCP/ISC.pm | 45 + src/config-db/OpenSLX/DBSchema.pm | 832 +++++ src/config-db/OpenSLX/MetaDB/Base.pm | 1220 ++++++++ src/config-db/OpenSLX/MetaDB/DBI.pm | 1540 ++++++++++ src/config-db/OpenSLX/MetaDB/SQLite.pm | 130 + src/config-db/OpenSLX/MetaDB/mysql.pm | 179 ++ src/config-db/slxconfig | 1785 +++++++++++ src/config-db/slxconfig-demuxer | 918 ++++++ src/config-db/t/01-basics.t | 23 + src/config-db/t/10-vendor-os.t | 258 ++ src/config-db/t/11-export.t | 247 ++ src/config-db/t/12-system.t | 360 +++ src/config-db/t/13-client.t | 320 ++ src/config-db/t/14-group.t | 384 +++ src/config-db/t/15-global_info.t | 43 + src/config-db/t/20-client_system_ref.t | 208 ++ src/config-db/t/21-group_system_ref.t | 195 ++ src/config-db/t/22-group_client_ref.t | 186 ++ src/config-db/t/25-attributes.t | 677 +++++ src/config-db/t/29-transaction.t | 58 + src/config-db/t/run-all-tests.pl | 36 + src/initramfs/distro-specs/debian/functions-4.0 | 14 + .../distro-specs/debian/functions-default | 209 ++ src/initramfs/distro-specs/scilin/functions-4.7 | 15 + src/initramfs/distro-specs/scilin/functions-5.3 | 42 + src/initramfs/distro-specs/scilin/functions-5.4 | 42 + src/initramfs/distro-specs/scilin/functions-5.5 | 42 + .../distro-specs/scilin/functions-default | 315 ++ src/initramfs/distro-specs/suse/functions-10.2 | 82 + src/initramfs/distro-specs/suse/functions-10.3 | 26 + src/initramfs/distro-specs/suse/functions-11.1 | 90 + src/initramfs/distro-specs/suse/functions-11.2 | 95 + src/initramfs/distro-specs/suse/functions-11.3 | 97 + src/initramfs/distro-specs/suse/functions-default | 608 ++++ src/initramfs/distro-specs/ubuntu/functions-10.04 | 16 + src/initramfs/distro-specs/ubuntu/functions-8.04 | 296 ++ src/initramfs/distro-specs/ubuntu/functions-8.10 | 296 ++ src/initramfs/distro-specs/ubuntu/functions-9.04 | 293 ++ src/initramfs/distro-specs/ubuntu/functions-9.10 | 16 + .../distro-specs/ubuntu/functions-default | 286 ++ .../eglibc-packages/compcache/usr/bin/rzscontrol | Bin 0 -> 7040 bytes .../eglibc-packages/hwinfo/lib/libdbus-1.so.3 | Bin 0 -> 231492 bytes .../eglibc-packages/hwinfo/lib/librt.so.1 | Bin 0 -> 30684 bytes .../eglibc-packages/hwinfo/usr/lib/libhal.so.1 | Bin 0 -> 61852 bytes .../eglibc-packages/hwinfo/usr/lib/libhd.so.16 | Bin 0 -> 1865944 bytes .../eglibc-packages/hwinfo/usr/sbin/hwinfo | Bin 0 -> 28020 bytes .../eglibc-packages/mksquashfs/lib/libm.so.6 | Bin 0 -> 149392 bytes .../eglibc-packages/mksquashfs/lib/libpthread.so.0 | Bin 0 -> 117105 bytes .../mksquashfs/usr/bin/mksquashfs_3_3 | Bin 0 -> 93192 bytes .../mksquashfs/usr/bin/mksquashfs_4 | Bin 0 -> 97460 bytes .../eglibc-packages/nbd-client/sbin/nbd-client | Bin 0 -> 11836 bytes .../eglibc-packages/plymouth/bin/plymouth | Bin 0 -> 27428 bytes .../plymouth/lib/libply-splash-core.so.2 | Bin 0 -> 62216 bytes .../eglibc-packages/plymouth/lib/libply.so.2 | Bin 0 -> 75816 bytes .../eglibc-packages/plymouth/lib/librt.so.1 | Bin 0 -> 30684 bytes .../eglibc-packages/plymouth/sbin/plymouthd | Bin 0 -> 53124 bytes .../share/plymouth/themes/details/details.plymouth | 4 + .../usr/share/plymouth/themes/fade-in/bullet.png | Bin 0 -> 296 bytes .../usr/share/plymouth/themes/fade-in/entry.png | Bin 0 -> 350 bytes .../share/plymouth/themes/fade-in/fade-in.plymouth | 7 + .../usr/share/plymouth/themes/fade-in/lock.png | Bin 0 -> 29126 bytes .../usr/share/plymouth/themes/fade-in/star.png | Bin 0 -> 1057 bytes .../usr/share/plymouth/themes/glow/box.png | Bin 0 -> 870 bytes .../usr/share/plymouth/themes/glow/bullet.png | Bin 0 -> 131 bytes .../usr/share/plymouth/themes/glow/entry.png | Bin 0 -> 367 bytes .../usr/share/plymouth/themes/glow/glow.plymouth | 11 + .../usr/share/plymouth/themes/glow/lock.png | Bin 0 -> 1896 bytes .../usr/share/plymouth/themes/glow/progress-00.png | Bin 0 -> 519 bytes .../usr/share/plymouth/themes/glow/progress-01.png | Bin 0 -> 599 bytes .../usr/share/plymouth/themes/glow/progress-02.png | Bin 0 -> 644 bytes .../usr/share/plymouth/themes/glow/progress-03.png | Bin 0 -> 704 bytes .../usr/share/plymouth/themes/glow/progress-04.png | Bin 0 -> 736 bytes .../usr/share/plymouth/themes/glow/progress-05.png | Bin 0 -> 786 bytes .../usr/share/plymouth/themes/glow/progress-06.png | Bin 0 -> 780 bytes .../usr/share/plymouth/themes/glow/progress-07.png | Bin 0 -> 775 bytes .../usr/share/plymouth/themes/glow/progress-08.png | Bin 0 -> 776 bytes .../usr/share/plymouth/themes/glow/progress-09.png | Bin 0 -> 769 bytes .../usr/share/plymouth/themes/glow/progress-10.png | Bin 0 -> 866 bytes .../usr/share/plymouth/themes/glow/progress-11.png | Bin 0 -> 970 bytes .../usr/share/plymouth/themes/glow/progress-12.png | Bin 0 -> 1014 bytes .../usr/share/plymouth/themes/glow/progress-13.png | Bin 0 -> 1107 bytes .../usr/share/plymouth/themes/glow/progress-14.png | Bin 0 -> 1120 bytes .../usr/share/plymouth/themes/glow/progress-15.png | Bin 0 -> 1078 bytes .../usr/share/plymouth/themes/glow/progress-16.png | Bin 0 -> 955 bytes .../usr/share/plymouth/themes/glow/progress-17.png | Bin 0 -> 1091 bytes .../usr/share/plymouth/themes/glow/progress-18.png | Bin 0 -> 1194 bytes .../usr/share/plymouth/themes/glow/progress-19.png | Bin 0 -> 1249 bytes .../usr/share/plymouth/themes/glow/progress-20.png | Bin 0 -> 1239 bytes .../usr/share/plymouth/themes/glow/progress-21.png | Bin 0 -> 1306 bytes .../usr/share/plymouth/themes/glow/progress-22.png | Bin 0 -> 1287 bytes .../usr/share/plymouth/themes/glow/progress-23.png | Bin 0 -> 1279 bytes .../usr/share/plymouth/themes/glow/progress-24.png | Bin 0 -> 1202 bytes .../usr/share/plymouth/themes/glow/progress-25.png | Bin 0 -> 1299 bytes .../usr/share/plymouth/themes/glow/progress-26.png | Bin 0 -> 1380 bytes .../usr/share/plymouth/themes/glow/progress-27.png | Bin 0 -> 1453 bytes .../usr/share/plymouth/themes/glow/progress-28.png | Bin 0 -> 1468 bytes .../usr/share/plymouth/themes/glow/progress-29.png | Bin 0 -> 1498 bytes .../usr/share/plymouth/themes/glow/progress-30.png | Bin 0 -> 1529 bytes .../usr/share/plymouth/themes/glow/progress-31.png | Bin 0 -> 1519 bytes .../usr/share/plymouth/themes/glow/progress-32.png | Bin 0 -> 1383 bytes .../usr/share/plymouth/themes/glow/throbber-00.png | Bin 0 -> 2627 bytes .../usr/share/plymouth/themes/glow/throbber-01.png | Bin 0 -> 3338 bytes .../usr/share/plymouth/themes/glow/throbber-02.png | Bin 0 -> 4077 bytes .../usr/share/plymouth/themes/glow/throbber-03.png | Bin 0 -> 4766 bytes .../usr/share/plymouth/themes/glow/throbber-04.png | Bin 0 -> 6316 bytes .../usr/share/plymouth/themes/glow/throbber-05.png | Bin 0 -> 6390 bytes .../usr/share/plymouth/themes/glow/throbber-06.png | Bin 0 -> 8920 bytes .../usr/share/plymouth/themes/glow/throbber-07.png | Bin 0 -> 9482 bytes .../usr/share/plymouth/themes/glow/throbber-08.png | Bin 0 -> 9623 bytes .../usr/share/plymouth/themes/glow/throbber-09.png | Bin 0 -> 9337 bytes .../usr/share/plymouth/themes/glow/throbber-10.png | Bin 0 -> 8867 bytes .../usr/share/plymouth/themes/glow/throbber-11.png | Bin 0 -> 8698 bytes .../usr/share/plymouth/themes/glow/throbber-12.png | Bin 0 -> 8258 bytes .../usr/share/plymouth/themes/glow/throbber-13.png | Bin 0 -> 12244 bytes .../usr/share/plymouth/themes/glow/throbber-14.png | Bin 0 -> 11344 bytes .../usr/share/plymouth/themes/glow/throbber-15.png | Bin 0 -> 6761 bytes .../usr/share/plymouth/themes/glow/throbber-16.png | Bin 0 -> 6899 bytes .../usr/share/plymouth/themes/glow/throbber-17.png | Bin 0 -> 6937 bytes .../usr/share/plymouth/themes/glow/throbber-18.png | Bin 0 -> 6936 bytes .../usr/share/plymouth/themes/glow/throbber-19.png | Bin 0 -> 6959 bytes .../usr/share/plymouth/themes/script/box.png | Bin 0 -> 870 bytes .../usr/share/plymouth/themes/script/bullet.png | Bin 0 -> 296 bytes .../usr/share/plymouth/themes/script/entry.png | Bin 0 -> 350 bytes .../usr/share/plymouth/themes/script/lock.png | Bin 0 -> 1896 bytes .../share/plymouth/themes/script/progress_bar.png | Bin 0 -> 173 bytes .../share/plymouth/themes/script/progress_box.png | Bin 0 -> 196 bytes .../share/plymouth/themes/script/script.plymouth | 11 + .../usr/share/plymouth/themes/script/script.script | 164 + .../usr/share/plymouth/themes/solar/box.png | Bin 0 -> 870 bytes .../usr/share/plymouth/themes/solar/bullet.png | Bin 0 -> 296 bytes .../usr/share/plymouth/themes/solar/entry.png | Bin 0 -> 350 bytes .../usr/share/plymouth/themes/solar/lock.png | Bin 0 -> 1896 bytes .../share/plymouth/themes/solar/progress_bar.png | Bin 0 -> 246 bytes .../usr/share/plymouth/themes/solar/solar.plymouth | 7 + .../usr/share/plymouth/themes/solar/star.png | Bin 0 -> 355666 bytes .../usr/share/plymouth/themes/spinfinity/box.png | Bin 0 -> 870 bytes .../share/plymouth/themes/spinfinity/bullet.png | Bin 0 -> 296 bytes .../usr/share/plymouth/themes/spinfinity/entry.png | Bin 0 -> 350 bytes .../usr/share/plymouth/themes/spinfinity/lock.png | Bin 0 -> 1896 bytes .../plymouth/themes/spinfinity/spinfinity.plymouth | 7 + .../plymouth/themes/spinfinity/throbber-00.png | Bin 0 -> 244 bytes .../plymouth/themes/spinfinity/throbber-01.png | Bin 0 -> 304 bytes .../plymouth/themes/spinfinity/throbber-02.png | Bin 0 -> 370 bytes .../plymouth/themes/spinfinity/throbber-03.png | Bin 0 -> 424 bytes .../plymouth/themes/spinfinity/throbber-04.png | Bin 0 -> 508 bytes .../plymouth/themes/spinfinity/throbber-05.png | Bin 0 -> 563 bytes .../plymouth/themes/spinfinity/throbber-06.png | Bin 0 -> 589 bytes .../plymouth/themes/spinfinity/throbber-07.png | Bin 0 -> 562 bytes .../plymouth/themes/spinfinity/throbber-08.png | Bin 0 -> 567 bytes .../plymouth/themes/spinfinity/throbber-09.png | Bin 0 -> 560 bytes .../plymouth/themes/spinfinity/throbber-10.png | Bin 0 -> 526 bytes .../plymouth/themes/spinfinity/throbber-11.png | Bin 0 -> 492 bytes .../plymouth/themes/spinfinity/throbber-12.png | Bin 0 -> 424 bytes .../plymouth/themes/spinfinity/throbber-13.png | Bin 0 -> 360 bytes .../plymouth/themes/spinfinity/throbber-14.png | Bin 0 -> 300 bytes .../plymouth/themes/spinfinity/throbber-15.png | Bin 0 -> 244 bytes .../plymouth/themes/spinfinity/throbber-16.png | Bin 0 -> 213 bytes .../plymouth/themes/spinfinity/throbber-17.png | Bin 0 -> 245 bytes .../plymouth/themes/spinfinity/throbber-18.png | Bin 0 -> 306 bytes .../plymouth/themes/spinfinity/throbber-19.png | Bin 0 -> 372 bytes .../plymouth/themes/spinfinity/throbber-20.png | Bin 0 -> 424 bytes .../plymouth/themes/spinfinity/throbber-21.png | Bin 0 -> 513 bytes .../plymouth/themes/spinfinity/throbber-22.png | Bin 0 -> 551 bytes .../plymouth/themes/spinfinity/throbber-23.png | Bin 0 -> 595 bytes .../plymouth/themes/spinfinity/throbber-24.png | Bin 0 -> 571 bytes .../plymouth/themes/spinfinity/throbber-25.png | Bin 0 -> 570 bytes .../plymouth/themes/spinfinity/throbber-26.png | Bin 0 -> 566 bytes .../plymouth/themes/spinfinity/throbber-27.png | Bin 0 -> 521 bytes .../plymouth/themes/spinfinity/throbber-28.png | Bin 0 -> 480 bytes .../plymouth/themes/spinfinity/throbber-29.png | Bin 0 -> 424 bytes .../plymouth/themes/spinfinity/throbber-30.png | Bin 0 -> 356 bytes .../plymouth/themes/spinfinity/throbber-31.png | Bin 0 -> 293 bytes .../plymouth/themes/spinfinity/throbber-32.png | Bin 0 -> 243 bytes .../plymouth/themes/spinfinity/throbber-33.png | Bin 0 -> 213 bytes .../usr/share/plymouth/themes/text/text.plymouth | 4 + .../eglibc-packages/strace/usr/bin/strace | Bin 0 -> 207880 bytes src/initramfs/eglibc-rootfs/bin/ash | 1 + src/initramfs/eglibc-rootfs/bin/bash | 1 + src/initramfs/eglibc-rootfs/bin/busybox | Bin 0 -> 377052 bytes src/initramfs/eglibc-rootfs/bin/cat | 1 + src/initramfs/eglibc-rootfs/bin/chgrp | 1 + src/initramfs/eglibc-rootfs/bin/chmod | 1 + src/initramfs/eglibc-rootfs/bin/chown | 1 + src/initramfs/eglibc-rootfs/bin/cp | 1 + src/initramfs/eglibc-rootfs/bin/cpio | 1 + src/initramfs/eglibc-rootfs/bin/cttyhack | 1 + src/initramfs/eglibc-rootfs/bin/date | 1 + src/initramfs/eglibc-rootfs/bin/dd | 1 + src/initramfs/eglibc-rootfs/bin/df | 1 + src/initramfs/eglibc-rootfs/bin/dmesg | 1 + src/initramfs/eglibc-rootfs/bin/echo | 1 + src/initramfs/eglibc-rootfs/bin/egrep | 1 + src/initramfs/eglibc-rootfs/bin/false | 1 + src/initramfs/eglibc-rootfs/bin/grep | 1 + src/initramfs/eglibc-rootfs/bin/gunzip | 1 + src/initramfs/eglibc-rootfs/bin/gzip | 1 + src/initramfs/eglibc-rootfs/bin/ip | 1 + src/initramfs/eglibc-rootfs/bin/ipcalc | 1 + src/initramfs/eglibc-rootfs/bin/kill | 1 + src/initramfs/eglibc-rootfs/bin/ln | 1 + src/initramfs/eglibc-rootfs/bin/ls | 1 + src/initramfs/eglibc-rootfs/bin/mkdir | 1 + src/initramfs/eglibc-rootfs/bin/mknod | 1 + src/initramfs/eglibc-rootfs/bin/mount | 1 + src/initramfs/eglibc-rootfs/bin/mv | 1 + src/initramfs/eglibc-rootfs/bin/nice | 1 + src/initramfs/eglibc-rootfs/bin/pidof | 1 + src/initramfs/eglibc-rootfs/bin/ping | 1 + src/initramfs/eglibc-rootfs/bin/ps | 1 + src/initramfs/eglibc-rootfs/bin/pwd | 1 + src/initramfs/eglibc-rootfs/bin/rev | 1 + src/initramfs/eglibc-rootfs/bin/rm | 1 + src/initramfs/eglibc-rootfs/bin/sed | 1 + src/initramfs/eglibc-rootfs/bin/sh | 1 + src/initramfs/eglibc-rootfs/bin/sleep | 1 + src/initramfs/eglibc-rootfs/bin/sync | 1 + src/initramfs/eglibc-rootfs/bin/tar | 1 + src/initramfs/eglibc-rootfs/bin/touch | 1 + src/initramfs/eglibc-rootfs/bin/true | 1 + src/initramfs/eglibc-rootfs/bin/umount | 1 + src/initramfs/eglibc-rootfs/bin/uname | 1 + src/initramfs/eglibc-rootfs/bin/usleep | 1 + src/initramfs/eglibc-rootfs/bin/vi | 1 + src/initramfs/eglibc-rootfs/bin/zcat | 1 + src/initramfs/eglibc-rootfs/lib/ld-2.11.2.so | Bin 0 -> 113964 bytes src/initramfs/eglibc-rootfs/lib/ld-linux.so.2 | 1 + src/initramfs/eglibc-rootfs/lib/libc.so.6 | Bin 0 -> 1315080 bytes src/initramfs/eglibc-rootfs/lib/libdbus-1.so.3 | Bin 0 -> 231492 bytes src/initramfs/eglibc-rootfs/lib/libdl.so.2 | Bin 0 -> 9736 bytes src/initramfs/eglibc-rootfs/lib/libm.so.6 | Bin 0 -> 149392 bytes src/initramfs/eglibc-rootfs/lib/librt.so.1 | Bin 0 -> 30684 bytes src/initramfs/eglibc-rootfs/sbin/bootchartd | 1 + src/initramfs/eglibc-rootfs/sbin/fbsplash | 1 + src/initramfs/eglibc-rootfs/sbin/fdisk | 1 + src/initramfs/eglibc-rootfs/sbin/getty | 1 + src/initramfs/eglibc-rootfs/sbin/halt | 1 + src/initramfs/eglibc-rootfs/sbin/hdparm | 1 + src/initramfs/eglibc-rootfs/sbin/hwclock | 1 + src/initramfs/eglibc-rootfs/sbin/inotifyd | 1 + src/initramfs/eglibc-rootfs/sbin/insmod | 1 + src/initramfs/eglibc-rootfs/sbin/klogd | 1 + src/initramfs/eglibc-rootfs/sbin/ldconfig | Bin 0 -> 651456 bytes src/initramfs/eglibc-rootfs/sbin/loadkmap | 1 + src/initramfs/eglibc-rootfs/sbin/logread | 1 + src/initramfs/eglibc-rootfs/sbin/lsmod | 1 + src/initramfs/eglibc-rootfs/sbin/lspci | 1 + src/initramfs/eglibc-rootfs/sbin/lsusb | 1 + src/initramfs/eglibc-rootfs/sbin/mdev | 1 + src/initramfs/eglibc-rootfs/sbin/mkdosfs | 1 + src/initramfs/eglibc-rootfs/sbin/mkfs.vfat | 1 + src/initramfs/eglibc-rootfs/sbin/mkswap | 1 + src/initramfs/eglibc-rootfs/sbin/modinfo | 1 + src/initramfs/eglibc-rootfs/sbin/modprobe | 1 + src/initramfs/eglibc-rootfs/sbin/poweroff | 1 + src/initramfs/eglibc-rootfs/sbin/reboot | 1 + src/initramfs/eglibc-rootfs/sbin/rmmod | 1 + src/initramfs/eglibc-rootfs/sbin/route | 1 + src/initramfs/eglibc-rootfs/sbin/start-stop-daemon | 1 + src/initramfs/eglibc-rootfs/sbin/swapoff | 1 + src/initramfs/eglibc-rootfs/sbin/swapon | 1 + src/initramfs/eglibc-rootfs/sbin/switch_root | 1 + src/initramfs/eglibc-rootfs/sbin/sysctl | 1 + src/initramfs/eglibc-rootfs/sbin/syslogd | 1 + src/initramfs/eglibc-rootfs/sbin/tunctl | 1 + src/initramfs/eglibc-rootfs/sbin/udhcpc | 1 + src/initramfs/eglibc-rootfs/sbin/vconfig | 1 + src/initramfs/eglibc-rootfs/sbin/watchdog | 1 + src/initramfs/eglibc-rootfs/sbin/zcip | 1 + src/initramfs/eglibc-rootfs/usr/bin/[ | 1 + src/initramfs/eglibc-rootfs/usr/bin/[[ | 1 + src/initramfs/eglibc-rootfs/usr/bin/ar | 1 + src/initramfs/eglibc-rootfs/usr/bin/arping | 1 + src/initramfs/eglibc-rootfs/usr/bin/awk | 1 + src/initramfs/eglibc-rootfs/usr/bin/basename | 1 + src/initramfs/eglibc-rootfs/usr/bin/bunzip2 | 1 + src/initramfs/eglibc-rootfs/usr/bin/bzcat | 1 + src/initramfs/eglibc-rootfs/usr/bin/bzip2 | 1 + src/initramfs/eglibc-rootfs/usr/bin/chvt | 1 + src/initramfs/eglibc-rootfs/usr/bin/cut | 1 + src/initramfs/eglibc-rootfs/usr/bin/deallocvt | 1 + src/initramfs/eglibc-rootfs/usr/bin/du | 1 + src/initramfs/eglibc-rootfs/usr/bin/dumpleases | 1 + src/initramfs/eglibc-rootfs/usr/bin/eject | 1 + src/initramfs/eglibc-rootfs/usr/bin/env | 1 + src/initramfs/eglibc-rootfs/usr/bin/expr | 1 + src/initramfs/eglibc-rootfs/usr/bin/fgconsole | 1 + src/initramfs/eglibc-rootfs/usr/bin/find | 1 + src/initramfs/eglibc-rootfs/usr/bin/flock | 1 + src/initramfs/eglibc-rootfs/usr/bin/free | 1 + src/initramfs/eglibc-rootfs/usr/bin/ftpget | 1 + src/initramfs/eglibc-rootfs/usr/bin/ftpput | 1 + src/initramfs/eglibc-rootfs/usr/bin/head | 1 + src/initramfs/eglibc-rootfs/usr/bin/id | 1 + src/initramfs/eglibc-rootfs/usr/bin/killall | 1 + src/initramfs/eglibc-rootfs/usr/bin/ld | Bin 0 -> 529192 bytes src/initramfs/eglibc-rootfs/usr/bin/ldd | 193 ++ src/initramfs/eglibc-rootfs/usr/bin/less | 1 + src/initramfs/eglibc-rootfs/usr/bin/logger | 1 + src/initramfs/eglibc-rootfs/usr/bin/lspci | 1 + src/initramfs/eglibc-rootfs/usr/bin/lsusb | 1 + src/initramfs/eglibc-rootfs/usr/bin/lzcat | 1 + src/initramfs/eglibc-rootfs/usr/bin/lzma | 1 + src/initramfs/eglibc-rootfs/usr/bin/lzmacat | 1 + src/initramfs/eglibc-rootfs/usr/bin/md5sum | 1 + src/initramfs/eglibc-rootfs/usr/bin/nc | 1 + src/initramfs/eglibc-rootfs/usr/bin/nmeter | 1 + src/initramfs/eglibc-rootfs/usr/bin/openvt | 1 + src/initramfs/eglibc-rootfs/usr/bin/printf | 1 + src/initramfs/eglibc-rootfs/usr/bin/readahead | 1 + src/initramfs/eglibc-rootfs/usr/bin/readlink | 1 + src/initramfs/eglibc-rootfs/usr/bin/realpath | 1 + src/initramfs/eglibc-rootfs/usr/bin/rpm2cpio | 1 + src/initramfs/eglibc-rootfs/usr/bin/smemcap | 1 + src/initramfs/eglibc-rootfs/usr/bin/sort | 1 + src/initramfs/eglibc-rootfs/usr/bin/strings | 1 + src/initramfs/eglibc-rootfs/usr/bin/tail | 1 + src/initramfs/eglibc-rootfs/usr/bin/test | 1 + src/initramfs/eglibc-rootfs/usr/bin/tftp | 1 + src/initramfs/eglibc-rootfs/usr/bin/time | 1 + src/initramfs/eglibc-rootfs/usr/bin/timeout | 1 + src/initramfs/eglibc-rootfs/usr/bin/tr | 1 + src/initramfs/eglibc-rootfs/usr/bin/uniq | 1 + src/initramfs/eglibc-rootfs/usr/bin/unlzma | 1 + src/initramfs/eglibc-rootfs/usr/bin/unxz | 1 + src/initramfs/eglibc-rootfs/usr/bin/uptime | 1 + src/initramfs/eglibc-rootfs/usr/bin/wc | 1 + src/initramfs/eglibc-rootfs/usr/bin/wget | 1 + src/initramfs/eglibc-rootfs/usr/bin/which | 1 + src/initramfs/eglibc-rootfs/usr/bin/whoami | 1 + src/initramfs/eglibc-rootfs/usr/bin/xargs | 1 + src/initramfs/eglibc-rootfs/usr/bin/xz | 1 + src/initramfs/eglibc-rootfs/usr/bin/xzcat | 1 + .../usr/lib/libbfd-2.20.1-system.20100303.so | Bin 0 -> 862364 bytes .../eglibc-rootfs/usr/lib/libfusion-1.2.so.9 | Bin 0 -> 32432 bytes src/initramfs/eglibc-rootfs/usr/lib/libgcc_s.so.1 | Bin 0 -> 116600 bytes src/initramfs/eglibc-rootfs/usr/lib/libhal.so.1 | Bin 0 -> 61852 bytes src/initramfs/eglibc-rootfs/usr/lib/libhd.so.16 | Bin 0 -> 1865944 bytes src/initramfs/eglibc-rootfs/usr/lib/libm.so | 1 + src/initramfs/eglibc-rootfs/usr/lib/libpcre.so.3 | Bin 0 -> 194216 bytes src/initramfs/eglibc-rootfs/usr/lib/libz.so.1 | Bin 0 -> 79980 bytes src/initramfs/eglibc-rootfs/usr/sbin/brctl | 1 + src/initramfs/eglibc-rootfs/usr/sbin/chroot | 1 + src/initramfs/eglibc-rootfs/usr/sbin/dhcprelay | 1 + src/initramfs/eglibc-rootfs/usr/sbin/fbset | 1 + src/initramfs/eglibc-rootfs/usr/sbin/httpd | 1 + src/initramfs/eglibc-rootfs/usr/sbin/hwinfo | Bin 0 -> 28020 bytes src/initramfs/eglibc-rootfs/usr/sbin/loadfont | 1 + src/initramfs/eglibc-rootfs/usr/sbin/rdate | 1 + src/initramfs/eglibc-rootfs/usr/sbin/setlogcons | 1 + src/initramfs/eglibc-rootfs/usr/sbin/udhcpd | 1 + src/initramfs/stage3-stuff/bin/dhcpmkconfig | 47 + src/initramfs/stage3-stuff/bin/hwautocfg | 299 ++ src/initramfs/stage3-stuff/bin/init-wrapper | 60 + src/initramfs/stage3-stuff/bin/servconfig | 308 ++ src/initramfs/stage3-stuff/etc/functions | 1029 +++++++ src/initramfs/stage3-stuff/etc/ldap-functions | 75 + src/initramfs/stage3-stuff/etc/messages | 204 ++ src/initramfs/stage3-stuff/etc/messages.de | 215 ++ src/initramfs/stage3-stuff/init | 1030 +++++++ src/initramfs/tools/hwinfo/bin/hwinfo-13.11 | Bin 0 -> 78772 bytes src/initramfs/tools/hwinfo/bin/hwinfo-14.19 | Bin 0 -> 84276 bytes src/initramfs/tools/hwinfo/bin/hwinfo-15.21 | Bin 0 -> 84560 bytes src/initramfs/tools/hwinfo/bin/hwinfo-15.3 | Bin 0 -> 84632 bytes src/initramfs/tools/hwinfo/bin/hwinfo-16.0 | Bin 0 -> 28020 bytes src/initramfs/tools/hwinfo/db/hwinfo.db.tgz | Bin 0 -> 10637 bytes src/initramfs/tools/hwinfo/lib/libhd.so.13.11 | Bin 0 -> 2955703 bytes src/initramfs/tools/hwinfo/lib/libhd.so.14.19 | Bin 0 -> 3216601 bytes src/initramfs/tools/hwinfo/lib/libhd.so.15.21 | Bin 0 -> 3300198 bytes src/initramfs/tools/hwinfo/lib/libhd.so.15.3 | Bin 0 -> 3226851 bytes src/initramfs/tools/hwinfo/lib/libhd.so.16.0 | Bin 0 -> 1865944 bytes src/initramfs/tools/mksquashfs/3.3/mksquashfs | Bin 0 -> 76316 bytes src/initramfs/tools/mksquashfs/3.3/unsquashfs | Bin 0 -> 38660 bytes src/initramfs/tpm/bin/detect-tpm.sh | 60 + src/initramfs/tpm/bin/fetch-sshkeys.sh | 28 + src/initramfs/tpm/bin/mygetty.sh | 10 + src/initramfs/tpm/bin/showmac.sh | 9 + src/initramfs/tpm/etc/bash.bashrc | 3 + src/initramfs/tpm/etc/hosts | 3 + src/initramfs/tpm/etc/inputrc | 1 + src/initramfs/tpm/etc/ld.so.preload | 1 + src/initramfs/tpm/etc/libdeps | 34 + src/initramfs/tpm/etc/passwd | 5 + src/initramfs/tpm/var/lib/tpm/system.data | Bin 0 -> 606 bytes src/initramfs/uclib-rootfs.old/bin/ash | 1 + src/initramfs/uclib-rootfs.old/bin/busybox | Bin 0 -> 379176 bytes src/initramfs/uclib-rootfs.old/bin/cat | 1 + src/initramfs/uclib-rootfs.old/bin/chgrp | 1 + src/initramfs/uclib-rootfs.old/bin/chmod | 1 + src/initramfs/uclib-rootfs.old/bin/chown | 1 + src/initramfs/uclib-rootfs.old/bin/cp | 1 + src/initramfs/uclib-rootfs.old/bin/cpio | 1 + src/initramfs/uclib-rootfs.old/bin/cttyhack | 1 + src/initramfs/uclib-rootfs.old/bin/date | 1 + src/initramfs/uclib-rootfs.old/bin/dd | 1 + src/initramfs/uclib-rootfs.old/bin/df | 1 + src/initramfs/uclib-rootfs.old/bin/dmesg | 1 + src/initramfs/uclib-rootfs.old/bin/echo | 1 + src/initramfs/uclib-rootfs.old/bin/egrep | 1 + src/initramfs/uclib-rootfs.old/bin/false | 1 + src/initramfs/uclib-rootfs.old/bin/grep | 1 + src/initramfs/uclib-rootfs.old/bin/gunzip | 1 + src/initramfs/uclib-rootfs.old/bin/gzip | 1 + src/initramfs/uclib-rootfs.old/bin/ip | 1 + src/initramfs/uclib-rootfs.old/bin/ipcalc | 1 + src/initramfs/uclib-rootfs.old/bin/kill | 1 + src/initramfs/uclib-rootfs.old/bin/ldconfig | Bin 0 -> 61808 bytes src/initramfs/uclib-rootfs.old/bin/ln | 1 + src/initramfs/uclib-rootfs.old/bin/ls | 1 + src/initramfs/uclib-rootfs.old/bin/mkdir | 1 + src/initramfs/uclib-rootfs.old/bin/mknod | 1 + src/initramfs/uclib-rootfs.old/bin/mount | 1 + src/initramfs/uclib-rootfs.old/bin/mv | 1 + src/initramfs/uclib-rootfs.old/bin/nice | 1 + src/initramfs/uclib-rootfs.old/bin/pidof | 1 + src/initramfs/uclib-rootfs.old/bin/ping | 1 + src/initramfs/uclib-rootfs.old/bin/ps | 1 + src/initramfs/uclib-rootfs.old/bin/pwd | 1 + src/initramfs/uclib-rootfs.old/bin/rm | 1 + src/initramfs/uclib-rootfs.old/bin/sed | 1 + src/initramfs/uclib-rootfs.old/bin/sh | 1 + src/initramfs/uclib-rootfs.old/bin/sleep | 1 + src/initramfs/uclib-rootfs.old/bin/sync | 1 + src/initramfs/uclib-rootfs.old/bin/tar | 1 + src/initramfs/uclib-rootfs.old/bin/touch | 1 + src/initramfs/uclib-rootfs.old/bin/true | 1 + src/initramfs/uclib-rootfs.old/bin/umount | 1 + src/initramfs/uclib-rootfs.old/bin/uname | 1 + src/initramfs/uclib-rootfs.old/bin/usleep | 1 + src/initramfs/uclib-rootfs.old/bin/vi | 1 + src/initramfs/uclib-rootfs.old/bin/zcat | 1 + src/initramfs/uclib-rootfs.old/etc/ld.so.cache | Bin 0 -> 1032 bytes src/initramfs/uclib-rootfs.old/etc/terminfo/a/ansi | Bin 0 -> 1481 bytes src/initramfs/uclib-rootfs.old/etc/terminfo/d/dumb | Bin 0 -> 308 bytes .../uclib-rootfs.old/etc/terminfo/l/linux | Bin 0 -> 1740 bytes src/initramfs/uclib-rootfs.old/etc/terminfo/r/rxvt | Bin 0 -> 2029 bytes .../uclib-rootfs.old/etc/terminfo/s/screen | Bin 0 -> 1550 bytes src/initramfs/uclib-rootfs.old/etc/terminfo/s/sun | Bin 0 -> 997 bytes .../uclib-rootfs.old/etc/terminfo/v/vt100 | Bin 0 -> 1194 bytes .../uclib-rootfs.old/etc/terminfo/v/vt102 | Bin 0 -> 1188 bytes .../uclib-rootfs.old/etc/terminfo/v/vt200 | 1 + .../uclib-rootfs.old/etc/terminfo/v/vt220 | Bin 0 -> 1279 bytes src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt52 | Bin 0 -> 466 bytes .../uclib-rootfs.old/etc/terminfo/x/xterm | Bin 0 -> 2522 bytes .../uclib-rootfs.old/etc/terminfo/x/xterm-color | Bin 0 -> 1551 bytes .../uclib-rootfs.old/etc/terminfo/x/xterm-xfree86 | Bin 0 -> 2522 bytes .../uclib-rootfs.old/lib/ld-uClibc-0.9.30.1.so | Bin 0 -> 21196 bytes src/initramfs/uclib-rootfs.old/lib/ld-uClibc.so.0 | 1 + src/initramfs/uclib-rootfs.old/lib/libc.so.0 | 1 + .../uclib-rootfs.old/lib/libcrypt-0.9.30.1.so | Bin 0 -> 8872 bytes src/initramfs/uclib-rootfs.old/lib/libcrypt.so.0 | 1 + .../uclib-rootfs.old/lib/libdl-0.9.30.1.so | Bin 0 -> 9088 bytes src/initramfs/uclib-rootfs.old/lib/libdl.so.0 | 1 + .../uclib-rootfs.old/lib/libm-0.9.30.1.so | Bin 0 -> 53980 bytes src/initramfs/uclib-rootfs.old/lib/libm.so.0 | 1 + .../uclib-rootfs.old/lib/libnsl-0.9.30.1.so | Bin 0 -> 4684 bytes src/initramfs/uclib-rootfs.old/lib/libnsl.so.0 | 1 + .../uclib-rootfs.old/lib/libpthread-0.9.30.1.so | Bin 0 -> 79690 bytes src/initramfs/uclib-rootfs.old/lib/libpthread.so.0 | 1 + .../uclib-rootfs.old/lib/libresolv-0.9.30.1.so | Bin 0 -> 4688 bytes src/initramfs/uclib-rootfs.old/lib/libresolv.so.0 | 1 + .../uclib-rootfs.old/lib/librt-0.9.30.1.so | Bin 0 -> 4672 bytes src/initramfs/uclib-rootfs.old/lib/librt.so.0 | 1 + .../uclib-rootfs.old/lib/libthread_db-0.9.30.1.so | Bin 0 -> 13156 bytes .../uclib-rootfs.old/lib/libthread_db.so.1 | 1 + .../uclib-rootfs.old/lib/libuClibc-0.9.30.1.so | Bin 0 -> 285772 bytes .../uclib-rootfs.old/lib/libutil-0.9.30.1.so | Bin 0 -> 4800 bytes src/initramfs/uclib-rootfs.old/lib/libutil.so.0 | 1 + src/initramfs/uclib-rootfs.old/lib/libz.so | 1 + src/initramfs/uclib-rootfs.old/lib/libz.so.1 | 1 + src/initramfs/uclib-rootfs.old/lib/libz.so.1.2.3 | Bin 0 -> 62760 bytes src/initramfs/uclib-rootfs.old/sbin/dnbd-client | Bin 0 -> 9652 bytes src/initramfs/uclib-rootfs.old/sbin/fbsplash | 1 + src/initramfs/uclib-rootfs.old/sbin/fdisk | 1 + src/initramfs/uclib-rootfs.old/sbin/getty | 1 + src/initramfs/uclib-rootfs.old/sbin/halt | 1 + src/initramfs/uclib-rootfs.old/sbin/hdparm | 1 + src/initramfs/uclib-rootfs.old/sbin/hwclock | 1 + src/initramfs/uclib-rootfs.old/sbin/ifrename | Bin 0 -> 21716 bytes src/initramfs/uclib-rootfs.old/sbin/inotifyd | 1 + src/initramfs/uclib-rootfs.old/sbin/insmod | 1 + src/initramfs/uclib-rootfs.old/sbin/klogd | 1 + src/initramfs/uclib-rootfs.old/sbin/loadkmap | 1 + src/initramfs/uclib-rootfs.old/sbin/logread | 1 + src/initramfs/uclib-rootfs.old/sbin/lsmod | 1 + src/initramfs/uclib-rootfs.old/sbin/mdev | 1 + src/initramfs/uclib-rootfs.old/sbin/mkdosfs | 1 + src/initramfs/uclib-rootfs.old/sbin/mkfs.vfat | 1 + src/initramfs/uclib-rootfs.old/sbin/mkswap | 1 + src/initramfs/uclib-rootfs.old/sbin/modprobe | 1 + src/initramfs/uclib-rootfs.old/sbin/nbd-client | Bin 0 -> 9664 bytes src/initramfs/uclib-rootfs.old/sbin/poweroff | 1 + src/initramfs/uclib-rootfs.old/sbin/reboot | 1 + src/initramfs/uclib-rootfs.old/sbin/rmmod | 1 + src/initramfs/uclib-rootfs.old/sbin/route | 1 + .../uclib-rootfs.old/sbin/start-stop-daemon | 1 + src/initramfs/uclib-rootfs.old/sbin/swapoff | 1 + src/initramfs/uclib-rootfs.old/sbin/swapon | 1 + src/initramfs/uclib-rootfs.old/sbin/switch_root | 1 + src/initramfs/uclib-rootfs.old/sbin/sysctl | 1 + src/initramfs/uclib-rootfs.old/sbin/syslogd | 1 + src/initramfs/uclib-rootfs.old/sbin/tunctl | 1 + src/initramfs/uclib-rootfs.old/sbin/udhcpc | 1 + src/initramfs/uclib-rootfs.old/sbin/vconfig | 1 + src/initramfs/uclib-rootfs.old/sbin/watchdog | 1 + src/initramfs/uclib-rootfs.old/sbin/zcip | 1 + src/initramfs/uclib-rootfs.old/usr/bin/[ | 1 + src/initramfs/uclib-rootfs.old/usr/bin/[[ | 1 + src/initramfs/uclib-rootfs.old/usr/bin/ar | 1 + src/initramfs/uclib-rootfs.old/usr/bin/arping | 1 + src/initramfs/uclib-rootfs.old/usr/bin/awk | 1 + src/initramfs/uclib-rootfs.old/usr/bin/basename | 1 + src/initramfs/uclib-rootfs.old/usr/bin/bunzip2 | 1 + src/initramfs/uclib-rootfs.old/usr/bin/bzcat | 1 + src/initramfs/uclib-rootfs.old/usr/bin/bzip2 | 1 + src/initramfs/uclib-rootfs.old/usr/bin/chvt | 1 + src/initramfs/uclib-rootfs.old/usr/bin/cut | 1 + src/initramfs/uclib-rootfs.old/usr/bin/deallocvt | 1 + src/initramfs/uclib-rootfs.old/usr/bin/du | 1 + src/initramfs/uclib-rootfs.old/usr/bin/eject | 1 + src/initramfs/uclib-rootfs.old/usr/bin/env | 1 + src/initramfs/uclib-rootfs.old/usr/bin/expr | 1 + src/initramfs/uclib-rootfs.old/usr/bin/find | 1 + src/initramfs/uclib-rootfs.old/usr/bin/free | 1 + src/initramfs/uclib-rootfs.old/usr/bin/ftpget | 1 + src/initramfs/uclib-rootfs.old/usr/bin/ftpput | 1 + src/initramfs/uclib-rootfs.old/usr/bin/getent | 43 + src/initramfs/uclib-rootfs.old/usr/bin/head | 1 + src/initramfs/uclib-rootfs.old/usr/bin/id | 1 + src/initramfs/uclib-rootfs.old/usr/bin/killall | 1 + src/initramfs/uclib-rootfs.old/usr/bin/ldd | Bin 0 -> 11702 bytes src/initramfs/uclib-rootfs.old/usr/bin/less | 1 + src/initramfs/uclib-rootfs.old/usr/bin/logger | 1 + src/initramfs/uclib-rootfs.old/usr/bin/lzmacat | 1 + src/initramfs/uclib-rootfs.old/usr/bin/md5sum | 1 + src/initramfs/uclib-rootfs.old/usr/bin/nc | 1 + .../uclib-rootfs.old/usr/bin/ncurses5-config | 156 + src/initramfs/uclib-rootfs.old/usr/bin/nmeter | 1 + src/initramfs/uclib-rootfs.old/usr/bin/openvt | 1 + src/initramfs/uclib-rootfs.old/usr/bin/printf | 1 + src/initramfs/uclib-rootfs.old/usr/bin/readahead | 1 + src/initramfs/uclib-rootfs.old/usr/bin/readlink | 1 + src/initramfs/uclib-rootfs.old/usr/bin/realpath | 1 + src/initramfs/uclib-rootfs.old/usr/bin/rpm2cpio | 1 + src/initramfs/uclib-rootfs.old/usr/bin/sort | 1 + src/initramfs/uclib-rootfs.old/usr/bin/strace | Bin 0 -> 173636 bytes src/initramfs/uclib-rootfs.old/usr/bin/strings | 1 + src/initramfs/uclib-rootfs.old/usr/bin/tail | 1 + src/initramfs/uclib-rootfs.old/usr/bin/test | 1 + src/initramfs/uclib-rootfs.old/usr/bin/tftp | 1 + src/initramfs/uclib-rootfs.old/usr/bin/time | 1 + src/initramfs/uclib-rootfs.old/usr/bin/timeout | 1 + src/initramfs/uclib-rootfs.old/usr/bin/tr | 1 + src/initramfs/uclib-rootfs.old/usr/bin/uniq | 1 + src/initramfs/uclib-rootfs.old/usr/bin/unlzma | 1 + src/initramfs/uclib-rootfs.old/usr/bin/uptime | 1 + src/initramfs/uclib-rootfs.old/usr/bin/wc | 1 + src/initramfs/uclib-rootfs.old/usr/bin/wget | 1 + src/initramfs/uclib-rootfs.old/usr/bin/which | 1 + src/initramfs/uclib-rootfs.old/usr/bin/whoami | 1 + src/initramfs/uclib-rootfs.old/usr/bin/xargs | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libc.so | 5 + src/initramfs/uclib-rootfs.old/usr/lib/libcrypt.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libdl.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libm.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libnsl.so | 1 + .../uclib-rootfs.old/usr/lib/libpthread.so | 1 + .../uclib-rootfs.old/usr/lib/libresolv.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/librt.so | 1 + .../uclib-rootfs.old/usr/lib/libthread_db.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libutil.so | 1 + src/initramfs/uclib-rootfs.old/usr/lib/libz.so | 11 + src/initramfs/uclib-rootfs.old/usr/sbin/brctl | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/chroot | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/fbset | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/httpd | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/loadfont | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/rdate | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/setlogcons | 1 + src/initramfs/uclib-rootfs.old/usr/sbin/udhcpd | 1 + src/initramfs/uclib-rootfs/bin/ash | 1 + src/initramfs/uclib-rootfs/bin/bash | 1 + src/initramfs/uclib-rootfs/bin/busybox | Bin 0 -> 377052 bytes src/initramfs/uclib-rootfs/bin/cat | 1 + src/initramfs/uclib-rootfs/bin/chgrp | 1 + src/initramfs/uclib-rootfs/bin/chmod | 1 + src/initramfs/uclib-rootfs/bin/chown | 1 + src/initramfs/uclib-rootfs/bin/cp | 1 + src/initramfs/uclib-rootfs/bin/cpio | 1 + src/initramfs/uclib-rootfs/bin/cttyhack | 1 + src/initramfs/uclib-rootfs/bin/date | 1 + src/initramfs/uclib-rootfs/bin/dd | 1 + src/initramfs/uclib-rootfs/bin/df | 1 + src/initramfs/uclib-rootfs/bin/dmesg | 1 + src/initramfs/uclib-rootfs/bin/echo | 1 + src/initramfs/uclib-rootfs/bin/egrep | 1 + src/initramfs/uclib-rootfs/bin/false | 1 + src/initramfs/uclib-rootfs/bin/grep | 1 + src/initramfs/uclib-rootfs/bin/gunzip | 1 + src/initramfs/uclib-rootfs/bin/gzip | 1 + src/initramfs/uclib-rootfs/bin/ip | 1 + src/initramfs/uclib-rootfs/bin/ipcalc | 1 + src/initramfs/uclib-rootfs/bin/kill | 1 + src/initramfs/uclib-rootfs/bin/ln | 1 + src/initramfs/uclib-rootfs/bin/ls | 1 + src/initramfs/uclib-rootfs/bin/mkdir | 1 + src/initramfs/uclib-rootfs/bin/mknod | 1 + src/initramfs/uclib-rootfs/bin/mount | 1 + src/initramfs/uclib-rootfs/bin/mv | 1 + src/initramfs/uclib-rootfs/bin/nice | 1 + src/initramfs/uclib-rootfs/bin/pidof | 1 + src/initramfs/uclib-rootfs/bin/ping | 1 + src/initramfs/uclib-rootfs/bin/ps | 1 + src/initramfs/uclib-rootfs/bin/pwd | 1 + src/initramfs/uclib-rootfs/bin/rev | 1 + src/initramfs/uclib-rootfs/bin/rm | 1 + src/initramfs/uclib-rootfs/bin/sed | 1 + src/initramfs/uclib-rootfs/bin/sh | 1 + src/initramfs/uclib-rootfs/bin/sleep | 1 + src/initramfs/uclib-rootfs/bin/sync | 1 + src/initramfs/uclib-rootfs/bin/tar | 1 + src/initramfs/uclib-rootfs/bin/touch | 1 + src/initramfs/uclib-rootfs/bin/true | 1 + src/initramfs/uclib-rootfs/bin/umount | 1 + src/initramfs/uclib-rootfs/bin/uname | 1 + src/initramfs/uclib-rootfs/bin/usleep | 1 + src/initramfs/uclib-rootfs/bin/vi | 1 + src/initramfs/uclib-rootfs/bin/zcat | 1 + src/initramfs/uclib-rootfs/lib/ld-2.11.2.so | Bin 0 -> 113964 bytes src/initramfs/uclib-rootfs/lib/ld-linux.so.2 | 1 + src/initramfs/uclib-rootfs/lib/libc.so.6 | Bin 0 -> 1315080 bytes src/initramfs/uclib-rootfs/lib/libdbus-1.so.3 | Bin 0 -> 231492 bytes src/initramfs/uclib-rootfs/lib/libdl.so.2 | Bin 0 -> 9736 bytes src/initramfs/uclib-rootfs/lib/libhal.so.1 | Bin 0 -> 61852 bytes src/initramfs/uclib-rootfs/lib/libm.so.6 | Bin 0 -> 149392 bytes src/initramfs/uclib-rootfs/lib/libpthread.so.0 | Bin 0 -> 117105 bytes src/initramfs/uclib-rootfs/lib/librt.so.1 | Bin 0 -> 30684 bytes src/initramfs/uclib-rootfs/sbin/bootchartd | 1 + src/initramfs/uclib-rootfs/sbin/fbsplash | 1 + src/initramfs/uclib-rootfs/sbin/fdisk | 1 + src/initramfs/uclib-rootfs/sbin/getty | 1 + src/initramfs/uclib-rootfs/sbin/halt | 1 + src/initramfs/uclib-rootfs/sbin/hdparm | 1 + src/initramfs/uclib-rootfs/sbin/hwclock | 1 + src/initramfs/uclib-rootfs/sbin/inotifyd | 1 + src/initramfs/uclib-rootfs/sbin/insmod | 1 + src/initramfs/uclib-rootfs/sbin/klogd | 1 + src/initramfs/uclib-rootfs/sbin/ldconfig | Bin 0 -> 651456 bytes src/initramfs/uclib-rootfs/sbin/loadkmap | 1 + src/initramfs/uclib-rootfs/sbin/logread | 1 + src/initramfs/uclib-rootfs/sbin/lsmod | 1 + src/initramfs/uclib-rootfs/sbin/lspci | 1 + src/initramfs/uclib-rootfs/sbin/lsusb | 1 + src/initramfs/uclib-rootfs/sbin/mdev | 1 + src/initramfs/uclib-rootfs/sbin/mkdosfs | 1 + src/initramfs/uclib-rootfs/sbin/mkfs.vfat | 1 + src/initramfs/uclib-rootfs/sbin/mkswap | 1 + src/initramfs/uclib-rootfs/sbin/modinfo | 1 + src/initramfs/uclib-rootfs/sbin/modprobe | 1 + src/initramfs/uclib-rootfs/sbin/poweroff | 1 + src/initramfs/uclib-rootfs/sbin/reboot | 1 + src/initramfs/uclib-rootfs/sbin/rmmod | 1 + src/initramfs/uclib-rootfs/sbin/route | 1 + src/initramfs/uclib-rootfs/sbin/start-stop-daemon | 1 + src/initramfs/uclib-rootfs/sbin/swapoff | 1 + src/initramfs/uclib-rootfs/sbin/swapon | 1 + src/initramfs/uclib-rootfs/sbin/switch_root | 1 + src/initramfs/uclib-rootfs/sbin/sysctl | 1 + src/initramfs/uclib-rootfs/sbin/syslogd | 1 + src/initramfs/uclib-rootfs/sbin/tunctl | 1 + src/initramfs/uclib-rootfs/sbin/udhcpc | 1 + src/initramfs/uclib-rootfs/sbin/vconfig | 1 + src/initramfs/uclib-rootfs/sbin/watchdog | 1 + src/initramfs/uclib-rootfs/sbin/zcip | 1 + src/initramfs/uclib-rootfs/usr/bin/[ | 1 + src/initramfs/uclib-rootfs/usr/bin/[[ | 1 + src/initramfs/uclib-rootfs/usr/bin/ar | 1 + src/initramfs/uclib-rootfs/usr/bin/arping | 1 + src/initramfs/uclib-rootfs/usr/bin/awk | 1 + src/initramfs/uclib-rootfs/usr/bin/basename | 1 + src/initramfs/uclib-rootfs/usr/bin/bunzip2 | 1 + src/initramfs/uclib-rootfs/usr/bin/bzcat | 1 + src/initramfs/uclib-rootfs/usr/bin/bzip2 | 1 + src/initramfs/uclib-rootfs/usr/bin/chvt | 1 + src/initramfs/uclib-rootfs/usr/bin/cut | 1 + src/initramfs/uclib-rootfs/usr/bin/deallocvt | 1 + src/initramfs/uclib-rootfs/usr/bin/du | 1 + src/initramfs/uclib-rootfs/usr/bin/dumpleases | 1 + src/initramfs/uclib-rootfs/usr/bin/eject | 1 + src/initramfs/uclib-rootfs/usr/bin/env | 1 + src/initramfs/uclib-rootfs/usr/bin/expr | 1 + src/initramfs/uclib-rootfs/usr/bin/fgconsole | 1 + src/initramfs/uclib-rootfs/usr/bin/find | 1 + src/initramfs/uclib-rootfs/usr/bin/flock | 1 + src/initramfs/uclib-rootfs/usr/bin/free | 1 + src/initramfs/uclib-rootfs/usr/bin/ftpget | 1 + src/initramfs/uclib-rootfs/usr/bin/ftpput | 1 + src/initramfs/uclib-rootfs/usr/bin/head | 1 + src/initramfs/uclib-rootfs/usr/bin/id | 1 + src/initramfs/uclib-rootfs/usr/bin/killall | 1 + src/initramfs/uclib-rootfs/usr/bin/ld | Bin 0 -> 529192 bytes src/initramfs/uclib-rootfs/usr/bin/ldd | 193 ++ src/initramfs/uclib-rootfs/usr/bin/less | 1 + src/initramfs/uclib-rootfs/usr/bin/logger | 1 + src/initramfs/uclib-rootfs/usr/bin/lspci | 1 + src/initramfs/uclib-rootfs/usr/bin/lsusb | 1 + src/initramfs/uclib-rootfs/usr/bin/lzcat | 1 + src/initramfs/uclib-rootfs/usr/bin/lzma | 1 + src/initramfs/uclib-rootfs/usr/bin/lzmacat | 1 + src/initramfs/uclib-rootfs/usr/bin/md5sum | 1 + src/initramfs/uclib-rootfs/usr/bin/nc | 1 + src/initramfs/uclib-rootfs/usr/bin/nmeter | 1 + src/initramfs/uclib-rootfs/usr/bin/openvt | 1 + src/initramfs/uclib-rootfs/usr/bin/printf | 1 + src/initramfs/uclib-rootfs/usr/bin/readahead | 1 + src/initramfs/uclib-rootfs/usr/bin/readlink | 1 + src/initramfs/uclib-rootfs/usr/bin/realpath | 1 + src/initramfs/uclib-rootfs/usr/bin/rpm2cpio | 1 + src/initramfs/uclib-rootfs/usr/bin/rzscontrol | Bin 0 -> 7040 bytes src/initramfs/uclib-rootfs/usr/bin/smemcap | 1 + src/initramfs/uclib-rootfs/usr/bin/sort | 1 + src/initramfs/uclib-rootfs/usr/bin/strace | Bin 0 -> 207880 bytes src/initramfs/uclib-rootfs/usr/bin/strings | 1 + src/initramfs/uclib-rootfs/usr/bin/tail | 1 + src/initramfs/uclib-rootfs/usr/bin/test | 1 + src/initramfs/uclib-rootfs/usr/bin/tftp | 1 + src/initramfs/uclib-rootfs/usr/bin/time | 1 + src/initramfs/uclib-rootfs/usr/bin/timeout | 1 + src/initramfs/uclib-rootfs/usr/bin/tr | 1 + src/initramfs/uclib-rootfs/usr/bin/uniq | 1 + src/initramfs/uclib-rootfs/usr/bin/unlzma | 1 + src/initramfs/uclib-rootfs/usr/bin/unxz | 1 + src/initramfs/uclib-rootfs/usr/bin/uptime | 1 + src/initramfs/uclib-rootfs/usr/bin/wc | 1 + src/initramfs/uclib-rootfs/usr/bin/wget | 1 + src/initramfs/uclib-rootfs/usr/bin/which | 1 + src/initramfs/uclib-rootfs/usr/bin/whoami | 1 + src/initramfs/uclib-rootfs/usr/bin/xargs | 1 + src/initramfs/uclib-rootfs/usr/bin/xz | 1 + src/initramfs/uclib-rootfs/usr/bin/xzcat | 1 + .../usr/lib/libbfd-2.20.1-system.20100303.so | Bin 0 -> 862364 bytes .../uclib-rootfs/usr/lib/libfusion-1.2.so.9 | Bin 0 -> 32432 bytes src/initramfs/uclib-rootfs/usr/lib/libgcc_s.so.1 | Bin 0 -> 116600 bytes src/initramfs/uclib-rootfs/usr/lib/libhal.so.1 | Bin 0 -> 61852 bytes src/initramfs/uclib-rootfs/usr/lib/libhd.so.16 | Bin 0 -> 1865944 bytes src/initramfs/uclib-rootfs/usr/lib/libm.so | 1 + src/initramfs/uclib-rootfs/usr/lib/libpcre.so.3 | Bin 0 -> 194216 bytes src/initramfs/uclib-rootfs/usr/lib/libz.so.1 | Bin 0 -> 79980 bytes src/initramfs/uclib-rootfs/usr/sbin/brctl | 1 + src/initramfs/uclib-rootfs/usr/sbin/chroot | 1 + src/initramfs/uclib-rootfs/usr/sbin/dhcprelay | 1 + src/initramfs/uclib-rootfs/usr/sbin/fbset | 1 + src/initramfs/uclib-rootfs/usr/sbin/httpd | 1 + src/initramfs/uclib-rootfs/usr/sbin/hwinfo | Bin 0 -> 28020 bytes src/initramfs/uclib-rootfs/usr/sbin/loadfont | 1 + src/initramfs/uclib-rootfs/usr/sbin/rdate | 1 + src/initramfs/uclib-rootfs/usr/sbin/setlogcons | 1 + src/initramfs/uclib-rootfs/usr/sbin/udhcpd | 1 + src/installer/OpenSLX/OSExport/BlockDevice/AoE.pm | 95 + src/installer/OpenSLX/OSExport/BlockDevice/Base.pm | 77 + .../OpenSLX/OSExport/BlockDevice/DNBD2.pm | 91 + src/installer/OpenSLX/OSExport/BlockDevice/LBD.pm | 76 + src/installer/OpenSLX/OSExport/BlockDevice/NBD.pm | 87 + src/installer/OpenSLX/OSExport/Distro/Any.pm | 66 + src/installer/OpenSLX/OSExport/Distro/Base.pm | 71 + src/installer/OpenSLX/OSExport/Distro/Debian.pm | 60 + src/installer/OpenSLX/OSExport/Distro/Fedora.pm | 65 + src/installer/OpenSLX/OSExport/Distro/Gentoo.pm | 59 + src/installer/OpenSLX/OSExport/Distro/SciLin.pm | 94 + src/installer/OpenSLX/OSExport/Distro/Suse.pm | 145 + src/installer/OpenSLX/OSExport/Distro/Ubuntu.pm | 108 + src/installer/OpenSLX/OSExport/Engine.pm | 364 +++ src/installer/OpenSLX/OSExport/FileSystem/Base.pm | 148 + src/installer/OpenSLX/OSExport/FileSystem/NFS.pm | 238 ++ .../OpenSLX/OSExport/FileSystem/SquashFS.pm | 410 +++ src/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm | 31 + src/installer/OpenSLX/OSSetup/Distro/Base.pm | 371 +++ src/installer/OpenSLX/OSSetup/Distro/Debian.pm | 135 + src/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm | 74 + src/installer/OpenSLX/OSSetup/Distro/Fedora.pm | 48 + src/installer/OpenSLX/OSSetup/Distro/Gentoo.pm | 33 + src/installer/OpenSLX/OSSetup/Distro/Scilin.pm | 48 + src/installer/OpenSLX/OSSetup/Distro/Suse.pm | 98 + src/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm | 119 + src/installer/OpenSLX/OSSetup/Engine.pm | 1929 ++++++++++++ src/installer/OpenSLX/OSSetup/MetaPackager/Base.pm | 98 + src/installer/OpenSLX/OSSetup/MetaPackager/apt.pm | 142 + .../OpenSLX/OSSetup/MetaPackager/smart.pm | 127 + src/installer/OpenSLX/OSSetup/MetaPackager/yum.pm | 117 + .../OpenSLX/OSSetup/MetaPackager/zypper.pm | 122 + src/installer/OpenSLX/OSSetup/Packager/Base.pm | 98 + src/installer/OpenSLX/OSSetup/Packager/dpkg.pm | 102 + src/installer/OpenSLX/OSSetup/Packager/rpm.pm | 89 + src/installer/slxos-export | 323 ++ src/installer/slxos-setup | 402 +++ src/lib/OpenSLX/Basics.pm | 856 ++++++ src/lib/OpenSLX/ConfigFolder.pm | 154 + src/lib/OpenSLX/DistroUtils.pm | 90 + src/lib/OpenSLX/DistroUtils/Base.pm | 429 +++ src/lib/OpenSLX/DistroUtils/Engine.pm | 58 + src/lib/OpenSLX/DistroUtils/InitFile.pm | 232 ++ src/lib/OpenSLX/DistroUtils/Suse.pm | 174 ++ src/lib/OpenSLX/DistroUtils/Ubuntu.pm | 172 ++ src/lib/OpenSLX/LibScanner.pm | 262 ++ src/lib/OpenSLX/ScopedResource.pm | 174 ++ src/lib/OpenSLX/Syscall.pm | 129 + src/lib/OpenSLX/Translations/de.pm | 359 +++ src/lib/OpenSLX/Translations/posix.pm | 359 +++ src/lib/OpenSLX/Utils.pm | 701 +++++ src/lib/distro-info/clone-filter.example | 14 + src/lib/distro-info/debian-3.1/mirrors/base | 287 ++ .../distro-info/debian-3.1/prereqfiles/etc/hosts | 1 + .../prereqfiles/var/cache/debconf/slx-defaults.dat | 16 + src/lib/distro-info/debian-3.1/settings.default | 41 + src/lib/distro-info/debian-3.1/settings.example | 17 + src/lib/distro-info/debian-4.0/mirrors/base | 287 ++ .../distro-info/debian-4.0/prereqfiles/etc/hosts | 1 + src/lib/distro-info/debian-4.0/settings.default | 32 + src/lib/distro-info/debian-4.0/settings.example | 17 + src/lib/distro-info/debian-4.0_amd64/mirrors/base | 287 ++ .../debian-4.0_amd64/prereqfiles/etc/hosts | 1 + .../distro-info/debian-4.0_amd64/settings.default | 41 + .../distro-info/debian-4.0_amd64/settings.example | 17 + src/lib/distro-info/debian-5.0/mirrors/base | 287 ++ .../distro-info/debian-5.0/prereqfiles/etc/hosts | 1 + src/lib/distro-info/debian-5.0/settings.default | 32 + src/lib/distro-info/debian-5.0/settings.example | 17 + src/lib/distro-info/fedora-6/export-filter.example | 15 + src/lib/distro-info/fedora-6/mirrors/base | 105 + src/lib/distro-info/fedora-6/mirrors/base_update | 90 + src/lib/distro-info/fedora-6/prereqfiles/etc/hosts | 1 + src/lib/distro-info/fedora-6/settings.default | 125 + src/lib/distro-info/fedora-6/settings.example | 20 + .../fedora-6/trusted-package-keys/RPM-GPG-KEY | 34 + .../fedora-6/trusted-package-keys/RPM-GPG-KEY-beta | 32 + .../trusted-package-keys/RPM-GPG-KEY-fedora | 27 + .../trusted-package-keys/RPM-GPG-KEY-fedora-extras | 35 + .../trusted-package-keys/RPM-GPG-KEY-fedora-legacy | 30 + .../RPM-GPG-KEY-fedora-rawhide | 21 + .../trusted-package-keys/RPM-GPG-KEY-fedora-test | 20 + .../trusted-package-keys/RPM-GPG-KEY-rawhide | 24 + .../fedora-6_x86_64/export-filter.example | 15 + src/lib/distro-info/fedora-6_x86_64/mirrors/base | 101 + .../fedora-6_x86_64/mirrors/base_update | 90 + .../fedora-6_x86_64/prereqfiles/etc/hosts | 1 + .../distro-info/fedora-6_x86_64/settings.default | 125 + .../distro-info/fedora-6_x86_64/settings.example | 20 + .../trusted-package-keys/RPM-GPG-KEY | 34 + .../trusted-package-keys/RPM-GPG-KEY-beta | 32 + .../trusted-package-keys/RPM-GPG-KEY-fedora | 27 + .../trusted-package-keys/RPM-GPG-KEY-fedora-extras | 35 + .../trusted-package-keys/RPM-GPG-KEY-fedora-legacy | 30 + .../RPM-GPG-KEY-fedora-rawhide | 21 + .../trusted-package-keys/RPM-GPG-KEY-fedora-test | 20 + .../trusted-package-keys/RPM-GPG-KEY-rawhide | 24 + .../distro-info/scilin-4.7/export-filter.example | 15 + .../distro-info/scilin-4.7/prereqfiles/etc/group | 33 + .../distro-info/scilin-4.7/prereqfiles/etc/hosts | 1 + .../distro-info/scilin-4.7/prereqfiles/etc/passwd | 14 + .../distro-info/scilin-4.7/prereqfiles/etc/shadow | 14 + src/lib/distro-info/scilin-4.7/settings.default | 30 + src/lib/distro-info/scilin-4.7/settings.example | 17 + .../distro-info/scilin-5.3/export-filter.example | 15 + .../distro-info/scilin-5.3/prereqfiles/etc/group | 33 + .../distro-info/scilin-5.3/prereqfiles/etc/hosts | 1 + .../distro-info/scilin-5.3/prereqfiles/etc/passwd | 14 + .../distro-info/scilin-5.3/prereqfiles/etc/shadow | 14 + src/lib/distro-info/scilin-5.3/settings.default | 30 + src/lib/distro-info/scilin-5.3/settings.example | 17 + .../distro-info/scilin-5.4/export-filter.example | 15 + .../distro-info/scilin-5.4/prereqfiles/etc/group | 33 + .../distro-info/scilin-5.4/prereqfiles/etc/hosts | 1 + .../distro-info/scilin-5.4/prereqfiles/etc/passwd | 14 + .../distro-info/scilin-5.4/prereqfiles/etc/shadow | 14 + src/lib/distro-info/scilin-5.4/settings.default | 30 + src/lib/distro-info/scilin-5.4/settings.example | 17 + .../scilin-5.4_x86_64/export-filter.example | 15 + .../scilin-5.4_x86_64/prereqfiles/etc/group | 33 + .../scilin-5.4_x86_64/prereqfiles/etc/hosts | 1 + .../scilin-5.4_x86_64/prereqfiles/etc/passwd | 14 + .../scilin-5.4_x86_64/prereqfiles/etc/shadow | 14 + .../distro-info/scilin-5.4_x86_64/settings.default | 30 + .../distro-info/scilin-5.4_x86_64/settings.example | 17 + .../distro-info/scilin-5.5/export-filter.example | 15 + .../distro-info/scilin-5.5/prereqfiles/etc/group | 33 + .../distro-info/scilin-5.5/prereqfiles/etc/hosts | 1 + .../distro-info/scilin-5.5/prereqfiles/etc/passwd | 14 + .../distro-info/scilin-5.5/prereqfiles/etc/shadow | 14 + src/lib/distro-info/scilin-5.5/settings.default | 30 + src/lib/distro-info/scilin-5.5/settings.example | 17 + .../scilin-5.5_x86_64/export-filter.example | 15 + .../scilin-5.5_x86_64/prereqfiles/etc/group | 33 + .../scilin-5.5_x86_64/prereqfiles/etc/hosts | 1 + .../scilin-5.5_x86_64/prereqfiles/etc/passwd | 14 + .../scilin-5.5_x86_64/prereqfiles/etc/shadow | 14 + .../distro-info/scilin-5.5_x86_64/settings.default | 30 + .../distro-info/scilin-5.5_x86_64/settings.example | 17 + .../distro-info/suse-10.2/export-filter.example | 15 + src/lib/distro-info/suse-10.2/mirrors/base | 2 + src/lib/distro-info/suse-10.2/mirrors/base_non-oss | 2 + src/lib/distro-info/suse-10.2/mirrors/base_update | 6 + .../distro-info/suse-10.2/prereqfiles/etc/group | 33 + .../distro-info/suse-10.2/prereqfiles/etc/hosts | 1 + .../distro-info/suse-10.2/prereqfiles/etc/passwd | 14 + .../distro-info/suse-10.2/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-10.2/settings.default | 1061 +++++++ src/lib/distro-info/suse-10.2/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-44201d5d.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-44748aba.asc | 20 + .../gpg-pubkey-9c800aca-40d8063e.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-10.2/trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes .../suse-10.2_x86_64/export-filter.example | 15 + src/lib/distro-info/suse-10.2_x86_64/mirrors/base | 2 + .../suse-10.2_x86_64/mirrors/base_non-oss | 2 + .../suse-10.2_x86_64/mirrors/base_update | 5 + .../suse-10.2_x86_64/prereqfiles/etc/group | 33 + .../suse-10.2_x86_64/prereqfiles/etc/hosts | 1 + .../suse-10.2_x86_64/prereqfiles/etc/passwd | 14 + .../suse-10.2_x86_64/prereqfiles/etc/shadow | 14 + .../distro-info/suse-10.2_x86_64/settings.default | 1061 +++++++ .../distro-info/suse-10.2_x86_64/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-44201d5d.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-44748aba.asc | 20 + .../gpg-pubkey-9c800aca-40d8063e.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes .../distro-info/suse-10.3/export-filter.example | 15 + src/lib/distro-info/suse-10.3/mirrors/base | 250 ++ src/lib/distro-info/suse-10.3/mirrors/base_non-oss | 248 ++ src/lib/distro-info/suse-10.3/mirrors/base_update | 251 ++ .../distro-info/suse-10.3/prereqfiles/etc/group | 33 + .../distro-info/suse-10.3/prereqfiles/etc/hosts | 1 + .../distro-info/suse-10.3/prereqfiles/etc/passwd | 14 + .../distro-info/suse-10.3/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-10.3/settings.default | 1064 +++++++ src/lib/distro-info/suse-10.3/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-44201d5d.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-44748aba.asc | 20 + .../gpg-pubkey-9c800aca-40d8063e.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-10.3/trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes .../suse-10.3_x86_64/export-filter.example | 15 + src/lib/distro-info/suse-10.3_x86_64/mirrors/base | 246 ++ .../suse-10.3_x86_64/mirrors/base_non-oss | 241 ++ .../suse-10.3_x86_64/mirrors/base_update | 246 ++ .../suse-10.3_x86_64/prereqfiles/etc/group | 33 + .../suse-10.3_x86_64/prereqfiles/etc/hosts | 1 + .../suse-10.3_x86_64/prereqfiles/etc/passwd | 14 + .../suse-10.3_x86_64/prereqfiles/etc/shadow | 14 + .../distro-info/suse-10.3_x86_64/settings.default | 972 ++++++ .../distro-info/suse-10.3_x86_64/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-44201d5d.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-44748aba.asc | 20 + .../gpg-pubkey-9c800aca-40d8063e.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes .../distro-info/suse-11.0/export-filter.example | 15 + src/lib/distro-info/suse-11.0/mirrors/base | 252 ++ src/lib/distro-info/suse-11.0/mirrors/base_non-oss | 246 ++ src/lib/distro-info/suse-11.0/mirrors/base_update | 252 ++ .../distro-info/suse-11.0/prereqfiles/etc/group | 33 + .../distro-info/suse-11.0/prereqfiles/etc/hosts | 1 + .../distro-info/suse-11.0/prereqfiles/etc/passwd | 14 + .../distro-info/suse-11.0/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-11.0/settings.default | 1145 +++++++ src/lib/distro-info/suse-11.0/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-11.0/trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes src/lib/distro-info/suse-11.0_x86_64/mirrors/base | 248 ++ .../suse-11.0_x86_64/mirrors/base_non-oss | 240 ++ .../suse-11.0_x86_64/mirrors/base_update | 246 ++ .../suse-11.0_x86_64/prereqfiles/etc/group | 33 + .../suse-11.0_x86_64/prereqfiles/etc/hosts | 1 + .../suse-11.0_x86_64/prereqfiles/etc/passwd | 14 + .../suse-11.0_x86_64/prereqfiles/etc/shadow | 14 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 5604 bytes .../distro-info/suse-11.1/export-filter.example | 15 + src/lib/distro-info/suse-11.1/mirrors/base | 252 ++ src/lib/distro-info/suse-11.1/mirrors/base_non-oss | 250 ++ src/lib/distro-info/suse-11.1/mirrors/base_update | 252 ++ .../distro-info/suse-11.1/prereqfiles/etc/group | 33 + .../distro-info/suse-11.1/prereqfiles/etc/hosts | 1 + .../distro-info/suse-11.1/prereqfiles/etc/passwd | 14 + .../distro-info/suse-11.1/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-11.1/settings.default | 1126 +++++++ src/lib/distro-info/suse-11.1/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-49144c3f.asc | 19 + .../gpg-pubkey-56b4177a-47965b33.asc | 19 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-11.1/trusted-package-keys/pubring.gpg | Bin 0 -> 6926 bytes src/lib/distro-info/suse-11.1_x86_64/mirrors/base | 247 ++ .../suse-11.1_x86_64/mirrors/base_non-oss | 246 ++ .../suse-11.1_x86_64/mirrors/base_update | 246 ++ .../suse-11.1_x86_64/prereqfiles/etc/group | 33 + .../suse-11.1_x86_64/prereqfiles/etc/hosts | 1 + .../suse-11.1_x86_64/prereqfiles/etc/passwd | 14 + .../suse-11.1_x86_64/prereqfiles/etc/shadow | 14 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-49144c3f.asc | 19 + .../gpg-pubkey-56b4177a-47965b33.asc | 19 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 6926 bytes .../distro-info/suse-11.2/export-filter.example | 15 + src/lib/distro-info/suse-11.2/mirrors/base | 252 ++ src/lib/distro-info/suse-11.2/mirrors/base_non-oss | 250 ++ src/lib/distro-info/suse-11.2/mirrors/base_update | 252 ++ .../distro-info/suse-11.2/prereqfiles/etc/group | 33 + .../distro-info/suse-11.2/prereqfiles/etc/hosts | 1 + .../distro-info/suse-11.2/prereqfiles/etc/passwd | 14 + .../distro-info/suse-11.2/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-11.2/settings.default | 1126 +++++++ src/lib/distro-info/suse-11.2/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-49144c3f.asc | 19 + .../gpg-pubkey-56b4177a-47965b33.asc | 19 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-11.2/trusted-package-keys/pubring.gpg | Bin 0 -> 6926 bytes src/lib/distro-info/suse-11.2_x86_64/mirrors/base | 247 ++ .../suse-11.2_x86_64/mirrors/base_non-oss | 246 ++ .../suse-11.2_x86_64/mirrors/base_update | 246 ++ .../suse-11.2_x86_64/prereqfiles/etc/group | 33 + .../suse-11.2_x86_64/prereqfiles/etc/hosts | 1 + .../suse-11.2_x86_64/prereqfiles/etc/passwd | 14 + .../suse-11.2_x86_64/prereqfiles/etc/shadow | 14 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-49144c3f.asc | 19 + .../gpg-pubkey-56b4177a-47965b33.asc | 19 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 6926 bytes .../distro-info/suse-11.3/export-filter.example | 15 + src/lib/distro-info/suse-11.3/mirrors/base | 252 ++ src/lib/distro-info/suse-11.3/mirrors/base_non-oss | 250 ++ src/lib/distro-info/suse-11.3/mirrors/base_update | 252 ++ .../distro-info/suse-11.3/prereqfiles/etc/group | 33 + .../distro-info/suse-11.3/prereqfiles/etc/hosts | 1 + .../distro-info/suse-11.3/prereqfiles/etc/passwd | 14 + .../distro-info/suse-11.3/prereqfiles/etc/shadow | 14 + src/lib/distro-info/suse-11.3/settings.default | 1126 +++++++ src/lib/distro-info/suse-11.3/settings.example | 23 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-4be01a65.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-4be1884d.asc | 19 + .../gpg-pubkey-56b4177a-4be18cab.asc | 19 + .../gpg-pubkey-7e2e3b05-4be037ca.asc | 18 + .../gpg-pubkey-9c800aca-4be01999.asc | 30 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../suse-11.3/trusted-package-keys/pubring.gpg | 0 src/lib/distro-info/suse-11.3_x86_64/mirrors/base | 247 ++ .../suse-11.3_x86_64/mirrors/base_non-oss | 246 ++ .../suse-11.3_x86_64/mirrors/base_update | 246 ++ .../suse-11.3_x86_64/prereqfiles/etc/group | 33 + .../suse-11.3_x86_64/prereqfiles/etc/hosts | 1 + .../suse-11.3_x86_64/prereqfiles/etc/passwd | 14 + .../suse-11.3_x86_64/prereqfiles/etc/shadow | 14 + .../gpg-pubkey-0dfb3188-41ed929b.asc | 17 + .../gpg-pubkey-307e3d54-481f30aa.asc | 13 + .../gpg-pubkey-3d25d3d9-36e12d04.asc | 30 + .../gpg-pubkey-3dbdc284-49144c3f.asc | 19 + .../gpg-pubkey-56b4177a-47965b33.asc | 19 + .../gpg-pubkey-7e2e3b05-4816488f.asc | 20 + .../gpg-pubkey-9c800aca-481f343a.asc | 37 + .../gpg-pubkey-a1912208-446a0899.asc | 31 + .../trusted-package-keys/pubring.gpg | Bin 0 -> 6926 bytes src/lib/distro-info/ubuntu-10.04/mirrors/base | 162 + .../distro-info/ubuntu-10.04/mirrors/base_security | 162 + .../distro-info/ubuntu-10.04/mirrors/base_updates | 171 ++ .../distro-info/ubuntu-10.04/prereqfiles/etc/hosts | 1 + src/lib/distro-info/ubuntu-10.04/settings.default | 76 + src/lib/distro-info/ubuntu-10.04/settings.example | 23 + src/lib/distro-info/ubuntu-8.04/mirrors/base | 171 ++ .../distro-info/ubuntu-8.04/mirrors/base_security | 163 + .../distro-info/ubuntu-8.04/mirrors/base_updates | 171 ++ .../distro-info/ubuntu-8.04/prereqfiles/etc/hosts | 1 + src/lib/distro-info/ubuntu-8.04/settings.default | 76 + src/lib/distro-info/ubuntu-8.04/settings.example | 23 + src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base | 171 ++ .../ubuntu-8.04_amd64/mirrors/base_security | 163 + .../ubuntu-8.04_amd64/mirrors/base_updates | 171 ++ .../ubuntu-8.04_amd64/prereqfiles/etc/hosts | 1 + .../distro-info/ubuntu-8.04_amd64/settings.default | 76 + .../distro-info/ubuntu-8.04_amd64/settings.example | 23 + src/lib/distro-info/ubuntu-8.10/mirrors/base | 171 ++ .../distro-info/ubuntu-8.10/mirrors/base_security | 163 + .../distro-info/ubuntu-8.10/mirrors/base_updates | 171 ++ .../distro-info/ubuntu-8.10/prereqfiles/etc/hosts | 1 + src/lib/distro-info/ubuntu-8.10/settings.default | 76 + src/lib/distro-info/ubuntu-8.10/settings.example | 23 + src/lib/distro-info/ubuntu-9.04/mirrors/base | 162 + .../distro-info/ubuntu-9.04/mirrors/base_security | 162 + .../distro-info/ubuntu-9.04/mirrors/base_updates | 171 ++ .../distro-info/ubuntu-9.04/prereqfiles/etc/hosts | 1 + src/lib/distro-info/ubuntu-9.04/settings.default | 76 + src/lib/distro-info/ubuntu-9.04/settings.example | 23 + src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base | 171 ++ .../ubuntu-9.04_amd64/mirrors/base_security | 163 + .../ubuntu-9.04_amd64/mirrors/base_updates | 171 ++ .../ubuntu-9.04_amd64/prereqfiles/etc/hosts | 1 + .../distro-info/ubuntu-9.04_amd64/settings.default | 76 + .../distro-info/ubuntu-9.04_amd64/settings.example | 23 + src/lib/distro-info/ubuntu-9.10/mirrors/base | 162 + .../distro-info/ubuntu-9.10/mirrors/base_security | 162 + .../distro-info/ubuntu-9.10/mirrors/base_updates | 171 ++ .../distro-info/ubuntu-9.10/prereqfiles/etc/hosts | 1 + src/lib/distro-info/ubuntu-9.10/settings.default | 76 + src/lib/distro-info/ubuntu-9.10/settings.example | 23 + src/os-plugins/OpenSLX/OSPlugin/Base.pm | 631 ++++ src/os-plugins/OpenSLX/OSPlugin/Engine.pm | 857 ++++++ src/os-plugins/OpenSLX/OSPlugin/Roster.pm | 213 ++ .../bootsplash/OpenSLX/OSPlugin/bootsplash.pm | 253 ++ src/os-plugins/plugins/bootsplash/XX_bootsplash.sh | 56 + .../plugins/bootsplash/files/lib/libglib-2.0.so.0 | Bin 0 -> 822344 bytes .../plugins/bootsplash/files/lib/libsplashy.so.1 | Bin 0 -> 18948 bytes .../bootsplash/files/lib/libsplashycnf.so.1 | Bin 0 -> 7804 bytes .../plugins/bootsplash/files/sbin/splashy | Bin 0 -> 54215 bytes .../plugins/bootsplash/files/sbin/splashy_config | Bin 0 -> 66416 bytes .../plugins/bootsplash/files/sbin/splashy_update | Bin 0 -> 9611 bytes .../bootsplash/files/themes/openslx/blank.ttf | 0 .../bootsplash/files/themes/openslx/openslx.png | Bin 0 -> 89872 bytes .../bootsplash/files/themes/openslx/theme.xml | 138 + .../bootsplash/files/usr/lib/libdirect-1.2.so.9 | Bin 0 -> 80552 bytes .../bootsplash/files/usr/lib/libdirectfb-1.2.so.9 | Bin 0 -> 474652 bytes .../plugins/bootsplash/files/usr/lib/libmagic.so.1 | Bin 0 -> 105596 bytes .../init-hooks/05-have-kernelvars/bootsplash.sh | 18 + .../init-hooks/10-nw-if-config/bootsplash.sh | 1 + .../init-hooks/20-nw-bridge-config/bootsplash.sh | 1 + .../init-hooks/25-have-ip-config/bootsplash.sh | 1 + .../init-hooks/35-have-network-root/bootsplash.sh | 1 + .../init-hooks/40-started-hw-config/bootsplash.sh | 1 + .../init-hooks/50-have-layered-fs/bootsplash.sh | 1 + .../init-hooks/60-have-servconfig/bootsplash.sh | 1 + .../init-hooks/70-before-plugins/bootsplash.sh | 1 + .../init-hooks/80-after-plugins/bootsplash.sh | 1 + .../init-hooks/85-have-initial-boot/bootsplash.sh | 1 + .../init-hooks/90-postinit-done/bootsplash.sh | 1 + .../bootsplash/init-hooks/95-cleanup/bootsplash.sh | 1 + .../init-hooks/99-handing-over/bootsplash.sh | 1 + .../plugins/desktop/OpenSLX/Distro/Base.pm | 432 +++ .../plugins/desktop/OpenSLX/Distro/Debian.pm | 63 + .../plugins/desktop/OpenSLX/Distro/Fedora.pm | 30 + .../plugins/desktop/OpenSLX/Distro/Gentoo.pm | 30 + .../plugins/desktop/OpenSLX/Distro/Scilin.pm | 132 + .../plugins/desktop/OpenSLX/Distro/Suse.pm | 162 + .../plugins/desktop/OpenSLX/Distro/Suse_10_2.pm | 54 + .../plugins/desktop/OpenSLX/Distro/Ubuntu.pm | 169 ++ .../plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm | 161 + .../plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm | 161 + .../plugins/desktop/OpenSLX/OSPlugin/desktop.pm | 712 +++++ src/os-plugins/plugins/desktop/XX_desktop.sh | 33 + .../plugins/desktop/themes/gdm/openslx-legacy | 1 + .../themes/gdm/openslx/GdmGreeterTheme.desktop | 8 + .../plugins/desktop/themes/gdm/openslx/color.png | Bin 0 -> 177 bytes .../desktop/themes/gdm/openslx/environment.png | Bin 0 -> 4296 bytes .../themes/gdm/openslx/language-selector.png | Bin 0 -> 2253 bytes .../gdm/openslx/language-selector_inactive.png | Bin 0 -> 2198 bytes .../desktop/themes/gdm/openslx/main-runner.png | Bin 0 -> 153 bytes .../themes/gdm/openslx/openslx-logo-main.png | Bin 0 -> 82050 bytes .../desktop/themes/gdm/openslx/openslx-logo.png | Bin 0 -> 9113 bytes .../desktop/themes/gdm/openslx/sessions.png | Bin 0 -> 4245 bytes .../themes/gdm/openslx/sessions_inactive.png | Bin 0 -> 4066 bytes .../plugins/desktop/themes/gdm/openslx/system.png | Bin 0 -> 4257 bytes .../desktop/themes/gdm/openslx/system_inactive.png | Bin 0 -> 4091 bytes .../plugins/desktop/themes/gdm/openslx/theme.xml | 224 ++ .../themes/gdm/openslx/welcome-time-shadowed.png | Bin 0 -> 1580 bytes .../kdm/openslx-legacy/GdmGreeterTheme.desktop | 8 + .../kdm/openslx-legacy/KdmGreeterTheme.desktop | 8 + .../desktop/themes/kdm/openslx-legacy/color.png | Bin 0 -> 177 bytes .../desktop/themes/kdm/openslx-legacy/enter.png | Bin 0 -> 4260 bytes .../themes/kdm/openslx-legacy/enter_inactive.png | Bin 0 -> 4072 bytes .../themes/kdm/openslx-legacy/environment.png | Bin 0 -> 5076 bytes .../themes/kdm/openslx-legacy/main-runner.png | Bin 0 -> 143 bytes .../kdm/openslx-legacy/openslx-logo-main.png | Bin 0 -> 82050 bytes .../themes/kdm/openslx-legacy/openslx-logo.png | Bin 0 -> 9113 bytes .../desktop/themes/kdm/openslx-legacy/sessions.png | Bin 0 -> 4245 bytes .../kdm/openslx-legacy/sessions_inactive.png | Bin 0 -> 4066 bytes .../desktop/themes/kdm/openslx-legacy/system.png | Bin 0 -> 4257 bytes .../themes/kdm/openslx-legacy/system_inactive.png | Bin 0 -> 4091 bytes .../desktop/themes/kdm/openslx-legacy/theme.xml | 204 ++ .../kdm/openslx-legacy/welcome-time-shadowed.png | Bin 0 -> 1580 bytes .../themes/kdm/openslx/KdmGreeterTheme.desktop | 8 + .../plugins/desktop/themes/kdm/openslx/color.png | Bin 0 -> 177 bytes .../plugins/desktop/themes/kdm/openslx/enter.png | Bin 0 -> 4260 bytes .../desktop/themes/kdm/openslx/enter_inactive.png | Bin 0 -> 4072 bytes .../desktop/themes/kdm/openslx/environment.png | Bin 0 -> 5076 bytes .../desktop/themes/kdm/openslx/main-runner.png | Bin 0 -> 153 bytes .../themes/kdm/openslx/openslx-logo-main.png | Bin 0 -> 82050 bytes .../desktop/themes/kdm/openslx/openslx-logo.png | Bin 0 -> 9113 bytes .../desktop/themes/kdm/openslx/sessions.png | Bin 0 -> 4245 bytes .../themes/kdm/openslx/sessions_inactive.png | Bin 0 -> 4066 bytes .../plugins/desktop/themes/kdm/openslx/system.png | Bin 0 -> 4257 bytes .../desktop/themes/kdm/openslx/system_inactive.png | Bin 0 -> 4091 bytes .../plugins/desktop/themes/kdm/openslx/theme.xml | 232 ++ .../themes/kdm/openslx/welcome-time-shadowed.png | Bin 0 -> 1580 bytes .../plugins/dropbear/OpenSLX/OSPlugin/dropbear.pm | 104 + src/os-plugins/plugins/dropbear/XX_dropbear.sh | 58 + .../plugins/dropbear/files/dropbearmulti | Bin 0 -> 160408 bytes .../dropbear/init-hooks/95-cleanup/dropbear.sh | 1 + .../plugins/example/OpenSLX/OSPlugin/example.pm | 154 + src/os-plugins/plugins/example/XX_example.sh | 47 + .../plugins/infoscreen/OpenSLX/Distro/Base.pm | 60 + .../plugins/infoscreen/OpenSLX/Distro/Debian.pm | 32 + .../plugins/infoscreen/OpenSLX/Distro/Fedora.pm | 32 + .../plugins/infoscreen/OpenSLX/Distro/Gentoo.pm | 32 + .../plugins/infoscreen/OpenSLX/Distro/Scilin.pm | 32 + .../plugins/infoscreen/OpenSLX/Distro/Suse.pm | 32 + .../plugins/infoscreen/OpenSLX/Distro/Ubuntu.pm | 44 + .../infoscreen/OpenSLX/OSPlugin/infoscreen.pm | 112 + src/os-plugins/plugins/infoscreen/XX_infoscreen.sh | 58 + src/os-plugins/plugins/infoscreen/files/empty.xbm | 6 + .../plugins/infoscreen/files/infoscreenClient.tgz | Bin 0 -> 267172 bytes src/os-plugins/plugins/infoscreen/files/kiosk.dpms | 27 + .../plugins/kiosk/OpenSLX/Distro/Base.pm | 65 + .../plugins/kiosk/OpenSLX/Distro/Debian.pm | 32 + .../plugins/kiosk/OpenSLX/Distro/Fedora.pm | 32 + .../plugins/kiosk/OpenSLX/Distro/Gentoo.pm | 32 + .../plugins/kiosk/OpenSLX/Distro/Scilin.pm | 32 + .../plugins/kiosk/OpenSLX/Distro/Suse.pm | 32 + .../plugins/kiosk/OpenSLX/Distro/Ubuntu.pm | 47 + .../plugins/kiosk/OpenSLX/OSPlugin/kiosk.pm | 123 + src/os-plugins/plugins/kiosk/XX_kiosk.sh | 60 + src/os-plugins/plugins/kiosk/files/kgetty | Bin 0 -> 14524 bytes .../plugins/kiosk/files/profiles/plain/.bashrc | 1 + .../plugins/kiosk/files/profiles/plain/bashrc | 4 + .../kiosk/files/profiles/vmchooser/.bash_profile | 2 + .../plugins/kiosk/files/profiles/vmchooser/.bashrc | 1 + .../kiosk/files/profiles/vmchooser/.xinitrc | 1 + .../plugins/kiosk/files/profiles/vmchooser/bashrc | 4 + .../plugins/kiosk/files/profiles/vmchooser/xinitrc | 7 + .../plugins/openvz/OpenSLX/OSPlugin/openvz.pm | 110 + src/os-plugins/plugins/openvz/XX_openvz.sh | 66 + .../plugins/openvz/files/machine.include | 0 .../plugins/openvz/files/run-virt.include | 37 + .../init-hooks/20-nw-bridge-config/bridge.sh | 30 + .../plugins/profile/OpenSLX/Distro/Base.pm | 84 + .../plugins/profile/OpenSLX/Distro/Debian.pm | 32 + .../plugins/profile/OpenSLX/Distro/Fedora.pm | 32 + .../plugins/profile/OpenSLX/Distro/Gentoo.pm | 32 + .../plugins/profile/OpenSLX/Distro/Scilin.pm | 32 + .../plugins/profile/OpenSLX/Distro/Suse.pm | 68 + .../plugins/profile/OpenSLX/Distro/Ubuntu.pm | 66 + .../plugins/profile/OpenSLX/Distro/Ubuntu_10.pm | 66 + .../plugins/profile/OpenSLX/OSPlugin/profile.pm | 174 ++ src/os-plugins/plugins/profile/XX_profile.sh | 31 + src/os-plugins/plugins/pvs/OpenSLX/Distro/Base.pm | 46 + .../plugins/pvs/OpenSLX/Distro/Debian.pm | 29 + .../plugins/pvs/OpenSLX/Distro/Fedora.pm | 28 + .../plugins/pvs/OpenSLX/Distro/Gentoo.pm | 28 + src/os-plugins/plugins/pvs/OpenSLX/Distro/Suse.pm | 28 + .../plugins/pvs/OpenSLX/Distro/Ubuntu.pm | 23 + src/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm | 127 + src/os-plugins/plugins/pvs/XX_pvs.sh | 46 + src/os-plugins/plugins/pvs/files/pvs-vncsrv | 105 + .../plugins/qemukvm/OpenSLX/Distro/Base.pm | 63 + .../plugins/qemukvm/OpenSLX/Distro/Debian.pm | 43 + .../plugins/qemukvm/OpenSLX/Distro/Suse.pm | 42 + .../plugins/qemukvm/OpenSLX/Distro/Ubuntu.pm | 24 + .../plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm | 256 ++ src/os-plugins/plugins/qemukvm/XX_qemukvm.sh | 112 + src/os-plugins/plugins/qemukvm/files/ifdown | 34 + src/os-plugins/plugins/qemukvm/files/ifup | 75 + .../plugins/qemukvm/files/run-virt.include | 306 ++ .../init-hooks/20-nw-bridge-config/bridge.sh | 30 + .../init-hooks/60-have-servconfig/vm-dhcpd.sh | 60 + .../plugins/syslog/OpenSLX/Distro/Base.pm | 93 + .../plugins/syslog/OpenSLX/Distro/Suse.pm | 41 + .../plugins/syslog/OpenSLX/OSPlugin/syslog.pm | 322 ++ src/os-plugins/plugins/syslog/XX_syslog.sh | 31 + .../syslog/init-hooks/15-have-ip-config/syslog.sh | 18 + .../plugins/syslog/init-hooks/95-cleanup/syslog.sh | 12 + .../OpenSLX/OSPlugin/sysrqshutdown.pm | 101 + .../plugins/sysrqshutdown/XX_sysrqshutdown.sh | 38 + .../plugins/sysrqshutdown/files/shutdown | 54 + .../plugins/virtualbox/OpenSLX/Distro/Base.pm | 59 + .../plugins/virtualbox/OpenSLX/Distro/Debian.pm | 52 + .../plugins/virtualbox/OpenSLX/Distro/Suse.pm | 48 + .../plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm | 54 + .../virtualbox/OpenSLX/OSPlugin/virtualbox.pm | 284 ++ src/os-plugins/plugins/virtualbox/XX_virtualbox.sh | 98 + .../plugins/virtualbox/files/empty-diff.vdi.gz | Bin 0 -> 282 bytes .../plugins/virtualbox/files/machine.include | 132 + .../plugins/virtualbox/files/run-virt.include | 372 +++ .../plugins/virtualbox/files/rwimg.vdi.gz | Bin 0 -> 268 bytes .../plugins/virtualbox/files/virtualbox.include | 47 + .../init-hooks/20-nw-bridge-config/bridge.sh | 30 + .../plugins/vmchooser/OpenSLX/Distro/Base.pm | 64 + .../plugins/vmchooser/OpenSLX/Distro/Debian.pm | 49 + .../plugins/vmchooser/OpenSLX/Distro/Suse.pm | 47 + .../plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm | 50 + .../vmchooser/OpenSLX/OSPlugin/vmchooser.pm | 143 + src/os-plugins/plugins/vmchooser/README | 21 + src/os-plugins/plugins/vmchooser/XX_vmchooser.sh | 57 + .../plugins/vmchooser/files/default.desktop | 10 + src/os-plugins/plugins/vmchooser/files/mesgdisp | Bin 0 -> 222820 bytes src/os-plugins/plugins/vmchooser/files/mkdosfs | 1 + src/os-plugins/plugins/vmchooser/files/printer.sh | 10 + src/os-plugins/plugins/vmchooser/files/run-virt.sh | 402 +++ src/os-plugins/plugins/vmchooser/files/scanner.sh | 4 + .../plugins/vmchooser/files/vm-template.xml | 60 + src/os-plugins/plugins/vmchooser/files/vmchooser | Bin 0 -> 1364048 bytes .../plugins/vmchooser/files/xmlfilter.sh | 50 + .../init-hooks/40-started-hw-config/run-virt.sh | 21 + .../init-hooks/80-after-plugins/virtualization.sh | 144 + .../plugins/vmgrid/OpenSLX/OSPlugin/vmgrid.pm | 319 ++ src/os-plugins/plugins/vmgrid/XX_vmgrid.sh | 104 + src/os-plugins/plugins/vmgrid/files/run-vmgrid.sh | 430 +++ src/os-plugins/plugins/vmgrid/files/vmgrid | 154 + .../init-hooks/80-after-plugins/virtualization.sh | 144 + .../plugins/vmware/OpenSLX/Distro/Base.pm | 47 + .../plugins/vmware/OpenSLX/Distro/Debian.pm | 227 ++ .../plugins/vmware/OpenSLX/Distro/Fedora.pm | 29 + .../plugins/vmware/OpenSLX/Distro/Gentoo.pm | 28 + .../plugins/vmware/OpenSLX/Distro/Suse.pm | 28 + .../plugins/vmware/OpenSLX/Distro/Ubuntu.pm | 23 + .../plugins/vmware/OpenSLX/OSPlugin/vmware.pm | 836 +++++ src/os-plugins/plugins/vmware/XX_vmware.sh | 201 ++ src/os-plugins/plugins/vmware/files/README | 12 + .../plugins/vmware/files/install-vmpl.sh | 284 ++ src/os-plugins/plugins/vmware/files/nvram | Bin 0 -> 8664 bytes .../plugins/vmware/files/run-virt.include | 448 +++ .../init-hooks/20-nw-bridge-config/bridge.sh | 30 + .../init-hooks/60-have-servconfig/vm-dhcpd.sh | 60 + .../init-hooks/80-after-plugins/adapt-tmpfs.sh | 24 + .../plugins/wlanboot/OpenSLX/OSPlugin/wlanboot.pm | 154 + src/os-plugins/plugins/wlanboot/XX_wlanboot.sh | 27 + src/os-plugins/plugins/wlanboot/files/bin/iwconfig | Bin 0 -> 17596 bytes src/os-plugins/plugins/wlanboot/files/bin/iwevent | Bin 0 -> 13496 bytes src/os-plugins/plugins/wlanboot/files/bin/iwgetid | Bin 0 -> 9300 bytes src/os-plugins/plugins/wlanboot/files/bin/iwlist | Bin 0 -> 25840 bytes src/os-plugins/plugins/wlanboot/files/bin/iwpriv | Bin 0 -> 9340 bytes src/os-plugins/plugins/wlanboot/files/bin/iwspy | Bin 0 -> 9328 bytes src/os-plugins/plugins/wlanboot/files/bin/iwtest | 1 + .../plugins/wlanboot/files/firmware/README | 8 + .../wlanboot/files/firmware/iwlwifi-3945-1.ucode | Bin 0 -> 149652 bytes .../wlanboot/files/firmware/iwlwifi-3945-2.ucode | Bin 0 -> 149816 bytes .../wlanboot/files/firmware/iwlwifi-4965-1.ucode | Bin 0 -> 187608 bytes .../wlanboot/files/firmware/iwlwifi-4965-2.ucode | Bin 0 -> 187764 bytes .../wlanboot/files/firmware/iwlwifi-5000-1.ucode | Bin 0 -> 345008 bytes src/os-plugins/plugins/wlanboot/files/lib/libiw.so | 1 + .../plugins/wlanboot/files/lib/libiw.so.29 | Bin 0 -> 25892 bytes .../init-hooks/10-nw-if-config/wlanboot.sh | 75 + .../plugins/x11vnc/OpenSLX/Distro/Base.pm | 94 + .../plugins/x11vnc/OpenSLX/Distro/Debian.pm | 88 + .../plugins/x11vnc/OpenSLX/Distro/Fedora.pm | 30 + .../plugins/x11vnc/OpenSLX/Distro/Gentoo.pm | 30 + .../plugins/x11vnc/OpenSLX/Distro/Suse.pm | 91 + .../plugins/x11vnc/OpenSLX/Distro/Ubuntu.pm | 23 + .../plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm | 221 ++ src/os-plugins/plugins/x11vnc/XX_x11vnc.sh | 135 + src/os-plugins/plugins/x11vnc/files/x11vnc-init | 83 + src/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm | 185 ++ src/os-plugins/plugins/xen/XX_xen.sh | 73 + src/os-plugins/plugins/xen/files/hvm.include | 209 ++ src/os-plugins/plugins/xen/files/machine.include | 167 + src/os-plugins/plugins/xen/files/run-virt.include | 157 + .../xen/init-hooks/10-nw-if-config/xennet.sh | 4 + .../xen/init-hooks/20-nw-bridge-config/bridge.sh | 30 + .../plugins/xserver/OpenSLX/Distro/Base.pm | 212 ++ .../plugins/xserver/OpenSLX/Distro/Debian.pm | 50 + .../plugins/xserver/OpenSLX/Distro/Suse.pm | 89 + .../plugins/xserver/OpenSLX/Distro/Suse_10.pm | 63 + .../plugins/xserver/OpenSLX/Distro/Suse_11_0.pm | 360 +++ .../plugins/xserver/OpenSLX/Distro/Suse_11_1.pm | 361 +++ .../plugins/xserver/OpenSLX/Distro/Suse_11_2.pm | 53 + .../plugins/xserver/OpenSLX/Distro/Ubuntu.pm | 96 + .../plugins/xserver/OpenSLX/Distro/Ubuntu_8.pm | 73 + .../plugins/xserver/OpenSLX/Distro/Ubuntu_9.pm | 30 + .../plugins/xserver/OpenSLX/OSPlugin/xserver.pm | 396 +++ src/os-plugins/plugins/xserver/XX_xserver.sh | 351 +++ src/os-plugins/plugins/xserver/files/README | 77 + .../plugins/xserver/files/ati-install.sh | 24 + .../plugins/xserver/files/nvidia-install.sh | 138 + .../plugins/xserver/files/suse-gfx-install.sh | 330 ++ .../plugins/xserver/files/ubuntu-gfx-install.sh | 124 + .../plugins/xserver/files/ubuntu-ng-gfx-install.sh | 236 ++ .../xserver/init-hooks/00-started/xserver.sh | 53 + src/os-plugins/slxos-plugin | 525 ++++ src/tools/README.busybox | 10 + src/tools/mksquashfs | Bin 0 -> 88416 bytes src/tools/mksquashfs-filter-patch | 201 ++ src/tools/uclibc-wrapper | 28 + 1496 files changed, 84561 insertions(+) create mode 100755 src/bin/devel-tools/determineMinimumPackageSet.pl create mode 100755 src/bin/devel-tools/extractTranslations.pl create mode 100755 src/bin/devel-tools/generateSettings.pl create mode 100755 src/bin/devel-tools/parseSusePatterns.pl create mode 100755 src/bin/slxldd create mode 100755 src/bin/slxsettings create mode 100644 src/boot-env/OpenSLX/BootEnvironment/Base.pm create mode 100644 src/boot-env/OpenSLX/BootEnvironment/PBS.pm create mode 100644 src/boot-env/OpenSLX/BootEnvironment/PXE.pm create mode 100644 src/boot-env/OpenSLX/BootEnvironment/Preboot.pm create mode 100644 src/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm create mode 100644 src/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm create mode 100644 src/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm create mode 100755 src/boot-env/pbs/uclib-rootfs/bin/bbinit create mode 100755 src/boot-env/pbs/uclib-rootfs/bin/handleEvents create mode 100755 src/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example create mode 100644 src/boot-env/pbs/uclib-rootfs/etc/events/example create mode 100755 src/boot-env/pbs/uclib-rootfs/init create mode 100644 src/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions create mode 100644 src/boot-env/preboot/conf/apache-openslx-preboot.conf create mode 100755 src/boot-env/preboot/http-server/user_settings.pl create mode 100755 src/boot-env/preboot/http-server/users.pl create mode 100644 src/boot-env/preboot/preboot-scripts/dialog.functions create mode 100755 src/boot-env/preboot/preboot.sh create mode 100755 src/boot-env/preboot/uclib-rootfs/init create mode 120000 src/boot-env/preboot/uclib-rootfs/lib/libcurses.so create mode 120000 src/boot-env/preboot/uclib-rootfs/lib/libncurses.so create mode 120000 src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5 create mode 100755 src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/bin/clear create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/bin/dialog create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/bin/w3m create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6 create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 create mode 120000 src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/sbin/kdump create mode 100755 src/boot-env/preboot/uclib-rootfs/usr/sbin/kexec create mode 100644 src/boot-env/syslinux/LICENSE create mode 100644 src/boot-env/syslinux/README.iso create mode 100644 src/boot-env/syslinux/README.pxe create mode 100755 src/boot-env/syslinux/extlinux create mode 100644 src/boot-env/syslinux/initramfs-shutdown create mode 100644 src/boot-env/syslinux/isolinux.bin create mode 100644 src/boot-env/syslinux/kernel-shutdown create mode 100755 src/boot-env/syslinux/mboot.c32 create mode 100644 src/boot-env/syslinux/mbr.bin create mode 100755 src/boot-env/syslinux/menu.c32 create mode 100644 src/boot-env/syslinux/pxechain.com create mode 100644 src/boot-env/syslinux/pxelinux.0 create mode 100644 src/boot-env/syslinux/pxemenu-bottom.example create mode 100644 src/boot-env/syslinux/pxemenu-include.example create mode 100755 src/boot-env/syslinux/syslinux create mode 100644 src/boot-env/syslinux/themes/openslx/openslx.png create mode 100644 src/boot-env/syslinux/themes/openslx/theme.conf create mode 100644 src/boot-env/syslinux/themes/openslxpbs/openslx.png create mode 100644 src/boot-env/syslinux/themes/openslxpbs/theme.conf create mode 100755 src/boot-env/syslinux/vesamenu.c32 create mode 100644 src/config-db/OpenSLX/AttributeRoster.pm create mode 100644 src/config-db/OpenSLX/ConfigDB.pm create mode 100644 src/config-db/OpenSLX/ConfigExport/DHCP/ISC.pm create mode 100644 src/config-db/OpenSLX/DBSchema.pm create mode 100644 src/config-db/OpenSLX/MetaDB/Base.pm create mode 100644 src/config-db/OpenSLX/MetaDB/DBI.pm create mode 100644 src/config-db/OpenSLX/MetaDB/SQLite.pm create mode 100644 src/config-db/OpenSLX/MetaDB/mysql.pm create mode 100755 src/config-db/slxconfig create mode 100755 src/config-db/slxconfig-demuxer create mode 100644 src/config-db/t/01-basics.t create mode 100644 src/config-db/t/10-vendor-os.t create mode 100644 src/config-db/t/11-export.t create mode 100644 src/config-db/t/12-system.t create mode 100644 src/config-db/t/13-client.t create mode 100644 src/config-db/t/14-group.t create mode 100644 src/config-db/t/15-global_info.t create mode 100644 src/config-db/t/20-client_system_ref.t create mode 100644 src/config-db/t/21-group_system_ref.t create mode 100644 src/config-db/t/22-group_client_ref.t create mode 100644 src/config-db/t/25-attributes.t create mode 100644 src/config-db/t/29-transaction.t create mode 100755 src/config-db/t/run-all-tests.pl create mode 100644 src/initramfs/distro-specs/debian/functions-4.0 create mode 100644 src/initramfs/distro-specs/debian/functions-default create mode 100644 src/initramfs/distro-specs/scilin/functions-4.7 create mode 100644 src/initramfs/distro-specs/scilin/functions-5.3 create mode 100644 src/initramfs/distro-specs/scilin/functions-5.4 create mode 100644 src/initramfs/distro-specs/scilin/functions-5.5 create mode 100644 src/initramfs/distro-specs/scilin/functions-default create mode 100644 src/initramfs/distro-specs/suse/functions-10.2 create mode 100644 src/initramfs/distro-specs/suse/functions-10.3 create mode 100644 src/initramfs/distro-specs/suse/functions-11.1 create mode 100644 src/initramfs/distro-specs/suse/functions-11.2 create mode 100644 src/initramfs/distro-specs/suse/functions-11.3 create mode 100644 src/initramfs/distro-specs/suse/functions-default create mode 100644 src/initramfs/distro-specs/ubuntu/functions-10.04 create mode 100644 src/initramfs/distro-specs/ubuntu/functions-8.04 create mode 100644 src/initramfs/distro-specs/ubuntu/functions-8.10 create mode 100644 src/initramfs/distro-specs/ubuntu/functions-9.04 create mode 100644 src/initramfs/distro-specs/ubuntu/functions-9.10 create mode 100644 src/initramfs/distro-specs/ubuntu/functions-default create mode 100755 src/initramfs/eglibc-packages/compcache/usr/bin/rzscontrol create mode 100644 src/initramfs/eglibc-packages/hwinfo/lib/libdbus-1.so.3 create mode 100644 src/initramfs/eglibc-packages/hwinfo/lib/librt.so.1 create mode 100644 src/initramfs/eglibc-packages/hwinfo/usr/lib/libhal.so.1 create mode 100644 src/initramfs/eglibc-packages/hwinfo/usr/lib/libhd.so.16 create mode 100755 src/initramfs/eglibc-packages/hwinfo/usr/sbin/hwinfo create mode 100644 src/initramfs/eglibc-packages/mksquashfs/lib/libm.so.6 create mode 100755 src/initramfs/eglibc-packages/mksquashfs/lib/libpthread.so.0 create mode 100755 src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_3_3 create mode 100755 src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_4 create mode 100755 src/initramfs/eglibc-packages/nbd-client/sbin/nbd-client create mode 100755 src/initramfs/eglibc-packages/plymouth/bin/plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/lib/libply-splash-core.so.2 create mode 100644 src/initramfs/eglibc-packages/plymouth/lib/libply.so.2 create mode 100644 src/initramfs/eglibc-packages/plymouth/lib/librt.so.1 create mode 100755 src/initramfs/eglibc-packages/plymouth/sbin/plymouthd create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/details/details.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/bullet.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/entry.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/fade-in.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/lock.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/star.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/box.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/bullet.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/entry.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/glow.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/lock.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-00.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-01.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-02.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-03.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-04.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-05.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-06.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-07.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-08.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-09.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-10.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-11.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-12.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-13.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-14.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-15.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-16.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-17.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-18.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-19.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-20.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-21.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-22.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-23.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-24.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-25.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-26.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-27.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-28.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-29.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-30.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-31.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-32.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-00.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-01.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-02.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-03.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-04.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-05.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-06.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-07.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-08.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-09.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-10.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-11.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-12.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-13.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-14.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-15.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-16.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-17.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-18.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-19.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/box.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/bullet.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/entry.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/lock.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_bar.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_box.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.script create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/box.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/bullet.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/entry.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/lock.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/progress_bar.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/solar.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/star.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/box.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/bullet.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/entry.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/lock.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/spinfinity.plymouth create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-00.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-01.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-02.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-03.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-04.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-05.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-06.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-07.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-08.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-09.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-10.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-11.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-12.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-13.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-14.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-15.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-16.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-17.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-18.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-19.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-20.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-21.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-22.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-23.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-24.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-25.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-26.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-27.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-28.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-29.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-30.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-31.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-32.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-33.png create mode 100644 src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/text/text.plymouth create mode 100755 src/initramfs/eglibc-packages/strace/usr/bin/strace create mode 120000 src/initramfs/eglibc-rootfs/bin/ash create mode 120000 src/initramfs/eglibc-rootfs/bin/bash create mode 100755 src/initramfs/eglibc-rootfs/bin/busybox create mode 120000 src/initramfs/eglibc-rootfs/bin/cat create mode 120000 src/initramfs/eglibc-rootfs/bin/chgrp create mode 120000 src/initramfs/eglibc-rootfs/bin/chmod create mode 120000 src/initramfs/eglibc-rootfs/bin/chown create mode 120000 src/initramfs/eglibc-rootfs/bin/cp create mode 120000 src/initramfs/eglibc-rootfs/bin/cpio create mode 120000 src/initramfs/eglibc-rootfs/bin/cttyhack create mode 120000 src/initramfs/eglibc-rootfs/bin/date create mode 120000 src/initramfs/eglibc-rootfs/bin/dd create mode 120000 src/initramfs/eglibc-rootfs/bin/df create mode 120000 src/initramfs/eglibc-rootfs/bin/dmesg create mode 120000 src/initramfs/eglibc-rootfs/bin/echo create mode 120000 src/initramfs/eglibc-rootfs/bin/egrep create mode 120000 src/initramfs/eglibc-rootfs/bin/false create mode 120000 src/initramfs/eglibc-rootfs/bin/grep create mode 120000 src/initramfs/eglibc-rootfs/bin/gunzip create mode 120000 src/initramfs/eglibc-rootfs/bin/gzip create mode 120000 src/initramfs/eglibc-rootfs/bin/ip create mode 120000 src/initramfs/eglibc-rootfs/bin/ipcalc create mode 120000 src/initramfs/eglibc-rootfs/bin/kill create mode 120000 src/initramfs/eglibc-rootfs/bin/ln create mode 120000 src/initramfs/eglibc-rootfs/bin/ls create mode 120000 src/initramfs/eglibc-rootfs/bin/mkdir create mode 120000 src/initramfs/eglibc-rootfs/bin/mknod create mode 120000 src/initramfs/eglibc-rootfs/bin/mount create mode 120000 src/initramfs/eglibc-rootfs/bin/mv create mode 120000 src/initramfs/eglibc-rootfs/bin/nice create mode 120000 src/initramfs/eglibc-rootfs/bin/pidof create mode 120000 src/initramfs/eglibc-rootfs/bin/ping create mode 120000 src/initramfs/eglibc-rootfs/bin/ps create mode 120000 src/initramfs/eglibc-rootfs/bin/pwd create mode 120000 src/initramfs/eglibc-rootfs/bin/rev create mode 120000 src/initramfs/eglibc-rootfs/bin/rm create mode 120000 src/initramfs/eglibc-rootfs/bin/sed create mode 120000 src/initramfs/eglibc-rootfs/bin/sh create mode 120000 src/initramfs/eglibc-rootfs/bin/sleep create mode 120000 src/initramfs/eglibc-rootfs/bin/sync create mode 120000 src/initramfs/eglibc-rootfs/bin/tar create mode 120000 src/initramfs/eglibc-rootfs/bin/touch create mode 120000 src/initramfs/eglibc-rootfs/bin/true create mode 120000 src/initramfs/eglibc-rootfs/bin/umount create mode 120000 src/initramfs/eglibc-rootfs/bin/uname create mode 120000 src/initramfs/eglibc-rootfs/bin/usleep create mode 120000 src/initramfs/eglibc-rootfs/bin/vi create mode 120000 src/initramfs/eglibc-rootfs/bin/zcat create mode 100755 src/initramfs/eglibc-rootfs/lib/ld-2.11.2.so create mode 120000 src/initramfs/eglibc-rootfs/lib/ld-linux.so.2 create mode 100755 src/initramfs/eglibc-rootfs/lib/libc.so.6 create mode 100644 src/initramfs/eglibc-rootfs/lib/libdbus-1.so.3 create mode 100644 src/initramfs/eglibc-rootfs/lib/libdl.so.2 create mode 100644 src/initramfs/eglibc-rootfs/lib/libm.so.6 create mode 100644 src/initramfs/eglibc-rootfs/lib/librt.so.1 create mode 120000 src/initramfs/eglibc-rootfs/sbin/bootchartd create mode 120000 src/initramfs/eglibc-rootfs/sbin/fbsplash create mode 120000 src/initramfs/eglibc-rootfs/sbin/fdisk create mode 120000 src/initramfs/eglibc-rootfs/sbin/getty create mode 120000 src/initramfs/eglibc-rootfs/sbin/halt create mode 120000 src/initramfs/eglibc-rootfs/sbin/hdparm create mode 120000 src/initramfs/eglibc-rootfs/sbin/hwclock create mode 120000 src/initramfs/eglibc-rootfs/sbin/inotifyd create mode 120000 src/initramfs/eglibc-rootfs/sbin/insmod create mode 120000 src/initramfs/eglibc-rootfs/sbin/klogd create mode 100755 src/initramfs/eglibc-rootfs/sbin/ldconfig create mode 120000 src/initramfs/eglibc-rootfs/sbin/loadkmap create mode 120000 src/initramfs/eglibc-rootfs/sbin/logread create mode 120000 src/initramfs/eglibc-rootfs/sbin/lsmod create mode 120000 src/initramfs/eglibc-rootfs/sbin/lspci create mode 120000 src/initramfs/eglibc-rootfs/sbin/lsusb create mode 120000 src/initramfs/eglibc-rootfs/sbin/mdev create mode 120000 src/initramfs/eglibc-rootfs/sbin/mkdosfs create mode 120000 src/initramfs/eglibc-rootfs/sbin/mkfs.vfat create mode 120000 src/initramfs/eglibc-rootfs/sbin/mkswap create mode 120000 src/initramfs/eglibc-rootfs/sbin/modinfo create mode 120000 src/initramfs/eglibc-rootfs/sbin/modprobe create mode 120000 src/initramfs/eglibc-rootfs/sbin/poweroff create mode 120000 src/initramfs/eglibc-rootfs/sbin/reboot create mode 120000 src/initramfs/eglibc-rootfs/sbin/rmmod create mode 120000 src/initramfs/eglibc-rootfs/sbin/route create mode 120000 src/initramfs/eglibc-rootfs/sbin/start-stop-daemon create mode 120000 src/initramfs/eglibc-rootfs/sbin/swapoff create mode 120000 src/initramfs/eglibc-rootfs/sbin/swapon create mode 120000 src/initramfs/eglibc-rootfs/sbin/switch_root create mode 120000 src/initramfs/eglibc-rootfs/sbin/sysctl create mode 120000 src/initramfs/eglibc-rootfs/sbin/syslogd create mode 120000 src/initramfs/eglibc-rootfs/sbin/tunctl create mode 120000 src/initramfs/eglibc-rootfs/sbin/udhcpc create mode 120000 src/initramfs/eglibc-rootfs/sbin/vconfig create mode 120000 src/initramfs/eglibc-rootfs/sbin/watchdog create mode 120000 src/initramfs/eglibc-rootfs/sbin/zcip create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/[ create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/[[ create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/ar create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/arping create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/awk create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/basename create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/bunzip2 create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/bzcat create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/bzip2 create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/chvt create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/cut create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/deallocvt create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/du create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/dumpleases create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/eject create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/env create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/expr create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/fgconsole create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/find create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/flock create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/free create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/ftpget create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/ftpput create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/head create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/id create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/killall create mode 100755 src/initramfs/eglibc-rootfs/usr/bin/ld create mode 100755 src/initramfs/eglibc-rootfs/usr/bin/ldd create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/less create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/logger create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/lspci create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/lsusb create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/lzcat create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/lzma create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/lzmacat create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/md5sum create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/nc create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/nmeter create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/openvt create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/printf create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/readahead create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/readlink create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/realpath create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/rpm2cpio create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/smemcap create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/sort create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/strings create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/tail create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/test create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/tftp create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/time create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/timeout create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/tr create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/uniq create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/unlzma create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/unxz create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/uptime create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/wc create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/wget create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/which create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/whoami create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/xargs create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/xz create mode 120000 src/initramfs/eglibc-rootfs/usr/bin/xzcat create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libfusion-1.2.so.9 create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libgcc_s.so.1 create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libhal.so.1 create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libhd.so.16 create mode 120000 src/initramfs/eglibc-rootfs/usr/lib/libm.so create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libpcre.so.3 create mode 100644 src/initramfs/eglibc-rootfs/usr/lib/libz.so.1 create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/brctl create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/chroot create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/dhcprelay create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/fbset create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/httpd create mode 100755 src/initramfs/eglibc-rootfs/usr/sbin/hwinfo create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/loadfont create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/rdate create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/setlogcons create mode 120000 src/initramfs/eglibc-rootfs/usr/sbin/udhcpd create mode 100755 src/initramfs/stage3-stuff/bin/dhcpmkconfig create mode 100755 src/initramfs/stage3-stuff/bin/hwautocfg create mode 100755 src/initramfs/stage3-stuff/bin/init-wrapper create mode 100755 src/initramfs/stage3-stuff/bin/servconfig create mode 100644 src/initramfs/stage3-stuff/etc/functions create mode 100644 src/initramfs/stage3-stuff/etc/ldap-functions create mode 100644 src/initramfs/stage3-stuff/etc/messages create mode 100644 src/initramfs/stage3-stuff/etc/messages.de create mode 100755 src/initramfs/stage3-stuff/init create mode 100755 src/initramfs/tools/hwinfo/bin/hwinfo-13.11 create mode 100755 src/initramfs/tools/hwinfo/bin/hwinfo-14.19 create mode 100755 src/initramfs/tools/hwinfo/bin/hwinfo-15.21 create mode 100755 src/initramfs/tools/hwinfo/bin/hwinfo-15.3 create mode 100755 src/initramfs/tools/hwinfo/bin/hwinfo-16.0 create mode 100644 src/initramfs/tools/hwinfo/db/hwinfo.db.tgz create mode 100755 src/initramfs/tools/hwinfo/lib/libhd.so.13.11 create mode 100755 src/initramfs/tools/hwinfo/lib/libhd.so.14.19 create mode 100755 src/initramfs/tools/hwinfo/lib/libhd.so.15.21 create mode 100755 src/initramfs/tools/hwinfo/lib/libhd.so.15.3 create mode 100644 src/initramfs/tools/hwinfo/lib/libhd.so.16.0 create mode 100755 src/initramfs/tools/mksquashfs/3.3/mksquashfs create mode 100755 src/initramfs/tools/mksquashfs/3.3/unsquashfs create mode 100755 src/initramfs/tpm/bin/detect-tpm.sh create mode 100755 src/initramfs/tpm/bin/fetch-sshkeys.sh create mode 100755 src/initramfs/tpm/bin/mygetty.sh create mode 100755 src/initramfs/tpm/bin/showmac.sh create mode 100644 src/initramfs/tpm/etc/bash.bashrc create mode 100644 src/initramfs/tpm/etc/hosts create mode 100644 src/initramfs/tpm/etc/inputrc create mode 100644 src/initramfs/tpm/etc/ld.so.preload create mode 100644 src/initramfs/tpm/etc/libdeps create mode 100644 src/initramfs/tpm/etc/passwd create mode 100644 src/initramfs/tpm/var/lib/tpm/system.data create mode 120000 src/initramfs/uclib-rootfs.old/bin/ash create mode 100755 src/initramfs/uclib-rootfs.old/bin/busybox create mode 120000 src/initramfs/uclib-rootfs.old/bin/cat create mode 120000 src/initramfs/uclib-rootfs.old/bin/chgrp create mode 120000 src/initramfs/uclib-rootfs.old/bin/chmod create mode 120000 src/initramfs/uclib-rootfs.old/bin/chown create mode 120000 src/initramfs/uclib-rootfs.old/bin/cp create mode 120000 src/initramfs/uclib-rootfs.old/bin/cpio create mode 120000 src/initramfs/uclib-rootfs.old/bin/cttyhack create mode 120000 src/initramfs/uclib-rootfs.old/bin/date create mode 120000 src/initramfs/uclib-rootfs.old/bin/dd create mode 120000 src/initramfs/uclib-rootfs.old/bin/df create mode 120000 src/initramfs/uclib-rootfs.old/bin/dmesg create mode 120000 src/initramfs/uclib-rootfs.old/bin/echo create mode 120000 src/initramfs/uclib-rootfs.old/bin/egrep create mode 120000 src/initramfs/uclib-rootfs.old/bin/false create mode 120000 src/initramfs/uclib-rootfs.old/bin/grep create mode 120000 src/initramfs/uclib-rootfs.old/bin/gunzip create mode 120000 src/initramfs/uclib-rootfs.old/bin/gzip create mode 120000 src/initramfs/uclib-rootfs.old/bin/ip create mode 120000 src/initramfs/uclib-rootfs.old/bin/ipcalc create mode 120000 src/initramfs/uclib-rootfs.old/bin/kill create mode 100755 src/initramfs/uclib-rootfs.old/bin/ldconfig create mode 120000 src/initramfs/uclib-rootfs.old/bin/ln create mode 120000 src/initramfs/uclib-rootfs.old/bin/ls create mode 120000 src/initramfs/uclib-rootfs.old/bin/mkdir create mode 120000 src/initramfs/uclib-rootfs.old/bin/mknod create mode 120000 src/initramfs/uclib-rootfs.old/bin/mount create mode 120000 src/initramfs/uclib-rootfs.old/bin/mv create mode 120000 src/initramfs/uclib-rootfs.old/bin/nice create mode 120000 src/initramfs/uclib-rootfs.old/bin/pidof create mode 120000 src/initramfs/uclib-rootfs.old/bin/ping create mode 120000 src/initramfs/uclib-rootfs.old/bin/ps create mode 120000 src/initramfs/uclib-rootfs.old/bin/pwd create mode 120000 src/initramfs/uclib-rootfs.old/bin/rm create mode 120000 src/initramfs/uclib-rootfs.old/bin/sed create mode 120000 src/initramfs/uclib-rootfs.old/bin/sh create mode 120000 src/initramfs/uclib-rootfs.old/bin/sleep create mode 120000 src/initramfs/uclib-rootfs.old/bin/sync create mode 120000 src/initramfs/uclib-rootfs.old/bin/tar create mode 120000 src/initramfs/uclib-rootfs.old/bin/touch create mode 120000 src/initramfs/uclib-rootfs.old/bin/true create mode 120000 src/initramfs/uclib-rootfs.old/bin/umount create mode 120000 src/initramfs/uclib-rootfs.old/bin/uname create mode 120000 src/initramfs/uclib-rootfs.old/bin/usleep create mode 120000 src/initramfs/uclib-rootfs.old/bin/vi create mode 120000 src/initramfs/uclib-rootfs.old/bin/zcat create mode 100644 src/initramfs/uclib-rootfs.old/etc/ld.so.cache create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/a/ansi create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/d/dumb create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/l/linux create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/r/rxvt create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/s/screen create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/s/sun create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt100 create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt102 create mode 120000 src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt200 create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt220 create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt52 create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-color create mode 100644 src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-xfree86 create mode 100755 src/initramfs/uclib-rootfs.old/lib/ld-uClibc-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/ld-uClibc.so.0 create mode 120000 src/initramfs/uclib-rootfs.old/lib/libc.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libcrypt-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libcrypt.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libdl-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libdl.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libm-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libm.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libnsl-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libnsl.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libpthread-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libpthread.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libresolv-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libresolv.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/librt-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/librt.so.0 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libthread_db-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libthread_db.so.1 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libuClibc-0.9.30.1.so create mode 100755 src/initramfs/uclib-rootfs.old/lib/libutil-0.9.30.1.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libutil.so.0 create mode 120000 src/initramfs/uclib-rootfs.old/lib/libz.so create mode 120000 src/initramfs/uclib-rootfs.old/lib/libz.so.1 create mode 100755 src/initramfs/uclib-rootfs.old/lib/libz.so.1.2.3 create mode 100755 src/initramfs/uclib-rootfs.old/sbin/dnbd-client create mode 120000 src/initramfs/uclib-rootfs.old/sbin/fbsplash create mode 120000 src/initramfs/uclib-rootfs.old/sbin/fdisk create mode 120000 src/initramfs/uclib-rootfs.old/sbin/getty create mode 120000 src/initramfs/uclib-rootfs.old/sbin/halt create mode 120000 src/initramfs/uclib-rootfs.old/sbin/hdparm create mode 120000 src/initramfs/uclib-rootfs.old/sbin/hwclock create mode 100755 src/initramfs/uclib-rootfs.old/sbin/ifrename create mode 120000 src/initramfs/uclib-rootfs.old/sbin/inotifyd create mode 120000 src/initramfs/uclib-rootfs.old/sbin/insmod create mode 120000 src/initramfs/uclib-rootfs.old/sbin/klogd create mode 120000 src/initramfs/uclib-rootfs.old/sbin/loadkmap create mode 120000 src/initramfs/uclib-rootfs.old/sbin/logread create mode 120000 src/initramfs/uclib-rootfs.old/sbin/lsmod create mode 120000 src/initramfs/uclib-rootfs.old/sbin/mdev create mode 120000 src/initramfs/uclib-rootfs.old/sbin/mkdosfs create mode 120000 src/initramfs/uclib-rootfs.old/sbin/mkfs.vfat create mode 120000 src/initramfs/uclib-rootfs.old/sbin/mkswap create mode 120000 src/initramfs/uclib-rootfs.old/sbin/modprobe create mode 100755 src/initramfs/uclib-rootfs.old/sbin/nbd-client create mode 120000 src/initramfs/uclib-rootfs.old/sbin/poweroff create mode 120000 src/initramfs/uclib-rootfs.old/sbin/reboot create mode 120000 src/initramfs/uclib-rootfs.old/sbin/rmmod create mode 120000 src/initramfs/uclib-rootfs.old/sbin/route create mode 120000 src/initramfs/uclib-rootfs.old/sbin/start-stop-daemon create mode 120000 src/initramfs/uclib-rootfs.old/sbin/swapoff create mode 120000 src/initramfs/uclib-rootfs.old/sbin/swapon create mode 120000 src/initramfs/uclib-rootfs.old/sbin/switch_root create mode 120000 src/initramfs/uclib-rootfs.old/sbin/sysctl create mode 120000 src/initramfs/uclib-rootfs.old/sbin/syslogd create mode 120000 src/initramfs/uclib-rootfs.old/sbin/tunctl create mode 120000 src/initramfs/uclib-rootfs.old/sbin/udhcpc create mode 120000 src/initramfs/uclib-rootfs.old/sbin/vconfig create mode 120000 src/initramfs/uclib-rootfs.old/sbin/watchdog create mode 120000 src/initramfs/uclib-rootfs.old/sbin/zcip create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/[ create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/[[ create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/ar create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/arping create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/awk create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/basename create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/bunzip2 create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/bzcat create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/bzip2 create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/chvt create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/cut create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/deallocvt create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/du create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/eject create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/env create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/expr create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/find create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/free create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/ftpget create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/ftpput create mode 100755 src/initramfs/uclib-rootfs.old/usr/bin/getent create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/head create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/id create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/killall create mode 100755 src/initramfs/uclib-rootfs.old/usr/bin/ldd create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/less create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/logger create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/lzmacat create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/md5sum create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/nc create mode 100755 src/initramfs/uclib-rootfs.old/usr/bin/ncurses5-config create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/nmeter create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/openvt create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/printf create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/readahead create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/readlink create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/realpath create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/rpm2cpio create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/sort create mode 100755 src/initramfs/uclib-rootfs.old/usr/bin/strace create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/strings create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/tail create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/test create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/tftp create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/time create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/timeout create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/tr create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/uniq create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/unlzma create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/uptime create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/wc create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/wget create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/which create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/whoami create mode 120000 src/initramfs/uclib-rootfs.old/usr/bin/xargs create mode 100755 src/initramfs/uclib-rootfs.old/usr/lib/libc.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libcrypt.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libdl.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libm.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libnsl.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libpthread.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libresolv.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/librt.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libthread_db.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/lib/libutil.so create mode 100755 src/initramfs/uclib-rootfs.old/usr/lib/libz.so create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/brctl create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/chroot create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/fbset create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/httpd create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/loadfont create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/rdate create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/setlogcons create mode 120000 src/initramfs/uclib-rootfs.old/usr/sbin/udhcpd create mode 120000 src/initramfs/uclib-rootfs/bin/ash create mode 120000 src/initramfs/uclib-rootfs/bin/bash create mode 100755 src/initramfs/uclib-rootfs/bin/busybox create mode 120000 src/initramfs/uclib-rootfs/bin/cat create mode 120000 src/initramfs/uclib-rootfs/bin/chgrp create mode 120000 src/initramfs/uclib-rootfs/bin/chmod create mode 120000 src/initramfs/uclib-rootfs/bin/chown create mode 120000 src/initramfs/uclib-rootfs/bin/cp create mode 120000 src/initramfs/uclib-rootfs/bin/cpio create mode 120000 src/initramfs/uclib-rootfs/bin/cttyhack create mode 120000 src/initramfs/uclib-rootfs/bin/date create mode 120000 src/initramfs/uclib-rootfs/bin/dd create mode 120000 src/initramfs/uclib-rootfs/bin/df create mode 120000 src/initramfs/uclib-rootfs/bin/dmesg create mode 120000 src/initramfs/uclib-rootfs/bin/echo create mode 120000 src/initramfs/uclib-rootfs/bin/egrep create mode 120000 src/initramfs/uclib-rootfs/bin/false create mode 120000 src/initramfs/uclib-rootfs/bin/grep create mode 120000 src/initramfs/uclib-rootfs/bin/gunzip create mode 120000 src/initramfs/uclib-rootfs/bin/gzip create mode 120000 src/initramfs/uclib-rootfs/bin/ip create mode 120000 src/initramfs/uclib-rootfs/bin/ipcalc create mode 120000 src/initramfs/uclib-rootfs/bin/kill create mode 120000 src/initramfs/uclib-rootfs/bin/ln create mode 120000 src/initramfs/uclib-rootfs/bin/ls create mode 120000 src/initramfs/uclib-rootfs/bin/mkdir create mode 120000 src/initramfs/uclib-rootfs/bin/mknod create mode 120000 src/initramfs/uclib-rootfs/bin/mount create mode 120000 src/initramfs/uclib-rootfs/bin/mv create mode 120000 src/initramfs/uclib-rootfs/bin/nice create mode 120000 src/initramfs/uclib-rootfs/bin/pidof create mode 120000 src/initramfs/uclib-rootfs/bin/ping create mode 120000 src/initramfs/uclib-rootfs/bin/ps create mode 120000 src/initramfs/uclib-rootfs/bin/pwd create mode 120000 src/initramfs/uclib-rootfs/bin/rev create mode 120000 src/initramfs/uclib-rootfs/bin/rm create mode 120000 src/initramfs/uclib-rootfs/bin/sed create mode 120000 src/initramfs/uclib-rootfs/bin/sh create mode 120000 src/initramfs/uclib-rootfs/bin/sleep create mode 120000 src/initramfs/uclib-rootfs/bin/sync create mode 120000 src/initramfs/uclib-rootfs/bin/tar create mode 120000 src/initramfs/uclib-rootfs/bin/touch create mode 120000 src/initramfs/uclib-rootfs/bin/true create mode 120000 src/initramfs/uclib-rootfs/bin/umount create mode 120000 src/initramfs/uclib-rootfs/bin/uname create mode 120000 src/initramfs/uclib-rootfs/bin/usleep create mode 120000 src/initramfs/uclib-rootfs/bin/vi create mode 120000 src/initramfs/uclib-rootfs/bin/zcat create mode 100755 src/initramfs/uclib-rootfs/lib/ld-2.11.2.so create mode 120000 src/initramfs/uclib-rootfs/lib/ld-linux.so.2 create mode 100644 src/initramfs/uclib-rootfs/lib/libc.so.6 create mode 100644 src/initramfs/uclib-rootfs/lib/libdbus-1.so.3 create mode 100644 src/initramfs/uclib-rootfs/lib/libdl.so.2 create mode 100644 src/initramfs/uclib-rootfs/lib/libhal.so.1 create mode 100644 src/initramfs/uclib-rootfs/lib/libm.so.6 create mode 100755 src/initramfs/uclib-rootfs/lib/libpthread.so.0 create mode 100644 src/initramfs/uclib-rootfs/lib/librt.so.1 create mode 120000 src/initramfs/uclib-rootfs/sbin/bootchartd create mode 120000 src/initramfs/uclib-rootfs/sbin/fbsplash create mode 120000 src/initramfs/uclib-rootfs/sbin/fdisk create mode 120000 src/initramfs/uclib-rootfs/sbin/getty create mode 120000 src/initramfs/uclib-rootfs/sbin/halt create mode 120000 src/initramfs/uclib-rootfs/sbin/hdparm create mode 120000 src/initramfs/uclib-rootfs/sbin/hwclock create mode 120000 src/initramfs/uclib-rootfs/sbin/inotifyd create mode 120000 src/initramfs/uclib-rootfs/sbin/insmod create mode 120000 src/initramfs/uclib-rootfs/sbin/klogd create mode 100755 src/initramfs/uclib-rootfs/sbin/ldconfig create mode 120000 src/initramfs/uclib-rootfs/sbin/loadkmap create mode 120000 src/initramfs/uclib-rootfs/sbin/logread create mode 120000 src/initramfs/uclib-rootfs/sbin/lsmod create mode 120000 src/initramfs/uclib-rootfs/sbin/lspci create mode 120000 src/initramfs/uclib-rootfs/sbin/lsusb create mode 120000 src/initramfs/uclib-rootfs/sbin/mdev create mode 120000 src/initramfs/uclib-rootfs/sbin/mkdosfs create mode 120000 src/initramfs/uclib-rootfs/sbin/mkfs.vfat create mode 120000 src/initramfs/uclib-rootfs/sbin/mkswap create mode 120000 src/initramfs/uclib-rootfs/sbin/modinfo create mode 120000 src/initramfs/uclib-rootfs/sbin/modprobe create mode 120000 src/initramfs/uclib-rootfs/sbin/poweroff create mode 120000 src/initramfs/uclib-rootfs/sbin/reboot create mode 120000 src/initramfs/uclib-rootfs/sbin/rmmod create mode 120000 src/initramfs/uclib-rootfs/sbin/route create mode 120000 src/initramfs/uclib-rootfs/sbin/start-stop-daemon create mode 120000 src/initramfs/uclib-rootfs/sbin/swapoff create mode 120000 src/initramfs/uclib-rootfs/sbin/swapon create mode 120000 src/initramfs/uclib-rootfs/sbin/switch_root create mode 120000 src/initramfs/uclib-rootfs/sbin/sysctl create mode 120000 src/initramfs/uclib-rootfs/sbin/syslogd create mode 120000 src/initramfs/uclib-rootfs/sbin/tunctl create mode 120000 src/initramfs/uclib-rootfs/sbin/udhcpc create mode 120000 src/initramfs/uclib-rootfs/sbin/vconfig create mode 120000 src/initramfs/uclib-rootfs/sbin/watchdog create mode 120000 src/initramfs/uclib-rootfs/sbin/zcip create mode 120000 src/initramfs/uclib-rootfs/usr/bin/[ create mode 120000 src/initramfs/uclib-rootfs/usr/bin/[[ create mode 120000 src/initramfs/uclib-rootfs/usr/bin/ar create mode 120000 src/initramfs/uclib-rootfs/usr/bin/arping create mode 120000 src/initramfs/uclib-rootfs/usr/bin/awk create mode 120000 src/initramfs/uclib-rootfs/usr/bin/basename create mode 120000 src/initramfs/uclib-rootfs/usr/bin/bunzip2 create mode 120000 src/initramfs/uclib-rootfs/usr/bin/bzcat create mode 120000 src/initramfs/uclib-rootfs/usr/bin/bzip2 create mode 120000 src/initramfs/uclib-rootfs/usr/bin/chvt create mode 120000 src/initramfs/uclib-rootfs/usr/bin/cut create mode 120000 src/initramfs/uclib-rootfs/usr/bin/deallocvt create mode 120000 src/initramfs/uclib-rootfs/usr/bin/du create mode 120000 src/initramfs/uclib-rootfs/usr/bin/dumpleases create mode 120000 src/initramfs/uclib-rootfs/usr/bin/eject create mode 120000 src/initramfs/uclib-rootfs/usr/bin/env create mode 120000 src/initramfs/uclib-rootfs/usr/bin/expr create mode 120000 src/initramfs/uclib-rootfs/usr/bin/fgconsole create mode 120000 src/initramfs/uclib-rootfs/usr/bin/find create mode 120000 src/initramfs/uclib-rootfs/usr/bin/flock create mode 120000 src/initramfs/uclib-rootfs/usr/bin/free create mode 120000 src/initramfs/uclib-rootfs/usr/bin/ftpget create mode 120000 src/initramfs/uclib-rootfs/usr/bin/ftpput create mode 120000 src/initramfs/uclib-rootfs/usr/bin/head create mode 120000 src/initramfs/uclib-rootfs/usr/bin/id create mode 120000 src/initramfs/uclib-rootfs/usr/bin/killall create mode 100755 src/initramfs/uclib-rootfs/usr/bin/ld create mode 100755 src/initramfs/uclib-rootfs/usr/bin/ldd create mode 120000 src/initramfs/uclib-rootfs/usr/bin/less create mode 120000 src/initramfs/uclib-rootfs/usr/bin/logger create mode 120000 src/initramfs/uclib-rootfs/usr/bin/lspci create mode 120000 src/initramfs/uclib-rootfs/usr/bin/lsusb create mode 120000 src/initramfs/uclib-rootfs/usr/bin/lzcat create mode 120000 src/initramfs/uclib-rootfs/usr/bin/lzma create mode 120000 src/initramfs/uclib-rootfs/usr/bin/lzmacat create mode 120000 src/initramfs/uclib-rootfs/usr/bin/md5sum create mode 120000 src/initramfs/uclib-rootfs/usr/bin/nc create mode 120000 src/initramfs/uclib-rootfs/usr/bin/nmeter create mode 120000 src/initramfs/uclib-rootfs/usr/bin/openvt create mode 120000 src/initramfs/uclib-rootfs/usr/bin/printf create mode 120000 src/initramfs/uclib-rootfs/usr/bin/readahead create mode 120000 src/initramfs/uclib-rootfs/usr/bin/readlink create mode 120000 src/initramfs/uclib-rootfs/usr/bin/realpath create mode 120000 src/initramfs/uclib-rootfs/usr/bin/rpm2cpio create mode 100755 src/initramfs/uclib-rootfs/usr/bin/rzscontrol create mode 120000 src/initramfs/uclib-rootfs/usr/bin/smemcap create mode 120000 src/initramfs/uclib-rootfs/usr/bin/sort create mode 100755 src/initramfs/uclib-rootfs/usr/bin/strace create mode 120000 src/initramfs/uclib-rootfs/usr/bin/strings create mode 120000 src/initramfs/uclib-rootfs/usr/bin/tail create mode 120000 src/initramfs/uclib-rootfs/usr/bin/test create mode 120000 src/initramfs/uclib-rootfs/usr/bin/tftp create mode 120000 src/initramfs/uclib-rootfs/usr/bin/time create mode 120000 src/initramfs/uclib-rootfs/usr/bin/timeout create mode 120000 src/initramfs/uclib-rootfs/usr/bin/tr create mode 120000 src/initramfs/uclib-rootfs/usr/bin/uniq create mode 120000 src/initramfs/uclib-rootfs/usr/bin/unlzma create mode 120000 src/initramfs/uclib-rootfs/usr/bin/unxz create mode 120000 src/initramfs/uclib-rootfs/usr/bin/uptime create mode 120000 src/initramfs/uclib-rootfs/usr/bin/wc create mode 120000 src/initramfs/uclib-rootfs/usr/bin/wget create mode 120000 src/initramfs/uclib-rootfs/usr/bin/which create mode 120000 src/initramfs/uclib-rootfs/usr/bin/whoami create mode 120000 src/initramfs/uclib-rootfs/usr/bin/xargs create mode 120000 src/initramfs/uclib-rootfs/usr/bin/xz create mode 120000 src/initramfs/uclib-rootfs/usr/bin/xzcat create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libfusion-1.2.so.9 create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libgcc_s.so.1 create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libhal.so.1 create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libhd.so.16 create mode 120000 src/initramfs/uclib-rootfs/usr/lib/libm.so create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libpcre.so.3 create mode 100644 src/initramfs/uclib-rootfs/usr/lib/libz.so.1 create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/brctl create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/chroot create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/dhcprelay create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/fbset create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/httpd create mode 100755 src/initramfs/uclib-rootfs/usr/sbin/hwinfo create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/loadfont create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/rdate create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/setlogcons create mode 120000 src/initramfs/uclib-rootfs/usr/sbin/udhcpd create mode 100644 src/installer/OpenSLX/OSExport/BlockDevice/AoE.pm create mode 100644 src/installer/OpenSLX/OSExport/BlockDevice/Base.pm create mode 100644 src/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm create mode 100644 src/installer/OpenSLX/OSExport/BlockDevice/LBD.pm create mode 100644 src/installer/OpenSLX/OSExport/BlockDevice/NBD.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Any.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Base.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Debian.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Fedora.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Gentoo.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/SciLin.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Suse.pm create mode 100644 src/installer/OpenSLX/OSExport/Distro/Ubuntu.pm create mode 100644 src/installer/OpenSLX/OSExport/Engine.pm create mode 100644 src/installer/OpenSLX/OSExport/FileSystem/Base.pm create mode 100644 src/installer/OpenSLX/OSExport/FileSystem/NFS.pm create mode 100644 src/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Base.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Debian.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Fedora.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Gentoo.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Scilin.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Suse.pm create mode 100644 src/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm create mode 100644 src/installer/OpenSLX/OSSetup/Engine.pm create mode 100644 src/installer/OpenSLX/OSSetup/MetaPackager/Base.pm create mode 100644 src/installer/OpenSLX/OSSetup/MetaPackager/apt.pm create mode 100644 src/installer/OpenSLX/OSSetup/MetaPackager/smart.pm create mode 100644 src/installer/OpenSLX/OSSetup/MetaPackager/yum.pm create mode 100644 src/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm create mode 100644 src/installer/OpenSLX/OSSetup/Packager/Base.pm create mode 100644 src/installer/OpenSLX/OSSetup/Packager/dpkg.pm create mode 100644 src/installer/OpenSLX/OSSetup/Packager/rpm.pm create mode 100755 src/installer/slxos-export create mode 100755 src/installer/slxos-setup create mode 100644 src/lib/OpenSLX/Basics.pm create mode 100644 src/lib/OpenSLX/ConfigFolder.pm create mode 100644 src/lib/OpenSLX/DistroUtils.pm create mode 100644 src/lib/OpenSLX/DistroUtils/Base.pm create mode 100644 src/lib/OpenSLX/DistroUtils/Engine.pm create mode 100644 src/lib/OpenSLX/DistroUtils/InitFile.pm create mode 100644 src/lib/OpenSLX/DistroUtils/Suse.pm create mode 100644 src/lib/OpenSLX/DistroUtils/Ubuntu.pm create mode 100644 src/lib/OpenSLX/LibScanner.pm create mode 100644 src/lib/OpenSLX/ScopedResource.pm create mode 100644 src/lib/OpenSLX/Syscall.pm create mode 100644 src/lib/OpenSLX/Translations/de.pm create mode 100644 src/lib/OpenSLX/Translations/posix.pm create mode 100644 src/lib/OpenSLX/Utils.pm create mode 100644 src/lib/distro-info/clone-filter.example create mode 100644 src/lib/distro-info/debian-3.1/mirrors/base create mode 100644 src/lib/distro-info/debian-3.1/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/debian-3.1/prereqfiles/var/cache/debconf/slx-defaults.dat create mode 100644 src/lib/distro-info/debian-3.1/settings.default create mode 100644 src/lib/distro-info/debian-3.1/settings.example create mode 100644 src/lib/distro-info/debian-4.0/mirrors/base create mode 100644 src/lib/distro-info/debian-4.0/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/debian-4.0/settings.default create mode 100644 src/lib/distro-info/debian-4.0/settings.example create mode 100644 src/lib/distro-info/debian-4.0_amd64/mirrors/base create mode 100644 src/lib/distro-info/debian-4.0_amd64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/debian-4.0_amd64/settings.default create mode 100644 src/lib/distro-info/debian-4.0_amd64/settings.example create mode 100644 src/lib/distro-info/debian-5.0/mirrors/base create mode 100644 src/lib/distro-info/debian-5.0/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/debian-5.0/settings.default create mode 100644 src/lib/distro-info/debian-5.0/settings.example create mode 100644 src/lib/distro-info/fedora-6/export-filter.example create mode 100644 src/lib/distro-info/fedora-6/mirrors/base create mode 100644 src/lib/distro-info/fedora-6/mirrors/base_update create mode 100644 src/lib/distro-info/fedora-6/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/fedora-6/settings.default create mode 100644 src/lib/distro-info/fedora-6/settings.example create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-beta create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-extras create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-legacy create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-test create mode 100644 src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-rawhide create mode 100644 src/lib/distro-info/fedora-6_x86_64/export-filter.example create mode 100644 src/lib/distro-info/fedora-6_x86_64/mirrors/base create mode 100644 src/lib/distro-info/fedora-6_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/fedora-6_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/fedora-6_x86_64/settings.default create mode 100644 src/lib/distro-info/fedora-6_x86_64/settings.example create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-beta create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-extras create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-legacy create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-test create mode 100644 src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-rawhide create mode 100644 src/lib/distro-info/scilin-4.7/export-filter.example create mode 100644 src/lib/distro-info/scilin-4.7/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-4.7/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-4.7/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-4.7/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-4.7/settings.default create mode 100644 src/lib/distro-info/scilin-4.7/settings.example create mode 100644 src/lib/distro-info/scilin-5.3/export-filter.example create mode 100644 src/lib/distro-info/scilin-5.3/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-5.3/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-5.3/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-5.3/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-5.3/settings.default create mode 100644 src/lib/distro-info/scilin-5.3/settings.example create mode 100644 src/lib/distro-info/scilin-5.4/export-filter.example create mode 100644 src/lib/distro-info/scilin-5.4/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-5.4/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-5.4/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-5.4/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-5.4/settings.default create mode 100644 src/lib/distro-info/scilin-5.4/settings.example create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/export-filter.example create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/settings.default create mode 100644 src/lib/distro-info/scilin-5.4_x86_64/settings.example create mode 100644 src/lib/distro-info/scilin-5.5/export-filter.example create mode 100644 src/lib/distro-info/scilin-5.5/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-5.5/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-5.5/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-5.5/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-5.5/settings.default create mode 100644 src/lib/distro-info/scilin-5.5/settings.example create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/export-filter.example create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/settings.default create mode 100644 src/lib/distro-info/scilin-5.5_x86_64/settings.example create mode 100644 src/lib/distro-info/suse-10.2/export-filter.example create mode 100644 src/lib/distro-info/suse-10.2/mirrors/base create mode 100644 src/lib/distro-info/suse-10.2/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-10.2/mirrors/base_update create mode 100644 src/lib/distro-info/suse-10.2/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-10.2/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-10.2/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-10.2/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-10.2/settings.default create mode 100644 src/lib/distro-info/suse-10.2/settings.example create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-10.2/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-10.2_x86_64/export-filter.example create mode 100644 src/lib/distro-info/suse-10.2_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-10.2_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-10.2_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-10.2_x86_64/settings.default create mode 100644 src/lib/distro-info/suse-10.2_x86_64/settings.example create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-10.3/export-filter.example create mode 100644 src/lib/distro-info/suse-10.3/mirrors/base create mode 100644 src/lib/distro-info/suse-10.3/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-10.3/mirrors/base_update create mode 100644 src/lib/distro-info/suse-10.3/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-10.3/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-10.3/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-10.3/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-10.3/settings.default create mode 100644 src/lib/distro-info/suse-10.3/settings.example create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-10.3/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-10.3_x86_64/export-filter.example create mode 100644 src/lib/distro-info/suse-10.3_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-10.3_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-10.3_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-10.3_x86_64/settings.default create mode 100644 src/lib/distro-info/suse-10.3_x86_64/settings.example create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.0/export-filter.example create mode 100644 src/lib/distro-info/suse-11.0/mirrors/base create mode 100644 src/lib/distro-info/suse-11.0/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.0/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.0/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.0/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.0/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.0/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.0/settings.default create mode 100644 src/lib/distro-info/suse-11.0/settings.example create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.0/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.0_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-11.0_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.0_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.1/export-filter.example create mode 100644 src/lib/distro-info/suse-11.1/mirrors/base create mode 100644 src/lib/distro-info/suse-11.1/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.1/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.1/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.1/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.1/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.1/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.1/settings.default create mode 100644 src/lib/distro-info/suse-11.1/settings.example create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.1/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.1_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-11.1_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.1_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.2/export-filter.example create mode 100644 src/lib/distro-info/suse-11.2/mirrors/base create mode 100644 src/lib/distro-info/suse-11.2/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.2/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.2/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.2/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.2/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.2/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.2/settings.default create mode 100644 src/lib/distro-info/suse-11.2/settings.example create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.2_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.2_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.3/export-filter.example create mode 100644 src/lib/distro-info/suse-11.3/mirrors/base create mode 100644 src/lib/distro-info/suse-11.3/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.3/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.3/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.3/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.3/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.3/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.3/settings.default create mode 100644 src/lib/distro-info/suse-11.3/settings.example create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-307e3d54-4be01a65.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3dbdc284-4be1884d.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-56b4177a-4be18cab.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-7e2e3b05-4be037ca.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-9c800aca-4be01999.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.3/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/suse-11.3_x86_64/mirrors/base create mode 100644 src/lib/distro-info/suse-11.3_x86_64/mirrors/base_non-oss create mode 100644 src/lib/distro-info/suse-11.3_x86_64/mirrors/base_update create mode 100644 src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/group create mode 100644 src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/passwd create mode 100644 src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/shadow create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc create mode 100644 src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/pubring.gpg create mode 100644 src/lib/distro-info/ubuntu-10.04/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-10.04/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-10.04/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-10.04/settings.default create mode 100644 src/lib/distro-info/ubuntu-10.04/settings.example create mode 100644 src/lib/distro-info/ubuntu-8.04/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-8.04/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-8.04/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-8.04/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-8.04/settings.default create mode 100644 src/lib/distro-info/ubuntu-8.04/settings.example create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/settings.default create mode 100644 src/lib/distro-info/ubuntu-8.04_amd64/settings.example create mode 100644 src/lib/distro-info/ubuntu-8.10/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-8.10/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-8.10/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-8.10/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-8.10/settings.default create mode 100644 src/lib/distro-info/ubuntu-8.10/settings.example create mode 100644 src/lib/distro-info/ubuntu-9.04/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-9.04/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-9.04/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-9.04/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-9.04/settings.default create mode 100644 src/lib/distro-info/ubuntu-9.04/settings.example create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/settings.default create mode 100644 src/lib/distro-info/ubuntu-9.04_amd64/settings.example create mode 100644 src/lib/distro-info/ubuntu-9.10/mirrors/base create mode 100644 src/lib/distro-info/ubuntu-9.10/mirrors/base_security create mode 100644 src/lib/distro-info/ubuntu-9.10/mirrors/base_updates create mode 100644 src/lib/distro-info/ubuntu-9.10/prereqfiles/etc/hosts create mode 100644 src/lib/distro-info/ubuntu-9.10/settings.default create mode 100644 src/lib/distro-info/ubuntu-9.10/settings.example create mode 100644 src/os-plugins/OpenSLX/OSPlugin/Base.pm create mode 100644 src/os-plugins/OpenSLX/OSPlugin/Engine.pm create mode 100644 src/os-plugins/OpenSLX/OSPlugin/Roster.pm create mode 100644 src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm create mode 100644 src/os-plugins/plugins/bootsplash/XX_bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0 create mode 100644 src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1 create mode 100644 src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1 create mode 100755 src/os-plugins/plugins/bootsplash/files/sbin/splashy create mode 100755 src/os-plugins/plugins/bootsplash/files/sbin/splashy_config create mode 100755 src/os-plugins/plugins/bootsplash/files/sbin/splashy_update create mode 100644 src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf create mode 100644 src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png create mode 100644 src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml create mode 100644 src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9 create mode 100644 src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9 create mode 100644 src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1 create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh create mode 100644 src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm create mode 100644 src/os-plugins/plugins/desktop/OpenSLX/OSPlugin/desktop.pm create mode 100644 src/os-plugins/plugins/desktop/XX_desktop.sh create mode 120000 src/os-plugins/plugins/desktop/themes/gdm/openslx-legacy create mode 100755 src/os-plugins/plugins/desktop/themes/gdm/openslx/GdmGreeterTheme.desktop create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/color.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/environment.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/main-runner.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo-main.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/system.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/system_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/theme.xml create mode 100644 src/os-plugins/plugins/desktop/themes/gdm/openslx/welcome-time-shadowed.png create mode 100755 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/GdmGreeterTheme.desktop create mode 100755 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/KdmGreeterTheme.desktop create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/color.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/environment.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/main-runner.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo-main.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/theme.xml create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/welcome-time-shadowed.png create mode 100755 src/os-plugins/plugins/desktop/themes/kdm/openslx/KdmGreeterTheme.desktop create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/color.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/enter.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/enter_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/environment.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/main-runner.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo-main.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/system.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/system_inactive.png create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/theme.xml create mode 100644 src/os-plugins/plugins/desktop/themes/kdm/openslx/welcome-time-shadowed.png create mode 100644 src/os-plugins/plugins/dropbear/OpenSLX/OSPlugin/dropbear.pm create mode 100644 src/os-plugins/plugins/dropbear/XX_dropbear.sh create mode 100755 src/os-plugins/plugins/dropbear/files/dropbearmulti create mode 100755 src/os-plugins/plugins/dropbear/init-hooks/95-cleanup/dropbear.sh create mode 100644 src/os-plugins/plugins/example/OpenSLX/OSPlugin/example.pm create mode 100644 src/os-plugins/plugins/example/XX_example.sh create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Scilin.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/infoscreen/OpenSLX/OSPlugin/infoscreen.pm create mode 100644 src/os-plugins/plugins/infoscreen/XX_infoscreen.sh create mode 100644 src/os-plugins/plugins/infoscreen/files/empty.xbm create mode 100644 src/os-plugins/plugins/infoscreen/files/infoscreenClient.tgz create mode 100755 src/os-plugins/plugins/infoscreen/files/kiosk.dpms create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Scilin.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/kiosk/OpenSLX/OSPlugin/kiosk.pm create mode 100644 src/os-plugins/plugins/kiosk/XX_kiosk.sh create mode 100755 src/os-plugins/plugins/kiosk/files/kgetty create mode 120000 src/os-plugins/plugins/kiosk/files/profiles/plain/.bashrc create mode 100644 src/os-plugins/plugins/kiosk/files/profiles/plain/bashrc create mode 100644 src/os-plugins/plugins/kiosk/files/profiles/vmchooser/.bash_profile create mode 120000 src/os-plugins/plugins/kiosk/files/profiles/vmchooser/.bashrc create mode 120000 src/os-plugins/plugins/kiosk/files/profiles/vmchooser/.xinitrc create mode 100644 src/os-plugins/plugins/kiosk/files/profiles/vmchooser/bashrc create mode 100644 src/os-plugins/plugins/kiosk/files/profiles/vmchooser/xinitrc create mode 100644 src/os-plugins/plugins/openvz/OpenSLX/OSPlugin/openvz.pm create mode 100644 src/os-plugins/plugins/openvz/XX_openvz.sh create mode 100644 src/os-plugins/plugins/openvz/files/machine.include create mode 100644 src/os-plugins/plugins/openvz/files/run-virt.include create mode 100755 src/os-plugins/plugins/openvz/init-hooks/20-nw-bridge-config/bridge.sh create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Scilin.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/Distro/Ubuntu_10.pm create mode 100644 src/os-plugins/plugins/profile/OpenSLX/OSPlugin/profile.pm create mode 100644 src/os-plugins/plugins/profile/XX_profile.sh create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/pvs/OpenSLX/OSPlugin/pvs.pm create mode 100644 src/os-plugins/plugins/pvs/XX_pvs.sh create mode 100755 src/os-plugins/plugins/pvs/files/pvs-vncsrv create mode 100644 src/os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/qemukvm/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/qemukvm/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/qemukvm/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm create mode 100644 src/os-plugins/plugins/qemukvm/XX_qemukvm.sh create mode 100644 src/os-plugins/plugins/qemukvm/files/ifdown create mode 100644 src/os-plugins/plugins/qemukvm/files/ifup create mode 100644 src/os-plugins/plugins/qemukvm/files/run-virt.include create mode 100644 src/os-plugins/plugins/qemukvm/init-hooks/20-nw-bridge-config/bridge.sh create mode 100755 src/os-plugins/plugins/qemukvm/init-hooks/60-have-servconfig/vm-dhcpd.sh create mode 100644 src/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/syslog/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm create mode 100644 src/os-plugins/plugins/syslog/XX_syslog.sh create mode 100644 src/os-plugins/plugins/syslog/init-hooks/15-have-ip-config/syslog.sh create mode 100644 src/os-plugins/plugins/syslog/init-hooks/95-cleanup/syslog.sh create mode 100644 src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm create mode 100644 src/os-plugins/plugins/sysrqshutdown/XX_sysrqshutdown.sh create mode 100644 src/os-plugins/plugins/sysrqshutdown/files/shutdown create mode 100644 src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm create mode 100644 src/os-plugins/plugins/virtualbox/XX_virtualbox.sh create mode 100644 src/os-plugins/plugins/virtualbox/files/empty-diff.vdi.gz create mode 100644 src/os-plugins/plugins/virtualbox/files/machine.include create mode 100644 src/os-plugins/plugins/virtualbox/files/run-virt.include create mode 100644 src/os-plugins/plugins/virtualbox/files/rwimg.vdi.gz create mode 100644 src/os-plugins/plugins/virtualbox/files/virtualbox.include create mode 100644 src/os-plugins/plugins/virtualbox/init-hooks/20-nw-bridge-config/bridge.sh create mode 100644 src/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm create mode 100644 src/os-plugins/plugins/vmchooser/README create mode 100644 src/os-plugins/plugins/vmchooser/XX_vmchooser.sh create mode 100644 src/os-plugins/plugins/vmchooser/files/default.desktop create mode 100755 src/os-plugins/plugins/vmchooser/files/mesgdisp create mode 120000 src/os-plugins/plugins/vmchooser/files/mkdosfs create mode 100755 src/os-plugins/plugins/vmchooser/files/printer.sh create mode 100644 src/os-plugins/plugins/vmchooser/files/run-virt.sh create mode 100755 src/os-plugins/plugins/vmchooser/files/scanner.sh create mode 100755 src/os-plugins/plugins/vmchooser/files/vm-template.xml create mode 100644 src/os-plugins/plugins/vmchooser/files/vmchooser create mode 100755 src/os-plugins/plugins/vmchooser/files/xmlfilter.sh create mode 100644 src/os-plugins/plugins/vmchooser/init-hooks/40-started-hw-config/run-virt.sh create mode 100644 src/os-plugins/plugins/vmchooser/init-hooks/80-after-plugins/virtualization.sh create mode 100644 src/os-plugins/plugins/vmgrid/OpenSLX/OSPlugin/vmgrid.pm create mode 100644 src/os-plugins/plugins/vmgrid/XX_vmgrid.sh create mode 100644 src/os-plugins/plugins/vmgrid/files/run-vmgrid.sh create mode 100644 src/os-plugins/plugins/vmgrid/files/vmgrid create mode 100644 src/os-plugins/plugins/vmgrid/init-hooks/80-after-plugins/virtualization.sh create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm create mode 100644 src/os-plugins/plugins/vmware/XX_vmware.sh create mode 100644 src/os-plugins/plugins/vmware/files/README create mode 100644 src/os-plugins/plugins/vmware/files/install-vmpl.sh create mode 100644 src/os-plugins/plugins/vmware/files/nvram create mode 100644 src/os-plugins/plugins/vmware/files/run-virt.include create mode 100755 src/os-plugins/plugins/vmware/init-hooks/20-nw-bridge-config/bridge.sh create mode 100755 src/os-plugins/plugins/vmware/init-hooks/60-have-servconfig/vm-dhcpd.sh create mode 100644 src/os-plugins/plugins/vmware/init-hooks/80-after-plugins/adapt-tmpfs.sh create mode 100644 src/os-plugins/plugins/wlanboot/OpenSLX/OSPlugin/wlanboot.pm create mode 100644 src/os-plugins/plugins/wlanboot/XX_wlanboot.sh create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwconfig create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwevent create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwgetid create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwlist create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwpriv create mode 100755 src/os-plugins/plugins/wlanboot/files/bin/iwspy create mode 100644 src/os-plugins/plugins/wlanboot/files/bin/iwtest create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/README create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/iwlwifi-3945-1.ucode create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/iwlwifi-3945-2.ucode create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/iwlwifi-4965-1.ucode create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/iwlwifi-4965-2.ucode create mode 100644 src/os-plugins/plugins/wlanboot/files/firmware/iwlwifi-5000-1.ucode create mode 120000 src/os-plugins/plugins/wlanboot/files/lib/libiw.so create mode 100755 src/os-plugins/plugins/wlanboot/files/lib/libiw.so.29 create mode 100755 src/os-plugins/plugins/wlanboot/init-hooks/10-nw-if-config/wlanboot.sh create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Fedora.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Gentoo.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm create mode 100644 src/os-plugins/plugins/x11vnc/XX_x11vnc.sh create mode 100755 src/os-plugins/plugins/x11vnc/files/x11vnc-init create mode 100644 src/os-plugins/plugins/xen/OpenSLX/OSPlugin/xen.pm create mode 100644 src/os-plugins/plugins/xen/XX_xen.sh create mode 100644 src/os-plugins/plugins/xen/files/hvm.include create mode 100644 src/os-plugins/plugins/xen/files/machine.include create mode 100644 src/os-plugins/plugins/xen/files/run-virt.include create mode 100644 src/os-plugins/plugins/xen/init-hooks/10-nw-if-config/xennet.sh create mode 100755 src/os-plugins/plugins/xen/init-hooks/20-nw-bridge-config/bridge.sh create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Debian.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_10.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_1.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_2.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_8.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/Distro/Ubuntu_9.pm create mode 100644 src/os-plugins/plugins/xserver/OpenSLX/OSPlugin/xserver.pm create mode 100644 src/os-plugins/plugins/xserver/XX_xserver.sh create mode 100644 src/os-plugins/plugins/xserver/files/README create mode 100755 src/os-plugins/plugins/xserver/files/ati-install.sh create mode 100755 src/os-plugins/plugins/xserver/files/nvidia-install.sh create mode 100755 src/os-plugins/plugins/xserver/files/suse-gfx-install.sh create mode 100755 src/os-plugins/plugins/xserver/files/ubuntu-gfx-install.sh create mode 100755 src/os-plugins/plugins/xserver/files/ubuntu-ng-gfx-install.sh create mode 100644 src/os-plugins/plugins/xserver/init-hooks/00-started/xserver.sh create mode 100755 src/os-plugins/slxos-plugin create mode 100644 src/tools/README.busybox create mode 100755 src/tools/mksquashfs create mode 100644 src/tools/mksquashfs-filter-patch create mode 100755 src/tools/uclibc-wrapper (limited to 'src') diff --git a/src/bin/devel-tools/determineMinimumPackageSet.pl b/src/bin/devel-tools/determineMinimumPackageSet.pl new file mode 100755 index 00000000..52d13fc5 --- /dev/null +++ b/src/bin/devel-tools/determineMinimumPackageSet.pl @@ -0,0 +1,183 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +determineMinimumPackageSet.pl + This script is a tool for OpenSLX developers that allows to extract + the minimal package-set from all the installed rpm packages. + "Minimum" here means those packages only that are not + required by other installed packages (a.k.a. the leaves of the RPM + dependency graph). + This minimal set is useful to simplify the commandline for yum when + it is invoked to install a specific selection. +]; + +use Getopt::Long; +use Pod::Usage; + +my ( + $helpReq, + $verbose, + $versionReq, + + %pkgs, + @leafPkgs, +); + +my $rpmOutFile = "/tmp/minpkgset.rpmout"; +my $rpmErrFile = "/tmp/minpkgset.rpmerr"; + +GetOptions( + 'help|?' => \$helpReq, + 'verbose' => \$verbose, + 'version' => \$versionReq, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; +if ($versionReq) { + system('slxversion'); + exit 1; +} + +determineMinimumPackageSet(); + +print "THE MINIMUM PACKAGE LIST:\n"; +print(('-' x 40)."\n"); +print join("\n", sort @leafPkgs)."\n"; + +exit; + +sub slurpFile +{ + my $file = shift; + + my $fh; + open($fh, '<', $file) + or die _tr("could not open file '%s' for reading! (%s)", $file, $!); + local $/ = undef; + my $text = <$fh>; + close($fh); + return $text; +} + +sub rpmDie +{ + my $rpmCmd = shift; + + print "\n*** An error occurred when executing the following rpm-command:\n"; + print "\t$rpmCmd\n"; + my $err = slurpFile($rpmErrFile); + print "*** The error was:\n"; + print "\t$err\n"; + exit 5; +} + +sub callRpm +{ + my $rpmCmd = shift; + + my $res = system("$rpmCmd >$rpmOutFile 2>$rpmErrFile"); + exit 1 if ($res & 127); # child caught a signal + rpmDie($rpmCmd) if -s $rpmErrFile; + my $out = slurpFile($rpmOutFile); + return ($res, $out); +} + +sub handlePackage +{ + my $pkgName = shift; + + # if any other package requires it, the current package is not a leaf! + print "\tdirectly required..." if $verbose; + my ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires "$pkgName"]); + print $rpmRes ? "no\n" : "yes\n" if $verbose; + return 0 unless $rpmRes; + + print "\tany of its provides required..." if $verbose; + ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --provides "$pkgName"]); + my $provides + = join ' ', + map { + my $rpm = $_; + $rpm =~ s[^\s*(.+?)\s*$][$1]; + qq["$rpm"]; + } + split "\n", $rpmOut; + ($rpmRes, $rpmOut) = callRpm(qq[rpm -q --whatrequires $provides]); + if ($rpmRes == 0) { + # ignore if rpm tells us that a provides is required by + # the package that provides it: + $rpmRes = 1; + while($rpmOut =~ m[^\s*(.+?)\s*]gm) { + if ($1 ne $pkgName) { + $rpmRes = 0; + last; + } + } + } + print $rpmRes ? "no\n" : "yes\n" if $verbose; + return 0 unless $rpmRes; + + print "!!! adding $pkgName\n" if $verbose; + push @leafPkgs, $pkgName; + return 1; +} + +sub determineMinimumPackageSet +{ + my ($rpmRes, $allPkgs) + = callRpm(qq[rpm -qa --queryformat "%{NAME}\n"]); + foreach my $p (sort split "\n", $allPkgs) { + print "$p...\n" if $verbose; + print "." unless $verbose; + handlePackage($p); + } + return; +} + +__END__ + +=head1 NAME + +determineMinimumPackageSet.pl - OpenSLX script to extract the minimum package +set from all the installed rpm packages. + +=head1 SYNOPSIS + +determineMinimumPackageSet.pl [options] + + Options: + --help brief help message + --verbose show files as they are being processed + --version show version + +=head1 OPTIONS + +=over 8 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--verbose> + +Prints information about each installed package as it is being processed. + +=item B<--version> + +Prints the version and exits. + +=back + +=cut \ No newline at end of file diff --git a/src/bin/devel-tools/extractTranslations.pl b/src/bin/devel-tools/extractTranslations.pl new file mode 100755 index 00000000..789a70ad --- /dev/null +++ b/src/bin/devel-tools/extractTranslations.pl @@ -0,0 +1,242 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# extractTranslations.pl +# - OpenSLX-script to extract translatable strings from other scripts +# and modules. +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +extractTranslations.pl + This script is a tool for OpenSLX developers that allows to extract + translatable strings from all OpenSLX perl-scripts and modules found + in and below a given path. + + Optionally, all the translatable strings that were found can automatically + be integrated into all existing translation modules. During this process, + any translations already existing in these modules will be preserved. +]; + +use Cwd; +use File::Find; +use Getopt::Long; +use Pod::Usage; + +use OpenSLX::Utils; + +my ( + $helpReq, + $show, + $update, + $verbose, + $versionReq, + + %translatableStrings, + $fileCount, +); + +GetOptions( + 'help|?' => \$helpReq, + 'update' => \$update, + 'show' => \$show, + 'verbose' => \$verbose, + 'version' => \$versionReq, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; +if ($versionReq) { + system('slxversion'); + exit 1; +} + +# chdir to the repository's root folder: +use FindBin; +my $path = "$FindBin::RealBin/../.."; +chdir($path) + or die "can't chdir to repository-root <$path> ($!)"; +print "searching in ".cwd()."\n"; + +find(\&ExtractTrStrings, '.'); + +my $trCount = scalar keys %translatableStrings; +print "Found $trCount translatable strings in $fileCount files.\n"; + +if ($show) { + foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { + print "\tqq{$tr}\n\t\t=> qq{$tr}\n"; + } +} + +if ($update) { + find(\&UpdateTrModule, 'lib/OpenSLX/Translations'); +} + +exit; + +sub ExtractTrStrings +{ + $File::Find::prune = 1 if ($_ eq '.svn' + || $_ eq 'Translations' + || $_ eq 'devel-tools'); + return if -d; + my $text = slurpFile($_); + if ($File::Find::name !~ m[\.pm$] && $text !~ m[^#!.+/perl]im) { + # ignore anything other than perl-modules and -scripts + return; + } + print "$File::Find::name...\n"; + $fileCount++; + while($text =~ m[_tr\s*\(\s*(.+?)\s*\);]gos) { + # NOTE: that cheesy regex relies on the string ');' not being used + # inside of translatable strings... so SLX_DONT_DO_THAT! + # As an alternative, we could implement a real parser, but + # I'd like to postpone that until the current scheme proves + # simply not good enough. + my $tr = $1; + if (!($tr =~ m[^'([^']+)'\s*(,.+?)*\s*$]os + || $tr =~ m[^\"([^"]+)\"\s*(,.+?)*\s*$]os + || $tr =~ m{^qq?\[([^\]]+)\]\s*(,.+?)*\s*$}os)) { + die "$File::Find::name: could not parse _tr()-argument \n" + ."\t$tr\nPlease correct and retry.\n"; + } + $tr = $1; + if ($tr =~ m[(\$\w+)]) { + die "$File::Find::name: _tr()-argument\n\t$tr\n" + ."contains variable '$1'.\nPlease correct and retry.\n"; + } + $tr =~ s[\n][\\n]g; + $tr =~ s[\t][\\t]g; + $translatableStrings{$tr} = $tr; + print "\t$tr\n" if $verbose; + } +} + +sub UpdateTrModule +{ + $File::Find::prune = 1 if ($_ eq '.svn'); + return if -d || !/.pm$/; + print "updating $File::Find::name...\n"; + my $trModule = $_; + my $useKeyAsTranslation = ($trModule eq 'posix.pm'); + my $text = slurpFile($trModule); + if ($text !~ m[%translations\s*=\s*\(\s*(.+)\s*\);]os) { + print "\t*** No translations found - file will be skipped! ***\n"; + return; + } + my %translations; + # evaluate the hash read from file into %translations: + if (!eval "$&") { + print "\t*** translations can't be evaluated - file will be skipped! ***\n"; + return; + } + my $updatedTranslations = "%translations = (\n"; + my $keepCount = 0; + my $newCount = 0; + foreach my $tr (sort {lc($a) cmp lc($b)} keys %translatableStrings) { + if (!length($translations{$tr})) { + if ($useKeyAsTranslation) { + # POSIX language (English): use key as translation: + $updatedTranslations + .= "\tq{$tr}\n\t=>\n\tqq{$tr},\n\n"; + $newCount++; + } else { + # no translation available, we mark the key, such that a + # search for this key will fall back to the english message: + my $trMark = "NEW:$tr"; + if (exists $translations{$trMark}) { + # the marked string already exists, we keep the translation + # if any (usually, of course, there is none): + my $trValue = $translations{$trMark}; + $trValue =~ s[\n][\\n]g; + $trValue =~ s[\t][\\t]g; + $updatedTranslations + .= "\tq{$trMark}\n\t=>\n\tqq{$trValue},\n\n"; + $keepCount++; + } else { + $updatedTranslations + .= "\tq{$trMark}\n\t=>\n\tqq{},\n\n"; + $newCount++; + } + } + } else { + # use existing translation for key: + my $trValue = $translations{$tr}; + $trValue =~ s[\n][\\n]g; + $trValue =~ s[\t][\\t]g; + $updatedTranslations + .= "\tq{$tr}\n\t=>\n\tqq{$trValue},\n\n"; + $keepCount++; + } + } + my $delCount = scalar(keys %translations) - $keepCount; + $text =~ s[%translations\s*=\s*\(\s*(.+)\s*\);] + [$updatedTranslations);]os; + if ($newCount + $delCount) { + chomp $text; + spitFile($trModule, $text."\n"); + print "\tadded $newCount strings, kept $keepCount and removed $delCount.\n"; + } else { + print "\tnothing changed\n"; + } +} + +__END__ + +=head1 NAME + +extractTranslations.pl - OpenSLX-script to extract translatable strings from +all scripts and modules found in and below the given path. + +=head1 SYNOPSIS + +extractTranslations.pl [options] + + Options: + --help brief help message + --update update the OpenSLX locale modules + (in lib/OpenSLX/Translations) + --show show overview of all strings found + --verbose show for each file which strings are found + --version show version + +=head1 OPTIONS + +=over 8 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--show> + +Prints sorted list of all translatable strings that were found. + +=item B<--update> + +Integrates the found translatable strings into all OpenSLX locale modules found +under lib/OpenSLX/Translations. +Every module will be updated with the found strings, existing +translations will not be changed (unless the corresponding key doesn't exist +anymore, in which case they will be removed). + +=item B<--verbose> + +Prints information about what's going on during execution of the script. + +=item B<--version> + +Prints the version and exits. + +=back + +=cut \ No newline at end of file diff --git a/src/bin/devel-tools/generateSettings.pl b/src/bin/devel-tools/generateSettings.pl new file mode 100755 index 00000000..b0e1b447 --- /dev/null +++ b/src/bin/devel-tools/generateSettings.pl @@ -0,0 +1,207 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006 - 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/ +# ----------------------------------------------------------------------------- +use strict; +use warnings; +use Data::Dumper; +my $abstract = q[ +determineMinimumPackageSet.pl + This script is a tool for OpenSLX developers that is meant to generate a + packageset for settings.default. It can be used to generate + bootstrap-packages for example. +]; + +use Getopt::Long; +use Pod::Usage; + +my ( + $helpReq, + $verbose, + $versionReq, + $inputfile, + $outputfile, + $url, + $errorfile, + + @Pkgs, + @files, + @GivenNames, + @filelisting, + @errors, +); + +$errorfile="/tmp/genSettings.err"; +GetOptions( + 'help|?' => \$helpReq, + 'verbose' => \$verbose, + 'version' => \$versionReq, + 'if=s' => \$inputfile, + 'of=s' => \$outputfile, + 'url=s' => \$url, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; +if ($versionReq) { + system('slxversion'); + exit 1; +} + +open(INPUTFILE,$inputfile) || die("Can't open input-file $inputfile!"); + while (my $zeile=){ + if ($zeile ne "") { + push (@GivenNames,$zeile); + } + } +close(INPUTFILE); + +print "getting filelisting:\n" if $verbose; +if (substr($url,0,3) eq "ftp") { + print "\trecognized mirror as ftp - $url\n" if $verbose; + @filelisting=_getPackageListingFtp($url); +} elsif (substr($url,0,4) eq "http") { + print "\trecognized mirror as http - $url\n" if $verbose; + @filelisting=_getPackageListingHttp($url); +} else { + die "Unable to get mirror type (ftp or http)"; +} +print "\tgot file listing from $url\n" if $verbose; +print "resolving names:\n" if $verbose; +foreach my $name (@GivenNames) { + $name=~ s/^[\s\t]+//; #removes whitespaces + $name=~ s/[\n\t\r]$//; #removes new lines + my @possiblepackages = grep(/^\Q$name\E*/i,@filelisting); + my $res; + if ($possiblepackages[0]) { + $res = $possiblepackages[0]; + } else { + push (@errors,$name); + } + print "\t$name->$res\n" if $verbose; + push (@Pkgs,$res) if $res; +} +open (OUTPUTFILE,">>$outputfile") || die("Can't open output-file $outputfile!"); +foreach my $package (@Pkgs) { + print OUTPUTFILE "$package\n"; +} +close (OUTPUTFILE); +open (ERRORFILE,">>$errorfile") || die("Can't open output-file $errorfile!"); + foreach my $error (@errors) { + print ERRORFILE "$error\n"; +} +close (ERRORFILE); +print "\n"; + +if ($verbose) { + print "THE PACKAGE LIST:\n"; + print(('=' x 40)."\n"); + print join("\n", sort @Pkgs)."\n"; +} + +exit; + + +sub _getPackageListingFtp { + my $url = shift; + use Net::FTP; + use URI; + require URI::_generic; + + my $urlObject = URI->new($url); + my $path = shift; + my $ftp = Net::FTP->new($urlObject->host( ), Timeout => 240) + or die _tr("Unable to connect to FTP-Server"); + $ftp->login("anonymous", "mailaddress@"); + $ftp->cwd($urlObject->path( )); + return $ftp->ls(); +} + +sub _getPackageListingHttp { + my $url = shift; + use URI; + use URI::http; + use URI::_foreign; + use HTTP::Request; + use LWP::UserAgent; + use LWP::Protocol::http; + + my @filelisting; + my $ua = LWP::UserAgent->new; + $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8) Gecko/20051111 Firefox/1.5"); + my $req; + $req = HTTP::Request->new(GET => $url); + $req->header('Accept' => 'text/html'); + + # send request + my $res = $ua->request($req); + # check the outcome + if ($res->is_success) { + print "\tThe given URL is : $url\n" if $verbose; + @filelisting = ($res->decoded_content =~ m/status_line . "\n"); +} + + +__END__ + +=head1 NAME + +generateSettings.pl - OpenSLX script to extract full package names +from a given mirror. + +=head1 SYNOPSIS + +generateSettings.pl [options] + + Options: + --if inputfile + --of outputfile + --url url of the mirror + --help brief help message + --verbose show files as they are being processed + --version show version + +=head1 OPTIONS + +=over 8 + +=item B<--if> + +Select input file with package names in each line. + +=item B<--of> + +Select output file for complete package names to append. + +=item B<--url> + +Select a mirror directory for the desired distribution + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--verbose> + +Prints information about each installed package as it is being processed. + +=item B<--version> + +Prints the version and exits. + +=back + +=cut diff --git a/src/bin/devel-tools/parseSusePatterns.pl b/src/bin/devel-tools/parseSusePatterns.pl new file mode 100755 index 00000000..a286cd71 --- /dev/null +++ b/src/bin/devel-tools/parseSusePatterns.pl @@ -0,0 +1,163 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# parseSusePatterns.pl +# - OpenSLX script to extract a package list from a given list of +# SUSE-pattern-files (*.pat). +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +parseSusePatterns.pl + This script is a tool for OpenSLX developers that allows to extract + package lists from a given set of SUSE pattern files. +]; + +use Getopt::Long; +use Pod::Usage; + +my ( + $helpReq, + $versionReq, + + %patternNames, + %packageNames, +); + +GetOptions( + 'help|?' => \$helpReq, + 'version' => \$versionReq, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq; +if ($versionReq) { + system('slxversion'); + exit 1; +} + +if ($ARGV[0] !~ m[^(\w+)-(.+)$]) { + die "can't extract architecture from pattern file name '$ARGV[0]'"; +} +my $arch = $2; + +foreach my $patternFile (@ARGV) { + parsePatternFile($patternFile, 1); +} + +print join("\n", sort keys %packageNames)."\n"; + +exit; + +sub parsePatternFile +{ + my $patternFile = shift; + my $outmost = shift; + + my $patFH; + if (!open($patFH, '<', $patternFile)) { + return unless $outmost; + die "unable to open $patternFile"; + } + undef $/; + my $content = <$patFH>; + close($patFH); + $patternNames{$patternFile} = 1; + + if ($content =~ m[^\=Sum.de:\s*(.+?)\s*$]ms) { + print "+ $1\n"; + } + if ($content =~ m[^\+Sug:\s*?$(.+?)^\-Sug:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Req:\s*?$(.+?)^\-Req:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Rec:\s*?$(.+?)^\-Rec:\s*?$]ms) { + addSubPatterns($1); + } + if ($content =~ m[^\+Prq:\s*?$(.+?)^\-Prq:\s*?$]ms) { + addPkgNames($1); + } + if ($content =~ m[^\+Prc:\s*?$(.+?)^\-Prc:\s*?$]ms) { + addPkgNames($1); + } + return; +} + +sub addSubPatterns +{ + my $patternNames = shift; + + my @subPatterns + = grep { length($_) > 0 } + map { + my $pattern = $_; + $pattern =~ s[^\s*(.+?)\s*$][$1]; + $pattern; + } + split "\n", $patternNames; + + foreach my $subPattern (@subPatterns) { + my $subPatternFile = "$subPattern-$arch"; + if (!exists $patternNames{$subPatternFile}) { + parsePatternFile($subPatternFile); + } + } + return; +} + +sub addPkgNames +{ + my $pkgs = shift; + + my @pkgNames + = grep { length($_) > 0 } + map { + my $pkg = $_; + $pkg =~ s[^\s*(.+?)\s*$][$1]; + $pkg; + } + split "\n", $pkgs; + foreach my $pkgName (@pkgNames) { + $packageNames{$pkgName} = 1; + } + return; +} + +=head1 NAME + +parseSusePatterns.pl - OpenSLX script to extract a package list from +a given list of SUSE-pattern-files (*.pat). + +=head1 SYNOPSIS + +parseSusePatterns.pl [options] ... + + Options: + --help brief help message + --version show version + +=head1 OPTIONS + +=over 8 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--version> + +Prints the version and exits. + +=back + +=cut \ No newline at end of file diff --git a/src/bin/slxldd b/src/bin/slxldd new file mode 100755 index 00000000..16d07b9c --- /dev/null +++ b/src/bin/slxldd @@ -0,0 +1,128 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# slxldd +# - OpenSLX-rewrite of ldd that works on multiple architectures. +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +slxldd + This script reimplements ldd in a way that should work for all + binary formats supported by the binutils installed on the host system. + + An example: if you have a folder containing an x86_64 system, you can + invoke this script on a x86_32-host in order to determine all the libraries + required by a binary of the x86_64 target system. +]; + +# add the lib-folder to perl's search path for modules: +use FindBin; +use lib "$FindBin::RealBin/../lib"; + +use File::Glob ':globally'; +use Getopt::Long; +use Pod::Usage; + +use OpenSLX::Basics; +use OpenSLX::LibScanner; + +my %option = ( + rootPath => '/', +); +GetOptions( + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'root-path=s' => \$option{rootPath}, + 'verbose' => \$option{verbose}, + 'version' => \$option{versionReq}, + ) + or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +pod2usage(-verbose => 2) if $option{manReq}; +if ($option{versionReq}) { + system('slxversion'); + exit 1; +} + +openslxInit(); + +if (!$option{rootPath}) { + print STDERR _tr("You need to specify the root-path!\n"); + pod2usage(2); +} + +$option{rootPath} =~ s[/+$][]; +# remove trailing slashes + +if (!@ARGV) { + print STDERR _tr("You need to specify at least one file!\n"); + pod2usage(2); +} + +my $libScanner = OpenSLX::LibScanner->new({ + 'root-path' => $option{rootPath}, + 'verbose' => $option{verbose}, +}); + +my @libs = $libScanner->determineRequiredLibs(@ARGV); +print join("\n", @libs), "\n"; + +=head1 NAME + +slxldd - OpenSLX-script to determine the libraries required by any given +binary file. + +=head1 SYNOPSIS + +slxldd [options] file [...more files] + + Options: + --help brief help message + --man show full documentation + --root-path= path to the root folder for library search + --verbose show what's going on during execution + --version show version + +=head1 OPTIONS + +=over 8 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--man> + +Prints the manual page and exits. + +=item B<--root-path=> + +Sets the root folder that is used when searching for libraries. In order to +collect the loader-settings, etc/ld.so.conf is read relative to this path and +all libraries are sought relative to this path, too (a.k.a. a virtual chroot). + +Defaults to '/'. + +=item B<--verbose> + +Prints info about the files as they are being scanned. + +=item B<--version> + +Prints the version and exits. + +=back + +=cut + diff --git a/src/bin/slxsettings b/src/bin/slxsettings new file mode 100755 index 00000000..8c6a823d --- /dev/null +++ b/src/bin/slxsettings @@ -0,0 +1,381 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# slxsettings +# - OpenSLX-script to show & change local settings +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +slxsettings + This script can be used to show or change the local settings for OpenSLX. + + Any cmdline-argument passed to this script will change the local OpenSLX + settings file (usually /etc/opt/openslx/settings). + + If you invoke the script without any arguments, it will print the current + settings and exit. + + Please use the --man option in order to read the full manual. +]; + +# add the lib-folder and the folder this script lives in to perl's search +# path for modules: +use FindBin; +use lib "$FindBin::RealBin/../lib"; +use lib "$FindBin::RealBin"; +# development path to config-db stuff + +use Config::General; +use Getopt::Long qw(:config pass_through); +use Pod::Usage; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +my (@reset, %givenSettings, %option); + +GetOptions( + 'quiet' => \$option{quiet}, + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'version' => \$option{versionReq}, +); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +pod2usage(-verbose => 2) if $option{manReq}; +if ($option{versionReq}) { + system('slxversion'); + exit 1; +} + +if ($> != 0) { + die _tr("Sorry, this script can only be executed by the superuser!\n"); +} + +openslxInit() or pod2usage(2); + +# some settings must match a certain pattern: +my %configPattern = ( + 'db-type' => '(SQLite|mysql)', +); + +# the remaining cmdline arguments are set or reset actions, each followed +# by a single argument: +while (scalar @ARGV) { + my $action = shift || ''; + my $arg = shift || ''; + if ($action eq 'set') { + if ($arg !~ m[^([-\w]+)=(.+)$]) { + die _tr( + "set-argument '%s' has unknown format, expected '=!'", + $arg + ); + } + $givenSettings{$1} = $2; + } + elsif ($action eq 'reset') { + push @reset, $arg; + } + else { + die _tr(unshiftHereDoc(<<' END-OF-HERE'), $arg, $0); + action '%s' is not understood! Known actions are: + set + reset + Try '%s --help' for more info. + END-OF-HERE + } +} + +# fetch current content of local settings file... +my $fileName = "$openslxConfig{'config-path'}/settings"; +if (!-e $fileName) { + # create empty default settings file with tight mode (root-only access) + # [I know this isn't *secure* as such, but it's still better than nothing] + slxsystem("touch $fileName && chmod 0600 $fileName"); +} +my $configObj = Config::General->new( + -ConfigFile => $fileName, + -SplitDelimiter => '\s*=\s*', + -SplitPolicy => 'custom', + -StoreDelimiter => '=', +); +my %settings = $configObj->getall(); + +my %changed; + +# ...set new values... +foreach my $key (keys %givenSettings) { + my $value = $givenSettings{$key}; + next if !defined $value; + if (!exists $openslxConfig{$key}) { + die _tr("option '%s' is not known!", $key); + } + if ($key =~ m{^(base-path|config-path)$}) { + die _tr("option '%s' is fixed!", $key); + } + if (exists $configPattern{$key} && $value !~ m{$configPattern{$key}}) { + die _tr( + "option '%s' must match pattern '%s'!", $key, $configPattern{$key} + ); + } + + vlog(0, _tr("setting %s to '%s'", $key, $value)) unless $option{quiet}; + my $externalKey = externalKeyFor($key); + if (!exists $settings{$externalKey} || $settings{$externalKey} ne $value) { + $settings{$externalKey} = $value; + } + $changed{$key}++; +} + +# reset specified keys to fall back to default: +foreach my $key (@reset) { + my $externalKey = externalKeyFor($key); + if (exists $settings{$externalKey}) { + delete $settings{$externalKey}; + vlog(0, + _tr("removing option '%s' from local settings", $key)) + unless $option{quiet}; + } else { + vlog(0, + _tr("option '%s' didn't exist in local settings!", $key)) + unless $option{quiet}; + } + $changed{$key}++; +} + +# ... and write local settings file if necessary +if (keys %changed) { + $configObj->save_file($fileName, \%settings); + + openslxInit(); + + foreach my $key (keys %changed) { + changedHandler($key, $openslxConfig{$key}); + } +} + +if (!keys %changed) { + print _tr("paths fixed at installation time:\n"); + print qq[\tbase-path='$openslxConfig{'base-path'}'\n]; + print qq[\tconfig-path='$openslxConfig{'config-path'}'\n]; + my $text = + keys %changed + ? "resulting base settings (cmdline options):\n" + : "current base settings (cmdline options):\n"; + print $text; + my @baseSettings = grep { exists $cmdlineConfig{$_} } keys %openslxConfig; + foreach my $key (sort @baseSettings) { + my $val = $openslxConfig{$key} || ''; + print qq[\t$key='$val'\n]; + } + print _tr("extended settings:\n"); + my @extSettings = grep { !exists $cmdlineConfig{$_} } keys %openslxConfig; + foreach my $key (sort @extSettings) { + next if $key =~ m[^(base-path|config-path)$]; + my $val = $openslxConfig{$key}; + if (defined $val) { + print qq[\t$key='$val'\n]; + } + else { + print qq[\t$key=\n]; + } + } +} + +sub externalKeyFor +{ + my $key = shift; + + $key =~ tr[-][_]; + return "SLX_" . uc($key); +} + +sub changedHandler +{ + my $key = shift; + my $value = shift; + + # invoke a key-specific change handler if it exists: + $key =~ tr[-][_]; + + # we do the following function call in an eval as that function may simply + # not exist: + eval { + no strict 'refs'; ## no critic (ProhibitNoStrict) + "${key}_changed_handler"->(); + }; + + return; +} + +sub private_path_changed_handler +{ + # create the default config folders (for default system only): + require OpenSLX::ConfigFolder; + OpenSLX::ConfigFolder::createConfigFolderForDefaultSystem(); + + return; +} + +=head1 NAME + +slxsettings - OpenSLX-script to show & change local settings + +=head1 SYNOPSIS + +slxsettings [options] [action ...] + +=head3 Script Actions + + set sets the option to the given value + reset resets the given option to its default + +=head3 List of Known Option Names + + db-name= name of database + db-spec= full DBI-specification of database + db-type= type of database to connect to + locale= locale to use for translations + log-level= level of logging verbosity (0-3) + logfile= file to write logging output to + private-path= path to private data + public-path= path to public (client-accesible) data + temp-path= path to temporary data + +=head3 General Options + + --help brief help message + --man full documentation + --quiet do not print anything + --version show version + +=head3 Actions + +=over 8 + +=item B<< set = >> + +sets the specified option to the given value + +=item B<< reset >> + +removes the given setting from the local settings (resets it to its default +value) + +=back + +=head1 DESCRIPTION + +B can be used to show or change the local settings for OpenSLX. + +Any cmdline-argument passed to this script will change the local OpenSLX +settings file (usually /etc/opt/openslx/settings). + +If you invoke the script without any arguments, it will print the current +settings and exit. + +=head1 OPTIONS + +=head3 Known Option Names + +=over 8 + +=item B<< db-name= >> + +Gives the name of the database to connect to. + +Default is $SLX_DB_NAME (usually C). + +=item B<< db-spec= >> + +Gives the full DBI-specification of database to connect to. Content depends +on the db-type. + +Default is $SLX_DB_SPEC (usually empty as it will be built automatically). + +=item B<< db-type= >> + +Sets the type of database to connect to (SQLite, mysql, ...). + +Default $SLX_DB_TYPE (usually C). + +=item B<< locale= >> + +Sets the locale to use for translations. + +Defaults to the system's standard locale. + +=item B<< logfile= >> + +Specifies a file where logging output will be written to. + +Default is to log to STDERR. + +=item B<< private-path= >> + +Sets path to private data, where the config-db, vendor_oses and configurational +extensions will be stored. + +Default is $SLX_PRIVATE_PATH (usually F. + +=item B<< public-path= >> + +Sets path to public (client-accesible) data. + +Default is $SLX_PUBLIC_PATH (usually F. + +=item B<< temp-path= >> + +Sets path to temporary data. + +Default is $SLX_TEMP_PATH (usually F. + +=item B<< log-level= >> + +Sets the level of logging verbosity (0-3). +Prints additional output for debugging. N is a number between 0 and 3. Level +1 provides more information than the default, while 2 provides traces. With +level 3 you get extreme debug output, e.g. database commands are printed. + +Default is $SLX_VERBOSE_LEVEL (usually 0, no logging). + +=back + +=head3 General Options + +=over 8 + +=item B< --help> + +Prints a brief help message and exits. + +=item B< --man> + +Prints the manual page and exits. + +=item B< --quiet> + +Runs the script without printing anything. + +=item B< --version> + +Prints the version and exits. + +=back + +=head1 SEE ALSO + +slxos-setup, slxos-export, slxconfig, slxconfig-demuxer + +=cut + diff --git a/src/boot-env/OpenSLX/BootEnvironment/Base.pm b/src/boot-env/OpenSLX/BootEnvironment/Base.pm new file mode 100644 index 00000000..aa4cbe5b --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/Base.pm @@ -0,0 +1,160 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::Base.pm +# - provides empty base of the BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Clone qw(clone); +use File::Basename; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::ConfigDB; +use OpenSLX::MakeInitRamFS::Engine::SlxBoot; +use OpenSLX::Utils; + +our %initramfsMap; + +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $params = shift; + + $self->{'dry-run'} = $params->{'dry-run'}; + + return 1; +} + +sub finalize +{ + my $self = shift; + my $delete = shift; + + return 1 if $self->{'dry-run'}; + + my $rsyncDeleteClause = $delete ? '--delete' : ''; + my $rsyncCmd + = "rsync -a $rsyncDeleteClause --delay-updates $self->{'target-path'}/ $self->{'original-path'}/"; + slxsystem($rsyncCmd) == 0 + or die _tr( + "unable to rsync files from '%s' to '%s'! (%s)", + $self->{'target-path'}, $self->{'original-path'}, $! + ); + rmtree([$self->{'target-path'}]); + + return 1; +} + +sub requiresDefaultClientConfig +{ + my $self = shift; + + return $self->{'requires-default-client-config'}; +} + +sub writeBootloaderMenuFor +{ + my $self = shift; + my $client = shift; + my $externalClientID = shift; + my $systemInfos = shift; + + return; +} + +sub writeFilesRequiredForBooting +{ + my $self = shift; + my $info = shift; + my $buildPath = shift; + + my $kernelFile = $info->{'kernel-file'}; + my $kernelName = basename($kernelFile); + + my $vendorOSPath = "$self->{'target-path'}/$info->{'vendor-os'}->{name}"; + mkpath $vendorOSPath unless -e $vendorOSPath || $self->{'dry-run'}; + + my $targetKernel = "$vendorOSPath/$kernelName"; + if (!-e $targetKernel) { + vlog(1, _tr('copying kernel %s to %s', $kernelFile, $targetKernel)); + slxsystem(qq[cp -p "$kernelFile" "$targetKernel"]) + unless $self->{'dry-run'}; + } + + # create initramfs: + my $initramfsName = "$vendorOSPath/$info->{'initramfs-name'}"; + vlog(1, _tr('generating initialramfs %s', $initramfsName)); + $self->_makeInitRamFS($info, $initramfsName); + return 1; +} + +sub _makeInitRamFS +{ + my $self = shift; + my $info = shift; + my $initramfs = shift; + + my $vendorOS = $info->{'vendor-os'}; + my $kernelFile = basename(followLink($info->{'kernel-file'})); + + my $attrs = clone($info->{attrs} || {}); + + chomp(my $slxVersion = qx{slxversion}); + + my $params = { + 'attrs' => $attrs, + 'export-name' => $info->{export}->{name}, + 'export-uri' => $info->{'export-uri'}, + 'initramfs' => $initramfs, + 'kernel-params' + => [ split ' ', ($info->{attrs}->{kernel_params} || '') ], + 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '', + 'plugins' => $info->{'active-plugins'}, + 'root-path' + => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}", + 'slx-version' => $slxVersion, + 'system-name' => $info->{name}, + }; + + # TODO: make debug-level an explicit attribute, it's used in many places! + my $kernelParams = $info->{attrs}->{kernel_params} || ''; + if ($kernelParams =~ m{debug(?:=(\d+))?}) { + my $debugLevel = defined $1 ? $1 : '1'; + $params->{'debug-level'} = $debugLevel; + } + + my $makeInitRamFSEngine + = OpenSLX::MakeInitRamFS::Engine::SlxBoot->new($params); + $makeInitRamFSEngine->execute($self->{'dry-run'}); + + # copy back kernel-params, as they might have been changed (by plugins) + $info->{attrs}->{kernel_params} + = join ' ', $makeInitRamFSEngine->kernelParams(); + + return; +} + +1; diff --git a/src/boot-env/OpenSLX/BootEnvironment/PBS.pm b/src/boot-env/OpenSLX/BootEnvironment/PBS.pm new file mode 100644 index 00000000..2072884b --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/PBS.pm @@ -0,0 +1,247 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::Preboot.pm +# - provides general preboot implementation of the BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::PBS; + +use strict; +use warnings; + +use base qw(OpenSLX::BootEnvironment::Base); + +use OpenSLX::MakeInitRamFS::Engine::PBS; + +use Clone qw(clone); +use File::Basename; +use File::Path; + +use Data::Dumper; + +use JSON; +use HTTP::Request::Common; +use LWP::UserAgent; + +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::Utils; + +sub initialize +{ + my $self = shift; + my $params = shift; + + return if !$self->SUPER::initialize($params); + + $self->{'original-path'} = "$openslxConfig{'public-path'}/pbs"; + $self->{'target-path'} = "$openslxConfig{'public-path'}/pbs.new"; + + $self->{'requires-default-client-config'} = 0; + # we do not need a default.tgz since there's always an explicit client + + + if (!$self->{'dry-run'}) { + mkpath([$self->{'original-path'}]); + rmtree($self->{'target-path'}); + mkpath("$self->{'target-path'}/client-config"); + } + + return 1; +} + +sub writeBootloaderMenuFor +{ + my $self = shift; + my $client = shift; + my $externalClientID = shift; + my $systemInfos = shift || []; + + my $prebootSystemInfo + = clone($self->_pickSystemWithNewestKernel($systemInfos)); + + vlog( + 0, + _tr( + "\nsend preboot information for client '%s' to pbs (%s)\n". + " (image templates provided based of %s) ...", + $client->{name}, $client->{attrs}->{preboot_server}, $prebootSystemInfo->{name} + ) + ); + + $self->_createPrebootStuff($client, $prebootSystemInfo); + + my $kernel = "$self->{'target-path'}/imagebase/vmlinuz"; + my $initramfs = "$self->{'target-path'}/imagebase/initramfs"; + + my $kernel_md5 = qx/md5sum $kernel | awk '{print \$1}'/; + my $initramfs_md5 = qx/md5sum $initramfs | awk '{print \$1}'/; + + my $data_json = to_json({ + 'slxinfo' => qx/slxversion/, + 'kernel' => basename($prebootSystemInfo->{'kernel-file'}), + 'kernel_md5' => trim($kernel_md5), + 'initramfs_md5' => trim($initramfs_md5), + 'systems' => $systemInfos + }); + my $ua = LWP::UserAgent->new; + my $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/sync', [data => $data_json]); + + if ($res->is_success) { + my $resData = from_json($res->content); + if ($resData->{'getKernel'} eq 'fresh') { + $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/addkernel', + ['kernel' => basename($prebootSystemInfo->{'kernel-file'}), + 'kernelFile' => ["$self->{'target-path'}/imagebase/vmlinuz"], + 'initramfsFile' => ["$self->{'target-path'}/imagebase/initramfs"], + ], + 'Content_Type' => 'form-data' + ); + + print Dumper($res->content); + + } else { + if ($resData->{'getKernel'} eq 'update') { + $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/updatekernel', + ['kernel' => basename($prebootSystemInfo->{'kernel-file'}), + 'kernelFile' => ["$self->{'target-path'}/imagebase/vmlinuz"], + ], + 'Content_Type' => 'form-data' + ); + + print Dumper($res->content); + } else { + # do nothing + } + if ($resData->{'getInitramfs'} eq 'update') { + $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/updateinitramfs', + ['kernel' => basename($prebootSystemInfo->{'kernel-file'}), + 'initramfsFile' => ["$self->{'target-path'}/imagebase/initramfs"], + ], + 'Content_Type' => 'form-data' + ); + + print Dumper($res->content); + } else { + # do nothing + } + } + } else { + vlog(0, 'communication with pbs failed.. please check and rerun..'); + } + + return 1; +} + +sub _createPrebootStuff +{ + my $self = shift; + my $client = shift; + my $info = shift; + + my $prebootClass = instantiateClass( + "OpenSLX::BootEnvironment::Preboot::Base" + ); + + my $imagebase = "$self->{'target-path'}/imagebase"; + + $prebootClass->initialize($self); + $client->{attrs}->{boot_uri} = $client->{attrs}->{preboot_server}; + mkpath("$imagebase"); + $self->_makePBSInitRamFS($info, "$imagebase/initramfs", $client); + + my $kernelFile = $info->{'kernel-file'}; + my $kernelName = basename($kernelFile); + slxsystem(qq{cp -p "$kernelFile" "$imagebase/vmlinuz"}) + unless $self->{'dry-run'}; + + return 1; +} + +sub _pickSystemWithNewestKernel +{ + my $self = shift; + my $systemInfos = shift; + + my $systemWithNewestKernel; + my $newestKernelFileSortKey = ''; + foreach my $system (@$systemInfos) { + next unless $system->{'kernel-file'} =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + my $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $systemWithNewestKernel = $system; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $systemWithNewestKernel) { + die _tr("unable to pick a system to be used for preboot!"); + } + return $systemWithNewestKernel; +} + +sub _makePBSInitRamFS +{ + my $self = shift; + my $info = shift; + my $initramfs = shift; + my $client = shift; + + my $vendorOS = $info->{'vendor-os'}; + my $kernelFile = basename(followLink($info->{'kernel-file'})); + + my $attrs = clone($info->{attrs} || {}); + + my $bootURI = $client->{attrs}->{boot_uri}; + if (!$bootURI) { + die _tr("client $client->{name} needs an URI in attribute 'boot_uri' to be used for preboot!"); + } + + chomp(my $slxVersion = qx{slxversion}); + + my $params = { + 'attrs' => $attrs, + 'export-name' => undef, + 'export-uri' => undef, + 'initramfs' => $initramfs, + 'kernel-params' + => [ split ' ', ($info->{attrs}->{kernel_params} || '') ], + 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '', + 'plugins' => '', + 'root-path' + => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}", + 'slx-version' => $slxVersion, + 'system-name' => $info->{name}, + 'preboot-id' => $client->{name}, + 'boot-uri' => $bootURI, + }; + + # TODO: make debug-level an explicit attribute, it's used in many places! + my $kernelParams = $info->{attrs}->{kernel_params} || ''; + if ($kernelParams =~ m{debug(?:=(\d+))?}) { + my $debugLevel = defined $1 ? $1 : '1'; + $params->{'debug-level'} = $debugLevel; + } + + my $makeInitRamFSEngine + = OpenSLX::MakeInitRamFS::Engine::PBS->new($params); + $makeInitRamFSEngine->execute($self->{'dry-run'}); + + # copy back kernel-params, as they might have been changed (by plugins) + $info->{attrs}->{kernel_params} + = join ' ', $makeInitRamFSEngine->kernelParams(); + + return; +} + +1; diff --git a/src/boot-env/OpenSLX/BootEnvironment/PXE.pm b/src/boot-env/OpenSLX/BootEnvironment/PXE.pm new file mode 100644 index 00000000..d46786d0 --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/PXE.pm @@ -0,0 +1,336 @@ +# 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::PXE.pm +# - provides PXE-specific implementation of the BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::PXE; + +use strict; +use warnings; + +use base qw(OpenSLX::BootEnvironment::Base); + +use File::Basename; +use File::Path; +# for sha1 passwd encryption +use Digest::SHA1; +use MIME::Base64; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub initialize +{ + my $self = shift; + my $params = shift; + + return if !$self->SUPER::initialize($params); + + $self->{'original-path'} = "$openslxConfig{'public-path'}/tftpboot"; + $self->{'target-path'} = "$openslxConfig{'public-path'}/tftpboot.new"; + + $self->{'requires-default-client-config'} = 1; + + if (!$self->{'dry-run'}) { + mkpath([$self->{'original-path'}]); + rmtree($self->{'target-path'}); + mkpath("$self->{'target-path'}/client-config"); + } + + return 1; +} + +sub writeBootloaderMenuFor +{ + my $self = shift; + my $client = shift; + my $externalClientID = shift; + my $systemInfos = shift; + + $self->_prepareBootloaderConfigFolder() + unless $self->{preparedBootloaderConfigFolder}; + + my $pxePath = $self->{'target-path'}; + my $pxeConfigPath = "$pxePath/pxelinux.cfg"; + + my $pxeConfig = $self->_getTemplate(); + my $pxeFile = "$pxeConfigPath/$externalClientID"; + my $clientAppend = $client->{attrs}->{kernel_params_client} || ''; + my $bootURI = $client->{attrs}->{boot_uri} || ''; + vlog(1, _tr("writing PXE-file %s", $pxeFile)); + + # set label for each system + foreach my $info (@$systemInfos) { + my $label = $info->{label} || ''; + if (!length($label) || $label eq $info->{name}) { + if ($info->{name} =~ m{^(.+)::(.+)$}) { + my $system = $1; + my $exportType = $2; + $label = $system . ' ' x (40-length($system)) . $exportType; + } else { + $label = $info->{name}; + } + } + $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'} ||= ''; + + # pxe_prefix_ip set and looks like a ip + if ($info->{'pxe_prefix_ip'} =~ m/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) { + $pxePrefix = "$info->{'pxe_prefix_ip'}::"; + $tftpPrefix = "tftp://$info->{'pxe_prefix_ip'}" + if ! length($bootURI); + } + + # set default menu entry + my $pxeDefault = ""; + if (defined $openslxConfig{'pxe-default-menu-entry'}) { + if ($openslxConfig{'pxe-default-menu-entry'} eq + $info->{'external-id'}) + { + $pxeDefault = "\tMENU DEFAULT\n"; + } + } + $append .= " initrd=$pxePrefix$vendorOSName/$info->{'initramfs-name'}"; + $append .= " file=$bootURI" if length($bootURI); + $append .= " file=$tftpPrefix" if length($tftpPrefix); + $append .= " $clientAppend"; + $slxLabels .= "LABEL openslx-$pxeLabel\n"; + $slxLabels .= $pxeDefault; + $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 + my $menuMargin; + while ($pxeConfig =~ m{^\s*MENU MARGIN (\S+?)\s*$}gims) { + chomp($menuMargin = $1); + } + my $margin + = defined $menuMargin + ? "$menuMargin" + : "0"; + my $marginAsText = ' ' x $margin; + + my $menuWidth; + while ($pxeConfig =~ m{^\s*MENU WIDTH (\S+?)\s*$}gims) { + chomp($menuWidth = $1); + } + my $width + = defined $menuWidth + ? "$menuWidth" + : "80"; + $width = $width - 2* $margin + 2; + + my @atomicHelpText = split(/ /, $helpText); + my $lineCounter = 0; + + $helpText = ""; + + foreach my $word (@atomicHelpText){ + if ($lineCounter + length($word) + 1 < $width) { + $helpText .= "$word "; + $lineCounter += length($word) + 1; + } else { + my $nobreak = 1; + while ($nobreak == 1) { + my $pos = index($word,"-"); + $nobreak = 0; + if ($pos != -1) { + if ($lineCounter + $pos + 1 < $width) { + $helpText .= substr($word, 0, $pos+1); + $word = substr($word, $pos + 1, length($word)); + $nobreak = 1; + } + } + } + $helpText .= "\n$word "; + $lineCounter = length($word); + } + } + + $helpText =~ s{^}{$marginAsText}gms; + $slxLabels .= "\tTEXT HELP\n"; + $slxLabels .= "$helpText\n"; + $slxLabels .= "\tENDTEXT\n"; + } + } + # now add the slx-labels (inline or appended) and write the config file + if (!($pxeConfig =~ s{\@\@\@SLX_LABELS\@\@\@}{$slxLabels})) { + $pxeConfig .= $slxLabels; + # fetch PXE-bottom iclude, if exists (overwrite existing definitions) + my $pxeBottomFile + = "$openslxConfig{'config-path'}/boot-env/syslinux/pxemenu-bottom"; + if (-e $pxeBottomFile) { + $pxeConfig .= "\n# configuration from include $pxeBottomFile\n"; + $pxeConfig .= slurpFile($pxeBottomFile); + } + } + + # PXE uses 'cp850' (codepage 850) but our string is in utf-8, we have + # to convert in order to avoid showing gibberish on the client side... + spitFile($pxeFile, $pxeConfig, { 'io-layer' => 'encoding(cp850)' } ) + unless $self->{'dry-run'}; + + return 1; +} + +sub _getTemplate +{ + my $self = shift; + + return $self->{'pxe-template'} if $self->{'pxe-template'}; + + my $basePath = $openslxConfig{'base-path'}; + my $configPath = $openslxConfig{'config-path'}; + my $pxeTheme = $openslxConfig{'syslinux-theme'}; + + my ($sec, $min, $hour, $day, $mon, $year) = (localtime); + $mon++; + $year += 1900; + my $callDate = sprintf('%04d-%02d-%02d', $year, $mon, $day); + my $callTime = sprintf('%02d:%02d:%02d', $hour, $min, $sec); + + # generate PXE-Menu + my $pxeTemplate = + "# generated by slxconfig-demuxer (on $callDate at $callTime)\n"; + $pxeTemplate .= "\nDEFAULT vesamenu.c32\n"; + # include static defaults + $pxeTemplate .= "\n# static configuration (override with include file)\n"; + $pxeTemplate .= "NOESCAPE 0\n"; + $pxeTemplate .= "PROMPT 0\n"; + + # first check for theme + # let user stuff in config path win over our stuff in base path + my $pxeThemePath; + my $pxeThemeInConfig + = "$configPath/boot-env/syslinux/themes/${pxeTheme}"; + my $pxeThemeInBase + = "$basePath/share/boot-env/syslinux/themes/${pxeTheme}"; + if (-e "$pxeThemeInConfig/theme.conf") { + $pxeThemePath = $pxeThemeInConfig; + } + else { + if (-e "$pxeThemeInBase/theme.conf") { + $pxeThemePath = $pxeThemeInBase; + } + } + # include theme specific stuff + if (defined $pxeThemePath) { + $pxeTemplate .= "\n# theme specific configuration from $pxeThemePath\n"; + $pxeTemplate .= slurpFile("$pxeThemePath/theme.conf"); + } + + # copy background picture if exists + my $pic; + if (defined $pxeTheme) { + while ($pxeTemplate =~ m{^\s*MENU BACKGROUND (\S+?)\s*$}gims) { + chomp($pic = $1); + } + } + if (defined $pic) { + my $pxeBackground = "$pxeThemePath/$pic"; + if (-e $pxeBackground && !$self->{'dry-run'}) { + slxsystem(qq[cp "$pxeBackground" $self->{'target-path'}/]); + } + } + + # include slxsettings + $pxeTemplate .= "\n# slxsettings configuration\n"; + $pxeTemplate .= "TIMEOUT $openslxConfig{'pxe-timeout'}\n" || ""; + $pxeTemplate .= "TOTALTIMEOUT $openslxConfig{'pxe-totaltimeout'}\n" || ""; + my $sha1pass = $self->_sha1pass($openslxConfig{'pxe-passwd'}); + $pxeTemplate .= "MENU MASTER PASSWD $sha1pass\n" || ""; + $pxeTemplate .= "MENU TITLE $openslxConfig{'pxe-title'}\n" || ""; + + # fetch PXE-include, if exists (overwrite existing definitions) + my $pxeIncludeFile + = "$openslxConfig{'config-path'}/boot-env/syslinux/pxemenu-include"; + if (-e $pxeIncludeFile) { + $pxeTemplate .= "\n# configuration from include $pxeIncludeFile\n"; + $pxeTemplate .= slurpFile($pxeIncludeFile); + } + + $pxeTemplate .= "\n# slxsystems:\n"; + $self->{'pxe-template'} = $pxeTemplate; + + return $pxeTemplate; +} + +sub _prepareBootloaderConfigFolder +{ + my $self = shift; + + my $basePath = $openslxConfig{'base-path'}; + my $pxePath = $self->{'target-path'}; + my $pxeConfigPath = "$pxePath/pxelinux.cfg"; + + if (!$self->{'dry-run'}) { + rmtree($pxeConfigPath); + mkpath($pxeConfigPath); + + for my $file ('pxelinux.0', 'pxechain.com', 'vesamenu.c32', + 'mboot.c32', 'kernel-shutdown', 'initramfs-shutdown') { + if (!-e "$pxePath/$file") { + slxsystem( + qq[cp -p "$basePath/share/boot-env/syslinux/$file" $pxePath/] + ); + } + } + } + + $self->{preparedBootloaderConfigFolder} = 1; + + return 1; +} + +# from syslinux 3.73: http://syslinux.zytor.com +sub _random_bytes +{ + my $self = shift; + my $n = shift; + my($v, $i); + + # using perl rand because of problems with encoding(cp850) and 'bytes' + srand($$ ^ time); + $v = ''; + for ( $i = 0 ; $i < $n ; $i++ ) { + $v .= ord(int(rand() * 256)); + } + + return $v; +} + +sub _sha1pass +{ + my $self = shift; + my $pass = shift; + my $salt = shift || MIME::Base64::encode($self->_random_bytes(6), ''); + $pass = Digest::SHA1::sha1_base64($salt, $pass); + + return sprintf('$4$%s$%s$', $salt, $pass); +} + +1; diff --git a/src/boot-env/OpenSLX/BootEnvironment/Preboot.pm b/src/boot-env/OpenSLX/BootEnvironment/Preboot.pm new file mode 100644 index 00000000..b06de7d2 --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/Preboot.pm @@ -0,0 +1,209 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::Preboot.pm +# - provides general preboot implementation of the BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::Preboot; + +use strict; +use warnings; + +use base qw(OpenSLX::BootEnvironment::Base); + +use Clone qw(clone); +use File::Basename; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::Utils; + +sub initialize +{ + my $self = shift; + my $params = shift; + + return if !$self->SUPER::initialize($params); + + $self->{'original-path'} = "$openslxConfig{'public-path'}/preboot"; + $self->{'target-path'} = "$openslxConfig{'public-path'}/preboot.new"; + + $self->{'requires-default-client-config'} = 0; + # we do not need a default.tgz since there's always an explicit client + + if (!$self->{'dry-run'}) { + mkpath([$self->{'original-path'}]); + rmtree($self->{'target-path'}); + mkpath("$self->{'target-path'}/client-config"); + } + + return 1; +} + +sub writeBootloaderMenuFor +{ + my $self = shift; + my $client = shift; + my $externalClientID = shift; + my $systemInfos = shift || []; + + $self->_prepareBootloaderConfigFolder() + unless $self->{preparedBootloaderConfigFolder}; + + my $prebootSystemInfo + = clone($self->_pickSystemWithNewestKernel($systemInfos)); + + $self->_createImages($client, $prebootSystemInfo); + + my $externalClientName = externalConfigNameForClient($client); + my $bootloaderPath = "$self->{'target-path'}/bootloader"; + my $bootloaderConfigPath = "$bootloaderPath/$externalClientName"; + mkpath($bootloaderConfigPath) unless $self->{'dry-run'}; + my $menuFile = "$bootloaderConfigPath/bootmenu.dialog"; + + my $clientAppend = $client->{attrs}->{kernel_params_client} || ''; + vlog(1, _tr("writing bootmenu %s", $menuFile)); + + # set label for each system + foreach my $info (@$systemInfos) { + my $label = $info->{label} || ''; + if (!length($label) || $label eq $info->{name}) { + $label = $info->{name}; + } + $info->{label} = $label; + } + my $bootmenuEntries = ''; + my $entryState = 'on'; + my $counter = 1; + 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} || ''; + $append .= " $clientAppend"; + $bootmenuEntries .= qq{ "$counter" "$info->{label}" }; + $entryState = 'off'; + + # create a file containing the boot-configuration for this system + my $systemDescr = unshiftHereDoc(<<" End-of-Here"); + label="$info->{label}" + kernel="$vendorOSName/$kernelName" + initramfs="$vendorOSName/$info->{'initramfs-name'}" + append="$append" + End-of-Here + my $systemFile = "$bootloaderConfigPath/$info->{name}"; + spitFile( + $systemFile, $systemDescr, { 'io-layer' => 'encoding(iso8859-1)' } + ) unless $self->{'dry-run'}; + slxsystem(qq{ln -sf $info->{name} $bootloaderConfigPath/$counter}); + $counter++; + } + + my $entryCount = @$systemInfos; + my $bootmenu = unshiftHereDoc(<<" End-of-Here"); + --no-cancel --menu "OpenSLX Boot Menu" 20 65 $entryCount $bootmenuEntries + End-of-Here + + if (!$self->{'dry-run'}) { + # default to iso encoding, let's see how uclibc copes with it ... + spitFile($menuFile, $bootmenu, { 'io-layer' => 'encoding(iso8859-1)' }); + + # copy the preboot script into the folder to be tared + my $prebootBasePath + = "$openslxConfig{'base-path'}/share/boot-env/preboot"; + slxsystem(qq{cp $prebootBasePath/preboot.sh $bootloaderConfigPath/}); + slxsystem(qq{cp -r $prebootBasePath/preboot-scripts $bootloaderConfigPath/}); + slxsystem(qq{chmod a+x $bootloaderConfigPath/preboot.sh}); + + # create a tar which can/will be downloaded by prebooting clients + my $tarCMD + = qq{cd $bootloaderConfigPath; tar -czf "${bootloaderConfigPath}.env" *}; + slxsystem($tarCMD); + rmtree($bootloaderConfigPath); + } + + return 1; +} + +sub _createImages +{ + my $self = shift; + my $client = shift; + my $info = shift; + + my %mediaMap = ( + 'cd' => 'CD', + ); + my $prebootMedia = $client->{attrs}->{preboot_media} || ''; + if (!$prebootMedia) { + warn _tr( + "no preboot-media defined for client %s, no images will be generated!", + $client->{name} + ); + return 0; + } + foreach my $mediumName (split m{, }, $prebootMedia) { + my $moduleName = $mediaMap{$mediumName} + or die _tr( + "'%s' is not one of the supported preboot-medias (cd)", + $mediumName + ); + + my $prebootMedium = instantiateClass( + "OpenSLX::BootEnvironment::Preboot::$moduleName" + ); + $prebootMedium->initialize($self); + $prebootMedium->createImage($client, $info); + } + + return 1; +} + +sub _prepareBootloaderConfigFolder +{ + my $self = shift; + + my $bootloaderPath = "$self->{'target-path'}/bootloader"; + if (!$self->{'dry-run'}) { + rmtree($bootloaderPath); + mkpath($bootloaderPath); + } + + $self->{preparedBootloaderConfigFolder} = 1; + + return 1; +} + +sub _pickSystemWithNewestKernel +{ + my $self = shift; + my $systemInfos = shift; + + my $systemWithNewestKernel; + my $newestKernelFileSortKey = ''; + foreach my $system (@$systemInfos) { + next unless $system->{'kernel-file'} =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + my $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $systemWithNewestKernel = $system; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $systemWithNewestKernel) { + die _tr("unable to pick a system to be used for preboot!"); + } + return $systemWithNewestKernel; +} + +1; diff --git a/src/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm b/src/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm new file mode 100644 index 00000000..89f0e07e --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm @@ -0,0 +1,111 @@ +# 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::Preboot::Base.pm +# - base of the Preboot-BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::Preboot::Base; + +use strict; +use warnings; + +use File::Basename; + +use Clone qw(clone); + +use OpenSLX::Basics; +use OpenSLX::MakeInitRamFS::Engine::Preboot; +use OpenSLX::Utils; + +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $params = shift; + + $self->{'dry-run'} = $params->{'dry-run'}; + + return 1; +} + +sub makePrebootInitRamFS +{ + my $self = shift; + my $info = shift; + my $initramfs = shift; + my $client = shift; + + my $vendorOS = $info->{'vendor-os'}; + my $kernelFile = basename(followLink($info->{'kernel-file'})); + + my $attrs = clone($info->{attrs} || {}); + + my $bootURI = $client->{attrs}->{boot_uri}; + if (!$bootURI) { + die _tr("client $client->{name} needs an URI in attribute 'boot_uri' to be used for preboot!"); + } + + chomp(my $slxVersion = qx{slxversion}); + + my $params = { + 'attrs' => $attrs, + 'export-name' => undef, + 'export-uri' => undef, + 'initramfs' => $initramfs, + 'kernel-params' + => [ split ' ', ($info->{attrs}->{kernel_params} || '') ], + 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '', + 'plugins' => '', + 'root-path' + => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}", + 'slx-version' => $slxVersion, + 'system-name' => $info->{name}, + 'preboot-id' => $client->{name}, + 'boot-uri' => $bootURI, + }; + + # TODO: make debug-level an explicit attribute, it's used in many places! + my $kernelParams = $info->{attrs}->{kernel_params} || ''; + if ($kernelParams =~ m{debug(?:=(\d+))?}) { + my $debugLevel = defined $1 ? $1 : '1'; + $params->{'debug-level'} = $debugLevel; + } + + my $makeInitRamFSEngine + = OpenSLX::MakeInitRamFS::Engine::Preboot->new($params); + $makeInitRamFSEngine->execute($self->{'dry-run'}); + + # copy back kernel-params, as they might have been changed (by plugins) + $info->{attrs}->{kernel_params} + = join ' ', $makeInitRamFSEngine->kernelParams(); + + return; +} + +sub createImage +{ + my $self = shift; + my $client = shift; + my $info = shift; + + # override in subclasses! + + return 1; +} + +1; diff --git a/src/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm b/src/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm new file mode 100644 index 00000000..a6c36cd7 --- /dev/null +++ b/src/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm @@ -0,0 +1,155 @@ +# 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/ +# ----------------------------------------------------------------------------- +# BootEnvironment::Preboot::CD.pm +# - provides CD-specific implementation of the Preboot-BootEnvironment API. +# ----------------------------------------------------------------------------- +package OpenSLX::BootEnvironment::Preboot::CD; + +use strict; +use warnings; + +use base qw(OpenSLX::BootEnvironment::Preboot::Base); + +use File::Basename; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub createImage +{ + my $self = shift; + my $client = shift; + my $info = shift; + + vlog( + 0, + _tr( + "\ncreating CD-image for client %s (based on %s) ...", + $client->{name}, $info->{name} + ) + ); + + my $imageDir = "$openslxConfig{'public-path'}/images/$client->{name}/cd"; + my $isoDir = "$imageDir/iso/isolinux"; + mkpath($isoDir) unless $self->{'dry-run'}; + + # copy static data + my $dataDir = "$openslxConfig{'base-path'}/share/boot-env/syslinux"; + for my $file ('LICENSE', 'README.iso', 'vesamenu.c32', 'isolinux.bin') { + if (!-e "$isoDir/$file") { + slxsystem( + qq[cp -p "$dataDir/$file" "$isoDir/"] + ) + unless $self->{'dry-run'}; + } + } + + # copy kernel (take the one from the given system info) + my $kernelFile = $info->{'kernel-file'}; + my $kernelName = basename($kernelFile); + slxsystem(qq{cp -p "$kernelFile" "$isoDir/vmlinuz"}) + unless $self->{'dry-run'}; + + # create initramfs + my $initramfsName = qq{"$isoDir/initramfs"}; + $self->makePrebootInitRamFS($info, $initramfsName, $client); + + # write trivial isolinux config + # include static defaults + my $isolinuxConfig = "DEFAULT vesamenu.c32\n"; + $isolinuxConfig .= "PROMPT 0\n"; + $isolinuxConfig .= "TIMEOUT 100\n"; + + # theme stuff + my $basePath = $openslxConfig{'base-path'}; + my $configPath = $openslxConfig{'config-path'}; + my $isoTheme = $openslxConfig{'syslinux-theme'}; + + my $isoThemePath; + my $isoThemeInConfig + = "$configPath/boot-env/syslinux/themes/${isoTheme}"; + my $isoThemeInBase + = "$basePath/share/boot-env/syslinux/themes/${isoTheme}"; + if (-e "$isoThemeInConfig/theme.conf") { + $isoThemePath = $isoThemeInConfig; + } + else { + if (-e "$isoThemeInBase/theme.conf") { + $isoThemePath = $isoThemeInBase; + } + } + # include theme specific stuff + if (defined $isoThemePath) { + $isolinuxConfig .= slurpFile("$isoThemePath/theme.conf"); + } + + # copy background picture if exists + my $pic; + if (defined $isoTheme) { + while ($isolinuxConfig =~ m{^\s*MENU BACKGROUND (\S+?)\s*$}gims) { + chomp($pic = $1); + } + } + if (defined $pic) { + my $isoBackground = "$isoThemePath/$pic"; + if (-e $isoBackground && !$self->{'dry-run'}) { + slxsystem(qq[cp "$isoBackground" "$isoDir/"]); + } + } + + # write trivial isolinux config + $isolinuxConfig .= unshiftHereDoc(<<" End-of-Here"); + MENU TITLE Welcome to OpenSLX PreBoot ISO/CD (Mini Linux/Kexec) + LABEL SLXSTDBOOT + MENU LABEL OpenSLX PreBoot - Stateless Netboot Linux ... + MENU DEFAULT + KERNEL vmlinuz + APPEND initrd=initramfs vga=0x317 + TEXT HELP + Use this (default) entry if you have configured your client. + You have chance to edit the kernel commandline by hitting + the TAB key (e.g. for adding debug=3 to it for bug hunting). + ENDTEXT + LABEL LOCALBOOT + MENU LABEL Boot locally (skip OpenSLX PreBoot) ... + LOCALBOOT -1 + TEXT HELP + Gets you out of here by booting from next device in BIOS + boot order. + ENDTEXT + End-of-Here + spitFile("$isoDir/isolinux.cfg", $isolinuxConfig); + + my $mkisoCmd = unshiftHereDoc(<<" End-of-Here"); + mkisofs + -o "$imageDir/../$client->{name}.iso" + -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 + -r -J -l -boot-info-table -joliet-long + -publisher "OpenSLX Project - http://www.openslx.org" + -p "OpenSLX Project - openslx-devel\@openslx.org" + -V "OpenSLX BootISO" + -volset "OpenSLX Project - PreBoot ISO/CD for non PXE/TFTP start of a Linux Stateless Client" + -c isolinux/boot.cat "$imageDir/iso" + End-of-Here + $mkisoCmd =~ s{\n\s*}{ }gms; + my $logFile = "$imageDir/../$client->{name}.iso.log"; + if (slxsystem(qq{$mkisoCmd 2>"$logFile"})) { + my $log = slurpFile($logFile); + die _tr("unable to create ISO-image - log follows:\n%s", $log); + } + + rmtree($imageDir); + + return 1; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm new file mode 100644 index 00000000..9be218e8 --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm @@ -0,0 +1,48 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::Base.pm +# - provides empty base of the distro-specific part of the OpenSLX +# MakeInitRamFS API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'base', + }; + return bless $self, $class; +} + +sub applyChanges +{ +} + +sub determineMatchingHwinfoVersion +{ + my $self = shift; + my $distroVersion = shift; + + return '15.3'; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm new file mode 100644 index 00000000..7174474d --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm @@ -0,0 +1,61 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::Debian.pm +# - provides Debian-specific overrides of the MakeInitRamFS::Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Debian; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'debian', + }; + return bless $self, $class; +} + +sub applyChanges +{ + my $self = shift; + my $engine = shift; + + $engine->_addFilteredKernelModules( qw( af_packet hid hid-bright unix )); + + return; +} + +sub determineMatchingHwinfoVersion +{ + my $self = shift; + my $distroVersion = shift; + + # to be checked + my %versionMap = ( + '3.0' => '13.11', + '4.0' => '14.19', + '5.0' => '15.3', + '6.0' => '16.0', + ); + return $versionMap{$distroVersion} + || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm new file mode 100644 index 00000000..f2372f8f --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm @@ -0,0 +1,61 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::Scilin.pm +# - provides Scientific Linux specific overrides of the +# MakeInitRamFS::Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Scilin; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'scilin', + }; + return bless $self, $class; +} + +sub applyChanges +{ + my $self = shift; + my $engine = shift; + # filter modules which are part of the main kernel already + $engine->_addFilteredKernelModules( qw( af_packet hid hid-bright usbhid unix vesafb fbcon )); + + return; +} + +sub determineMatchingHwinfoVersion +{ + my $self = shift; + my $distroVersion = shift; + + my %versionMap = ( + '4.7' => '13.11', + '5.3' => '15.3', + '5.4' => '15.21', + '5.5' => '16.0', + ); + return $versionMap{$distroVersion} + || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm new file mode 100644 index 00000000..cb106924 --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm @@ -0,0 +1,62 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::SUSE.pm +# - provides SUSE-specific overrides of the MakeInitRamFS::Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Suse; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'suse', + }; + return bless $self, $class; +} + +sub applyChanges +{ + my $self = shift; + my $engine = shift; + + $engine->_addFilteredKernelModules( qw( hid hid-bright unix vesafb fbcon )); + + return; +} + +sub determineMatchingHwinfoVersion +{ + my $self = shift; + my $distroVersion = shift; + + my %versionMap = ( + '10.2' => '13.11', + '10.3' => '14.19', + '11.0' => '15.3', + '11.1' => '15.21', + '11.2' => '16.0', + '11.3' => '16.0' + ); + return $versionMap{$distroVersion} + || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm new file mode 100644 index 00000000..2c59bbae --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm @@ -0,0 +1,73 @@ + # 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::Ubuntu.pm +# - provides Ubuntu-specific overrides of the MakeInitRamFS::Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Ubuntu; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'ubuntu', + }; + return bless $self, $class; +} + +# filter out modules not present (e.g. because compiled into the kernel) +sub applyChanges +{ + my $self = shift; + my $engine = shift; + + #if ($engine->{'distro-name'} =~ m{-([^-]+)$}) { + # my $distroVersion = 0.0 + $1; + # if ($distroVersion <= 8.10) { + # $engine->_addFilteredKernelModules( qw( unix hid-bright )); + # } + # else { + # $engine->_addFilteredKernelModules( qw( unix hid-bright af_packet uhci-hcd ohci-hcd )); + # } + #} + $engine->_addFilteredKernelModules( qw( unix hid-bright af_packet uhci-hcd ohci-hcd )); + + return; +} + +sub determineMatchingHwinfoVersion +{ + my $self = shift; + my $distroVersion = shift; + + # Please check, if correct + my %versionMap = ( + '7.10' => '14.19', + '8.04' => '15.3', + '8.10' => '15.21', + '9.04' => '15.21', + '9.10' => '16.0', + '10.04' => '16.0', + ); + return $versionMap{$distroVersion} + || $self->SUPER::determineMatchingHwinfoVersion($distroVersion); +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm new file mode 100644 index 00000000..b0087253 --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm @@ -0,0 +1,38 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitRamFS::Distro::Ubuntu_9.pm +# - provides Ubuntu-9.X-specific overrides of the MakeInitRamFS::Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Distro::Ubuntu_9; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Distro::Ubuntu); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub applyChanges +{ + my $self = shift; + my $engine = shift; + + $engine->_addFilteredKernelModules( + qw( af_packet unix hid uhci-hcd ohci-hcd ) + ); + + return; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm new file mode 100644 index 00000000..b09543dc --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm @@ -0,0 +1,453 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitialRamFS::Engine::Base.pm +# - provides basic driver engine for MakeInitialRamFS API. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Engine::Base; + +use strict; +use warnings; +use Switch; + +use File::Basename; +use POSIX qw(strftime); + +use OpenSLX::Basics; +use OpenSLX::LibScanner; +use OpenSLX::OSPlugin::Roster; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $params = shift || {}; + + checkParams($params, { + 'attrs' => '!', + 'debug-level' => '?', + 'export-name' => '!', + 'export-uri' => '!', + 'initramfs' => '!', + 'kernel-params' => '!', + 'kernel-version' => '!', + 'plugins' => '!', + 'root-path' => '!', + 'slx-version' => '!', + 'system-name' => '!', + 'preboot-id' => '?', + 'boot-uri' => '?', + } ); + + my $self = $params; + + $self->{'system-name'} =~ m{^([^\-]+)-([^:\-]+)} + or die "unable to extract distro-info from $self->{'system-name'}!"; + + $self->{'distro-name'} = lc($1); + $self->{'distro-ver'} = $2; + + my $fullDistroName = lc($1) . '-' . $2; + + $self->{distro} = loadDistroModule({ + distroName => $fullDistroName, + distroScope => 'OpenSLX::MakeInitRamFS::Distro', + }); + if (!$self->{distro}) { + die _tr( + 'unable to load any MakeInitRamFS::Distro module for system %s!', + $self->{'system-name'} + ); + } + + $self->{'lib-scanner'} + = OpenSLX::LibScanner->new({ 'root-path' => $self->{'root-path'} }); + + $self->{'suggested-kernel-modules'} = []; + $self->{'filtered-kernel-modules'} = []; + + return bless $self, $class; +} + +sub execute +{ + my $self = shift; + my $dryRun = shift; + + $self->_collectCMDs(); + + vlog(1, _tr("creating initramfs '%s' ...", $self->{'initramfs'})); + $self->_executeCMDs() unless $dryRun; + + return; +} + +sub haveKernelParam +{ + my $self = shift; + my $param = shift; + + return ref $param eq 'Regexp' + ? grep { $_ =~ $param } @{ $self->{'kernel-params'} } + : grep { $_ eq $param } @{ $self->{'kernel-params'} }; +} + +sub addKernelParams +{ + my $self = shift; + + push @{ $self->{'kernel-params'} }, @_; + + return; +} + +sub kernelParams +{ + my $self = shift; + + return @{ $self->{'kernel-params'} }; +} + +sub addKernelModules +{ + my $self = shift; + + push @{ $self->{'suggested-kernel-modules'} }, @_; + + return; +} + +################################################################################ +### implementation methods +################################################################################ +sub _executeCMDs +{ + my $self = shift; + + foreach my $cmd (@{$self->{CMDs}}) { + if (ref($cmd) eq 'HASH') { + vlog(3, "writing $cmd->{file}"); + my $flags = defined $cmd->{mode} ? { mode => $cmd->{mode} } : undef; + spitFile($cmd->{file}, $cmd->{content}, $flags); + } + else { + vlog(3, "executing: $cmd"); + if (slxsystem($cmd)) { + die _tr( + "unable to execute shell-cmd\n\t%s", $cmd + ); + } + } + } + + return; +} + +sub addCMD +{ + my $self = shift; + my $cmd = shift; + + push @{$self->{CMDs}}, $cmd; + + return; +} + +sub _findBinary +{ + my $self = shift; + my $binary = shift; + + my @binDirs = qw( + bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin usr/bin/X11 + ); + foreach my $binDir (@binDirs) { + my $binPath = "$self->{'root-path'}/$binDir/$binary"; + return $binPath if -f $binPath && -x $binPath; + } + + return; +} + +sub _addFilteredKernelModules +{ + my $self = shift; + + push @{ $self->{'filtered-kernel-modules'} }, @_; + + return; +} + +sub _copyKernelModules +{ + my $self = shift; + + # read modules.dep and use it to determine module dependencies + my $sourcePath = "$self->{'root-path'}/lib/modules/$self->{'kernel-version'}"; + my @modulesDep = slurpFile("$sourcePath/modules.dep") + or die _tr('unable to open %s!', "$sourcePath/modules.dep"); + my (%dependentModules, %modulePath, %modulesToBeCopied); + foreach my $modulesDep (@modulesDep) { + next if $modulesDep !~ m{^(.+?)/([^/]+)\.ko:\s*(.*?)\s*$}; + my $path = $1; + if (substr($path, 0, 5) ne '/lib/') { + # some distros (e.g. ubuntu-9) use a local path instead of an + # absolute path, we need to make it absolute: + $path = "/lib/modules/$self->{'kernel-version'}/$path"; + } + my $module = $2; + my $dependentsList = $3; + my $fullModulePath = "$path/$module.ko"; + $modulePath{$module} = [] if !exists $modulePath{$module}; + push @{$modulePath{$module}}, $fullModulePath; + $dependentModules{$fullModulePath} = [ + map { + if (substr($_, 0, 5) ne '/lib/') { + # some distros (e.g. ubuntu-9) use a local path instead of an + # absolute path, we need to make it absolute: + $_ = "/lib/modules/$self->{'kernel-version'}/$_"; + } + $_; + } + split ' ', $dependentsList + ]; + } + + my $targetPath + = "$self->{'build-path'}/lib/modules/$self->{'kernel-version'}"; + $self->addCMD("mkdir -p $targetPath"); + $self->addCMD("cp -p $sourcePath/modules.* $targetPath/"); + + # add a couple of kernel modules that we expect to be used in stage3 + # (some of these modules do not exist on all distros, so they will be + # filtered out again by the respective distro object): + my @kernelModules = qw( + af_packet unix hid hid-bright usbhid uhci-hcd ohci-hcd vesafb fbcon + ); + push @kernelModules, @{ $self->{'suggested-kernel-modules'} }; + + push @kernelModules, split ' ', $self->{attrs}->{ramfs_fsmods}; + 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 { + my $modulePath = shift; + foreach my $dependentModule (@{$dependentModules{$modulePath}}) { + next if $modulesToBeCopied{$dependentModule}; + $modulesToBeCopied{$dependentModule} = 1; + $addDependentsSub->($dependentModule); + } + }; + + # start with the given kernel modules (names) and build a list of all + # required modules + foreach my $kernelModule (@kernelModules) { + if (!$modulePath{$kernelModule}) { + if (! grep { $_ eq $kernelModule } + @{ $self->{'filtered-kernel-modules'} } + ) { + warn _tr( + 'kernel module "%s" not found (in modules.dep)', + $kernelModule + ); + } + } + foreach my $modulePath (@{$modulePath{$kernelModule}}) { + next if $modulesToBeCopied{$modulePath}; + $modulesToBeCopied{$modulePath} = 1; + $addDependentsSub->($modulePath); + } + } + + # build a list of required firmwares out of the list of modules - not + # totally optimal + my @firmwares; + $self->addCMD("mkdir -p $self->{'build-path'}/lib/firmware/$self->{'kernel-version'}"); + foreach my $moduleToBeCopied(%modulesToBeCopied) { + $moduleToBeCopied =~ /.*\/(.*?)$/; + # implies usage of switch + vlog(1,$1); + switch ($1){ + case "e100.ko" {push @firmwares, split ' ', "e100"} + case "iwlwifi" { + push @firmwares, split ' ', + "iwlwifi-3945-1.ucode iwlwifi-3945-2.ucode iwlwifi-4965-1.ucode iwlwifi-4965-2.ucode iwlwifi-5000-1.ucode" + } + case "tg3.ko" {push @firmwares, split ' ', "tigon/"} + # modules required for graphic adaptors (bootsplash, Xorg) + case "radeon.ko" {push @firmwares, split ' ', "radeon/"} + case "mga.ko" {push @firmwares, split ' ', "matrox/"} + case "r128.ko" {push @firmwares, split ' ', "r128/"} + } + } + # copy all the firmwares that we think are required + foreach my $firmwareToBeCopied (@firmwares) { + my $source = followLink( + "$self->{'root-path'}/lib/firmware/$self->{'kernel-version'}/$firmwareToBeCopied", $self->{'root-path'} + ); + if (-e $source){ + my $target = "$self->{'build-path'}/lib/firmware/"; + + $self->addCMD("cp -pr --dereference $source $target"); + } else { + vlog(3,"unable to find $source for copying purposes"); + } + } + + # copy all the modules that we think are required + foreach my $moduleToBeCopied (sort keys %modulesToBeCopied) { + my $source = followLink( + "$self->{'root-path'}$moduleToBeCopied", $self->{'root-path'} + ); + my $target = "$self->{'build-path'}$moduleToBeCopied"; + my ($targetdir) = $target =~m/(.*\/).*$/; + vlog(5,"Trying to make directory: $targetdir"); + $self->addCMD("mkdir -p $targetdir"); + $self->addCMD("cp -p --dereference $source $target"); + } + + return; +} + +sub _platformSpecificFileFor +{ + my $self = shift; + my $binary = shift; + + if ($self->{'system-name'} =~ m{64}) { + return $binary . '.x86_64'; + } + return $binary . '.i586'; +} + +sub _writeInitramfsSetup +{ + my $self = shift; + + # generate initramfs-setup file containing attributes that are + # relevant for the initramfs only (before there's a root-FS): + my $initramfsAttrs = { + 'host_name' => 'slx-client', # just to have something at all + 'ramfs_fsmods' => $self->{attrs}->{ramfs_fsmods} || '', + 'ramfs_miscmods' => $self->{attrs}->{ramfs_miscmods} || '', + 'ramfs_nicmods' => $self->{attrs}->{ramfs_nicmods} || '', + 'ramfs_firmmods' => $self->{attrs}->{ramfs_firmmods} || '', + 'rootfs' => $self->{'export-uri'} || '', + 'hw_local_disk' => $self->{attrs}->{hw_local_disk} || '', + }; + my $content = "# attributes set by slxconfig-demuxer:\n"; + foreach my $attr (keys %$initramfsAttrs) { + $content .= qq[$attr="$initramfsAttrs->{$attr}"\n]; + } + $self->addCMD( { + file => "$self->{'build-path'}/etc/initramfs-setup", + content => $content + } ); + + return; +} + +sub _writeSlxSystemConf +{ + my $self = shift; + + # generate slxsystem.conf file with variables that are needed + # in stage3 init. + # TODO: either put this stuff into initramfs-setup or find another solution + my $date = strftime("%d.%m.%Y", localtime); + my $slxConf = unshiftHereDoc(<<" End-of-Here"); + slxconf_date=$date + slxconf_kernver=$self->{'kernel-version'} + slxconf_listnwmod="$self->{attrs}->{ramfs_nicmods}" + slxconf_distro_name=$self->{'distro-name'} + slxconf_distro_ver=$self->{'distro-ver'} + slxconf_system_name=$self->{'system-name'} + slxconf_slxver="$self->{'slx-version'}" + End-of-Here + $self->addCMD( { + file => "$self->{'build-path'}/etc/slxsystem.conf", + content => $slxConf + } ); + + # 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"); + } + + return; +} + +sub _calloutToPlugins +{ + my $self = shift; + + my $pluginInitdPath = "$self->{'build-path'}/etc/plugin-init.d"; + my $initHooksPath = "$self->{'build-path'}/etc/init-hooks"; + $self->addCMD("mkdir -p $pluginInitdPath $initHooksPath"); + + foreach my $pluginName (@{$self->{'plugins'}}) { + my $plugin = OpenSLX::OSPlugin::Roster->getPlugin($pluginName); + next if !$plugin; + + # create a hash only containing the attributes relating to the + # current plugin + my $allAttrs = $self->{attrs}; + my %pluginAttrs; + for my $attrName (grep { $_ =~ m{^${pluginName}::} } keys %$allAttrs) { + $pluginAttrs{$attrName} = $allAttrs->{$attrName}; + } + + # let plugin setup itself in the initramfs + $plugin->setupPluginInInitramfs(\%pluginAttrs, $self); + } + return; +} + +sub _createInitRamFS +{ + my $self = shift; + + my $buildPath = $self->{'build-path'}; + $self->addCMD("chroot $buildPath ldconfig"); + $self->addCMD( + "cd $buildPath " + . "&& find . " + . "| cpio -H newc --quiet --create " + . "| gzip -9 >$self->{initramfs}" + ); + + return; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm new file mode 100644 index 00000000..571057ad --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm @@ -0,0 +1,42 @@ +# 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/ +# ----------------------------------------------------------------------------- +# MakeInitialRamFS::Engine::PBS.pm +# - provides driver engine for MakeInitialRamFS API, implementing the +# base of all preboot variants. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Engine::PBS; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Engine::Preboot); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub _copyPrebootSpecificFiles +{ + my $self = shift; + + # write secondary rootfs-layer (including init) on top of base layer + my $prebootRootfs + = "$openslxConfig{'base-path'}/share/boot-env/preboot/uclib-rootfs"; + $self->addCMD("rsync -rlpt $prebootRootfs/ $self->{'build-path'}"); + + # overwrite preboot defaults + my $pbsRootfs + = "$openslxConfig{'base-path'}/share/boot-env/pbs/uclib-rootfs"; + $self->addCMD("rsync -rlpt $pbsRootfs/ $self->{'build-path'}"); + + return 1; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm new file mode 100644 index 00000000..aecfd00f --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm @@ -0,0 +1,143 @@ +# Copyright (c) 2006-2008 - 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/ +# ----------------------------------------------------------------------------- +# MakeInitialRamFS::Engine::Preboot.pm +# - provides driver engine for MakeInitialRamFS API, implementing the +# base of all preboot variants. +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Engine::Preboot; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Engine::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation methods +################################################################################ +sub _collectCMDs +{ + my $self = shift; + + $self->{CMDs} = []; + + $self->_setupBuildPath(); + + $self->_writeInitramfsSetup(); + $self->_writeSlxSystemConf(); + + $self->_copyUclibcRootfs(); + $self->_copyPrebootSpecificFiles(); + + $self->{distro}->applyChanges($self); + + $self->_copyKernelModules(); + + $self->_createInitRamFS(); + + return; +} + +sub _setupBuildPath +{ + my $self = shift; + + my $buildPath = "$openslxConfig{'temp-path'}/slx-initramfs"; + $self->addCMD("rm -rf $buildPath"); + + my @stdFolders = qw( + bin + dev + etc + lib + mnt + proc + root + sbin + sys + tmp + var/lib + var/run + ); + $self->addCMD( + 'mkdir -p ' . join(' ', map { "$buildPath/$_"; } @stdFolders) + ); + + $self->{'build-path'} = $buildPath; + + return; +} + +sub _writeInitramfsSetup +{ + my $self = shift; + + # generate initramfs-setup file containing attributes that are + # relevant for the initramfs only (before there's a root-FS) - + # this override adds the name of the client such that the booting + # system has an ID to use for accessing the corresponding boot environment + # on the server + my $initramfsAttrs = { + 'host_name' => 'slx-client', # just to have something at all + 'ramfs_miscmods' => $self->{attrs}->{ramfs_miscmods} || '', + 'ramfs_nicmods' => $self->{attrs}->{ramfs_nicmods} || '', + 'ramfs_firmmods' => $self->{attrs}->{ramfs_firmmods} || '', + 'preboot_id' => $self->{'preboot-id'} || '', + 'boot_uri' => $self->{'boot-uri'} || '', + }; + my $content = "# attributes set by slxconfig-demuxer:\n"; + foreach my $attr (keys %$initramfsAttrs) { + $content .= qq[$attr="$initramfsAttrs->{$attr}"\n]; + } + $self->addCMD( { + file => "$self->{'build-path'}/etc/initramfs-setup", + content => $content + } ); + + return; +} + +sub _copyUclibcRootfs +{ + my $self = shift; + + my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs"; + + my @excludes = qw( + ); + + # exclude strace unless this system is in debug mode + if (!$self->{'debug-level'}) { + push @excludes, 'strace'; + } + + my $exclOpts = join ' ', map { "--exclude $_" } @excludes; + + $self->addCMD("rsync $exclOpts -rlpt $uclibcRootfs/ $self->{'build-path'}"); + + return 1; +} + +sub _copyPrebootSpecificFiles +{ + my $self = shift; + + # write secondary rootfs-layer (including init) on top of base layer + my $prebootRootfs + = "$openslxConfig{'base-path'}/share/boot-env/preboot/uclib-rootfs"; + $self->addCMD("rsync -rlpt $prebootRootfs/ $self->{'build-path'}"); + + return 1; +} + +1; diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm new file mode 100644 index 00000000..1334c444 --- /dev/null +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm @@ -0,0 +1,264 @@ +# Copyright (c) 2006-2008 - 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/ +# ----------------------------------------------------------------------------- +# MakeInitialRamFS::Engine::SlxBoot.pm +# - provides driver engine for MakeInitialRamFS API, implementing the +# standard slx boot behaviour (i.e. booting a system remotely). +# ----------------------------------------------------------------------------- +package OpenSLX::MakeInitRamFS::Engine::SlxBoot; + +use strict; +use warnings; + +use base qw(OpenSLX::MakeInitRamFS::Engine::Base); + +use File::Find; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation methods +################################################################################ +sub _collectCMDs +{ + my $self = shift; + + $self->{CMDs} = []; + + $self->_setupBuildPath(); + + $self->_addRequiredFSMods(); + + $self->_writeInitramfsSetup(); + $self->_writeSlxSystemConf(); + + $self->_copyUclibcRootfs(); + $self->_copyHwinfo(); + $self->_copyDistroSpecificFiles(); + $self->_copyInitramfsFiles(); + + $self->_copyPreAndPostinitFiles(); + + $self->_calloutToPlugins(); + + $self->{distro}->applyChanges($self); + + $self->_copyKernelModules(); + + $self->_createInitRamFS(); + + return; +} + +sub _setupBuildPath +{ + my $self = shift; + + my $buildPath = "$openslxConfig{'temp-path'}/slx-initramfs"; + $self->addCMD("rm -rf $buildPath"); + + my @stdFolders = qw( + bin + dev + etc + etc/init-hooks + lib + mnt + proc + root + sbin + sys + tmp + usr/share + var/lib + var/lib/nfs/state + var/run + ); + $self->addCMD( + 'mkdir -p ' . join(' ', map { "$buildPath/$_"; } @stdFolders) + ); + + $self->{'build-path'} = $buildPath; + + return; +} + +sub _copyDistroSpecificFiles +{ + my $self = shift; + + my $distroSpecsPath = "$openslxConfig{'base-path'}/share/distro-specs"; + + my $distroName = $self->{'distro-name'}; + my $distroVer = $self->{'distro-ver'}; + + # concatenate default- and distro-specific functions into one file + my $functions = slurpFile("$distroSpecsPath/$distroName/functions-default"); + $functions .= "\n"; + $functions .= slurpFile( + "$distroSpecsPath/$distroName/functions-$distroVer", + { failIfMissing => 0 } + ); + $self->addCMD( { + file => "$self->{'build-path'}/etc/distro-functions", + content => $functions, + } ); + + return 1; +} + +sub _copyUclibcRootfs +{ + my $self = shift; + + my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs"; + + my @excludes = qw( + dialog + kexec + libcurses.so* + libncurses.so* + mconf + ); + + # exclude strace unless this system is in debug mode + if (!$self->{'debug-level'}) { + push @excludes, 'strace'; + } + + my $exclOpts = join ' ', map { "--exclude $_" } @excludes; + + $self->addCMD("rsync $exclOpts -rlpt $uclibcRootfs/ $self->{'build-path'}"); + + return 1; +} + +sub _copyHwinfo +{ + my $self = shift; + + my $baseDir = "$openslxConfig{'base-path'}/share/ramfstools/hwinfo"; + + my $version = $self->{distro}->determineMatchingHwinfoVersion( + $self->{'distro-ver'} + ); + + # copy db modifications + $self->addCMD("tar xfz $baseDir/db/hwinfo.db.tgz -C $self->{'build-path'}/"); + + $self->addCMD("cp $baseDir/bin/hwinfo-$version $self->{'build-path'}/usr/bin/hwinfo"); + my $libHD = "libhd.so.$version"; + $self->addCMD("cp $baseDir/lib/$libHD $self->{'build-path'}/usr/lib"); + my $libName = $libHD; + while($libName =~ s{\.\d+$}{}g) { + $self->addCMD("ln -sf $libHD $self->{'build-path'}/usr/lib/$libName"); + } + + return 1; +} + +sub _copyInitramfsFiles +{ + my $self = shift; + + my $initramfsPath = "$openslxConfig{'base-path'}/share/initramfs"; + + find( + { + wanted => sub { + my $len = length($initramfsPath); + my $file = $File::Find::name; + my $relName = length($file) > $len ? substr($file, $len+1) : ''; + if (-d) { + $self->addCMD("mkdir -p $self->{'build-path'}/$relName"); + } elsif (-l $file) { + my $target = readlink $file; + $self->addCMD( + "ln -sf $target $self->{'build-path'}/$relName" + ); + } elsif (qx{file $file} =~ m{ELF}) { + $self->addCMD( + "cp -p $file $self->{'build-path'}/$relName" + ); + } else { + my $text = slurpFile($file, { 'io-layer' => 'bytes' } ); + + # replace macros + # TODO: find out what these mean and maybe find a + # different, better solution + my %macro = ( + 'COMDIRINDXS' => '/tmp/scratch /var/lib/nobody', + # keep serverip as it is (it is handled by init itself) + 'serverip' => '@@@serverip@@@', + ); + $text =~ s{\@\@\@([^\@]+)\@\@\@}{ + if (!exists $macro{$1}) { + warn _tr( + 'unknown macro @@@%s@@@ found in %s', + $1, $File::Find::name + ); + ''; + } else { + $macro{$1}; + } + }eogms; + + # force shebang with ash (deprecated with new busybox) + #$text =~ s{\A#!\s*/bin/.+?$}{#!/bin/ash}ms; + + $self->addCMD( { + file => "$self->{'build-path'}/$relName", + content => $text, + mode => (-x $file ? 0755 : undef), + } ); + } + }, + no_chdir => 1, + }, + $initramfsPath + ); + + return; +} + +sub _copyPreAndPostinitFiles +{ + my $self = shift; + + foreach my $cfg ( + 'default/initramfs/preinit.local', + "$self->{'system-name'}/initramfs/preinit.local", + 'default/initramfs/postinit.local', + "$self->{'system-name'}/initramfs/postinit.local" + ) { + my $cfgPath = "$openslxConfig{'private-path'}/config/$cfg"; + next if !-f $cfgPath; + $self->addCMD("cp -p $cfgPath $self->{'build-path'}/bin/"); + } + return; +} + +sub _addRequiredFSMods +{ + my $self = shift; + + my $osExportEngine = instantiateClass("OpenSLX::OSExport::Engine"); + $osExportEngine->initializeFromExisting($self->{'export-name'}); + my $fsMods = $self->{attrs}->{ramfs_fsmods} || ''; + foreach my $fsMod ($osExportEngine->requiredFSMods()) { + $fsMods .= " $fsMod" if $fsMods !~ m{$fsMod}; + } + $self->{attrs}->{ramfs_fsmods} = $fsMods; + + return; +} + +1; diff --git a/src/boot-env/pbs/uclib-rootfs/bin/bbinit b/src/boot-env/pbs/uclib-rootfs/bin/bbinit new file mode 100755 index 00000000..3fd67612 --- /dev/null +++ b/src/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/src/boot-env/pbs/uclib-rootfs/bin/handleEvents b/src/boot-env/pbs/uclib-rootfs/bin/handleEvents new file mode 100755 index 00000000..9bb78951 --- /dev/null +++ b/src/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/src/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example b/src/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example new file mode 100755 index 00000000..122cf566 --- /dev/null +++ b/src/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/src/boot-env/pbs/uclib-rootfs/etc/events/example b/src/boot-env/pbs/uclib-rootfs/etc/events/example new file mode 100644 index 00000000..75768967 --- /dev/null +++ b/src/boot-env/pbs/uclib-rootfs/etc/events/example @@ -0,0 +1,2 @@ +example_depends="" +example_provides="example" diff --git a/src/boot-env/pbs/uclib-rootfs/init b/src/boot-env/pbs/uclib-rootfs/init new file mode 100755 index 00000000..847cad87 --- /dev/null +++ b/src/boot-env/pbs/uclib-rootfs/init @@ -0,0 +1,234 @@ +#!/bin/ash +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Main script for preboot initial ramfs - preloading environment for running +# OpenSLX linux stateless clients version 5. + +fetchip () { +# we expect to get an ip address within 10++ seconds +( sleep 6 ; 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 + . /tmp/ipstuff + for ns in $dns ; do + echo "nameserver $ns" >>/etc/resolv.conf + done + # simply add a single dns server for passing via kernel cmdline to stage3 + # (quickhack, just the last, list of dns might be better ...) + echo "dnssrv=$ns" >>/tmp/ipstuff + return + else + if [ $i -eq 1 ] ; then + sleep 1 + else + dialog --msgbox "Did not get any proper IP configuration: Please check \ +that your Ethernet card is supported, the machine is connected to the network \ +and a DHCP server is answering your requests." 7 65 + ash + echo "o" >/proc/sysrq-trigger + fi + fi +done +} + +############################################################################# +# PreBoot init main part + +# device files get their own filesystem +devdir="/dev" +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 +for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \ + "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \ + "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \ + "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \ + "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \ + "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \ + "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \ + "/dev/fb0 c 29 0" "/dev/bootsplash p" "/dev/xconsole p"; do + mknod $i +done +mkdir -p ${devdir}/pts ${devdir}/shm +export PATH=/bin:/sbin:/usr/bin/:/usr/sbin + +# redirect kernel messages to tty10 instead of tty1 +getty -i -n -l /bin/cat 38400 tty10 & +setlogcons 10 + +# initramfs-setup configuration (common settings for all clients using a +# certain InitRamFS generated by slxmkramfs/mkdxsinitrd) +[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null + +# set a default LAN interface, has to be modified for WLAN or on machines +# with more than one ethernet card built in +nwif="eth0" + +# mount the important standard directories +[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc +[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys + +# load framebuffer modules if needed +for mod in vesafb fbcon; do + if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then + modprobe $mod || \ + dialog --infobox "Module $mod did not load for some reason." 3 65 + usleep 1000 + fi +done + +# give startup information +dialog --infobox "Starting OpenSLX preboot environment ..." 3 65 + +# load usb keyboard and network adaptor modules +for mod in ${ramfs_nicmods} af_packet unix hid hid-bright usbhid \ + uhci-hcd ohci-hcd ; do + if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then + modprobe $mod || \ + dialog --infobox "Module $mod did not load for some reason." 3 65 + usleep 10000 + fi +done + +# set the default for boot type and read kernel commandline (for this and +# other options) +export TYPE=fastboot +read KCMDLINE /bin/watchdog +#!/bin/ash +echo \$$ > /tmp/watchdogpid +[ ! -f /proc/version ] && mount -n -t proc proc /proc +sleep 120 2>/dev/null +echo "o" >/proc/sysrq-trigger +EOF + chmod u+x /bin/watchdog + watchdog & +else + getty -i -n -l /bin/ash 38400 tty2 & +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 + ip link show dev eth1 >/dev/null 2>&1 && \ + dialog --msgbox "More than one network interface found. This could cause \ +some trouble as their activation and ordering depends on the module load \ +order ..." 7 65 +fi + +# set up loopback networking and power up ethernet +ip link set dev lo up +ip addr add 127.0.0.1/8 dev lo +ip link set dev $nwif up || echo "I did not find any usable network adaptor." + +# run udhcpc and start a debug shell if no lease could be obtained +mkdir -p /usr/share/udhcpc +echo -e "#!/bin/ash\nunset infomsg HOME IFS mask lease interface DEBUGLEVEL \ +BOOT_IMAGE\nset >/tmp/ipstuff" >/usr/share/udhcpc/default.script +chmod u+x /usr/share/udhcpc/default.script +modprobe -q af_packet +[ -n $vci ] && vci="-V $vci" +fetchip +ip addr add $ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//) dev $nwif +ip route add default via $router + +# get the mac address of the boot network adaptor +macaddr=$(ip link show dev $nwif 2>/dev/null | \ + sed -n "/ether [0-9e-f]\{2\}:.*/p" | sed -e "s/.*ether //;s/ .*//") +echo "macaddr=$macaddr" >>/etc/initramfs-setup + +# at this point a little selection script could be downloaded, which lets the +# user choose what kind of SLX client he wants to get +dialog --infobox "Fetching preboot interactive part and configuration from \ +the net ($boot_uri) ..." 4 65 +mkdir -p /preboot +wget -q -O /preboot/preboot.init ${boot_uri}bootloader/env/getinit/formedia/$PBS_ID +chmod u+x /preboot/preboot.init + +echo "pbs_id=$PBS_ID" >> /etc/pbs.conf + +# start a debug shell if needed, else set quiet kernel parameter +if [ "${DEBUGLEVEL}" -gt 0 ] ; then + echo "Starting shell, leaving it would continue init." + /bin/ash +else + # no debugging output for stage3 run + echo "quiet=quiet" >>/etc/initramfs-setup +fi +# run the preboot interactive part which finally will execute kexec +cd /preboot +exec ./preboot.init +# we should never return from that one ... +dialog --msgbox "The execution of the main preboot component failed. Please \ +check network access of your box. Is $boot_uri reachable!?" 6 65 +# ping -c 1 $boot_uri +sleep 20 && echo "o" >/proc/sysrq-trigger + diff --git a/src/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions b/src/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions new file mode 100644 index 00000000..7c6dd784 --- /dev/null +++ b/src/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions @@ -0,0 +1,105 @@ +# 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/ +# ----------------------------------------------------------------------------- +# dialog.functions +# provides shell scripts for dialog handling +# ----------------------------------------------------------------------------- + +# set -x + +if [ "x" == "x$DIALOG_HEIGHT" ]; then + DIALOG_HEIGHT="10" +fi + +if [ "x" == "x$DIALOG_WIDTH" ]; then + DIALOG_WIDTH="40" +fi + +_ddownload_checkpercentage () { + local lf=$1 + percentage=$(tail -n 5 $lf | sed 's/\.//g' | awk '{print $2}'| sed -n "s/%//p"| tail -n 1) + return $percentage +} + +ddownload () { + local dl_url=$1 + local dl_titel=$2 + local dl_outfile=$3 + local dl_logfile=$4 + + local dl_server=$(dirname $dl_url) + local dl_file=$(basename $dl_url) + + local dl_count + + if [ "x" == "x$dl_logfile" ]; then + dl_logfile="/tmp/logfile.$$" + fi + + if [ "x" == "x$dl_outfile" ]; then + dl_outfile="$dl_file" + fi + + if [ "x" == "x$dl_title" ]; then + dl_title="Downloading $dl_file .." + fi + + if [ -f "$dl_logfile" ]; then + rm $dl_logfile + fi + + # start wget in background + wget -v -b $dl_url -o "$dl_logfile" -O $dl_outfile + + sleep 0.1; + _ddownload_checkpercentage "$dl_logfile" + + dl_count=$? + + while [ $dl_count -le 99 ]; + do + echo $dl_count |dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH + sleep 0.5 + _ddownload_checkpercentage "$dl_logfile" + dl_count=$? + done + + local finished=0 + while [ ! $finished ]; do + finished=$(tail -n 4 $dl_logfile | grep -c "$dl_file"); + done + + echo 100 | dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH; + +} + + + +menu_firststart () { + while [ "x$(cat result)" = "x" ] ; do + dialog --menu "OpenSLX" 30 60 22 \ + 01 "Kiosk" \ + 02 "Kiosk Setup" \ + 03 "Custom System" \ + 2>result + done +} + +menu_oldconfig () { + oldconf=$1; + while [ "x$(cat result)" = "x" ] ; do + dialog --menu "OpenSLX" 30 60 22 \ + 01 "Kiosk" \ + 02 "Kiosk Setup" \ + 03 "Custom System" \ + 04 "Custom System" + 2>result + done +} diff --git a/src/boot-env/preboot/conf/apache-openslx-preboot.conf b/src/boot-env/preboot/conf/apache-openslx-preboot.conf new file mode 100644 index 00000000..4eb58809 --- /dev/null +++ b/src/boot-env/preboot/conf/apache-openslx-preboot.conf @@ -0,0 +1,24 @@ + ScriptAlias /openslx-preboot/cgi-bin/ "/opt/openslx/share/boot-env/preboot/http-server/" + + Alias "/openslx-preboot/users/" "/srv/openslx/preboot-users/" + + Options -Indexes -ExecCGI FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + allow from all + + + Alias /openslx-preboot/ "/srv/openslx/preboot/" + + Options -Indexes -ExecCGI FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + allow from all + + + + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Order allow,deny + Allow from all + diff --git a/src/boot-env/preboot/http-server/user_settings.pl b/src/boot-env/preboot/http-server/user_settings.pl new file mode 100755 index 00000000..6c135267 --- /dev/null +++ b/src/boot-env/preboot/http-server/user_settings.pl @@ -0,0 +1,97 @@ +#!/usr/bin/perl -w +# 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 +# +# cgi-bin script that accepts user settings and stores them in a special +# folder on the openslx server + +use strict; +use warnings; + +use CGI; +use CGI::Carp qw(fatalsToBrowser); +use File::Path; + +# add openslx stuff to @INC +use FindBin; +use lib "$FindBin::RealBin/../../../../lib"; +use lib "$FindBin::RealBin"; + +# read default config +use OpenSLX::Basics; +openslxInit(); + +# die "*** Taint mode must be active! ***" unless ${^TAINT}; + +my $cgi = CGI->new; + +my $system = $cgi->param('system') || ''; +my $client = $cgi->param('client') || ''; +my $prebootID = $cgi->param('preboot_id') || ''; +my $type = $cgi->param('type') || 'directkiosk'; +my $errormsg = 'None'; + +die "must give 'system' ($system), 'client' ($client) and 'preboot_id' ($prebootID)!\n" + unless $system && $client && $prebootID; + +my $webPath = "$openslxConfig{'public-path'}/preboot"; +my $src = "$webPath/client-config/$system/$prebootID.tgz"; +my $destPath = "$webPath/$prebootID/client-config/$system"; + +# if fastboot (default) is selected and a ConfTGZ exist just proceed ... +if ($type eq "fastboot" && !-e "$destPath/$client.tgz") { $type = "slxconfig"; } +# directkiosk/cfgkiosk/slxconfig +if ($type ne "fastboot") { + mkpath($destPath."/".$client); + system(qq{tar -xzf $src -C $destPath/$client/}); + + + # from here on the modifications of client configuration should take place + # within $destPath/$client directory + if ($type eq "slxconfig") { + # configuration of a WAN boot SLX client + print STDERR "slxconfig sub"; + } + elsif ($type eq "cfgkiosk") { + # configuration of a WAN boot SLX kiosk + } + elsif (!$type || $type eq "directkiosk") { + # deactivate the desktop plugin for the kiosk mode + open (CFGFILE, ">>$destPath/$client/initramfs/plugin-conf/desktop.conf"); + print CFGFILE 'desktop_active="0"'; + close (CFGFILE); + # activate the kiosk plugin + if (!-e "$destPath/$client/initramfs/plugin-conf/kiosk.conf") { + $errormsg = "The kiosk plugin seems not to be installed"; + print STDERR $errormsg; + } else { + open (CFGFILE, ">>$destPath/$client/initramfs/plugin-conf/kiosk.conf"); + print CFGFILE 'kiosk_active="1"'; + close (CFGFILE); + } + } + else { + # unknown type + $errormsg = "You have passed an unknown boot type $type"; + print STDERR $errormsg; + } + system(qq{cd $destPath/$client; tar -czf $destPath/$client.tgz *}); + rmtree($destPath."/".$client); +} + +# resulting page is not shown to the user (error reporting that way, or +# completely empty reply?) +print + $cgi->header(-charset => 'iso8859-1'), + $cgi->start_html('...'); +if ($errormsg) { print $cgi->p("Error: $errormsg"); } +print + $cgi->end_html(); + diff --git a/src/boot-env/preboot/http-server/users.pl b/src/boot-env/preboot/http-server/users.pl new file mode 100755 index 00000000..cde3d227 --- /dev/null +++ b/src/boot-env/preboot/http-server/users.pl @@ -0,0 +1,90 @@ +#!/usr/bin/perl -w +# 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 +# +# cgi-bin script that accepts user settings and stores them in a special +# folder on the openslx server + +use strict; +use warnings; + +use CGI; +use CGI::Carp qw(fatalsToBrowser); +use File::Path; +use Switch; + +# add openslx stuff to @INC +use FindBin; +use lib "$FindBin::RealBin/../../../../lib"; +use lib "$FindBin::RealBin"; + +# read default config +use OpenSLX::Basics; +openslxInit(); + +my $cgi = CGI->new; +my $mac = $cgi->param('user') || ''; +my $action = $cgi->param('action'); +my $data = $cgi->param('data'); + +# global requirements +die "must give 'mac' ($mac)!\n" + unless $mac; + +my $webPath = "$openslxConfig{'public-path'}/preboot-users"; +my $userConfFile = "$webPath/$mac.conf"; + +# makes only sense if public path is writeable for www-data +# otherwise you have to create directory manualy +if ( ! -e $webPath ) { + mkpath ($webPath) or die _tr("Can't create user config directory (%s). Reason: %s", $webPath, @_); +} + +my $output = ""; +my $error; + +switch ($action) { + case 'set' { + if ($data) { + open (MYFILE, ">$userConfFile"); + print MYFILE $data; + close (MYFILE); + } else { + $error = "no data"; + } + } + case 'read' { + if ( -e $userConfFile ) { + open (MYFILE, $userConfFile); + while () { + chomp; + $output .= "$_\n"; + } + close (MYFILE); + } else { + $error = "foobar"; + } + + } + else { + #default case check if we have a user config + if ( -e $userConfFile ) { $output = "1"; } + else { $output = "0"; }; + } +} + +print $cgi->header('Content-type: text/plain'); +if ($error) { + print $error; +} else { + print $output; +} + +exit 0; diff --git a/src/boot-env/preboot/preboot-scripts/dialog.functions b/src/boot-env/preboot/preboot-scripts/dialog.functions new file mode 100644 index 00000000..7c6dd784 --- /dev/null +++ b/src/boot-env/preboot/preboot-scripts/dialog.functions @@ -0,0 +1,105 @@ +# 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/ +# ----------------------------------------------------------------------------- +# dialog.functions +# provides shell scripts for dialog handling +# ----------------------------------------------------------------------------- + +# set -x + +if [ "x" == "x$DIALOG_HEIGHT" ]; then + DIALOG_HEIGHT="10" +fi + +if [ "x" == "x$DIALOG_WIDTH" ]; then + DIALOG_WIDTH="40" +fi + +_ddownload_checkpercentage () { + local lf=$1 + percentage=$(tail -n 5 $lf | sed 's/\.//g' | awk '{print $2}'| sed -n "s/%//p"| tail -n 1) + return $percentage +} + +ddownload () { + local dl_url=$1 + local dl_titel=$2 + local dl_outfile=$3 + local dl_logfile=$4 + + local dl_server=$(dirname $dl_url) + local dl_file=$(basename $dl_url) + + local dl_count + + if [ "x" == "x$dl_logfile" ]; then + dl_logfile="/tmp/logfile.$$" + fi + + if [ "x" == "x$dl_outfile" ]; then + dl_outfile="$dl_file" + fi + + if [ "x" == "x$dl_title" ]; then + dl_title="Downloading $dl_file .." + fi + + if [ -f "$dl_logfile" ]; then + rm $dl_logfile + fi + + # start wget in background + wget -v -b $dl_url -o "$dl_logfile" -O $dl_outfile + + sleep 0.1; + _ddownload_checkpercentage "$dl_logfile" + + dl_count=$? + + while [ $dl_count -le 99 ]; + do + echo $dl_count |dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH + sleep 0.5 + _ddownload_checkpercentage "$dl_logfile" + dl_count=$? + done + + local finished=0 + while [ ! $finished ]; do + finished=$(tail -n 4 $dl_logfile | grep -c "$dl_file"); + done + + echo 100 | dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH; + +} + + + +menu_firststart () { + while [ "x$(cat result)" = "x" ] ; do + dialog --menu "OpenSLX" 30 60 22 \ + 01 "Kiosk" \ + 02 "Kiosk Setup" \ + 03 "Custom System" \ + 2>result + done +} + +menu_oldconfig () { + oldconf=$1; + while [ "x$(cat result)" = "x" ] ; do + dialog --menu "OpenSLX" 30 60 22 \ + 01 "Kiosk" \ + 02 "Kiosk Setup" \ + 03 "Custom System" \ + 04 "Custom System" + 2>result + done +} diff --git a/src/boot-env/preboot/preboot.sh b/src/boot-env/preboot/preboot.sh new file mode 100755 index 00000000..703af974 --- /dev/null +++ b/src/boot-env/preboot/preboot.sh @@ -0,0 +1,95 @@ +#!/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 +# +# preboot script for user interaction with OpenSLX preloading environment for +# Linux stateless clients (fetched by Preboot init over the net) + +# get configuration +. /etc/initramfs-setup +. ./preboot-scripts/dialog.functions + +# bring the mac address into the standard format 01- +client=$(echo 01-$macaddr|sed "s/:/-/g") + +# check if already a configuration is available to decide if user interaction +# is required (path is to be fixed) +wget -q -O /tmp/have-user-config "$boot_uri/users.pl?user=${client}" +have_user_config=$(cat /tmp/have-user-config); + +if [ "x1" == "x$have_user_config" ]; then + wget -q -O /tmp/oldconfig "$boot_uri/users.pl?user=${client}&action=read" + . /tmp/oldconfig + menu_oldconfig $oldconfig +else + menu_firststart +fi +rm result; + +# Switch here for several boot TYPE=fastboot/directkiosk/cfgkiosk/slxconfig +# fastboot - no interaction use system from client config +# directkiosk - start the default slx system into kiosk (using vmchooser) +# cfgkiosk - offer the user changes to his kiosk system (GUI environment) +# slxconfig - offer the user set of configuration options, like setting a non- +# priviledged user, root password, standard gui, plugins to activate ... + +# we expect to have a system selection dialog file in /preboot/bootmenu.dialog +while [ "x$(cat result)" = "x" ] ; do + dialog --file bootmenu.dialog 2>result +done +# source the system to boot configuration ($kernel, $initramfs, $append, +# $label) +sysname=$(cat result) +. ./$sysname +sysname=$(readlink $sysname) + +# set basic post data information +postdata="system=${sysname}&preboot_id=${preboot_id}&client=${client}" + +# ask for desired debug level in stage3 if debug!=0 in preboot +echo "0" >result +[ x$DEBUGLEVEL != x0 ] && dialog --no-cancel --menu "Choose Debug Level:" \ + 20 65 10 "0" "no debug output (splash)" \ + "2" "standard debug output" \ + "3" "debug output and shell" 2>result + +# change debug level here if required (adjusted for the rest of the interactive +# part) +DEBUGLEVEL=$(cat result) +if [ x$DEBUGLEVEL != x0 ]; then + debug="debug=$DEBUGLEVEL" +else + debug="" +fi + +# send information to configuration host via http +wget --post-data "$postdata" -O /tmp/cfg-error \ + $boot_uri/cgi-bin/user_settings.pl + +[ "x$DEBUGLEVEL" != x0 -a grep -qe "Error:" /tmp/cfg-error 2>/dev/null ] && \ + dialog --msgbox "An error occured ..." # to be elaborated + +# fetch kernel and initramfs of selected system +dialog --infobox "Loading kernel of ${sysname} ..." 3 65 +wget -q -O /tmp/kernel $boot_uri/$kernel +dialog --infobox "Loading initial ramfs of ${sysname} ..." 3 65 +wget -q -O /tmp/initramfs $boot_uri/$initramfs + +# read primary IP configuration to pass it on (behaviour like IPAPPEND=1 of +# PXElinux) +. /tmp/ipstuff + +[ "x$DEBUGLEVEL" != x0 ] && { clear; ash; } + +# start the new kernel with initialramfs and composed cmdline +dialog --infobox "Booting OpenSLX client $label ..." 3 65 +kexec -l /tmp/kernel --initrd=/tmp/initramfs \ + --append="$append file=$boot_uri/${preboot_id}/client-config/${sysname}/${client}.tgz $quiet ip=$ip:$siaddr:$router:$subnet:$dnssrv $debug" 2>/dev/null +kexec -e >/dev/null 2>&1 diff --git a/src/boot-env/preboot/uclib-rootfs/init b/src/boot-env/preboot/uclib-rootfs/init new file mode 100755 index 00000000..ab2f9ca0 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/init @@ -0,0 +1,216 @@ +#!/bin/ash +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Main script for preboot initial ramfs - preloading environment for running +# OpenSLX linux stateless clients version 5. + +fetchip () { +# we expect to get an ip address within 10++ seconds +( 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 + . /tmp/ipstuff + for ns in $dns ; do + echo "nameserver $ns" >>/etc/resolv.conf + done + # simply add a single dns server for passing via kernel cmdline to stage3 + # (quickhack, just the last, list of dns might be better ...) + echo "dnssrv=$ns" >>/tmp/ipstuff + return + else + if [ $i -eq 1 ] ; then + sleep 1 + else + dialog --msgbox "Did not get any proper IP configuration: Please check \ +that your Ethernet card is supported, the machine is connected to the network \ +and a DHCP server is answering your requests." 7 65 + ash + echo "o" >/proc/sysrq-trigger + fi + fi +done +} + +############################################################################# +# PreBoot init main part + +# device files get their own filesystem +devdir="/dev" +mount -n -t tmpfs -o 'size=25%,mode=0755' initramfsdevs ${devdir} +export DEBUGLEVEL=0 + +# create basic device files an directories in dev +for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \ + "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \ + "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \ + "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \ + "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \ + "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \ + "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \ + "/dev/fb0 c 29 0" "/dev/bootsplash p" "/dev/xconsole p"; do + mknod $i +done +mkdir -p ${devdir}/pts ${devdir}/shm +export PATH=/bin:/sbin:/usr/bin/:/usr/sbin + +# redirect kernel messages to tty10 instead of tty1 +getty -i -n -l /bin/cat 38400 tty10 & +setlogcons 10 + +# initramfs-setup configuration (common settings for all clients using a +# certain InitRamFS generated by slxmkramfs/mkdxsinitrd) +[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null + +# set a default LAN interface, has to be modified for WLAN or on machines +# with more than one ethernet card built in +nwif="eth0" + +# mount the important standard directories +[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc +[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys + +# load framebuffer modules if needed +for mod in vesafb fbcon; do + if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then + modprobe $mod || \ + dialog --infobox "Module $mod did not load for some reason." 3 65 + usleep 1000 + fi +done + +# give startup information +dialog --infobox "Starting OpenSLX preboot environment ..." 3 65 + +# load usb keyboard and network adaptor modules +for mod in ${ramfs_nicmods} af_packet unix hid hid-bright usbhid \ + uhci-hcd ohci-hcd ; do + if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then + modprobe $mod || \ + dialog --infobox "Module $mod did not load for some reason." 3 65 + usleep 10000 + fi +done + +# set the default for boot type and read kernel commandline (for this and +# other options) +export TYPE=fastboot +read KCMDLINE /bin/watchdog +#!/bin/ash +echo \$$ > /tmp/watchdogpid +[ ! -f /proc/version ] && mount -n -t proc proc /proc +sleep 120 2>/dev/null +echo "o" >/proc/sysrq-trigger +EOF + chmod u+x /bin/watchdog + watchdog & +else + getty -i -n -l /bin/ash 38400 tty2 & +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 + ip link show dev eth1 >/dev/null 2>&1 && \ + dialog --msgbox "More than one network interface found. This could cause \ +some trouble as their activation and ordering depends on the module load \ +order ..." 7 65 +fi + +# set up loopback networking and power up ethernet +ip link set dev lo up +ip addr add 127.0.0.1/8 dev lo +ip link set dev $nwif up || echo "I did not find any usable network adaptor." + +# run udhcpc and start a debug shell if no lease could be obtained +mkdir -p /usr/share/udhcpc +echo -e "#!/bin/ash\nunset infomsg HOME IFS mask lease interface DEBUGLEVEL \ +BOOT_IMAGE\nset >/tmp/ipstuff" >/usr/share/udhcpc/default.script +chmod u+x /usr/share/udhcpc/default.script +modprobe -q af_packet +[ -n $vci ] && vci="-V $vci" +fetchip +ip addr add $ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//) dev $nwif +ip route add default via $router + +# get the mac address of the boot network adaptor +macaddr=$(ip link show dev $nwif 2>/dev/null | \ + sed -n "/ether [0-9e-f]\{2\}:.*/p" | sed -e "s/.*ether //;s/ .*//") +echo "macaddr=$macaddr" >>/etc/initramfs-setup + +# at this point a little selection script could be downloaded, which lets the +# user choose what kind of SLX client he wants to get +dialog --infobox "Fetching preboot interactive part and configuration from \ +the net ($boot_uri) ..." 4 65 +wget -q -O /tmp/preboot.env $boot_uri/bootloader/${preboot_id}.env +mkdir /preboot +tar -xzf /tmp/preboot.env -C /preboot +# start a debug shell if needed, else set quiet kernel parameter +if [ "${DEBUGLEVEL}" -gt 0 ] ; then + echo "Starting shell, leaving it would continue init." + /bin/ash +else + # no debugging output for stage3 run + echo "quiet=quiet" >>/etc/initramfs-setup +fi +# run the preboot interactive part which finally will execute kexec +cd /preboot +exec ./preboot.sh +# we should never return from that one ... +dialog --msgbox "The execution of the main preboot component failed. Please \ +check network access of your box. Is $boot_uri reachable!?" 6 65 +# ping -c 1 $boot_uri +sleep 20 && echo "o" >/proc/sysrq-trigger + diff --git a/src/boot-env/preboot/uclib-rootfs/lib/libcurses.so b/src/boot-env/preboot/uclib-rootfs/lib/libcurses.so new file mode 120000 index 00000000..c7b1e02a --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/lib/libcurses.so @@ -0,0 +1 @@ +libncurses.so.5.6 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so new file mode 120000 index 00000000..7257b6af --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so @@ -0,0 +1 @@ +libncurses.so.5 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5 b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5 new file mode 120000 index 00000000..c7b1e02a --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5 @@ -0,0 +1 @@ +libncurses.so.5.6 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6 b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6 new file mode 100755 index 00000000..a395c6b7 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/bin/clear b/src/boot-env/preboot/uclib-rootfs/usr/bin/clear new file mode 100755 index 00000000..acc13246 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/bin/clear differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/bin/dialog b/src/boot-env/preboot/uclib-rootfs/usr/bin/dialog new file mode 100755 index 00000000..6929569f Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/bin/dialog differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/bin/w3m b/src/boot-env/preboot/uclib-rootfs/usr/bin/w3m new file mode 100755 index 00000000..2766a681 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/bin/w3m differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so new file mode 120000 index 00000000..cda623f3 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so @@ -0,0 +1 @@ +libcrypto.so.0.9.8 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8 new file mode 100755 index 00000000..bb1b8163 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so new file mode 100755 index 00000000..32ad8efe --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so @@ -0,0 +1,11 @@ +/* GNU ld script + Since Gentoo has critical dynamic libraries in /lib, and the static versions + in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we + run into linking problems. This "fake" dynamic lib is a linker script that + redirects the linker to the real lib. And yes, this works in the cross- + compiling scenario as the sysroot-ed linker will prepend the real path. + + See bug http://bugs.gentoo.org/4411 for more info. + */ +OUTPUT_FORMAT ( elf32-i386 ) +GROUP ( /lib/libcurses.so ) diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so new file mode 120000 index 00000000..10e91696 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so @@ -0,0 +1 @@ +libform.so.5 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5 new file mode 120000 index 00000000..4a80f6b6 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5 @@ -0,0 +1 @@ +libform.so.5.6 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6 new file mode 100755 index 00000000..888adb22 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so new file mode 120000 index 00000000..b12b5cfb --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so @@ -0,0 +1 @@ +libmenu.so.5 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5 new file mode 120000 index 00000000..869f4a57 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5 @@ -0,0 +1 @@ +libmenu.so.5.6 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 new file mode 100755 index 00000000..fb190a90 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so new file mode 100755 index 00000000..e7122a85 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so @@ -0,0 +1,11 @@ +/* GNU ld script + Since Gentoo has critical dynamic libraries in /lib, and the static versions + in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we + run into linking problems. This "fake" dynamic lib is a linker script that + redirects the linker to the real lib. And yes, this works in the cross- + compiling scenario as the sysroot-ed linker will prepend the real path. + + See bug http://bugs.gentoo.org/4411 for more info. + */ +OUTPUT_FORMAT ( elf32-i386 ) +GROUP ( /lib/libncurses.so ) diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so new file mode 120000 index 00000000..b5cd4a70 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so @@ -0,0 +1 @@ +libpanel.so.5 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5 new file mode 120000 index 00000000..ff2e80a5 --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5 @@ -0,0 +1 @@ +libpanel.so.5.6 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 new file mode 100755 index 00000000..4acbc076 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so b/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so new file mode 120000 index 00000000..7874414f --- /dev/null +++ b/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so @@ -0,0 +1 @@ +libssl.so.0.9.8 \ No newline at end of file diff --git a/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 b/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 new file mode 100755 index 00000000..194078c5 Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/sbin/kdump b/src/boot-env/preboot/uclib-rootfs/usr/sbin/kdump new file mode 100755 index 00000000..07226a4b Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/sbin/kdump differ diff --git a/src/boot-env/preboot/uclib-rootfs/usr/sbin/kexec b/src/boot-env/preboot/uclib-rootfs/usr/sbin/kexec new file mode 100755 index 00000000..cc49c45c Binary files /dev/null and b/src/boot-env/preboot/uclib-rootfs/usr/sbin/kexec differ diff --git a/src/boot-env/syslinux/LICENSE b/src/boot-env/syslinux/LICENSE new file mode 100644 index 00000000..7233bc7e --- /dev/null +++ b/src/boot-env/syslinux/LICENSE @@ -0,0 +1,3 @@ +This package is free software distributed under the GPL version 2. +See http://openslx.org/COPYING. For additional information on the +SYSLINUX component by H.P. Anwin check http://syslinux.zytor.com! diff --git a/src/boot-env/syslinux/README.iso b/src/boot-env/syslinux/README.iso new file mode 100644 index 00000000..f9abdbea --- /dev/null +++ b/src/boot-env/syslinux/README.iso @@ -0,0 +1,6 @@ +You seem to have the OpenSLX network demo CD/DVD still in your optical +drive! This is not required. You may safely remove the medium just +after the first kernel/initramfs is loaded ... + +If you have any feedback please consult http://openslx.org/feedback +and send your comments to feedback@openslx.org! diff --git a/src/boot-env/syslinux/README.pxe b/src/boot-env/syslinux/README.pxe new file mode 100644 index 00000000..9a14ee52 --- /dev/null +++ b/src/boot-env/syslinux/README.pxe @@ -0,0 +1,68 @@ +The PXE stuff uses HPAs syslinux, see http://syslinux.zytor.com! + +Example how the PXElinux information is gathered: + +############################## PXElinux-menu file ############################## +##### first static information is written, can't be changed ##### +##### override with include-menu (except DEFAULT vesamenu.c32) ##### +# # +# DEFAULT vesamenu.c32 # +# NOESCAPE 0 # +# PROMPT 0 # +# # +##### then theme specific information is written (if theme specified) ##### +##### ##### +# # +# MENU BACKGROUND openslx.png # +# MENU WIDTH 78 # +# . # +# . # +# menu color unsel 37;40 #fff0f0f0 #ff8093a1 std # +# . # +# . # +# . # +# # +##### now slxsettings configuration is being read ##### +##### ##### +# # +# TIMEOUT 100 # +# TOTALTIMEOUT 600 # +# MENU MASTER PASSWD secret # +# MENU TITLE Welcome to OpenSLX # +# # +##### after this /etc/opt/openslx/boot-env/syslinux/pxemenu-include is ##### +##### included if it is existing, overriding above statements ##### +# # +# MENU PASSPROMPT Gesicherter Bereich, bitte Passwort eingeben: # +# MENU AUTOBOOT Auswahl startet in # Sekunden # +# . # +# . # +# . # +# # +##### at this point the system labels are being included ##### +##### ##### +# # +# LABEL openslx-suse-11.0-default::nfs # +# MENU LABEL ^SUSE 11.0 System / NFS # +# KERNEL suse-11.0-default/vmlinuz-2.6.25.20-0.1-pae # +# APPEND quiet vga=791 initrd=suse-11.0-default/initramfs-1 file # +# IPAPPEND 3 # +# TEXT HELP # +# OpenSUSE 11.0 System # +# ENDTEXT # +# . # +# . # +# . # +# # +##### at the end /etc/opt/openslx/boot-env/syslinux/pxemenu-bottom is ##### +##### being incl. if existing ##### +##### please specify only systems and further menus ##### +# # +# MENU SEPARATOR # +# LABEL test # +# MENU LABEL ^Testmenu # +# MENU PASSWD test # +# KERNEL pxechain.com # +# APPEND 192.168.1.1::pxelinux.0 # +# # +########################## End of PXElinux-menu file ########################### diff --git a/src/boot-env/syslinux/extlinux b/src/boot-env/syslinux/extlinux new file mode 100755 index 00000000..69d8bf56 Binary files /dev/null and b/src/boot-env/syslinux/extlinux differ diff --git a/src/boot-env/syslinux/initramfs-shutdown b/src/boot-env/syslinux/initramfs-shutdown new file mode 100644 index 00000000..3e4376bd Binary files /dev/null and b/src/boot-env/syslinux/initramfs-shutdown differ diff --git a/src/boot-env/syslinux/isolinux.bin b/src/boot-env/syslinux/isolinux.bin new file mode 100644 index 00000000..bd778b3b Binary files /dev/null and b/src/boot-env/syslinux/isolinux.bin differ diff --git a/src/boot-env/syslinux/kernel-shutdown b/src/boot-env/syslinux/kernel-shutdown new file mode 100644 index 00000000..ddb180dd Binary files /dev/null and b/src/boot-env/syslinux/kernel-shutdown differ diff --git a/src/boot-env/syslinux/mboot.c32 b/src/boot-env/syslinux/mboot.c32 new file mode 100755 index 00000000..929ade6f Binary files /dev/null and b/src/boot-env/syslinux/mboot.c32 differ diff --git a/src/boot-env/syslinux/mbr.bin b/src/boot-env/syslinux/mbr.bin new file mode 100644 index 00000000..8592b598 Binary files /dev/null and b/src/boot-env/syslinux/mbr.bin differ diff --git a/src/boot-env/syslinux/menu.c32 b/src/boot-env/syslinux/menu.c32 new file mode 100755 index 00000000..67f9c29b Binary files /dev/null and b/src/boot-env/syslinux/menu.c32 differ diff --git a/src/boot-env/syslinux/pxechain.com b/src/boot-env/syslinux/pxechain.com new file mode 100644 index 00000000..8c4e0c5b Binary files /dev/null and b/src/boot-env/syslinux/pxechain.com differ diff --git a/src/boot-env/syslinux/pxelinux.0 b/src/boot-env/syslinux/pxelinux.0 new file mode 100644 index 00000000..0df4fbed Binary files /dev/null and b/src/boot-env/syslinux/pxelinux.0 differ diff --git a/src/boot-env/syslinux/pxemenu-bottom.example b/src/boot-env/syslinux/pxemenu-bottom.example new file mode 100644 index 00000000..29ceee3c --- /dev/null +++ b/src/boot-env/syslinux/pxemenu-bottom.example @@ -0,0 +1,39 @@ +# this include file will be loaded at the bottom of the menu after the system +# labels, please define only further menus and systems +# for theme configuration use theme.conf in your theme directory +# general settings can be set via slxsettings +# please copy to pxemenu-bottom if needed + +## example: shutdown label in menu +#LABEL shutdown +# MENU LABEL ^Shutdown PC +# KERNEL kernel-shutdown +# APPEND initrd=initramfs-shutdown quiet + +## help label not selectable +#LABEL help +# MENU LABEL Press 'F1' for help +# MENU DISABLE + +## example: add an additional menu on the same tftp server +#LABEL test +# MENU LABEL ^Testmeu +# KERNEL vesamenu.c32 +# APPEND testmenu + +## example: add an additional menu on a different tftp server, with passwd +#LABEL test2 +# MENU LABEL ^Testmeu +# MENU PASSWD test +# KERNEL pxechain.com +# APPEND 192.168.101.102::pxelinux.0 + +## example blank line / menu separator +#MENU SEPARATOR + +## example localboot with passwd +#LABEL local +# MENU LABEL Boot from local ^Harddisk +# MENU PASSWD local +# localboot 0 + diff --git a/src/boot-env/syslinux/pxemenu-include.example b/src/boot-env/syslinux/pxemenu-include.example new file mode 100644 index 00000000..c09f8e70 --- /dev/null +++ b/src/boot-env/syslinux/pxemenu-include.example @@ -0,0 +1,58 @@ +# this include file will be loaded at the end of theme and slxsettings +# configuration but right before the system labels +# it will overwrite existing defs +# for theme configuration use theme.conf in your theme directory +# general settings can be set via slxsettings +# please copy to pxemenu-include if needed + +## example german help: +#MENU PASSPROMPT Gesicherter Bereich, bitte Passwort eingeben: +#MENU AUTOBOOT Auswahl startet in # Sekunden + +## example: shutdown on timeout +#ONTIMEOUT shutdown +#LABEL shutdown +# MENU HIDE +# KERNEL kernel-shutdown +# APPEND initrd=initramfs-shutdown quiet + +## example: shutdown label in menu +#LABEL shutdown2 +# MENU LABEL ^Shutdown PC +# KERNEL kernel-shutdown +# APPEND initrd=initramfs-shutdown quiet + +## help/... text on F1 keypress +#F1 help_01.txt +## optionally with info +#LABEL help +# MENU LABEL Press 'F1' for help +# MENU DISABLE + +## example: add an additional menu on the same tftp server +#LABEL test +# MENU LABEL ^Testmeu +# KERNEL vesamenu.c32 +# APPEND testmenu + +## example: add an additional menu on a different tftp server, with passwd +#LABEL test2 +# MENU LABEL ^Testmeu +# MENU PASSWD test +# KERNEL pxechain.com +# APPEND 192.168.101.102::pxelinux.0 + +## example non-selectable line +#LABEL - +# MENU LABEL ________________________________________________________ +# MENU DISABLE + +## example blank line / menu separator +#MENU SEPARATOR + +## example localboot with passwd +#LABEL local +# MENU LABEL Boot from local ^Harddisk +# MENU PASSWD local +# localboot 0 + diff --git a/src/boot-env/syslinux/syslinux b/src/boot-env/syslinux/syslinux new file mode 100755 index 00000000..92b1b907 Binary files /dev/null and b/src/boot-env/syslinux/syslinux differ diff --git a/src/boot-env/syslinux/themes/openslx/openslx.png b/src/boot-env/syslinux/themes/openslx/openslx.png new file mode 100644 index 00000000..ccf8cc0a Binary files /dev/null and b/src/boot-env/syslinux/themes/openslx/openslx.png differ diff --git a/src/boot-env/syslinux/themes/openslx/theme.conf b/src/boot-env/syslinux/themes/openslx/theme.conf new file mode 100644 index 00000000..e28562d6 --- /dev/null +++ b/src/boot-env/syslinux/themes/openslx/theme.conf @@ -0,0 +1,40 @@ +# openslx theme style definition +# please define only look of your theme +# for non-theme definitions use slxsettings +# or include file in /etc/opt/openslx/boot-env/syslinux/pxemenu-include + +MENU BACKGROUND openslx.png +MENU WIDTH 78 +MENU MARGIN 9 +MENU PASSWORDMARGIN 9 +MENU ROWS 10 +MENU TABMSGROW 16 +MENU CMDLINEROW 16 +MENU ENDROW -1 +MENU PASSWORDROW 16 +MENU TIMEOUTROW 20 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW -1 +MENU HSHIFT 0 +MENU VSHIFT 7 + +menu color screen 37;40 #80ffffff #00000000 std +menu color border 37;40 #40000000 #ff8093a1 std +menu color title 1;37;40 #ffff8b00 #ff8093a1 std +menu color unsel 37;40 #fff0f0f0 #ff8093a1 std +menu color hotkey 1;37;40 #ffff8b00 #ff8093a1 std +menu color sel 7;37;40 #ff1c2a33 #667799bb all +menu color hotsel 1;7;37;40 #ffff8b00 #667799bb all +menu color disabled 1;37;40 #ffff8b00 #ff8093a1 std +menu color scrollbar 37;40 #40000000 #ee000000 std +menu color tabmsg 37;40 #ffff8b00 #ff8093a1 std +menu color cmdmark 1;37;40 #ffff8b00 #ff8093a1 std +menu color cmdline 37;40 #fff0f0f0 #ff8093a1 std +menu color pwdborder 37;40 #40000000 #ff8093a1 std +menu color pwdheader 37;40 #ffff8b00 #ff8093a1 std +menu color pwdentry 37;40 #ffff8b00 #ff8093a1 std +menu color timeout_msg 37;40 #fff0f0f0 #ff8093a1 std +menu color timeout 1;37;40 #ffff8b00 #ff8093a1 std +menu color help 37;40 #ff1c2a33 #00000000 none +MENU MSGCOLOR #ff1c2a33 #00000000 none + diff --git a/src/boot-env/syslinux/themes/openslxpbs/openslx.png b/src/boot-env/syslinux/themes/openslxpbs/openslx.png new file mode 100644 index 00000000..fefbfdf3 Binary files /dev/null and b/src/boot-env/syslinux/themes/openslxpbs/openslx.png differ diff --git a/src/boot-env/syslinux/themes/openslxpbs/theme.conf b/src/boot-env/syslinux/themes/openslxpbs/theme.conf new file mode 100644 index 00000000..e28562d6 --- /dev/null +++ b/src/boot-env/syslinux/themes/openslxpbs/theme.conf @@ -0,0 +1,40 @@ +# openslx theme style definition +# please define only look of your theme +# for non-theme definitions use slxsettings +# or include file in /etc/opt/openslx/boot-env/syslinux/pxemenu-include + +MENU BACKGROUND openslx.png +MENU WIDTH 78 +MENU MARGIN 9 +MENU PASSWORDMARGIN 9 +MENU ROWS 10 +MENU TABMSGROW 16 +MENU CMDLINEROW 16 +MENU ENDROW -1 +MENU PASSWORDROW 16 +MENU TIMEOUTROW 20 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW -1 +MENU HSHIFT 0 +MENU VSHIFT 7 + +menu color screen 37;40 #80ffffff #00000000 std +menu color border 37;40 #40000000 #ff8093a1 std +menu color title 1;37;40 #ffff8b00 #ff8093a1 std +menu color unsel 37;40 #fff0f0f0 #ff8093a1 std +menu color hotkey 1;37;40 #ffff8b00 #ff8093a1 std +menu color sel 7;37;40 #ff1c2a33 #667799bb all +menu color hotsel 1;7;37;40 #ffff8b00 #667799bb all +menu color disabled 1;37;40 #ffff8b00 #ff8093a1 std +menu color scrollbar 37;40 #40000000 #ee000000 std +menu color tabmsg 37;40 #ffff8b00 #ff8093a1 std +menu color cmdmark 1;37;40 #ffff8b00 #ff8093a1 std +menu color cmdline 37;40 #fff0f0f0 #ff8093a1 std +menu color pwdborder 37;40 #40000000 #ff8093a1 std +menu color pwdheader 37;40 #ffff8b00 #ff8093a1 std +menu color pwdentry 37;40 #ffff8b00 #ff8093a1 std +menu color timeout_msg 37;40 #fff0f0f0 #ff8093a1 std +menu color timeout 1;37;40 #ffff8b00 #ff8093a1 std +menu color help 37;40 #ff1c2a33 #00000000 none +MENU MSGCOLOR #ff1c2a33 #00000000 none + diff --git a/src/boot-env/syslinux/vesamenu.c32 b/src/boot-env/syslinux/vesamenu.c32 new file mode 100755 index 00000000..804e2fb8 Binary files /dev/null and b/src/boot-env/syslinux/vesamenu.c32 differ diff --git a/src/config-db/OpenSLX/AttributeRoster.pm b/src/config-db/OpenSLX/AttributeRoster.pm new file mode 100644 index 00000000..88d6295f --- /dev/null +++ b/src/config-db/OpenSLX/AttributeRoster.pm @@ -0,0 +1,537 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# AttributeRoster.pm +# - provides information about all available attributes +# ----------------------------------------------------------------------------- +package OpenSLX::AttributeRoster; + +use strict; +use warnings; + +use Digest::MD5 qw(md5_hex); + +use OpenSLX::Basics; +use OpenSLX::OSPlugin::Engine; +use OpenSLX::OSPlugin::Roster; +use OpenSLX::Utils; + +my %AttributeInfo; + +#=item C<_init()> +# +#Integrates info about all known attributes (from core and from the plugins) +#into one big hash. +#Returns info about all attributes. +# +#=cut +# +sub _init +{ + my $class = shift; + + # set core attributes + %AttributeInfo = ( + 'automnt_dir' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'automnt_src' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'boot_type' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + Selects the boot technology for this client. + Currently the following boot types are supported: + pxe (is the default) + uses PXE to boot client over LAN + preboot + generates a set of images (see preboot_media) that can + be used to remotely boot the systems referred to by + this client + pbs + preboot server (experimental) + End-of-Here + content_regex => qr{^(pxe|preboot|pbs)$}, + content_descr => '"pxe" or "preboot"', + default => 'pxe', + }, + 'boot_uri' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + specifies the wget(able) address of the remote bootloader + archive that shall be loaded from the preboot environment + End-of-Here + content_regex => undef, + content_descr => 'an uri supported by wget', + default => '', + }, + 'country' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'de', + }, + 'hidden' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + specifies whether or not this system is offered for booting + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '0: system is bootable - 1: system is hidden', + default => '0', + }, + 'kernel_params' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + params to build kernel cmdline for this system + End-of-Here + content_regex => undef, + content_descr => 'kernel cmdline fragment', + default => 'quiet', + }, + 'kernel_params_client' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + client-specific params for kernel cmdline + End-of-Here + content_regex => undef, + content_descr => 'kernel cmdline fragment', + default => '', + }, + 'preboot_media' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + List of preboot media supported by this client. + Currently the following preboot media are supported: + cd + generates a bootable CD-image that can be used to + remotely boot the systems referred to by this client + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'preboot_server' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!experimental!! specifies location of openslx-preboot-server + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'ramfs_fsmods' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + list of filesystem kernel modules to load + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'ramfs_miscmods' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + list of miscellaneous kernel modules to load + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'ramfs_nicmods' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + list of network card modules to load + End-of-Here + content_regex => qr{^\s*([-\w]+\s*)*$}, + content_descr => 'a space-separated list of NIC modules', + default => 'forcedeth e1000 e100 tg3 via-rhine r8169 pcnet32', + }, + 'hw_local_disk' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + how to handle local disk deploament - no/slxonly/all + End-of-Here + content_regex => undef, + content_descr => 'how to handle local disk (no/slxonly/all)', + default => 'all', + }, + 'scratch' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => '', + }, + 'start_atd' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'no', + }, + 'start_cron' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'no', + }, + 'start_dreshal' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'yes', + }, + 'start_ntp' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'initial', + }, + 'start_nfsv4' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'no', + }, + 'start_snmp' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'no', + }, + 'start_sshd' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + !!!descriptive text missing here!!! + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'yes', + }, + 'timezone' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + textual timezone (e.g. 'Europe/Berlin') + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'Europe/Berlin', + }, + 'unbootable' => { + applies_to_systems => 0, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + specifies whether or not this client is allowed to boot + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '0: client can boot - 1: client is blocked', + default => '0', + }, + ); + + # and add all plugin attributes, too + OpenSLX::OSPlugin::Roster->addAllStage3AttributesToHash(\%AttributeInfo); + + return 1; +} + +=item C + +Returns info about all attributes. + +=over + +=item Return Value + +An hash-ref with info about all known attributes. + +=back + +=cut + +sub getAttrInfo +{ + my $class = shift; + my $params = shift || {}; + + $class->_init() if !%AttributeInfo; + + if (defined $params->{name}) { + my $attrInfo = $AttributeInfo{$params->{name}}; + return if !defined $attrInfo; + return { $params->{name} => $AttributeInfo{$params->{name}} }; + } + elsif (defined $params->{scope}) { + my %MatchingAttributeInfo; + my $selectedScope = lc($params->{scope}); + foreach my $attr (keys %AttributeInfo) { + my $attrScope = ''; + if ($attr =~ m{^(.+?)::}) { + $attrScope = lc($1); + } + if ((!$attrScope && $selectedScope eq 'core') + || $attrScope eq $selectedScope) { + $MatchingAttributeInfo{$attr} = $AttributeInfo{$attr}; + } + } + return \%MatchingAttributeInfo; + } + + return \%AttributeInfo; +} + +=item C + +Returns the stage3 attribute names (which apply to systems or clients). + +=over + +=item Return Value + +An array of attribute names. + +=back + +=cut + +sub getStage3Attrs +{ + my $class = shift; + + $class->_init() if !%AttributeInfo; + + return + grep { + $AttributeInfo{$_}->{applies_to_systems} + || $AttributeInfo{$_}->{applies_to_client} + } + keys %AttributeInfo +} + +=item C + +Returns the attribute names that apply to systems. + +=over + +=item Return Value + +An array of attribute names. + +=back + +=cut + +sub getSystemAttrs +{ + my $class = shift; + + $class->_init() if !%AttributeInfo; + + return + grep { $AttributeInfo{$_}->{"applies_to_systems"} } + keys %AttributeInfo +} + +=item C + +Returns the attribute names that apply to clients. + +=over + +=item Return Value + +An array of attribute names. + +=back + +=cut + +sub getClientAttrs +{ + my $class = shift; + + $class->_init() if !%AttributeInfo; + + return + grep { $AttributeInfo{$_}->{"applies_to_clients"} } + keys %AttributeInfo +} + +=item C + +Checks if the given stage3 attribute values are allowed (and make sense). + +This method returns an array-ref of problems found. If there were no problems, +this methods returns undef. + +=cut + +sub findProblematicValues +{ + my $class = shift; + my $stage3Attrs = shift || {}; + my $vendorOSName = shift; + my $installedPlugins = shift; + + $class->_init() if !%AttributeInfo; + + my @problems; + + my %attrsByPlugin; + foreach my $key (sort keys %{$stage3Attrs}) { + my $value = $stage3Attrs->{$key}; + if ($key =~ m{^(.+)::.+?$}) { + my $pluginName = $1; + if ($installedPlugins + && !grep { $_->{plugin_name} eq $pluginName } @$installedPlugins) { + # avoid checking attributes of plugins that are not installed + next; + } + $attrsByPlugin{$pluginName} ||= {}; + $attrsByPlugin{$pluginName}->{$key} = $value; + } + + # undefined values are always allowed + next if !defined $value; + + # check the value against the regex of the attribute (if any) + my $attrInfo = $AttributeInfo{$key}; + if (!$attrInfo) { + push @problems, _tr('attribute "%s" is unknown!', $key); + next; + } + my $regex = $attrInfo->{content_regex}; + if ($regex && $value !~ $regex) { + push @problems, _tr( + "the value '%s' for attribute %s is not allowed.\nAllowed values are: %s", + $value, $key, $attrInfo->{content_descr} + ); + } + } + + # if no vendorOS-name has been provided or there are no plugins installed, + # we can't do any further checks + if ($vendorOSName && $installedPlugins) { + # now give each installed plugin a chance to check it's own attributes + # by itself + foreach my $pluginInfo ( + sort { $a->{plugin_name} cmp $b->{plugin_name} } @$installedPlugins + ) { + my $pluginName = $pluginInfo->{plugin_name}; + vlog 2, "checking attrs of plugin: $pluginName\n"; + # create & start OSPlugin-engine for vendor-OS and current plugin + my $engine = OpenSLX::OSPlugin::Engine->new; + if (!$engine->initialize($pluginName, $vendorOSName)) { + warn _tr( + 'unable to create engine for plugin "%s"!', $pluginName + ); + next; + } + $engine->checkStage3AttrValues( + $attrsByPlugin{$pluginName}, \@problems + ); + } + } + + return if !@problems; + + return \@problems; +} + +=item C + +Returns a MD5 hash representing the list of all attributes (including plugins). + +=cut + +sub computeMD5HashOverAllAttrs +{ + my $class = shift; + + $class->_init() if !%AttributeInfo; + + my %attrNames; + @attrNames{keys %AttributeInfo} = (); + + my $pluginInfo = OpenSLX::OSPlugin::Roster->getAvailablePlugins(); + if ($pluginInfo) { + foreach my $pluginName (sort keys %$pluginInfo) { + my $attrInfo + = OpenSLX::OSPlugin::Roster->getPluginAttrInfo($pluginName); + @attrNames{keys %$attrInfo} = (); + } + } + + my $attrNamesAsString = join ',', sort keys %attrNames; + + return md5_hex($attrNamesAsString); +} + +1; diff --git a/src/config-db/OpenSLX/ConfigDB.pm b/src/config-db/OpenSLX/ConfigDB.pm new file mode 100644 index 00000000..89011246 --- /dev/null +++ b/src/config-db/OpenSLX/ConfigDB.pm @@ -0,0 +1,3190 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +package OpenSLX::ConfigDB; + +use strict; +use warnings; + +our (@ISA, @EXPORT_OK, %EXPORT_TAGS, $VERSION); +$VERSION = 1; # API-version + +use Clone qw(clone); +use File::Basename; + +use Exporter; +@ISA = qw(Exporter); + +=pod + +=head1 NAME + +OpenSLX::ConfigDB - the configuration database API class for OpenSLX + +=head1 SYNOPSIS + + use OpenSLX::ConfigDB; + + openslxInit(); + + my $openslxDB = OpenSLX::ConfigDB->new(); + $openslxDB->connect(); + + # fetch a client by name: + my $defaultClient = $openslxDB->fetchClientByFilter({'name' => '<<>>'}) + + # fetch all systems: + my @systems = $openslxDB->fetchSystemByFilter(); + +=head1 DESCRIPTION + +This class defines the OpenSLX API to the config database (the data layer to +the outside world). + +The ConfigDB interface contains of five different parts: + +=over + +=item - L (connection handling) + +=item - L (getting data) + +=item - L (adding, removing and changing data) + +=item - L (getting info about the resulting +configurations after mixing individual client-, group- and system- +configurations). + +=item - L (useful helpers) + +=back + +=head1 Special Concepts + +=over + +=item C + +A filter is a hash-ref defining the filter criteria to be applied to a database +query. Each key of the filter corresponds to a DB column and the (hash-)value +contains the respective column value. + +[At a later stage, this will be improved to support a more structured approach +to filtering (with boolean operators and hierarchical expressions)]. + +=back + +=cut + +my @supportExports = qw( + mergeAttributes pushAttributes + externalIDForSystem externalIDForClient externalConfigNameForClient + generatePlaceholderFor +); + +@EXPORT_OK = (@supportExports); +%EXPORT_TAGS = ('support' => [@supportExports],); + +use OpenSLX::AttributeRoster; +use OpenSLX::Basics; +use OpenSLX::DBSchema; +use OpenSLX::OSPlugin::Roster; +use OpenSLX::Utils; + +=head1 Methods + +=head2 Basic Methods + +=over + +=cut + +=item C + +Returns an object representing a database handle to the config database. + +=cut + +sub new +{ + my $class = shift; + + my $self = { + 'db-schema' => OpenSLX::DBSchema->new, + }; + + return bless $self, $class; +} + +=item C + +Tries to establish a connection to the database specified via the db-... +settings. +The global configuration hash C<%openslxConfig> contains further info about the +requested connection. When implementing this method, you may have to look at +the following entries in order to find out which database to connect to: + +=over + +=item C<$openslxConfig{'db-spec'}> + +Full specification of database, a special string defining the +precise database to connect to (this allows connecting to a database +that requires specifications which aren't cared for by the existing +C<%config>-entries). + +=item C<$openslxConfig{'db-name'}> + +The precise name of the database that should be connected (defaults to 'openslx'). + +=back + +=cut + +sub connect ## no critic (ProhibitBuiltinHomonyms) +{ + my $self = shift; + my $dbParams = shift; # hash-ref with any additional info that might be + # required by specific metadb-module (not used yet) + + my $dbType = $openslxConfig{'db-type'}; + # name of underlying database module... + + my $dbModuleName = "OpenSLX/MetaDB/$dbType.pm"; + my $dbModule = "OpenSLX::MetaDB::$dbType"; + unless (eval { require $dbModuleName } ) { + if ($! == 2) { + die _tr( + "Unable to load DB-module <%s>\nthat database type is not supported (yet?)\n", + $dbModuleName + ); + } else { + die _tr("Unable to load DB-module <%s> (%s)\n", $dbModuleName, $@); + } + } + my $metaDB = $dbModule->new(); + if (!$metaDB->connect($dbParams)) { + warn _tr("Unable to connect to DB-module <%s>\n%s", $dbModuleName, $@); + warn _tr("These DB-modules seem to work ok:"); + foreach my $dbMod ('mysql', 'SQLite') { + my $fullDbModName = "DBD/$dbMod.pm"; + if (eval { require $fullDbModName }) { + vlog(0, "\t$dbMod\n"); + } + } + die _tr( + 'Please use slxsettings if you want to switch to another db-type.' + ); + } + + $self->{'db-type'} = $dbType; + $self->{'meta-db'} = $metaDB; + + $self->{'db-schema'}->checkAndUpgradeDBSchemaIfNecessary($self) + or die _tr('unable to check/update DB schema!'); + + # check if any attributes or plugins have been added/removed since + # last DB-session and bring the DB up-to-date, if so + my $pluginInfoHashVal + = OpenSLX::AttributeRoster->computeMD5HashOverAllAttrs(); + my $pluginInfoHashValInDB = $metaDB->schemaFetchPluginInfoHashVal() || ''; + vlog(1, "plugin-info-hashes: $pluginInfoHashVal <=> $pluginInfoHashValInDB"); + if ($pluginInfoHashValInDB ne $pluginInfoHashVal) { + $self->cleanupAnyInconsistencies(); + return if !$metaDB->schemaSetPluginInfoHashVal($pluginInfoHashVal); + } + + return 1; +} + +=item C + +Tears down the connection to the database and cleans up. + +=cut + +sub disconnect +{ + my $self = shift; + + $self->{'meta-db'}->disconnect(); + + return 1; +} + +=item C + +Opens a database transaction - most useful if you want to make sure a couple of +changes apply as a whole or not at all. + +=cut + +sub startTransaction +{ + my $self = shift; + + $self->{'meta-db'}->startTransaction(); + + return 1; +} + +=item C + +Commits a database transaction - so all changes done inside of this transaction +will be applied to the database. + +=cut + +sub commitTransaction +{ + my $self = shift; + + $self->{'meta-db'}->commitTransaction(); + + return 1; +} + +=item C + +Revokes a database transaction - so all changes done inside of this transaction +will be undone. + +=cut + +sub rollbackTransaction +{ + my $self = shift; + + $self->{'meta-db'}->rollbackTransaction(); + + return 1; +} + +=item C + +Looks for any inconsistencies (stale references, references to non-existing +plugins, ...) and removes them from the DB. + +=cut + +sub cleanupAnyInconsistencies +{ + my $self = shift; + + $self->synchronizeAttributesWithDB(); + + return if !$self->_removeStaleSystemAttributes(); + return if !$self->_removeStaleGroupAttributes(); + return if !$self->_removeStaleClientAttributes(); + return if !$self->_removeStaleVendorOSAttributes(); + + return 1; +} + +=item C + +Makes sure that all known attributes are referenced by the default system +(and no unknown ones). + +Additionally, all systems, groups and clients can be checked and get their +stale attributes removed, too. + +=cut + +sub synchronizeAttributesWithDB +{ + my $self = shift; + + my $defaultSystem = $self->fetchSystemByID(0); + return if !$defaultSystem; + + # fetch all known attributes from attribute roster and merge these + # into the existing attributes of the default system and client + my $attrInfo = OpenSLX::AttributeRoster->getAttrInfo(); + + # add new system attributes to default system + my @newSystemAttrs + = grep { + $attrInfo->{$_}->{applies_to_systems} + && !exists $defaultSystem->{attrs}->{$_} + } keys %{$attrInfo}; + foreach my $attr (@newSystemAttrs) { + $defaultSystem->{attrs}->{$attr} = $attrInfo->{$attr}->{default}; + } + + # remove unknown system attributes from default system + my @unknownSystemAttrs + = grep { + !exists $attrInfo->{$_} + || !$attrInfo->{$_}->{applies_to_systems} + } keys %{$defaultSystem->{attrs}}; + foreach my $unknownAttr (@unknownSystemAttrs) { + delete $defaultSystem->{attrs}->{$unknownAttr}; + } + + # now write back the updated default system if necessary + if (@newSystemAttrs || @unknownSystemAttrs) { + return if !$self->changeSystem(0, $defaultSystem); + } + + my $defaultClient = $self->fetchClientByID(0); + return if !$defaultClient; + + # add new client attributes to default client (deal only with + # attributes that are client-only) + my @newClientAttrs + = grep { + $attrInfo->{$_}->{applies_to_clients} + && !$attrInfo->{$_}->{applies_to_systems} + && !exists $defaultClient->{attrs}->{$_} + } keys %{$attrInfo}; + foreach my $attr (@newClientAttrs) { + $defaultClient->{attrs}->{$attr} = $attrInfo->{$attr}->{default}; + } + + # remove unknown client attributes from default client (deal only with + # attributes that are client-only) + my @unknownClientAttrs + = grep { + !exists $attrInfo->{$_} + || !$attrInfo->{$_}->{applies_to_clients} + || $attrInfo->{$_}->{applies_to_systems} + } keys %{$defaultClient->{attrs}}; + foreach my $unknownAttr (@unknownClientAttrs) { + delete $defaultClient->{attrs}->{$unknownAttr}; + } + + # now write back the updated default client if necessary + if (@newClientAttrs || @unknownClientAttrs) { + return if !$self->changeClient(0, $defaultClient); + } + + return 1; +} + +=item C<_removeStaleSystemAttributes()> + +Removes any stale attributes from every system. + +=cut + +sub _removeStaleSystemAttributes +{ + my $self = shift; + + my $attrInfo = OpenSLX::AttributeRoster->getAttrInfo(); + + my @systems = $self->fetchSystemByFilter(); + foreach my $system (@systems) { + my @unknownAttrs + = grep { !exists $attrInfo->{$_} } keys %{$system->{attrs}}; + if (@unknownAttrs) { + foreach my $unknownAttr (@unknownAttrs) { + delete $system->{attrs}->{$unknownAttr}; + } + return if !$self->changeSystem($system->{id}, $system); + } + } + + return 1; +} + +=item C<_removeStaleGroupAttributes()> + +Removes any stale attributes from every group. + +=cut + +sub _removeStaleGroupAttributes +{ + my $self = shift; + + my $attrInfo = OpenSLX::AttributeRoster->getAttrInfo(); + + my @groups = $self->fetchGroupByFilter(); + foreach my $group (@groups) { + my @unknownAttrs + = grep { !exists $attrInfo->{$_} } keys %{$group->{attrs}}; + if (@unknownAttrs) { + foreach my $unknownAttr (@unknownAttrs) { + delete $group->{attrs}->{$unknownAttr}; + } + return if !$self->changeGroup($group->{id}, $group); + } + } + + return 1; +} + +=item C<_removeStaleClientAttributes()> + +Removes any stale attributes from every client. + +=cut + +sub _removeStaleClientAttributes +{ + my $self = shift; + + my $attrInfo = OpenSLX::AttributeRoster->getAttrInfo(); + + my @clients = $self->fetchClientByFilter(); + foreach my $client (@clients) { + my @unknownAttrs + = grep { !exists $attrInfo->{$_} } keys %{$client->{attrs}}; + if (@unknownAttrs) { + foreach my $unknownAttr (@unknownAttrs) { + delete $client->{attrs}->{$unknownAttr}; + } + return if !$self->changeClient($client->{id}, $client); + } + } + + return 1; +} + +=item C<_removeStaleVendorOSAttributes()> + +Removes any stale attributes from every vendor-OS. + +=cut + +sub _removeStaleVendorOSAttributes +{ + my $self = shift; + + my @vendorOSes = $self->fetchVendorOSByFilter(); + foreach my $vendorOS (@vendorOSes) { + my @installedPlugins = $self->fetchInstalledPlugins($vendorOS->{id}); + foreach my $plugin (@installedPlugins) { + my $pluginName = $plugin->{plugin_name}; + my $attrInfo + = OpenSLX::OSPlugin::Roster->getPluginAttrInfo($pluginName); + if ($attrInfo) { + my @unknownAttrs + = grep { !exists $attrInfo->{$_} } keys %{$plugin->{attrs}}; + if (@unknownAttrs) { + foreach my $unknownAttr (@unknownAttrs) { + delete $plugin->{attrs}->{$unknownAttr}; + } + return if !$self->addInstalledPlugin( + $vendorOS->{id}, $pluginName, $plugin->{attrs} + ); + } + } + else { + $self->removeInstalledPlugin($vendorOS->{id}, $pluginName); + } + } + } + + return 1; +} + +=back + +=head2 Data Access Methods + +=over + +=cut + +=item C + +Returns the names of the columns of the given table. + +=over + +=item Param C + +The name of the DB-table whose columns you'd like to retrieve. + +=item Return Value + +An array of column names. + +=back + +=cut + +sub getColumnsOfTable +{ + my $self = shift; + my $tableName = shift; + + return $self->{'db-schema'}->getColumnsOfTable($tableName); +} + +=item C + +Fetches and returns information about all vendor-OSes that match the given +filter. + +=over + +=item Param C + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchVendorOSByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + + my @vendorOS + = $self->{'meta-db'}->fetchVendorOSByFilter($filter, $resultCols); + + return wantarray() ? @vendorOS : shift @vendorOS; +} + +=item C + +Fetches and returns information the vendor-OSes with the given IDs. + +=over + +=item Param C + +An array of the vendor-OS-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchVendorOSByID +{ + my $self = shift; + my $ids = _aref(shift); + my $resultCols = shift; + + my @vendorOS = $self->{'meta-db'}->fetchVendorOSByID($ids, $resultCols); + + return wantarray() ? @vendorOS : shift @vendorOS; +} + +=item C + +Returns the names of all plugins that have been installed into the given +vendor-OS. + +=over + +=item Param C + +The id of the vendor-OS whose plugins you are interested in + +=item Param C [Optional] + +The name of a specific plugin you are interested in + +=item Return Value + +An array with the plugin names. + +=back + +=cut + +sub fetchInstalledPlugins +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + $self->{'meta-db'}->fetchInstalledPlugins($vendorOSID, $pluginName); +} + +=item C + +Fetches and returns information about all exports that match the given +filter. + +=over + +=item Param C + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchExportByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + + my @exports = $self->{'meta-db'}->fetchExportByFilter($filter, $resultCols); + + return wantarray() ? @exports : shift @exports; +} + +=item C + +Fetches and returns information the exports with the given IDs. + +=over + +=item Param C + +An array of the export-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchExportByID +{ + my $self = shift; + my $ids = _aref(shift); + my $resultCols = shift; + + my @exports = $self->{'meta-db'}->fetchExportByID($ids, $resultCols); + + return wantarray() ? @exports : shift @exports; +} + +=item C + +Fetches the IDs of all exports that make use of the vendor-OS with the given ID. + +=over + +=item Param C + +ID of the vendor-OS whose exports shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=cut + +sub fetchExportIDsOfVendorOS +{ + my $self = shift; + my $vendorOSID = shift; + + return $self->{'meta-db'}->fetchExportIDsOfVendorOS($vendorOSID); +} + +=item C + +Fetches the global info element specified by the given ID. + +=over + +=item Param C + +The name of the global info value you are interested in. + +=item Return Value + +The value of the requested global info. + +=back + +=cut + +sub fetchGlobalInfo +{ + my $self = shift; + my $id = shift; + + return $self->{'meta-db'}->fetchGlobalInfo($id); +} + +=item C + +Fetches and returns information about all systems that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Param C<$attrFilter> [Optional] + +A hash-ref containing the filter criteria that shall be applied against +attributes. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchSystemByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + my @systems = $self->{'meta-db'}->fetchSystemByFilter( + $filter, $resultCols, $attrFilter + ); + + # unless specific result cols have been given, we mix in the attributes + # of each system, too: + if (!defined $resultCols) { + foreach my $system (@systems) { + $system->{attrs} + = $self->{'meta-db'}->fetchSystemAttrs($system->{id}); + } + } + + return wantarray() ? @systems : shift @systems; +} + +=item C + +Fetches and returns information the systems with the given IDs. + +=over + +=item Param C + +An array of the system-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchSystemByID +{ + my $self = shift; + my $ids = _aref(shift); + my $resultCols = shift; + + my @systems = $self->{'meta-db'}->fetchSystemByID($ids, $resultCols); + + # unless specific result cols have been given, we mix in the attributes + # of each system, too: + if (!defined $resultCols) { + foreach my $system (@systems) { + $system->{attrs} + = $self->{'meta-db'}->fetchSystemAttrs($system->{id}); + } + } + + return wantarray() ? @systems : shift @systems; +} + +=item C + +Fetches the IDs of all systems that make use of the export with the given ID. + +=over + +=item Param C + +ID of the export whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=cut + +sub fetchSystemIDsOfExport +{ + my $self = shift; + my $exportID = shift; + + return $self->{'meta-db'}->fetchSystemIDsOfExport($exportID); +} + +=item C + +Fetches the IDs of all systems that are used by the client with the given +ID. + +=over + +=item Param C + +ID of the client whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=cut + +sub fetchSystemIDsOfClient +{ + my $self = shift; + my $clientID = shift; + + return $self->{'meta-db'}->fetchSystemIDsOfClient($clientID); +} + +=item C + +Fetches the IDs of all systems that are part of the group with the given +ID. + +=over + +=item Param C + +ID of the group whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=cut + +sub fetchSystemIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + + return $self->{'meta-db'}->fetchSystemIDsOfGroup($groupID); +} + +=item C + +Fetches and returns information about all clients that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchClientByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + my @clients = $self->{'meta-db'}->fetchClientByFilter( + $filter, $resultCols, $attrFilter + ); + + # unless specific result cols have been given, we mix in the attributes + # of each client, too: + if (!defined $resultCols) { + foreach my $client (@clients) { + $client->{attrs} + = $self->{'meta-db'}->fetchClientAttrs($client->{id}); + } + } + + return wantarray() ? @clients : shift @clients; +} + +=item C + +Fetches and returns information the clients with the given IDs. + +=over + +=item Param C + +An array of the client-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchClientByID +{ + my $self = shift; + my $ids = _aref(shift); + my $resultCols = shift; + + my @clients = $self->{'meta-db'}->fetchClientByID($ids, $resultCols); + + # unless specific result cols have been given, we mix in the attributes + # of each client, too: + if (!defined $resultCols) { + foreach my $client (@clients) { + $client->{attrs} + = $self->{'meta-db'}->fetchClientAttrs($client->{id}); + } + } + + return wantarray() ? @clients : shift @clients; +} + +=item C + +Fetches the IDs of all clients that make use of the system with the given +ID. + +=over + +=item Param C + +ID of the system whose clients shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + +=cut + +sub fetchClientIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + + return $self->{'meta-db'}->fetchClientIDsOfSystem($systemID); +} + +=item C + +Fetches the IDs of all clients that are part of the group with the given +ID. + +=over + +=item Param C + +ID of the group whose clients shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + +=cut + +sub fetchClientIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + + return $self->{'meta-db'}->fetchClientIDsOfGroup($groupID); +} + +=item C + +Fetches and returns information about all groups that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchGroupByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + my @groups = $self->{'meta-db'}->fetchGroupByFilter( + $filter, $resultCols, $attrFilter + ); + + # unless specific result cols have been given, we mix in the attributes + # of each group, too: + if (!defined $resultCols) { + foreach my $group (@groups) { + $group->{attrs} + = $self->{'meta-db'}->fetchGroupAttrs($group->{id}); + } + } + + return wantarray() ? @groups : shift @groups; +} + +=item C + +Fetches and returns information the groups with the given IDs. + +=over + +=item Param C + +An array of the group-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=cut + +sub fetchGroupByID +{ + my $self = shift; + my $ids = _aref(shift); + my $resultCols = shift; + + my @groups = $self->{'meta-db'}->fetchGroupByID($ids, $resultCols); + + # unless specific result cols have been given, we mix in the attributes + # of each group, too: + if (!defined $resultCols) { + foreach my $group (@groups) { + $group->{attrs} + = $self->{'meta-db'}->fetchGroupAttrs($group->{id}); + } + } + + return wantarray() ? @groups : shift @groups; +} + +=item C + +Fetches the IDs of all groups that contain the system with the given +ID. + +=over + +=item Param C + +ID of the system whose groups shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + +=cut + +sub fetchGroupIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + + return $self->{'meta-db'}->fetchGroupIDsOfSystem($systemID); +} + +=item C + +Fetches the IDs of all groups that contain the client with the given +ID. + +=over + +=item Param C + +ID of the client whose groups shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + +=cut + +sub fetchGroupIDsOfClient +{ + my $self = shift; + my $clientID = shift; + + return $self->{'meta-db'}->fetchGroupIDsOfClient($clientID); +} + +=back + +=head2 Data Manipulation Methods + +=over + +=item C + +Adds one or more vendor-OS to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new vendor-OS(es). + +=item Return Value + +The IDs of the new vendor-OS(es), C if the creation failed. + +=back + +=cut + +sub addVendorOS +{ + my $self = shift; + my $valRows = _aref(shift); + + _checkCols($valRows, 'vendor_os', 'name'); + + my @IDs = $self->{'meta-db'}->addVendorOS($valRows); + return wantarray() ? @IDs : $IDs[0]; +} + +=item C + +Removes one or more vendor-OS from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the vendor-OSes that shall be removed. + +=item Return Value + +C<1> if the vendorOS(es) could be removed, C if not. + +=back + +=cut + +sub removeVendorOS +{ + my $self = shift; + my $vendorOSIDs = _aref(shift); + + # drop all installed plugins before removing the vendor-OS + foreach my $vendorOSID (@$vendorOSIDs) { + my @installedPlugins + = $self->{'meta-db'}->fetchInstalledPlugins($vendorOSID); + foreach my $plugin (@installedPlugins) { + my $pluginName = $plugin->{plugin_name}; + $self->{'meta-db'}->removeInstalledPlugin($vendorOSID, $pluginName); + } + } + return $self->{'meta-db'}->removeVendorOS($vendorOSIDs); +} + +=item C + +Changes the data of one or more vendor-OS. + +=over + +=item Param C + +An array-ref containing the IDs of the vendor-OSes that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the vendor-OS(es). + +=item Return Value + +C<1> if the vendorOS(es) could be changed, C if not. + +=back + +=cut + +sub changeVendorOS +{ + my $self = shift; + my $vendorOSIDs = _aref(shift); + my $valRows = _aref(shift); + + return $self->{'meta-db'}->changeVendorOS($vendorOSIDs, $valRows); +} + +=item C + +Adds a freshly installed plugin to a vendor-OS. + +=over + +=item Param C + +The id of the vendor-OS the given plugin has been installed into + +=item Param C + +The name of the plugin that has been installed + +=item Return Value + +The ID of the new reference entry, C if the creation failed. + +=back + +=cut + +sub addInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + my $pluginAttrs = shift || {}; + + return $self->{'meta-db'}->addInstalledPlugin( + $vendorOSID, $pluginName, $pluginAttrs + ); +} + +=item C + +Removes a uninstalled plugin for a vendor-OS. + +=over + +=item Param C + +The id of the vendor-OS the given plugin has been uninstalled from + +=item Param C + +The name of the plugin that has been uninstalled + +=item Return Value + +1 if it worked, C if it didn't. + +=back + +=cut + +sub removeInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + return $self->{'meta-db'}->removeInstalledPlugin($vendorOSID, $pluginName); +} + +=item C + +Adds one or more export to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new export(s). + +=item Return Value + +The IDs of the new export(s), C if the creation failed. + +=back + +=cut + +sub addExport +{ + my $self = shift; + my $valRows = _aref(shift); + + _checkCols($valRows, 'export', qw(name vendor_os_id type)); + + my @IDs = $self->{'meta-db'}->addExport($valRows); + return wantarray() ? @IDs : $IDs[0]; +} + +=item C + +Removes one or more export from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the exports that shall be removed. + +=item Return Value + +C<1> if the export(s) could be removed, C if not. + +=back + +=cut + +sub removeExport +{ + my $self = shift; + my $exportIDs = _aref(shift); + + return $self->{'meta-db'}->removeExport($exportIDs); +} + +=item C + +Changes the data of one or more export. + +=over + +=item Param C + +An array-ref containing the IDs of the exports that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the export(s). + +=item Return Value + +C<1> if the export(s) could be changed, C if not. + +=back + +=cut + +sub changeExport +{ + my $self = shift; + my $exportIDs = _aref(shift); + my $valRows = _aref(shift); + + return $self->{'meta-db'}->changeExport($exportIDs, $valRows); +} + +=item C + +Increments the global counter of the given name and returns the *old* value. + +=over + +=item Param C + +The name of the global counter that shall be bumped. + +=item Return Value + +The value the global counter had before it was incremented. + +=back + +=cut + +sub incrementGlobalCounter +{ + my $self = shift; + my $counterName = shift; + + $self->startTransaction(); + my $value = $self->fetchGlobalInfo($counterName); + return unless defined $value; + my $newValue = $value + 1; + $self->changeGlobalInfo($counterName, $newValue); + $self->commitTransaction(); + + return $value; +} + +=item C + +Sets the global info element specified by the given ID to the given value. + +=over + +=item Param C + +The ID specifying the global info you'd like to change. + +=item Param C + +The new value for the global info element. + +=item Return Value + +The value the global counter had before it was incremented. + +=back + +=cut + +sub changeGlobalInfo +{ + my $self = shift; + my $id = shift; + my $value = shift; + + return if !defined $self->{'meta-db'}->fetchGlobalInfo($id); + + return $self->{'meta-db'}->changeGlobalInfo($id, $value); +} + +=item C + +Adds one or more systems to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new system(s). + +=item Return Value + +The IDs of the new system(s), C if the creation failed. + +=back + +=cut + +sub addSystem +{ + my $self = shift; + my $inValRows = _aref(shift); + + _checkCols($inValRows, 'system', qw(name export_id)); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + foreach my $valRow (@$valRows) { + if (!$valRow->{kernel}) { + $valRow->{kernel} = 'vmlinuz'; + vlog( + 1, + _tr( + "setting kernel of system '%s' to 'vmlinuz'!", + $valRow->{name} + ) + ); + } + if (!$valRow->{label}) { + $valRow->{label} = $valRow->{name}; + } + } + + my @IDs = $self->{'meta-db'}->addSystem($valRows, $attrValRows); + return wantarray() ? @IDs : $IDs[0]; +} + +=item C + +Removes one or more systems from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the systems that shall be removed. + +=item Return Value + +C<1> if the system(s) could be removed, C if not. + +=back + +=cut + +sub removeSystem +{ + my $self = shift; + my $systemIDs = _aref(shift); + + foreach my $system (@$systemIDs) { + $self->setGroupIDsOfSystem($system); + $self->setClientIDsOfSystem($system); + } + + return $self->{'meta-db'}->removeSystem($systemIDs); +} + +=item C + +Changes the data of one or more systems. + +=over + +=item Param C + +An array-ref containing the IDs of the systems that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the system(s). + +=item Return Value + +C<1> if the system(s) could be changed, C if not. + +=back + +=cut + +sub changeSystem +{ + my $self = shift; + my $systemIDs = _aref(shift); + my $inValRows = _aref(shift); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + return $self->{'meta-db'}->changeSystem($systemIDs, $valRows, $attrValRows); +} + +#=item C +# +#Sets a value for an attribute of the given system. If the system already +#has a value for this attribute, it will be overwritten. +# +#=over +# +#=item Param C +# +#The ID of the system whose attribute shall be changed. +# +#=item Param C +# +#The name of the attribute to change. +# +#=item Param C +# +#The new value for the attribute. +# +#=item Return Value +# +#C<1> if the attribute could be set, C if not. +# +#=back +# +#=cut +# +#sub setSystemAttr +#{ +# my $self = shift; +# my $systemID = shift; +# my $attrName = shift; +# my $attrValue = shift; +# +# return $self->{'meta-db'}->setSystemAttr($systemID, $attrName, $attrValue); +#} + +=item C + +Specifies all clients that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system whose clients you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the clients that shall be connected to the +system. + +=item Return Value + +C<1> if the system/client references could be set, C if not. + +=back + +=cut + +sub setClientIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + my $clientIDs = _aref(shift); + + # associating a client to the default system makes no sense + return 0 if $systemID == 0; + + my @uniqueClientIDs = _unique(@$clientIDs); + + return $self->{'meta-db'}->setClientIDsOfSystem( + $systemID, \@uniqueClientIDs + ); +} + +=item C + +Add one or more clients to the set that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system that you wish to add the clients to. + +=item Param C + +An array-ref containing the IDs of the new clients that shall be added to the +system. + +=item Return Value + +C<1> if the system/client references could be set, C if not. + +=back + +=cut + +sub addClientIDsToSystem +{ + my $self = shift; + my $systemID = shift; + my $newClientIDs = _aref(shift); + + my @clientIDs = $self->{'meta-db'}->fetchClientIDsOfSystem($systemID); + push @clientIDs, @$newClientIDs; + + return $self->setClientIDsOfSystem($systemID, \@clientIDs); +} + +=item C + +Removes the connection between the given clients and the given system. + +=over + +=item Param C + +The ID of the system you'd like to remove groups from. + +=item Param C + +An array-ref containing the IDs of the clients that shall be removed from the +system. + +=item Return Value + +C<1> if the system/client references could be set, C if not. + +=back + +=cut + +sub removeClientIDsFromSystem +{ + my $self = shift; + my $systemID = shift; + my $removedClientIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$removedClientIDs} = (); + my @clientIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchClientIDsOfSystem($systemID); + + return $self->setClientIDsOfSystem($systemID, \@clientIDs); +} + +=item C + +Specifies all groups that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system whose groups you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the groups that shall be connected to the +system. + +=item Return Value + +C<1> if the system/group references could be set, C if not. + +=back + +=cut + +sub setGroupIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + my $groupIDs = _aref(shift); + + # associating a group to the default system makes no sense + return 0 if $systemID == 0; + + my @uniqueGroupIDs = _unique(@$groupIDs); + + return $self->{'meta-db'}->setGroupIDsOfSystem($systemID, \@uniqueGroupIDs); +} + +=item C + +Add one or more groups to the set that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system that you wish to add the groups to. + +=item Param C + +An array-ref containing the IDs of the new groups that shall be added to the +system. + +=item Return Value + +C<1> if the system/group references could be set, C if not. + +=back + +=cut + +sub addGroupIDsToSystem +{ + my $self = shift; + my $systemID = shift; + my $newGroupIDs = _aref(shift); + + my @groupIDs = $self->{'meta-db'}->fetchGroupIDsOfSystem($systemID); + push @groupIDs, @$newGroupIDs; + + return $self->setGroupIDsOfSystem($systemID, \@groupIDs); +} + +=item C + +Removes the connection between the given groups and the given system. + +=over + +=item Param C + +The ID of the system you'd like to remove groups from. + +=item Param C + +An array-ref containing the IDs of the groups that shall be removed from the +system. + +=item Return Value + +C<1> if the system/group references could be set, C if not. + +=back + +=cut + +sub removeGroupIDsFromSystem +{ + my $self = shift; + my $systemID = shift; + my $toBeRemovedGroupIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$toBeRemovedGroupIDs} = (); + my @groupIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchGroupIDsOfSystem($systemID); + + return $self->setGroupIDsOfSystem($systemID, \@groupIDs); +} + +=item C + +Adds one or more clients to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new client(s). + +=item Return Value + +The IDs of the new client(s), C if the creation failed. + +=back + +=cut + +sub addClient +{ + my $self = shift; + my $inValRows = _aref(shift); + + _checkCols($inValRows, 'client', qw(name mac)); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + my @IDs = $self->{'meta-db'}->addClient($valRows, $attrValRows); + return wantarray() ? @IDs : $IDs[0]; +} + +=item C + +Removes one or more clients from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the clients that shall be removed. + +=item Return Value + +C<1> if the client(s) could be removed, C if not. + +=back + +=cut + +sub removeClient +{ + my $self = shift; + my $clientIDs = _aref(shift); + + foreach my $client (@$clientIDs) { + $self->setGroupIDsOfClient($client); + $self->setSystemIDsOfClient($client); + } + + return $self->{'meta-db'}->removeClient($clientIDs); +} + +=item C + +Changes the data of one or more clients. + +=over + +=item Param C + +An array-ref containing the IDs of the clients that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the client(s). + +=item Return Value + +C<1> if the client(s) could be changed, C if not. + +=back + +=cut + +sub changeClient +{ + my $self = shift; + my $clientIDs = _aref(shift); + my $inValRows = _aref(shift); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + return $self->{'meta-db'}->changeClient($clientIDs, $valRows, $attrValRows); +} + +#=item C +# +#Sets a value for an attribute of the given client. If the client already +#has a value for this attribute, it will be overwritten. +# +#=over +# +#=item Param C +# +#The ID of the client whose attribute shall be changed. +# +#=item Param C +# +#The name of the attribute to change. +# +#=item Param C +# +#The new value for the attribute. +# +#=item Return Value +# +#C<1> if the attribute could be set, C if not. +# +#=back +# +#=cut +# +#sub setClientAttr +#{ +# my $self = shift; +# my $clientID = shift; +# my $attrName = shift; +# my $attrValue = shift; +# +# return $self->{'meta-db'}->setClientAttr($clientID, $attrName, $attrValue); +#} + +=item C + +Specifies all systems that should be offered for booting by the given client. + +=over + +=item Param C + +The ID of the client whose systems you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the systems that shall be connected to the +client. + +=item Return Value + +C<1> if the client/system references could be set, C if not. + +=back + +=cut + +sub setSystemIDsOfClient +{ + my $self = shift; + my $clientID = shift; + my $systemIDs = _aref(shift); + + # filter out the default system, as no client should be associated to it + my @uniqueSystemIDs = grep { $_ > 0; } _unique(@$systemIDs); + + return $self->{'meta-db'}->setSystemIDsOfClient( + $clientID, \@uniqueSystemIDs + ); +} + +=item C + +Adds some systems to the set that should be offered for booting by the given client. + +=over + +=item Param C + +The ID of the client to which you'd like to add systems to. + +=item Param C + +An array-ref containing the IDs of the new systems that shall be added to the +client. + +=item Return Value + +C<1> if the client/system references could be set, C if not. + +=back + +=cut + +sub addSystemIDsToClient +{ + my $self = shift; + my $clientID = shift; + my $newSystemIDs = _aref(shift); + + my @systemIDs = $self->{'meta-db'}->fetchSystemIDsOfClient($clientID); + push @systemIDs, @$newSystemIDs; + + return $self->setSystemIDsOfClient($clientID, \@systemIDs); +} + +=item C + +Removes some systems from the set that should be offered for booting by the given client. + +=over + +=item Param C + +The ID of the client to which you'd like to remove systems from. + +=item Param C + +An array-ref containing the IDs of the systems that shall be removed from the +client. + +=item Return Value + +C<1> if the client/system references could be set, C if not. + +=back + +=cut + +sub removeSystemIDsFromClient +{ + my $self = shift; + my $clientID = shift; + my $removedSystemIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$removedSystemIDs} = (); + my @systemIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchSystemIDsOfClient($clientID); + + return $self->setSystemIDsOfClient($clientID, \@systemIDs); +} + +=item C + +Specifies all groups that the given client shall be part of. + +=over + +=item Param C + +The ID of the client whose groups you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the groups that the client should be part of. + +=item Return Value + +C<1> if the client/group references could be set, C if not. + +=back + +=cut + +sub setGroupIDsOfClient +{ + my $self = shift; + my $clientID = shift; + my $groupIDs = _aref(shift); + + my @uniqueGroupIDs = _unique(@$groupIDs); + + return $self->{'meta-db'}->setGroupIDsOfClient($clientID, \@uniqueGroupIDs); +} + +=item C + +Adds the given client to the given groups. + +=over + +=item Param C + +The ID of the client that you'd like to add to the given groups. + +=item Param C + +An array-ref containing the IDs of the groups that shall be added to the +client. + +=item Return Value + +C<1> if the client/group references could be set, C if not. + +=back + +=cut + +sub addGroupIDsToClient +{ + my $self = shift; + my $clientID = shift; + my $newGroupIDs = _aref(shift); + + my @groupIDs = $self->{'meta-db'}->fetchGroupIDsOfClient($clientID); + push @groupIDs, @$newGroupIDs; + + return $self->setGroupIDsOfClient($clientID, \@groupIDs); +} + +=item C + +Removes the given client from the given groups. + +=over + +=item Param C + +The ID of the client that you'd like to remove from the given groups. + +=item Param C + +An array-ref containing the IDs of the groups that shall be removed from the +client. + +=item Return Value + +C<1> if the client/group references could be set, C if not. + +=back + +=cut + +sub removeGroupIDsFromClient +{ + my $self = shift; + my $clientID = shift; + my $toBeRemovedGroupIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$toBeRemovedGroupIDs} = (); + my @groupIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchGroupIDsOfClient($clientID); + + return $self->setGroupIDsOfClient($clientID, \@groupIDs); +} + +=item C + +Adds one or more groups to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new group(s). + +=item Return Value + +The IDs of the new group(s), C if the creation failed. + +=back + +=cut + +sub addGroup +{ + my $self = shift; + my $inValRows = _aref(shift); + + _checkCols($inValRows, 'group', qw(name)); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + foreach my $valRow (@$valRows) { + if (!defined $valRow->{priority}) { + $valRow->{priority} = '50'; + } + } + my @IDs = $self->{'meta-db'}->addGroup($valRows, $attrValRows); + return wantarray() ? @IDs : $IDs[0]; +} + +=item C + +Removes one or more groups from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the groups that shall be removed. + +=item Return Value + +C<1> if the group(s) could be removed, C if not. + +=back + +=cut + +sub removeGroup +{ + my $self = shift; + my $groupIDs = _aref(shift); + + foreach my $group (@$groupIDs) { + $self->setSystemIDsOfGroup($group, []); + $self->setClientIDsOfGroup($group, []); + } + + return $self->{'meta-db'}->removeGroup($groupIDs); +} + +#=item C +# +#Sets a value for an attribute of the given group. If the group already +#has a value for this attribute, it will be overwritten. +# +#=over +# +#=item Param C +# +#The ID of the group whose attribute shall be changed. +# +#=item Param C +# +#The name of the attribute to change. +# +#=item Param C +# +#The new value for the attribute. +# +#=item Return Value +# +#C<1> if the attribute could be set, C if not. +# +#=back +# +#=cut +# +#sub setGroupAttr +#{ +# my $self = shift; +# my $groupID = shift; +# my $attrName = shift; +# my $attrValue = shift; +# +# return $self->{'meta-db'}->setGroupAttr($groupID, $attrName, $attrValue); +#} + +=item C + +Changes the data of one or more groups. + +=over + +=item Param C + +An array-ref containing the IDs of the groups that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the group(s). + +=item Return Value + +C<1> if the group(s) could be changed, C if not. + +=back + +=cut + +sub changeGroup +{ + my $self = shift; + my $groupIDs = _aref(shift); + my $inValRows = _aref(shift); + + my ($valRows, $attrValRows) = _cloneAndUnhingeAttrs($inValRows); + + return $self->{'meta-db'}->changeGroup($groupIDs, $valRows, $attrValRows); +} + +=item C + +Specifies all clients that should be part of the given group. + +=over + +=item Param C + +The ID of the group whose clients you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the clients that shall be part of the group. + +=item Return Value + +C<1> if the group/client references could be set, C if not. + +=back + +=cut + +sub setClientIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + my $clientIDs = _aref(shift); + + my @uniqueClientIDs = _unique(@$clientIDs); + + return $self->{'meta-db'}->setClientIDsOfGroup($groupID, \@uniqueClientIDs); +} + +=item C + +Add some clients to the given group. + +=over + +=item Param C + +The ID of the group to which you'd like to add clients. + +=item Param C + +An array-ref containing the IDs of the clients that shall be added. + +=item Return Value + +C<1> if the group/client references could be set, C if not. + +=back + +=cut + +sub addClientIDsToGroup +{ + my $self = shift; + my $groupID = shift; + my $newClientIDs = _aref(shift); + + my @clientIDs = $self->{'meta-db'}->fetchClientIDsOfGroup($groupID); + push @clientIDs, @$newClientIDs; + + return $self->setClientIDsOfGroup($groupID, \@clientIDs); +} + +=item C + +Remove some clients from the given group. + +=over + +=item Param C + +The ID of the group from which you'd like to remove clients. + +=item Param C + +An array-ref containing the IDs of the clients that shall be removed. + +=item Return Value + +C<1> if the group/client references could be set, C if not. + +=back + +=cut + +sub removeClientIDsFromGroup +{ + my $self = shift; + my $groupID = shift; + my $removedClientIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$removedClientIDs} = (); + my @clientIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchClientIDsOfGroup($groupID); + + return $self->setClientIDsOfGroup($groupID, \@clientIDs); +} + +=item C + +Specifies all systems that should be offered for booting by the given group. + +=over + +=item Param C + +The ID of the group whose systems you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the systems that shall be connected to the +group. + +=item Return Value + +C<1> if the group/system references could be set, C if not. + +=back + +=cut + +sub setSystemIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + my $systemIDs = _aref(shift); + + # filter out the default system, as no group should be associated to it + my @uniqueSystemIDs = grep { $_ > 0; } _unique(@$systemIDs); + + return $self->{'meta-db'}->setSystemIDsOfGroup($groupID, \@uniqueSystemIDs); +} + +=item C + +Adds some systems to the set that should be offered for booting by the given group. + +=over + +=item Param C + +The ID of the group to which you'd like to add systems. + +=item Param C + +An array-ref containing the IDs of the systems that shall be added. + +=item Return Value + +C<1> if the group/system references could be set, C if not. + +=back + +=cut + +sub addSystemIDsToGroup +{ + my $self = shift; + my $groupID = shift; + my $newSystemIDs = _aref(shift); + + my @systemIDs = $self->{'meta-db'}->fetchSystemIDsOfGroup($groupID); + push @systemIDs, @$newSystemIDs; + + return $self->setSystemIDsOfGroup($groupID, \@systemIDs); +} + +=item C + +Removes some systems from the set that should be offered for booting by the given group. + +=over + +=item Param C + +The ID of the group from which you'd like to remove systems. + +=item Param C + +An array-ref containing the IDs of the systems that shall be removed. + +=item Return Value + +C<1> if the group/system references could be set, C if not. + +=back + +=cut + +sub removeSystemIDsFromGroup +{ + my $self = shift; + my $groupID = shift; + my $removedSystemIDs = _aref(shift); + + my %toBeRemoved; + @toBeRemoved{@$removedSystemIDs} = (); + my @systemIDs = + grep { !exists $toBeRemoved{$_} } + $self->{'meta-db'}->fetchSystemIDsOfGroup($groupID); + + return $self->setSystemIDsOfGroup($groupID, \@systemIDs); +} + +=item C + +Removes all data from the database - the tables stay, but they will be empty. + +=over + +=item Return Value + +none + +=back + +=cut + +sub emptyDatabase +{ # clears all user-data from the database + my $self = shift; + + my @groupIDs = map { $_->{id} } $self->fetchGroupByFilter(); + $self->removeGroup(\@groupIDs); + + my @clientIDs = map { $_->{id} } + grep { $_->{name} ne '<<>>' } $self->fetchClientByFilter(); + $self->removeClient(\@clientIDs); + + my @sysIDs = map { $_->{id} } + grep { $_->{name} ne '<<>>' } $self->fetchSystemByFilter(); + $self->removeSystem(\@sysIDs); + + my @exportIDs = map { $_->{id} } $self->fetchExportByFilter(); + $self->removeExport(\@exportIDs); + + my @vendorOSIDs = map { $_->{id} } $self->fetchVendorOSByFilter(); + $self->removeVendorOS(\@vendorOSIDs); + + return 1; +} + +=back + +=head2 Data Aggregation Methods + +=over + +=item C + +merges vendor-OS-specific plugin attributes and default system attributes into +the given system hash, and pushes the default client attributes on top of that. + +=over + +=item Param C + +The system whose attributes shall be merged into (completed). + +=item Return Value + +none + +=back + +=cut + +sub mergeDefaultAttributesIntoSystem +{ + my $self = shift; + my $system = shift; + my $installedPlugins = shift; + my $originInfo = shift; + + # merge any attributes found in the plugins that are installed into + # the vendor-OS: + if (ref $installedPlugins eq 'ARRAY' && @$installedPlugins) { + for my $plugin (@$installedPlugins) { + mergeAttributes($system, $plugin, $originInfo, 'vendor-OS'); + } + + # the above will have merged stage1 attributes, too, so we remove + # these from the resulting system (as they do not apply to systems) + my @stage3AttrNames = OpenSLX::AttributeRoster->getStage3Attrs(); + for my $attr (keys %{$system->{attrs}}) { + next if grep { $attr eq $_ } @stage3AttrNames; + delete $system->{attrs}->{$attr}; + } + } + + # merge yet unset stuff from default system + my $defaultSystem = $self->fetchSystemByFilter({name => '<<>>'}); + mergeAttributes($system, $defaultSystem, $originInfo, 'default-system'); + + # finally push the attributes specified for the default client (these + # overrule anything else) + my $defaultClient = $self->fetchClientByFilter({name => '<<>>'}); + pushAttributes($system, $defaultClient, $originInfo, 'default-client'); + + return 1; +} + +=item C + +merges default and group configurations into the given client hash. + +=over + +=item Param C + +The client whose attributes shall be merged into (completed). + +=item Return Value + +none + +=back + +=cut + +sub mergeDefaultAndGroupAttributesIntoClient +{ + my $self = shift; + my $client = shift; + my $originInfo = shift; + + # step over all groups this client belongs to + # (ordered by priority from highest to lowest): + my @groupIDs = _unique( + $self->fetchGroupIDsOfClient(0), + $self->fetchGroupIDsOfClient($client->{id}) + ); + my @groups + = sort { $a->{priority} <=> $b->{priority} } + $self->fetchGroupByID(\@groupIDs); + foreach my $group (@groups) { + # merge configuration from this group into the current client: + vlog( + 3, + _tr('merging from group %d:%s...', $group->{id}, $group->{name}) + ); + mergeAttributes($client, $group, $originInfo, "group '$group->{name}'"); + } + + # merge configuration from default client: + vlog(3, _tr('merging from default client...')); + my $defaultClient = $self->fetchClientByFilter({name => '<<>>'}); + mergeAttributes($client, $defaultClient, $originInfo, 'default-client'); + + return 1; +} + +=item C + +Returns an aggregated list of system-IDs that this client should offer for +booting (as indicated by itself, the default client and the client's groups) + +=over + +=item Param C + +The client whose aggregated systems you're interested in. + +=item Return Value + +A list of unqiue system-IDs. + +=back + +=cut + +sub aggregatedSystemIDsOfClient +{ + my $self = shift; + my $client = shift; + + # add all systems directly linked to client: + my @systemIDs = $self->fetchSystemIDsOfClient($client->{id}); + + # step over all groups this client belongs to: + my @groupIDs = $self->fetchGroupIDsOfClient($client->{id}); + my @groups = $self->fetchGroupByID(\@groupIDs); + foreach my $group (@groups) { + # add all systems that the client inherits from the current group: + push @systemIDs, $self->fetchSystemIDsOfGroup($group->{id}); + } + + # add all systems inherited from default client + my $defaultClient = $self->fetchClientByFilter({name => '<<>>'}); + push @systemIDs, $self->fetchSystemIDsOfClient($defaultClient->{id}); + + return _unique(@systemIDs); +} + +=item C + +Returns an aggregated list of client-IDs that offer this system for +booting (as indicated by itself, the default system and the system's groups) + +=over + +=item Param C + +The system whose aggregated clients you're interested in. + +=item Return Value + +A list of unqiue client-IDs. + +=back + +=cut + +sub aggregatedClientIDsOfSystem +{ + my $self = shift; + my $system = shift; + + # add all clients directly linked to system: + my $defaultClient = $self->fetchClientByFilter({name => '<<>>'}); + my @clientIDs = $self->fetchClientIDsOfSystem($system->{id}); + + if (grep { $_ == $defaultClient->{id}; } @clientIDs) { + # add *all* client-IDs if the system is being referenced by + # the default client, as that means that all clients should offer + # this system for booting: + push( + @clientIDs, + map { $_->{id} } $self->fetchClientByFilter(undef, 'id') + ); + } + + # step over all groups this system belongs to: + my @groupIDs = $self->fetchGroupIDsOfSystem($system->{id}); + my @groups = $self->fetchGroupByID(\@groupIDs); + foreach my $group (@groups) { + # add all clients that the system inherits from the current group: + push @clientIDs, $self->fetchClientIDsOfGroup($group->{id}); + } + + # add all clients inherited from default system + my $defaultSystem = $self->fetchSystemByFilter({name => '<<>>'}); + push @clientIDs, $self->fetchClientIDsOfSystem($defaultSystem->{id}); + + return _unique(@clientIDs); +} + +=item C + +Returns aggregated information about the kernel and initialramfs +this system is using. + +=over + +=item Param C + +The system whose aggregated info you're interested in. + +=item Return Value + +A hash containing detailled info about the vendor-OS and export used by +this system, as well as the specific kernel-file and export-URI being used. + +=back + +=cut + +sub aggregatedSystemFileInfoFor +{ + my $self = shift; + my $system = shift; + + my $info = clone($system); + + my $export = $self->fetchExportByID($system->{export_id}); + if (!defined $export) { + die _tr( + "DB-problem: system '%s' references export with id=%s, but that doesn't exist!", + $system->{name}, $system->{export_id} || '' + ); + } + $info->{'export'} = $export; + + my $vendorOS = $self->fetchVendorOSByID($export->{vendor_os_id}); + if (!defined $vendorOS) { + die _tr( + "DB-problem: export '%s' references vendor-OS with id=%s, but that doesn't exist!", + $export->{name}, $export->{vendor_os_id} || '' + ); + } + $info->{'vendor-os'} = $vendorOS; + + my @installedPlugins = $self->fetchInstalledPlugins($vendorOS->{id}); + $info->{'installed-plugins'} = \@installedPlugins; + + # check if the specified kernel file really exists (follow links while + # checking) and if not, find the newest kernel file that is available. + my $kernelPath + = "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}/boot"; + my $kernelFile = "$kernelPath/$system->{kernel}"; + while (-l $kernelFile) { + $kernelFile = followLink($kernelFile); + } + if (!-e $kernelFile) { + # pick best kernel file available + my $osSetupEngine = instantiateClass("OpenSLX::OSSetup::Engine"); + $osSetupEngine->initialize($vendorOS->{name}, 'none'); + $kernelFile = $osSetupEngine->pickKernelFile($kernelPath); + warn( + _tr( + "setting kernel of system '%s' to '%s'!", + $info->{name}, basename($kernelFile) + ) + ); + } + $info->{'kernel-file'} = $kernelFile; + + # auto-generate export_uri if none has been given + my $exportURI = $export->{'uri'} || ''; + if ($exportURI !~ m[\w]) { + # instantiate OSExport engine and ask it for exportURI + my $osExportEngine = instantiateClass("OpenSLX::OSExport::Engine"); + $osExportEngine->initializeFromExisting($export->{name}); + $exportURI = $osExportEngine->generateExportURI($export, $vendorOS); + } + $info->{'export-uri'} = $exportURI; + + return $info; +} + +=back + +=head2 Support Functions + +=over + +=item C + +Copies all attributes from source that are unset in target over (source extends target). + +=over + +=item Param C + +The hash to be used as copy target. + +=item Param C + +The hash to be used as copy source. + +=item Return Value + +none + +=back + +=cut + +sub mergeAttributes +{ + my $target = shift; + my $source = shift; + my $originInfo = shift; + my $origin = shift; + + my $sourceAttrs = $source->{attrs} || {}; + + $target->{attrs} ||= {}; + my $targetAttrs = $target->{attrs}; + + foreach my $key (keys %$sourceAttrs) { + my $sourceVal = $sourceAttrs->{$key}; + my $targetVal = $targetAttrs->{$key}; + if (!defined $targetVal) { + vlog(3, _tr( + "merging %s (val=%s)", $key, + defined $sourceVal ? $sourceVal : '' + )); + $targetAttrs->{$key} = $sourceVal; + if (defined $originInfo) { + $originInfo->{$key} = $origin; + } + } + } + + return 1; +} + +=item C + +Copies all attributes that are set in source into the target (source overrules target). + +=over + +=item Param C + +The hash to be used as copy target. + +=item Param C + +The hash to be used as copy source. + +=item Return Value + +none + +=back + +=cut + +sub pushAttributes +{ + my $target = shift; + my $source = shift; + my $originInfo = shift; + my $origin = shift; + + my $sourceAttrs = $source->{attrs} || {}; + + $target->{attrs} ||= {}; + my $targetAttrs = $target->{attrs}; + + foreach my $key (keys %$sourceAttrs) { + my $sourceVal = $sourceAttrs->{$key}; + if (defined $sourceVal) { + vlog(3, _tr("pushing %s (val=%s)", $key, $sourceVal)); + $targetAttrs->{$key} = $sourceVal; + if (defined $originInfo) { + $originInfo->{$key} = $origin; + } + } + } + + return 1; +} + +=item C + +Returns the given system's name as an external ID - worked into a +state that is usable as a filename. + +=over + +=item Param C + +The system you are interested in. + +=item Return Value + +The external ID (name) of the given system. + +=back + +=cut + +sub externalIDForSystem +{ + my $system = shift; + + return "default" if $system->{name} eq '<<>>'; + + my $name = $system->{name}; + $name =~ tr[/][_]; + + return $name; +} + +=item C + +Returns the given client's MAC as an external ID - worked into a +state that is usable as a filename. + +=over + +=item Param C + +The client you are interested in. + +=item Return Value + +The external ID (MAC) of the given client. + +=back + +=cut + +sub externalIDForClient +{ + my $client = shift; + + return "default" if $client->{name} eq '<<>>'; + + my $mac = lc($client->{mac}); + # PXE seems to expect MACs being all lowercase + $mac =~ tr[:][-]; + + return "01-$mac"; +} + +=item C + +Returns the given client's name as an external ID - worked into a +state that is usable as a filename. + +=over + +=item Param C + +The client you are interested in. + +=item Return Value + +The external name of the given client. + +=back + +=cut + +sub externalConfigNameForClient +{ + my $client = shift; + + return "default" if $client->{name} eq '<<>>'; + + my $name = $client->{name}; + $name =~ tr[/][_]; + + return $name; +} + +=item C + +Returns the given variable as a placeholder - surrounded by '@@@' markers. + +=over + +=item Param C + +The variable you are interested in. + +=item Return Value + +The given variable as a placeholder string. + +=back + +=cut + +sub generatePlaceholderFor +{ + my $varName = shift; + + return '@@@' . $varName . '@@@'; +} + +################################################################################ +### private stuff +################################################################################ +sub _aref +{ # transparently converts the given reference to an array-ref + my $ref = shift; + + return [] unless defined $ref; + $ref = [$ref] unless ref($ref) eq 'ARRAY'; + + return $ref; +} + +sub _unique +{ # return given array filtered to unique elements + my %seenIDs; + return grep { !$seenIDs{$_}++; } @_; +} + +sub _checkCols +{ + my $valRows = shift; + my $table = shift; + my @colNames = @_; + + foreach my $valRow (@$valRows) { + foreach my $col (@colNames) { + die "need to set '$col' for $table!" if !$valRow->{$col}; + } + } + + return 1; +} + +sub _cloneAndUnhingeAttrs +{ + my $inValRows = shift; + + # clone data and unhinge attrs + my (@valRows, @attrValRows); + foreach my $inValRow (@$inValRows) { + push @attrValRows, $inValRow->{attrs}; + my $valRow = clone($inValRow); + delete $valRow->{attrs}; + push @valRows, $valRow; + } + + return (\@valRows, \@attrValRows); +} + +1; diff --git a/src/config-db/OpenSLX/ConfigExport/DHCP/ISC.pm b/src/config-db/OpenSLX/ConfigExport/DHCP/ISC.pm new file mode 100644 index 00000000..14b427c8 --- /dev/null +++ b/src/config-db/OpenSLX/ConfigExport/DHCP/ISC.pm @@ -0,0 +1,45 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# ISC.pm +# - provides ISC-specific implementation of DHCP export. +# ----------------------------------------------------------------------------- +package OpenSLX::ConfigExport::DHCP::ISC; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +################################################################################ +### This class provides an ISC specific implementation for DHCP export. +################################################################################ +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub execute +{ + my $self = shift; + my $clients = shift; + + vlog(1, _tr("writing dhcp-config for %s clients", scalar(@$clients))); + foreach my $client (@$clients) { +print "ISC-DHCP: $client->{name}\n"; + } +} \ No newline at end of file diff --git a/src/config-db/OpenSLX/DBSchema.pm b/src/config-db/OpenSLX/DBSchema.pm new file mode 100644 index 00000000..d3e7573b --- /dev/null +++ b/src/config-db/OpenSLX/DBSchema.pm @@ -0,0 +1,832 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# DBSchema.pm +# - provides database schema of the OpenSLX config-db. +# ----------------------------------------------------------------------------- +package OpenSLX::DBSchema; + +use strict; +use warnings; + +use OpenSLX::Basics; + +################################################################################ +### DB-schema definition +### This hash-ref describes the current OpenSLX configuration database +### schema. +### Each table is defined by a list of column descriptions (and optionally +### a list of default values). +### A column description is simply the name of the column followed by ':' +### followed by the data type description. The following data types are +### currently supported: +### b => boolean (providing the values 1 and 0 only) +### i => integer (32-bit, signed) +### s.20 => string, followed by length argument (in this case: 20) +### pk => primary key (integer) +### fk => foreign key (integer) +################################################################################ + +my $VERSION = 0.36; + +my $DbSchema = { + 'version' => $VERSION, + 'tables' => { + 'client' => { + # a client is a PC booting via network + 'cols' => [ + 'id:pk', # primary key + 'name:s.128', # official name of PC (e.g. as given by sticker + # on case) + 'mac:s.20', # MAC of NIC used for booting + 'comment:s.1024', # internal comment (optional, for admins) + ], + 'vals' => [ + { # add default client + 'id' => 0, + 'name' => '<<>>', + 'comment' => 'internal client that holds default values', + }, + ], + }, + 'client_attr' => { + # attributes of clients + 'cols' => [ + 'id:pk', # primary key + 'client_id:fk', # foreign key to client + 'name:s.128', # attribute name + 'value:s.255', # attribute value + ], + }, + 'client_system_ref' => { + # clients referring to the systems they should offer for booting + 'cols' => [ + 'client_id:fk', # foreign key + 'system_id:fk', # foreign key + ], + }, + 'export' => { + # an export describes a vendor-OS "wrapped" in some kind of exporting + # format (NFS or NBD-squash). This represents the rootfs that the + # clients will see. + 'cols' => [ + 'id:pk', # primary key + 'name:s.64', # unique name of export, is automatically + # constructed like this: + # - + 'vendor_os_id:fk', # foreign key + 'comment:s.1024', # internal comment (optional, for admins) + 'type:s.10', # 'nbd', 'nfs', ... + 'server_ip:s.16', # IP of exporting server, if empty the + # boot server will be used + 'port:i', # some export types need to use a specific + # port for each incarnation, if that's the + # case you can specify it here + 'uri:s.255', # path to export (squashfs or NFS-path), if + # empty it will be auto-generated by + # config-demuxer + ], + }, + 'global_info' => { + # a home for global counters and other info + 'cols' => [ + 'id:s.32', # key + 'value:s.128', # value + ], + 'vals' => [ + { # add nbd-server-port + 'id' => 'next-nbd-server-port', + 'value' => '5000', + }, + ], + }, + 'groups' => { + # a group encapsulates a set of clients as one entity, managing + # a group-specific attribute set. All the different attribute + # sets a client inherits via group membership are folded into + # one resulting attribute set with respect to each group's priority. + 'cols' => [ + 'id:pk', # primary key + 'name:s.128', # name of group + 'priority:i', # priority, used for order in group-list + # (from 0-highest to 99-lowest) + 'comment:s.1024', # internal comment (optional, for admins) + ], + }, + 'group_attr' => { + # attributes of groups + 'cols' => [ + 'id:pk', # primary key + 'group_id:fk', # foreign key to group + 'name:s.128', # attribute name + 'value:s.255', # attribute value + ], + }, + 'group_client_ref' => { + # groups referring to their clients + 'cols' => [ + 'group_id:fk', # foreign key + 'client_id:fk', # foreign key + ], + }, + 'group_system_ref' => { + # groups referring to the systems each of their clients should + # offer for booting + 'cols' => [ + 'group_id:fk', # foreign key + 'system_id:fk', # foreign key + ], + }, + 'installed_plugin' => { + # holds the plugins that have been installed into a specific + # vendor-OS + 'cols' => [ + 'id:pk', # primary key + 'vendor_os_id:fk', # foreign key + 'plugin_name:s.64', # name of installed plugin + # (e.g. suse-9.3-kde, debian-3.1-ppc, + # suse-10.2-cloned-from-kiwi). + # This is used as the folder name for the + # corresponding stage1, too. + ], + }, + 'installed_plugin_attr' => { + # (stage1-)attributes of installed plugins + 'cols' => [ + 'id:pk', # primary key + 'installed_plugin_id:fk', # foreign key to installed plugin + 'name:s.128', # attribute name + 'value:s.255', # attribute value + ], + }, + 'meta' => { + # information about the database as such + 'cols' => [ + 'plugin_info_hash:s.32', # hash-value identifying a specific + # set of plugins and their + # attributes + 'schema_version:s.5', # schema-version currently + # implemented by DB + ], + 'vals' => [ + { + 'plugin_info_hash' => '', + 'schema_version' => $VERSION, + }, + ], + }, + 'system' => { + # a system describes one bootable instance of an export, it + # represents a selectable line in the PXE boot menu of all the + # clients associated with this system + 'cols' => [ + 'id:pk', # primary key + 'export_id:fk', # foreign key + 'name:s.64', # unique name of system, is automatically + # constructed like this: + # -- + 'label:s.64', # name visible to user (pxe-label) + # if empty, this will be autocreated from + # the name + 'kernel:s.128', # path to kernel file, relative to /boot + 'description:s.512', # visible description (for PXE TEXT) + 'pxe_prefix_ip:s.16', # ip prefix for PXE Menu entry + 'comment:s.1024', # internal comment (optional, for admins) + ], + 'vals' => [ + { # add default system + 'id' => 0, + 'name' => '<<>>', + 'comment' => 'internal system that holds default values', + }, + ], + }, + 'system_attr' => { + # attributes of systems + 'cols' => [ + 'id:pk', # primary key + 'system_id:fk', # foreign key to system + 'name:s.128', # attribute name + 'value:s.255', # attribute value + ], + }, + 'vendor_os' => { + # a vendor-OS describes a folder containing an operating system as + # provided by the vendor (a.k.a. unchanged and thus updatable) + 'cols' => [ + 'id:pk', # primary key + 'name:s.48', # structured name of OS installation + # (e.g. suse-9.3-kde, debian-3.1-ppc, + # suse-10.2-cloned-from-kiwi). + # This is used as the folder name for the + # corresponding stage1, too. + 'comment:s.1024', # internal comment (optional, for admins) + 'clone_source:s.255', # if vendor-OS was cloned, this contains + # the rsync-URI pointing to the original + ], + }, + }, +}; + +################################################################################ +### +### standard methods +### +################################################################################ +sub new +{ + my $class = shift; + + my $self = { + }; + + return bless $self, $class; +} + +sub checkAndUpgradeDBSchemaIfNecessary +{ + my $self = shift; + my $configDB = shift; + + my $metaDB = $configDB->{'meta-db'}; + + vlog(2, "trying to determine schema version..."); + my $currVersion = $metaDB->schemaFetchDBVersion(); + if (!defined $currVersion) { + # that's bad, someone has messed with our DB: there is a + # database, but the 'meta'-table is empty. + # There might still be data in the other tables, but we have no way to + # find out which schema version they're in. So it's safer to give up. + croak _tr('Could not determine schema version of database'); + } + + if ($currVersion == 0) { + vlog(1, _tr('Creating DB (schema version: %s)', $DbSchema->{version})); + foreach my $tableName (keys %{$DbSchema->{tables}}) { + # create table (optionally inserting default values, too) + $metaDB->schemaAddTable( + $tableName, + $DbSchema->{tables}->{$tableName}->{cols}, + $DbSchema->{tables}->{$tableName}->{vals} + ); + } + $metaDB->schemaSetDBVersion($DbSchema->{version}); + $configDB->cleanupAnyInconsistencies() + or die _tr('unable to cleanup DB!'); + vlog(1, _tr('DB has been created successfully')); + } elsif ($currVersion < $DbSchema->{version}) { + vlog( + 1, + _tr( + 'Our schema-version is %s, DB is %s, upgrading DB...', + $DbSchema->{version}, $currVersion + ) + ); + $self->_schemaUpgradeDBFrom($metaDB, $currVersion); + $configDB->cleanupAnyInconsistencies() + or die _tr('unable to cleanup DB!'); + vlog(1, _tr('upgrade done')); + } else { + vlog(1, _tr('DB matches current schema version (%s)', $currVersion)); + } + + return 1; +} + +sub getColumnsOfTable +{ + my $self = shift; + my $tableName = shift; + + return + map { (/^(\w+)\W/) ? $1 : $_; } + @{$DbSchema->{tables}->{$tableName}->{cols}}; +} + +################################################################################ +### +### methods for upgrading the DB schema +### +################################################################################ +my %DbSchemaHistory; + +sub _schemaUpgradeDBFrom +{ + my $self = shift; + my $metaDB = shift; + my $currVersion = shift; + + foreach my $version (sort { $a <=> $b } keys %DbSchemaHistory) { + next if $currVersion >= $version; + + vlog(0, "upgrading schema version to $version"); + if ($DbSchemaHistory{$version}->($metaDB)) { + $metaDB->schemaSetDBVersion($version); + } + } + + return 1; +} + +%DbSchemaHistory = ( + 0.2 => sub { + my $metaDB = shift; + + # move attributes into separate tables ... + # + # ... system attributes ... + $metaDB->schemaAddTable( + 'system_attr', + [ + 'id:pk', + 'system_id:fk', + 'name:s.128', + 'value:s.255', + ] + ); + foreach my $system ($metaDB->fetchSystemByFilter()) { + my %attrs; + foreach my $key (keys %$system) { + next if substr($key, 0, 5) ne 'attr_'; + my $attrValue = $system->{$key} || ''; + next if $system->{id} > 0 && !length($attrValue); + my $newAttrName = substr($key, 5); + $attrs{$newAttrName} = $attrValue; + } + $metaDB->setSystemAttrs($system->{id}, \%attrs); + } + $metaDB->schemaDropColumns( + 'system', + [ + 'attr_automnt_dir', + 'attr_automnt_src', + 'attr_country', + 'attr_dm_allow_shutdown', + 'attr_hw_graphic', + 'attr_hw_local_disk', + 'attr_hw_monitor', + 'attr_hw_mouse', + 'attr_late_dm', + 'attr_netbios_workgroup', + 'attr_nis_domain', + 'attr_nis_servers', + 'attr_ramfs_fsmods', + 'attr_ramfs_miscmods', + 'attr_ramfs_nicmods', + 'attr_ramfs_screen', + 'attr_sane_scanner', + 'attr_scratch', + 'attr_slxgrp', + 'attr_start_alsasound', + 'attr_start_atd', + 'attr_start_cron', + 'attr_start_dreshal', + 'attr_start_ntp', + 'attr_start_nfsv4', + 'attr_start_printer', + 'attr_start_samba', + 'attr_start_snmp', + 'attr_start_sshd', + 'attr_start_syslog', + 'attr_start_x', + 'attr_start_xdmcp', + 'attr_tex_enable', + 'attr_timezone', + 'attr_tvout', + 'attr_vmware', + ], + [ + 'id:pk', + 'export_id:fk', + 'name:s.64', + 'label:s.64', + 'kernel:s.128', + 'kernel_params:s.512', + 'hidden:b', + 'comment:s.1024', + ] + ); + # + # ... client attributes ... + $metaDB->schemaAddTable( + 'client_attr', + [ + 'id:pk', + 'client_id:fk', + 'name:s.128', + 'value:s.255', + ] + ); + foreach my $client ($metaDB->fetchClientByFilter()) { + my %attrs; + foreach my $key (keys %$client) { + next if substr($key, 0, 5) ne 'attr_'; + my $attrValue = $client->{$key} || ''; + next if !length($attrValue); + my $newAttrName = substr($key, 5); + $attrs{$newAttrName} = $attrValue; + } + $metaDB->setClientAttrs($client->{id}, \%attrs); + } + $metaDB->schemaDropColumns( + 'client', + [ + 'attr_automnt_dir', + 'attr_automnt_src', + 'attr_country', + 'attr_dm_allow_shutdown', + 'attr_hw_graphic', + 'attr_hw_local_disk', + 'attr_hw_monitor', + 'attr_hw_mouse', + 'attr_late_dm', + 'attr_netbios_workgroup', + 'attr_nis_domain', + 'attr_nis_servers', + 'attr_sane_scanner', + 'attr_scratch', + 'attr_slxgrp', + 'attr_start_alsasound', + 'attr_start_atd', + 'attr_start_cron', + 'attr_start_dreshal', + 'attr_start_ntp', + 'attr_start_nfsv4', + 'attr_start_printer', + 'attr_start_samba', + 'attr_start_snmp', + 'attr_start_sshd', + 'attr_start_syslog', + 'attr_start_x', + 'attr_start_xdmcp', + 'attr_tex_enable', + 'attr_timezone', + 'attr_tvout', + 'attr_vmware', + ], + [ + 'id:pk', + 'name:s.128', + 'mac:s.20', + 'boot_type:s.20', + 'unbootable:b', + 'kernel_params:s.128', + 'comment:s.1024', + ] + ); + # + # ... group attributes ... + $metaDB->schemaAddTable( + 'group_attr', + [ + 'id:pk', + 'group_id:fk', + 'name:s.128', + 'value:s.255', + ] + ); + foreach my $group ($metaDB->fetchGroupByFilter()) { + my %attrs; + foreach my $key (keys %$group) { + next if substr($key, 0, 5) ne 'attr_'; + my $attrValue = $group->{$key} || ''; + next if !length($attrValue); + my $newAttrName = substr($key, 5); + $attrs{$newAttrName} = $attrValue; + } + $metaDB->setGroupAttrs($group->{id}, \%attrs); + } + $metaDB->schemaDropColumns( + 'groups', + [ + 'attr_automnt_dir', + 'attr_automnt_src', + 'attr_country', + 'attr_dm_allow_shutdown', + 'attr_hw_graphic', + 'attr_hw_local_disk', + 'attr_hw_monitor', + 'attr_hw_mouse', + 'attr_late_dm', + 'attr_netbios_workgroup', + 'attr_nis_domain', + 'attr_nis_servers', + 'attr_sane_scanner', + 'attr_scratch', + 'attr_slxgrp', + 'attr_start_alsasound', + 'attr_start_atd', + 'attr_start_cron', + 'attr_start_dreshal', + 'attr_start_ntp', + 'attr_start_nfsv4', + 'attr_start_printer', + 'attr_start_samba', + 'attr_start_snmp', + 'attr_start_sshd', + 'attr_start_syslog', + 'attr_start_x', + 'attr_start_xdmcp', + 'attr_tex_enable', + 'attr_timezone', + 'attr_tvout', + 'attr_vmware', + ], + [ + 'id:pk', + 'name:s.128', + 'priority:i', + 'comment:s.1024', + ] + ); + + return 1; + }, + 0.21 => sub { + my $metaDB = shift; + + # add new table installed_plugin + $metaDB->schemaAddTable( + 'installed_plugin', + [ + 'id:pk', + 'vendor_os_id:fk', + 'plugin_name:s.64', + ] + ); + + return 1; + }, + 0.22 => sub { + my $metaDB = shift; + + # dummy schema change, just to trigger the attribute synchronization + # into the default system + + return 1; + }, + 0.23 => sub { + my $metaDB = shift; + + # add new column system.description + $metaDB->schemaAddColumns( + 'system', + [ + 'description:s.512', + ], + undef, + [ + 'id:pk', + 'export_id:fk', + 'name:s.64', + 'label:s.64', + 'kernel:s.128', + 'kernel_params:s.512', + 'hidden:b', + 'description:s.512', + 'comment:s.1024', + ] + ); + + return 1; + }, + 0.24 => sub { + my $metaDB = shift; + + # split theme::name into theme::splash, theme::displaymanager and + # theme::desktop + foreach my $system ($metaDB->fetchSystemByFilter()) { + my $attrs = $system->{attrs} || {}; + next if !exists $attrs->{'theme::name'}; + $attrs->{'theme::splash'} + = $attrs->{'theme::displaymanager'} + = $attrs->{'theme::desktop'} + = $attrs->{'theme::name'}; + delete $attrs->{'theme::name'}; + $metaDB->setSystemAttrs($system->{id}, $attrs); + } + + # force all plugin names to lowercase + foreach my $vendorOS ($metaDB->fetchVendorOSByFilter()) { + my @installedPlugins + = $metaDB->fetchInstalledPlugins($vendorOS->{id}); + foreach my $plugin (@installedPlugins) { + my $pluginName = $plugin->{plugin_name}; + $metaDB->removeInstalledPlugin($vendorOS->{id}, $pluginName); + $metaDB->addInstalledPlugin($vendorOS->{id}, lc($pluginName)); + } + } + + return 1; + }, + 0.25 => sub { + my $metaDB = shift; + + # drop attribute ramfs_screen + $metaDB->removeAttributeByName('ramfs_screen'); + + return 1; + }, + 0.26 => sub { + my $metaDB = shift; + + # rename all exports and systems that contain a single colon to + # the current naming scheme with a double colon + foreach my $system ($metaDB->fetchSystemByFilter()) { + if ($system->{name} =~ m{^([^:]+):([^:]+)$}) { + if ($system->{label} eq $system->{name}) { + $system->{label} = "${1}::${2}"; + } + $system->{name} = "${1}::${2}"; + $metaDB->changeSystem([ $system->{id} ], [ $system ]); + } + } + foreach my $export ($metaDB->fetchExportByFilter()) { + if ($export->{name} =~ m{^([^:]+):([^:]+)$}) { + $export->{name} = "${1}::${2}"; + $metaDB->changeExport([ $export->{id} ], [ $export ]); + } + } + + return 1; + }, + 0.27 => sub { + my $metaDB = shift; + + # add default vendor-OS, which holds info about the plugins that shall + # be automatically installed into all vendor-OS that are being created. + $metaDB->addVendorOS([{ + id => '0', + name => '<<>>', + comment => 'holds default plugins for all vendor-OS', + }]); + + return 1; + }, + 0.28 => sub { + my $metaDB = shift; + + # correct effects of implementation error last time around that caused + # the default vendor-OS to not have any plugins at all - so we add + # the default plugins here: +# OLTA: deactivated for good since this does not work anymore with newer +# implementations (as addInstalledPlugin requires the table +# 'installed_plugin_attr', which is going to be created in db-schema +# version 0.29 (see below) +# $metaDB->addInstalledPlugin(0, 'theme'); + + return 1; + }, + 0.29 => sub { + my $metaDB = shift; + + # add new table installed_plugin_attrs + $metaDB->schemaAddTable( + 'installed_plugin_attr', + [ + 'id:pk', + 'installed_plugin_id:fk', + 'name:s.128', + 'value:s.255', + ], + ); + + return 1; + }, + 0.30 => sub { + my $metaDB = shift; + + # dummy schema change, just to trigger the attribute synchronization + # into the default system (required since plugins have been added + # and removed) + + return 1; + }, + 0.31 => sub { + my $metaDB = shift; + + # dummy schema change, just to trigger the attribute synchronization + # again, as the respective code has been extended + + return 1; + }, + 0.32 => sub { + my $metaDB = shift; + + # dummy schema change, just to trigger the attribute synchronization, + # as the 'theme' plugin has been removed + + return 1; + }, + 0.33 => sub { + my $metaDB = shift; + + # add new column meta.plugin_info_hash + $metaDB->schemaAddColumns( + 'meta', + [ + 'plugin_info_hash:s.32', + ], + undef, + [ + 'plugin_info_hash:s.32', + 'schema_version:s.5', + ] + ); + + return 1; + }, + 0.34 => sub { + my $metaDB = shift; + + # turn client fields 'boot_type', 'kernel_params' and 'unbootable' + # into attributes: + foreach my $client ($metaDB->fetchClientByFilter()) { + my $attrs = $metaDB->fetchClientAttrs($client->{id}); + $attrs->{boot_type} = $client->{boot_type} || 'pxe'; + $attrs->{kernel_params_client} = $client->{kernel_params}; + $attrs->{unbootable} = $client->{unbootable}; + $metaDB->setClientAttrs($client->{id}, $attrs); + } + $metaDB->schemaDropColumns( + 'client', + [ + 'boot_type', + 'kernel_params', + 'unbootable', + ], + [ + 'id:pk', + 'name:s.128', + 'mac:s.20', + 'comment:s.1024', + ] + ); + + # turn system fields 'hidden' and 'kernel_params' into attributes: + foreach my $system ($metaDB->fetchSystemByFilter()) { + my $attrs = $metaDB->fetchSystemAttrs($system->{id}); + $attrs->{hidden} = $system->{hidden}; + $attrs->{kernel_params} = $system->{kernel_params}; + $metaDB->setSystemAttrs($system->{id}, $attrs); + } + $metaDB->schemaDropColumns( + 'system', + [ + 'hidden', + 'kernel_params', + ], + [ + 'id:pk', + 'export_id:fk', + 'name:s.64', + 'label:s.64', + 'kernel:s.128', + 'description:s.512', + 'comment:s.1024', + ] + ); + + return 1; + }, + 0.35 => sub { + my $metaDB = shift; + + # add new column system.pxe_prefix_ip + $metaDB->schemaAddColumns( + 'system', + [ + 'pxe_prefix_ip:s.16', + ], + undef + ); + + return 1; + }, + 0.36 => sub { + my $metaDB = shift; + + # value 'preboot-cd' in client-attr 'boot_type' has been changed + # to 'preboot', and a separate attribute 'preboot_media' has been + # introduced: + foreach my $client ($metaDB->fetchClientByFilter()) { + my $attrs = $metaDB->fetchClientAttrs($client->{id}); + if ($attrs->{boot_type} eq 'preboot-cd') { + $attrs->{boot_type} = 'preboot'; + $attrs->{preboot_media} = 'cd'; + $metaDB->setClientAttrs($client->{id}, $attrs); + } + } + + return 1; + }, +); + +1; diff --git a/src/config-db/OpenSLX/MetaDB/Base.pm b/src/config-db/OpenSLX/MetaDB/Base.pm new file mode 100644 index 00000000..f1fbd0f5 --- /dev/null +++ b/src/config-db/OpenSLX/MetaDB/Base.pm @@ -0,0 +1,1220 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX MetaDB API. +# ----------------------------------------------------------------------------- +package OpenSLX::MetaDB::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use OpenSLX::Basics; + +################################################################################ +### basic functions +################################################################################ +sub new +{ + confess "Don't create OpenSLX::MetaDB::Base - objects directly!"; +} + +sub connect ## no critic (ProhibitBuiltinHomonyms) +{ +} + +sub disconnect +{ +} + +sub quote +{ +} + +################################################################################ +### data access interface +################################################################################ +sub fetchVendorOSByFilter +{ +} + +sub fetchVendorOSByID +{ +} + +sub fetchExportByFilter +{ +} + +sub fetchExportByID +{ +} + +sub fetchExportIDsOfVendorOS +{ +} + +sub fetchSystemByFilter +{ +} + +sub fetchSystemByID +{ +} + +sub fetchSystemIDsOfExport +{ +} + +sub fetchSystemIDsOfClient +{ +} + +sub fetchSystemIDsOfGroup +{ +} + +sub fetchClientByFilter +{ +} + +sub fetchClientByID +{ +} + +sub fetchClientIDsOfSystem +{ +} + +sub fetchClientIDsOfGroup +{ +} + +sub fetchGroupByFilter +{ +} + +sub fetchGroupByID +{ +} + +sub fetchGroupIDsOfClient +{ +} + +sub fetchGroupIDsOfSystem +{ +} + +################################################################################ +### data manipulation interface +################################################################################ +sub generateNextIdForTable +{ # some DBs (CSV for instance) aren't able to generate any IDs, so we + # offer an alternative way (by pre-specifying IDs for INSERTs). + # NB: if this method is called without a tablename, it returns: + # 1 if this backend requires manual ID generation + # 0 if not. + return; +} + +sub addVendorOS +{ +} + +sub removeVendorOS +{ +} + +sub changeVendorOS +{ +} + +sub addExport +{ +} + +sub removeExport +{ +} + +sub changeExport +{ +} + +sub addSystem +{ +} + +sub removeSystem +{ +} + +sub changeSystem +{ +} + +sub setClientIDsOfSystem +{ +} + +sub setGroupIDsOfSystem +{ +} + +sub addClient +{ +} + +sub removeClient +{ +} + +sub changeClient +{ +} + +sub setSystemIDsOfClient +{ +} + +sub setGroupIDsOfClient +{ +} + +sub addGroup +{ +} + +sub removeGroup +{ +} + +sub changeGroup +{ +} + +sub setClientIDsOfGroup +{ +} + +sub setSystemIDsOfGroup +{ +} + +################################################################################ +### schema related functions +################################################################################ +sub schemaFetchDBVersion +{ +} + +sub schemaSetDBVersion +{ +} + +sub schemaCreate +{ +} + +sub schemaUpgradeToCurrent +{ +} + +sub schemaConvertTypeDescrToNative +{ +} + +sub schemaAddTable +{ +} + +sub schemaDropTable +{ +} + +sub schemaRenameTable +{ +} + +sub schemaAddColumns +{ +} + +sub schemaDropColumns +{ +} + +sub schemaChangeColumns +{ +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::MetaDB::Base - the base class for all MetaDB drivers + +=head1 SYNOPSIS + + package OpenSLX::MetaDB::coolnewDB; + + use vars qw(@ISA $VERSION); + @ISA = ('OpenSLX::MetaDB::Base'); + $VERSION = 1.01; + + my $superVersion = $OpenSLX::MetaDB::Base::VERSION; + if ($superVersion < $VERSION) { + croak _tr('Unable to load module <%s> (Version <%s> required)', + 'OpenSLX::MetaDB::Base', $VERSION); + } + + use coolnewDB; + + sub new + { + my $class = shift; + my $self = {}; + return bless $self, $class; + } + + sub connectConfigDB + { + my $self = shift; + + my $dbName = $openslxConfig{'db-name'}; + vlog(1, "trying to connect to coolnewDB-database <$dbName>"); + $self->{'dbh'} = ... # get connection handle from coolnewDB + } + + sub disconnectConfigDB + { + my $self = shift; + + $self->{'dbh'}->disconnect; + } + + # override all methods of OpenSLX::MetaDB::Base in order to implement + # a full MetaDB driver + ... + +I> + +=head1 DESCRIPTION + +This class defines the MetaDB interface for the OpenSLX. + +Aim of the MetaDB abstraction is to make it possible to use a large set +of different databases (from CSV-files to a fullblown Oracle-installation) +transparently. + +While OpenSLX::ConfigDB represents the data layer to the outside world, each +implementation of OpenSLX::MetaDB::Base provides a backend for a specific database. + +This way, the different OpenSLX-scripts do not have to burden +themselves with any DB-specific details, they just request the data they want +from the ConfigDB-layer and that in turn creates and communicates with the +appropriate MetaDB driver in order to connect to the database and fetch and/or +change the data as instructed. + +The MetaDB interface contains of four different parts: + +=over + +=item - L (connection handling and utilities) + +=item - L (getting data) + +=item - L (adding, removing and changing data) + +=item - L (migrating between different DB-versions) + +=back + +In order to implement a MetaDB driver for a specific database, you need +to inherit from B and implement the full interface. As this +is quite some work, it might be wiser to actually inherit your driver from +B>, which is a default implementation for SQL databases. + +If there is a DBD-driver for the database your new MetaDB driver wants to talk +to then all you need to do is inherit from B and then +reimplement L> (and maybe some other methods in order to +improve efficiency). + +=head1 Special Concepts + +=over + +=item C + +A filter is a hash-ref defining the filter criteria to be applied to a database +query. Each key of the filter corresponds to a DB column and the (hash-)value +contains the respective column value. + +[At a later stage, this will be improved to support a more structured approach +to filtering (with boolean operators and hierarchical expressions)]. + +=back + +=head1 Methods + +=head2 Basic Methods + +The following basic methods need to be implemented in a MetaDB driver: + +=over + +=item C + +Tries to establish a connection to the DBMS that this MetaDB driver deals with. +The global configuration hash C<%config> contains further info about the +requested connection. When implementing this method, you may have to look at +the following entries in order to find out which database to connect to: + +=over + +=item C<$config{'db-spec'}> + +Full specification of database, a special string defining the +precise database to connect to (this allows connecting to a database +that requires specifications which aren't cared for by the existing +C<%config>-entries). + +=item C<$config{'db-name'}> + +The precise name of the database that should be connected (defaults to 'openslx'). + +=back + +=item C + +Tears down the connection to the DBMS that this MetaDB driver deals with and +cleans up. + +=item C + +Returns the given string quoted such that it can be used in SQL-statements +(with respect to the corresponding DBMS). + +This usually involves putting +single quotes around the string and escaping any single quote characters +enclosed in the given string with a backslash. + +=back + +=head2 Data Access Methods + +The following methods need to be implemented in a MetaDB driver in order to +allow the user to access data: + +=over + +=item C + +Fetches and returns information about all vendor-OSes that match the given +filter. + +=over + +=item Param C + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches and returns information the vendor-OSes with the given IDs. + +=over + +=item Param C + +An array of the vendor-OS-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches and returns information about all exports that match the given +filter. + +=over + +=item Param C + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches and returns information the exports with the given IDs. + +=over + +=item Param C + +An array of the export-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches the IDs of all exports that make use of the vendor-OS with the given ID. + +=over + +=item Param C + +ID of the vendor-OS whose exports shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=item C + +Fetches and returns information about all systems that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches and returns information the systems with the given IDs. + +=over + +=item Param C + +An array of the system-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches the IDs of all systems that make use of the export with the given ID. + +=over + +=item Param C + +ID of the export whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=item C + +Fetches the IDs of all systems that are used by the client with the given +ID. + +=over + +=item Param C + +ID of the client whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=item C + +Fetches the IDs of all systems that are part of the group with the given +ID. + +=over + +=item Param C + +ID of the group whose systems shall be returned. + +=item Return Value + +An array of system-IDs. + +=back + +=item C + +Fetches and returns information about all clients that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches and returns information the clients with the given IDs. + +=over + +=item Param C + +An array of the client-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + +=item C + +Fetches the IDs of all clients that make use of the system with the given +ID. + +=over + +=item Param C + +ID of the system whose clients shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + +=item C + +Fetches the IDs of all clients that are part of the group with the given +ID. + +=over + +=item Param C + +ID of the group whose clients shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + + + +=item C + +Fetches and returns information about all groups that match the given filter. + +=over + +=item Param C<$filter> + +A hash-ref containing the filter criteria that shall be applied - default +is no filtering. See L for more info. + +=item Param C<$resultCols> [Optional] + +A comma-separated list of colunm names that shall be returned. If not defined, +all available data must be returned. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + + + +=item C + +Fetches and returns information the groups with the given IDs. + +=over + +=item Param C + +An array of the group-IDs you are interested in. + +=item Param C + +A string listing the columns that shall be returned - default is all columns. + +=item Return Value + +An array of hash-refs containing the resulting data rows. + +=back + + + +=item C + +Fetches the IDs of all groups that contain the client with the given +ID. + +=over + +=item Param C + +ID of the client whose groups shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + + + +=item C + +Fetches the IDs of all groups that contain the system with the given +ID. + +=over + +=item Param C + +ID of the system whose groups shall be returned. + +=item Return Value + +An array of client-IDs. + +=back + + + +=head2 Data Manipulation Methods + +The following methods need to be implemented in a MetaDB driver in order to +allow the user to access change the underlying: + + + +=item C + +Adds one or more vendor-OS to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new vendor-OS(es). + +=item Return Value + +The IDs of the new vendor-OS(es), C if the creation failed. + +=back + + + +=item C + +Removes one or more vendor-OS from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the vendor-OSes that shall be removed. + +=item Return Value + +C<1> if the vendorOS(es) could be removed, C if not. + +=back + + + +=item C + +Changes the data of one or more vendor-OS. + +=over + +=item Param C + +An array-ref containing the IDs of the vendor-OSes that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the vendor-OS(es). + +=item Return Value + +C<1> if the vendorOS(es) could be changed, C if not. + +=back + + + +=item C + +Adds one or more export to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new export(s). + +=item Return Value + +The IDs of the new export(s), C if the creation failed. + +=back + + + +=item C + +Removes one or more export from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the exports that shall be removed. + +=item Return Value + +C<1> if the export(s) could be removed, C if not. + +=back + + + +=item C + +Changes the data of one or more export. + +=over + +=item Param C + +An array-ref containing the IDs of the exports that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the export(s). + +=item Return Value + +C<1> if the export(s) could be changed, C if not. + +=back + + + +=item C + +Adds one or more systems to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new system(s). + +=item Return Value + +The IDs of the new system(s), C if the creation failed. + +=back + + + +=item C + +Removes one or more systems from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the systems that shall be removed. + +=item Return Value + +C<1> if the system(s) could be removed, C if not. + +=back + + + +=item C + +Changes the data of one or more systems. + +=over + +=item Param C + +An array-ref containing the IDs of the systems that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the system(s). + +=item Return Value + +C<1> if the system(s) could be changed, C if not. + +=back + + + +=item C + +Specifies all clients that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system whose clients you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the clients that shall be connected to the +system. + +=item Return Value + +C<1> if the system/client references could be set, C if not. + +=back + + + +=item C + +Specifies all groups that should offer the given system for booting. + +=over + +=item Param C + +The ID of the system whose groups you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the groups that shall be connected to the +system. + +=item Return Value + +C<1> if the system/group references could be set, C if not. + +=back + + + +=item C + +Adds one or more clients to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new client(s). + +=item Return Value + +The IDs of the new client(s), C if the creation failed. + +=back + + + +=item C + +Removes one or more clients from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the clients that shall be removed. + +=item Return Value + +C<1> if the client(s) could be removed, C if not. + +=back + + + +=item C + +Changes the data of one or more clients. + +=over + +=item Param C + +An array-ref containing the IDs of the clients that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the client(s). + +=item Return Value + +C<1> if the client(s) could be changed, C if not. + +=back + + + +=item C + +Specifies all systems that should be offered for booting by the given client. + +=over + +=item Param C + +The ID of the client whose systems you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the systems that shall be connected to the +client. + +=item Return Value + +C<1> if the client/system references could be set, C if not. + +=back + + + +=item C + +Specifies all groups that the given client shall be part of. + +=over + +=item Param C + +The ID of the client whose groups you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the groups that the client should be part of. + +=item Return Value + +C<1> if the client/group references could be set, C if not. + +=back + + + +=item C + +Adds one or more groups to the database. + +=over + +=item Param C + +An array-ref containing hash-refs with the data of the new group(s). + +=item Return Value + +The IDs of the new group(s), C if the creation failed. + +=back + + + +=item C + +Removes one or more groups from the database. + +=over + +=item Param C + +An array-ref containing the IDs of the groups that shall be removed. + +=item Return Value + +C<1> if the group(s) could be removed, C if not. + +=back + + + +=item C + +Changes the data of one or more groups. + +=over + +=item Param C + +An array-ref containing the IDs of the groups that shall be changed. + +=item Param C + +An array-ref containing hash-refs with the new data for the group(s). + +=item Return Value + +C<1> if the group(s) could be changed, C if not. + +=back + + + +=item C + +Specifies all clients that should be part of the given group. + +=over + +=item Param C + +The ID of the group whose clients you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the clients that shall be part of the group. + +=item Return Value + +C<1> if the group/client references could be set, C if not. + +=back + + + +=item C + +Specifies all systems that should be offered for booting by the given group. + +=over + +=item Param C + +The ID of the group whose systems you'd like to specify. + +=item Param C + +An array-ref containing the IDs of the systems that shall be connected to the +group. + +=item Return Value + +C<1> if the group/system references could be set, C if not. + +=back + + + + + +=head2 Schema Related Methods + +The following methods need to be implemented in a MetaDB driver in order to +be able to automatically adjust to new database schema versions (by adding +and/or removing tables and table-columns). + +=cut diff --git a/src/config-db/OpenSLX/MetaDB/DBI.pm b/src/config-db/OpenSLX/MetaDB/DBI.pm new file mode 100644 index 00000000..a5a8e68e --- /dev/null +++ b/src/config-db/OpenSLX/MetaDB/DBI.pm @@ -0,0 +1,1540 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# DBI.pm +# - provides DBI-based implementation of the OpenSLX MetaDB API. +# ----------------------------------------------------------------------------- +package OpenSLX::MetaDB::DBI; + +use strict; +use warnings; + +use base qw(OpenSLX::MetaDB::Base); + +use DBI; +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### basics +################################################################################ +sub new +{ + confess "Don't call OpenSLX::MetaDB::DBI::new directly!"; +} + +sub disconnect +{ + my $self = shift; + + $self->{'dbh'}->disconnect; + $self->{'dbh'} = undef; + return; +} + +sub quote +{ # default implementation quotes any given values through the DBI + my $self = shift; + + return $self->{'dbh'}->quote(@_); +} + +sub startTransaction +{ # default implementation passes on the request to the DBI + my $self = shift; + + return $self->{'dbh'}->begin_work(); +} + +sub commitTransaction +{ # default implementation passes on the request to the DBI + my $self = shift; + + return $self->{'dbh'}->commit(); +} + +sub rollbackTransaction +{ # default implementation passes on the request to the DBI + my $self = shift; + + return $self->{'dbh'}->rollback(); +} + +################################################################################ +### data access +################################################################################ +sub _trim +{ + my $s = shift; + $s =~ s[^\s*(.*?)\s*$][$1]; + return $s; +} + +sub _buildFilterClause +{ + my $self = shift; + my $filter = shift || {}; + my $filterClause = shift || ''; + + my ($connector, $quotedVal); + foreach my $col (keys %$filter) { + $connector = !length($filterClause) ? 'WHERE' : 'AND'; + if (defined $filter->{$col}) { + $quotedVal = $self->{dbh}->quote($filter->{$col}); + $filterClause .= unshiftHereDoc(<<" End-of-Here"); + $connector $col = $quotedVal + End-of-Here + } else { + $filterClause .= unshiftHereDoc(<<" End-of-Here"); + $connector $col IS NULL + End-of-Here + } + } + + return $filterClause || ''; +} + +sub _buildAttrFilterClause +{ + my $self = shift; + my $attrFilter = shift || {}; + my $table = shift; + my $filterClause = shift || ''; + + my %tableMap = ( + 'client' => 'client', + 'group' => 'groups', + 'system' => 'system', + ); + + my ($connector, $quotedName, $quotedValue); + foreach my $name (keys %$attrFilter) { + $connector = !length($filterClause) ? 'WHERE' : 'AND'; + $quotedName = $self->{dbh}->quote($name); + if (defined $attrFilter->{$name}) { + $quotedValue = $self->{dbh}->quote($attrFilter->{$name}); + $filterClause .= unshiftHereDoc(<<" End-of-Here"); + $connector EXISTS ( + SELECT name FROM ${table}_attr + WHERE name = $quotedName + AND value = $quotedValue + AND ${table}_id = $tableMap{$table}.id + ) + End-of-Here + } else { + $filterClause .= unshiftHereDoc(<<" End-of-Here"); + $connector NOT EXISTS ( + SELECT name FROM ${table}_attr + WHERE name = $quotedName + AND ${table}_id = $tableMap{$table}.id + ) + End-of-Here + } + } + + return $filterClause; +} + +sub _doSelect +{ + my $self = shift; + my $sql = shift; + my $resultCol = shift; + + my $dbh = $self->{'dbh'}; + + vlog(3, _trim($sql)); + my $sth = $dbh->prepare($sql) + or croak _tr( + q[Can't prepare SQL-statement <%s> (%s)], $sql, $dbh->errstr + ); + $sth->execute() + or croak _tr( + q[Can't execute SQL-statement <%s> (%s)], $sql, $dbh->errstr + ); + my @vals; + while (my $row = $sth->fetchrow_hashref()) { + if (defined $resultCol) { + return $row->{$resultCol} unless wantarray(); + push @vals, $row->{$resultCol}; + } else { + return $row unless wantarray(); + push @vals, $row; + } + } + + # return undef if there's no result in scalar context + return if !wantarray(); + + return @vals; +} + +sub fetchVendorOSByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $filterClause = $self->_buildFilterClause($filter); + my $sql = "SELECT $resultCols FROM vendor_os $filterClause"; + return $self->_doSelect($sql); +} + +sub fetchVendorOSByID +{ + my $self = shift; + my $ids = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $idStr = join ',', @$ids; + return if !length($idStr); + my $sql = "SELECT $resultCols FROM vendor_os WHERE id IN ($idStr)"; + return $self->_doSelect($sql); +} + +sub fetchInstalledPlugins +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + my $fullInfo = shift || 0; + + return if !defined $vendorOSID; + my $nameClause + = defined $pluginName + ? "AND plugin_name = '$pluginName'" + : ''; + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT * FROM installed_plugin + WHERE vendor_os_id = '$vendorOSID' + $nameClause + End-of-Here + my @pluginInfos = $self->_doSelect($sql); + return if !@pluginInfos; + + @pluginInfos = map { + my $pluginInfo = $_; + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT * FROM installed_plugin_attr + WHERE installed_plugin_id = '$pluginInfo->{id}' + End-of-Here + my @attrs = $self->_doSelect($sql); + $pluginInfo->{attrs} = { + map { + ( $_->{name}, $fullInfo ? $_ : $_->{value} ) + } @attrs + }; + $pluginInfo; + } + @pluginInfos; + + return wantarray() ? @pluginInfos : $pluginInfos[0]; +} + +sub fetchExportByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $filterClause = $self->_buildFilterClause($filter); + my $sql = "SELECT $resultCols FROM export $filterClause"; + return $self->_doSelect($sql); +} + +sub fetchExportByID +{ + my $self = shift; + my $ids = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $idStr = join ',', @$ids; + return if !length($idStr); + my $sql = "SELECT $resultCols FROM export WHERE id IN ($idStr)"; + return $self->_doSelect($sql); +} + +sub fetchExportIDsOfVendorOS +{ + my $self = shift; + my $vendorOSID = shift; + + my $sql = qq[ + SELECT id FROM export WHERE vendor_os_id = '$vendorOSID' + ]; + return $self->_doSelect($sql, 'id'); +} + +sub fetchGlobalInfo +{ + my $self = shift; + my $id = shift; + + return if !length($id); + my $sql = "SELECT value FROM global_info WHERE id = " . $self->quote($id); + return $self->_doSelect($sql, 'value'); +} + +sub fetchSystemByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + $resultCols = '*' unless (defined $resultCols); + my $filterClause = $self->_buildFilterClause($filter); + $filterClause = $self->_buildAttrFilterClause( + $attrFilter, 'system', $filterClause + ); + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT $resultCols FROM system + $filterClause + End-of-Here + return $self->_doSelect($sql); +} + +sub fetchSystemByID +{ + my $self = shift; + my $ids = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $idStr = join ',', @$ids; + return if !length($idStr); + my $sql = "SELECT $resultCols FROM system WHERE id IN ($idStr)"; + return $self->_doSelect($sql); +} + +sub fetchSystemAttrs +{ + my $self = shift; + my $systemID = $self->{dbh}->quote(shift); + + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT name, value FROM system_attr + WHERE system_id = $systemID + End-of-Here + my @attrs = $self->_doSelect($sql); + my $Result = {}; + foreach my $attr (@attrs) { + $Result->{$attr->{name}} = $attr->{value}; + } + return $Result; +} + +sub fetchSystemIDsOfExport +{ + my $self = shift; + my $exportID = shift; + + my $sql = qq[ + SELECT id FROM system WHERE export_id = '$exportID' + ]; + return $self->_doSelect($sql, 'id'); +} + +sub fetchSystemIDsOfClient +{ + my $self = shift; + my $clientID = shift; + + my $sql = qq[ + SELECT system_id FROM client_system_ref WHERE client_id = '$clientID' + ]; + return $self->_doSelect($sql, 'system_id'); +} + +sub fetchSystemIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + + my $sql = qq[ + SELECT system_id FROM group_system_ref WHERE group_id = '$groupID' + ]; + return $self->_doSelect($sql, 'system_id'); +} + +sub fetchClientByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + $resultCols = '*' unless (defined $resultCols); + my $filterClause = $self->_buildFilterClause($filter); + $filterClause = $self->_buildAttrFilterClause( + $attrFilter, 'client', $filterClause + ); + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT $resultCols FROM client + $filterClause + End-of-Here + return $self->_doSelect($sql); +} + +sub fetchClientByID +{ + my $self = shift; + my $ids = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $idStr = join ',', @$ids; + return if !length($idStr); + my $sql = "SELECT $resultCols FROM client WHERE id IN ($idStr)"; + return $self->_doSelect($sql); +} + +sub fetchClientAttrs +{ + my $self = shift; + my $clientID = $self->{dbh}->quote(shift); + + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT name, value FROM client_attr + WHERE client_id = $clientID + End-of-Here + my @attrs = $self->_doSelect($sql); + my $Result = {}; + foreach my $attr (@attrs) { + $Result->{$attr->{name}} = $attr->{value}; + } + return $Result; +} + +sub fetchClientIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + + my $sql = qq[ + SELECT client_id FROM client_system_ref WHERE system_id = '$systemID' + ]; + return $self->_doSelect($sql, 'client_id'); +} + +sub fetchClientIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + + my $sql = qq[ + SELECT client_id FROM group_client_ref WHERE group_id = '$groupID' + ]; + return $self->_doSelect($sql, 'client_id'); +} + +sub fetchGroupByFilter +{ + my $self = shift; + my $filter = shift; + my $resultCols = shift; + my $attrFilter = shift; + + $resultCols = '*' unless (defined $resultCols); + my $filterClause = $self->_buildFilterClause($filter); + $filterClause = $self->_buildAttrFilterClause( + $attrFilter, 'group', $filterClause + ); + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT $resultCols FROM groups + $filterClause + End-of-Here + return $self->_doSelect($sql); +} + +sub fetchGroupByID +{ + my $self = shift; + my $ids = shift; + my $resultCols = shift; + + $resultCols = '*' unless (defined $resultCols); + my $idStr = join ',', @$ids; + return if !length($idStr); + my $sql = "SELECT $resultCols FROM groups WHERE id IN ($idStr)"; + return $self->_doSelect($sql); +} + +sub fetchGroupAttrs +{ + my $self = shift; + my $groupID = $self->{dbh}->quote(shift); + + my $sql = unshiftHereDoc(<<" End-of-Here"); + SELECT name, value FROM group_attr + WHERE group_id = $groupID + End-of-Here + my @attrs = $self->_doSelect($sql); + my $Result = {}; + foreach my $attr (@attrs) { + $Result->{$attr->{name}} = $attr->{value}; + } + return $Result; +} + +sub fetchGroupIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + + my $sql = qq[ + SELECT group_id FROM group_system_ref WHERE system_id = '$systemID' + ]; + return $self->_doSelect($sql, 'group_id'); +} + +sub fetchGroupIDsOfClient +{ + my $self = shift; + my $clientID = shift; + + my $sql = qq[ + SELECT group_id FROM group_client_ref WHERE client_id = '$clientID' + ]; + return $self->_doSelect($sql, 'group_id'); +} + +################################################################################ +### data manipulation functions +################################################################################ +sub _doInsert +{ + my $self = shift; + my $table = shift; + my $valRows = shift; + my $ignoreIDs = shift; + + my $dbh = $self->{'dbh'}; + my $valRow = (@$valRows)[0]; + return if !defined $valRow || !scalar keys %$valRow; + + if ($table =~ m[_ref$]) { + # reference tables do not have IDs: + $ignoreIDs = 1; + } + + my $needToGenerateIDs = $self->generateNextIdForTable(undef); + if (!$ignoreIDs && $needToGenerateIDs) { + # DB requires pre-specified IDs, so we add the 'id' column: + $valRow->{id} = undef unless exists $valRow->{id}; + } + my @ids; + foreach my $valRow (@$valRows) { + if (!defined $valRow->{id} && !$ignoreIDs && $needToGenerateIDs) { + # let DB-backend pre-specify ID, as current DB can't generate IDs: + $valRow->{id} = $self->generateNextIdForTable($table); + vlog(3, "generated id for <$table> is <$valRow->{id}>"); + } + my $cols = join ', ', keys %$valRow; + my $values = join ', ', + map { $self->quote($valRow->{$_}) } keys %$valRow; + my $sql = "INSERT INTO $table ( $cols ) VALUES ( $values )"; + vlog(3, $sql); + my $sth = $dbh->prepare($sql) + or croak _tr(q[Can't insert into table <%s> (%s)], $table, + $dbh->errstr); + $sth->execute() + or croak _tr(q[Can't insert into table <%s> (%s)], $table, + $dbh->errstr); + if (!$ignoreIDs) { + my $lastID = $dbh->last_insert_id(undef, undef, $table, 'id'); + if (!defined $valRow->{id}) { + # id has not been pre-specified, we need to fetch it from DB: + $valRow->{'id'} = $lastID; + vlog(3, "DB-generated id for <$table> is <$valRow->{id}>"); + } + elsif ($valRow->{'id'} ne $lastID) { + # id has been pre-specified, but DB changed it, so we update + # it with the pre-specified value + my $sql2 = unshiftHereDoc(<<" End-of-Here"); + UPDATE $table SET id='$valRow->{'id'}' WHERE id='$lastID' + End-of-Here + vlog(3, $sql2); + $dbh->do($sql2) or croak _tr( + q[Can't update table <%s> (%s)], $table, $dbh->errstr + ); + } + } + push @ids, $valRow->{'id'}; + } + return wantarray() ? @ids : shift @ids; +} + +sub _doDelete +{ + my $self = shift; + my $table = shift; + my $IDs = shift; + my $idCol = shift; + my $additionalWhereClause = shift; + + my $dbh = $self->{'dbh'}; + + $IDs = [undef] unless defined $IDs; + $idCol = 'id' unless defined $idCol; + foreach my $id (@$IDs) { + my $sql = "DELETE FROM $table"; + if (defined $id) { + $sql .= " WHERE $idCol = " . $self->quote($id); + if (defined $additionalWhereClause) { + $sql .= $additionalWhereClause; + } + } + vlog(3, $sql); + my $sth = $dbh->prepare($sql) + or croak _tr(q[Can't delete from table <%s> (%s)], $table, + $dbh->errstr); + $sth->execute() + or croak _tr(q[Can't delete from table <%s> (%s)], $table, + $dbh->errstr); + } + return 1; +} + +sub _doUpdate +{ + my $self = shift; + my $table = shift; + my $IDs = shift; + my $valRows = shift; + + my $dbh = $self->{'dbh'}; + my $valRow = (@$valRows)[0]; + return 1 if !defined $valRow || !scalar keys %$valRow; + + my $idx = 0; + foreach my $valRow (@$valRows) { + my $id = $IDs->[$idx++]; + my %valData = %$valRow; + # fail if asked to change the column 'id', as that is bogus + return if exists $valData{id} && $valData{id} ne $id; + # filter column 'id' if present, as we don't want to write it + delete $valData{id}; + my @cols = map { "$_ = " . $self->quote($valRow->{$_}) } + grep { $_ ne 'id' } + # filter column 'id' if present, as we don't want + # to update it! + keys %$valRow; + next if !@cols; + my $cols = join ', ', @cols; + my $sql = "UPDATE $table SET $cols"; + if (defined $id) { + $sql .= " WHERE id = " . $self->quote($id); + } + vlog(3, $sql); + my $sth = $dbh->prepare($sql) + or croak _tr(q[Can't update table <%s> (%s)], $table, $dbh->errstr); + $sth->execute() + or croak _tr(q[Can't update table <%s> (%s)], $table, $dbh->errstr); + } + return 1; +} + +sub _updateRefTable +{ + my $self = shift; + my $table = shift; + my $keyID = shift; + my $newValueIDs = shift; + my $keyCol = shift; + my $valueCol = shift; + my $oldValueIDs = shift; + + my %lastValueIDs; + @lastValueIDs{@$oldValueIDs} = (); + + foreach my $valueID (@$newValueIDs) { + if (!exists $lastValueIDs{$valueID}) { + # value-ID is new, create it + my $valRow = { + $keyCol => $keyID, + $valueCol => $valueID, + }; + $self->_doInsert($table, [$valRow]); + } else { + # value-ID already exists, leave as is, but remove from hash: + delete $lastValueIDs{$valueID}; + } + } + + # all the remaining value-IDs need to be removed: + if (scalar keys %lastValueIDs) { + $self->_doDelete($table, [keys %lastValueIDs], + $valueCol, " AND $keyCol='$keyID'"); + } + return 1; +} + +sub _updateOneToManyRefAttr +{ + my $self = shift; + my $table = shift; + my $oneID = shift; + my $newManyIDs = shift; + my $fkCol = shift; + my $oldManyIDs = shift; + + my %lastManyIDs; + @lastManyIDs{@$oldManyIDs} = (); + + foreach my $id (@$newManyIDs) { + if (!exists $lastManyIDs{$id}) { + # ID has changed, update it + $self->_doUpdate($table, $id, [{$fkCol => $oneID}]); + } else { + # ID hasn't changed, leave as is, but remove from hash: + delete $lastManyIDs{$id}; + } + } + + # all the remaining many-IDs need to be set to 0: + foreach my $id (scalar keys %lastManyIDs) { + $self->_doUpdate($table, $id, [{$fkCol => '0'}]); + } + return 1; +} + +sub addVendorOS +{ + my $self = shift; + my $valRows = shift; + + return $self->_doInsert('vendor_os', $valRows); +} + +sub removeVendorOS +{ + my $self = shift; + my $vendorOSIDs = shift; + + return $self->_doDelete('vendor_os', $vendorOSIDs); +} + +sub changeVendorOS +{ + my $self = shift; + my $vendorOSIDs = shift; + my $valRows = shift; + + return $self->_doUpdate('vendor_os', $vendorOSIDs, $valRows); +} + +sub addInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + my $newAttrs = shift; + + return if !defined $vendorOSID || !$pluginName; + + my $installedPlugin + = $self->fetchInstalledPlugins($vendorOSID, $pluginName, 1); + if (!$installedPlugin) { + return if !$self->_doInsert('installed_plugin', [ { + vendor_os_id => $vendorOSID, + plugin_name => $pluginName, + } ] ); + $installedPlugin + = $self->fetchInstalledPlugins($vendorOSID, $pluginName, 1); + } + return if !$installedPlugin; + + # determine the required attribute actions ... + my $oldAttrs = $installedPlugin->{attrs} || {}; + my @attrsToBeInserted + = grep { + exists $newAttrs->{$_} && !exists $oldAttrs->{$_} + } keys %$newAttrs; + my @attrsToBeDeleted = grep { !exists $newAttrs->{$_} } keys %$oldAttrs; + my @attrsToBeUpdated + = grep { + exists $newAttrs->{$_} && exists $oldAttrs->{$_} + && ($oldAttrs->{$_}->{value} || '-') ne ($newAttrs->{$_} || '-') + } keys %$newAttrs; + + # ... insert the new ones ... + my @attrData + = map { + { + installed_plugin_id => $installedPlugin->{id}, + name => $_, + value => $newAttrs->{$_}, + } + } + @attrsToBeInserted; + $self->_doInsert('installed_plugin_attr', \@attrData); + + # ... delete the old ones ... + my @oldIDs = map { $oldAttrs->{$_}->{id} } @attrsToBeDeleted; + $self->_doDelete('installed_plugin_attr', \@oldIDs); + + # ... and update the changed ones ... + my @IDs = map { $oldAttrs->{$_}->{id} } @attrsToBeUpdated; + @attrData = map { { value => $newAttrs->{$_} } } @attrsToBeUpdated; + $self->_doUpdate('installed_plugin_attr', \@IDs, \@attrData); + + return 1; +} + +sub removeInstalledPlugin +{ + my $self = shift; + my $vendorOSID = shift; + my $pluginName = shift; + + return if !defined $vendorOSID || !$pluginName; + + my $plugin = $self->fetchInstalledPlugins($vendorOSID, $pluginName); + return if !$plugin; + return if !$self->_doDelete( + 'installed_plugin_attr', [ $plugin->{id} ], 'installed_plugin_id' + ); + return $self->_doDelete('installed_plugin', [ $plugin->{id} ] ); +} + +sub addExport +{ + my $self = shift; + my $valRows = shift; + + return $self->_doInsert('export', $valRows); +} + +sub removeExport +{ + my $self = shift; + my $exportIDs = shift; + + return $self->_doDelete('export', $exportIDs); +} + +sub changeExport +{ + my $self = shift; + my $exportIDs = shift; + my $valRows = shift; + + return $self->_doUpdate('export', $exportIDs, $valRows); +} + +sub changeGlobalInfo +{ + my $self = shift; + my $id = shift; + my $value = shift; + + return $self->_doUpdate('global_info', [$id], [{'value' => $value}]); +} + +sub addSystem +{ + my $self = shift; + my $valRows = shift; + my $attrValRows = shift; + + # ... store the systems to get the IDs ... + my @systemIDs = $self->_doInsert('system', $valRows); + + # ... finally store the individual attribute sets + foreach my $id (@systemIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setSystemAttrs($id, $attrs); + } + + return @systemIDs; +} + +sub removeSystem +{ + my $self = shift; + my $systemIDs = shift; + + return $self->_doDelete('system', $systemIDs); +} + +sub changeSystem +{ + my $self = shift; + my $systemIDs = shift; + my $valRows = shift; + my $attrValRows = shift; + + # store the attribute hashes individually + foreach my $id (@$systemIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setSystemAttrs($id, $attrs); + } + + # finally update all systems in one go + return $self->_doUpdate('system', $systemIDs, $valRows); +} + +sub setSystemAttrs +{ + my $self = shift; + my $systemID = shift; + my $newAttrs = shift; + + # fetch info about existing attrs + my $sql = "SELECT * FROM system_attr WHERE system_id = $systemID"; + my %oldAttrs = map { ($_->{name}, $_) } $self->_doSelect($sql); + + # We write undefined attributes for the default system only, such that + # it shows all existing attributes. All other systems never write undefined + # attributes (if they have not defined a specific attribute, it is + # inherited from "above"). We encapsulate that decision in the following + # delegate + my $valueIsOK = sub { + my $value = shift; + return $systemID == 0 || defined $value; + }; + + # determine the required actions ... + my @attrsToBeInserted + = grep { + $valueIsOK->($newAttrs->{$_}) && !exists $oldAttrs{$_} + } keys %$newAttrs; + my @attrsToBeDeleted + = grep { + !exists $newAttrs->{$_} || !$valueIsOK->($newAttrs->{$_}) + } keys %oldAttrs; + my @attrsToBeUpdated + = grep { + $valueIsOK->($newAttrs->{$_}) && exists $oldAttrs{$_} + && ((defined($oldAttrs{$_}->{value}) xor defined($newAttrs->{$_})) + || (defined($oldAttrs{$_}->{value}) && defined($newAttrs->{$_}) + && $oldAttrs{$_}->{value} ne $newAttrs->{$_})) + } keys %$newAttrs; + + # ... insert the new ones ... + my @attrData + = map { + { + system_id => $systemID, + name => $_, + value => $newAttrs->{$_}, + } + } + @attrsToBeInserted; + $self->_doInsert('system_attr', \@attrData); + + # ... delete the old ones ... + my @oldIDs = map { $oldAttrs{$_}->{id} } @attrsToBeDeleted; + $self->_doDelete('system_attr', \@oldIDs); + + # ... and update the changed ones ... + my @IDs = map { $oldAttrs{$_}->{id} } @attrsToBeUpdated; + @attrData = map { { value => $newAttrs->{$_} } } @attrsToBeUpdated; + $self->_doUpdate('system_attr', \@IDs, \@attrData); + + return 1; +} + +sub setClientIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + my $clientIDs = shift; + + my @currClients = $self->fetchClientIDsOfSystem($systemID); + return $self->_updateRefTable( + 'client_system_ref', $systemID, $clientIDs, 'system_id', 'client_id', + \@currClients + ); +} + +sub setGroupIDsOfSystem +{ + my $self = shift; + my $systemID = shift; + my $groupIDs = shift; + + my @currGroups = $self->fetchGroupIDsOfSystem($systemID); + return $self->_updateRefTable( + 'group_system_ref', $systemID, $groupIDs, 'system_id', 'group_id', + \@currGroups + ); +} + +sub addClient +{ + my $self = shift; + my $valRows = shift; + my $attrValRows = shift; + + # ... store the clients to get the IDs ... + my @clientIDs = $self->_doInsert('client', $valRows); + + # ... finally store the individual attribute sets + foreach my $id (@clientIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setClientAttrs($id, $attrs); + } + + return @clientIDs; +} + +sub removeAttributeByName +{ + my $self = shift; + my $attrName = shift; + + return $self->_doDelete('system_attr', [ $attrName ], 'name') + && $self->_doDelete('client_attr', [ $attrName ], 'name') + && $self->_doDelete('group_attr', [ $attrName ], 'name'); +} + +sub removeClient +{ + my $self = shift; + my $clientIDs = shift; + + return $self->_doDelete('client', $clientIDs); +} + +sub changeClient +{ + my $self = shift; + my $clientIDs = shift; + my $valRows = shift; + my $attrValRows = shift; + + # store the attribute hashes individually + foreach my $id (@$clientIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setClientAttrs($id, $attrs); + } + + # finally update all systems in one go + return $self->_doUpdate('client', $clientIDs, $valRows); +} + +sub setClientAttrs +{ + my $self = shift; + my $clientID = shift; + my $newAttrs = shift; + + # fetch info about existing attrs + my $sql = "SELECT * FROM client_attr WHERE client_id = $clientID"; + my %oldAttrs = map { ($_->{name}, $_) } $self->_doSelect($sql); + + # determine the required actions ... + my @attrsToBeInserted + = grep { + defined $newAttrs->{$_} && !exists $oldAttrs{$_} + } keys %$newAttrs; + my @attrsToBeDeleted = grep { !defined $newAttrs->{$_} } keys %oldAttrs; + my @attrsToBeUpdated + = grep { + defined $newAttrs->{$_} && exists $oldAttrs{$_} + && ($oldAttrs{$_}->{value} || '') ne ($newAttrs->{$_} || '') + } keys %$newAttrs; + + # ... insert the new ones ... + my @attrData + = map { + { + client_id => $clientID, + name => $_, + value => $newAttrs->{$_}, + } + } + @attrsToBeInserted; + $self->_doInsert('client_attr', \@attrData); + + # ... delete the old ones ... + my @oldIDs = map { $oldAttrs{$_}->{id} } @attrsToBeDeleted; + $self->_doDelete('client_attr', \@oldIDs); + + # ... and update the changed ones ... + my @IDs = map { $oldAttrs{$_}->{id} } @attrsToBeUpdated; + @attrData = map { { value => $newAttrs->{$_} } } @attrsToBeUpdated; + $self->_doUpdate('client_attr', \@IDs, \@attrData); + + return 1; +} + +sub setSystemIDsOfClient +{ + my $self = shift; + my $clientID = shift; + my $systemIDs = shift; + + my @currSystems = $self->fetchSystemIDsOfClient($clientID); + return $self->_updateRefTable( + 'client_system_ref', $clientID, $systemIDs, 'client_id', 'system_id', + \@currSystems + ); +} + +sub setGroupIDsOfClient +{ + my $self = shift; + my $clientID = shift; + my $groupIDs = shift; + + my @currGroups = $self->fetchGroupIDsOfClient($clientID); + return $self->_updateRefTable( + 'group_client_ref', $clientID, $groupIDs, 'client_id', 'group_id', + \@currGroups + ); +} + +sub addGroup +{ + my $self = shift; + my $valRows = shift; + my $attrValRows = shift; + + # ... store the groups to get the IDs ... + my @groupIDs = $self->_doInsert('groups', $valRows); + + # ... finally store the individual attribute sets + foreach my $id (@groupIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setGroupAttrs($id, $attrs); + } + + return @groupIDs; +} + +sub removeGroup +{ + my $self = shift; + my $groupIDs = shift; + + return $self->_doDelete('groups', $groupIDs); +} + +sub changeGroup +{ + my $self = shift; + my $groupIDs = shift; + my $valRows = shift; + my $attrValRows = shift; + + # store the attribute hashes individually + foreach my $id (@$groupIDs) { + my $attrs = shift @$attrValRows; + next if !defined $attrs; + return if !$self->setGroupAttrs($id, $attrs); + } + + # finally update all groups in one go + return $self->_doUpdate('groups', $groupIDs, $valRows); +} + +sub setGroupAttrs +{ + my $self = shift; + my $groupID = shift; + my $newAttrs = shift; + + # fetch info about existing attrs + my $sql = "SELECT * FROM group_attr WHERE group_id = $groupID"; + my %oldAttrs = map { ($_->{name}, $_) } $self->_doSelect($sql); + + # determine the required actions ... + my @attrsToBeInserted + = grep { + defined $newAttrs->{$_} && !exists $oldAttrs{$_} + } keys %$newAttrs; + my @attrsToBeDeleted = grep { !defined $newAttrs->{$_} } keys %oldAttrs; + my @attrsToBeUpdated + = grep { + defined $newAttrs->{$_} && exists $oldAttrs{$_} + && ($oldAttrs{$_}->{value} || '') ne ($newAttrs->{$_} || '') + } keys %$newAttrs; + + # ... insert the new ones ... + my @attrData + = map { + { + group_id => $groupID, + name => $_, + value => $newAttrs->{$_}, + } + } + @attrsToBeInserted; + $self->_doInsert('group_attr', \@attrData); + + # ... delete the old ones ... + my @oldIDs = map { $oldAttrs{$_}->{id} } @attrsToBeDeleted; + $self->_doDelete('group_attr', \@oldIDs); + + # ... and update the changed ones ... + my @IDs = map { $oldAttrs{$_}->{id} } @attrsToBeUpdated; + @attrData = map { { value => $newAttrs->{$_} } } @attrsToBeUpdated; + $self->_doUpdate('group_attr', \@IDs, \@attrData); + + return 1; +} + +sub setClientIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + my $clientIDs = shift; + + my @currClients = $self->fetchClientIDsOfGroup($groupID); + return $self->_updateRefTable( + 'group_client_ref', $groupID, $clientIDs, 'group_id', 'client_id', + \@currClients + ); +} + +sub setSystemIDsOfGroup +{ + my $self = shift; + my $groupID = shift; + my $systemIDs = shift; + + my @currSystems = $self->fetchSystemIDsOfGroup($groupID); + return $self->_updateRefTable( + 'group_system_ref', $groupID, $systemIDs, 'group_id', 'system_id', + \@currSystems + ); +} + +################################################################################ +### schema related functions +################################################################################ +sub _convertColDescrsToDBNativeString +{ + my $self = shift; + my $colDescrs = shift; + + my $colDescrString = join ', ', map { + # convert each column description into database native format + # (e.g. convert 'name:s.45' to 'name char(45)'): + if (!m[^\s*(\S+?)\s*:\s*(\S+?)\s*$]) { + croak _tr('UnknownDbSchemaColumnDescr', $_); + } + "$1 " . $self->schemaConvertTypeDescrToNative($2); + } @$colDescrs; + return $colDescrString; +} + +sub _convertColDescrsToColNames +{ + my $self = shift; + my $colDescrs = shift; + + return map { + # convert each column description into database native format + # (e.g. convert 'name:s.45' to 'name char(45)'): + if (!m[^\s*(\S+?)\s*:.+$]) { + croak _tr('UnknownDbSchemaColumnDescr', $_); + } + $1; + } @$colDescrs; +} + +sub _convertColDescrsToColNamesString +{ + my $self = shift; + my $colDescrs = shift; + + return join ', ', $self->_convertColDescrsToColNames($colDescrs); +} + +sub schemaFetchDBVersion +{ + my $self = shift; + + my $dbh = $self->{dbh}; + local $dbh->{RaiseError} = 1; + my $row = + eval { $dbh->selectrow_hashref('SELECT schema_version FROM meta'); }; + return 0 if $@; + # no database access possible + return unless defined $row; + # no entry in meta-table + return $row->{schema_version}; +} + +sub schemaSetDBVersion +{ + my $self = shift; + my $dbVersion = shift; + + $self->{dbh}->do("UPDATE meta SET schema_version = '$dbVersion'") + or croak _tr('Unable to set DB-schema version to %s!', $dbVersion); + + return 1; +} + +sub schemaFetchPluginInfoHashVal +{ + my $self = shift; + + my $row + = $self->{dbh}->selectrow_hashref('SELECT plugin_info_hash FROM meta'); + + return $row->{plugin_info_hash}; +} + +sub schemaSetPluginInfoHashVal +{ + my $self = shift; + my $pluginInfoHashVal = shift; + + $self->{dbh}->do("UPDATE meta SET plugin_info_hash = '$pluginInfoHashVal'") + or croak _tr( + 'Unable to set plugin-info-hash-value to %s!', $pluginInfoHashVal + ); + + return 1; +} + +sub schemaConvertTypeDescrToNative +{ # a default implementation, many DBs need to override... + my $self = shift; + my $typeDescr = lc(shift); + + if ($typeDescr eq 'b') { + return 'integer'; + } elsif ($typeDescr eq 'i') { + return 'integer'; + } elsif ($typeDescr eq 'pk') { + return 'integer primary key'; + } elsif ($typeDescr eq 'fk') { + return 'integer'; + } elsif ($typeDescr =~ m[^s\.(\d+)$]i) { + return "varchar($1)"; + } else { + croak _tr('UnknownDbSchemaTypeDescr', $typeDescr); + } +} + +sub schemaAddTable +{ + my $self = shift; + my $table = shift; + my $colDescrs = shift; + my $initialVals = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + vlog(1, "adding table <$table> to schema...") unless $isSubCmd; + my $colDescrString = $self->_convertColDescrsToDBNativeString($colDescrs); + my $sql = "CREATE TABLE $table ($colDescrString)"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't create table <%s> (%s)], $table, $dbh->errstr); + if (defined $initialVals) { + # don't care about IDs if there's no 'id' column in this table + my $ignoreIDs = ($colDescrString !~ m[\bid\b]); + $self->_doInsert($table, $initialVals, $ignoreIDs); + } + return; +} + +sub schemaDropTable +{ + my $self = shift; + my $table = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + vlog(1, "dropping table <$table> from schema...") unless $isSubCmd; + my $sql = "DROP TABLE $table"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't drop table <%s> (%s)], $table, $dbh->errstr); + return; +} + +sub schemaRenameTable +{ # a rather simple-minded implementation that renames a table in several + # steps: + # - create the new table + # - copy the data over from the old one + # - drop the old table + # This should be overriden for advanced DBs, as these more often than not + # implement the 'ALTER TABLE RENAME TO ' SQL-command (which + # is much more efficient). + my $self = shift; + my $oldTable = shift; + my $newTable = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + vlog(1, "renaming table <$oldTable> to <$newTable>...") unless $isSubCmd; + my $colDescrString = $self->_convertColDescrsToDBNativeString($colDescrs); + my $sql = "CREATE TABLE $newTable ($colDescrString)"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't create table <%s> (%s)], $oldTable, $dbh->errstr); + my $colNamesString = $self->_convertColDescrsToColNamesString($colDescrs); + my @dataRows = $self->_doSelect("SELECT $colNamesString FROM $oldTable"); + $self->_doInsert($newTable, \@dataRows); + $sql = "DROP TABLE $oldTable"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't drop table <%s> (%s)], $oldTable, $dbh->errstr); + return; +} + +sub schemaAddColumns +{ # a rather simple-minded implementation that adds columns to a table + # in several steps: + # - create a temp table with the new layout + # - copy the data from the old table into the new one + # - drop the old table + # - rename the temp table to the original name + # This should be overriden for advanced DBs, as these more often than not + # implement the 'ALTER TABLE ADD COLUMN ' SQL-command (which + # is much more efficient). + my $self = shift; + my $table = shift; + my $newColDescrs = shift; + my $newColDefaultVals = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $tempTable = "${table}_temp"; + my @newColNames = $self->_convertColDescrsToColNames($newColDescrs); + my $newColStr = join ', ', @newColNames; + vlog(1, "adding columns <$newColStr> to table <$table>...") + unless $isSubCmd; + $self->schemaAddTable($tempTable, $colDescrs, undef, 1); + + # copy the data from the old table to the new: + my @dataRows = $self->_doSelect("SELECT * FROM $table"); + $self->_doInsert($tempTable, \@dataRows); + # N.B.: for the insert, we rely on the caller having added the new + # columns to the end of the table (if that isn't the case, things + # break here!) + + if (defined $newColDefaultVals) { + # default values have been provided, we apply them now: + $self->_doUpdate($tempTable, undef, $newColDefaultVals); + } + + $self->schemaDropTable($table, 1); + $self->schemaRenameTable($tempTable, $table, $colDescrs, 1); + return; +} + +sub schemaDropColumns +{ # a rather simple-minded implementation that drops columns from a table + # in several steps: + # - create a temp table with the new layout + # - copy the data from the old table into the new one + # - drop the old table + # - rename the temp table to the original name + # This should be overriden for advanced DBs, as these sometimes + # implement the 'ALTER TABLE
DROP COLUMN ' SQL-command (which + # is much more efficient). + my $self = shift; + my $table = shift; + my $dropColNames = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $tempTable = "${table}_temp"; + my $dropColStr = join ', ', @$dropColNames; + vlog(1, "dropping columns <$dropColStr> from table <$table>...") + unless $isSubCmd; + $self->schemaAddTable($tempTable, $colDescrs, undef, 1); + + # copy the data from the old table to the new: + my $colNamesString = $self->_convertColDescrsToColNamesString($colDescrs); + my @dataRows = $self->_doSelect("SELECT $colNamesString FROM $table"); + $self->_doInsert($tempTable, \@dataRows); + + $self->schemaDropTable($table, 1); + $self->schemaRenameTable($tempTable, $table, $colDescrs, 1); + return; +} + +sub schemaChangeColumns +{ # a rather simple-minded implementation that changes columns + # in several steps: + # - create a temp table with the new layout + # - copy the data from the old table into the new one + # - drop the old table + # - rename the temp table to the original name + # This should be overriden for advanced DBs, as these sometimes + # implement the 'ALTER TABLE
CHANGE COLUMN ' SQL-command (which + # is much more efficient). + my $self = shift; + my $table = shift; + my $colChanges = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $tempTable = "${table}_temp"; + my $changeColStr = join ', ', keys %$colChanges; + vlog(1, "changing columns <$changeColStr> of table <$table>...") + unless $isSubCmd; + $self->schemaAddTable($tempTable, $colDescrs, undef, 1); + + # copy the data from the old table to the new: + my $colNamesString = $self->_convertColDescrsToColNamesString($colDescrs); + my @dataRows = $self->_doSelect("SELECT * FROM $table"); + foreach my $oldCol (keys %$colChanges) { + my $newCol = + $self->_convertColDescrsToColNamesString([$colChanges->{$oldCol}]); + # rename current column in all data-rows: + foreach my $row (@dataRows) { + $row->{$newCol} = $row->{$oldCol}; + delete $row->{$oldCol}; + } + } + $self->_doInsert($tempTable, \@dataRows); + + $self->schemaDropTable($table, 1); + $self->schemaRenameTable($tempTable, $table, $colDescrs, 1); + return; +} + +1; + +=head1 NAME + +DBI.pm - provides DBI-based implementation of the OpenSLX MetaDB API. + +=head1 SYNOPSIS + +This class is the base for all DBI-related metaDB variants. +It provides a default implementation for every method, such that +each DB-specific implementation needs to override only the methods +that require a different implementation than the one provided here. + +=head1 NOTES + +In case you ask yourself why none of the SQL-statements in this +file make use of SQL bind params (?), the answer is that at least +one DBD-driver didn't like them at all. As the performance gains +from bound params are not really necessary here, we simply do +not use them. + diff --git a/src/config-db/OpenSLX/MetaDB/SQLite.pm b/src/config-db/OpenSLX/MetaDB/SQLite.pm new file mode 100644 index 00000000..0846582f --- /dev/null +++ b/src/config-db/OpenSLX/MetaDB/SQLite.pm @@ -0,0 +1,130 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# SQLite.pm +# - provides SQLite-specific overrides of the OpenSLX MetaDB API. +# ----------------------------------------------------------------------------- +package OpenSLX::MetaDB::SQLite; + +use strict; +use warnings; + +use base qw(OpenSLX::MetaDB::DBI); + +################################################################################ +### This class provides a MetaDB backend for SQLite databases. +### - by default the db will be created inside a 'openslxdata-sqlite' directory. +################################################################################ +use DBD::SQLite; +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub databaseExists +{ + my $self = shift; + + my $fullDBPath = $self->_getDBPath() . "/$openslxConfig{'db-name'}"; + return -e $fullDBPath; +} + +sub dropDatabase +{ + my $self = shift; + + if ($self->{dbh}) { + die "need to disconnect before you can drop the database!"; + } + + my $fullDBPath = $self->_getDBPath() . "/$openslxConfig{'db-name'}"; + system("rm -rf $fullDBPath") if -e $fullDBPath; +} + +sub connect ## no critic (ProhibitBuiltinHomonyms) +{ + my $self = shift; + + my $dbSpec = $openslxConfig{'db-spec'}; + if (!defined $dbSpec) { + # build $dbSpec from individual parameters: + my $dbPath = $self->_getDBPath; + system("mkdir -p $dbPath") unless -e $dbPath; + $dbSpec = "dbname=$dbPath/$openslxConfig{'db-name'}"; + } + vlog(1, "trying to connect to SQLite-database <$dbSpec>"); + $self->{'dbh'} = DBI->connect( + "dbi:SQLite:$dbSpec", undef, undef, + {PrintError => 0, AutoCommit => 1, sqlite_unicode => 1} + ) or die _tr("Cannot connect to database <%s> (%s)", $dbSpec, $DBI::errstr); + return 1; +} + +sub schemaRenameTable +{ + my $self = shift; + my $oldTable = shift; + my $newTable = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + vlog(1, "renaming table <$oldTable> to <$newTable>...") unless $isSubCmd; + my $sql = "ALTER TABLE $oldTable RENAME TO $newTable"; + vlog(3, $sql); + $dbh->do($sql) + or croak(_tr(q[Can't rename table <%s> (%s)], $oldTable, $dbh->errstr)); + return; +} + +sub schemaAddColumns +{ + my $self = shift; + my $table = shift; + my $newColDescrs = shift; + my $newColDefaultVals = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $newColNames = $self->_convertColDescrsToColNamesString($newColDescrs); + vlog(1, "adding columns <$newColNames> to table <$table>") + unless $isSubCmd; + foreach my $colDescr (@$newColDescrs) { + my $colDescrString = + $self->_convertColDescrsToDBNativeString([$colDescr]); + my $sql = "ALTER TABLE $table ADD COLUMN $colDescrString"; + vlog(3, $sql); + $dbh->do($sql) + or croak(_tr(q[Can't add column to table <%s> (%s)], $table, + $dbh->errstr)); + } + # if default values have been provided, we apply them now: + if (defined $newColDefaultVals) { + $self->_doUpdate($table, undef, $newColDefaultVals); + } + return; +} + +sub _getDBPath +{ + my $self = shift; + + return "$openslxConfig{'private-path'}/db/sqlite"; +} + +1; diff --git a/src/config-db/OpenSLX/MetaDB/mysql.pm b/src/config-db/OpenSLX/MetaDB/mysql.pm new file mode 100644 index 00000000..82487191 --- /dev/null +++ b/src/config-db/OpenSLX/MetaDB/mysql.pm @@ -0,0 +1,179 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# mysql.pm +# - provides mysql-specific overrides of the OpenSLX MetaDB API. +# ----------------------------------------------------------------------------- +package OpenSLX::MetaDB::mysql; + +use strict; +use warnings; + +use base qw(OpenSLX::MetaDB::DBI); + +################################################################################ +### This class provides a MetaDB backend for mysql databases. +### - by default the db will be created inside a 'openslxdata-mysql' directory. +################################################################################ +use DBD::mysql; +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub connect ## no critic (ProhibitBuiltinHomonyms) +{ + my $self = shift; + + my $dbSpec = $openslxConfig{'db-spec'}; + if (!defined $dbSpec) { + # build $dbSpec from individual parameters: + $dbSpec = "database=$openslxConfig{'db-name'}"; + } + my $dbUser + = $openslxConfig{'db-user'} + ? $openslxConfig{'db-user'} + : (getpwuid($>))[0]; + my $dbPasswd = $openslxConfig{'db-passwd'}; + if (!defined $dbPasswd) { + $dbPasswd = readPassword("db-password> "); + } + + vlog(1, "trying to connect user '$dbUser' to mysql-database '$dbSpec'"); + $self->{'dbh'} = DBI->connect( + "dbi:mysql:$dbSpec", $dbUser, $dbPasswd, { + PrintError => 0, + mysql_auto_reconnect => 1, + } + ) or die _tr("Cannot connect to database '%s' (%s)", $dbSpec, $DBI::errstr); + return 1; +} + +sub schemaConvertTypeDescrToNative +{ + my $self = shift; + my $typeDescr = lc(shift); + + if ($typeDescr eq 'b') { + return 'integer'; + } elsif ($typeDescr eq 'i') { + return 'integer'; + } elsif ($typeDescr eq 'pk') { + return 'integer AUTO_INCREMENT primary key'; + } elsif ($typeDescr eq 'fk') { + return 'integer'; + } elsif ($typeDescr =~ m[^s\.(\d+)$]i) { + return "varchar($1)"; + } else { + croak _tr('UnknownDbSchemaTypeDescr', $typeDescr); + } + return; +} + +sub schemaRenameTable +{ + my $self = shift; + my $oldTable = shift; + my $newTable = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + vlog(1, "renaming table <$oldTable> to <$newTable>...") unless $isSubCmd; + my $sql = "ALTER TABLE $oldTable RENAME TO $newTable"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't rename table <%s> (%s)], $oldTable, $dbh->errstr); + return; +} + +sub schemaAddColumns +{ + my $self = shift; + my $table = shift; + my $newColDescrs = shift; + my $newColDefaultVals = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $newColNames = $self->_convertColDescrsToColNamesString($newColDescrs); + vlog(1, "adding columns <$newColNames> to table <$table>") unless $isSubCmd; + my $addClause = join ', ', + map { "ADD COLUMN " . $self->_convertColDescrsToDBNativeString([$_]); } + @$newColDescrs; + my $sql = "ALTER TABLE $table $addClause"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't add columns to table <%s> (%s)], $table, + $dbh->errstr); + # if default values have been provided, we apply them now: + if (defined $newColDefaultVals) { + $self->_doUpdate($table, undef, $newColDefaultVals); + } + return; +} + +sub schemaDropColumns +{ + my $self = shift; + my $table = shift; + my $dropColNames = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $dropColStr = join ', ', @$dropColNames; + vlog(1, + "dropping columns <$dropColStr> from table <$table>...") + unless $isSubCmd; + my $dropClause = join ', ', map { "DROP COLUMN $_" } @$dropColNames; + my $sql = "ALTER TABLE $table $dropClause"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't drop columns from table <%s> (%s)], $table, + $dbh->errstr); + return; +} + +sub schemaChangeColumns +{ + my $self = shift; + my $table = shift; + my $colChanges = shift; + my $colDescrs = shift; + my $isSubCmd = shift; + + my $dbh = $self->{'dbh'}; + my $changeColStr = join ', ', keys %$colChanges; + vlog(1, "changing columns <$changeColStr> in table <$table>...") + unless $isSubCmd; + my $changeClause = join ', ', map { + "CHANGE COLUMN $_ " + . $self->_convertColDescrsToDBNativeString([$colChanges->{$_}]); + } + keys %$colChanges; + my $sql = "ALTER TABLE $table $changeClause"; + vlog(3, $sql); + $dbh->do($sql) + or croak _tr(q[Can't change columns in table <%s> (%s)], $table, + $dbh->errstr); + return; +} + +1; diff --git a/src/config-db/slxconfig b/src/config-db/slxconfig new file mode 100755 index 00000000..d4749f97 --- /dev/null +++ b/src/config-db/slxconfig @@ -0,0 +1,1785 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +slxconfig + This script can be used to display or change the OpenSLX configuration + database. You can create systems that use a specific vendor-OS + and you can create clients for these systems, too. +]; + +use Clone qw(clone); +use Getopt::Long qw(:config pass_through); +use List::Util qw(max); +use Pod::Usage; + +# add the folder this script lives in and the lib-folder to perl's +# search path for modules: +use FindBin; +use lib "$FindBin::RealBin"; +use lib "$FindBin::RealBin/../lib"; + +use lib "$FindBin::RealBin/../config-db"; + +# development path to config-db + +use OpenSLX::AttributeRoster; +use OpenSLX::Basics; +use OpenSLX::ConfigDB; +use OpenSLX::ConfigFolder; +use OpenSLX::Utils; + +my %option; + +GetOptions( + 'help|?' => \$option{helpReq}, + 'inherited' => \$option{inherited}, + 'man' => \$option{manReq}, + 'verbose' => \$option{verbose}, + 'version' => \$option{versionReq}, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +if ($option{manReq}) { + # avoid dubious problem with perldoc in combination with UTF-8 that + # leads to strange dashes and single-quotes being used + $ENV{LC_ALL} = 'POSIX'; + pod2usage(-verbose => 2); +} +if ($option{versionReq}) { + system('slxversion'); + exit 1; +} + +# if the user requested to see inherited attributes, we activate verbose mode, +# too, such that we actually show attributes +if ($option{inherited}) { + $option{verbose} = 1; +} + +openslxInit(); + +my $openslxDB = OpenSLX::ConfigDB->new(); +$openslxDB->connect(); + +my $action = shift @ARGV || ''; +if ($action =~ m[^add-c]i) { + addClientToConfigDB(@ARGV); +} +elsif ($action =~ m[^add-g]i) { + addGroupToConfigDB(@ARGV); +} +elsif ($action =~ m[^add-s]i) { + addSystemToConfigDB(@ARGV); +} +elsif ($action =~ m[^change-v]i) { + changeVendorOSInConfigDB(@ARGV); +} +elsif ($action =~ m[^change-e]i) { + changeExportInConfigDB(@ARGV); +} +elsif ($action =~ m[^change-g]i) { + changeGroupInConfigDB(@ARGV); +} +elsif ($action =~ m[^change-s]i) { + changeSystemInConfigDB(@ARGV); +} +elsif ($action =~ m[^change-c]i) { + changeClientInConfigDB(@ARGV); +} +elsif ($action =~ m[^cleanup-db]i) { + cleanupConfigDB(@ARGV); +} +elsif ($action =~ m[^list-a]) { + listAttributes(@ARGV); +} +elsif ($action =~ m[^list-c]) { + print _tr("List of clients:\n"); + listClients(@ARGV); +} +elsif ($action =~ m[^list-e]) { + print _tr("List of exports:\n"); + listExports(@ARGV); +} +elsif ($action =~ m[^list-g]) { + print _tr("List of groups:\n"); + listGroups(@ARGV); +} +elsif ($action =~ m[^list-s]) { + print _tr("List of systems:\n"); + listSystems(@ARGV); +} +elsif ($action =~ m[^list-v]) { + print _tr("List of vendor-OSes:\n"); + listVendorOSes(@ARGV); +} +elsif ($action =~ m[^search-c]) { + print _tr("Matching clients:\n"); + searchClients(@ARGV); +} +elsif ($action =~ m[^search-e]) { + print _tr("Matching exports:\n"); + searchExports(@ARGV); +} +elsif ($action =~ m[^search-g]) { + print _tr("Matching groups:\n"); + searchGroups(@ARGV); +} +elsif ($action =~ m[^search-s]) { + print _tr("Matching systems:\n"); + searchSystems(@ARGV); +} +elsif ($action =~ m[^search-v]) { + print _tr("Matching vendor-OSes:\n"); + searchVendorOSes(@ARGV); +} +elsif ($action =~ m[^remove-c]i) { + removeClientFromConfigDB(@ARGV); +} +elsif ($action =~ m[^remove-g]i) { + removeGroupFromConfigDB(@ARGV); +} +elsif ($action =~ m[^remove-s]i) { + removeSystemFromConfigDB(@ARGV); +} +else { + vlog(0, _tr(unshiftHereDoc(<<' END-OF-HERE'), $0)); + You need to specify exactly one of these actions: + add-client + add-group + add-system + change-client + change-export + change-group + change-system + change-vendor-os + cleanup-db + list-attributes + list-client + list-export + list-group + list-system + list-vendor-os + remove-client + remove-group + remove-system + search-client + search-export + search-group + search-system + search-vendor-os + Try '%s --help' for more info. + END-OF-HERE +} + +$openslxDB->disconnect(); + +sub parseKeyValueArgs +{ + my $allowedKeys = shift; + my $table = shift; + + my %dataHash; + while (my $param = shift) { + if ($param !~ m[^\s*([\w\-:]+)\s*=(.*)$]) { + die _tr( + "value specification %s has unknown format, expected =\n", + $param + ); + } + my $key = lc($1); + my $value = $2; + if (!grep { $_ eq $key } @$allowedKeys) { + die _tr("unknown key '%s' specified for %s\n", $key, $table); + } + + # replace escaped newlines and tab chars by the respective real thing + $value =~ s{\\n}{\n}gms; + $value =~ s{\\t}{\t}gms; + + # accept '-' as placeholder for undefined + if ($value eq '-') { + $value = undef; + } + + $dataHash{$key} = $value; + } + + return \%dataHash; +} + +sub parseKeyValueArgsWithAttrs +{ + my $allowedKeys = shift; + my $allowedAttrKeys = shift; + my $table = shift; + + my (%dataHash, %attrHash); + while (my $param = shift) { + if ($param !~ m[^\s*([\w\-:]+)\s*=(.*)$]) { + die _tr( + "value specification %s has unknown format, expected =\n", + $param + ); + } + my $key = lc($1); + my $value = $2; + + # replace escaped newlines and tab chars by the respective real thing + $value =~ s{\\n}{\n}gms; + $value =~ s{\\t}{\t}gms; + + # accept '-' as placeholder for undefined + if ($value eq '-') { + $value = undef; + } + + if (grep { $_ eq $key } @$allowedKeys) { + $dataHash{$key} = $value; + } elsif (grep { $_ eq $key } @$allowedAttrKeys) { + $attrHash{$key} = $value; + } else { + die _tr("unknown key '%s' specified for %s\n", $key, $table); + } + } + + if (wantarray) { + return (\%dataHash, \%attrHash); + } + else { + if (%attrHash) { + $dataHash{attrs} = \%attrHash; + } + return \%dataHash; + } +} + +sub checkGivenStage3Attrs +{ + my $stage3Attrs = shift; + my $vendorOSID = shift; + + my $attrProblems; + + if ($vendorOSID) { + my $vendorOS = $openslxDB->fetchVendorOSByID($vendorOSID); + my @installedPlugins = $openslxDB->fetchInstalledPlugins($vendorOSID); + $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $stage3Attrs, $vendorOS->{name}, \@installedPlugins + ); + } + else { + $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $stage3Attrs + ); + } + + if ($attrProblems) { + my $complaint = join "\n", @$attrProblems; + die $complaint; + } + + return 1; +} + +sub cleanupConfigDB +{ + return $openslxDB->cleanupAnyInconsistencies(); +} + +sub mergeNonExistingAttributes +{ + my $target = shift; + my $source = shift; + + my $sourceAttrs = $source->{attrs} || {}; + + $target->{attrs} ||= {}; + my $targetAttrs = $target->{attrs}; + + foreach my $key (keys %$sourceAttrs) { + next if exists $targetAttrs->{$key}; + $targetAttrs->{$key} = $sourceAttrs->{$key}; + } + + return 1; +} + +sub dumpElements +{ + my $objName = shift; + my $nameClause = shift || sub { "\t$_->{name}\n" }; + + if ($option{verbose}) { + my $ind = ' ' x 4; + foreach my $elem (@_) { + print "$objName '$elem->{name}':\n"; + my $spcLen = max map { length($_) } keys %$elem; + print join( + '', + map { + my $elemVal = defined $elem->{$_} ? $elem->{$_} : '-'; + if (ref($elemVal) eq 'HASH') { + my $spcLen + = max(map { length($_) } keys %$elemVal) || 0; + my $spc = ' ' x $spcLen; + my $subLines = join( + "\n", + map { + my $spc = ' ' x $spcLen; + my $val + = defined $elemVal->{$_} + ? $elemVal->{$_} + : ''; + $val =~ s[\n][\n$ind$spc ]g; + "$ind$_" . substr($spc, length($_)) . " = $val"; + } + sort { + # drop [] construct (origin) from key for + # sorting purposes + (my $aa = $a) =~ s{^\s*\[.+\]\s*}{}; + (my $bb = $b) =~ s{^\s*\[.+\]\s*}{}; + return $aa cmp $bb; + } keys %$elemVal + ); + $subLines ||= "$ind"; + " $_:\n$subLines\n"; + } elsif (ref($elemVal) eq 'ARRAY') { + my $subLines + = join( "\n", map { "$ind$_" } sort @$elemVal); + $subLines ||= "$ind"; + " $_:\n$subLines\n"; + } else { + my $spc = ' ' x $spcLen; + $elemVal =~ s[\n][\n$ind$spc ]g; + "$ind$_" . substr($spc, length($_)) . " = $elemVal\n"; + } + } + sort { + my $refCmp = ref($elem->{$a}) cmp ref($elem->{$b}); + return $refCmp ? $refCmp : $a cmp $b; + } + grep { + $_ ne 'name'; + } + keys %$elem + ); + } + } + else { + print join('', sort map { $nameClause->($_); } @_); + } + + return 1; +} + +sub listAttributes +{ + my $attrSpec = shift; + + my $listHeader = _tr("List of known attributes:\n"); + my $attrInfo + = OpenSLX::AttributeRoster->getAttrInfo( { scope => $attrSpec } ); + if ($attrInfo && keys %$attrInfo) { + $listHeader + = _tr("List of known attributes for scope '%s':\n", $attrSpec); + } + else { + $attrInfo = + OpenSLX::AttributeRoster->getAttrInfo( { name => $attrSpec } ); + $listHeader = _tr("Details for attribute '%s':\n", $attrSpec); + $option{verbose} = 1; + } + + print $listHeader; + dumpElements( + 'attribute', undef, + map { + my $attr = clone($attrInfo->{$_}); + $attr->{name} = $_; + delete $attr->{content_regex}; # no use for display purposes + $attr; + } + sort keys %$attrInfo + ); + + return 1; +} + +sub listClients +{ + my $name = _cleanName(shift); + + my %nameSpec; + + # set verbose mode if any params have been passed in: + if (defined $name) { + $option{verbose} = 1; + $nameSpec{name} = $name; + } + + dumpElements( + 'client', undef, + _expandClients( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchClientByFilter(\%nameSpec) + ) + ); + + return 1; +} + +sub listGroups +{ + my $name = _cleanName(shift); + + my %nameSpec; + + # set verbose mode if any params have been passed in: + if (defined $name) { + $option{verbose} = 1; + $nameSpec{name} = $name; + } + + dumpElements( + 'group', undef, + _expandGroups( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchGroupByFilter(\%nameSpec) + ) + ); + + return 1; +} + +sub listExports +{ + my $name = _cleanName(shift); + + my %nameSpec; + + # set verbose mode if any params have been passed in: + if (defined $name) { + $option{verbose} = 1; + $nameSpec{name} = $name; + } + + dumpElements( + 'export', + sub { + "\t$_->{name}" + . substr(' ' x 30, length($_->{name})) + . "($_->{type})\n"; + }, + map { + my $vendorOS = + $openslxDB->fetchVendorOSByID($_->{vendor_os_id}, 'name'); + if (defined $vendorOS) { + $_->{vendor_os_id} .= " ($vendorOS->{name})"; + } + $_; + } + sort { $a->{name} eq $b->{name} || $a->{type} cmp $b->{type} } + $openslxDB->fetchExportByFilter(\%nameSpec) + ); + + return 1; +} + +sub listSystems +{ + my $name = _cleanName(shift); + + my %nameSpec; + + # set verbose mode if any params have been passed in: + if (defined $name) { + $option{verbose} = 1; + $nameSpec{name} = $name; + } + + dumpElements( + 'system', undef, + _expandSystems( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchSystemByFilter(\%nameSpec) + ) + ); + + return 1; +} + +sub listVendorOSes +{ + my $name = _cleanName(shift); + + my %nameSpec; + + # set verbose mode if any params have been passed in: + if (defined $name) { + $option{verbose} = 1; + $nameSpec{name} = $name; + } + + dumpElements('vendor-OS', undef, + map { + my @plugins = $openslxDB->fetchInstalledPlugins($_->{id}); + my %attrHash; + foreach my $plugin (@plugins) { + foreach my $attr (keys %{$plugin->{attrs}}) { + $attrHash{$attr} = $plugin->{attrs}->{$attr}; + } + } + $_->{ATTRIBUTES} = \%attrHash; + $_->{PLUGINS} + = @plugins + ? join(',', sort map { $_->{plugin_name} } @plugins) + : ''; + $_; + } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchVendorOSByFilter(\%nameSpec)); + + return 1; +} + +sub searchClients +{ + my @clientKeys = $openslxDB->getColumnsOfTable('client'); + my @clientAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my ($clientData, $clientAttrs) = parseKeyValueArgsWithAttrs( + \@clientKeys, \@clientAttrKeys, 'client', @_ + ); + + # set verbose mode if any params have been passed in: + $option{verbose} = 1 if %$clientData; + + dumpElements( + 'client', undef, + _expandClients( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchClientByFilter($clientData, undef, $clientAttrs) + ) + ); + + return 1; +} + +sub searchGroups +{ + my @groupKeys = $openslxDB->getColumnsOfTable('groups'); + my @groupAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my ($groupData, $groupAttrs) = parseKeyValueArgsWithAttrs( + \@groupKeys, \@groupAttrKeys, 'group', @_ + ); + + # set verbose mode if any params have been passed in: + $option{verbose} = 1 if %$groupData; + + dumpElements( + 'group', undef, + _expandGroups( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchGroupByFilter($groupData, undef, $groupAttrs) + ) + ); + + return 1; +} + +sub searchExports +{ + my @exportKeys = $openslxDB->getColumnsOfTable('export'); + my $exportData = parseKeyValueArgs(\@exportKeys, 'export', @_); + + # set verbose mode if any params have been passed in: + $option{verbose} = 1 if %$exportData; + + dumpElements( + 'export', + sub { + "\t$_->{name}" + . substr(' ' x 30, length($_->{name})) + . "($_->{type})\n"; + }, + map { + my $vendorOS = + $openslxDB->fetchVendorOSByID($_->{vendor_os_id}, 'name'); + if (defined $vendorOS) { + $_->{vendor_os_id} .= " ($vendorOS->{name})"; + } + $_; + } + sort { $a->{name} eq $b->{name} || $a->{type} cmp $b->{type} } + $openslxDB->fetchExportByFilter($exportData) + ); + + return 1; +} + +sub searchSystems +{ + my @systemKeys = $openslxDB->getColumnsOfTable('system'); + my @systemAttrKeys = OpenSLX::AttributeRoster->getSystemAttrs(); + my ($systemData, $systemAttrs) = parseKeyValueArgsWithAttrs( + \@systemKeys, \@systemAttrKeys, 'system', @_ + ); + + # set verbose mode if any params have been passed in: + $option{verbose} = 1 if %$systemData; + + dumpElements( + 'system', undef, + _expandSystems( + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchSystemByFilter($systemData, undef, $systemAttrs) + ) + ); + + return 1; +} + +sub searchVendorOSes +{ + my @vendorOSKeys = $openslxDB->getColumnsOfTable('vendor_os'); + my $vendorOSData = parseKeyValueArgs(\@vendorOSKeys, 'vendor_os', @_); + + # set verbose mode if any params have been passed in: + $option{verbose} = 1 if %$vendorOSData; + + dumpElements( + 'vendor-OS', undef, + map { + my @plugins = $openslxDB->fetchInstalledPlugins($_->{id}); + $_->{plugins} + = @plugins + ? join(',', sort map { $_->{plugin_name} } @plugins) + : ''; + $_; + } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchVendorOSByFilter($vendorOSData) + ); + + return 1; +} + +sub changeVendorOSInConfigDB +{ + my $vendorOSName = _cleanName(shift || ''); + + if (!length($vendorOSName)) { + die _tr( + "you have to specify the name for the vendor-OS you'd like to change!\n" + ); + } + + my @keys = $openslxDB->getColumnsOfTable('vendor_os'); + my $vendorOSData = parseKeyValueArgs(\@keys, 'vendor_os', @_); + + my $vendorOS = $openslxDB->fetchVendorOSByFilter({'name' => $vendorOSName}); + if (!defined $vendorOS) { + die _tr("the vendor-OS '%s' doesn't exists in the DB, giving up!\n", + $vendorOSName); + } + + $openslxDB->changeVendorOS($vendorOS->{id}, [$vendorOSData]); + vlog( + 0, _tr("vendor-OS '%s' has been successfully changed\n", $vendorOSName) + ); + + listVendorOSes("id=$vendorOS->{id}") if $option{verbose}; + + return 1; +} + +sub changeExportInConfigDB +{ + my $exportName = _cleanName(shift || ''); + + if (!length($exportName)) { + die _tr( + "you have to specify the name for the export you'd like to change!\n" + ); + } + + my @exportKeys = $openslxDB->getColumnsOfTable('export'); + my $exportData = parseKeyValueArgs(\@exportKeys, 'export', @_); + + my $export = $openslxDB->fetchExportByFilter({'name' => $exportName}); + if (!defined $export) { + die _tr("the export '%s' doesn't exists in the DB, giving up!\n", + $exportName); + } + + $openslxDB->changeExport($export->{id}, [$exportData]); + vlog(0, _tr("export '%s' has been successfully changed\n", $exportName)); + + listExports("id=$export->{id}") if $option{verbose}; + + return 1; +} + +sub addClientToConfigDB +{ + my $clientName = _cleanName(shift || ''); + + if (!length($clientName)) { + die _tr("you have to specify the name for the new client\n"); + } + + my @clientKeys = $openslxDB->getColumnsOfTable('client'); + push @clientKeys, 'systems'; + my @clientAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my $clientData = parseKeyValueArgsWithAttrs( + \@clientKeys, \@clientAttrKeys, 'client', @_ + ); + $clientData->{name} = $clientName; + + checkGivenStage3Attrs($clientData->{attrs}); + + my @systemIDs; + if (exists $clientData->{systems}) { + @systemIDs = map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split '\s*,\s*', $clientData->{systems}; + delete $clientData->{systems}; + } + + if (!$clientData->{mac}) { + die _tr("you have to specify the MAC for the new client\n"); + } + if ($clientData->{mac} !~ + m[^(?:[[:xdigit:]][[:xdigit:]]:){5}?[[:xdigit:]][[:xdigit:]]$]) + { + die _tr( + "unknown MAC-format given, expected something like '01:02:03:04:05:06'!\n" + ); + } + + if ($openslxDB->fetchClientByFilter({'name' => $clientName})) { + die _tr("the client '%s' already exists in the DB, giving up!\n", + $clientName); + } + if ($openslxDB->fetchClientByFilter({'mac' => $clientData->{mac}})) { + die _tr( + "a client with the MAC '%s' already exists in the DB, giving up!\n", + $clientData->{mac} + ); + } + my $clientID = $openslxDB->addClient([$clientData]); + vlog( + 0, + _tr( + "client '%s' has been successfully added to DB (ID=%s)\n", + $clientName, $clientID + ) + ); + if (@systemIDs) { + $openslxDB->addSystemIDsToClient($clientID, \@systemIDs); + } + if ($option{verbose}) { + listClients("id=$clientID"); + } + + return 1; +} + +sub addGroupToConfigDB +{ + my $groupName = _cleanName(shift || ''); + if (!length($groupName)) { + die _tr("you have to specify the name for the new group\n"); + } + + my @groupKeys = $openslxDB->getColumnsOfTable('groups'); + push @groupKeys, 'systems', 'clients'; + my @groupAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my $groupData = parseKeyValueArgsWithAttrs( + \@groupKeys, \@groupAttrKeys, 'group', @_ + ); + $groupData->{name} = $groupName; + + checkGivenStage3Attrs($groupData->{attrs}); + + my @systemIDs; + if (exists $groupData->{systems}) { + @systemIDs = map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split '\s*,\s*', $groupData->{systems}; + delete $groupData->{systems}; + } + my @clientIDs; + if (exists $groupData->{clients}) { + @clientIDs = map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist in DB, giving up!\n", $_); + } + $client->{id}; + } + split '\s*,\s*', $groupData->{clients}; + delete $groupData->{clients}; + } + + if (!defined $groupData->{priority} || !length($groupData->{priority})) { + $groupData->{priority} = 50; + vlog(0, _tr("priority of new group has been set to default (50).")); + } + + if ($openslxDB->fetchGroupByFilter({'name' => $groupName})) { + die _tr("the group '%s' already exists in the DB, giving up!\n", + $groupName); + } + my $groupID = $openslxDB->addGroup([$groupData]); + vlog( + 0, + _tr( + "group '%s' has been successfully added to DB (ID=%s)\n", + $groupName, $groupID + ) + ); + if (@systemIDs) { + $openslxDB->addSystemIDsToGroup($groupID, \@systemIDs); + } + if (@clientIDs) { + $openslxDB->addClientIDsToGroup($groupID, \@clientIDs); + } + listGroups("id=$groupID") if $option{verbose}; + + return 1; +} + +sub addSystemToConfigDB +{ + my $systemName = _cleanName(shift || ''); + + if (!length($systemName)) { + die _tr("you have to specify the name of the new system!\n"); + } + + my @systemKeys = $openslxDB->getColumnsOfTable('system'); + push @systemKeys, 'clients', 'export'; + my @systemAttrKeys = OpenSLX::AttributeRoster->getSystemAttrs(); + my $systemData = parseKeyValueArgsWithAttrs( + \@systemKeys, \@systemAttrKeys, 'system', @_ + ); + $systemData->{name} = $systemName; + $systemData->{attrs} ||= {}; + + my $exportName = $systemData->{export} || ''; + delete $systemData->{export}; + if (!length($exportName)) { + $exportName = $systemName; + + # try falling back to given system name + } + my $export = $openslxDB->fetchExportByFilter({'name' => $exportName}); + if (!defined $export) { + die _tr("export '%s' could not be found in DB, giving up!\n", + $exportName); + } + $systemData->{export_id} = $export->{id}; + + checkGivenStage3Attrs($systemData->{attrs}, $export->{vendor_os_id}); + + my @clientIDs; + if (exists $systemData->{clients}) { + @clientIDs = map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist in DB, giving up!\n", $_); + } + $client->{id}; + } + split '\s*,\s*', $systemData->{clients}; + delete $systemData->{clients}; + } + else { + # no clients given, so we add this system to the default client, + # which will make this system bootable by *all* clients (unless + # they are configured otherwise). + my $defaultClient = + $openslxDB->fetchClientByFilter({'name' => '<<>>'}); + push @clientIDs, $defaultClient->{id}; + } + + if ($openslxDB->fetchSystemByFilter({'name' => $systemName})) { + die _tr("the system '%s' already exists in the DB, giving up!\n", + $systemName); + } + + my $systemConfigPath = + "$openslxConfig{'private-path'}/config/$systemName/default"; + if (!-e $systemConfigPath) { + # create the default (empty) config folders for this system: + createConfigFolderForSystem($systemName); + } + + my $systemID = $openslxDB->addSystem([$systemData]); + vlog( + 0, + _tr( + "system '%s' has been successfully added to DB (ID=%s)\n", + $systemName, $systemID + ) + ); + if (@clientIDs) { + $openslxDB->addClientIDsToSystem($systemID, \@clientIDs); + } + listSystems("id=$systemID") if $option{verbose}; + + return 1; +} + +sub changeClientInConfigDB +{ + my $clientName = _cleanName(shift || ''); + + if (!length($clientName)) { + die _tr( + "you have to specify the name of the client you'd like to change!\n" + ); + } + + my @clientKeys = $openslxDB->getColumnsOfTable('client'); + push @clientKeys, 'systems', 'add-systems', 'remove-systems'; + my @clientAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my $clientData = parseKeyValueArgsWithAttrs( + \@clientKeys, \@clientAttrKeys, 'client', @_ + ); + + my $client = $openslxDB->fetchClientByFilter({'name' => $clientName}); + if (!defined $client) { + die _tr("the client '%s' doesn't exists in the DB, giving up!\n", + $clientName); + } + + checkGivenStage3Attrs($clientData->{attrs}); + + mergeNonExistingAttributes($clientData, $client); + + my @systemIDs; + if (exists $clientData->{systems}) { + @systemIDs = map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split ",", $clientData->{systems}; + delete $clientData->{systems}; + } + if (exists $clientData->{'add-systems'}) { + @systemIDs = $openslxDB->fetchSystemIDsOfClient($client->{id}); + push @systemIDs, map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split ",", $clientData->{'add-systems'}; + delete $clientData->{'add-systems'}; + } + if (exists $clientData->{'remove-systems'}) { + @systemIDs = $openslxDB->fetchSystemIDsOfClient($client->{id}); + foreach my $sysName (split ",", $clientData->{'remove-systems'}) { + my $system = $openslxDB->fetchSystemByFilter({'name' => $sysName}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $sysName); + } + @systemIDs = grep { $_ != $system->{id} } @systemIDs; + } + delete $clientData->{'remove-systems'}; + } + + if ($clientData->{name} && $client->{name} eq '<<>>') { + die _tr( + "you can't rename the default client - no changes were made!\n"); + } + + if ( $clientData->{mac} + && $clientData->{mac} !~ + m[^(?:[[:xdigit:]][[:xdigit:]]:){5}?[[:xdigit:]][[:xdigit:]]$]) + { + die _tr( + "unknown MAC-format given, expected something like '01:02:03:04:05:06'!\n" + ); + } + + $openslxDB->changeClient($client->{id}, [$clientData]); + vlog(0, _tr("client '%s' has been successfully changed\n", $clientName)); + if (@systemIDs) { + $openslxDB->setSystemIDsOfClient($client->{id}, \@systemIDs); + } + listClients("id=$client->{id}") if $option{verbose}; + + return 1; +} + +sub changeGroupInConfigDB +{ + my $groupName = _cleanName(shift || ''); + + if (!length($groupName)) { + die _tr( + "you have to specify the name of the group you'd like to change!\n" + ); + } + + my @groupKeys = $openslxDB->getColumnsOfTable('group'); + push @groupKeys, qw( + systems add-systems remove-systems clients add-clients remove-clients + ); + my @groupAttrKeys = OpenSLX::AttributeRoster->getClientAttrs(); + my $groupData = parseKeyValueArgsWithAttrs( + \@groupKeys, \@groupAttrKeys, 'group', @_ + ); + + my $group = $openslxDB->fetchGroupByFilter({'name' => $groupName}); + if (!defined $group) { + die _tr("the group '%s' doesn't exists in the DB, giving up!\n", + $groupName); + } + + checkGivenStage3Attrs($groupData->{attrs}); + + mergeNonExistingAttributes($groupData, $group); + + my (@systemIDs, @clientIDs); + if (exists $groupData->{systems}) { + @systemIDs = map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split ",", $groupData->{systems}; + delete $groupData->{systems}; + } + if (exists $groupData->{'add-systems'}) { + @systemIDs = $openslxDB->fetchSystemIDsOfGroup($group->{id}); + push @systemIDs, map { + my $system = $openslxDB->fetchSystemByFilter({'name' => $_}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $_); + } + $system->{id}; + } + split ",", $groupData->{'add-systems'}; + delete $groupData->{'add-systems'}; + } + if (exists $groupData->{'remove-systems'}) { + @systemIDs = $openslxDB->fetchSystemIDsOfGroup($group->{id}); + foreach my $sysName (split ',', $groupData->{'remove-systems'}) { + my $system = $openslxDB->fetchSystemByFilter({'name' => $sysName}); + if (!defined $system) { + die _tr("system '%s' doesn't exist!\n", $sysName); + } + @systemIDs = grep { $_ != $system->{id} } @systemIDs; + } + delete $groupData->{'remove-systems'}; + } + if (exists $groupData->{clients}) { + @clientIDs = map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist in DB, giving up!\n", $_); + } + $client->{id}; + } + split ",", $groupData->{clients}; + delete $groupData->{clients}; + } + if (exists $groupData->{'add-clients'}) { + @clientIDs = $openslxDB->fetchClientIDsOfGroup($group->{id}); + push @clientIDs, map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist!\n", $_); + } + $client->{id}; + } + split ",", $groupData->{'add-clients'}; + delete $groupData->{'add-clients'}; + } + if (exists $groupData->{'remove-clients'}) { + @clientIDs = $openslxDB->fetchClientIDsOfGroup($group->{id}); + foreach my $clientName (split ",", $groupData->{'remove-clients'}) { + my $client = + $openslxDB->fetchClientByFilter({'name' => $clientName}); + if (!defined $client) { + die _tr("client '%s' doesn't exist!\n", $clientName); + } + @clientIDs = grep { $_ != $client->{id} } @clientIDs; + } + delete $groupData->{'remove-clients'}; + } + + if (defined $groupData->{priority} && $groupData->{priority} !~ m{^\d+$}) { + die _tr("unknown priority-format given, expected an integer!\n"); + } + + $openslxDB->changeGroup($group->{id}, [$groupData]); + vlog(0, _tr("group '%s' has been successfully changed\n", $groupName)); + if (@systemIDs) { + $openslxDB->setSystemIDsOfGroup($group->{id}, \@systemIDs); + } + if (@clientIDs) { + $openslxDB->setClientIDsOfGroup($group->{id}, \@clientIDs); + } + listGroups("id=$group->{id}") if $option{verbose}; + + return 1; +} + +sub changeSystemInConfigDB +{ + my $systemName = _cleanName(shift || ''); + + if (!length($systemName)) { + die _tr( + "you have to specify the name of the system you'd like to change!\n" + ); + } + + my $system = $openslxDB->fetchSystemByFilter({'name' => $systemName}); + if (!defined $system) { + die _tr("the system '%s' doesn't exists in the DB, giving up!\n", + $systemName); + } + my @systemKeys = $openslxDB->getColumnsOfTable('system'); + push @systemKeys, 'clients', 'add-clients', 'remove-clients'; + my @systemAttrKeys = OpenSLX::AttributeRoster->getSystemAttrs(); + my $systemData = parseKeyValueArgsWithAttrs( + \@systemKeys, \@systemAttrKeys, 'system', @_ + ); + + my $export = $openslxDB->fetchExportByID($system->{export_id}); + checkGivenStage3Attrs($systemData->{attrs}, $export->{vendor_os_id}); + + mergeNonExistingAttributes($systemData, $system); + + my @clientIDs; + if (exists $systemData->{clients}) { + @clientIDs = map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist in DB, giving up!\n", $_); + } + $client->{id}; + } + split ",", $systemData->{clients}; + delete $systemData->{clients}; + } + if (exists $systemData->{'add-clients'}) { + @clientIDs = $openslxDB->fetchClientIDsOfSystem($system->{id}); + push @clientIDs, map { + my $client = $openslxDB->fetchClientByFilter({'name' => $_}); + if (!defined $client) { + die _tr("client '%s' doesn't exist!\n", $_); + } + $client->{id}; + } + split ",", $systemData->{'add-clients'}; + delete $systemData->{'add-clients'}; + } + if (exists $systemData->{'remove-clients'}) { + @clientIDs = $openslxDB->fetchClientIDsOfSystem($system->{id}); + foreach my $clientName (split ",", $systemData->{'remove-clients'}) { + my $client = + $openslxDB->fetchClientByFilter({'name' => $clientName}); + if (!defined $client) { + die _tr("client '%s' doesn't exist!\n", $clientName); + } + @clientIDs = grep { $_ != $client->{id} } @clientIDs; + } + delete $systemData->{'remove-clients'}; + } + if ($systemData->{name} && $system->{name} eq '<<>>') { + die _tr( + "you can't rename the default system - no changes were made!\n"); + } + + $openslxDB->changeSystem($system->{id}, $systemData); + vlog(0, _tr("system '%s' has been successfully changed\n", $systemName)); + if (@clientIDs) { + $openslxDB->setClientIDsOfSystem($system->{id}, \@clientIDs); + } + listSystems("id=$system->{id}")if $option{verbose}; + + return 1; +} + +sub removeClientFromConfigDB +{ + my $clientName = _cleanName(shift || ''); + + if (!length($clientName)) { + die _tr( + "you have to specify the name of the client you'd like to remove!\n" + ); + } + + my $clientData = parseKeyValueArgs(['name'], 'client', @_); + + my $client = $openslxDB->fetchClientByFilter({'name' => $clientName}); + if (!defined $client) { + die _tr("the client '%s' doesn't exists in the DB, giving up!\n", + $clientName); + } + if ($client->{name} eq '<<>>') { + die _tr("you can't remove the default client!\n"); + } + $openslxDB->removeClient($client->{id}); + vlog(0, + _tr("client '%s' has been successfully removed from DB\n", $clientName) + ); + + return 1; +} + +sub removeGroupFromConfigDB +{ + my $groupName = _cleanName(shift || ''); + + if (!length($groupName)) { + die _tr( + "you have to specify the name of the group you'd like to remove!\n" + ); + } + + my $groupData = parseKeyValueArgs(['name'], 'group', @_); + + my $group = $openslxDB->fetchGroupByFilter({'name' => $groupName}); + if (!defined $group) { + die _tr("the group '%s' doesn't exists in the DB, giving up!\n", + $groupName); + } + $openslxDB->removeGroup($group->{id}); + vlog(0, + _tr("group '%s' has been successfully removed from DB\n", $groupName) + ); + + return 1; +} + +sub removeSystemFromConfigDB +{ + my $systemName = _cleanName(shift || ''); + + if (!length($systemName)) { + die _tr( + "you have to specify the name of the system you'd like to remove!\n" + ); + } + + my $systemData = parseKeyValueArgs(['name'], 'system', @_); + + my $system = $openslxDB->fetchSystemByFilter({'name' => $systemName}); + if (!defined $system) { + die _tr("the system '%s' doesn't exists in the DB, giving up!\n", + $systemName); + } + if ($system->{name} eq '<<>>') { + die _tr("you can't remove the default system!\n"); + } + $openslxDB->removeSystem($system->{id}); + vlog(0, + _tr("system '%s' has been successfully removed from DB\n", $systemName) + ); + + return 1; +} + +sub _expandClients +{ # expands info for given clients + return + map { + my @sysIDs = $openslxDB->fetchSystemIDsOfClient($_->{id}); + $_->{systems} + = join "\n", + map { $_->{name} } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchSystemByID(\@sysIDs, 'name'); + if ($option{inherited}) { + my $mergedClient = clone($_); + my $originInfo = {}; + $openslxDB->mergeDefaultAndGroupAttributesIntoClient( + $mergedClient, $originInfo + ); + my $mergedAttrs = $mergedClient->{attrs} || {}; + $_->{attrs} = {}; + foreach my $attr (keys %$mergedAttrs) { + my $origin = $originInfo->{$attr}; + my $enhancedName = $origin ? "[$origin] $attr" : $attr; + $_->{attrs}->{$enhancedName} = $mergedAttrs->{$attr}; + } + } + # rename attrs to ATTRIBUTES for display + $_->{ATTRIBUTES} = $_->{attrs}; + delete $_->{attrs}; + $_; + } + @_; +} + +sub _expandGroups +{ # expands info for given groups + return + map { + my @systemIDs = $openslxDB->fetchSystemIDsOfGroup($_->{id}); + $_->{systems} + = join "\n", map { $_->{name} } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchSystemByID(\@systemIDs, 'name'); + my @clientIDs = $openslxDB->fetchClientIDsOfGroup($_->{id}); + $_->{clients} + = join "\n", map { $_->{name} } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchClientByID(\@clientIDs, 'name'); + # rename attrs to ATTRIBUTES for display + $_->{ATTRIBUTES} = $_->{attrs}; + delete $_->{attrs}; + $_; + } + @_; +} + +sub _expandSystems +{ # expands info for given systems + return + map { + my @clientIDs = $openslxDB->fetchClientIDsOfSystem($_->{id}); + $_->{clients} + = join "\n", + map { $_->{name} } + sort { $a->{name} cmp $b->{name} } + $openslxDB->fetchClientByID(\@clientIDs, 'name'); + my @activePlugins; + my $export = $openslxDB->fetchExportByID($_->{export_id}); + if (defined $export) { + $_->{export_id} = "$export->{id} ($export->{name})"; + + # fetch detailed info about active plugins + my @installedPlugins = $openslxDB->fetchInstalledPlugins( + $export->{vendor_os_id} + ); + my $mergedSystem = clone($_); + my $originInfo = {}; + $openslxDB->mergeDefaultAttributesIntoSystem( + $mergedSystem, \@installedPlugins, $originInfo + ); + my $mergedAttrs = $mergedSystem->{attrs} || {}; + foreach my $plugin (@installedPlugins) { + next if !$mergedAttrs->{"$plugin->{plugin_name}::active"}; + push @activePlugins, $plugin; + } + if ($option{inherited}) { + $_->{attrs} = {}; + foreach my $attr (keys %$mergedAttrs) { + my $origin = $originInfo->{$attr}; + my $enhancedName = $origin ? "[$origin] $attr" : $attr; + $_->{attrs}->{$enhancedName} = $mergedAttrs->{$attr}; + } + } + } + $_->{PLUGINS} = [ sort map { $_->{plugin_name} } @activePlugins ]; + # rename attrs to ATTRIBUTES for display + $_->{ATTRIBUTES} = $_->{attrs}; + delete $_->{attrs}; + $_; + } + @_; +} + +sub _cleanName +{ # removes 'name=""' constructs from the name, as it is rather tempting + # for the user to type that ... (and we'd like to play along with DWIM) + my $name = shift; + + return unless defined $name; + + if ($name =~ m[^name=(.+)$]) { + return $1; + } + + # for convenience, we alias default to <<>> + $name = '<<>>' if $name eq 'default'; + + return $name; +} + +=head1 NAME + +slxconfig - OpenSLX-script to view & change the configurational database + +=head1 SYNOPSIS + +slxconfig [options] + +=head3 Options + + --help brief help message + --inherited show inherited attributes, too + --man show full documentation + --verbose be more verbose + --version show version + +=head3 Actions + +=over 8 + +=item B<< add-client mac= [= ...] >> + +adds a new client to the config-DB + +=item B<< add-system [export=] \ >> + +=item B<< = ...] >> + +adds a new system to the config-DB + +=item B<< add-group [priority=] [= ...] >> + +adds a new group to the config-DB + +=item B<< change-vendor-os [= ...] >> + +changes the data of an existing vendor-OS in the config-DB. + +=item B<< change-export [= ...] >> + +changes the data of an existing export in the config-DB + +=item B<< change-client [= ...] >> + +changes the data of an existing client in the config-DB + +Note: you can use the special value '-' to unset a key (mostly useful +for attributes). + +=item B<< change-group [= ...] >> + +changes the data of an existing group in the config-DB + +Note: you can use the special value '-' to unset a key (mostly useful +for attributes). + +=item B<< change-system [= ...] >> + +changes the data of an existing system in the config-DB + +Note: you can use the special value '-' to unset a key (mostly useful +for attributes). + +=item B<< cleanup-db >> + +utility command that looks for any inconsistencies in the DB (stale references +and/or references to plugins that do not exists) and removes them. + +You should only invoke this if you are a developer and have removed one or +more plugins from the repository and would like to get rid of the left-overs +in your local DB. + +=item B<< list-attributes [] >> + +lists all attributes, the ones in the given scope or the one with the given +name + +=item B<< list-client [] >> + +lists client with given name + +=item B<< list-export [] >> + +lists export with given name + +=item B<< list-group [] >> + +lists group with given name + +=item B<< list-system [] >> + +lists system with given name + +=item B<< list-vendor-os [] >> + +lists vendor-OS with given name + +=item B<< remove-client >> + +removes a client from the config-DB + +=item B<< remove-group >> + +removes a group from the config-DB + +=item B<< remove-system >> + +removes a system from the config-DB + +=item B<< search-client [= ...] >> + +shows all clients in config-DB (optionally matching given criteria) + +=item B<< search-export [= ...] >> + +shows all exports in config-DB (optionally matching given criteria) + +=item B<< search-group [= ...] >> + +shows all groups in config-DB (optionally matching given criteria) + +=item B<< search-system [= ...] >> + +shows all systems in config-DB (optionally matching given +criteria) + +=item B<< search-vendor-os [= ...] >> + +shows all vendor-OSes in config-DB (optionally matching given criteria) + +=back + +=head1 DESCRIPTION + +B can be used to view the contents of the configurational database. +Additionally, you can add systems as well as clients and change their specific +boot configuration. + +=head1 OPTIONS + +=over 8 + +=item B<< --help >> + +Prints a brief help message and exits. + +=item B<< --man >> + +Prints the manual page and exits. + +=item B<< --verbose >> + +Prints more information during execution of any action. + +=item B<< --version >> + +Prints the version and exits. + +=back + +=head1 EXAMPLES + +=head3 Listing existing Clients / Exports / Groups / Systems / Vendor-OSes + +=over 8 + +=item B<< slxconfig list-client >> + +=item B<< slxconfig list-export >> + +=item B<< slxconfig list-group >> + +=item B<< slxconfig list-system >> + +=item B<< slxconfig list-vendor-os >> + +lists all existing instances of the respective DB-objects + +=item B<< slxconfig list-system "<<>>" >> + +Lists the details of the default-system. + +=item B<< slxconfig --inherited list-system suse-10.2::nfs >> + +Lists the details of the 'suse-10.2::nfs'-system with all the attributes +that it inherits from the default-system or the default-client. + +=back + +=head3 Listing known attributes + +=over 8 + +=item B<< slxconfig list-attr >> + +lists all known attributes (--verbose will give details). + +=item B<< slxconfig list-attr >> + +lists all known attributes for the given scope (use 'core' to see only +non-scoped attributes). + +=back + +=head3 Adding a new System to an exported Vendor-OS + +=over 8 + +=item B<< slxconfig add-system debian-4.0 >> + +adds a new system named 'debian-4.0' to the config-DB that will +use the export of the same name. No client will be associated +with this system, yet. + +=item B<< slxconfig add-system suse-11.1 export-name=suse-11.1-kde \ >> + +=item B<< clients=PC131,PC132,PC133 \ >> + +=item B<< label="Linux Desktop" >> + +adds a new system name 'suse-11.1' to the config-DB that will +use the export named 'suse-11.1-kde'. The system will be labeled +'Linux Desktop' and the clients 'PC131, 'PC132' and 'PC133' are +associated with this system (so they can boot it). + +=back + +=head3 Adding a new Client + +=over 8 + +=item B<< slxconfig add-client vmware-1 mac=01:02:03:04:05:06 >> + +adds a new client named 'vmware-1', being identified by the MAC +'01:02:03:04:05:06' to the config-DB. No system will be +associated with this client, yet (so it can't boot anything). + +=item B<< slxconfig add-client vmware-1 mac=01:02:03:04:05:06 \ >> + +=item B<< systems=suse-11.1,debian-4.0 \ >> + +=item B<< boot_type=pxe >> + +adds a new client named 'vmware-1', being identified by the MAC +'01:02:03:04:05:06' to the config-DB. The systems 'suse-11.1' & +'Debian-4.0' will be associated with this client (so it will +offer these systems for booting). + +This client will use PXE for booting (which is the default, anyway). + +=back + +=head3 Changing a System + +=over 8 + +=item B<< slxconfig change-system suse-11.1 boot_type=preboot-cd >> + +will change the system named 'suse-11.1' such that it will use a preboot-CD +environment for booting. + +=item B<< slxconfig change-system suse-11.1 add-clients=vmware-1 >> + +will associate the client 'vmware-1' with the system named +'suse-11.1'. + +=item B<< slxconfig change-system suse-11.1 remove-clients=vmware-1 >> + +will remove the client 'vmware-1' from the system named +'suse-11.1'. + +=back + +=head3 Changing a Client + +=over 8 + +=item B<< slxconfig change-client PC131 start_snmp=yes >> + +will change the client named 'PC131' such that it will start +the SNMP daemon on all systems that it boots. + +=item B<< slxconfig change-client PC131 add-systems=Debian-4.0 >> + +will associate the system 'Debian-4.0' with the client named +'PC131'. + +=item B<< slxconfig change-client PC131 remove-systems=Debian-4.0 >> + +will remove the system 'Debian-4.0' from the client named +'PC131'. + +=back + +=head3 Removing a Client / Group / System + +=over 8 + +=item B<< slxconfig remove-client >> + +=item B<< slxconfig remove-group >> + +=item B<< slxconfig remove-system >> + +removes the client/group/system with the given name. + +=back + +=head3 Searching for Clients / Exports / Groups / Systems / Vendor-OSes + +=over 8 + +=item B<< slxconfig search-client mac='01:02:03:04:05:06' >> + +displays all clients with the MAC '01:02:03:04:05:06' (should be only one) + +=item B<< slxconfig search-export type=nfs >> + +displays the exports of type 'nfs' + +=item B<< slxconfig list-group priority=50 >> + +displays the groups that have the default priority (50) + +=back + +=head1 SEE ALSO + +slxsettings, slxos-setup, slxos-export, slxconfig-demuxer + +=head1 GENERAL OPENSLX OPTIONS + +Being a part of OpenSLX, this script supports several other options +which can be used to overrule the OpenSLX settings: + + --db-name= name of database + --db-spec= full DBI-specification of database + --db-type= type of database to connect to + --locale= locale to use for translations + --log-level= level of logging verbosity (0-3) + --logfile= file to write logging output to + --private-path= path to private data + --public-path= path to public (client-accesible) data + --temp-path= path to temporary data + +Please refer to the C-manpage for a more detailed description +of these options. + +=cut diff --git a/src/config-db/slxconfig-demuxer b/src/config-db/slxconfig-demuxer new file mode 100755 index 00000000..b88efeb6 --- /dev/null +++ b/src/config-db/slxconfig-demuxer @@ -0,0 +1,918 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# slxconfig-demuxer +# - OpenSLX configuration demultiplexer +# ----------------------------------------------------------------------------- +use strict; +use warnings; +use Switch; + + +my $abstract = q[ +slxconfig-demuxer + This script will read information about all systems, clients and + groups from the OpenSLX configuration database, mix & match the individual + configurational attributes and then demultiplex the resulting information + to a set of configuration files. These files are used by any OpenSLX-client + during boot to find out which systems to offer for booting. + + The resulting files will be put into the OpenSLX-tftpboot-path. + + Please use the --man option in order to read the full manual. +]; + +use Config::General; +use Digest::MD5 qw(md5_hex); +use File::Basename; +use File::Find; +use File::Path; +use List::Util qw(first); +use Getopt::Long qw(:config pass_through); +use Pod::Usage; + +# add the lib-folder and the folder this script lives in to perl's search +# path for modules: +use FindBin; +use lib "$FindBin::RealBin/../lib"; +use lib "$FindBin::RealBin"; +# development path to config-db stuff + +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::ConfigFolder; +use OpenSLX::OSPlugin::Roster; +use OpenSLX::Utils; + +my ( + $systemConfCount, + # number of system configurations written + $systemErrCount, + # number of systems that had errors + $bootEnvErrCount, + # number of boot environments that had errors + $clientSystemConfCount, + # number of (system-specific) client configurations written + $initramfsCount, + # number of initramfs that were created + @targetSystems, + # systems to create initramfs for, defaults to all systems + %bootEnvMap, + # objects encapsulating the bootloader specific configurations + %option, + # cmdline option hash +); + +if ($> != 0) { + die _tr("Sorry, this script can only be executed by the superuser!\n"); +} + +GetOptions( + 'dhcp-export-type=s' => \$option{dhcpType}, + 'dry-run' => \$option{dryRun}, + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'version' => \$option{versionReq}, + ) + or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +if ($option{manReq}) { + # avoid dubious problem with perldoc in combination with UTF-8 that + # leads to strange dashes and single-quotes being used + $ENV{LC_ALL} = 'POSIX'; + pod2usage(-verbose => 2); +} +if ($option{versionReq}) { + slxsystem('slxversion'); + exit 1; +} + +openslxInit(); + +my $openslxDB = OpenSLX::ConfigDB->new(); +$openslxDB->connect(); + +my $clientConfigPath = "$openslxConfig{'private-path'}/config"; +# make sure that the default config folders exist: +if (createConfigFolderForDefaultSystem()) { + # this path should have been generated by earlier stage (slxsettings), so + # we indicate that there is some kind of problem: + warn _tr( + "Completed client-config-folder '%s', since at least some parts of it didn't exist!", + $clientConfigPath + ); +} + +# protect against parallel execution of this script +my $demuxerLock = grabLock('slxconfig-demuxer'); + +my $tempPath = "$openslxConfig{'temp-path'}/slxconfig-demuxer"; +if (!$option{dryRun}) { + rmtree($tempPath); + mkpath($tempPath); + if (!-d $tempPath) { + die _tr("Unable to create or access temp-path '%s'!", $tempPath); + } +} + +my $deleteInFinalize = 0; + +my @demuxableSystems + = grep { $_->{name} ne '<<>>' } $openslxDB->fetchSystemByFilter(); +if (@ARGV) { + # create initramfs only for systems given on cmdline + for my $systemName (@ARGV) { + if ($systemName eq '<<>>') { + warn _tr( + 'The default-system can not be demuxed - it will be skipped.' + ); + next; + } + my $system = first { $_->{name} eq $systemName } @demuxableSystems; + if (!$system) { + warn _tr( + 'The system "%s" is unknown and will be ignored.', $systemName + ); + next; + } + push @targetSystems, $system; + } +} +else { + # create initramfs for all systems + @targetSystems = @demuxableSystems; + $deleteInFinalize = 1; +} + +writeConfigurations(); + +my $wr = $option{dryRun} ? 'would have written' : 'wrote'; +my $errCount = $systemErrCount ? $systemErrCount : 'no'; +my $systemStatusString + = $systemErrCount ? "$errCount system(s) had errors" : 'all systems ok'; +$errCount = $bootEnvErrCount ? $bootEnvErrCount : 'no'; +my $bootEnvStatusString + = $bootEnvErrCount + ? "$errCount boot environment(s) had errors" + : 'all boot-environments ok'; +print "\n", unshiftHereDoc(<<"End-of-Here"); + $wr $systemConfCount system-specific and $clientSystemConfCount client-specific configurations + $initramfsCount initramfs were created + $systemStatusString + $bootEnvStatusString +End-of-Here + +$openslxDB->disconnect(); + +rmtree([$tempPath]); + +# allow all boot-environments to clean up and active the new configuration +foreach my $bootEnv (values %bootEnvMap) { + $bootEnv->finalize($deleteInFinalize); +} + +exit; + +################################################################################ +### +################################################################################ +sub folderContainsFiles +{ + my $folder = shift; + + return 0 unless -d $folder; + + my $result = 0; + my $wanted = sub { + if ($result) { + # skip anything else if we have found a file already + $File::Find::prune = 1; + } + $result = 1 if -f; + }; + find({wanted => $wanted, follow_fast => 1}, $folder); + vlog(2, "result for folderContainsFiles($folder): $result\n"); + return $result; +} + +sub digestAttributes +{ # returns a digest-string for the given attribute hash, in order to + # facilitate comparing different attribute hashes. + my $object = shift; + + my $attrs = $object->{attrs} || {}; + my $attrsAsString + = join ';', + map { "$_=$attrs->{$_}" } + sort + grep { defined $attrs->{$_} } + keys %$attrs; + + vlog(3, "Attribute-string: $attrsAsString"); + return md5_hex($attrsAsString); +} + +sub writeAttributesToFile +{ + my $object = shift; + my $fileName = shift; + + return if $option{dryRun}; + + my $content = "# attributes set by slxconfig-demuxer:\n"; + my $attrs = $object->{attrs} || {}; + # filter out any plugin-specific attributes (we only want to handle + # the attributes relevant to the core here) + my @attrs = sort grep { index($_, '::') == -1 } keys %$attrs; + foreach my $attr (@attrs) { + my $attrVal = $attrs->{$attr}; + next if !defined $attrVal; + $content .= qq[$attr="$attrVal"\n]; + } + # Overwrite attribute file even if it exists, to make sure that our users + # will never try to fiddle with machine-setup directly in the file-system. + # The config-DB is the keeper of that info! + spitFile($fileName, $content); + if ($openslxConfig{'log-level'} > 2) { + vlog(0, "--- START OF $fileName ---"); + vlog(0, $content); + vlog(0, "--- END OF $fileName --- "); + } + return; +} + +sub writeSlxConfigToFile +{ + my $slxConf = shift; + my $fileName = shift; + + return if $option{dryRun}; + + my $content = ''; + foreach my $key (sort keys %$slxConf) { + $content .= qq[$key="$slxConf->{$key}"\n]; + } + spitFile($fileName, $content); + return; +} + +sub copyExternalSystemConfig +{ # copies local configuration extensions of given system from private + # config folder (var/lib/openslx/config/...) into a temporary folder + my $systemName = shift; + my $targetPath = shift; + my $clientName = shift; # optional + + if ($targetPath !~ m[^$tempPath]) { + # bail if target-path isn't within temp folder, as we do not dare + # executing 'rm -rf' in that case! + die _tr("system-error: illegal target-path <%s>!", $targetPath); + } + return if $option{dryRun}; + + slxsystem("rm -rf $targetPath"); + mkpath $targetPath; + + # first copy default files ... + my $defaultConfigPath = "$clientConfigPath/default"; + vlog(2, "checking $defaultConfigPath for default config..."); + if (-d $defaultConfigPath) { + slxsystem("cp -a $defaultConfigPath/* $targetPath"); + } + # ... now pour system-specific configuration on top (if any) ... + my $systemSpecConfigPath = "$clientConfigPath/$systemName/default"; + vlog(2, "checking $systemSpecConfigPath for system config..."); + if (folderContainsFiles($systemSpecConfigPath)) { + slxsystem("cp -a $systemSpecConfigPath/* $targetPath"); + } + if (defined $clientName) { + # ... and finally pour client-specific configuration on top (if any): + my $clientSpecConfigPath = "$clientConfigPath/$systemName/$clientName"; + vlog(2, "checking $clientSpecConfigPath for client config..."); + if (folderContainsFiles($clientSpecConfigPath)) { + slxsystem("cp -a $clientSpecConfigPath/* $targetPath"); + } + } + return; +} + +sub createTarOfPath +{ + my $buildPath = shift; + my $tarName = shift; + my $destinationPath = shift; + + my $tarFile = "$destinationPath/$tarName"; + vlog(1, _tr('creating tar %s', $tarFile)); + return if $option{dryRun}; + + mkpath $destinationPath; + my $tarCmd = "cd $buildPath && tar czf $tarFile *"; + if (slxsystem("$tarCmd") != 0) { + die _tr("unable to execute shell-command:\n\t%s \n\t(%s)", $tarCmd, $!); + } +} + +sub bootEnvironmentForType +{ + my $bootTypeIn = shift || 'pxe'; + + my %bootTypeMap = ( + 'pxe' => 'PXE', + 'preboot' => 'Preboot', + 'pbs' => 'PBS', + ); + my $bootType = $bootTypeMap{lc($bootTypeIn)} + or die _tr( + "'%s' is not one of the supported boot-types (pxe,preboot)", + $bootTypeIn + ); + + if (!$bootEnvMap{$bootType}) { + my $bootEnv = instantiateClass("OpenSLX::BootEnvironment::$bootType"); + $bootEnv->initialize( { + 'dry-run' => $option{dryRun}, + } ); + $bootEnvMap{$bootType} = $bootEnv; + } + + return $bootEnvMap{$bootType}; +} + + + +################################################################################ +### +################################################################################ +sub writeBootloaderMenus +{ + my @infos = @_; + + # iterate over all clients and write a bootloader configuration for each + my @clients = $openslxDB->fetchClientByFilter(); + foreach my $client (@clients) { + # fetch all infos relevant to this client (including the bootable + # systems) + my %systemIDs; + @systemIDs{$openslxDB->aggregatedSystemIDsOfClient($client)} = (); + my @systemInfos = grep { exists $systemIDs{$_->{id}} } @infos; + + # now write bootloader menu with all bootable systems for this client + my $bootEnv = bootEnvironmentForType($client->{attrs}->{boot_type}); + my $externalID = externalIDForClient($client); + my $success = eval { + $bootEnv->writeBootloaderMenuFor( + $client, $externalID, \@systemInfos + ); + 1; + }; + if (!$success) { + print STDERR $@; + $bootEnvErrCount++; + } + } + return; +} + +sub writeDhcpConfig +{ + vlog(0, _tr("sorry, exporting dhcp data is not implemented yet!")); + my $dhcpModule = "OpenSLX::ConfigExport::DHCP::$option{dhcpType}"; + if (!eval { require $dhcpModule } ) { + die _tr("unable to load DHCP-Export backend '%s'! (%s)\n", + $dhcpModule, $@); + } + my $dhcpBackend = $dhcpModule->new(); + my @clients = $openslxDB->fetchClientByFilter(); + $dhcpBackend->execute(\@clients); + return; +} + +sub writeClientConfigurationsForSystem +{ + my $info = shift; + my $buildPath = shift; + my $attrFile = shift; + my $bootType = shift; + my $clients = shift || []; + + foreach my $client (@$clients) { + next if $client->{name} eq '<<>>'; + # skip default client, as it doesn't need any config-tgz + + next if ($client->{attrs}->{boot_type} || 'pxe') ne $bootType; + # skip clients with non-matching boot type + + my $externalSystemID = $info->{'external-id'}; + my $externalClientName = externalConfigNameForClient($client); + my $clientConfigPath + = "$clientConfigPath/$externalSystemID/$externalClientName"; + + # merge configurations of groups, default client and system into the + # current client (overwriting only values the client does not specify) + $openslxDB->mergeDefaultAndGroupAttributesIntoClient($client); + mergeAttributes($client, $info); + + # compute a digest value of the merged attributes ... + my $clientAttrDigest = digestAttributes($client); + vlog( + 2, + _tr( + "attribute-digest for client '%s' is '%s'", $client->{name}, + $clientAttrDigest + ) + ); + # ... and export client-specific config only if attributes are different + # from system and/or a client-specific config-folder exists: + if ($clientAttrDigest ne $info->{'attr-digest'} + || -d $clientConfigPath) + { + vlog( + 1, + _tr( + "creating config-tgz for client %d:%s", $client->{id}, + $client->{name} + ) + ); + $clientSystemConfCount++; + + # merge default, system and client configuration folders into + # a configuration folder specific to the current client: + copyExternalSystemConfig( + $externalSystemID, $buildPath, $externalClientName + ); + + # add plugin configuration and note if the client adds any active + # plugin (as opposed to current state) + my $activeClientPlugins = writePluginConfigurations( + $info, $buildPath, $client->{attrs} + ); + my @additionalActivePlugins = grep { + my $activeClientPlugin = $_; + ! grep { + $activeClientPlugin eq $_ + } @{$info->{'active-plugins'}}; + } @$activeClientPlugins; + if (@additionalActivePlugins) { + push @{$info->{'active-plugins'}}, @additionalActivePlugins; + my $additionalActivePluginStr + = join ',', @additionalActivePlugins; + vlog(0, _tr( + "client '%s' activates additional plugins: %s", + $client->{name}, $additionalActivePluginStr + )); + } + + # check attributes against illegal values and write them into + # a file if they're ok: + my $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $client->{attrs}, $info->{'vendor-os'}->{name}, + $info->{'installed-plugins'} + ); + if ($attrProblems) { + my $complaint = join "\n", @$attrProblems; + $complaint =~ s{^}{client $client->{name}: }gms; + warn $complaint; + } + writeAttributesToFile($client, $attrFile); + + # create a tar containing the external configuration folder + # and client attribute file, this time referring to the client + # via its external ID (the PXE-style MAC), as the TGZ needs to + # be accessed from the client-PC, which doesn't know about the + # name it is referred to in the openslx-config-DB: + my $externalClientID = externalIDForClient($client); + my $bootEnv = bootEnvironmentForType($bootType); + switch ($bootType) { + case 'pxe' { + createTarOfPath( + $buildPath, "${externalClientID}.tgz", + "$bootEnv->{'target-path'}/client-config/$externalSystemID" + ); + } + case 'preboot' { + # for preboot types + my $cname = $client->{name}; + createTarOfPath( + $buildPath, "${cname}.tgz", + "$bootEnv->{'target-path'}/client-config/$externalSystemID" + ); + } + case 'pbs' { + # for preboot types + my $cname = $client->{name}; + createTarOfPath( + $buildPath, "${cname}.tgz", + "$bootEnv->{'target-path'}/client-config/$externalSystemID" + ); + } + } + } + } + return; +} + +sub writePluginConfigurations +{ + my $info = shift || confess 'need to pass in info-hash!'; + my $buildPath = shift || confess 'need to pass in build-path!'; + my $attrs = shift || {}; + + my $pluginConfPath = "$buildPath/initramfs/plugin-conf"; + + my @activePlugins; + foreach my $pluginInfo (@{$info->{'installed-plugins'}}) { + my $pluginName = $pluginInfo->{plugin_name}; + vlog(2, _tr("checking configuration of plugin '%s'", $pluginName)); + + # skip inactive plugins + next unless $attrs->{"${pluginName}::active"}; + push @activePlugins, $pluginName; + + my $plugin = OpenSLX::OSPlugin::Roster->getPlugin($pluginName); + my $requiredPlugins = $plugin->getInfo()->{required} || []; + my @missingPlugins + = grep { + my $required = $_; + ! grep { + $_->{plugin_name} eq $required + } @{$info->{'installed-plugins'}}; + } + @$requiredPlugins; + if (@missingPlugins) { + die _tr( + 'the plugin "%s" requires the following plugins to be installed: "%s"!', + $pluginName, join(',', @missingPlugins) + ); + } + + next if $option{dryRun}; + + mkpath([ $pluginConfPath ]); + + vlog(2, _tr("writing configuration file for plugin '%s'", $pluginName)); + # write plugin configuration to a file: + my $content; + my @pluginAttrs = grep { $_ =~ m{^${pluginName}::} } keys %$attrs; + foreach my $attr (sort @pluginAttrs) { + my $attrVal = $attrs->{$attr}; + if (!defined $attrVal) { + $attrVal = ''; + } + my $attrName = substr($attr, index($attr, '::')+2); + $content .= qq[${pluginName}_$attrName="$attrVal"\n]; + } + my $fileName = "$pluginConfPath/${pluginName}.conf"; + spitFile($fileName, $content); + if ($openslxConfig{'log-level'} > 2) { + vlog(0, "--- START OF $fileName ---"); + vlog(0, $content); + vlog(0, "--- END OF $fileName --- "); + } + } + return \@activePlugins; +} + +sub createBootEnvironmentsForSystem +{ + my $info = shift; + my $buildPath = shift; + my $attrFile = shift; + my $clients = shift || []; + + my %bootTypes; + foreach my $client (@$clients) { + my $type = $client->{attrs}->{boot_type} || 'pxe'; + $bootTypes{$type}++; + } + + foreach my $bootType (sort keys %bootTypes) { + vlog(0, _tr("creating boot environment (system part) for $bootType")); + + my $bootEnv = bootEnvironmentForType($bootType); + + # only create a default.tgz if required by boot environment + if ($bootEnv->requiresDefaultClientConfig()) { + writeAttributesToFile($info, $attrFile); + + my $systemPath + = "$bootEnv->{'target-path'}/client-config/$info->{'external-id'}"; + createTarOfPath($buildPath, "default.tgz", $systemPath); + } + } + + foreach my $bootType (sort keys %bootTypes) { + vlog(0, _tr("creating boot environment (client part) for $bootType")); + + my $bootEnv = bootEnvironmentForType($bootType); + + writeClientConfigurationsForSystem( + $info, $buildPath, $attrFile, $bootType, $clients + ); + + # let boot environment copy the kernel and create the initramfs + $initramfsCount + += $bootEnv->writeFilesRequiredForBooting($info, $buildPath); + } + + return; +} + +sub writeSystemConfiguration +{ + my $info = shift; + my $isTargetSystem = shift; + + $info->{'initramfs-name'} = "initramfs-$info->{id}"; + + # if this is not a target system, we shall not write any configurations, + # but we simply incorporate inherited attributes + if (!$isTargetSystem) { + $openslxDB->mergeDefaultAttributesIntoSystem($info); + return; + } + + # write configuration files for this system + my $buildPath = "$tempPath/build"; + copyExternalSystemConfig(externalIDForSystem($info), $buildPath); + + $openslxDB->mergeDefaultAttributesIntoSystem( + $info, $info->{'installed-plugins'} + ); + $info->{'attr-digest'} = digestAttributes($info); + vlog( + 2, + _tr( + "attribute-digest for system '%s' is '%s'", $info->{name}, + $info->{'attr-digest'} + ) + ); + + # check if uclibc-rootfs in corresponding vendor-OS matches the current + # version and add a warning if it does not: + my $uclibcVersionPath + = "$openslxConfig{'private-path'}/stage1/$info->{'vendor-os'}->{name}/opt/openslx/uclib-rootfs.version"; + chomp(my $uclibcVersion + = slurpFile($uclibcVersionPath, { failIfMissing => 0 } )); + chomp(my $currVersion = qx{slxversion}); + if ($currVersion !~ m{M$} && $uclibcVersion ne $currVersion) { + warn _tr( + "uclibc-rootfs for system '%s' may not be up-to-date - consider updating the vendor-OS!", + $info->{name}, $uclibcVersion, $currVersion + ); + } + + my $attrProblems = OpenSLX::AttributeRoster->findProblematicValues( + $info->{attrs}, $info->{'vendor-os'}->{name}, + $info->{'installed-plugins'} + ); + if ($attrProblems) { + my $complaint = join "\n", @$attrProblems; + $complaint =~ s{^}{system $info->{name}: }gms; + warn $complaint; + } + + my $activePlugins + = writePluginConfigurations($info, $buildPath, $info->{attrs}); + $info->{'active-plugins'} = $activePlugins; + my $activePluginStr + = @$activePlugins ? join ',', @$activePlugins : ''; + vlog(0, _tr("active plugins: %s", $activePluginStr)); + + # create all required (pre-)boot-environments (PXE, CD, ...) + my $attrFile = "$buildPath/initramfs/machine-setup"; + my @clientIDs = $openslxDB->aggregatedClientIDsOfSystem($info); + my @clients = $openslxDB->fetchClientByID(\@clientIDs); + createBootEnvironmentsForSystem($info, $buildPath, $attrFile, \@clients); + + slxsystem("rm -rf $buildPath") unless $option{dryRun}; + + $systemConfCount++; + + return; +} + +sub writeConfigurations +{ + $initramfsCount = $systemConfCount = $systemErrCount + = $clientSystemConfCount = 0; + my @infos; + foreach my $system (@demuxableSystems) { + my $isTargetSystem + = first { $_->{name} eq $system->{name} } @targetSystems; + if ($isTargetSystem) { + vlog( + 0, + _tr("\ndemuxing system %d : %s", $system->{id}, $system->{name}) + ); + } + else { + vlog( + 0, + _tr( + "\nlinking demuxed system %d : %s into bootloader menu", + $system->{id}, $system->{name} + ) + ); + } + + my $success = eval { + my $info = $openslxDB->aggregatedSystemFileInfoFor($system); + $info->{'external-id'} = externalIDForSystem($system); + + writeSystemConfiguration($info, $isTargetSystem); + + push @infos, $info; + 1; + }; + if (!$success) { + print STDERR $@; + $systemErrCount++; + } + } + my $imageBaseDir = "$openslxConfig{'public-path'}/images"; + rmtree($imageBaseDir) unless $option{dryRun}; + writeBootloaderMenus(@infos); + if (defined $option{dhcpType}) { + writeDhcpConfig(); + } + return; +} + +=head1 NAME + +slxconfig-demuxer - OpenSLX configuration demultiplexer + +=head1 SYNOPSIS + +slxconfig-demuxer [options] [ ...] + +=head3 Script Options + + --dry-run avoids writing anything, for testing + +=head3 General Options + + --help brief help message + --man full documentation + --version show version + +=head1 DESCRIPTION + +B will read information about all systems, clients and +groups from the OpenSLX configuration database, mix & match the individual +configurational attributes and then demultiplex the resulting information +to a set of configuration files. These files are used by any OpenSLX-client +during boot to find out which systems to offer for booting. + +If you invoke the script with one or more system names, only these systems +will be demuxed. All other systems (which are expected to have been demuxed +before) will just be linked into the bootloader menu. + +The resulting files will be put into the OpenSLX-tftpboot-path. + +=head2 FILE CREATION + +The following set of files will be created: + +=over 8 + +=item B + +The basic PXE files (F, F) will be copied into +F<$SLX_PUBLIC_PATH/tftpboot> to make them available to any PXE-client via tftp. + +=item B + +For each client, a PXE configuration file will be generated and written to +F<$SLX_PUBLIC_PATH/tftpboot/pxelinux.cfg/01->. This file will +contain information about the systems this client shall offer for booting. +For each of these systems, the kernel cmdline options required for that +particular system setup is specified (via PXE's APPEND option). + +Any client that is not known to OpenSLX (so it will not have a specific +configuration file) will use the configuration from the default client +(appropriately named 'default'). + +=item B + +For each bootable system, that system's kernel will be copied to +F<$SLX_PUBLIC_PATH/tftpboot//kernel and an OpenSLX-specific initramfs +required for booting that particular system is generated (by means of +slxmkramfs) and put into F<$SLX_PUBLIC_PATH/tftpboot//initramfs. + +These two files (kernel & initramfs) will be referenced by the PXE client +configuration of all clients that offer this specific system for booting. + +=item B + +For each system, an OpenSLX configuration archive will be generated and written +to F<$SLX_PUBLIC_PATH/tftpboot/client-config//default. Furthermore, +every client of that system whose attributes differ from the system's default +will get its own configuration archive generated here, too (e.g. +F<$SLX_PUBLIC_PATH/tftpboot/client-config//01-.tgz>). + +Each of these archives will contain the file F, +specifying all the attributes of that particular system and/or client +(e.g. whether or not it should start the X-server). + +Furthermore, each system-specific archive may contain additional system files +that are required for that system (e.g. a special PAM-module required for LDAP +authentication). These files are copied from F<$SLX_PRIVATE_PATH/config/default> +and F<$SLX_PROVATE_PATH/config/>. + +On top of that, each client may have its own set of system files, too (e.g. +some config files required to install a special kind of hardware available only +on that client). These files are copied from +F<< $SLX_PROVATE_PATH/config//01- >>. + +=back + +=head2 MIXING & MATCHING (THE DEMUXER) + +In the OpenSLX configuration database, each system, group and client may have +several configurational attributes set to a specific value that will cause +a client booting that system to behave in a certain way. The mixing of all +these different attributes into one set that is relevant for a specific client +booting one specific system is one important task of the slxconfig-demuxer. + +As an example, let's assume one system setup that is configured to boot directly +into a special application that demands a rather low screen-resolution of +1024x768 pixels, as otherwise the text would be unreadable due to very small +fonts being used by that app. In order to achieve this, the administrator can +set the I-attribute of the B to '1024x768'. +Let's say one of the clients, however, is connected to a very old monitor that +has problems with this resolution and only supports 800x600 pixels. In that +case, the administrator can set the I-attribute of that B to +'800x600'. The mixing & matching process would make sure that this specific +client would run that system with a resolution of 800x600, while all other +clients would run that system in 1024x768. + +So the slxconfig-demuxer demultiplexes the individual configurational attributes +into a concrete set of configuration settings for specific clients and their +offered systems, making sure that each client/system combination uses the +appropriate settings. + +=head1 OPTIONS + +=head3 Script Options + +=over 8 + +=item B<< --dry-run >> + +Runs the script but avoids writing anything. This is useful for testing, as +you can learn from the logging output what would have been done. + +=back + +=head3 General Options + +=over 8 + +=item B<< --help >> + +Prints a brief help message and exits. + +=item B<< --man >> + +Prints the manual page and exits. + +=item B<< --version >> + +Prints the version and exits. + +=back + +=head1 SEE ALSO + +slxsettings, slxos-setup, slxos-export, slxconfig + +=head1 GENERAL OPENSLX OPTIONS + +Being a part of OpenSLX, this script supports several other options +which can be used to overrule the OpenSLX settings: + + --db-name= name of database + --db-spec= full DBI-specification of database + --db-type= type of database to connect to + --locale= locale to use for translations + --log-level= level of logging verbosity (0-3) + --logfile= file to write logging output to + --private-path= path to private data + --public-path= path to public (client-accesible) data + --temp-path= path to temporary data + +Please refer to the C-manpage for a more detailed description +of these options. + +=cut diff --git a/src/config-db/t/01-basics.t b/src/config-db/t/01-basics.t new file mode 100644 index 00000000..1fb7083b --- /dev/null +++ b/src/config-db/t/01-basics.t @@ -0,0 +1,23 @@ +use Test::More qw(no_plan); + +use lib '/opt/openslx/lib'; + +# basic stuff +use_ok(OpenSLX::ConfigDB); + +use strict; +use warnings; + +# connecting and disconnecting +ok(my $configDB = OpenSLX::ConfigDB->new, 'can create object'); +isa_ok($configDB, 'OpenSLX::ConfigDB'); + +{ + # create a second object - should work and yield different objects + ok(my $configDB2 = OpenSLX::ConfigDB->new, 'can create another object'); + cmp_ok($configDB, 'ne', $configDB2, 'should have two different objects now'); +} + +ok($configDB->connect(), 'connecting'); +ok($configDB->disconnect(), 'disconnecting'); + diff --git a/src/config-db/t/10-vendor-os.t b/src/config-db/t/10-vendor-os.t new file mode 100644 index 00000000..a71ee4ac --- /dev/null +++ b/src/config-db/t/10-vendor-os.t @@ -0,0 +1,258 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +is( + my $vendorOS = $configDB->fetchVendorOSByFilter, undef, + 'no vendor-OS yet (scalar context)' +); + +my $wrongVendorOS = { + 'comment' => 'test', +}; +ok( + ! eval { my $vendorOSID = $configDB->addVendorOS($wrongVendorOS); }, + 'trying to insert an unnamed vendor-OS should fail' +); + +is( + my @vendorOSes = $configDB->fetchVendorOSByFilter, 0, + 'no vendor-OS yet (array context)' +); + +my $inVendorOS1 = { + 'name' => 'vos-1', + 'comment' => '', +}; +is( + my $vendorOS1ID = $configDB->addVendorOS($inVendorOS1), 1, + 'first vendor-OS has ID 1' +); + +my $inVendorOS2 = { + 'name' => 'vos-2.0', + 'comment' => 'batch 2', +}; +my $inVendorOS3 = { + 'name' => 'vos-3.0', + 'comment' => 'batch 2', + 'clone_source' => 'kiwi::test-vos', +}; +ok( + my ($vendorOS2ID, $vendorOS3ID) = $configDB->addVendorOS([ + $inVendorOS2, $inVendorOS3 + ]), + 'add two more vendor-OSes' +); +is($vendorOS2ID, 2, 'vendor-OS 2 should have ID=2'); +is($vendorOS3ID, 3, 'vendor-OS 3 should have ID=3'); + +# fetch vendor-OS 3 by id and check all values +ok(my $vendorOS3 = $configDB->fetchVendorOSByID(3), 'fetch vendor-OS 3'); +is($vendorOS3->{id}, 3, 'vendor-OS 3 - id'); +is($vendorOS3->{name}, 'vos-3.0', 'vendor-OS 3 - name'); +is($vendorOS3->{comment}, 'batch 2', 'vendor-OS 3 - comment'); +is($vendorOS3->{clone_source}, 'kiwi::test-vos', 'vendor-OS 3 - clone_source'); + +# fetch vendor-OS 2 by a filter on id and check all values +ok( + my $vendorOS2 = $configDB->fetchVendorOSByFilter({ id => 2 }), + 'fetch vendor-OS 2 by filter on id' +); +is($vendorOS2->{id}, 2, 'vendor-OS 2 - id'); +is($vendorOS2->{name}, 'vos-2.0', 'vendor-OS 2 - name'); +is($vendorOS2->{comment}, 'batch 2', 'vendor-OS 2 - comment'); +is($vendorOS2->{clone_source}, undef, 'vendor-OS 2 - clone_source'); + +# fetch vendor-OS 1 by filter on name and check all values +ok( + my $vendorOS1 = $configDB->fetchVendorOSByFilter({ name => 'vos-1' }), + 'fetch vendor-OS 1 by filter on name' +); +is($vendorOS1->{id}, 1, 'vendor-OS 1 - id'); +is($vendorOS1->{name}, 'vos-1', 'vendor-OS 1 - name'); +is($vendorOS1->{comment}, '', 'vendor-OS 1 - comment'); +is($vendorOS1->{clone_source}, undef, 'vendor-OS 1 - clone_source'); + +# fetch vendor-OSes 3 & 1 by id +ok( + my @vendorOSes3And1 + = $configDB->fetchVendorOSByID([3, 1]), + 'fetch vendor-OSes 3 & 1 by id' +); +is(@vendorOSes3And1, 2, 'should have got 2 vendor-OSes'); +# now sort by ID and check if we have really got 3 and 1 +@vendorOSes3And1 = sort { $a->{id} cmp $b->{id} } @vendorOSes3And1; +is($vendorOSes3And1[0]->{id}, 1, 'first id should be 1'); +is($vendorOSes3And1[1]->{id}, 3, 'second id should be 3'); + +# fetching vendor-OSes by id without giving any should yield undef +is( + $configDB->fetchVendorOSByID(), undef, + 'fetch vendor-OSes by id without giving any' +); + +# fetching vendor-OSes by filter without giving any should yield all of them +ok( + @vendorOSes = $configDB->fetchVendorOSByFilter(), + 'fetch vendor-OSes by filter without giving any' +); +is(@vendorOSes, 3, 'should have got all three vendor-OSes'); + +# fetch vendor-OSes 2 & 3 by filter on comment +ok( + my @vendorOSes2And3 + = $configDB->fetchVendorOSByFilter({ comment => 'batch 2' }), + 'fetch vendor-OSes 2 & 3 by filter on comment' +); +is(@vendorOSes2And3, 2, 'should have got 2 vendor-OSes'); +# now sort by ID and check if we have really got 2 and 3 +@vendorOSes2And3 = sort { $a->{id} cmp $b->{id} } @vendorOSes2And3; +is($vendorOSes2And3[0]->{id}, 2, 'first id should be 2'); +is($vendorOSes2And3[1]->{id}, 3, 'second id should be 3'); + +# try to fetch with multi-column filter +ok( + ($vendorOS2, $vendorOS3) + = $configDB->fetchVendorOSByFilter({ comment => 'batch 2', id => 2 }), + 'fetching vendor-OS with comment="batch 2" and id=2 should work' +); +is($vendorOS2->{name}, 'vos-2.0', 'should have got vos-2.0'); +is($vendorOS3, undef, 'should not get vos-3.0'); + +# try to fetch multiple occurrences of the same vendor-OS, combined with +# some unknown IDs +ok( + my @vendorOSes1And3 + = $configDB->fetchVendorOSByID([ 1, 21, 4-1, 1, 0, 1, 1 ]), + 'fetch a complex set of vendor-OSes by ID' +); +is(@vendorOSes1And3, 2, 'should have got 2 vendor-OSes'); +# now sort by ID and check if we have really got 1 and 3 +@vendorOSes1And3 = sort { $a->{id} cmp $b->{id} } @vendorOSes1And3; +is($vendorOSes1And3[0]->{id}, 1, 'first id should be 1'); +is($vendorOSes1And3[1]->{id}, 3, 'second id should be 3'); + +# try to fetch a couple of non-existing vendor-OSes by id +is( + $configDB->fetchVendorOSByID(-1), undef, + 'vendor-OS with id -1 should not exist' +); +is( + $configDB->fetchVendorOSByID(0), undef, + 'vendor-OS with id 0 should not exist' +); +is( + $configDB->fetchVendorOSByID(1 << 31 + 1000), undef, + 'trying to fetch another unknown vendor-OS' +); + +# try to fetch a couple of non-existing vendor-OSes by filter +is( + $configDB->fetchVendorOSByFilter({ id => 0 }), undef, + 'fetching vendor-OS with id=0 by filter should fail' +); +is( + $configDB->fetchVendorOSByFilter({ name => 'vos-1.x' }), undef, + 'fetching vendor-OS with name="vos-1.x" should fail' +); +is( + $configDB->fetchVendorOSByFilter({ comment => 'batch 2', id => 1 }), undef, + 'fetching vendor-OS with comment="batch 2" and id=1 should fail' +); + +# rename vendor-OS 1 and then fetch it by its new name +ok($configDB->changeVendorOS(1, { name => q{VOS-'1'} }), 'changing vendor-OS 1'); +ok( + $vendorOS1 = $configDB->fetchVendorOSByFilter({ name => q{VOS-'1'} }), + 'fetching renamed vendor-OS 1' +); +is($vendorOS1->{id}, 1, 'really got vendor-OS number 1'); +is($vendorOS1->{name}, q{VOS-'1'}, q{really got vendor-OS named "VOS-'1'"}); + +# changing nothing at all should succeed +ok($configDB->changeVendorOS(1), 'changing nothing at all in vendor-OS 1'); + +# changing a non-existing column should fail +ok( + ! eval { $configDB->changeVendorOS(1, { xname => "xx" }) }, + 'changing unknown colum should fail' +); + +ok(! $configDB->changeVendorOS(1, { id => 23 }), 'changing id should fail'); + +# test adding & removing of installed plugins +is( + my @plugins = $configDB->fetchInstalledPlugins(3), + 0, 'there should be no installed plugins' +); +ok($configDB->addInstalledPlugin(3, 'Example'), 'adding installed plugin'); +is( + @plugins = $configDB->fetchInstalledPlugins(3), + 1, + 'should have 1 installed plugin' +); +is( + $configDB->addInstalledPlugin(3, 'Example'), 1, + 'adding plugin again should work (but do not harm, just update the attrs)' +); +is( + @plugins = $configDB->fetchInstalledPlugins(3), + 1, + 'should still have 1 installed plugin' +); +is($plugins[0]->{plugin_name}, 'Example', 'should have got plugin "Example"'); +ok($configDB->addInstalledPlugin(3, 'Test'), 'adding a second plugin'); +is( + @plugins = $configDB->fetchInstalledPlugins(3), + 2, + 'should have 2 installed plugin' +); +ok( + !$configDB->removeInstalledPlugin(3, 'xxx'), + 'removing unknown plugin should fail' +); +ok( + @plugins = $configDB->fetchInstalledPlugins(3, 'Example'), + 'fetching specific plugin' +); +is($plugins[0]->{plugin_name}, 'Example', 'should have got plugin "Example"'); +ok( + @plugins = $configDB->fetchInstalledPlugins(3, 'Test'), + 'fetching another specific plugin' +); +is($plugins[0]->{plugin_name}, 'Test', 'should have got plugin "Test"'); +is( + @plugins = $configDB->fetchInstalledPlugins(3, 'xxx'), 0, + 'fetching unknown specific plugin' +); +ok($configDB->removeInstalledPlugin(3, 'Example'), 'removing installed plugin'); +is( + @plugins = $configDB->fetchInstalledPlugins(3), + 1, + 'should have 1 installed plugin' +); +ok($configDB->removeInstalledPlugin(3, 'Test'), 'removing second plugin'); +is( + @plugins = $configDB->fetchInstalledPlugins(3), + 0, + 'should have no installed plugins' +); + +# now remove a vendor-OS and check if that worked +ok($configDB->removeVendorOS(3), 'removing vendor-OS 3 should be ok'); +is($configDB->fetchVendorOSByID(3, 'id'), undef, 'vendor-OS 3 should be gone'); +is($configDB->fetchVendorOSByID(1)->{id}, 1, 'vendor-OS 1 should still exist'); +is($configDB->fetchVendorOSByID(2)->{id}, 2, 'vendor-OS 2 should still exist'); + +$configDB->disconnect(); + diff --git a/src/config-db/t/11-export.t b/src/config-db/t/11-export.t new file mode 100644 index 00000000..3dd0ae6c --- /dev/null +++ b/src/config-db/t/11-export.t @@ -0,0 +1,247 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +is( + my $export = $configDB->fetchExportByFilter, undef, + 'no export yet (scalar context)' +); + +foreach my $requiredCol (qw(name vendor_os_id type)) { + my $wrongExport = { + 'name' => 'name', + 'vendor_os_id' => 1, + 'type ' => 'nfs', + 'comment' => 'has column missing', + }; + delete $wrongExport->{$requiredCol}; + ok( + ! eval { my $exportID = $configDB->addExport($wrongExport); }, + "inserting an export without '$requiredCol' column should fail" + ); +} + +is( + my @exports = $configDB->fetchExportByFilter, 0, + 'no export yet (array context)' +); + +is( + my @exportIDs = $configDB->fetchExportIDsOfVendorOS(1), 0, + 'vendor-OS 1 has no export IDs yet' +); + +is( + @exportIDs = $configDB->fetchExportIDsOfVendorOS(2), 0, + 'vendor-OS 2 has no export IDs yet' +); + +my $inExport1 = { + 'name' => 'exp-1', + 'type' => 'nfs', + 'vendor_os_id' => 1, + 'comment' => '', +}; +is( + my $export1ID = $configDB->addExport($inExport1), 1, + 'first export has ID 1' +); + +my $inExport2 = { + 'name' => 'exp-2.0', + 'type' => 'sqfs-nbd', + 'vendor_os_id' => 1, + 'comment' => undef, +}; +my $fullExport = { + 'name' => 'exp-nr-3', + 'type' => 'sqfs-nbd', + 'vendor_os_id' => 2, + 'comment' => 'nuff said', + 'server_ip' => '192.168.212.243', + 'port' => '65432', + 'uri' => 'sqfs-nbd://somehost/somepath?param=val&yes=1', +}; +ok( + my ($export2ID, $export3ID) = $configDB->addExport([ + $inExport2, $fullExport + ]), + 'add two more exports' +); +is($export2ID, 2, 'export 2 should have ID=2'); +is($export3ID, 3, 'export 3 should have ID=3'); + +# fetch export 3 by id and check all values +ok(my $export3 = $configDB->fetchExportByID(3), 'fetch export 3'); +is($export3->{id}, 3, 'export 3 - id'); +is($export3->{name}, 'exp-nr-3', 'export 3 - name'); +is($export3->{type}, 'sqfs-nbd', 'export 3 - type'); +is($export3->{vendor_os_id}, '2', 'export 3 - vendor_os_id'); +is($export3->{comment}, 'nuff said', 'export 3 - comment'); +is($export3->{server_ip}, '192.168.212.243', 'export 3 - server_ip'); +is($export3->{port}, '65432', 'export 3 - port'); +is( + $export3->{uri}, + 'sqfs-nbd://somehost/somepath?param=val&yes=1', + 'export 3 - uri' +); + +# fetch export 2 by a filter on id and check all values +ok( + my $export2 = $configDB->fetchExportByFilter({ id => 2 }), + 'fetch export 2 by filter on id' +); +is($export2->{id}, 2, 'export 2 - id'); +is($export2->{name}, 'exp-2.0', 'export 2 - name'); +is($export2->{type}, 'sqfs-nbd', 'export 2 - type'); +is($export2->{vendor_os_id}, '1', 'export 2 - vendor_os_id'); +is($export2->{comment}, undef, 'export 2 - comment'); + +# fetch export 1 by filter on name and check all values +ok( + my $export1 = $configDB->fetchExportByFilter({ name => 'exp-1' }), + 'fetch export 1 by filter on name' +); +is($export1->{id}, 1, 'export 1 - id'); +is($export1->{name}, 'exp-1', 'export 1 - name'); +is($export1->{vendor_os_id}, '1', 'export 1 - vendor_os_id'); +is($export1->{type}, 'nfs', 'export 1 - type'); +is($export1->{comment}, '', 'export 1 - comment'); +is($export1->{port}, undef, 'export 1 - port'); +is($export1->{server_ip}, undef, 'export 1 - server_ip'); +is($export1->{uri}, undef, 'export 1 - uri'); + +is( + @exportIDs = sort( { $a <=> $b } $configDB->fetchExportIDsOfVendorOS(1)), + 2, 'vendor-OS 1 has two export IDs' +); +is($exportIDs[0], 1, 'first export ID of vendor-OS 1 (1)'); +is($exportIDs[1], 2, 'second export ID of vendor-OS 1 (2)'); + +is( + @exportIDs = sort( { $a <=> $b } $configDB->fetchExportIDsOfVendorOS(2)), + 1, 'vendor-OS 2 has one export IDs' +); +is($exportIDs[0], 3, 'first export ID of vendor-OS 2 (3)'); + +# fetch exports 3 & 1 by id +ok( + my @exports3And1 = $configDB->fetchExportByID([3, 1]), + 'fetch exports 3 & 1 by id' +); +is(@exports3And1, 2, 'should have got 2 exports'); +# now sort by ID and check if we have really got 3 and 1 +@exports3And1 = sort { $a->{id} cmp $b->{id} } @exports3And1; +is($exports3And1[0]->{id}, 1, 'first id should be 1'); +is($exports3And1[1]->{id}, 3, 'second id should be 3'); + +# fetching exports by id without giving any should yield undef +is( + $configDB->fetchExportByID(), undef, + 'fetch exports by id without giving any' +); + +# fetching exports by filter without giving any should yield all of them +ok( + @exports = $configDB->fetchExportByFilter(), + 'fetch exports by filter without giving any' +); +is(@exports, 3, 'should have got all three exports'); + +# fetch exports 1 & 2 by filter on vendor_os_id +ok( + my @exports1And2 = $configDB->fetchExportByFilter({ vendor_os_id => '1' }), + 'fetch exports 1 & 2 by filter on vendor_os_id' +); +is(@exports1And2, 2, 'should have got 2 exports'); +# now sort by ID and check if we have really got 1 and 2 +@exports1And2 = sort { $a->{id} cmp $b->{id} } @exports1And2; +is($exports1And2[0]->{id}, 1, 'first id should be 1'); +is($exports1And2[1]->{id}, 2, 'second id should be 2'); + +# try to fetch with multi-column filter +ok( + ($export2, $export3) + = $configDB->fetchExportByFilter({ vendor_os_id => '1', id => 2 }), + 'fetching export with vendor_os_id=1 and id=2 should work' +); +is($export2->{name}, 'exp-2.0', 'should have got exp-2.0'); +is($export3, undef, 'should not get exp-nr-3'); + +# try to fetch multiple occurrences of the same export, combined with +# some unknown IDs +ok( + my @exports1And3 = $configDB->fetchExportByID([ 1, 21, 4-1, 1, 0, 1, 1 ]), + 'fetch a complex set of exports by ID' +); +is(@exports1And3, 2, 'should have got 2 exports'); +# now sort by ID and check if we have really got 1 and 3 +@exports1And3 = sort { $a->{id} cmp $b->{id} } @exports1And3; +is($exports1And3[0]->{id}, 1, 'first id should be 1'); +is($exports1And3[1]->{id}, 3, 'second id should be 3'); + +# try to fetch a couple of non-existing exports by id +is( + $configDB->fetchExportByID(-1), undef, + 'export with id -1 should not exist' +); +is( + $configDB->fetchExportByID(0), undef, + 'export with id 0 should not exist' +); +is( + $configDB->fetchExportByID(1 << 31 + 1000), undef, + 'trying to fetch another unknown export' +); + +# try to fetch a couple of non-existing exports by filter +is( + $configDB->fetchExportByFilter({ id => 0 }), undef, + 'fetching export with id=0 by filter should fail' +); +is( + $configDB->fetchExportByFilter({ name => 'exp-1.x' }), undef, + 'fetching export with name="exp-1.x" should fail' +); +is( + $configDB->fetchExportByFilter({ vendor_os_id => '2', id => 1 }), undef, + 'fetching export with vendor_os_id=2 and id=1 should fail' +); + +# rename export 1 and then fetch it by its new name +ok($configDB->changeExport(1, { name => q{EXP-'1'} }), 'changing export 1'); +ok( + $export1 = $configDB->fetchExportByFilter({ name => q{EXP-'1'} }), + 'fetching renamed export 1' +); +is($export1->{id}, 1, 'really got export number 1'); +is($export1->{name}, q{EXP-'1'}, q{really got export named "EXP-'1'"}); + +# changing nothing at all should succeed +ok($configDB->changeExport(1), 'changing nothing at all in export 1'); + +# changing a non-existing column should fail +ok( + ! eval { $configDB->changeExport(1, { xname => "xx" }) }, + 'changing unknown colum should fail' +); + +ok(! $configDB->changeExport(1, { id => 23 }), 'changing id should fail'); + +# now remove an export and check if that worked +ok($configDB->removeExport(2), 'removing export 2 should be ok'); +is($configDB->fetchExportByID(2, 'id'), undef, 'export 2 should be gone'); +is($configDB->fetchExportByID(1)->{id}, 1, 'export 1 should still exist'); +is($configDB->fetchExportByID(3)->{id}, 3, 'export 3 should still exist'); + +$configDB->disconnect(); + diff --git a/src/config-db/t/12-system.t b/src/config-db/t/12-system.t new file mode 100644 index 00000000..0c3a3042 --- /dev/null +++ b/src/config-db/t/12-system.t @@ -0,0 +1,360 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +ok( + my $system = $configDB->fetchSystemByFilter, + 'one system [default] should exist (scalar context)' +); + +foreach my $requiredCol (qw(name export_id)) { + my $wrongSystem = { + 'name' => 'name', + 'export_id' => 1, + 'comment' => 'has column missing', + }; + delete $wrongSystem->{$requiredCol}; + ok( + ! eval { my $systemID = $configDB->addSystem($wrongSystem); }, + "inserting a system without '$requiredCol' column should fail" + ); +} + +is( + my @systems = $configDB->fetchSystemByFilter, 1, + 'still just one system [default] should exist (array context)' +); + +my $inSystem1 = { + 'name' => 'sys-1', + 'export_id' => 1, + 'comment' => '', + 'attrs' => { + 'ramfs_fsmods' => 'squashfs', + 'ramfs_nicmods' => 'e1000 forcedeth r8169', + 'start_sshd' => 'yes', + }, +}; +is( + my $system1ID = $configDB->addSystem($inSystem1), 1, + 'first system has ID 1' +); + +my $inSystem2 = { + 'name' => 'sys-2.0', + 'kernel' => 'vmlinuz', + 'export_id' => 1, + 'comment' => undef, +}; +my $fullSystem = { + 'name' => 'sys-nr-3', + 'kernel' => 'vmlinuz-2.6.22.13-0.3-default', + 'export_id' => 3, + 'comment' => 'nuff said', + 'label' => 'BlingBling System - really kuul!', + 'attrs' => { + 'automnt_dir' => 'a', + 'automnt_src' => 'b', + 'country' => 'c', + 'hidden' => '1', + 'kernel_params' => 'debug=3 console=ttyS1', + 'ramfs_fsmods' => 'l', + 'ramfs_miscmods' => 'm', + 'ramfs_nicmods' => 'n', + 'scratch' => 'q', + 'start_atd' => 't', + 'start_cron' => 'u', + 'start_dreshal' => 'v', + 'start_ntp' => 'w', + 'start_nfsv4' => 'x', + 'start_snmp' => 'A', + 'start_sshd' => 'B', + 'timezone' => 'G', + }, +}; +ok( + my ($system2ID, $system3ID) = $configDB->addSystem([ + $inSystem2, $fullSystem + ]), + 'add two more systems' +); +is($system2ID, 2, 'system 2 should have ID=2'); +is($system3ID, 3, 'system 3 should have ID=3'); + +# fetch system 3 by id and check all values +ok(my $system3 = $configDB->fetchSystemByID(3), 'fetch system 3'); +is($system3->{id}, '3', 'system 3 - id'); +is($system3->{name}, 'sys-nr-3', 'system 3 - name'); +is($system3->{kernel}, 'vmlinuz-2.6.22.13-0.3-default', 'system 3 - type'); +is($system3->{export_id}, '3', 'system 3 - export_id'); +is($system3->{comment}, 'nuff said', 'system 3 - comment'); +is($system3->{label}, 'BlingBling System - really kuul!', 'system 3 - label'); +is($system3->{attrs}->{automnt_dir}, 'a', 'system 3 - attr automnt_dir'); +is($system3->{attrs}->{automnt_src}, 'b', 'system 3 - attr automnt_src'); +is($system3->{attrs}->{country}, 'c', 'system 3 - attr country'); +is($system3->{attrs}->{hidden}, '1', 'system 3 - attr hidden'); +is($system3->{attrs}->{kernel_params}, 'debug=3 console=ttyS1', 'system 3 - attr kernel_params'); +is($system3->{attrs}->{ramfs_fsmods}, 'l', 'system 3 - attr ramfs_fsmods'); +is($system3->{attrs}->{ramfs_miscmods}, 'm', 'system 3 - attr ramfs_miscmods'); +is($system3->{attrs}->{ramfs_nicmods}, 'n', 'system 3 - attr ramfs_nicmods'); +is($system3->{attrs}->{scratch}, 'q', 'system 3 - attr scratch'); +is($system3->{attrs}->{start_atd}, 't', 'system 3 - attr start_atd'); +is($system3->{attrs}->{start_cron}, 'u', 'system 3 - attr start_cron'); +is($system3->{attrs}->{start_dreshal}, 'v', 'system 3 - attr start_dreshal'); +is($system3->{attrs}->{start_ntp}, 'w', 'system 3 - attr start_ftp'); +is($system3->{attrs}->{start_nfsv4}, 'x', 'system 3 - attr start_nfsv4'); +is($system3->{attrs}->{start_snmp}, 'A', 'system 3 - attr start_snmp'); +is($system3->{attrs}->{start_sshd}, 'B', 'system 3 - attr start_sshd'); +is($system3->{attrs}->{timezone}, 'G', 'system 3 - attr timezone'); +is(keys %{$system3->{attrs}}, 17, 'system 3 - attribute count'); + +# fetch system 2 by a filter on id and check all values +ok( + my $system2 = $configDB->fetchSystemByFilter({ id => 2 }), + 'fetch system 2 by filter on id' +); +is($system2->{id}, 2, 'system 2 - id'); +is($system2->{name}, 'sys-2.0', 'system 2 - name'); +is($system2->{kernel}, 'vmlinuz', 'system 2 - kernel'); +is($system2->{export_id}, '1', 'system 2 - export_id'); +is($system2->{comment}, undef, 'system 2 - comment'); +is(keys %{$system2->{attrs}}, 0, 'system 2 - attribute count'); + +# fetch system 1 by filter on name and check all values +ok( + my $system1 = $configDB->fetchSystemByFilter({ name => 'sys-1' }), + 'fetch system 1 by filter on name' +); +is($system1->{id}, 1, 'system 1 - id'); +is($system1->{name}, 'sys-1', 'system 1 - name'); +is($system1->{export_id}, '1', 'system 1 - export_id'); +is($system1->{kernel}, 'vmlinuz', 'system 1 - kernel'); +is($system1->{comment}, '', 'system 1 - comment'); +is($system1->{label}, 'sys-1', 'system 1 - label'); +is(keys %{$system1->{attrs}}, 3, 'system 1 - attribute count'); +is($system1->{attrs}->{ramfs_fsmods}, 'squashfs', 'system 1 - attr ramfs_fsmods'); +is($system1->{attrs}->{ramfs_nicmods}, 'e1000 forcedeth r8169', 'system 1 - attr ramfs_nicmods'); +is($system1->{attrs}->{start_sshd}, 'yes', 'system 1 - attr start_sshd'); + +# fetch systems 3 & 1 by id +ok( + my @systems3And1 = $configDB->fetchSystemByID([3, 1]), + 'fetch systems 3 & 1 by id' +); +is(@systems3And1, 2, 'should have got 2 systems'); +# now sort by ID and check if we have really got 3 and 1 +@systems3And1 = sort { $a->{id} cmp $b->{id} } @systems3And1; +is($systems3And1[0]->{id}, 1, 'first id should be 1'); +is($systems3And1[1]->{id}, 3, 'second id should be 3'); + +# fetching systems by id without giving any should yield undef +is( + $configDB->fetchSystemByID(), undef, + 'fetch systems by id without giving any' +); + +# fetching systems by filter without giving any should yield all of them +ok( + @systems = $configDB->fetchSystemByFilter(), + 'fetch systems by filter without giving any' +); +is(@systems, 4, 'should have got all four systems'); + +# fetch systems 1 & 2 by filter on export_id +ok( + my @systems1And2 = $configDB->fetchSystemByFilter({ export_id => '1' }), + 'fetch systems 1 & 2 by filter on export_id' +); +is(@systems1And2, 2, 'should have got 2 systems'); +# now sort by ID and check if we have really got 1 and 2 +@systems1And2 = sort { $a->{id} cmp $b->{id} } @systems1And2; +is($systems1And2[0]->{id}, 1, 'first id should be 1'); +is($systems1And2[1]->{id}, 2, 'second id should be 2'); + +# try to fetch with multi-column filter +ok( + ($system2, $system3) + = $configDB->fetchSystemByFilter({ export_id => '1', id => 2 }), + 'fetching system with export_id=1 and id=2 should work' +); +is($system2->{name}, 'sys-2.0', 'should have got sys-2.0'); +is($system3, undef, 'should not get sys-nr-3'); + +# try to fetch multiple occurrences of the same system, combined with +# some unknown IDs +ok( + my @systems1And3 = $configDB->fetchSystemByID([ 1, 21, 4-1, 1, 3, 1, 1 ]), + 'fetch a complex set of systems by ID' +); +is(@systems1And3, 2, 'should have got 2 systems'); +# now sort by ID and check if we have really got 1 and 3 +@systems1And3 = sort { $a->{id} cmp $b->{id} } @systems1And3; +is($systems1And3[0]->{id}, 1, 'first id should be 1'); +is($systems1And3[1]->{id}, 3, 'second id should be 3'); + +# filter systems by different attributes & values in combination +ok( + my @system1Only = $configDB->fetchSystemByFilter( {}, undef, { + ramfs_nicmods => 'e1000 forcedeth r8169' + } ), + 'fetch system 1 by filter on attribute ramfs_nicmods' +); + +is(@system1Only, 1, 'should have got 1 system'); +is($system1Only[0]->{id}, 1, 'first id should be 1'); + +ok( + @system1Only = $configDB->fetchSystemByFilter( undef, 'id', { + ramfs_nicmods => 'e1000 forcedeth r8169', + slxgrp => undef, + } ), + 'fetch system 1 by filter on attribute ramfs_nicmods' +); +is(@system1Only, 1, 'should have got 1 system'); +is($system1Only[0]->{id}, 1, 'first id should be 1'); + +ok( + @system1Only = $configDB->fetchSystemByFilter( { + export_id => 1, + comment => '', + }, 'id', { + ramfs_nicmods => 'e1000 forcedeth r8169', + slxgrp => undef, + } ), + 'fetch system 1 by multiple filter on values and attributes' +); +is(@system1Only, 1, 'should have got 1 system'); +is($system1Only[0]->{id}, 1, 'first id should be 1'); + +is( + $configDB->fetchSystemByFilter( { + export_id => 2, + }, 'id', { + ramfs_nicmods => 'e1000 forcedeth r8169', + slxgrp => undef, + } ), + undef, + 'mismatch system 1 by filter with incorrect value' +); +is( + $configDB->fetchSystemByFilter( { + export_id => 1, + }, 'id', { + ramfs_nicmods => 'xxxx', + slxgrp => undef, + } ), + undef, + 'mismatch system 1 by filter with incorrect attribute value' +); +is( + $configDB->fetchSystemByFilter( { + name => 'sys-1', + }, 'id', { + start_sshd => undef, + } ), + undef, + 'mismatch system 1 by filter with attribute not being empty' +); + +# fetch systems 1 & 2 by filter on attribute start_samba not existing +ok( + @systems1And2 = $configDB->fetchSystemByFilter( {}, undef, { + start_snmp => undef, + } ), + 'fetch systems 1 & 2 by filter on attribute start_snmp not existing' +); +is(@systems1And2, 2, 'should have got 2 systems'); +# now sort by ID and check if we have really got 1 and 2 +@systems1And2 = sort { $a->{id} cmp $b->{id} } @systems1And2; +is($systems1And2[0]->{id}, 1, 'first id should be 1'); +is($systems1And2[1]->{id}, 2, 'second id should be 2'); + +# try to fetch a couple of non-existing systems by id +is( + $configDB->fetchSystemByID(-1), undef, + 'system with id -1 should not exist' +); +ok($configDB->fetchSystemByID(0), 'system with id 0 should exist'); +is( + $configDB->fetchSystemByID(1 << 31 + 1000), undef, + 'trying to fetch another unknown system' +); + +# try to fetch a couple of non-existing systems by filter +is( + $configDB->fetchSystemByFilter({ id => 4 }), undef, + 'fetching system with id=4 by filter should fail' +); +is( + $configDB->fetchSystemByFilter({ name => 'sys-1.x' }), undef, + 'fetching system with name="sys-1.x" should fail' +); +is( + $configDB->fetchSystemByFilter({ export_id => '2', id => 1 }), undef, + 'fetching system with export_id=2 and id=1 should fail' +); + +# rename system 1 and then fetch it by its new name +ok($configDB->changeSystem(1, { name => q{SYS-'1'} }), 'changing system 1'); +ok( + $system1 = $configDB->fetchSystemByFilter({ name => q{SYS-'1'} }), + 'fetching renamed system 1' +); +is($system1->{id}, 1, 'really got system number 1'); +is($system1->{name}, q{SYS-'1'}, q{really got system named "SYS-'1'"}); + +# changing nothing at all should succeed +ok($configDB->changeSystem(1), 'changing nothing at all in system 1'); + +# adding attributes should work +$inSystem1->{attrs}->{slxgrp} = 'slxgrp1'; +$inSystem1->{attrs}->{vmware} = 'yes'; +ok($configDB->changeSystem(1, $inSystem1), 'adding attrs to system 1'); +$system1 = $configDB->fetchSystemByID(1); +is($system1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($system1->{attrs}->{vmware}, 'yes', 'attr vmware has correct value'); + +# changing an attribute should work +$inSystem1->{attrs}->{vmware} = 'no'; +ok($configDB->changeSystem(1, $inSystem1), 'changing vmware in system 1'); +$system1 = $configDB->fetchSystemByID(1); +is($system1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($system1->{attrs}->{vmware}, 'no', 'attr vmware has correct value'); + +# deleting an attribute should remove it +delete $inSystem1->{attrs}->{slxgrp}; +ok($configDB->changeSystem(1, $inSystem1), 'changing slxgrp in system 1'); +$system1 = $configDB->fetchSystemByID(1); +ok(!exists $system1->{attrs}->{slxgrp}, 'attr slxgrp should be gone'); + +# undef'ing an attribute should remove it, too +$inSystem1->{attrs}->{vmware} = undef; +ok($configDB->changeSystem(1, $inSystem1), 'undefining vmware in system 1'); +$system1 = $configDB->fetchSystemByID(1); +ok(!exists $system1->{attrs}->{vmware}, 'attr vmware should be gone'); + +# changing a non-existing column should fail +ok( + ! eval { $configDB->changeSystem(1, { xname => "xx" }) }, + 'changing unknown colum should fail' +); + +ok(! $configDB->changeSystem(1, { id => 23 }), 'changing id should fail'); + +# now remove an system and check if that worked +ok($configDB->removeSystem(2), 'removing system 2 should be ok'); +is($configDB->fetchSystemByID(2, 'id'), undef, 'system 2 should be gone'); +is($configDB->fetchSystemByID(1)->{id}, 1, 'system 1 should still exist'); +is($configDB->fetchSystemByID(3)->{id}, 3, 'system 3 should still exist'); + +$configDB->disconnect(); + diff --git a/src/config-db/t/13-client.t b/src/config-db/t/13-client.t new file mode 100644 index 00000000..8be71518 --- /dev/null +++ b/src/config-db/t/13-client.t @@ -0,0 +1,320 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +ok( + my $client = $configDB->fetchClientByFilter, + 'one client [default] should exist (scalar context)' +); + +foreach my $requiredCol (qw(name mac)) { + my $wrongClient = { + 'name' => 'name', + 'mac' => '01:02:03:04:05:06', + 'comment' => 'has column missing', + }; + delete $wrongClient->{$requiredCol}; + ok( + ! eval { my $clientID = $configDB->addClient($wrongClient); }, + "inserting a client without '$requiredCol' column should fail" + ); +} + +is( + my @clients = $configDB->fetchClientByFilter, 1, + 'still just one client [default] should exist (array context)' +); + +my $inClient1 = { + 'name' => 'cli-1', + 'mac' => '01:02:03:04:05:01', + 'comment' => '', + 'attrs' => { + 'start_snmp' => 'no', + 'start_sshd' => 'yes', + }, +}; +is( + my $client1ID = $configDB->addClient($inClient1), 1, + 'first client has ID 1' +); + +my $inClient2 = { + 'name' => 'cli-2.0', + 'mac' => '01:02:03:04:05:02', + 'comment' => undef, + 'attrs' => { + 'boot_type' => 'etherboot', + 'unbootable' => 1, + } +}; +my $fullClient = { + 'name' => 'cli-nr-3', + 'mac' => '01:02:03:04:05:03', + 'comment' => 'nuff said', + 'attrs' => { + 'automnt_dir' => 'a', + 'automnt_src' => 'b', + 'boot_type' => 'pxe', + 'country' => 'c', + 'kernel_params_client' => 'debug=3 console=ttyS1', + 'scratch' => 'q', + 'start_atd' => 't', + 'start_cron' => 'u', + 'start_dreshal' => 'v', + 'start_ntp' => 'w', + 'start_nfsv4' => 'x', + 'start_snmp' => 'A', + 'start_sshd' => 'B', + 'timezone' => 'G', + 'unbootable' => '0', + }, +}; +ok( + my ($client2ID, $client3ID) = $configDB->addClient([ + $inClient2, $fullClient + ]), + 'add two more clients' +); +is($client2ID, 2, 'client 2 should have ID=2'); +is($client3ID, 3, 'client 3 should have ID=3'); + +# fetch client 3 by id and check all values +ok(my $client3 = $configDB->fetchClientByID(3), 'fetch client 3'); +is($client3->{id}, '3', 'client 3 - id'); +is($client3->{name}, 'cli-nr-3', 'client 3 - name'); +is($client3->{mac}, '01:02:03:04:05:03', 'client 3 - mac'); +is($client3->{comment}, 'nuff said', 'client 3 - comment'); +is($client3->{attrs}->{automnt_dir}, 'a', 'client 3 - attr automnt_dir'); +is($client3->{attrs}->{automnt_src}, 'b', 'client 3 - attr automnt_src'); +is($client3->{attrs}->{boot_type}, 'pxe', 'client 3 - attr boot_type'); +is($client3->{attrs}->{country}, 'c', 'client 3 - attr country'); +is($client3->{attrs}->{kernel_params_client}, 'debug=3 console=ttyS1', 'client 3 - attr kernel_params_client'); +is($client3->{attrs}->{scratch}, 'q', 'client 3 - attr scratch'); +is($client3->{attrs}->{start_atd}, 't', 'client 3 - attr start_atd'); +is($client3->{attrs}->{start_cron}, 'u', 'client 3 - attr start_cron'); +is($client3->{attrs}->{start_dreshal}, 'v', 'client 3 - attr start_dreshal'); +is($client3->{attrs}->{start_ntp}, 'w', 'client 3 - attr start_ftp'); +is($client3->{attrs}->{start_nfsv4}, 'x', 'client 3 - attr start_nfsv4'); +is($client3->{attrs}->{start_snmp}, 'A', 'client 3 - attr start_snmp'); +is($client3->{attrs}->{start_sshd}, 'B', 'client 3 - attr start_sshd'); +is($client3->{attrs}->{timezone}, 'G', 'client 3 - attr timezone'); +is($client3->{attrs}->{unbootable}, '0', 'client 3 - attr unbootable'); +is(keys %{$client3->{attrs}}, 15, 'client 3 - attribute count'); + +# fetch client 2 by a filter on id and check all values +ok( + my $client2 = $configDB->fetchClientByFilter({ id => 2 }), + 'fetch client 2 by filter on id' +); +is($client2->{id}, 2, 'client 2 - id'); +is($client2->{name}, 'cli-2.0', 'client 2 - name'); +is($client2->{mac}, '01:02:03:04:05:02', 'client 2 - mac'); +is($client2->{comment}, undef, 'client 2 - comment'); +is(keys %{$client2->{attrs}}, 2, 'client 2 - attribute count'); +is($client2->{attrs}->{boot_type}, 'etherboot', 'client 2 - attr boot_type'); +is($client2->{attrs}->{unbootable}, '1', 'client 2 - attr unbootable'); + +# fetch client 1 by filter on name and check all values +ok( + my $client1 = $configDB->fetchClientByFilter({ name => 'cli-1' }), + 'fetch client 1 by filter on name' +); +is($client1->{id}, 1, 'client 1 - id'); +is($client1->{name}, 'cli-1', 'client 1 - name'); +is($client1->{mac}, '01:02:03:04:05:01', 'client 1 - mac'); +is($client1->{comment}, '', 'client 1 - comment'); +is(keys %{$client1->{attrs}}, 2, 'client 1 - attribute count'); +is($client1->{attrs}->{start_snmp}, 'no', 'client 1 - attr start_snmp'); +is($client1->{attrs}->{start_sshd}, 'yes', 'client 1 - attr start_sshd'); + +# fetch clients 3 & 1 by id +ok( + my @clients3And1 = $configDB->fetchClientByID([3, 1]), + 'fetch clients 3 & 1 by id' +); +is(@clients3And1, 2, 'should have got 2 clients'); +# now sort by ID and check if we have really got 3 and 1 +@clients3And1 = sort { $a->{id} cmp $b->{id} } @clients3And1; +is($clients3And1[0]->{id}, 1, 'first id should be 1'); +is($clients3And1[1]->{id}, 3, 'second id should be 3'); + +# fetching clients by id without giving any should yield undef +is( + $configDB->fetchClientByID(), undef, + 'fetch clients by id without giving any' +); + +# fetching clients by filter without giving any should yield all of them +ok( + @clients = $configDB->fetchClientByFilter(), + 'fetch clients by filter without giving any' +); +is(@clients, 4, 'should have got all four clients'); + +# try to fetch multiple occurrences of the same client, combined with +# some unknown IDs +ok( + my @clients1And3 = $configDB->fetchClientByID([ 1, 21, 4-1, 1, 4, 1, 1 ]), + 'fetch a complex set of clients by ID' +); +is(@clients1And3, 2, 'should have got 2 clients'); +# now sort by ID and check if we have really got 1 and 3 +@clients1And3 = sort { $a->{id} cmp $b->{id} } @clients1And3; +is($clients1And3[0]->{id}, 1, 'first id should be 1'); +is($clients1And3[1]->{id}, 3, 'second id should be 3'); + +# filter clients by different attributes & values in combination +ok( + my @client1Only = $configDB->fetchClientByFilter( {}, undef, { + start_snmp => 'no', + } ), + 'fetch client 1 by filter on attribute start_snmp' +); + +is(@client1Only, 1, 'should have got 1 client'); +is($client1Only[0]->{id}, 1, 'first id should be 1'); + +ok( + @client1Only = $configDB->fetchClientByFilter( undef, 'id', { + start_snmp => 'no', + tex_enable => undef, + } ), + 'fetch client 1 by filter on attribute start_snmp + non-existing attr' +); +is(@client1Only, 1, 'should have got 1 client'); +is($client1Only[0]->{id}, 1, 'first id should be 1'); + +is( + $configDB->fetchClientByFilter( { + comment => 'xxx', + }, 'id', { + start_snmp => 'no', + start_dreshal => undef, + } ), + undef, + 'mismatch client 1 by filter with incorrect value' +); +is( + $configDB->fetchClientByFilter( { + name => 'cli-1', + }, 'id', { + start_snmp => 'yes', + start_dreshal => undef, + } ), + undef, + 'mismatch client 1 by filter with incorrect attribute value' +); +is( + $configDB->fetchClientByFilter( { + name => 'cli-1', + }, 'id', { + start_sshd => undef, + } ), + undef, + 'mismatch client 1 by filter with attribute not being empty' +); + +# fetch clients 0, 1 & 2 by filter on attribute start_dreshal not existing +ok( + my @clients01And2 = $configDB->fetchClientByFilter( {}, undef, { + start_dreshal => undef, + } ), + 'fetch clients 0,1 & 2 by filter on attribute start_dreshal not existing' +); +is(@clients01And2, 3, 'should have got 3 clients'); +# now sort by ID and check if we have really got 0, 1 and 2 +@clients01And2 = sort { $a->{id} cmp $b->{id} } @clients01And2; +is($clients01And2[0]->{id}, 0, 'first id should be 0'); +is($clients01And2[1]->{id}, 1, 'second id should be 1'); +is($clients01And2[2]->{id}, 2, 'third id should be 2'); + +# try to fetch a couple of non-existing clients by id +is( + $configDB->fetchClientByID(-1), undef, + 'client with id -1 should not exist' +); +ok($configDB->fetchClientByID(0), 'client with id 0 should exist'); +is( + $configDB->fetchClientByID(1 << 31 + 1000), undef, + 'trying to fetch another unknown client' +); + +# try to fetch a couple of non-existing clients by filter +is( + $configDB->fetchClientByFilter({ id => 4 }), undef, + 'fetching client with id=4 by filter should fail' +); +is( + $configDB->fetchClientByFilter({ name => 'cli-1.x' }), undef, + 'fetching client with name="cli-1.x" should fail' +); +is( + $configDB->fetchClientByFilter({ mac => '01:01:01:01:01:01', id => 1 }), undef, + 'fetching client with mac=01:01:01:01:01:01 and id=1 should fail' +); + +# rename client 1 and then fetch it by its new name +ok($configDB->changeClient(1, { name => q{CLI-'1'} }), 'changing client 1'); +ok( + $client1 = $configDB->fetchClientByFilter({ name => q{CLI-'1'} }), + 'fetching renamed client 1' +); +is($client1->{id}, 1, 'really got client number 1'); +is($client1->{name}, q{CLI-'1'}, q{really got client named "CLI-'1'"}); + +# changing nothing at all should succeed +ok($configDB->changeClient(1), 'changing nothing at all in client 1'); + +# adding attributes should work +$inClient1->{attrs}->{slxgrp} = 'slxgrp1'; +$inClient1->{attrs}->{vmware} = 'yes'; +ok($configDB->changeClient(1, $inClient1), 'adding attrs to client 1'); +$client1 = $configDB->fetchClientByID(1); +is($client1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($client1->{attrs}->{vmware}, 'yes', 'attr vmware has correct value'); + +# changing an attribute should work +$inClient1->{attrs}->{vmware} = 'no'; +ok($configDB->changeClient(1, $inClient1), 'changing vmware in client 1'); +$client1 = $configDB->fetchClientByID(1); +is($client1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($client1->{attrs}->{vmware}, 'no', 'attr vmware has correct value'); + +# deleting an attribute should remove it +delete $inClient1->{attrs}->{slxgrp}; +ok($configDB->changeClient(1, $inClient1), 'changing slxgrp in client 1'); +$client1 = $configDB->fetchClientByID(1); +ok(!exists $client1->{attrs}->{slxgrp}, 'attr slxgrp should be gone'); + +# undef'ing an attribute should remove it, too +$inClient1->{attrs}->{vmware} = undef; +ok($configDB->changeClient(1, $inClient1), 'undefining vmware in client 1'); +$client1 = $configDB->fetchClientByID(1); +ok(!exists $client1->{attrs}->{vmware}, 'attr vmware should be gone'); + +# changing a non-existing column should fail +ok( + ! eval { $configDB->changeClient(1, { xname => "xx" }) }, + 'changing unknown colum should fail' +); + +ok(! $configDB->changeClient(1, { id => 23 }), 'changing id should fail'); + +# now remove an client and check if that worked +ok($configDB->removeClient(2), 'removing client 2 should be ok'); +is($configDB->fetchClientByID(2, 'id'), undef, 'client 2 should be gone'); +is($configDB->fetchClientByID(1)->{id}, 1, 'client 1 should still exist'); +is($configDB->fetchClientByID(3)->{id}, 3, 'client 3 should still exist'); + +$configDB->disconnect(); + diff --git a/src/config-db/t/14-group.t b/src/config-db/t/14-group.t new file mode 100644 index 00000000..5c5d0f81 --- /dev/null +++ b/src/config-db/t/14-group.t @@ -0,0 +1,384 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +is( + my $group = $configDB->fetchGroupByFilter, undef, + 'no group should exist (scalar context)' +); + +foreach my $requiredCol (qw(name)) { + my $wrongGroup = { + 'name' => 'name', + 'priority' => 41, + 'comment' => 'has column missing', + }; + delete $wrongGroup->{$requiredCol}; + ok( + ! eval { my $groupID = $configDB->addGroup($wrongGroup); }, + "inserting a group without '$requiredCol' column should fail" + ); +} + +is( + my @groups = $configDB->fetchGroupByFilter, 0, + 'still no group should exist (array context)' +); + +my $inGroup1 = { + 'name' => 'grp-1', + 'comment' => '', + 'attrs' => { + 'slxgrp' => 'slxgrp', + 'start_snmp' => 'no', + 'start_sshd' => 'yes', + }, +}; +is( + my $group1ID = $configDB->addGroup($inGroup1), 1, + 'first group has ID 1' +); + +my $inGroup2 = { + 'name' => 'grp-2.0', + 'priority' => 30, + 'comment' => undef, +}; +my $fullGroup = { + 'name' => 'grp-nr-3', + 'priority' => 50, + 'comment' => 'nuff said', + 'attrs' => { + 'automnt_dir' => 'a', + 'automnt_src' => 'b', + 'country' => 'c', + 'dm_allow_shutdown' => 'd', + 'hw_graphic' => 'e', + 'hw_monitor' => 'f', + 'hw_mouse' => 'g', + 'late_dm' => 'h', + 'netbios_workgroup' => 'i', + 'nis_domain' => 'j', + 'nis_servers' => 'k', + 'sane_scanner' => 'p', + 'scratch' => 'q', + 'slxgrp' => 'r', + 'start_alsasound' => 's', + 'start_atd' => 't', + 'start_cron' => 'u', + 'start_dreshal' => 'v', + 'start_ntp' => 'w', + 'start_nfsv4' => 'x', + 'start_printer' => 'y', + 'start_samba' => 'z', + 'start_snmp' => 'A', + 'start_sshd' => 'B', + 'start_syslog' => 'C', + 'start_x' => 'D', + 'start_xdmcp' => 'E', + 'tex_enable' => 'F', + 'timezone' => 'G', + 'tvout' => 'H', + 'vmware' => 'I', + }, +}; +ok( + my ($group2ID, $group3ID) = $configDB->addGroup([ + $inGroup2, $fullGroup + ]), + 'add two more groups' +); +is($group2ID, 2, 'group 2 should have ID=2'); +is($group3ID, 3, 'group 3 should have ID=3'); + +# fetch group 3 by id and check all values +ok(my $group3 = $configDB->fetchGroupByID(3), 'fetch group 3'); +is($group3->{id}, '3', 'group 3 - id'); +is($group3->{name}, 'grp-nr-3', 'group 3 - name'); +is($group3->{priority}, 50, 'group 3 - priority'); +is($group3->{comment}, 'nuff said', 'group 3 - comment'); +is($group3->{attrs}->{automnt_dir}, 'a', 'group 3 - attr automnt_dir'); +is($group3->{attrs}->{automnt_src}, 'b', 'group 3 - attr automnt_src'); +is($group3->{attrs}->{country}, 'c', 'group 3 - attr country'); +is($group3->{attrs}->{dm_allow_shutdown}, 'd', 'group 3 - attr dm_allow_shutdown'); +is($group3->{attrs}->{hw_graphic}, 'e', 'group 3 - attr hw_graphic'); +is($group3->{attrs}->{hw_monitor}, 'f', 'group 3 - attr hw_monitor'); +is($group3->{attrs}->{hw_mouse}, 'g', 'group 3 - attr hw_mouse'); +is($group3->{attrs}->{late_dm}, 'h', 'group 3 - attr late_dm'); +is($group3->{attrs}->{netbios_workgroup}, 'i', 'group 3 - attr netbios_workgroup'); +is($group3->{attrs}->{nis_domain}, 'j', 'group 3 - attr nis_domain'); +is($group3->{attrs}->{nis_servers}, 'k', 'group 3 - attr nis_servers'); +is($group3->{attrs}->{sane_scanner}, 'p', 'group 3 - attr sane_scanner'); +is($group3->{attrs}->{scratch}, 'q', 'group 3 - attr scratch'); +is($group3->{attrs}->{slxgrp}, 'r', 'group 3 - attr slxgrp'); +is($group3->{attrs}->{start_alsasound}, 's', 'group 3 - attr start_alsasound'); +is($group3->{attrs}->{start_atd}, 't', 'group 3 - attr start_atd'); +is($group3->{attrs}->{start_cron}, 'u', 'group 3 - attr start_cron'); +is($group3->{attrs}->{start_dreshal}, 'v', 'group 3 - attr start_dreshal'); +is($group3->{attrs}->{start_ntp}, 'w', 'group 3 - attr start_ftp'); +is($group3->{attrs}->{start_nfsv4}, 'x', 'group 3 - attr start_nfsv4'); +is($group3->{attrs}->{start_printer}, 'y', 'group 3 - attr start_printer'); +is($group3->{attrs}->{start_samba}, 'z', 'group 3 - attr start_samba'); +is($group3->{attrs}->{start_snmp}, 'A', 'group 3 - attr start_snmp'); +is($group3->{attrs}->{start_sshd}, 'B', 'group 3 - attr start_sshd'); +is($group3->{attrs}->{start_syslog}, 'C', 'group 3 - attr start_syslog'); +is($group3->{attrs}->{start_x}, 'D', 'group 3 - attr start_x'); +is($group3->{attrs}->{start_xdmcp}, 'E', 'group 3 - attr start_xdmcp'); +is($group3->{attrs}->{tex_enable}, 'F', 'group 3 - attr tex_enable'); +is($group3->{attrs}->{timezone}, 'G', 'group 3 - attr timezone'); +is($group3->{attrs}->{tvout}, 'H', 'group 3 - attr tvout'); +is($group3->{attrs}->{vmware}, 'I', 'group 3 - attr vmware'); +is(keys %{$group3->{attrs}}, 31, 'group 3 - attribute count'); + +# fetch group 2 by a filter on id and check all values +ok( + my $group2 = $configDB->fetchGroupByFilter({ id => 2 }), + 'fetch group 2 by filter on id' +); +is($group2->{id}, 2, 'group 2 - id'); +is($group2->{name}, 'grp-2.0', 'group 2 - name'); +is($group2->{priority}, 30, 'group 2 - priority'); +is($group2->{comment}, undef, 'group 2 - comment'); +is(keys %{$group2->{attrs}}, 0, 'group 2 - attribute count'); + +# fetch group 1 by filter on name and check all values +ok( + my $group1 = $configDB->fetchGroupByFilter({ name => 'grp-1' }), + 'fetch group 1 by filter on name' +); +is($group1->{id}, 1, 'group 1 - id'); +is($group1->{name}, 'grp-1', 'group 1 - name'); +is($group1->{priority}, 50, 'group 1 - priority'); +is($group1->{comment}, '', 'group 1 - comment'); +is(keys %{$group1->{attrs}}, 3, 'group 1 - attribute count'); +is($group1->{attrs}->{slxgrp}, 'slxgrp', 'group 1 - attr slxgrp'); +is($group1->{attrs}->{start_snmp}, 'no', 'group 1 - attr start_snmp'); +is($group1->{attrs}->{start_sshd}, 'yes', 'group 1 - attr start_sshd'); + +# fetch groups 3 & 1 by id +ok( + my @groups3And1 = $configDB->fetchGroupByID([3, 1]), + 'fetch groups 3 & 1 by id' +); +is(@groups3And1, 2, 'should have got 2 groups'); +# now sort by ID and check if we have really got 3 and 1 +@groups3And1 = sort { $a->{id} cmp $b->{id} } @groups3And1; +is($groups3And1[0]->{id}, 1, 'first id should be 1'); +is($groups3And1[1]->{id}, 3, 'second id should be 3'); + +# fetching groups by id without giving any should yield undef +is( + $configDB->fetchGroupByID(), undef, + 'fetch groups by id without giving any' +); + +# fetching groups by filter without giving any should yield all of them +ok( + @groups = $configDB->fetchGroupByFilter(), + 'fetch groups by filter without giving any' +); +is(@groups, 3, 'should have got all three groups'); + +# fetch groups 1 & 2 by filter on priority +ok( + my @groups1And3 = $configDB->fetchGroupByFilter({ priority => 50 }), + 'fetch groups 1 & 3 by filter on priority' +); +is(@groups1And3, 2, 'should have got 2 groups'); +# now sort by ID and check if we have really got 1 and 3 +@groups1And3 = sort { $a->{id} cmp $b->{id} } @groups1And3; +is($groups1And3[0]->{id}, 1, 'first id should be 1'); +is($groups1And3[1]->{id}, 3, 'second id should be 3'); + +# fetch group 2 by filter on comment being undef'd +ok( + my @group2Only = $configDB->fetchGroupByFilter({ comment => undef }), + 'fetch group 2 by filter on comment being undefined' +); +is(@group2Only, 1, 'should have got 1 group'); +is($group2Only[0]->{id}, 2, 'first id should be 2'); + +# try to fetch with multi-column filter +ok( + ($group1, $group3) + = $configDB->fetchGroupByFilter({ priority => '50', id => 1 }), + 'fetching group with priority=50 and id=1 should work' +); +is($group1->{name}, 'grp-1', 'should have got grp-1'); +is($group3, undef, 'should not get grp-nr-3'); + +# try to fetch multiple occurrences of the same group, combined with +# some unknown IDs +ok( + @groups1And3 = $configDB->fetchGroupByID([ 1, 21, 4-1, 1, 4, 1, 1 ]), + 'fetch a complex set of groups by ID' +); +is(@groups1And3, 2, 'should have got 2 groups'); +# now sort by ID and check if we have really got 1 and 3 +@groups1And3 = sort { $a->{id} cmp $b->{id} } @groups1And3; +is($groups1And3[0]->{id}, 1, 'first id should be 1'); +is($groups1And3[1]->{id}, 3, 'second id should be 3'); + +# filter groups by different attributes & values in combination +ok( + my @group1Only = $configDB->fetchGroupByFilter( {}, undef, { + start_snmp => 'no', + } ), + 'fetch group 1 by filter on attribute start_snmp' +); + +is(@group1Only, 1, 'should have got 1 group'); +is($group1Only[0]->{id}, 1, 'first id should be 1'); + +ok( + @group1Only = $configDB->fetchGroupByFilter( undef, 'id', { + start_snmp => 'no', + tex_enable => undef, + } ), + 'fetch group 1 by filter on attribute start_snmp + non-existing attr' +); +is(@group1Only, 1, 'should have got 1 group'); +is($group1Only[0]->{id}, 1, 'first id should be 1'); + +ok( + @group1Only = $configDB->fetchGroupByFilter( { + name => 'grp-1', + priority => 50, + }, 'id', { + start_snmp => 'no', + tex_enable => undef, + } ), + 'fetch group 1 by multiple filter on values and attributes' +); +is(@group1Only, 1, 'should have got 1 group'); +is($group1Only[0]->{id}, 1, 'first id should be 1'); + +is( + $configDB->fetchGroupByFilter( { + comment => 'xxx', + }, 'id', { + start_snmp => 'no', + tex_enable => undef, + } ), + undef, + 'mismatch group 1 by filter with incorrect value' +); +is( + $configDB->fetchGroupByFilter( { + name => 'grp-1', + }, 'id', { + start_snmp => 'yes', + tex_enable => undef, + } ), + undef, + 'mismatch group 1 by filter with incorrect attribute value' +); +is( + $configDB->fetchGroupByFilter( { + name => 'grp-1', + }, 'id', { + start_sshd => undef, + } ), + undef, + 'mismatch group 1 by filter with attribute not being empty' +); + +# fetch groups 1 & 2 by filter on attribute start_samba not existing +ok( + my @groups1And2 = $configDB->fetchGroupByFilter( {}, undef, { + start_samba => undef, + } ), + 'fetch groups 1 & 2 by filter on attribute start_samba not existing' +); +is(@groups1And2, 2, 'should have got 2 groups'); +# now sort by ID and check if we have really got 1 and 2 +@groups1And2 = sort { $a->{id} cmp $b->{id} } @groups1And2; +is($groups1And2[0]->{id}, 1, 'first id should be 1'); +is($groups1And2[1]->{id}, 2, 'second id should be 2'); + +# try to fetch a couple of non-existing groups by id +is($configDB->fetchGroupByID(-1), undef, 'group with id -1 should not exist'); +is($configDB->fetchGroupByID(0), undef, 'group with id 0 should not exist'); +is( + $configDB->fetchGroupByID(1 << 31 + 1000), undef, + 'trying to fetch another unknown group' +); + +# try to fetch a couple of non-existing groups by filter +is( + $configDB->fetchGroupByFilter({ id => 4 }), undef, + 'fetching group with id=4 by filter should fail' +); +is( + $configDB->fetchGroupByFilter({ name => 'grp-1.x' }), undef, + 'fetching group with name="grp-1.x" should fail' +); +is( + $configDB->fetchGroupByFilter({ priority => '22', id => 1 }), undef, + 'fetching group with priority=22 and id=1 should fail' +); + +# rename group 1 and then fetch it by its new name +ok($configDB->changeGroup(1, { name => q{GRP-'1'} }), 'changing group 1'); +ok( + $group1 = $configDB->fetchGroupByFilter({ name => q{GRP-'1'} }), + 'fetching renamed group 1' +); +is($group1->{id}, 1, 'really got group number 1'); +is($group1->{name}, q{GRP-'1'}, q{really got group named "GRP-'1'"}); + +# changing nothing at all should succeed +ok($configDB->changeGroup(1), 'changing nothing at all in group 1'); + +# adding attributes should work +$inGroup1->{attrs}->{slxgrp} = 'slxgrp1'; +$inGroup1->{attrs}->{vmware} = 'yes'; +ok($configDB->changeGroup(1, $inGroup1), 'adding attrs to group 1'); +$group1 = $configDB->fetchGroupByID(1); +is($group1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($group1->{attrs}->{vmware}, 'yes', 'attr vmware has correct value'); + +# changing an attribute should work +$inGroup1->{attrs}->{vmware} = 'no'; +ok($configDB->changeGroup(1, $inGroup1), 'changing vmware in group 1'); +$group1 = $configDB->fetchGroupByID(1); +is($group1->{attrs}->{slxgrp}, 'slxgrp1', 'attr slxgrp has correct value'); +is($group1->{attrs}->{vmware}, 'no', 'attr vmware has correct value'); + +# deleting an attribute should remove it +delete $inGroup1->{attrs}->{slxgrp}; +ok($configDB->changeGroup(1, $inGroup1), 'changing slxgrp in group 1'); +$group1 = $configDB->fetchGroupByID(1); +ok(!exists $group1->{attrs}->{slxgrp}, 'attr slxgrp should be gone'); + +# undef'ing an attribute should remove it, too +$inGroup1->{attrs}->{vmware} = undef; +ok($configDB->changeGroup(1, $inGroup1), 'undefining vmware in group 1'); +$group1 = $configDB->fetchGroupByID(1); +ok(!exists $group1->{attrs}->{vmware}, 'attr vmware should be gone'); + +# changing a non-existing column should fail +ok( + ! eval { $configDB->changeGroup(1, { xname => "xx" }) }, + 'changing unknown colum should fail' +); + +ok(! $configDB->changeGroup(1, { id => 23 }), 'changing id should fail'); + +# now remove an group and check if that worked +ok($configDB->removeGroup(2), 'removing group 2 should be ok'); +is($configDB->fetchGroupByID(2, 'id'), undef, 'group 2 should be gone'); +is($configDB->fetchGroupByID(1)->{id}, 1, 'group 1 should still exist'); +is($configDB->fetchGroupByID(3)->{id}, 3, 'group 3 should still exist'); + +$configDB->disconnect(); + diff --git a/src/config-db/t/15-global_info.t b/src/config-db/t/15-global_info.t new file mode 100644 index 00000000..8f2f8cf1 --- /dev/null +++ b/src/config-db/t/15-global_info.t @@ -0,0 +1,43 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +# fetch global-info 'next-nbd-server-port' +ok( + my $globalInfo = $configDB->fetchGlobalInfo('next-nbd-server-port'), + 'fetch global-info' +); +is($globalInfo, '5000', 'global-info - value'); + +# try to fetch a couple of non-existing global-infos +is( + $configDB->fetchGlobalInfo(-1), undef, + 'global-info with id -1 should not exist' +); +is($configDB->fetchGlobalInfo('xxx'), undef, + 'global-info with id xxx should not exist'); + +# change value of global-info and then fetch and check the new value +ok($configDB->changeGlobalInfo('next-nbd-server-port', '5050'), 'changing global-info'); +is( + $configDB->fetchGlobalInfo('next-nbd-server-port'), '5050', + 'fetching changed global-info' +); + +# changing a non-existing global-info should fail +ok( + ! eval { $configDB->changeGlobalInfo('xxx', 'new-value') }, + 'changing unknown global-info should fail' +); + +$configDB->disconnect(); + diff --git a/src/config-db/t/20-client_system_ref.t b/src/config-db/t/20-client_system_ref.t new file mode 100644 index 00000000..93b86950 --- /dev/null +++ b/src/config-db/t/20-client_system_ref.t @@ -0,0 +1,208 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +# fetch clients & systems +my @clients = sort { $a->{id} <=> $b->{id} } $configDB->fetchClientByFilter(); +is(@clients, 3, 'should have got 3 clients (default, 1 and 3)'); +my $defaultClient = shift @clients; +my $client1 = shift @clients; +my $client3 = shift @clients; + +my @systems = sort { $a->{id} <=> $b->{id} } $configDB->fetchSystemByFilter(); +is(@systems, 3, 'should have got 3 systems (default, 1 and 3)'); +my $defaultSystem = shift @systems; +my $system1 = shift @systems; +my $system3 = shift @systems; + +foreach my $client ($defaultClient, $client1, $client3) { + is( + my @systemIDs = $configDB->fetchSystemIDsOfClient($client->{id}), + 0, "client $client->{id} has no system-IDs yet" + ); +} + +foreach my $system ($defaultSystem, $system1, $system3) { + is( + my @clientIDs = $configDB->fetchClientIDsOfSystem($system->{id}), + 0, "system $system->{id} has no client-IDs yet" + ); +} + +ok( + $configDB->addSystemIDsToClient(1, [3]), + 'system-ID 3 has been associated to client 1' +); +is( + my @systemIDs = sort($configDB->fetchSystemIDsOfClient(0)), + 0, "default client should have no system-ID" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(1)), + 1, "client 1 should have one system-ID" +); +is($systemIDs[0], 3, "first system of client 1 should have ID 3"); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(3)), + 0, "client 3 should have no system-ID" +); +is( + my @clientIDs = sort($configDB->fetchClientIDsOfSystem(0)), + 0, "default system should have no client-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(1)), + 0, "system 1 should have no client-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(3)), + 1, "system 3 should have one client-ID" +); +is($clientIDs[0], 1, "first client of system 3 should have ID 1"); + +ok( + $configDB->addSystemIDsToClient(3, [1,3,3,1,3]), + 'system-IDs 1 and 3 have been associated to client 3' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(0)), + 0, "default client should have no system-IDs" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(1)), + 1, "client 1 should have one system-ID" +); +is($systemIDs[0], 3, "first system of client 1 should have ID 3"); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(3)), + 2, "client 3 should have two system-IDs" +); +is($systemIDs[0], 1, "first system of client 3 should have ID 1"); +is($systemIDs[1], 3, "second system of client 3 should have ID 3"); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(0)), + 0, "default system should have no client-ID" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(1)), + 1, "system 1 should have one client-ID" +); +is($clientIDs[0], 3, "first client of system 1 should have ID 3"); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(3)), + 2, "system 3 should have two client-IDs" +); +is($clientIDs[0], 1, "first client of system 3 should have ID 1"); +is($clientIDs[1], 3, "second client of system 3 should have ID 3"); + +ok( + $configDB->setClientIDsOfSystem(3, []), + 'client-IDs of system 3 have been set to empty array' +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(3)), + 0, "system 3 should have no client-IDs" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(1)), + 0, "client 1 should have no system-IDs" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(3)), + 1, "client 3 should have one system-ID" +); +is($systemIDs[0], 1, "first system of client 3 should have ID 1"); + +ok( + $configDB->addSystemIDsToClient(1, [0]), + 'associating the default system should have no effect' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(1)), + 0, "client 1 should still have no system-ID" +); + +ok( + $configDB->removeClientIDsFromSystem(1, [1]), + 'removing an unassociated client-ID should have no effect' +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(1)), + 1, "system 1 should have one client-ID" +); +ok( + $configDB->removeClientIDsFromSystem(1, [3]), + 'removing an associated client-ID should work' +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(1)), + 0, "system 1 should have no more client-ID" +); + +$configDB->addSystem({ + 'name' => 'sys-4', + 'export_id' => 1, + 'comment' => 'shortlived', +}); +ok( + $configDB->addClientIDsToSystem(4, [0]), + 'default client has been associated to system 4' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(0)), + 1, "default client should have one system-ID" +); +is($systemIDs[0], 4, "first system of default client should have ID 4"); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(1)), + 0, "client 1 should have no system-ID" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfClient(3)), + 0, "client 3 should have no system-ID" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(0)), + 0, "default system should have no client-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(1)), + 0, "system 1 should have no client-ID" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(3)), + 0, "system 3 should have no client-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfSystem(4)), + 1, "system 4 should have one client-ID" +); +is($clientIDs[0], 0, "first client of system 4 should have ID 0"); + +ok( + $configDB->removeSystemIDsFromClient(0, [6]), + 'removing an unassociated system-ID should have no effect' +); +is( + @clientIDs = sort($configDB->fetchSystemIDsOfClient(0)), + 1, "default client should have one system-ID" +); +ok( + $configDB->removeSystem(4), + 'removing a system should drop client associations, too' +); +is( + @clientIDs = sort($configDB->fetchSystemIDsOfClient(0)), + 0, "default client should have no more system-ID" +); + +$configDB->disconnect(); diff --git a/src/config-db/t/21-group_system_ref.t b/src/config-db/t/21-group_system_ref.t new file mode 100644 index 00000000..b643f7e0 --- /dev/null +++ b/src/config-db/t/21-group_system_ref.t @@ -0,0 +1,195 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +# fetch groups & systems +my @groups = sort { $a->{id} <=> $b->{id} } $configDB->fetchGroupByFilter(); +is(@groups, 2, 'should have got 2 groups (1 and 3)'); +my $group1 = shift @groups; +my $group3 = shift @groups; + +my @systems = sort { $a->{id} <=> $b->{id} } $configDB->fetchSystemByFilter(); +is(@systems, 3, 'should have got 3 systems (default, 1 and 3)'); +my $defaultSystem = shift @systems; +my $system1 = shift @systems; +my $system3 = shift @systems; + +foreach my $group ($group1, $group3) { + is( + my @systemIDs = $configDB->fetchSystemIDsOfGroup($group->{id}), + 0, "group $group->{id} has no system-IDs yet" + ); +} + +foreach my $system ($defaultSystem, $system1, $system3) { + is( + my @groupIDs = $configDB->fetchGroupIDsOfSystem($system->{id}), + 0, "system $system->{id} has no group-IDs yet" + ); +} + +ok( + $configDB->addSystemIDsToGroup(1, [3]), + 'system-ID 3 has been associated to group 1' +); +is( + my @systemIDs = sort($configDB->fetchSystemIDsOfGroup(1)), + 1, "group 1 should have one system-ID" +); +is($systemIDs[0], 3, "first system of group 1 should have ID 3"); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 0, "group 3 should have no system-ID" +); +is( + my @groupIDs = sort($configDB->fetchGroupIDsOfSystem(0)), + 0, "default system should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(1)), + 0, "system 1 should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(3)), + 1, "system 3 should have one group-ID" +); +is($groupIDs[0], 1, "first group of system 3 should have ID 1"); + +ok( + $configDB->addSystemIDsToGroup(3, [1,3,3,1,3]), + 'system-IDs 1 and 3 have been associated to group 3' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(1)), + 1, "group 1 should have one system-ID" +); +is($systemIDs[0], 3, "first system of group 1 should have ID 3"); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 2, "group 3 should have two system-IDs" +); +is($systemIDs[0], 1, "first system of group 3 should have ID 1"); +is($systemIDs[1], 3, "second system of group 3 should have ID 3"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(0)), + 0, "default system should have no group-ID" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(1)), + 1, "system 1 should have one group-ID" +); +is($groupIDs[0], 3, "first group of system 1 should have ID 3"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(3)), + 2, "system 3 should have two group-IDs" +); +is($groupIDs[0], 1, "first group of system 3 should have ID 1"); +is($groupIDs[1], 3, "second group of system 3 should have ID 3"); + +ok( + $configDB->setGroupIDsOfSystem(3, []), + 'group-IDs of system 3 have been set to empty array' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(3)), + 0, "system 3 should have no group-IDs" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(1)), + 0, "group 1 should have no more system-IDs" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 1, "group 3 should have one system-ID" +); +is($systemIDs[0], 1, "first system of group 3 should have ID 1"); + +ok( + $configDB->addSystemIDsToGroup(1, [0]), + 'associating the default system should have no effect' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(1)), + 0, "group 1 should still have no system-ID" +); + +ok( + $configDB->removeGroupIDsFromSystem(1, [1]), + 'removing an unassociated group-ID should have no effect' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(1)), + 1, "system 1 should have one group-ID" +); +ok( + $configDB->removeGroupIDsFromSystem(1, [3]), + 'removing an associated group-ID should work' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(1)), + 0, "system 1 should have no more group-ID" +); + +$configDB->addSystem({ + 'name' => 'sys-5', + 'export_id' => 1, + 'comment' => 'shortlived', +}); +ok( + $configDB->addGroupIDsToSystem(5, [3]), + 'default group has been associated to system 5' +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(1)), + 0, "group 1 should have no system-ID" +); +is( + @systemIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 1, "group 3 should have no system-ID" +); +is($systemIDs[0], 5, "first system of group 3 should have ID 5"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(0)), + 0, "default system should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(1)), + 0, "system 1 should have no group-ID" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(3)), + 0, "system 3 should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfSystem(5)), + 1, "system 5 should have one group-ID" +); +is($groupIDs[0], 3, "first group of system 5 should have ID 3"); + +ok( + $configDB->removeSystemIDsFromGroup(3, [6]), + 'removing an unassociated system-ID should have no effect' +); +is( + @groupIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 1, "group 3 should have one system-ID" +); +ok( + $configDB->removeSystem(5), + 'removing a system should drop group associations, too' +); +is( + @groupIDs = sort($configDB->fetchSystemIDsOfGroup(3)), + 0, "group 3 should have no more system-ID" +); + +$configDB->disconnect(); diff --git a/src/config-db/t/22-group_client_ref.t b/src/config-db/t/22-group_client_ref.t new file mode 100644 index 00000000..ff9d6ca7 --- /dev/null +++ b/src/config-db/t/22-group_client_ref.t @@ -0,0 +1,186 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +# fetch groups & clients +my @groups = sort { $a->{id} <=> $b->{id} } $configDB->fetchGroupByFilter(); +is(@groups, 2, 'should have got 2 groups (1 and 3)'); +my $group1 = shift @groups; +my $group3 = shift @groups; + +my @clients = sort { $a->{id} <=> $b->{id} } $configDB->fetchClientByFilter(); +is(@clients, 3, 'should have got 3 clients (default, 1 and 3)'); +my $defaultClient = shift @clients; +my $client1 = shift @clients; +my $client3 = shift @clients; + +foreach my $group ($group1, $group3) { + is( + my @clientIDs = $configDB->fetchClientIDsOfGroup($group->{id}), + 0, "group $group->{id} has no client-IDs yet" + ); +} + +foreach my $client ($defaultClient, $client1, $client3) { + is( + my @groupIDs = $configDB->fetchGroupIDsOfClient($client->{id}), + 0, "client $client->{id} has no group-IDs yet" + ); +} + +ok( + $configDB->addClientIDsToGroup(1, [3]), + 'client-ID 3 has been associated to group 1' +); +is( + my @clientIDs = sort($configDB->fetchClientIDsOfGroup(1)), + 1, "group 1 should have one client-ID" +); +is($clientIDs[0], 3, "first client of group 1 should have ID 3"); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 0, "group 3 should have no client-ID" +); +is( + my @groupIDs = sort($configDB->fetchGroupIDsOfClient(0)), + 0, "default client should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(1)), + 0, "client 1 should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(3)), + 1, "client 3 should have one group-ID" +); +is($groupIDs[0], 1, "first group of client 3 should have ID 1"); + +ok( + $configDB->addClientIDsToGroup(3, [1,3,3,1,3]), + 'client-IDs 1 and 3 have been associated to group 3' +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(1)), + 1, "group 1 should have one client-ID" +); +is($clientIDs[0], 3, "first client of group 1 should have ID 3"); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 2, "group 3 should have two client-IDs" +); +is($clientIDs[0], 1, "first client of group 3 should have ID 1"); +is($clientIDs[1], 3, "second client of group 3 should have ID 3"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(0)), + 0, "default client should have no group-ID" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(1)), + 1, "client 1 should have one group-ID" +); +is($groupIDs[0], 3, "first group of client 1 should have ID 3"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(3)), + 2, "client 3 should have two group-IDs" +); +is($groupIDs[0], 1, "first group of client 3 should have ID 1"); +is($groupIDs[1], 3, "second group of client 3 should have ID 3"); + +ok( + $configDB->setGroupIDsOfClient(3, []), + 'group-IDs of client 3 have been set to empty array' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(3)), + 0, "client 3 should have no group-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(1)), + 0, "group 1 should have no more client-IDs" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 1, "group 3 should have one client-ID" +); +is($clientIDs[0], 1, "first client of group 3 should have ID 1"); + +ok( + $configDB->removeGroupIDsFromClient(1, [1]), + 'removing an unassociated group-ID should have no effect' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(1)), + 1, "client 1 should have one group-ID" +); +ok( + $configDB->removeGroupIDsFromClient(1, [3]), + 'removing an associated group-ID should work' +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(1)), + 0, "client 1 should have no more group-ID" +); + +$configDB->addClient({ + 'name' => 'cli-4', + 'mac' => '01:01:01:02:02:02', + 'comment' => 'shortlived', +}); +ok( + $configDB->addGroupIDsToClient(4, [3]), + 'default group has been associated to client 4' +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(1)), + 0, "group 1 should have no client-ID" +); +is( + @clientIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 1, "group 3 should have one client-ID" +); +is($clientIDs[0], 4, "first client of group 3 should have ID 1"); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(0)), + 0, "default client should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(1)), + 0, "client 1 should have no group-ID" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(3)), + 0, "client 3 should have no group-IDs" +); +is( + @groupIDs = sort($configDB->fetchGroupIDsOfClient(4)), + 1, "client 4 should have one group-ID" +); +is($groupIDs[0], 3, "first group of client 4 should have ID 3"); + +ok( + $configDB->removeClientIDsFromGroup(3, [6]), + 'removing an unassociated client-ID should have no effect' +); +is( + @groupIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 1, "group 3 should have one client-ID" +); +ok( + $configDB->removeClient(4), + 'removing a client should drop group associations, too' +); +is( + @groupIDs = sort($configDB->fetchClientIDsOfGroup(3)), + 0, "group 3 should have no more client-ID" +); + +$configDB->disconnect(); diff --git a/src/config-db/t/25-attributes.t b/src/config-db/t/25-attributes.t new file mode 100644 index 00000000..9662684c --- /dev/null +++ b/src/config-db/t/25-attributes.t @@ -0,0 +1,677 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +use Clone qw(clone); + +# basic init +use OpenSLX::ConfigDB qw(:support); + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +my $defaultAttrs = { # mostly copied from DBSchema + 'ramfs_fsmods' => undef, + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => 'forcedeth e1000 e100 tg3 via-rhine r8169 pcnet32', + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => 'de', + 'dm_allow_shutdown' => 'user', + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => 'no', + 'netbios_workgroup' => 'slx-network', + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => undef, + 'slxgrp' => undef, + 'start_alsasound' => 'yes', + 'start_atd' => 'no', + 'start_cron' => 'no', + 'start_dreshal' => 'yes', + 'start_ntp' => 'initial', + 'start_nfsv4' => 'no', + 'start_printer' => 'no', + 'start_samba' => 'may', + 'start_snmp' => 'no', + 'start_sshd' => 'yes', + 'start_syslog' => 'yes', + 'start_x' => 'yes', + 'start_xdmcp' => 'kdm', + 'tex_enable' => 'no', + 'timezone' => 'Europe/Berlin', + 'tvout' => 'no', + 'vmware' => 'no', +}; +ok( + $configDB->changeSystem(0, { attrs => $defaultAttrs } ), + 'attributes of default system have been set' +); +my $defaultSystem = $configDB->fetchSystemByID(0); + +my $system1 = $configDB->fetchSystemByID(1); +my $sys1Attrs = { + 'ramfs_fsmods' => 'squashfs', + 'ramfs_nicmods' => 'forcedeth e1000 r8169', + 'start_x' => 'no', + 'start_xdmcp' => '', +}; +ok( + $configDB->changeSystem(1, { attrs => $sys1Attrs } ), + 'attributes of system 1 have been set' +); + +my $system3 = $configDB->fetchSystemByID(3); +my $sys3Attrs = { + 'ramfs_fsmods' => '-4', + 'ramfs_miscmods' => '-3', + 'ramfs_nicmods' => '-2', + + 'automnt_dir' => '1', + 'automnt_src' => '2', + 'country' => '3', + 'dm_allow_shutdown' => '4', + 'hw_graphic' => '5', + 'hw_monitor' => '6', + 'hw_mouse' => '7', + 'late_dm' => '8', + 'netbios_workgroup' => '9', + 'nis_domain' => '10', + 'nis_servers' => '11', + 'sane_scanner' => '12', + 'scratch' => '13', + 'slxgrp' => '14', + 'start_alsasound' => '15', + 'start_atd' => '16', + 'start_cron' => '17', + 'start_dreshal' => '18', + 'start_ntp' => '19', + 'start_nfsv4' => '20', + 'start_printer' => '21', + 'start_samba' => '22', + 'start_snmp' => '23', + 'start_sshd' => '24', + 'start_syslog' => '25', + 'start_x' => '26', + 'start_xdmcp' => '27', + 'tex_enable' => '28', + 'timezone' => '29', + 'tvout' => '30', + 'vmware' => '31', +}; +ok( + $configDB->changeSystem(3, { attrs => $sys3Attrs } ), + 'attributes of system 3 have been set' +); + +my $defaultClient = $configDB->fetchClientByID(0); +my $defaultClientAttrs = { + # pretend the whole computer centre has been warped to London ;-) + 'timezone' => 'Europe/London', + # pretend we wanted to activate snmp globally (e.g. for testing) + 'start_snmp' => 'yes', +}; +ok( + $configDB->changeClient(0, { attrs => $defaultClientAttrs } ), + 'attributes of default client have been set' +); + +# check merging of default attributes, the order should be: +# default system attributes overruled by system attributes overruled by +# default client attributes: +my $shouldBeAttrs1 = { + 'ramfs_fsmods' => 'squashfs', + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => 'forcedeth e1000 r8169', + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => 'de', + 'dm_allow_shutdown' => 'user', + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => 'no', + 'netbios_workgroup' => 'slx-network', + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => undef, + 'slxgrp' => undef, + 'start_alsasound' => 'yes', + 'start_atd' => 'no', + 'start_cron' => 'no', + 'start_dreshal' => 'yes', + 'start_ntp' => 'initial', + 'start_nfsv4' => 'no', + 'start_printer' => 'no', + 'start_samba' => 'may', + 'start_snmp' => 'yes', + 'start_sshd' => 'yes', + 'start_syslog' => 'yes', + 'start_x' => 'no', + 'start_xdmcp' => '', + 'tex_enable' => 'no', + 'timezone' => 'Europe/London', + 'tvout' => 'no', + 'vmware' => 'no', +}; +my $mergedSystem1 = $configDB->fetchSystemByID(1); +ok( + $configDB->mergeDefaultAttributesIntoSystem($mergedSystem1), + 'merging default attributes into system 1' +); +foreach my $key (sort keys %$shouldBeAttrs1) { + is( + $mergedSystem1->{attrs}->{$key}, $shouldBeAttrs1->{$key}, + "checking merged attribute $key for system 1" + ); +} + +# check merging code for completeness (using all attributes): +my $shouldBeAttrs3 = { + 'ramfs_fsmods' => '-4', + 'ramfs_miscmods' => '-3', + 'ramfs_nicmods' => '-2', + + 'automnt_dir' => '1', + 'automnt_src' => '2', + 'country' => '3', + 'dm_allow_shutdown' => '4', + 'hw_graphic' => '5', + 'hw_monitor' => '6', + 'hw_mouse' => '7', + 'late_dm' => '8', + 'netbios_workgroup' => '9', + 'nis_domain' => '10', + 'nis_servers' => '11', + 'sane_scanner' => '12', + 'scratch' => '13', + 'slxgrp' => '14', + 'start_alsasound' => '15', + 'start_atd' => '16', + 'start_cron' => '17', + 'start_dreshal' => '18', + 'start_ntp' => '19', + 'start_nfsv4' => '20', + 'start_printer' => '21', + 'start_samba' => '22', + 'start_snmp' => 'yes', + 'start_sshd' => '24', + 'start_syslog' => '25', + 'start_x' => '26', + 'start_xdmcp' => '27', + 'tex_enable' => '28', + 'timezone' => 'Europe/London', + 'tvout' => '30', + 'vmware' => '31', +}; +my $mergedSystem3 = $configDB->fetchSystemByID(3); +ok( + $configDB->mergeDefaultAttributesIntoSystem($mergedSystem3), + 'merging default attributes into system 3' +); +foreach my $key (sort keys %$shouldBeAttrs3) { + is( + $mergedSystem3->{attrs}->{$key}, $shouldBeAttrs3->{$key}, + "checking merged attribute $key for system 3" + ); +} + +# setup client / group relations +my $group1 = $configDB->fetchGroupByID(1); +my $group1Attrs = { + 'priority' => '50', + # this group of clients is connected via underwater cable ... + 'timezone' => 'America/New_York', + # ... and use a local scratch partition + 'scratch' => '/dev/sdd1', + # the following should be a noop (as that attribute is system-specific) +# 'ramfs_nicmods' => 'e1000', +}; +ok( + $configDB->changeGroup(1, { attrs => $group1Attrs } ), + 'attributes of group 1 have been set' +); +my $group3 = $configDB->fetchGroupByID(3); +my $group3Attrs = { + 'priority' => '30', + # this specific client group is older and thus has a different scratch + 'scratch' => '/dev/hdd1', + 'vmware' => 'yes', +}; +ok( + $configDB->changeGroup(3, { attrs => $group3Attrs } ), + 'attributes of group 3 have been set' +); +my $client1 = $configDB->fetchClientByID(1); +my $client1Attrs = { + # this specific client uses yet another local scratch partition + 'scratch' => '/dev/sdx3', +}; +ok( + $configDB->changeClient(1, { attrs => $client1Attrs } ), + 'attributes of client 1 have been set' +); +ok( + $configDB->setGroupIDsOfClient(1, [1]), + 'group-IDs of client 1 have been set' +); +ok( + $configDB->setGroupIDsOfClient(3, []), + 'group-IDs of client 3 have been set' +); + +# check merging of attributes into client, the order should be: +# default client attributes overruled by group attributes (ordered by priority) +# overruled by specific client attributes: +$shouldBeAttrs1 = { + 'ramfs_fsmods' => undef, + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => undef, + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => undef, + 'dm_allow_shutdown' => undef, + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => undef, + 'netbios_workgroup' => undef, + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => '/dev/sdx3', + 'slxgrp' => undef, + 'start_alsasound' => undef, + 'start_atd' => undef, + 'start_cron' => undef, + 'start_dreshal' => undef, + 'start_ntp' => undef, + 'start_nfsv4' => undef, + 'start_printer' => undef, + 'start_samba' => undef, + 'start_snmp' => 'yes', + 'start_sshd' => undef, + 'start_syslog' => undef, + 'start_x' => undef, + 'start_xdmcp' => undef, + 'tex_enable' => undef, + 'timezone' => 'America/New_York', + 'tvout' => undef, + 'vmware' => undef, +}; +my $mergedClient1 = $configDB->fetchClientByID(1); +ok( + $configDB->mergeDefaultAndGroupAttributesIntoClient($mergedClient1), + 'merging default and group attributes into client 1' +); +foreach my $key (sort keys %$shouldBeAttrs1) { + is( + $mergedClient1->{attrs}->{$key}, $shouldBeAttrs1->{$key}, + "checking merged attribute $key for client 1" + ); +} + +$shouldBeAttrs3 = { + 'ramfs_fsmods' => undef, + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => undef, + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => undef, + 'dm_allow_shutdown' => undef, + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => undef, + 'netbios_workgroup' => undef, + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => undef, + 'slxgrp' => undef, + 'start_alsasound' => undef, + 'start_atd' => undef, + 'start_cron' => undef, + 'start_dreshal' => undef, + 'start_ntp' => undef, + 'start_nfsv4' => undef, + 'start_printer' => undef, + 'start_samba' => undef, + 'start_snmp' => 'yes', + 'start_sshd' => undef, + 'start_syslog' => undef, + 'start_x' => undef, + 'start_xdmcp' => undef, + 'tex_enable' => undef, + 'timezone' => 'Europe/London', + 'tvout' => undef, + 'vmware' => undef, +}; + +# remove all attributes from client 3 +$configDB->changeClient(3, { attrs => {} } ); + +my $mergedClient3 = $configDB->fetchClientByID(3); +ok( + $configDB->mergeDefaultAndGroupAttributesIntoClient($mergedClient3), + 'merging default and group attributes into client 3' +); +foreach my $key (sort keys %$shouldBeAttrs1) { + is( + $mergedClient3->{attrs}->{$key}, $shouldBeAttrs3->{$key}, + "checking merged attribute $key for client 3" + ); +} + +# now associate default client with group 3 and try again +ok( + $configDB->setGroupIDsOfClient(0, [3]), + 'group-IDs of default client have been set' +); +$shouldBeAttrs1 = { + 'ramfs_fsmods' => undef, + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => undef, + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => undef, + 'dm_allow_shutdown' => undef, + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => undef, + 'netbios_workgroup' => undef, + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => '/dev/sdx3', + 'slxgrp' => undef, + 'start_alsasound' => undef, + 'start_atd' => undef, + 'start_cron' => undef, + 'start_dreshal' => undef, + 'start_ntp' => undef, + 'start_nfsv4' => undef, + 'start_printer' => undef, + 'start_samba' => undef, + 'start_snmp' => 'yes', + 'start_sshd' => undef, + 'start_syslog' => undef, + 'start_x' => undef, + 'start_xdmcp' => undef, + 'tex_enable' => undef, + 'timezone' => 'America/New_York', + 'tvout' => undef, + 'vmware' => 'yes', +}; +$mergedClient1 = $configDB->fetchClientByID(1); +ok( + $configDB->mergeDefaultAndGroupAttributesIntoClient($mergedClient1), + 'merging default and group attributes into client 1' +); +foreach my $key (sort keys %$shouldBeAttrs1) { + is( + $mergedClient1->{attrs}->{$key}, $shouldBeAttrs1->{$key}, + "checking merged attribute $key for client 1" + ); +} + +$shouldBeAttrs3 = { + 'ramfs_fsmods' => undef, + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => undef, + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => undef, + 'dm_allow_shutdown' => undef, + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => undef, + 'netbios_workgroup' => undef, + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => '/dev/hdd1', + 'slxgrp' => undef, + 'start_alsasound' => undef, + 'start_atd' => undef, + 'start_cron' => undef, + 'start_dreshal' => undef, + 'start_ntp' => undef, + 'start_nfsv4' => undef, + 'start_printer' => undef, + 'start_samba' => undef, + 'start_snmp' => 'yes', + 'start_sshd' => undef, + 'start_syslog' => undef, + 'start_x' => undef, + 'start_xdmcp' => undef, + 'tex_enable' => undef, + 'timezone' => 'Europe/London', + 'tvout' => undef, + 'vmware' => 'yes', +}; +$mergedClient3 = $configDB->fetchClientByID(3); +ok( + $configDB->mergeDefaultAndGroupAttributesIntoClient($mergedClient3), + 'merging default and group attributes into client 3' +); +foreach my $key (sort keys %$shouldBeAttrs1) { + is( + $mergedClient3->{attrs}->{$key}, $shouldBeAttrs3->{$key}, + "checking merged attribute $key for client 3" + ); +} + +# finally we merge systems into clients and check the outcome of that +my $fullMerge11 = clone($mergedClient1); +ok( + mergeAttributes($fullMerge11, $mergedSystem1), + 'merging system 1 into client 1' +); +my $shouldBeAttrs11 = { + 'ramfs_fsmods' => 'squashfs', + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => 'forcedeth e1000 r8169', + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => 'de', + 'dm_allow_shutdown' => 'user', + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => 'no', + 'netbios_workgroup' => 'slx-network', + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => '/dev/sdx3', + 'slxgrp' => undef, + 'start_alsasound' => 'yes', + 'start_atd' => 'no', + 'start_cron' => 'no', + 'start_dreshal' => 'yes', + 'start_ntp' => 'initial', + 'start_nfsv4' => 'no', + 'start_printer' => 'no', + 'start_samba' => 'may', + 'start_snmp' => 'yes', + 'start_sshd' => 'yes', + 'start_syslog' => 'yes', + 'start_x' => 'no', + 'start_xdmcp' => '', + 'tex_enable' => 'no', + 'timezone' => 'America/New_York', + 'tvout' => 'no', + 'vmware' => 'yes', +}; +foreach my $key (sort keys %$shouldBeAttrs11) { + is( + $fullMerge11->{attrs}->{$key}, $shouldBeAttrs11->{$key}, + "checking merged attribute $key for client 1 / system 1" + ); +} + +my $fullMerge31 = clone($mergedClient3); +ok( + mergeAttributes($fullMerge31, $mergedSystem1), + 'merging system 1 into client 3' +); +my $shouldBeAttrs31 = { + 'ramfs_fsmods' => 'squashfs', + 'ramfs_miscmods' => undef, + 'ramfs_nicmods' => 'forcedeth e1000 r8169', + + 'automnt_dir' => undef, + 'automnt_src' => undef, + 'country' => 'de', + 'dm_allow_shutdown' => 'user', + 'hw_graphic' => undef, + 'hw_monitor' => undef, + 'hw_mouse' => undef, + 'late_dm' => 'no', + 'netbios_workgroup' => 'slx-network', + 'nis_domain' => undef, + 'nis_servers' => undef, + 'sane_scanner' => undef, + 'scratch' => '/dev/hdd1', + 'slxgrp' => undef, + 'start_alsasound' => 'yes', + 'start_atd' => 'no', + 'start_cron' => 'no', + 'start_dreshal' => 'yes', + 'start_ntp' => 'initial', + 'start_nfsv4' => 'no', + 'start_printer' => 'no', + 'start_samba' => 'may', + 'start_snmp' => 'yes', + 'start_sshd' => 'yes', + 'start_syslog' => 'yes', + 'start_x' => 'no', + 'start_xdmcp' => '', + 'tex_enable' => 'no', + 'timezone' => 'Europe/London', + 'tvout' => 'no', + 'vmware' => 'yes', +}; +foreach my $key (sort keys %$shouldBeAttrs31) { + is( + $fullMerge31->{attrs}->{$key}, $shouldBeAttrs31->{$key}, + "checking merged attribute $key for client 3 / system 1" + ); +} + +my $fullMerge13 = clone($mergedClient1); +ok( + mergeAttributes($fullMerge13, $mergedSystem3), + 'merging system 3 into client 1' +); +my $shouldBeAttrs13 = { + 'ramfs_fsmods' => '-4', + 'ramfs_miscmods' => '-3', + 'ramfs_nicmods' => '-2', + + 'automnt_dir' => '1', + 'automnt_src' => '2', + 'country' => '3', + 'dm_allow_shutdown' => '4', + 'hw_graphic' => '5', + 'hw_monitor' => '6', + 'hw_mouse' => '7', + 'late_dm' => '8', + 'netbios_workgroup' => '9', + 'nis_domain' => '10', + 'nis_servers' => '11', + 'sane_scanner' => '12', + 'scratch' => '/dev/sdx3', + 'slxgrp' => '14', + 'start_alsasound' => '15', + 'start_atd' => '16', + 'start_cron' => '17', + 'start_dreshal' => '18', + 'start_ntp' => '19', + 'start_nfsv4' => '20', + 'start_printer' => '21', + 'start_samba' => '22', + 'start_snmp' => 'yes', + 'start_sshd' => '24', + 'start_syslog' => '25', + 'start_x' => '26', + 'start_xdmcp' => '27', + 'tex_enable' => '28', + 'timezone' => 'America/New_York', + 'tvout' => '30', + 'vmware' => 'yes', +}; +foreach my $key (sort keys %$shouldBeAttrs13) { + is( + $fullMerge13->{attrs}->{$key}, $shouldBeAttrs13->{$key}, + "checking merged attribute $key for client 1 / system 3" + ); +} + +my $fullMerge33 = clone($mergedClient3); +ok( + mergeAttributes($fullMerge33, $mergedSystem3), + 'merging system 3 into client 3' +); +my $shouldBeAttrs33 = { + 'ramfs_fsmods' => '-4', + 'ramfs_miscmods' => '-3', + 'ramfs_nicmods' => '-2', + + 'automnt_dir' => '1', + 'automnt_src' => '2', + 'country' => '3', + 'dm_allow_shutdown' => '4', + 'hw_graphic' => '5', + 'hw_monitor' => '6', + 'hw_mouse' => '7', + 'late_dm' => '8', + 'netbios_workgroup' => '9', + 'nis_domain' => '10', + 'nis_servers' => '11', + 'sane_scanner' => '12', + 'scratch' => '/dev/hdd1', + 'slxgrp' => '14', + 'start_alsasound' => '15', + 'start_atd' => '16', + 'start_cron' => '17', + 'start_dreshal' => '18', + 'start_ntp' => '19', + 'start_nfsv4' => '20', + 'start_printer' => '21', + 'start_samba' => '22', + 'start_snmp' => 'yes', + 'start_sshd' => '24', + 'start_syslog' => '25', + 'start_x' => '26', + 'start_xdmcp' => '27', + 'tex_enable' => '28', + 'timezone' => 'Europe/London', + 'tvout' => '30', + 'vmware' => 'yes', +}; +foreach my $key (sort keys %$shouldBeAttrs33) { + is( + $fullMerge33->{attrs}->{$key}, $shouldBeAttrs33->{$key}, + "checking merged attribute $key for client 3 / system 3" + ); +} + +$configDB->disconnect(); diff --git a/src/config-db/t/29-transaction.t b/src/config-db/t/29-transaction.t new file mode 100644 index 00000000..1f1566bf --- /dev/null +++ b/src/config-db/t/29-transaction.t @@ -0,0 +1,58 @@ +use Test::More qw(no_plan); + +use strict; +use warnings; + +use lib '/opt/openslx/lib'; + +# basic init +use OpenSLX::ConfigDB; + +my $configDB = OpenSLX::ConfigDB->new; +$configDB->connect(); + +my @vendorOSes = $configDB->fetchVendorOSByFilter(); +my @exports = $configDB->fetchExportByFilter(); +my @systems = $configDB->fetchSystemByFilter(); +my @clients = $configDB->fetchClientByFilter(); +my @groups = $configDB->fetchGroupByFilter(); + +ok($configDB->startTransaction(), 'starting a transaction'); + +ok($configDB->emptyDatabase(), 'emptying the DB'); + +ok($configDB->rollbackTransaction(), 'rolling back the transaction'); + +my @vendorOSes2 = $configDB->fetchVendorOSByFilter(); +my @exports2 = $configDB->fetchExportByFilter(); +my @systems2 = $configDB->fetchSystemByFilter(); +my @clients2 = $configDB->fetchClientByFilter(); +my @groups2 = $configDB->fetchGroupByFilter(); + +is( + scalar @vendorOSes2, scalar @vendorOSes, "should still have all vendor-OSes" +); +is(scalar @exports2, scalar @exports, "should still have all exports"); +is(scalar @systems2, scalar @systems, "should still have all systems"); +is(scalar @clients2, scalar @clients, "should still have all clients"); +is(scalar @groups2, scalar @groups, "should still have all groups"); + +ok($configDB->startTransaction(), 'starting a transaction'); + +ok($configDB->emptyDatabase(), 'emptying the DB'); + +ok($configDB->commitTransaction(), 'committing the transaction'); + +my @vendorOSes3 = $configDB->fetchVendorOSByFilter(); +my @exports3 = $configDB->fetchExportByFilter(); +my @systems3 = $configDB->fetchSystemByFilter(); +my @clients3 = $configDB->fetchClientByFilter(); +my @groups3 = $configDB->fetchGroupByFilter(); + +is(scalar @vendorOSes3, 0, "should have no vendor-OSes"); +is(scalar @exports3, 0, "should have no exports"); +is(scalar @systems3, 1, "should have one system (default)"); +is(scalar @clients3, 1, "should have one client (default)"); +is(scalar @groups3, 0, "should have no groups"); + +$configDB->disconnect(); diff --git a/src/config-db/t/run-all-tests.pl b/src/config-db/t/run-all-tests.pl new file mode 100755 index 00000000..8fb351c7 --- /dev/null +++ b/src/config-db/t/run-all-tests.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +use Test::Harness; + +# add the development paths to perl's search path for modules: +use FindBin; +use lib "$FindBin::RealBin/../"; +use lib "$FindBin::RealBin/../../lib"; + +chdir "$FindBin::RealBin" or die "unable to chdir to $FindBin::RealBin! ($!)\n"; + +use OpenSLX::Basics; + +use OpenSLX::MetaDB::SQLite; + +# make sure a specific test-db will be used +$cmdlineConfig{'private-path'} = $ENV{SLX_PRIVATE_PATH} = '/tmp/slx-db-test'; +$cmdlineConfig{'db-name'} = $ENV{SLX_DB_NAME} = 'slx-test'; +$cmdlineConfig{'db-type'} = $ENV{SLX_DB_TYPE} = 'SQLite'; + +openslxInit(); + +$Test::Harness::Verbose = 1 if $openslxConfig{'log-level'}; + +# remove the test-db if it already exists +my $metaDB = OpenSLX::MetaDB::SQLite->new(); +if ($metaDB->databaseExists()) { + print "removing leftovers of slx-test-db\n"; + $metaDB->dropDatabase(); +} +runtests(glob("*.t")); + +$metaDB->dropDatabase(); diff --git a/src/initramfs/distro-specs/debian/functions-4.0 b/src/initramfs/distro-specs/debian/functions-4.0 new file mode 100644 index 00000000..97be5342 --- /dev/null +++ b/src/initramfs/distro-specs/debian/functions-4.0 @@ -0,0 +1,14 @@ +# Copyright (c) 2007 - 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 +# +# Configuration script for Debian Edge (4.1) to setup linux stateless clients +# (executed within initial ramfs) + +# nothing changed yet from default diff --git a/src/initramfs/distro-specs/debian/functions-default b/src/initramfs/distro-specs/debian/functions-default new file mode 100644 index 00000000..15639a2d --- /dev/null +++ b/src/initramfs/distro-specs/debian/functions-default @@ -0,0 +1,209 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Configuration script for general Debian distributions to setup linux +# stateless clients (included within initial ramfs) + +# distro specific configuration variables used in the setup functions +# (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 +D_BINDMPTS="tmp root home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm /etc/X11" +D_RODIRSINRW="etc/gconf etc/X11/xkb /var/lib/texmf /var/cache/fontconfig \ +/var/lib/dpkg" +D_DIRINDXS="/var/X11R6/compose-cache \ +/var/run/sysconfig/tmp /var/adm /var/lib/rpm /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/lock/subsys/sysconfig" + +# empty functions are defined at the beginning of /etc/functions + +# distro specific stuff to initialize +preinit () { +: +} + +# 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 + # fixme: not that simple, see ticket 187 + #rm /mnt/etc/udev/rules.d/*persistent-net.rules >/dev/null 2>&1 + + # set default runlevel + sed -e "s/.*initdefault/id:3:initdefault/" -i /mnt/etc/inittab + + # 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 +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 mountvirtfs boot.slx udev procps.sh bootlogd \ + $D_SPLASHY keymap.sh hwclock.sh sudo dbus-1; 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" + local start="$2" + local stop="$3" + # empty runlevel links - decision on running certain services is passed via + # configuration or enabled through plugins + 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 + echo "Linked $script" + fi + done +} + +# make a runlevel script +d_mkrlscript () { + local switch=$1 + local name=$2 + local info=$3 + case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$name created \ +by $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\ +. /lib/lsb/init-functions\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 \$?\n\t;;\n stop)\n\tlog_end_msg \$?\n\t;;\ + \nesac\nexit 0" >>/mnt/etc/init.d/${name} + ;; + esac +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# 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" "07" "14" + fi +} + +# function for atd +config_atd () { + if [ "x$start_atd" = "xyes" ]; then + # fixme!! needed? Fix permissions + #testmkd /mnt/var/spool/cron/atjobs daemon:daemon + #testmkd /mnt/var/spool/cron/atspool daemon:daemon + rllinker "atd" "89" "01" +fi +} + +# function for configuration of cron services +config_cron () { + if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" "89" "01" + testmkd /mnt/var/spool/cron/crontabs root:crontab + 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 +} + +# syslog service +config_syslog () { + if [ "x$start_syslog" != "xno" ] ; then + : # fixme: handled by plugin in the future! + fi +} + +# secure shell service +config_sshd () { + if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/ssh ] ; then + rllinker "ssh" "20" "02" + 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" "30" "03" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# localization like consolefont and language +dlocale () { + # console font setting program not available in Debian 4!? + d_mkrlscript entry boot.slx "#setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" + # fixme!! check for proper operation + # sed -e "s,LANGUAGE=.*,LANGUAGE=\"${LANG}\" # set within initramfs," \ + # -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \ + # -i /mnt/etc/environment + sed -e "s,LANG=.*,LANG=\"${LANG}\," # set within initramfs," \ + -i /mnt/etc/default/locale +} + +# configure hal, dbus, resmgr and services like that +config_dreshal () { + if [ "x$start_dreshal" = "xyes" ]; then + : + fi +} + diff --git a/src/initramfs/distro-specs/scilin/functions-4.7 b/src/initramfs/distro-specs/scilin/functions-4.7 new file mode 100644 index 00000000..e3ffe443 --- /dev/null +++ b/src/initramfs/distro-specs/scilin/functions-4.7 @@ -0,0 +1,15 @@ +# Copyright (c) 2009 - RZ Uni Freiburg +# +# 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 +# +# Configuration script for Scientific Linux (4.7) to setup linux stateless +# clients (executed within initial ramfs) + +# nothing changed yet from default + diff --git a/src/initramfs/distro-specs/scilin/functions-5.3 b/src/initramfs/distro-specs/scilin/functions-5.3 new file mode 100644 index 00000000..1548ab9a --- /dev/null +++ b/src/initramfs/distro-specs/scilin/functions-5.3 @@ -0,0 +1,42 @@ +# Copyright (c) 2009 - RZ Uni Freiburg +# +# 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 +# +# Configuration script for Scientific Linux (5.1) to setup linux stateless +# clients (executed within initial ramfs) + +# initial (boot time) runlevel scripts +initial_boot () { +# delete all classical disk base rootfs stuff from rc.sysinit +sed -e "6i# Script modified by $0 during stage3 bootup." \ + -e "/relabel_se/,/^}/d" \ + -e "/# Start up swap/,/# Set up bin/d" \ + -e "/^remount_needed/,/^fi$/d" -e "/^# Clean out/,/in_sysinit/d" \ + -e "/# Mount all o/,/# Start the g/d" \ + -e "/# Boot time/,/# let's/d" -i /mnt/etc/rc.d/rc.sysinit +# delete all classical disk base rootfs stuff from halt +sed -e "7i# Modified by $0 during stage3 bootup." \ + -e "/# Save mixer/,/Saving random/d" -e "/quotaoff/,/^# Now halt/d" \ + -i /mnt/etc/init.d/halt +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. +echo -e "# Run OpenSLX init runlevel script\n/etc/init.d/boot.slx" \ + >>/mnt/etc/rc.d/rc.sysinit +# switch off SElinux enforcing +sed -e "1i# Configuration modified by $0 during stage3 bootup." \ + -e "s/SELINUX=.*/SELINUX=permissive/" -i /mnt/etc/selinux/config +# switch off display manager start via inittab +sed -e "s/x:5:re.*/# line deleted in stage3, re-enable via desktop plugin/" \ + -i /mnt/etc/inittab +# link halt and reboot scripts +ln -s ../init.d/killall /mnt/etc/rc.d/rc0.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc0.d/S01halt +ln -s ../init.d/killall /mnt/etc/rc.d/rc6.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc6.d/S01reboot +} diff --git a/src/initramfs/distro-specs/scilin/functions-5.4 b/src/initramfs/distro-specs/scilin/functions-5.4 new file mode 100644 index 00000000..1548ab9a --- /dev/null +++ b/src/initramfs/distro-specs/scilin/functions-5.4 @@ -0,0 +1,42 @@ +# Copyright (c) 2009 - RZ Uni Freiburg +# +# 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 +# +# Configuration script for Scientific Linux (5.1) to setup linux stateless +# clients (executed within initial ramfs) + +# initial (boot time) runlevel scripts +initial_boot () { +# delete all classical disk base rootfs stuff from rc.sysinit +sed -e "6i# Script modified by $0 during stage3 bootup." \ + -e "/relabel_se/,/^}/d" \ + -e "/# Start up swap/,/# Set up bin/d" \ + -e "/^remount_needed/,/^fi$/d" -e "/^# Clean out/,/in_sysinit/d" \ + -e "/# Mount all o/,/# Start the g/d" \ + -e "/# Boot time/,/# let's/d" -i /mnt/etc/rc.d/rc.sysinit +# delete all classical disk base rootfs stuff from halt +sed -e "7i# Modified by $0 during stage3 bootup." \ + -e "/# Save mixer/,/Saving random/d" -e "/quotaoff/,/^# Now halt/d" \ + -i /mnt/etc/init.d/halt +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. +echo -e "# Run OpenSLX init runlevel script\n/etc/init.d/boot.slx" \ + >>/mnt/etc/rc.d/rc.sysinit +# switch off SElinux enforcing +sed -e "1i# Configuration modified by $0 during stage3 bootup." \ + -e "s/SELINUX=.*/SELINUX=permissive/" -i /mnt/etc/selinux/config +# switch off display manager start via inittab +sed -e "s/x:5:re.*/# line deleted in stage3, re-enable via desktop plugin/" \ + -i /mnt/etc/inittab +# link halt and reboot scripts +ln -s ../init.d/killall /mnt/etc/rc.d/rc0.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc0.d/S01halt +ln -s ../init.d/killall /mnt/etc/rc.d/rc6.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc6.d/S01reboot +} diff --git a/src/initramfs/distro-specs/scilin/functions-5.5 b/src/initramfs/distro-specs/scilin/functions-5.5 new file mode 100644 index 00000000..1548ab9a --- /dev/null +++ b/src/initramfs/distro-specs/scilin/functions-5.5 @@ -0,0 +1,42 @@ +# Copyright (c) 2009 - RZ Uni Freiburg +# +# 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 +# +# Configuration script for Scientific Linux (5.1) to setup linux stateless +# clients (executed within initial ramfs) + +# initial (boot time) runlevel scripts +initial_boot () { +# delete all classical disk base rootfs stuff from rc.sysinit +sed -e "6i# Script modified by $0 during stage3 bootup." \ + -e "/relabel_se/,/^}/d" \ + -e "/# Start up swap/,/# Set up bin/d" \ + -e "/^remount_needed/,/^fi$/d" -e "/^# Clean out/,/in_sysinit/d" \ + -e "/# Mount all o/,/# Start the g/d" \ + -e "/# Boot time/,/# let's/d" -i /mnt/etc/rc.d/rc.sysinit +# delete all classical disk base rootfs stuff from halt +sed -e "7i# Modified by $0 during stage3 bootup." \ + -e "/# Save mixer/,/Saving random/d" -e "/quotaoff/,/^# Now halt/d" \ + -i /mnt/etc/init.d/halt +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. +echo -e "# Run OpenSLX init runlevel script\n/etc/init.d/boot.slx" \ + >>/mnt/etc/rc.d/rc.sysinit +# switch off SElinux enforcing +sed -e "1i# Configuration modified by $0 during stage3 bootup." \ + -e "s/SELINUX=.*/SELINUX=permissive/" -i /mnt/etc/selinux/config +# switch off display manager start via inittab +sed -e "s/x:5:re.*/# line deleted in stage3, re-enable via desktop plugin/" \ + -i /mnt/etc/inittab +# link halt and reboot scripts +ln -s ../init.d/killall /mnt/etc/rc.d/rc0.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc0.d/S01halt +ln -s ../init.d/killall /mnt/etc/rc.d/rc6.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc6.d/S01reboot +} diff --git a/src/initramfs/distro-specs/scilin/functions-default b/src/initramfs/distro-specs/scilin/functions-default new file mode 100644 index 00000000..f9bb0f0e --- /dev/null +++ b/src/initramfs/distro-specs/scilin/functions-default @@ -0,0 +1,315 @@ +# 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 general Scientific Linux to configure linux +# stateless clients (included by init, hwautocfg, servconfig within Initial- +# RamFS after inclusion of the main functions file). This file is the main +# base for the several RedHat based Scientific Linux versions. + +# settings of central variables +# 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_BINDMPTS="tmp root media home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="/etc/bootsplash /etc/gconf /var/adm /var/lib/texmf /var/lib/rpm \ +/var/cache/fontconfig" +D_DIRINDXS="/var/lib/rpm /var/lib/nobody /var/lib/alternatives/ /var/db/nscd \ +/var/lib/bluetooth /var/lib/scrollkeeper /var/lib/nfs/sm /var/lib/nfs/sm.bak \ +/var/lib/misc /var/spool/cron" + +# empty functions are defined at the beginning of /etc/functions + +# 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 ; do + rm -rf /mnt/etc/${dir}/* + done + # set some system/environment information + echo -e "SLX VERSION = $SLXVERSION\nINITRAMFS GENERATION DATE = $date" \ + >>/mnt/etc/redhat-release + # simple bash configuration for root + echo -e "# Generated in OpenSLX stage3\n. /etc/bashrc" >/mnt/root/.profile + # enable sysrq + sed -e "1i# Configuration modified by $0 during stage3 bootup." \ + -e "s/kernel.sysrq =.*/kernel.sysrq = 1/" -i /mnt/etc/sysctl.conf + # set some networking stuff if needed + [ -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 +initial_boot () { +# delete all classical disk base rootfs stuff from rc.sysinit +sed -e "6i# Script modified by $0 during stage3 bootup." \ + -e "/# Initialize ha/,/success/d" -e "/^ROOTFSTYPE/,/Remounting root/d" \ + -e "/# Check f/,/Mounting l/d" -e "/^# Configure mach/,/-f \/fastboot/d" \ + -e "s,/sbin/start_udev$,/etc/init.d/udevd," -i /mnt/etc/rc.d/rc.sysinit +# write a custom udev script (to be checked!!) +echo -e "#!/bin/sh\n# Simple udev starter script created as a replacement \ +during OpenSLX stage3\n# bootup." >/mnt/etc/init.d/udevd +echo -e ". /etc/init.d/functions\nSTRING=\$\"Starting udev: \" \ +\necho -n \"\$STRING \"\n/sbin/udevstart /dev/null 2>&1 \ +\n[ \$? -eq 0 ] && success \$\"\$STRING\" || failure \$\"\$STRING\" \ +\nexit 0" >>/mnt/etc/init.d/udevd +chmod u+x /mnt/etc/init.d/udevd +# delete all classical disk base rootfs stuff from halt +sed -e "7i# Modified by $0 during stage3 bootup." \ + -e "/# Save mixer/,/Saving random/d" -e "/quotaoff/,/^# Now halt/d" \ + -i /mnt/etc/init.d/halt +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. +echo -e "# Run OpenSLX init runlevel script\n/etc/init.d/boot.slx" \ + >>/mnt/etc/rc.d/rc.sysinit +# switch off SElinux enforcing +sed -e "1i# Configuration modified by $0 during stage3 bootup." \ + -e "s/SELINUX=.*/SELINUX=permissive/" -i /mnt/etc/selinux/config +# link halt and reboot scripts +ln -s ../init.d/killall /mnt/etc/rc.d/rc0.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc0.d/S01halt +ln -s ../init.d/killall /mnt/etc/rc.d/rc6.d/S00killall +ln -s ../init.d/halt /mnt/etc/rc.d/rc6.d/S01reboot +} + +# 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 rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../init.d/$script /mnt/etc/$i +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +if [ -e /mnt/etc/init.d/ntpd ] ; then + if ! strinfile "ntp:" /mnt/etc/passwd ; then + echo -e "ntp:x:38:38:NTP daemon:/var/lib/ntp:/sbin/nologin" \ + >>/mnt/etc/passwd + echo -e "ntp:!:13099:0:99999:7:::" >>/mnt/etc/shadow + fi + testmkd /mnt/var/lib/ntp ntp:ntp + if [ "x$start_ntp" = "xyes" ] ; then + rllinker "ntpd" 7 14 + fi +fi +} +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" 14 4 +fi +} +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" 18 2 + testmkd /mnt/var/spool/anacron + echo -e "# /etc/crontab - file generated by $0:\n\ +" >/mnt/etc/crontab + else + error "$df_errcron" nonfatal + fi +fi +} +# name service caching daemon (useful in most cases) +config_nscd () { + if [ -f /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/db/nscd + rllinker "nscd" 20 5 + fi +} +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/empty/sshd/dev + if ! strinfile "sshd:" /mnt/etc/passwd ; then + echo -e "sshd:x:74:74::/var/empty/sshd:/sbin/nologin" \ + >>/mnt/etc/passwd + echo -e "sshd:!:13099:0:99999:7:::" >>/mnt/etc/shadow + fi + rllinker "sshd" 25 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 +} +# configure print server (lpd or cups) +config_printer () { +if [ "x${start_printdaemon}" != "x" ] && \ + [ "x${start_printdaemon}" != "xno" ]; then + case ${start_printdaemon} in + yes|cups*|CUPS*) + rllinker "cups" 25 1 + testmkd /mnt/var/spool/cups/tmp root:sys + ;; + lp*|LP*|PLP*) + rllinker "lpd" 25 1 + testmkd /mnt/var/spool/lpd + ;; + *) + #logwrite "Do not know print-server $start_printdaemon; \ + #specify 'cups' or 'lpd'." + ;; + esac +fi +# configure cups printer client, avoid to overwrite admin provided printer +# configuration file +if [ "x$lpr_servers" != "x" ] && [ ! -e /rootfs/etc/cups/client.conf ] ; then + echo -e "# /etc/cups/client.conf - file generated by\n#\t$0:\n\ +#\t$date\n#\nServerName\t$lpr_servers" >/mnt/etc/cups/client.conf +fi +} +# configure bluetooth services +config_bt () { +if [ -e /mnt/etc/sysconfig/bluetooth ] ; then + sed -e "1i# /etc/sysconfig/bluetooth - file modified by $0" \ + -e "s,HID2HCI_ENABLE.*,HID2HCI_ENABLE=true," \ + -i /mnt/etc/sysconfig/bluetooth +else + : # no bluetooth components installed +fi +} +# set up localization like keytable and consolefont +dlocale () { +echo -e "\t# entries added by $0: $date" >> /mnt/etc/init.d/boot.slx +sed -e "s,KEYTABLE=.*,KEYTABLE=\"${KEYTABLE}\"," \ + -i /mnt/etc/sysconfig/keyboard +#echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ +# >>/mnt/etc/init.d/boot.slx +} +# acpi and powersave daemons, required e.g. to shutdown the machine via +# power button, no need for early start +config_acpi () { +rllinker acpid 01 22 +} +# configure dbus (inter application communication for kde and gnome), hal +# (hardware abstraction layer - used e.g. by powersaved) and resmgr +# (resource manager - the user gets permissions to devices when loggin on) +# runlevel script for haldaemon is now haldaemon instead of hal +config_dreshal () { +local start=4 +local stop=18 +if [ "x$start_dreshal" = "xyes" ]; then + testmkd /mnt/var/run/dbus + if [ -f /mnt/etc/init.d/messagebus ] ; then + testmkd /mnt/var/lib/dbus + strinfile "dbus:" /mnt/etc/passwd || \ + echo "dbus:x:81:81:System Message Bus:/var/run/dbus:/sbin/nologin" \ + >> /mnt/etc/passwd + strinfile "dbus:" /mnt/etc/group || echo "dbus:!:81:" >> /mnt/etc/group + rllinker "messagebus" $start $stop + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + testmkd /mnt/var/lib/hal + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:68:68:User for haldaemon:/var/run/hal:/sbin/nologin" \ + >> /mnt/etc/passwd + strinfile "haldaemon:" /mnt/etc/group || \ + echo "haldaemon:!:103:" >> /mnt/etc/group + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "haldaemon" $start $stop + fi +fi +} +# configure automounter (fixme: to be moved into plugin) +config_automount () { +if [ -e /mnt/etc/sysconfig/autofs ] ; then + testmkd /mnt/var/lock/subsys + sed -e "1i# /etc/sysconfig/autofs - file modified by\n#\t$0:\n#" \ + -e "s,DAEMONOPTIONS.*,DAEMONOPTIONS=\"--timeout 3\"," \ + -i /mnt/etc/sysconfig/autofs + rllinker "autofs" 18 4 +else + error "$df_erramt" nonfatal +fi +} +# start name service caching daemon +config_nscd () { +if [ -e /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/run/nscd + rllinker "nscd" 16 16 +else + error "$df_errnsc" nonfatal +fi +} +# start portmapper (needed at least for nfs and nis services) +config_portmap () { + rllinker "portmap" 2 20 +} +# start NIS (mostly deprecated) +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 +} +# initialize runlevel skript to be executed during system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script +d_mkrlscript () { +local switch="$1" +local name="$2" +local info="$3" +case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/${name} created \ +by $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\ +. /etc/rc.d/init.d/functions\n#. /etc/sysconfig/logfile\ncase \ +\"\$1\" in\n start)\n\techo -n \"$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 "\t;;\n stop)\n\t;;\nesac" \ + >>/mnt/etc/init.d/${name} + ;; +esac +} + + diff --git a/src/initramfs/distro-specs/suse/functions-10.2 b/src/initramfs/distro-specs/suse/functions-10.2 new file mode 100644 index 00000000..39a9d31c --- /dev/null +++ b/src/initramfs/distro-specs/suse/functions-10.2 @@ -0,0 +1,82 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2008 - 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 10.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 + +D_RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf \ +/var/lib/rpm /var/cache/fontconfig" + +# configure dbus (inter application communication for kde and gnome), hal +# (hardware abstraction layer - used e.g. by powersaved) and resmgr +# (resource manager - the user gets permissions to devices when loggin on) +# runlevel script for haldaemon is now haldaemon instead of hal +config_dreshal () { +local start=5 +local stop=18 +if [ "x$start_dreshal" = "xyes" ]; then + for dir in /var/run/dbus /var/run/resmgr/classes /var/run/hal \ + /var/cache/hald /var/lib/PolicyKit /var/lib/misc ; do + testmkd /mnt/$dir + done + if [ -f /mnt/etc/init.d/dbus ] ; then + strinfile "messagebus:" /mnt/etc/passwd || \ + echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ + >> /mnt/etc/passwd + strinfile "messagebus:" /mnt/etc/group || \ + echo "messagebus:!:101:" >> /mnt/etc/group + # set permissions with userid + testmkd /mnt/var/run/dbus messagebus:messagebus + rllinker "dbus" $start $stop + fi + if [ -f /mnt/etc/init.d/resmgr ] ; then + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "resmgr" $start $stop + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \ + >> /mnt/etc/passwd + strinfile "haldaemon:" /mnt/etc/group || \ + echo "haldaemon:!:103:" >> /mnt/etc/group + echo -n "" > /mnt/var/lib/PolicyKit/reload + # set permissions with userid + d_mkrlscript entry boot.slx "chown haldaemon:haldaemon /var/run/hal\ + /var/cache/hald 2>/dev/null" + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "haldaemon" $start $stop + fi + if [ -f /mnt/etc/init.d/policykitd ] ; then + strinfile "polkituser:" /mnt/etc/passwd || \ + echo "polkituser:x:104:106:PolicyKit:/var/run/PolicyKit:/bin/false" \ + >> /mnt/etc/passwd + testmkd /mnt/var/run/polkit polkit:polkit + start=$(($start + 10)) + stop=$(($stop - 1)) + rllinker "policykitd" $start $stop + echo -n > /mnt/var/lib/misc/PolicyKit.reload + chmod a+x /mnt/var/lib/misc/PolicyKit.reload + fi +fi +} diff --git a/src/initramfs/distro-specs/suse/functions-10.3 b/src/initramfs/distro-specs/suse/functions-10.3 new file mode 100644 index 00000000..3f9516c3 --- /dev/null +++ b/src/initramfs/distro-specs/suse/functions-10.3 @@ -0,0 +1,26 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2008 - 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 10.3 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 + +# no changes from functions-default by now diff --git a/src/initramfs/distro-specs/suse/functions-11.1 b/src/initramfs/distro-specs/suse/functions-11.1 new file mode 100644 index 00000000..d350fa9c --- /dev/null +++ b/src/initramfs/distro-specs/suse/functions-11.1 @@ -0,0 +1,90 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2009 - 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.1 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 + 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 + testmkd /mnt/var/lib/misc + testmkd /mnt/var/run/PolicyKit polkituser:polkituser + testmkd /mnt/var/lib/PolicyKit polkituser:polkituser + testmkd /mnt/var/run/dbus/at_console/pool + + sed -i /mnt/etc/PolicyKit/PolicyKit.conf \ + -e "s/\(<\/config>\)/ @@new@@\n\1/" \ + -e "s/@@new@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + + 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 + + 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/src/initramfs/distro-specs/suse/functions-11.2 b/src/initramfs/distro-specs/suse/functions-11.2 new file mode 100644 index 00000000..ae8008b9 --- /dev/null +++ b/src/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@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + + 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/src/initramfs/distro-specs/suse/functions-11.3 b/src/initramfs/distro-specs/suse/functions-11.3 new file mode 100644 index 00000000..4eac33a0 --- /dev/null +++ b/src/initramfs/distro-specs/suse/functions-11.3 @@ -0,0 +1,97 @@ +# 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 +# +# TODO: id. copy of functions-11.2 to be adapted to 11.3 + +# start portmapper (needed at least for nfs and nis services) +config_portmap () { +# portmap is provided via rpcbind in suse 11.1,2,3 +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@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + + 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/src/initramfs/distro-specs/suse/functions-default b/src/initramfs/distro-specs/suse/functions-default new file mode 100644 index 00000000..14bb5ff0 --- /dev/null +++ b/src/initramfs/distro-specs/suse/functions-default @@ -0,0 +1,608 @@ +# 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 general SuSE 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 +D_BINDMPTS="tmp root media home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="/etc/bootsplash /etc/gconf /etc/X11/xkb /var/adm /var/lib/texmf \ +/var/lib/rpm /var/cache/fontconfig" +D_DIRINDXS="/var/X11R6/compose-cache /var/run/sysconfig/tmp /var/adm \ +/var/lib/rpm /var/lib/nobody /var/lib/pam_devperm /var/lib/bluetooth \ +/var/lib/texmf /var/lib/nfs/sm /var/lib/nfs/sm.bak /var/lib/misc \ +/var/lib/acpi /var/spool/cron /var/lock/subsys/sysconfig" + +# empty functions are defined at the beginning of /etc/functions + +# 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 boot.d ; do + rm -rf /mnt/etc/init.d/${dir}/* +done + +# link the additional key setup (notbook special keys) +grep -q -E "otebook" /etc/hwinfo.bios && \ + [ -e /mnt/etc/init.d/hotkey-setup ] && rllinker "hotkey-setup" 25 25 +# no need to run start scripts in parallel +# enable magic sysrequest for the clients +sed -e "1i# /etc/sysconfig/sysctl - modified by $0 version $version" \ + -e "s,ENABLE_SYSRQ=.*,ENABLE_SYSRQ=\"yes\"," \ + -i /mnt/etc/sysconfig/sysctl +# add slx specific path /var/opt/openslx/bin ... +echo -e "# stuff generated by $0 (out of InitRamFS written $date)\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 +echo -e "SLX VERSION = $SLXVERSION\nINITRAMFS GENERATION DATE = $date" \ + >>/mnt/etc/SuSE-release + +# remove annoying udev rule set for changing eth interface and rtc symlink +rm /mnt/etc/udev/rules.d/*persistent-net.rules \ + /mnt/etc/udev/rules.d/*net_persistent_names.rules >/dev/null 2>&1 +sed '/SYMLINK+="rtc"/d' -i \ + /mnt/etc/udev/rules.d/50-udev-default.rules >/dev/null 2>&1 + +# create a stateless specific halt script +echo -e '#!/bin/sh\n# script generated in InitRamFS (SLX stage3) +. /etc/rc.status\n +trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM\nset +e\n\n +case "$0" in\n\t*halt) +\t message="The system will be halted immediately." +\t command="halt -p"\n\t ;;\n\t*reboot)\n +\t message="Please stand by while rebooting the system..." +\t command="reboot"\n\t ;;\nesac\n +rc_reset\ntest -e /etc/init.d/halt.local && { +\techo Running /etc/init.d/halt.local\n\t/bin/sh /etc/init.d/halt.local +\trc_status -v1 -r\n} +echo $message\nexec $command -d -f' >/mnt/etc/init.d/halt +# add the halt link to the 0 and 6 runlevel directories +ln -sf ../halt /mnt/etc/init.d/rc0.d/S20halt +ln -sf ../halt /mnt/etc/init.d/rc6.d/S20reboot + +echo "LOGFILE=${LOGFILE}" >/mnt/etc/sysconfig/logfile +# fixme: rather ugly to write that boot script this way +echo ' +#!/bin/sh +# SuSE specific initial boot file modified for the use with OpenSLX clients +# +########################################################################### + +# Before we do anything else, try at first to activate SELinux support +test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null + +# Configuration and coloring of the boot messages +. /etc/rc.status +. /etc/sysconfig/boot +. /etc/sysconfig/logfile + +# Avoid be interrupted by child or keyboard +trap "echo" SIGINT SIGSEGV SIGQUIT +set +e + +# reasonable start values for bootsplash progress +export progress=0 +export sscripts=45 +export kscripts=45 + +echo -n "System Boot Control: " +echo "Running $0" + +########################################################################### +# + +# some important (un)mounts +rc_reset +echo -n "Mounting /proc, /sys and /dev/pts filesystems" +# file /etc/fstab in some scenarios not available +mount -t proc proc /proc &>/dev/null +rc_status -v -r + +echo -n "Mounting /dev/pts" +mount -t devpts -o mode=0620,gid=5 devpts /dev/pts +rc_status -v -r +if [ -d /sys ] ; then + while read a b c ; do + case "$b" in + sysfs) + echo -n "Mounting /sys filesystem" + echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \ + >>/etc/fstab + mount -t sysfs sysfs /sys + rc_status -v -r + break + ;; + esac + done < /proc/filesystems +fi + +# Start blogd, requires /proc and /dev/pts. +# Export the real device in variable REDIRECT. +test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT +if test -z "$REDIRECT" ; then + if (echo -n > /dev/tty) 2>/dev/null ; then + REDIRECT=/dev/tty + else + REDIRECT=/dev/console + fi +fi + +########################################################################### +# +# Save old terminal settings and set -nl to avoid staircase +# effect, do not lock scrolling, and avoid break characters. +otty=$(stty -g) +if test "$FLOW_CONTROL" = "yes" ; then + stty -nl ixon ignbrk -brkint +else + stty -nl -ixon ignbrk -brkint +fi + +########################################################################### +# +# Common used variables +bootrc=/etc/init.d/boot.d +rex="[0-9][0-9]" +failed="" +skipped="" +callord="" + +# +# Initialize boosplash progressbar variables +# +. /etc/rc.splash B +splashtrigger "rlchange B" + +########################################################################### +# +# Do we stop/start script in parallel? +startpar=$(type -p startpar) +test "$RUN_PARALLEL" = "yes" || startpar="" + +# Start bootup client scripts. +if test -d ${bootrc}/ ; then + for i in ${bootrc}/S*; do + test -f $i || continue + + B=${i##*/} + script=${B#*S$rex} + B=${B%$script} + + rc_splash "$script start" + + if test -z "$startpar" ; then + blogger "$script start" + + if test -x "$i" ; then + $i start + else + echo Running $i + /bin/sh $i b + rc_status -v1 -r + fi + status=$? + echo -en "$rc_reset" + + case $status in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + [07]|*) ;; + esac + + blogger "$script start exits with status $status" + else + # Parallel boot only for valid scripts + test -x $i || continue + + # Current vector + eval cur=\${$B} + test -n "$cur" || callord="${callord:+$callord }$B" + + # Remember scripts + eval $B="\${cur:+$i }\${cur:-$i}" + fi + done +fi + +########################################################################### +# +# Call the scripts in correct order +if test -n "$startpar" ; then + declare -i s + for p in $callord ; do + vect=$p + eval p=(\${$p}) + + blogger "run boot scripts (${p[@]##*S$rex})" + if test ${#p[@]} -eq 1 ; then + ${p} start + status=($?) + else + status=($($startpar -t 30 -T 3 -a start ${p[@]})) + fi + echo -en "$rc_reset" + blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" + + s=0 + for script in ${p[@]##*S$rex} ; do + case "${status[$s]}" in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + 0|*) ;; + esac + : $((s++)) + done + done +fi + +########################################################################### +# +# Be verbose and print stats +echo -n "System Boot Control: " +echo -e "The system has been ${stat}${extd}set up${norm}" +if test -n "$failed" ; then + n=$((${#failed} + 7)) + echo -n "Failed features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${warn}${failed}${norm}" +fi +if test -n "$skipped" ; then + n=$((${#skipped} + 7)) + echo -n "Skipped features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${attn}${skipped}${norm}" +fi + +########################################################################### +# +# Check for boot cycle detection +test -s /lib/bootcycle/stats && . /lib/bootcycle/stats + +# Restore old terminal settings +stty $otty + +########################################################################### +# +# Let zic set timezone - if present (from boot.ldconfig). +if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then + echo -n Setting up timezone data + /usr/sbin/zic -l $TIMEZONE + rc_status -v -r +fi + +########################################################################### +# +# start user defined bootup script. +if test -f /etc/init.d/boot.local ; then + ECHO_RETURN=$rc_done_up + echo "Running /etc/init.d/boot.local" + /bin/sh /etc/init.d/boot.local || rc_failed + rc_status -v1; rc_reset + rc_splash "boot.local start" +fi + +rc_reset +exit 0' >/mnt/etc/init.d/boot +## end of initial stage4 boot script + +# enable execution of all important start scripts +# running stuff in parallel seems to be rather useless and generates some +# difficult to solve problems. If you want to try nevertheless enable the +# following line and disable the latter one (switching off that feature) +sed -e "s,RUN_PARALLEL=.*,RUN_PARALLEL=\"no\"," \ + -i /mnt/etc/sysconfig/boot +# if YaST2 should be runnable (without much effect anyway) on the client +testmkd /mnt/var/log/YaST2 +# for screen sessions +testmkd /mnt/var/run/uscreens 4777 +# set special SuSE HOSTNAME file +echo "$host_name" > /mnt/etc/HOSTNAME +# produce proper output formatting (of "done", "failed", ...) +sed -e '/^test $LINES/ { +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 +initial_boot () { +local scripts=$* +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 boot.udev boot.proc boot.klog boot.loadmodules boot.slx boot.clock \ +boot.sysctl boot.ipconfig boot.swap $D_SPLASHY kbd; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/init.d/boot.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 rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +if [ -e /mnt/etc/init.d/ntp ] ; then + if ! strinfile "ntp:" /mnt/etc/passwd ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + echo -e "ntp:!:13099:0:99999:7:::" >>/mnt/etc/shadow + fi + testmkd /mnt/var/lib/ntp/var/run/ntp + if [ "x$start_ntp" = "xyes" ] ; then + rllinker "ntp" 7 14 + fi +fi +} +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" 14 4 +fi +} +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + rllinker "cron" 18 2 + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + 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" >/mnt/etc/crontab + else + error "$df_errcron" nonfatal + fi +fi +} +# name service caching daemon (useful in most cases) +config_nscd () { + if [ -f /mnt/etc/init.d/nscd ] ; then + rllinker "nscd" 20 5 + fi +} +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/run/sshd + testmkd /mnt/var/lib/empty + if ! strinfile "sshd:" /mnt/etc/passwd ; then + echo -e "sshd:x:117:65534::/var/run/sshd:/usr/sbin/nologin" \ + >>/mnt/etc/passwd + echo -e "sshd:!:13099:0:99999:7:::" >>/mnt/etc/shadow + fi + # set permissions with userid + #d_mkrlscript entry boot.slx "chown sshd:nogroup /var/run/sshd \ + # /var/lib/empty 2>/dev/null" + rllinker "sshd" 25 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 +} +# configure print server (lpd or cups) +config_printer () { +if [ "x${start_printdaemon}" != "x" ] && \ + [ "x${start_printdaemon}" != "xno" ]; then + case ${start_printdaemon} in + yes|cups*|CUPS*) + rllinker "cups" 25 1 + testmkd /mnt/var/spool/cups/tmp + #chown -R lp:lp /var/spool/cups + ;; + lp*|LP*|PLP*) + rllinker "lpd" 25 1 + testmkd /mnt/var/spool/lpd + #chown -R lp:lp /var/spool/lpd + ;; + *) + #logwrite "Do not know print-server $start_printdaemon; \ + #specify 'cups' or 'lpd'." + ;; + esac +fi +# configure cups printer client, avoid to overwrite admin provided printer +# configuration file +if [ "x$lpr_servers" != "x" ] && [ ! -e /rootfs/etc/cups/client.conf ] ; then + echo -e "# /etc/cups/client.conf - file generated by\n#\t$0:\n\ +#\t$date\n#\nServerName\t$lpr_servers" >/mnt/etc/cups/client.conf +fi +} +# configure bluetooth services +config_bt () { +if [ -e /mnt/etc/sysconfig/bluetooth ] ; then + sed -e "1i# /etc/sysconfig/bluetooth - file modified by $0" \ + -e "s,START_SERVICES.*,START_SERVICES=\"yes\"," \ + -i /mnt/etc/sysconfig/bluetooth +else + : # no bluetooth components installed +fi +} +# set up localization like keytable and consolefont +dlocale () { +d_mkrlscript entry boot.slx "# entries added by $0: $date" +sed -e "s,KEYTABLE=.*,KEYTABLE=\"${KEYTABLE}\"," \ + -i /mnt/etc/sysconfig/keyboard +d_mkrlscript entry boot.slx "#loadkeys ${KEYTABLE} >${LOGFILE} 2>&1" +d_mkrlscript entry boot.slx "#setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" +sed -e "s,RC_LANG=.*,RC_LANG=\"${LANG}\" # added in initrd," \ + -i /mnt/etc/sysconfig/language +} +# 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 +rllinker powersaved 23 11 +# 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) and resmgr +# (resource manager - the user gets permissions to devices when loggin on) +# runlevel script for haldaemon is now haldaemon instead of hal +config_dreshal () { +local start=0 +local stop=18 +if [ "x$start_dreshal" = "xyes" ]; then + for dir in /var/run/resmgr/classes /var/lib/PolicyKit; do + testmkd /mnt/$dir + done + if [ -f /mnt/etc/init.d/dbus ] ; then + strinfile "messagebus:" /mnt/etc/passwd || \ + echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ + >> /mnt/etc/passwd + strinfile "messagebus:" /mnt/etc/group || \ + echo "messagebus:!:101:" >> /mnt/etc/group + # create directories and set permissions with user and group id + testmkd /mnt/var/run/dbus messagebus:messagebus + rllinker "dbus" $start $stop + fi + if [ -f /mnt/etc/init.d/consolekit ] ; then + strinfile "polkituser:" /mnt/etc/passwd || \ + echo "polkituser:x:104:106:PolicyKit:/var/run/PolicyKit:/bin/false" \ + >> /mnt/etc/passwd + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "consolekit" $start $stop + echo -n > /mnt/var/lib/misc/PolicyKit.reload + chmod a+x /mnt/var/lib/misc/PolicyKit.reload + fi + if [ -f /mnt/etc/init.d/resmgr ] ; then + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "resmgr" $start $stop + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \ + >> /mnt/etc/passwd + strinfile "haldaemon:" /mnt/etc/group || \ + echo "haldaemon:!:103:" >> /mnt/etc/group + echo -n "" > /mnt/var/lib/PolicyKit.reload + # create directories and set permissions with user and group id + testmkd /mnt/var/run/hal haldaemon:haldaemon + testmkd /mnt/var/cache/hald haldaemon:haldaemon + start=$(($start + 1)) + stop=$(($stop - 1)) + rllinker "haldaemon" $start $stop + fi +fi +} +# configure automounter (fixme: to be moved into plugin) +config_automount () { +if [ -e /mnt/etc/sysconfig/autofs ] ; then + testmkd /mnt/var/lock/subsys + sed -e "1i# /etc/sysconfig/autofs - file modified by\n#\t$0:\n#" \ + -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 +} +# start name service caching daemon +config_nscd () { +if [ -e /mnt/etc/init.d/nscd ] ; then + testmkd /mnt/var/run/nscd + rllinker "nscd" 16 16 +else + error "$df_errnsc" nonfatal +fi +} +# start portmapper (needed at least for nfs and nis services) +config_portmap () { + rllinker "portmap" 2 20 +} +# start NIS (mostly deprecated) +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 +} +# initialize runlevel skript to be executed during system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script +d_mkrlscript () { +local switch="$1" +local name="$2" +local info="$3" +case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/${name} created \ +by $0\n# after you applied changes to the creation scripts you have to \ +rerun\n# the mkdxsinitrd script to get them applied\n\ +. /etc/rc.status\n. /etc/sysconfig/logfile\nrc_reset\ncase \ +\"\$1\" in\n start)\n\techo -n \"$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 "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ + >>/mnt/etc/init.d/${name} + ;; +esac +} + + diff --git a/src/initramfs/distro-specs/ubuntu/functions-10.04 b/src/initramfs/distro-specs/ubuntu/functions-10.04 new file mode 100644 index 00000000..7f73c4ca --- /dev/null +++ b/src/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/src/initramfs/distro-specs/ubuntu/functions-8.04 b/src/initramfs/distro-specs/ubuntu/functions-8.04 new file mode 100644 index 00000000..3b93e86d --- /dev/null +++ b/src/initramfs/distro-specs/ubuntu/functions-8.04 @@ -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.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) + +# 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@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + 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/src/initramfs/distro-specs/ubuntu/functions-8.10 b/src/initramfs/distro-specs/ubuntu/functions-8.10 new file mode 100644 index 00000000..8a3469e7 --- /dev/null +++ b/src/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@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + 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/src/initramfs/distro-specs/ubuntu/functions-9.04 b/src/initramfs/distro-specs/ubuntu/functions-9.04 new file mode 100644 index 00000000..09567aa5 --- /dev/null +++ b/src/initramfs/distro-specs/ubuntu/functions-9.04 @@ -0,0 +1,293 @@ +# 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 9.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) + +# 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@@/\n@@return@@\n <\/match>/" \ + -e "s/@@action@@/org.freedesktop.hal.storage.mount-removable/" \ + -e "s/@@return@@/ /" + 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/src/initramfs/distro-specs/ubuntu/functions-9.10 b/src/initramfs/distro-specs/ubuntu/functions-9.10 new file mode 100644 index 00000000..28d1dba3 --- /dev/null +++ b/src/initramfs/distro-specs/ubuntu/functions-9.10 @@ -0,0 +1,16 @@ +# Copyright (c) 2009 - 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 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) + +# no changes from default diff --git a/src/initramfs/distro-specs/ubuntu/functions-default b/src/initramfs/distro-specs/ubuntu/functions-default new file mode 100644 index 00000000..1fdbf6bb --- /dev/null +++ b/src/initramfs/distro-specs/ubuntu/functions-default @@ -0,0 +1,286 @@ +# 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 general Ubuntu to configure OpenSLX Linux +# stateless clients (executed within initial ramdisk after genconfig) + +# 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_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_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 +postinit () { + if [ $DEBUGLEVEL -gt 3 ]; then + export DEBUG_UPSTART=" -v --debug" + fi +} + +# distro specific function called from servconfig script +config_distro () { + # 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 + # 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 + # remove plymouth component from *dm.conf (not needed with splashy) + sed "/# Check kernel c/,/done/d" -i /mnt/etc/init.inactive/*dm.conf + # copy initial upstart scripts back + for file in alsa-mixer-save control-alt-delete console-setup dbus \ + dmesg hwclock hwclock-save irqbalance module-init-tools \ + mountall mounted* networking procps rc* tty* udev* \ + upstart-udev-bridge ; do + mv /mnt/etc/init.inactive/${file}.conf /mnt/etc/init >/dev/null 2>&1 + done + + # 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 0777 + + # apt stuff + testmkd /mnt/var/cache/apt/archives/partial + + # 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 looks different since ubuntu upstart +initial_boot () { + : +} + +# runlevel linker - mostly deprecated in the old form because of new upstart +# mechanism (with backward compatibility) +rllinker () { +local script="$1" +# activating the new way, check if a appropriate script is available, else +# try the traditional approach + +if [ -e /mnt/etc/init.inactive/${script}.conf -o -e /mnt/etc/init/${script}.conf ]; then + # we have upstart scripts + if [ -e /mnt/etc/init.inactive/${script}.conf ] ; then + mv /mnt/etc/init.inactive/${script}.conf /mnt/etc/init + fi +elif [ -e /mnt/etc/init.d/${script} ]; then + # we old rc scripts + if [ -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 + ln -sf ../init.d/$script /mnt/etc/$i + [ "$DEBUGLEVEL" == 5 ] && echo "Linked $script" + done + fi +else + error "Script: ${script} does not exist. Skipping setup of startscipts/events.." nonfatal +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 -e "1i# File modified during SLX stage3 bootup (config_distro)" \ + -e "s/LANG.*/LANG=\"${LANG}\"/" -i /mnt/etc/default/locale +} + +# 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 + +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 + 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.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\ +#\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.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 (upstart functionality unchecked) +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.inactive/snmpd.conf ] ; then + testmkd /mnt/var/lib/net-snmp + 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 () { + 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 () { +if [ "x$start_dreshal" = "xyes" ]; then + testmkd /mnt/var/lib/dbus + testmkd /mnt/var/lib/misc + testmkd /mnt/var/cache/hald + 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/dbus-1/system.d/hal.conf \ + -e "s/^\([^d]*\)deny\(.*Volume.*\)/\1allow\2/" + 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 +} + +# 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" +# ToDo: needs to be adapted to upstart mechanism +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 (unchecked) +config_automount () { +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 + config_nfs +fi +} +# start portmapper (needed at least for nfsN and nis services) +config_portmap () { +if [ -f /mnt/etc/init.inactive/portmap.conf ]; then + mv /mnt/etc/init.inactive/portmap.conf /mnt/etc/init + mv /mnt/etc/init.inactive/statd.conf /mnt/etc/init +else + error "$df_errpmap" nonfatal +fi +} +# 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 (unchecked!! fixme - does the service is really named ypbind??) +config_nis () { + 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 (really existing!?) +config_nscd () { + #if [ -f /mnt/etc/init.inactive/nscd.conf ] ; then + # testmkd /mnt/var/cache/nscd + #fi + : +} diff --git a/src/initramfs/eglibc-packages/compcache/usr/bin/rzscontrol b/src/initramfs/eglibc-packages/compcache/usr/bin/rzscontrol new file mode 100755 index 00000000..0d7f2702 Binary files /dev/null and b/src/initramfs/eglibc-packages/compcache/usr/bin/rzscontrol differ diff --git a/src/initramfs/eglibc-packages/hwinfo/lib/libdbus-1.so.3 b/src/initramfs/eglibc-packages/hwinfo/lib/libdbus-1.so.3 new file mode 100644 index 00000000..526f06dc Binary files /dev/null and b/src/initramfs/eglibc-packages/hwinfo/lib/libdbus-1.so.3 differ diff --git a/src/initramfs/eglibc-packages/hwinfo/lib/librt.so.1 b/src/initramfs/eglibc-packages/hwinfo/lib/librt.so.1 new file mode 100644 index 00000000..fbea0db1 Binary files /dev/null and b/src/initramfs/eglibc-packages/hwinfo/lib/librt.so.1 differ diff --git a/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhal.so.1 b/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhal.so.1 new file mode 100644 index 00000000..8db463f0 Binary files /dev/null and b/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhal.so.1 differ diff --git a/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhd.so.16 b/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhd.so.16 new file mode 100644 index 00000000..3fd68f29 Binary files /dev/null and b/src/initramfs/eglibc-packages/hwinfo/usr/lib/libhd.so.16 differ diff --git a/src/initramfs/eglibc-packages/hwinfo/usr/sbin/hwinfo b/src/initramfs/eglibc-packages/hwinfo/usr/sbin/hwinfo new file mode 100755 index 00000000..5dbe48a4 Binary files /dev/null and b/src/initramfs/eglibc-packages/hwinfo/usr/sbin/hwinfo differ diff --git a/src/initramfs/eglibc-packages/mksquashfs/lib/libm.so.6 b/src/initramfs/eglibc-packages/mksquashfs/lib/libm.so.6 new file mode 100644 index 00000000..0e557bfe Binary files /dev/null and b/src/initramfs/eglibc-packages/mksquashfs/lib/libm.so.6 differ diff --git a/src/initramfs/eglibc-packages/mksquashfs/lib/libpthread.so.0 b/src/initramfs/eglibc-packages/mksquashfs/lib/libpthread.so.0 new file mode 100755 index 00000000..55de7d33 Binary files /dev/null and b/src/initramfs/eglibc-packages/mksquashfs/lib/libpthread.so.0 differ diff --git a/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_3_3 b/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_3_3 new file mode 100755 index 00000000..0f4efdc8 Binary files /dev/null and b/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_3_3 differ diff --git a/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_4 b/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_4 new file mode 100755 index 00000000..b40e6e42 Binary files /dev/null and b/src/initramfs/eglibc-packages/mksquashfs/usr/bin/mksquashfs_4 differ diff --git a/src/initramfs/eglibc-packages/nbd-client/sbin/nbd-client b/src/initramfs/eglibc-packages/nbd-client/sbin/nbd-client new file mode 100755 index 00000000..634e6ff3 Binary files /dev/null and b/src/initramfs/eglibc-packages/nbd-client/sbin/nbd-client differ diff --git a/src/initramfs/eglibc-packages/plymouth/bin/plymouth b/src/initramfs/eglibc-packages/plymouth/bin/plymouth new file mode 100755 index 00000000..a8a5a638 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/bin/plymouth differ diff --git a/src/initramfs/eglibc-packages/plymouth/lib/libply-splash-core.so.2 b/src/initramfs/eglibc-packages/plymouth/lib/libply-splash-core.so.2 new file mode 100644 index 00000000..875479cb Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/lib/libply-splash-core.so.2 differ diff --git a/src/initramfs/eglibc-packages/plymouth/lib/libply.so.2 b/src/initramfs/eglibc-packages/plymouth/lib/libply.so.2 new file mode 100644 index 00000000..14532e2b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/lib/libply.so.2 differ diff --git a/src/initramfs/eglibc-packages/plymouth/lib/librt.so.1 b/src/initramfs/eglibc-packages/plymouth/lib/librt.so.1 new file mode 100644 index 00000000..fbea0db1 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/lib/librt.so.1 differ diff --git a/src/initramfs/eglibc-packages/plymouth/sbin/plymouthd b/src/initramfs/eglibc-packages/plymouth/sbin/plymouthd new file mode 100755 index 00000000..c1876a3e Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/sbin/plymouthd differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/details/details.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/details/details.plymouth new file mode 100644 index 00000000..bd849642 --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/details/details.plymouth @@ -0,0 +1,4 @@ +[Plymouth Theme] +Name=Details +Description=Verbose fallback theme +ModuleName=details diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/bullet.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/bullet.png new file mode 100644 index 00000000..dd527369 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/bullet.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/entry.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/entry.png new file mode 100644 index 00000000..a9f4157b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/entry.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/fade-in.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/fade-in.plymouth new file mode 100644 index 00000000..e90b94e9 --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/fade-in.plymouth @@ -0,0 +1,7 @@ +[Plymouth Theme] +Name=Fade In +Description=Simple theme that fades in and out with shimmering stars +ModuleName=fade-throbber + +[fade-throbber] +ImageDir=/usr/share/plymouth/themes/fade-in diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/lock.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/lock.png new file mode 100644 index 00000000..7ddd3751 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/lock.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/star.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/star.png new file mode 100644 index 00000000..8d175cac Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/fade-in/star.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/box.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/box.png new file mode 100644 index 00000000..54876e68 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/box.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/bullet.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/bullet.png new file mode 100644 index 00000000..87ddfe81 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/bullet.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/entry.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/entry.png new file mode 100644 index 00000000..37217b63 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/entry.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/glow.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/glow.plymouth new file mode 100644 index 00000000..38cbafba --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/glow.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Bizcom Glow +Description=Corporate theme with pie chart boot progress followed by a glowing emerging logo +ModuleName=two-step + +[two-step] +ImageDir=/usr/share/plymouth/themes/glow +HorizontalAlignment=.25 +VerticalAlignment=.5 +Transition=merge-fade +TransitionDuration=.5 diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/lock.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/lock.png new file mode 100644 index 00000000..a0f8c12f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/lock.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-00.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-00.png new file mode 100644 index 00000000..9f94fc01 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-00.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-01.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-01.png new file mode 100644 index 00000000..b00035d5 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-01.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-02.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-02.png new file mode 100644 index 00000000..872da19d Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-02.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-03.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-03.png new file mode 100644 index 00000000..24f32ff5 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-03.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-04.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-04.png new file mode 100644 index 00000000..da1ecbd4 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-04.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-05.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-05.png new file mode 100644 index 00000000..38721afe Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-05.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-06.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-06.png new file mode 100644 index 00000000..3efdca73 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-06.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-07.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-07.png new file mode 100644 index 00000000..53277ed0 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-07.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-08.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-08.png new file mode 100644 index 00000000..db0b570a Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-08.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-09.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-09.png new file mode 100644 index 00000000..14c20559 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-09.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-10.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-10.png new file mode 100644 index 00000000..c522bc5c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-10.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-11.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-11.png new file mode 100644 index 00000000..30171ec2 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-11.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-12.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-12.png new file mode 100644 index 00000000..b920cb17 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-12.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-13.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-13.png new file mode 100644 index 00000000..c697003c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-13.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-14.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-14.png new file mode 100644 index 00000000..02b7d07d Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-14.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-15.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-15.png new file mode 100644 index 00000000..533ceb0d Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-15.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-16.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-16.png new file mode 100644 index 00000000..7039f4fd Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-16.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-17.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-17.png new file mode 100644 index 00000000..210c9173 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-17.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-18.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-18.png new file mode 100644 index 00000000..f36be2c8 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-18.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-19.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-19.png new file mode 100644 index 00000000..b44475b8 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-19.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-20.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-20.png new file mode 100644 index 00000000..45d275b7 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-20.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-21.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-21.png new file mode 100644 index 00000000..641ba2f9 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-21.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-22.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-22.png new file mode 100644 index 00000000..9805103b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-22.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-23.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-23.png new file mode 100644 index 00000000..d8a41a54 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-23.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-24.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-24.png new file mode 100644 index 00000000..ac25bdcf Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-24.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-25.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-25.png new file mode 100644 index 00000000..66cd03d9 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-25.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-26.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-26.png new file mode 100644 index 00000000..e19fb685 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-26.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-27.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-27.png new file mode 100644 index 00000000..d875c3a5 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-27.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-28.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-28.png new file mode 100644 index 00000000..dd2a1a3c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-28.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-29.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-29.png new file mode 100644 index 00000000..4d8b3494 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-29.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-30.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-30.png new file mode 100644 index 00000000..7ea1544c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-30.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-31.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-31.png new file mode 100644 index 00000000..73e85d26 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-31.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-32.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-32.png new file mode 100644 index 00000000..914bc6dc Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/progress-32.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-00.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-00.png new file mode 100644 index 00000000..6eed4b4f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-00.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-01.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-01.png new file mode 100644 index 00000000..3bc8747b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-01.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-02.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-02.png new file mode 100644 index 00000000..d14f24cf Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-02.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-03.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-03.png new file mode 100644 index 00000000..aa5554c1 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-03.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-04.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-04.png new file mode 100644 index 00000000..02a42c23 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-04.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-05.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-05.png new file mode 100644 index 00000000..08d30cff Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-05.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-06.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-06.png new file mode 100644 index 00000000..1b3c0b93 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-06.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-07.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-07.png new file mode 100644 index 00000000..cf6b61dc Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-07.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-08.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-08.png new file mode 100644 index 00000000..fa62c8c2 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-08.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-09.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-09.png new file mode 100644 index 00000000..70094674 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-09.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-10.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-10.png new file mode 100644 index 00000000..f145d643 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-10.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-11.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-11.png new file mode 100644 index 00000000..d7d0c433 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-11.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-12.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-12.png new file mode 100644 index 00000000..f161c67c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-12.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-13.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-13.png new file mode 100644 index 00000000..334f78d7 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-13.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-14.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-14.png new file mode 100644 index 00000000..535f7ea7 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-14.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-15.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-15.png new file mode 100644 index 00000000..3291f07c Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-15.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-16.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-16.png new file mode 100644 index 00000000..b8557916 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-16.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-17.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-17.png new file mode 100644 index 00000000..e9148416 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-17.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-18.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-18.png new file mode 100644 index 00000000..3ae351a0 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-18.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-19.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-19.png new file mode 100644 index 00000000..2a27b62d Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/glow/throbber-19.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/box.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/box.png new file mode 100644 index 00000000..54876e68 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/box.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/bullet.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/bullet.png new file mode 100644 index 00000000..dd527369 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/bullet.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/entry.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/entry.png new file mode 100644 index 00000000..a9f4157b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/entry.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/lock.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/lock.png new file mode 100644 index 00000000..a0f8c12f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/lock.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_bar.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_bar.png new file mode 100644 index 00000000..dd1e747a Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_bar.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_box.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_box.png new file mode 100644 index 00000000..c485cfbc Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/progress_box.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.plymouth new file mode 100644 index 00000000..1ee47bda --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.plymouth @@ -0,0 +1,11 @@ +[Plymouth Theme] +Name=Script +Description=Script example plugin. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/script +ScriptFile=/usr/share/plymouth/themes/script/script.script + +[script-env-vars] +example_env_var=example env var value diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.script b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.script new file mode 100644 index 00000000..ed54a010 --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/script/script.script @@ -0,0 +1,164 @@ +# This is an example plymouth plugin script + +Window.SetBackgroundTopColor(0.234, 0.43, 0.705); +Window.SetBackgroundBottomColor(0.16, 0.25, 0.44); + +logo.image = Image("special://logo"); +logo.sprite = Sprite(logo.image); +logo.opacity_angle = 0; + +fun refresh_callback () + { + if (status == "normal") + { + logo.opacity_angle += ((2 * 3.14) / 50) * 0.5; # 0.5 HZ + min_opacity = 0.3; + opacity = (Math.Cos(logo.opacity_angle) + 1) / 2; + opacity *= 1 - min_opacity; + opacity += min_opacity; + logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); + logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); + logo.sprite.SetOpacity (opacity); + } + else + { + logo.sprite.SetX (0); + logo.sprite.SetY (0); + logo.sprite.SetOpacity (1); + } + } + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Dialogue -------------------------------- + +status = "normal"; + +fun dialog_setup() + { + local.box; + local.lock; + local.entry; + + box.image = Image("box.png"); + lock.image = Image("lock.png"); + entry.image = Image("entry.png"); + + box.sprite = Sprite(box.image); + box.x = Window.GetX() + Window.GetWidth() / 2 - box.image.GetWidth ()/2; + box.y = Window.GetY() + Window.GetHeight() / 2 - box.image.GetHeight()/2; + box.z = 10000; + box.sprite.SetPosition(box.x, box.y, box.z); + + lock.sprite = Sprite(lock.image); + lock.x = box.x + box.image.GetWidth()/2 - (lock.image.GetWidth() + entry.image.GetWidth()) / 2; + lock.y = box.y + box.image.GetHeight()/2 - lock.image.GetHeight()/2; + lock.z = box.z + 1; + lock.sprite.SetPosition(lock.x, lock.y, lock.z); + + entry.sprite = Sprite(entry.image); + entry.x = lock.x + lock.image.GetWidth(); + entry.y = box.y + box.image.GetHeight()/2 - entry.image.GetHeight()/2; + entry.z = box.z + 1; + entry.sprite.SetPosition(entry.x, entry.y, entry.z); + + global.dialog.box = box; + global.dialog.lock = lock; + global.dialog.entry = entry; + global.dialog.bullet_image = Image("bullet.png"); + dialog_opacity (1); + } + +fun dialog_opacity(opacity) + { + dialog.box.sprite.SetOpacity (opacity); + dialog.lock.sprite.SetOpacity (opacity); + dialog.entry.sprite.SetOpacity (opacity); + for (index = 0; dialog.bullet[index]; index++) + { + dialog.bullet[index].sprite.SetOpacity(opacity); + } + } + +fun display_normal_callback () + { + global.status = "normal"; + if (global.dialog) + dialog_opacity (0); + } + +fun display_password_callback (prompt, bullets) + { + global.status = "password"; + if (!global.dialog) + dialog_setup(); + else + dialog_opacity(1); + for (index = 0; dialog.bullet[index] || index < bullets; index++) + { + if (!dialog.bullet[index]) + { + dialog.bullet[index].sprite = Sprite(dialog.bullet_image); + dialog.bullet[index].x = dialog.entry.x + index * dialog.bullet_image.GetWidth(); + dialog.bullet[index].y = dialog.entry.y + dialog.entry.image.GetHeight() / 2 - dialog.bullet_image.GetHeight() / 2; + dialog.bullet[index].z = dialog.entry.z + 1; + dialog.bullet[index].sprite.SetPosition(dialog.bullet[index].x, dialog.bullet[index].y, dialog.bullet[index].z); + } + if (index < bullets) + dialog.bullet[index].sprite.SetOpacity(1); + else + dialog.bullet[index].sprite.SetOpacity(0); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = Window.GetY() + Window.GetHeight() * 0.75 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5 - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); + +fun progress_callback (duration, progress) + { + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth(progress_bar.original_image) * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +Plymouth.SetMessageFunction(message_callback); diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/box.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/box.png new file mode 100644 index 00000000..54876e68 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/box.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/bullet.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/bullet.png new file mode 100644 index 00000000..dd527369 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/bullet.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/entry.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/entry.png new file mode 100644 index 00000000..a9f4157b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/entry.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/lock.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/lock.png new file mode 100644 index 00000000..a0f8c12f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/lock.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/progress_bar.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/progress_bar.png new file mode 100644 index 00000000..b520bc3a Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/progress_bar.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/solar.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/solar.plymouth new file mode 100644 index 00000000..13d25f8d --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/solar.plymouth @@ -0,0 +1,7 @@ +[Plymouth Theme] +Name=Solar +Description=Space theme with violent flaring blue star +ModuleName=space-flares + +[space-flares] +ImageDir=/usr/share/plymouth/themes/solar diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/star.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/star.png new file mode 100644 index 00000000..f4467ed5 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/solar/star.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/box.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/box.png new file mode 100644 index 00000000..54876e68 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/box.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/bullet.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/bullet.png new file mode 100644 index 00000000..dd527369 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/bullet.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/entry.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/entry.png new file mode 100644 index 00000000..a9f4157b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/entry.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/lock.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/lock.png new file mode 100644 index 00000000..a0f8c12f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/lock.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/spinfinity.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/spinfinity.plymouth new file mode 100644 index 00000000..f2baf3f8 --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/spinfinity.plymouth @@ -0,0 +1,7 @@ +[Plymouth Theme] +Name=Spinfinity +Description=Simple theme that shows a rotating infinity sign in the center of the screen +ModuleName=throbgress + +[throbgress] +ImageDir=/usr/share/plymouth/themes/spinfinity diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-00.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-00.png new file mode 100644 index 00000000..5ca64413 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-00.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-01.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-01.png new file mode 100644 index 00000000..dac708be Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-01.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-02.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-02.png new file mode 100644 index 00000000..68aa2d21 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-02.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-03.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-03.png new file mode 100644 index 00000000..ec63a382 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-03.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-04.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-04.png new file mode 100644 index 00000000..876bf373 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-04.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-05.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-05.png new file mode 100644 index 00000000..fa909b97 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-05.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-06.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-06.png new file mode 100644 index 00000000..3d446354 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-06.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-07.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-07.png new file mode 100644 index 00000000..b932c68b Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-07.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-08.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-08.png new file mode 100644 index 00000000..920c8dbd Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-08.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-09.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-09.png new file mode 100644 index 00000000..b4526956 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-09.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-10.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-10.png new file mode 100644 index 00000000..99377a90 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-10.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-11.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-11.png new file mode 100644 index 00000000..3bd36a9e Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-11.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-12.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-12.png new file mode 100644 index 00000000..da6ce584 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-12.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-13.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-13.png new file mode 100644 index 00000000..58cd02f9 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-13.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-14.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-14.png new file mode 100644 index 00000000..b43aef1a Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-14.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-15.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-15.png new file mode 100644 index 00000000..8eb06d8f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-15.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-16.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-16.png new file mode 100644 index 00000000..0689f510 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-16.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-17.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-17.png new file mode 100644 index 00000000..db78d6b6 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-17.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-18.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-18.png new file mode 100644 index 00000000..29967543 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-18.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-19.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-19.png new file mode 100644 index 00000000..66b17fe0 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-19.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-20.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-20.png new file mode 100644 index 00000000..1af7efcf Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-20.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-21.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-21.png new file mode 100644 index 00000000..661c0a32 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-21.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-22.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-22.png new file mode 100644 index 00000000..fbd0379e Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-22.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-23.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-23.png new file mode 100644 index 00000000..4fda936d Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-23.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-24.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-24.png new file mode 100644 index 00000000..8be2bc0a Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-24.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-25.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-25.png new file mode 100644 index 00000000..2009b4bd Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-25.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-26.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-26.png new file mode 100644 index 00000000..531a39d0 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-26.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-27.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-27.png new file mode 100644 index 00000000..51a9b688 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-27.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-28.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-28.png new file mode 100644 index 00000000..1f598586 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-28.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-29.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-29.png new file mode 100644 index 00000000..10143567 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-29.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-30.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-30.png new file mode 100644 index 00000000..652bdef4 Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-30.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-31.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-31.png new file mode 100644 index 00000000..6792bc8f Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-31.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-32.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-32.png new file mode 100644 index 00000000..232c05bf Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-32.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-33.png b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-33.png new file mode 100644 index 00000000..b9836fef Binary files /dev/null and b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/spinfinity/throbber-33.png differ diff --git a/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/text/text.plymouth b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/text/text.plymouth new file mode 100644 index 00000000..a2db9e68 --- /dev/null +++ b/src/initramfs/eglibc-packages/plymouth/usr/share/plymouth/themes/text/text.plymouth @@ -0,0 +1,4 @@ +[Plymouth Theme] +Name=Text +Description=Text mode theme with tricolor progress bar +ModuleName=text diff --git a/src/initramfs/eglibc-packages/strace/usr/bin/strace b/src/initramfs/eglibc-packages/strace/usr/bin/strace new file mode 100755 index 00000000..efe78e71 Binary files /dev/null and b/src/initramfs/eglibc-packages/strace/usr/bin/strace differ diff --git a/src/initramfs/eglibc-rootfs/bin/ash b/src/initramfs/eglibc-rootfs/bin/ash new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/bash b/src/initramfs/eglibc-rootfs/bin/bash new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/bash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/busybox b/src/initramfs/eglibc-rootfs/bin/busybox new file mode 100755 index 00000000..fa652e7b Binary files /dev/null and b/src/initramfs/eglibc-rootfs/bin/busybox differ diff --git a/src/initramfs/eglibc-rootfs/bin/cat b/src/initramfs/eglibc-rootfs/bin/cat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/cat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/chgrp b/src/initramfs/eglibc-rootfs/bin/chgrp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/chgrp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/chmod b/src/initramfs/eglibc-rootfs/bin/chmod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/chmod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/chown b/src/initramfs/eglibc-rootfs/bin/chown new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/chown @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/cp b/src/initramfs/eglibc-rootfs/bin/cp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/cp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/cpio b/src/initramfs/eglibc-rootfs/bin/cpio new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/cpio @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/cttyhack b/src/initramfs/eglibc-rootfs/bin/cttyhack new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/cttyhack @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/date b/src/initramfs/eglibc-rootfs/bin/date new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/date @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/dd b/src/initramfs/eglibc-rootfs/bin/dd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/dd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/df b/src/initramfs/eglibc-rootfs/bin/df new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/df @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/dmesg b/src/initramfs/eglibc-rootfs/bin/dmesg new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/dmesg @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/echo b/src/initramfs/eglibc-rootfs/bin/echo new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/echo @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/egrep b/src/initramfs/eglibc-rootfs/bin/egrep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/egrep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/false b/src/initramfs/eglibc-rootfs/bin/false new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/false @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/grep b/src/initramfs/eglibc-rootfs/bin/grep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/grep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/gunzip b/src/initramfs/eglibc-rootfs/bin/gunzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/gunzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/gzip b/src/initramfs/eglibc-rootfs/bin/gzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/gzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ip b/src/initramfs/eglibc-rootfs/bin/ip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ipcalc b/src/initramfs/eglibc-rootfs/bin/ipcalc new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ipcalc @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/kill b/src/initramfs/eglibc-rootfs/bin/kill new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/kill @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ln b/src/initramfs/eglibc-rootfs/bin/ln new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ln @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ls b/src/initramfs/eglibc-rootfs/bin/ls new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ls @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/mkdir b/src/initramfs/eglibc-rootfs/bin/mkdir new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/mkdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/mknod b/src/initramfs/eglibc-rootfs/bin/mknod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/mknod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/mount b/src/initramfs/eglibc-rootfs/bin/mount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/mount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/mv b/src/initramfs/eglibc-rootfs/bin/mv new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/mv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/nice b/src/initramfs/eglibc-rootfs/bin/nice new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/nice @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/pidof b/src/initramfs/eglibc-rootfs/bin/pidof new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/pidof @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ping b/src/initramfs/eglibc-rootfs/bin/ping new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ping @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/ps b/src/initramfs/eglibc-rootfs/bin/ps new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/ps @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/pwd b/src/initramfs/eglibc-rootfs/bin/pwd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/pwd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/rev b/src/initramfs/eglibc-rootfs/bin/rev new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/rev @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/rm b/src/initramfs/eglibc-rootfs/bin/rm new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/rm @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/sed b/src/initramfs/eglibc-rootfs/bin/sed new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/sed @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/sh b/src/initramfs/eglibc-rootfs/bin/sh new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/sh @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/sleep b/src/initramfs/eglibc-rootfs/bin/sleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/sleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/sync b/src/initramfs/eglibc-rootfs/bin/sync new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/sync @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/tar b/src/initramfs/eglibc-rootfs/bin/tar new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/tar @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/touch b/src/initramfs/eglibc-rootfs/bin/touch new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/touch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/true b/src/initramfs/eglibc-rootfs/bin/true new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/true @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/umount b/src/initramfs/eglibc-rootfs/bin/umount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/umount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/uname b/src/initramfs/eglibc-rootfs/bin/uname new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/uname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/usleep b/src/initramfs/eglibc-rootfs/bin/usleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/usleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/vi b/src/initramfs/eglibc-rootfs/bin/vi new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/vi @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/bin/zcat b/src/initramfs/eglibc-rootfs/bin/zcat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/bin/zcat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/lib/ld-2.11.2.so b/src/initramfs/eglibc-rootfs/lib/ld-2.11.2.so new file mode 100755 index 00000000..fecb3a46 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/ld-2.11.2.so differ diff --git a/src/initramfs/eglibc-rootfs/lib/ld-linux.so.2 b/src/initramfs/eglibc-rootfs/lib/ld-linux.so.2 new file mode 120000 index 00000000..e1654955 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/lib/ld-linux.so.2 @@ -0,0 +1 @@ +ld-2.11.2.so \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/lib/libc.so.6 b/src/initramfs/eglibc-rootfs/lib/libc.so.6 new file mode 100755 index 00000000..bfd7ef5d Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/libc.so.6 differ diff --git a/src/initramfs/eglibc-rootfs/lib/libdbus-1.so.3 b/src/initramfs/eglibc-rootfs/lib/libdbus-1.so.3 new file mode 100644 index 00000000..526f06dc Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/libdbus-1.so.3 differ diff --git a/src/initramfs/eglibc-rootfs/lib/libdl.so.2 b/src/initramfs/eglibc-rootfs/lib/libdl.so.2 new file mode 100644 index 00000000..b7d6dacc Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/libdl.so.2 differ diff --git a/src/initramfs/eglibc-rootfs/lib/libm.so.6 b/src/initramfs/eglibc-rootfs/lib/libm.so.6 new file mode 100644 index 00000000..0e557bfe Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/libm.so.6 differ diff --git a/src/initramfs/eglibc-rootfs/lib/librt.so.1 b/src/initramfs/eglibc-rootfs/lib/librt.so.1 new file mode 100644 index 00000000..fbea0db1 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/lib/librt.so.1 differ diff --git a/src/initramfs/eglibc-rootfs/sbin/bootchartd b/src/initramfs/eglibc-rootfs/sbin/bootchartd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/bootchartd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/fbsplash b/src/initramfs/eglibc-rootfs/sbin/fbsplash new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/fbsplash @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/fdisk b/src/initramfs/eglibc-rootfs/sbin/fdisk new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/fdisk @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/getty b/src/initramfs/eglibc-rootfs/sbin/getty new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/getty @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/halt b/src/initramfs/eglibc-rootfs/sbin/halt new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/halt @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/hdparm b/src/initramfs/eglibc-rootfs/sbin/hdparm new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/hdparm @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/hwclock b/src/initramfs/eglibc-rootfs/sbin/hwclock new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/hwclock @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/inotifyd b/src/initramfs/eglibc-rootfs/sbin/inotifyd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/inotifyd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/insmod b/src/initramfs/eglibc-rootfs/sbin/insmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/insmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/klogd b/src/initramfs/eglibc-rootfs/sbin/klogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/klogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/ldconfig b/src/initramfs/eglibc-rootfs/sbin/ldconfig new file mode 100755 index 00000000..74da4189 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/sbin/ldconfig differ diff --git a/src/initramfs/eglibc-rootfs/sbin/loadkmap b/src/initramfs/eglibc-rootfs/sbin/loadkmap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/loadkmap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/logread b/src/initramfs/eglibc-rootfs/sbin/logread new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/logread @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/lsmod b/src/initramfs/eglibc-rootfs/sbin/lsmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/lsmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/lspci b/src/initramfs/eglibc-rootfs/sbin/lspci new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/lspci @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/lsusb b/src/initramfs/eglibc-rootfs/sbin/lsusb new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/lsusb @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/mdev b/src/initramfs/eglibc-rootfs/sbin/mdev new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/mdev @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/mkdosfs b/src/initramfs/eglibc-rootfs/sbin/mkdosfs new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/mkdosfs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/mkfs.vfat b/src/initramfs/eglibc-rootfs/sbin/mkfs.vfat new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/mkfs.vfat @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/mkswap b/src/initramfs/eglibc-rootfs/sbin/mkswap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/mkswap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/modinfo b/src/initramfs/eglibc-rootfs/sbin/modinfo new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/modinfo @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/modprobe b/src/initramfs/eglibc-rootfs/sbin/modprobe new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/modprobe @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/poweroff b/src/initramfs/eglibc-rootfs/sbin/poweroff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/poweroff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/reboot b/src/initramfs/eglibc-rootfs/sbin/reboot new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/reboot @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/rmmod b/src/initramfs/eglibc-rootfs/sbin/rmmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/rmmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/route b/src/initramfs/eglibc-rootfs/sbin/route new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/route @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/start-stop-daemon b/src/initramfs/eglibc-rootfs/sbin/start-stop-daemon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/start-stop-daemon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/swapoff b/src/initramfs/eglibc-rootfs/sbin/swapoff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/swapoff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/swapon b/src/initramfs/eglibc-rootfs/sbin/swapon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/swapon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/switch_root b/src/initramfs/eglibc-rootfs/sbin/switch_root new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/switch_root @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/sysctl b/src/initramfs/eglibc-rootfs/sbin/sysctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/sysctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/syslogd b/src/initramfs/eglibc-rootfs/sbin/syslogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/syslogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/tunctl b/src/initramfs/eglibc-rootfs/sbin/tunctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/tunctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/udhcpc b/src/initramfs/eglibc-rootfs/sbin/udhcpc new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/udhcpc @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/vconfig b/src/initramfs/eglibc-rootfs/sbin/vconfig new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/vconfig @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/watchdog b/src/initramfs/eglibc-rootfs/sbin/watchdog new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/watchdog @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/sbin/zcip b/src/initramfs/eglibc-rootfs/sbin/zcip new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/sbin/zcip @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/[ b/src/initramfs/eglibc-rootfs/usr/bin/[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/[[ b/src/initramfs/eglibc-rootfs/usr/bin/[[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/[[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/ar b/src/initramfs/eglibc-rootfs/usr/bin/ar new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/ar @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/arping b/src/initramfs/eglibc-rootfs/usr/bin/arping new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/arping @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/awk b/src/initramfs/eglibc-rootfs/usr/bin/awk new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/awk @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/basename b/src/initramfs/eglibc-rootfs/usr/bin/basename new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/basename @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/bunzip2 b/src/initramfs/eglibc-rootfs/usr/bin/bunzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/bunzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/bzcat b/src/initramfs/eglibc-rootfs/usr/bin/bzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/bzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/bzip2 b/src/initramfs/eglibc-rootfs/usr/bin/bzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/bzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/chvt b/src/initramfs/eglibc-rootfs/usr/bin/chvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/chvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/cut b/src/initramfs/eglibc-rootfs/usr/bin/cut new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/cut @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/deallocvt b/src/initramfs/eglibc-rootfs/usr/bin/deallocvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/deallocvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/du b/src/initramfs/eglibc-rootfs/usr/bin/du new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/du @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/dumpleases b/src/initramfs/eglibc-rootfs/usr/bin/dumpleases new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/dumpleases @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/eject b/src/initramfs/eglibc-rootfs/usr/bin/eject new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/eject @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/env b/src/initramfs/eglibc-rootfs/usr/bin/env new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/env @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/expr b/src/initramfs/eglibc-rootfs/usr/bin/expr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/expr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/fgconsole b/src/initramfs/eglibc-rootfs/usr/bin/fgconsole new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/fgconsole @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/find b/src/initramfs/eglibc-rootfs/usr/bin/find new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/find @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/flock b/src/initramfs/eglibc-rootfs/usr/bin/flock new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/flock @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/free b/src/initramfs/eglibc-rootfs/usr/bin/free new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/free @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/ftpget b/src/initramfs/eglibc-rootfs/usr/bin/ftpget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/ftpget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/ftpput b/src/initramfs/eglibc-rootfs/usr/bin/ftpput new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/ftpput @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/head b/src/initramfs/eglibc-rootfs/usr/bin/head new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/head @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/id b/src/initramfs/eglibc-rootfs/usr/bin/id new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/id @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/killall b/src/initramfs/eglibc-rootfs/usr/bin/killall new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/killall @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/ld b/src/initramfs/eglibc-rootfs/usr/bin/ld new file mode 100755 index 00000000..f169e2ec Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/bin/ld differ diff --git a/src/initramfs/eglibc-rootfs/usr/bin/ldd b/src/initramfs/eglibc-rootfs/usr/bin/ldd new file mode 100755 index 00000000..4dba3cfb --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/ldd @@ -0,0 +1,193 @@ +#! /bin/bash +# Copyright (C) 1996-2008, 2009 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + + +# This is the `ldd' command, which lists what shared libraries are +# used by given dynamically-linked executables. It works by invoking the +# run-time dynamic linker as a command and setting the environment +# variable LD_TRACE_LOADED_OBJECTS to a non-empty value. + +# We should be able to find the translation right at the beginning. +TEXTDOMAIN=libc +TEXTDOMAINDIR=/usr/share/locale + +RTLDLIST="/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2" +warn= +bind_now= +verbose= + +while test $# -gt 0; do + case "$1" in + --vers | --versi | --versio | --version) + echo 'ldd (Debian EGLIBC 2.11.2-2) 2.11.2' + printf $"Copyright (C) %s Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +" "2009" + printf $"Written by %s and %s. +" "Roland McGrath" "Ulrich Drepper" + exit 0 + ;; + --h | --he | --hel | --help) + printf $"Usage: ldd [OPTION]... FILE... + --help print this help and exit + --version print version information and exit + -d, --data-relocs process data relocations + -r, --function-relocs process data and function relocations + -u, --unused print unused direct dependencies + -v, --verbose print all information +" + printf $"For bug reporting instructions, please see: +%s. +" "" + exit 0 + ;; + -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ + --data-rel | --data-relo | --data-reloc | --data-relocs) + warn=yes + shift + ;; + -r | --f | --fu | --fun | --func | --funct | --functi | --functio | \ + --function | --function- | --function-r | --function-re | --function-rel | \ + --function-relo | --function-reloc | --function-relocs) + warn=yes + bind_now=yes + shift + ;; + -v | --verb | --verbo | --verbos | --verbose) + verbose=yes + shift + ;; + -u | --u | --un | --unu | --unus | --unuse | --unused) + unused=yes + shift + ;; + --v | --ve | --ver) + echo >&2 $"ldd: option \`$1' is ambiguous" + exit 1 + ;; + --) # Stop option processing. + shift; break + ;; + -*) + echo >&2 'ldd:' $"unrecognized option" "\`$1'" + echo >&2 $"Try \`ldd --help' for more information." + exit 1 + ;; + *) + break + ;; + esac +done + +nonelf () +{ + # Maybe extra code for non-ELF binaries. + return 1; +} + +add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now" +add_env="$add_env LD_LIBRARY_VERSION=\$verify_out" +add_env="$add_env LD_VERBOSE=$verbose" +if test "$unused" = yes; then + add_env="$add_env LD_DEBUG=\"$LD_DEBUG${LD_DEBUG:+,}unused\"" +fi + +# The following use of cat is needed to make ldd work in SELinux +# environments where the executed program might not have permissions +# to write to the console/tty. But only bash 3.x supports the pipefail +# option, and we don't bother to handle the case for older bash versions. +if x=`set -o` && test "$x" != "${x#*pipefail}" && set -o pipefail ; then + try_trace() { + eval $add_env '"$@"' | cat + } +else + try_trace() { + eval $add_env '"$@"' + } +fi + +case $# in +0) + echo >&2 'ldd:' $"missing file arguments" + echo >&2 $"Try \`ldd --help' for more information." + exit 1 + ;; +1) + single_file=t + ;; +*) + single_file=f + ;; +esac + +result=0 +for file do + # We don't list the file name when there is only one. + test $single_file = t || echo "${file}:" + case $file in + */*) : + ;; + *) file=./$file + ;; + esac + if test ! -e "$file"; then + echo "ldd: ${file}:" $"No such file or directory" >&2 + result=1 + elif test ! -f "$file"; then + echo "ldd: ${file}:" $"not regular file" >&2 + result=1 + elif test -r "$file"; then + RTLD= + ret=1 + for rtld in ${RTLDLIST}; do + if test -x $rtld; then + verify_out=`${rtld} --verify "$file"` + ret=$? + case $ret in + [02]) RTLD=${rtld}; break;; + esac + fi + done + case $ret in + 0|2) + try_trace "$RTLD" "$file" || result=1 + ;; + 1|126) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { + echo $" not a dynamic executable" + result=1 + } + ;; + *) + echo 'ldd:' ${RTLD} $"exited with unknown exit code" "($ret)" >&2 + exit 1 + ;; + esac + else + echo 'ldd:' $"error: you do not have read permission for" "\`$file'" >&2 + result=1 + fi +done + +exit $result +# Local Variables: +# mode:ksh +# End: diff --git a/src/initramfs/eglibc-rootfs/usr/bin/less b/src/initramfs/eglibc-rootfs/usr/bin/less new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/less @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/logger b/src/initramfs/eglibc-rootfs/usr/bin/logger new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/logger @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/lspci b/src/initramfs/eglibc-rootfs/usr/bin/lspci new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/lspci @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/lsusb b/src/initramfs/eglibc-rootfs/usr/bin/lsusb new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/lsusb @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/lzcat b/src/initramfs/eglibc-rootfs/usr/bin/lzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/lzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/lzma b/src/initramfs/eglibc-rootfs/usr/bin/lzma new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/lzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/lzmacat b/src/initramfs/eglibc-rootfs/usr/bin/lzmacat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/lzmacat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/md5sum b/src/initramfs/eglibc-rootfs/usr/bin/md5sum new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/md5sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/nc b/src/initramfs/eglibc-rootfs/usr/bin/nc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/nc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/nmeter b/src/initramfs/eglibc-rootfs/usr/bin/nmeter new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/nmeter @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/openvt b/src/initramfs/eglibc-rootfs/usr/bin/openvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/openvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/printf b/src/initramfs/eglibc-rootfs/usr/bin/printf new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/printf @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/readahead b/src/initramfs/eglibc-rootfs/usr/bin/readahead new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/readahead @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/readlink b/src/initramfs/eglibc-rootfs/usr/bin/readlink new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/readlink @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/realpath b/src/initramfs/eglibc-rootfs/usr/bin/realpath new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/realpath @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/rpm2cpio b/src/initramfs/eglibc-rootfs/usr/bin/rpm2cpio new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/rpm2cpio @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/smemcap b/src/initramfs/eglibc-rootfs/usr/bin/smemcap new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/smemcap @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/sort b/src/initramfs/eglibc-rootfs/usr/bin/sort new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/sort @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/strings b/src/initramfs/eglibc-rootfs/usr/bin/strings new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/strings @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/tail b/src/initramfs/eglibc-rootfs/usr/bin/tail new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/tail @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/test b/src/initramfs/eglibc-rootfs/usr/bin/test new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/test @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/tftp b/src/initramfs/eglibc-rootfs/usr/bin/tftp new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/tftp @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/time b/src/initramfs/eglibc-rootfs/usr/bin/time new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/time @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/timeout b/src/initramfs/eglibc-rootfs/usr/bin/timeout new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/timeout @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/tr b/src/initramfs/eglibc-rootfs/usr/bin/tr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/tr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/uniq b/src/initramfs/eglibc-rootfs/usr/bin/uniq new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/uniq @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/unlzma b/src/initramfs/eglibc-rootfs/usr/bin/unlzma new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/unlzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/unxz b/src/initramfs/eglibc-rootfs/usr/bin/unxz new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/unxz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/uptime b/src/initramfs/eglibc-rootfs/usr/bin/uptime new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/uptime @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/wc b/src/initramfs/eglibc-rootfs/usr/bin/wc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/wc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/wget b/src/initramfs/eglibc-rootfs/usr/bin/wget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/wget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/which b/src/initramfs/eglibc-rootfs/usr/bin/which new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/which @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/whoami b/src/initramfs/eglibc-rootfs/usr/bin/whoami new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/whoami @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/xargs b/src/initramfs/eglibc-rootfs/usr/bin/xargs new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/xargs @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/xz b/src/initramfs/eglibc-rootfs/usr/bin/xz new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/xz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/bin/xzcat b/src/initramfs/eglibc-rootfs/usr/bin/xzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/bin/xzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so b/src/initramfs/eglibc-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so new file mode 100644 index 00000000..ae24957b Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libfusion-1.2.so.9 b/src/initramfs/eglibc-rootfs/usr/lib/libfusion-1.2.so.9 new file mode 100644 index 00000000..1b8d84ea Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libfusion-1.2.so.9 differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libgcc_s.so.1 b/src/initramfs/eglibc-rootfs/usr/lib/libgcc_s.so.1 new file mode 100644 index 00000000..f893c04d Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libgcc_s.so.1 differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libhal.so.1 b/src/initramfs/eglibc-rootfs/usr/lib/libhal.so.1 new file mode 100644 index 00000000..8db463f0 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libhal.so.1 differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libhd.so.16 b/src/initramfs/eglibc-rootfs/usr/lib/libhd.so.16 new file mode 100644 index 00000000..3fd68f29 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libhd.so.16 differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libm.so b/src/initramfs/eglibc-rootfs/usr/lib/libm.so new file mode 120000 index 00000000..6c7b429c --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/lib/libm.so @@ -0,0 +1 @@ +/lib/libm.so.6 \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libpcre.so.3 b/src/initramfs/eglibc-rootfs/usr/lib/libpcre.so.3 new file mode 100644 index 00000000..d11113bb Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libpcre.so.3 differ diff --git a/src/initramfs/eglibc-rootfs/usr/lib/libz.so.1 b/src/initramfs/eglibc-rootfs/usr/lib/libz.so.1 new file mode 100644 index 00000000..c1b51178 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/lib/libz.so.1 differ diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/brctl b/src/initramfs/eglibc-rootfs/usr/sbin/brctl new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/brctl @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/chroot b/src/initramfs/eglibc-rootfs/usr/sbin/chroot new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/chroot @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/dhcprelay b/src/initramfs/eglibc-rootfs/usr/sbin/dhcprelay new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/dhcprelay @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/fbset b/src/initramfs/eglibc-rootfs/usr/sbin/fbset new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/fbset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/httpd b/src/initramfs/eglibc-rootfs/usr/sbin/httpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/httpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/hwinfo b/src/initramfs/eglibc-rootfs/usr/sbin/hwinfo new file mode 100755 index 00000000..5dbe48a4 Binary files /dev/null and b/src/initramfs/eglibc-rootfs/usr/sbin/hwinfo differ diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/loadfont b/src/initramfs/eglibc-rootfs/usr/sbin/loadfont new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/loadfont @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/rdate b/src/initramfs/eglibc-rootfs/usr/sbin/rdate new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/rdate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/setlogcons b/src/initramfs/eglibc-rootfs/usr/sbin/setlogcons new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/setlogcons @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/eglibc-rootfs/usr/sbin/udhcpd b/src/initramfs/eglibc-rootfs/usr/sbin/udhcpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/eglibc-rootfs/usr/sbin/udhcpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/stage3-stuff/bin/dhcpmkconfig b/src/initramfs/stage3-stuff/bin/dhcpmkconfig new file mode 100755 index 00000000..fa01db75 --- /dev/null +++ b/src/initramfs/stage3-stuff/bin/dhcpmkconfig @@ -0,0 +1,47 @@ +#!/bin/sh +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Universal (distro independent) IP configuration writer for busybox udhcpc +# applet used within OpenSLX initramfs. The result is written to the +# /etc/initramfs-setup file + +# script started twice by udhcpc, quit fast if no ip configuration present +[ -z "$ip" ] && exit 0 + +# heavy debugging output in level 3 and above ... and on 13 +#FIXME: DEBUGLEVEL is not propagated to this file (at least for Ubuntu) +[ -z "$DEBUGLEVEL" ] && DEBUGLEVEL=0 +[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 13 ] && \ + set -x + +echo -e "# network configuration written by $0:" >/tmp/confviadhcp +unset HOME IFS KCMDLINE DEBUGLEVEL MODPRV TERM BOOTIF BOOT_IMAGE \ + infomsg mask lease interface cfgmsg cfgfile boot_file no_bootsplash +# set the broadcast address if not delivered by dhcp +[ -z "$broadcast" ] && \ + broadcast=$(ipcalc -b $ip/$subnet|sed s/.*=//) +set | sed \ + -e "s,^P.*,,;s,ntpsrv,ntp_servers,;s,ip,clientip," \ + -e "s,serverid,serverip,;s,subnet,subnet_mask," \ + -e "s,router,gateway,;s,hostname,host_name," \ + -e "s,domain,domain_name,;s,dns,domain_name_servers," \ + -e "s,broadcast,broadcast_address,;s,dhc.*,,;/^$/d" \ + -e "s,nissrv,nis_servers,;s,nisdomain_name,nis_domain," \ + -e "s,wins,netbios_name_servers,;/OPTIND.*/d" >>/tmp/confviadhcp + +# generate a local /etc/resolv.conf (might overwrite the version from preboot) +[ -n "$domain" ] && echo -e "search $domain\n" >/etc/resolv.conf +test -n "$dns" && { + for name in $dns; do + echo nameserver $name >>/etc/resolv.conf; + done; } + diff --git a/src/initramfs/stage3-stuff/bin/hwautocfg b/src/initramfs/stage3-stuff/bin/hwautocfg new file mode 100755 index 00000000..1f02892e --- /dev/null +++ b/src/initramfs/stage3-stuff/bin/hwautocfg @@ -0,0 +1,299 @@ +#!/bin/sh +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Universal (distro independent) hardware autoconfiguration script for +# OpenSLX linux stateless clients, using SuSE hwinfo for configuration + +############################################################################# +# pre part, load USB modules and start hardware detection pci +base () { +# avoid annoying error messages because of missing scripts +for tool in /usr/sbin/acpidump \ + /usr/bin/udevinfo \ + /sbin/dmraid ; do + testmkd ${tool%/*} + echo -e "#!/bin/sh" >${tool} + chmod u+x ${tool} +done +# no kernel messages, switch on hotplug via /sbin/mdev +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 & +# check from vga= that the traditional framebuffer is needed e.g. for splashy +# get information on the graphics adaptor if bootsplash or xserver plugins are +# present and the new drm/kms infrastructure is present +if strinfile "vga=" /proc/cmdline; then + ( modprobe -a vesafb fbcon 2>/dev/null + hwinfo --gfxcard >/etc/hwinfo.gfxcard ) & +elif [ -e /etc/init-hooks/00-started/xserver.sh -o \ + -e /etc/init-hooks/05--have-kernelvars/bootsplash.sh ] && \ + [ -e /lib/modules/${KERNEL}/kernel/drivers/gpu ]; then + # check for the standard modules (single gpu, multiple connector only) + ( hwinfo --gfxcard >/etc/hwinfo.gfxcard + case $(cat /etc/hwinfo.gfxcard) in + *i915*) + modprobe -a ${MODPRV} i915 2>/dev/null + ;; + *intel*|*Intel*) + modprobe -a ${MODPRV} i810 i830 i915 2>/dev/null + ;; + *nvidia*|*NVidia*|*nouveau*) + modprobe ${MODPRV} nouveau 2>/dev/null + ;; + *radeon*|*Radeon*) + modprobe ${MODPRV} radeon 2>/dev/null + ;; + *mga*|*matrox*|*Matrox*) + modprobe ${MODPRV} mga 2>/dev/null + ;; + *) + modprobe -a ${MODPRV} r128 savage sis tdfx ttm via + ;; + esac + modprobe -a drm fbcon; mdev -s ) & +fi + +# check and then load appropriate network card modules +nwcardlist=$(echo ${slxconf_listnwmod}|sed "s/\ /|/g") +# 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 +sh /etc/modprobe.base; mdev -s + +# optimization possible: exclude network and usb base drivers from the +# following list (bios detection for non-hwautocfg component) +( hwinfo --pci >/etc/hwinfo.data; echo "read pci device list at $(sysup)" \ + >/tmp/hwdataready ) & +( usleep 100000 ; hwinfo --bios >/etc/hwinfo.bios ) & +# for mounting partitions/devices with the "auto" option +echo -e "ext3\next2\nreiserfs\nxfs\njfs\next4\nvfat" >/etc/filesystems +# request a local block device for config and root filesystem (lbd://) +if grep -iq '"lbd://' /proc/cmdline /etc/initramfs-setup; then + modprobe -a ${MODPRV} ehci_hcd usb-storage sd_mod + mdev -s +fi +return 0 +} + +############################################################################# +# main part +hwmain () { +# activate the previously detected devices +[ $DEBUGLEVEL -ge 2 ] || modloadbg=" >/dev/null 2>\&1" +# check for rtc if not compiled directly into the kernel +( [ -e /proc/driver/rtc ] || modprobe ${MODPRV} rtc-cmos ) & +waitfor /tmp/hwdataready 10000 +sed '/Driver Info #1/,/Config Status:/d' \ + /etc/hwinfo.data | grep modprobe | sed "s|.* Cmd: \"||;s|\"|$modloadbg|" \ + | sort -u >/etc/modprobe.pci +sh /etc/modprobe.pci +mdev -s + +# bluetooth setup (start it later if present, depends on firmware availa- +# bility, interpreted by servconfig) +#( hwinfo --bluetooth >/etc/hwinfo.bt ) & + +# load harddisk driver and check for harddisk +( grep -q -E "SCSI|SATA" /etc/hwinfo.data && modprobe ${MODPRV} sd_mod + grep -q -E "IDE" /etc/hwinfo.data && modprobe ${MODPRV} ide-disk + hwinfo --disk | sed -n "/Device File: /p" | \ + sed -e "s|.*Device File: /dev/||;s| .*||" >/etc/hwinfo.disk + echo "disk detection finished at $(sysup)" >/tmp/diskready; ) & +[ $DEBUGLEVEL -eq 21 ] && echo "** finished 2nd hwdetection at $(sysup)" + +# load disk/optical high level drivers +modprobe ${MODPRV} ide-cd 2>/dev/null +modprobe ${MODPRV} sr_mod 2>/dev/null +modprobe ${MODPRV} ide-floppy 2>/dev/null +mdev -s + +# load kernel module for ps2 mice and map the mousehandler to /dev/input/mice +( [ -f /lib/modules/${KERNEL}/kernel/drivers/input/mouse/psmouse.ko ] && \ + modprobe ${MODPRV} psmouse + [ -f /lib/modules/${KERNEL}/kernel/drivers/input/mousedev.ko ] && \ + modprobe ${MODPRV} mousedev + testmkd /dev/input + mknod /dev/input/mice c 13 63 2>/dev/null + hwinfo --mouse >/etc/hwinfo.mouse ) & + +# complete the audio configuration and load the dummy module if no audio +# hardware is present in the machine +grep -q -E "Audio|sound" /etc/hwinfo.data || modprobe snd-dummy +modprobe ${MODPRV} snd-pcm-oss +modprobe ${MODPRV} snd-mixer-oss +#ln -s /proc/sound/oss/sndstat /dev/sndstat + +[ $DEBUGLEVEL -eq 21 ] && echo "** finished most of module loading at $(sysup)" + +# scanner setup (fixme: to be checked) +hwinfo --scanner >/etc/hwinfo.scanner +[ -f /tmp/scanner-udev ] && cat /tmp/scanner-udev \ + >>/mnt/etc/udev/rules.d/04-scanner.rules + +# parallel port setup +modprobe ${MODPRV} parport_pc && modprobe ${MODPRV} ppdev + +# if any new device appeared up to now +mdev -s +return 0 +} +############################################################################# +# harddisk partition setup part +disk () { +# get idea of availabe harddisk partitions, put swap partitions into +# (/mnt)/etc/fstab and format and mount partitions of type 44 (unknown) +[ $DEBUGLEVEL -eq 21 ] && echo "** starting hdd stuff at $(sysup)" +waitfor /tmp/diskready 20000 +if [ -s /etc/hwinfo.disk ] ; then + for hd in $(cat /etc/hwinfo.disk) ; do + fdisk -l /dev/$hd|sed -n "/^\/dev\//p" >/etc/disk.partition + for hdpartnr in $(cat /etc/disk.partition | \ + sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do + echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >>/tmp/fstab + done + # we use special non assigned partition type (id44) for harddisk scratch + # space, thus no normal filesystem will be incidentally deleted or + # corrupted + for hdpartnr in $(cat /etc/disk.partition | \ + sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do + # check for supported filesystem and formatter + ( if diskfm $hdpartnr ; then + echo "$hdpartnr is mounted to /mnt/tmp at $(sysup)" >/tmp/tmpready + echo -e "$hdpartnr\t/tmp\t\tauto\t\tdefaults\t 0 0" >>/tmp/fstab + else + echo "formatting failed for some reason ($(sysup))" >/tmp/tmpready + fi ) & + part44=yes + break + done + # put detected linux partitions (83) into /etc/fstab with "noauto", + # special partition 45 (persistent scratch) to /var/scratch and 46 + # to /var/openslx + for partid in 83 45 46 ; do + for hdpartnr in $(cat /etc/disk.partition | \ + sed -n -e "/ ${partid} /p"|sed -e "s/[[:space:]].*//") ; do + mkdir -p /mnt/media/${hdpartnr#/dev/*} 2>/dev/null + if [ ${partid} -eq 83 ] ; then + echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,\ +noexec\t 0 0" >>/tmp/fstab + elif [ ${partid} -eq 45 ] ; then + # if more than one id45 present, the latter ones are simply mounted + # over the previous (the mounts are postponed a bit via do_mnt to + # have the filesystem completely prepared) + echo -e "waitfor ${hdpartnr} 4000\n\ + mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*}\n\ + ln -sf /media/${hdpartnr#/dev/*} /mnt/var/scratch" >>/etc/do_mnt + echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\ +\t\t 0 0" >>/tmp/fstab + elif [ ${partid} -eq 46 ] ; then + # mount a home directory to (/mnt)/var/home + echo -e "waitfor ${hdpartnr} 4000\n\ + mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*} \n\ + test -d /mnt/media/${hdpartnr#/dev/*}/home && \ + ln -sf /media/${hdpartnr#/dev/*} /mnt/var/home" >>/etc/do_mnt + echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\ +\t\t 0 0" >>/tmp/fstab + fi + done + done + # add + [ -f /etc/do_mnt ] && sed -e "1i. /etc/functions" -i /etc/do_mnt + done + # determine if tmp preparation should wait for format/mount or not + [ -z "$part44" ] && echo "finished at $(sysup)" >/tmp/tmpready +else + echo "no harddisk found ( $(sysup) )" >/tmp/tmpready +fi +[ $DEBUGLEVEL -eq 21 ] && echo "** finished hdd stuff at $(sysup)" +} + +############################################################################# +# cleanup/finishing part +finish () { +mdev -s +# mount filesystem parts (if any) requested in disk setup +[ -f /etc/do_mnt ] && sh /etc/do_mnt & +# remove unneeded disk and mouse drivers +[ ! -s /etc/hwinfo.disk ] && rmmod sd_mod 2>/dev/null +#grep -q " PS/2 " /etc/hwinfo.mouse || \ +# { rmmod psmouse 2>/dev/null; rm /dev/psaux 2>/dev/null; } +# more sophistication possible :) +# remove /sbin/mdev as not available in stage4 +echo >/proc/sys/kernel/hotplug +return 0 +} + +############################################################################# +# main script starts here + +# functions common for all distros +. /etc/functions +# functions common for all distros, messages contains all error and +# info output +. /etc/messages +# load distro specific configuration variables and functions. distro +# specific functions may overwrite functions defined in /etc/functions +. /etc/distro-functions +# source general slx and initramfs-setup settings +. /etc/slxsystem.conf +. /etc/initramfs-setup + +# script run timer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 21 ] && \ + echo "** HW $1 setup started at $(sysup)" + +# heavy debugging output in level 3 and above and specific for 11 +[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 11 ] && \ + set -x + +case $1 in + # pre initialization: loading USB base and network adaptor modules, + # detection of other pci bus modules + base) + base + ;; + # main part of hardware setup of pci stuff + main) + hwmain + # main script run timer or debug information + [ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 21 ] && \ + echo "** HW main setup finished at $(sysup)" + echo "hwsetup main part finished at $(sysup)" >/tmp/hwcfg + ;; + # disk setup part (detecting general id82,83 and slx id44,45,46, formatting + # if required and mounting) + disk) + # try to enable compressed RAM SWAP + if modprobe ${MODPRV} ramzswap && [ -f /usr/bin/rzscontrol ] ; then + mdev -s + rzscontrol /dev/ramzswap0 --init + swapon /dev/ramzswap0 + #hdswap="# disk swap disabled because of enabled compressed ramswap" + fi + # if disk action is not disabled + if [ "x${hw_local_disk}" != "xno" ] ; then + disk + else + echo "using harddisk switched off by hw_local_disk set to 'no' ( $(sysup) )" \ + >/tmp/tmpready + fi + ;; + # remove unneeded kernel modules + finish) + finish + ;; +esac diff --git a/src/initramfs/stage3-stuff/bin/init-wrapper b/src/initramfs/stage3-stuff/bin/init-wrapper new file mode 100755 index 00000000..57fcb8a0 --- /dev/null +++ b/src/initramfs/stage3-stuff/bin/init-wrapper @@ -0,0 +1,60 @@ +#!/bin/sh +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# wrapperscript for plugin init files +############################################################################# + +# Get parameters +init_file="$1" +DEBUGLEVEL="$2" + +[ -z $DEBUGLEVEL ] && DEBUGLEVEL=0 + +# How do the localization here? There is not yet a country-Variable +. /etc/messages +. /etc/functions +. /etc/distro-functions + +# Configuration settings for this slx system's environment +. /etc/slxsystem.conf 2>/dev/null + +# initramfs-setup configuration (common initial settings for all clients using +# a certain InitRamFS generated by slxconfig-demuxer) +[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null + +# Initial +testmkd /tmp/env + +if [ ! -f /tmp/env/base.sed ]; then + # Get environment and prepare as sed command + pre_env_base=$(env | sed -e 's/^\([^=]*\).*/\1/' | tr '\n' ';') + pre_env_base=$(echo $pre_env_base| sed -e 's/;/\.\*\/\/;s\/\^/g') + pre_env_base="s/^$pre_env_base//;" + $(echo $pre_env_base > /tmp/env/base.sed) +else + pre_env_base=$(cat /tmp/env/base.sed) +fi + +# Load temporary environments +[ -f /tmp/env/wrapper.env ] && . /tmp/env/wrapper.env + +[ "${DEBUGLEVEL}" -eq 15 ] && set -x +[ -f $init_file ] && . $init_file +[ "${DEBUGLEVEL}" -eq 15 ] && set +x + +# Remove already known environment variables from postenv +#env |sed -e $pre_env_base | sort -u | \ +# Store the environment for re-initialization in runinithook function +env | grep -v -E "debug|DEBUGLEVEL" | sort -u | \ + sed "1s|.*|# generated by init-wrapper; last changed by $init_file|" | \ + sed -e 's/^\([^=]*\)=\(.*\)/export \1="\2"/' \ + > /tmp/env/wrapper.env + diff --git a/src/initramfs/stage3-stuff/bin/servconfig b/src/initramfs/stage3-stuff/bin/servconfig new file mode 100755 index 00000000..1248918e --- /dev/null +++ b/src/initramfs/stage3-stuff/bin/servconfig @@ -0,0 +1,308 @@ +#!/bin/sh +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# universal (distro independent) configuration script for OpenSLX linux +# diskless clients (executed in stage3 within initial ramfs). The file- +# system setup is completed when servconfig starts + +############################################################################# +# check for configuration files to source + +# functions common for all distros, messages contains all error and +# info output +. /etc/messages +. /etc/functions +# load distro specific configuration functions. Distro specific functions may +# overwrite functions defined in /etc/functions +. /etc/distro-functions +. /etc/slxsystem.conf + +# load variables defined by plugins +[ -f /tmp/env/wrapper.env ] && . /tmp/env/wrapper.env + +# script run timer +[ $DEBUGLEVEL -eq 8 ] && echo "** SW setup started at $(sysup)" + +# heavy debugging output in level 3 and below 8 ... +[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 12 ] && \ + set -x + +############################################################################# +# read and unify configuration options - default configuration file, from +# dhcp, ldap ... +# wait for the appearance of configuration from several sources +cfgcomplete +. /etc/initramfs-setup +[ $DEBUGLEVEL -eq 8 ] && echo "** Config info is complete at $(sysup)" + +# copy additional configuration and var files and directories +# admins can place there files in /var/lib/openslx/config/... +# to be packed during stage2 into (/srv/dxs)/tftpboot/client-config...) +cp -a /rootfs/* /mnt 2>/dev/null + +# copy passwd, group files for temporarily (within stage3 configuration) used +# by chown +cp /mnt/etc/passwd /etc +cp /mnt/etc/group /etc + +# set greeting and add information on booted system +len=$(expr length ${SLXVERSION}${SYSTEM_NAME}) +if [ $len -le 28 ] ; then + vdstr="Stateless Workstation (V${SLXVERSION}/${SYSTEM_NAME})" + smax=28 +else + vdstr="V${SLXVERSION}/${SYSTEM_NAME}" + smax=52 +fi +while [ $len -le $smax ] ; do + vdstr="$vdstr " + len=$(($len + 1)) +done +len=$(expr length ${host_name}) +while [ $len -le 30 ] ; do + space="$space " + len=$(($len + 1)) +done +echo " + WELCOME TO $space \n (\l) + _____ ______ ______ __ __ _______ __ __ __ + / _ | _ | ___| | | | | ____| | | | | | + | | | | |_| | |_ | | | | |___ | | / / + | | | | ___/| _| | | ____ | | | | + | |_| | | | |___| | | | ____| | |___ / / + _____/|__| |______|__| |__| |_______|______|__| |__| + + $vdstr (c) +" >/mnt/etc/issue + +############################################################################# +# set localization and add entries to initialize keytable and consolefont to +# boot.slx +if [ -z "${country}" ] ; then + error "$scfg_country" nonfatal + country="us" +fi +# do localization (this functions simply sets a list of variables) +localization "${country}" +# start distrospecific localization +dlocale + +############################################################################# +# setup passwd and shadow for local system users like root, bin, daemon and +# nobody if no user/admin provided passwd exists ... fixme: see #206 +[ ! -e /rootfs/etc/shadow ] && \ + basepasswd $(sed "/+::0/d;s/root://;s/:.*//" /rootfs/etc/shadow 2>/dev/null) + +############################################################################# +# dns and ip configuration +# hostname of the machine +echo "$host_name" >/proc/sys/kernel/hostname +echo -e "# /etc/hosts - file generated by $0 during OpenSLX stage3\ +\n#\n# IP-Address Full-Qualified-Hostname Short-Hostname\n#\n\ +127.0.0.1\tlocalhost\n::1\t\tlocalhost ipv6-localhost ipv6-loopback\n\ +fe00::0\t\tipv6-localnet\nff00::0\t\tipv6-mcastprefix\nff02::1\ +\t\tipv6-allnodes\nff02::2\t\tipv6-allrouters\nff02::3\t\t\ +ipv6-allhosts\n" >/mnt/etc/hosts +if [ -n "${domain_name}" ]; then + echo -en "${clientip}\t" >>/mnt/etc/hosts + for name in ${domain_name}; do + echo -en "${host_name}.${name} " >>/mnt/etc/hosts + done + echo -e "${host_name}" >>/mnt/etc/hosts +else + echo -e "${clientip}\t${host_name}" >>/mnt/etc/hosts +fi +# set up domainname and resolving +rm -rf /mnt/etc/resolv.conf +test -n "${domain_name}" && \ + echo -e "# /etc/resolv.conf - file generated by\n#\t$0:\n\ +#\t${date}\n#options timeout:1 attempts:1 rotate\n\ +search "${domain_name} >/mnt/etc/resolv.conf +test -n "${domain_name_servers}" && { + for name in ${domain_name_servers}; do + echo nameserver ${name} >>/mnt/etc/resolv.conf; + done; } + +############################################################################# +# run distro specific configuration function +config_distro + +############################################################################# +# basic (non network) services + +# at daemon - calling distro specific function config_atd +config_atd + +# configuration of cron services - calling distro specific function +# config_cron (runlevel links, directories, ...) +config_cron + +# setup system log services - distro dependent function config_syslog +config_syslog + +# acpi and powersave - distro dependent function config_acpi, these daemons +# might require dbus +config_acpi + +# configure udev +config_udev + +# configure dbus - distro dependent function config_dreshal - handle +# all stuff regarding dependent services like dbus, resmgr, hal ... +# (check for runlevel scripts, passwd entries, directories ...) +config_dreshal + +# configure automounter (should be moved to plugin) +if [ "x$automnt" != "xno" ] ; then + # check if there is some user provided configuration (only auto.master is + # important) and skip automatic setup + if [ ! -f /rootfs/etc/auto.master ] ; then + if [ -d /mnt/misc ] ; then + echo -e "# /etc/auto.master - file generated by $0:\n\ +/misc\t/etc/auto.misc" >/mnt/etc/auto.master + echo -e "# /etc/auto.misc - file generated by $0:" >/mnt/etc/auto.misc + else + echo -e "# /etc/auto.master - file generated by $0:\n\ +/misc\t#/etc/auto.misc" >/mnt/etc/auto.master + echo -e "# /etc/auto.misc - file generated by $0:\nautomount for \ +removable devices is mostly deprecated, so /misc is not\nactivated in \ +auto.master." >/mnt/etc/auto.misc + fi + if [ -n "${automnt_src}" ] ; then + # local directory and home directory server from initialramfs-setup + [ -z "${automnt_dir}" ] && automnt_dir="/home" + # remove leading and trailing slash + automnt_dir=${automnt_dir#/} + automnt_dir=${automnt_dir%/} + test -d /${automnt_dir} || error "$scfg_erradir" nonfatal + amserv=$(uri_token $automnt_src server) + ampath=$(uri_token $automnt_src path) + amdirn=$(echo ${automnt_dir}|sed "s,/,_,g") + echo -e "/${automnt_dir}\t/etc/auto.${amdirn}\n" \ + >> /mnt/etc/auto.master + echo -e "# /etc/auto.${amdirn} created by $0:\n" \ + > /mnt/etc/auto.${amdirn} + # add '/' to path because uri_token removes any leading '/' (s. function) + echo -e "*\t-rsize=32768,wsize=32768,rw\t${amserv}:/${ampath}/&" \ + >> /mnt/etc/auto.${amdirn} + # no tempfs needed if automounter operates on /home + [ "${automnt_dir}" = "home" ] && umount -t tmpfs /mnt/home 2>/dev/null + # portmapper is needed for remote NFS sources and local nfs directories + testmkd /mnt/var/lib/nfs/state + config_portmap + fi + fi + config_automount +fi + +# configure print services / start requested printer daemon +config_printer + +# configure bluetooth services +#[ -s /etc/hwinfo.bt ] if existance of bt devices should play any role +config_bt + +############################################################################# +# network(ed) services + +if [ -n "$ntp_servers" ]; then + # rdate uses the time protocol (port 37 which is not the ntp standard port) + # thus not every standard ntp-server might offer this service) + ( rdate -s "$ntp_servers" 2>/dev/null || error "$scfg_rdate" nonfatal + hwclock -w ) & +fi + +# network time service (ntp) configuration file +if [ -n "$ntp_servers" -a ! -f /rootfs/etc/ntp.conf ]; then + echo -e "# /etc/ntp.conf - file generated by $0: \ +$date\n" >/mnt/etc/ntp.conf + for name in $ntp_servers; do + echo server $name >>/mnt/etc/ntp.conf + done +fi +# copy timezone file defined with language settings +[ -z "$TZ" ] && TZ="$timezone" +ln -snf /usr/share/zoneinfo/${TZ} /mnt/etc/localtime || \ + error "$scfg_ntptz" nonfatal +config_ntp + +# secure shell server - at the moment all clients share one "secret" +# key or the key has to be regenerated on every bootup or fetched on +# every bootup from somewhere +config_sshd + +# simple network management protocol agent +config_snmp + +# configure samba service +config_samba + +############################################################################# +# NIS (variable typically fetched via dhcp) +# setup nis configuration if needed +if [ "x$nis_domain" != "x" -a "x$nis_servers" != "x" ] ; then + echo $nis_domain >/mnt/etc/defaultdomain + echo -e "# /etc/yp.conf - file generated by $0:\n#\t\ +$date\n\nypserver "$nis_servers >/mnt/etc/yp.conf + config_nis +fi + +############################################################################# +# name service caching daemon if networked user database +config_nscd + +############################################################################# +# preparation of /tmp directory (partition 44, nfs scratch, ramdisk). there +# might be the chance that we have a disk partition available, so wait for +# completion of detection, setup process +[ $DEBUGLEVEL -eq 8 ] && echo "** Waiting for /tmp completion at $(sysup)" +waitfor /tmp/tmpready 40000 +[ $DEBUGLEVEL -eq 8 ] && echo "** Setup of /tmp completed at $(sysup)" +# create some directories and correct permissions +tmpisdisk=$(sed -n '/\/tmp/p' /tmp/fstab 2>/dev/null) +# if there is no local disk partition for /tmp then try to mount a rw +# scratch space (if defined in $scratch) and prepared on server +if [ -n "$scratch" -a -z "$tmpisdisk" ] ; then + scrproto=$(uri_token $FILESRC prot) + scrpath=$(uri_token $FILESRC path) + testmkd /tmp/scratch + # exports have to be per client!! + case "$scrproto" in + nbd) + : + ;; + *) + tmpserv=$(uri_token $scratch server) + tmppath=$(uri_token $scratch path) + # hanging mount processes might stop further setup - timeout + # should be configured ... + # fsmount proto server path target options + fsmount nfs ${tmpserv} ${tmppath} /tmp/scratch \ + "rw,intr,soft,timeo=2,nosuid" && { + if [ -d /tmp/scratch/${clientip} ] ; then + mv /tmp/scratch/${clientip} /tmp/scratch/${clientip}.totrash + rm -rf /tmp/scratch/${clientip}.totrash 2>/dev/null & + fi + testmkd /tmp/scratch/${clientip} + # no need for tempfs there ... + umount /mnt/tmp >/dev/null 2>&1 + fsmount nfs ${tmpserv} ${tmppath} /mnt/tmp \ + "rw,intr,soft,timeo=2,nosuid"; } + ;; + esac +fi + +# script run timer +[ $DEBUGLEVEL -eq 8 ] && echo "** SW setup finished at $(sysup)" + +# servconfig finished successfully +echo "servconfig finished at $(sysup)" > /tmp/svcfg diff --git a/src/initramfs/stage3-stuff/etc/functions b/src/initramfs/stage3-stuff/etc/functions new file mode 100644 index 00000000..3985bd57 --- /dev/null +++ b/src/initramfs/stage3-stuff/etc/functions @@ -0,0 +1,1029 @@ +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2006..2009 - 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 +# +# Common functions file for the configuration of linux diskless clients +# (included by init, hwautocfg, servconfig, ... within OpenSLX initialramfs) + +############################################################################# +# set of empty dummy functions (loaded before real functions in the +# distro specific files - to have no undeclared function in init, serv- +# config, hwautocfg, ...) + +# distro specific funtion called at the beginning of init script +preinit () { +: +} +# distro specific funtion called at the end of init script +postinit () { +: +} +# distro specific general function called from servconfig script +config_distro () { +: +} + +############################################################################# +# produce error message and if $2 is empty run (debug) shell +error () { +local e_msg="$1" +# set LOGFILE if not defined +[ -z "${LOGFILE}" ] && LOGFILE="/dev/null" +# if nonfatal error else fatal error message and shell +if [ -n "$2" ] ; then + [ "$DEBUGLEVEL" -ge 1 -a "$DEBUGLEVEL" != 8 ] && \ + echo -e "${error_msg}${e_msg}${error_nfe}" >> ${LOGFILE} + [ "$DEBUGLEVEL" -gt 1 -a "$DEBUGLEVEL" != 8 ] && \ + echo -e "${error_msg}${e_msg}${error_nfe}" + [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && usleep 10 +else + echo -e "${error_msg}${e_msg}${error_shell}" + /bin/sh + echo -n "Reboot now? [y] (nothing happens here at the moment)" + exec < /dev/console > /dev/console + #input="y" + #read input + #[ -z "$input" -o "$input" = "y" -o "$input" = "Y" ] && { + # sleep 4 + # [ -f /proc/sysrq-trigger ] || mount -t proc none /proc + # echo "b" > /proc/sysrq-trigger + #} +fi +} +############################################################################# +# system uptime for performance analysis +sysup () { +uptime=$(sed -e "s, .*,," /proc/uptime) +echo "${uptime} s." +# if start times are kept, a summary of runtimes would be possible too +} +############################################################################# +# (re)generate dynamic linked libraries cache from /etc/ld.so.conf +ldcfg () { +[ -n "${ldsc}" ] && echo -e "$init_ldcfg" && ldconfig /tmp/ld.so.cache & +} +############################################################################# +# URI interpreter $1 variable to interprete, $2 type of token to return +# prot: tftp, http, nbd, ... server: IP or FQDN +uri_token () { +local var=$1 +local prot +local rest +local server +local path +local port +local tmpval +local query="" +# first check if URI starts with prot:// - URI scheme +if strinstr "://" "$1" ; then + prot=${var%://*} + rest=${var#*://} +else + rest="$var" + prot="" +fi +# remove temporary '::' from path, since it conflicts with port specification +# ticket #232 +if strinstr "::" "$rest" ; then + rest=$(echo $rest | sed -e 's,::,§§§§§,g') +elif strinstr "\:\:" "$rest" ; then + rest=$(echo $rest | sed -e 's,\:\:,§§§§§,g') +fi +# get the server IP or name and port - URI authority +# you get the path or other token without leading "/" - add it later if +# needed (fixme: port might be broken) +if strinstr ":" "$rest" ; then + server="${rest%:*}" + rest="${rest#*:}" + path="${rest#*/}" + port="${rest%/$path}" +else + tmpval=$rest + rest="${rest#*/}" + server="$(echo $tmpval|sed 's,/.*,,')" + path="${tmpval#${server}}" + port="" +fi +# get path and query components - URI path, query +if strinstr "\?" "$rest" ; then + path="${path%\?*}" + query="${rest#*\?}" +fi +# return the requested token +case "$2" in + prot) echo "$prot" ;; + server) echo "$server" ;; + # add '::' again to path, remove duplicate "//" + path) echo "$path" | sed -e 's,§§§§§,\:\:,g;s,//,/,' ;; + port) echo "$port" ;; + query) echo "$query" ;; +esac +} +############################################################################# +# mounter for different file sources +fsmount () { +local proto=$1 +local server=$2 +local srcpath=$3 +local target=$4 +local mntopt=$5 +local transport +testmkd ${target} +case "${proto}" in + *nbd) + # TODO: to be filled in ... + ;; + lbdev) + # we expect the stuff on toplevel directory, filesystem type should be + # autodetected here ... (vmimgserv is blockdev here) + vmbdev=/dev/${server} + waitfor ${vmbdev} 20000 + mount -o ro ${vmbdev} ${target} || error "$scfg_evmlm" nonfatal + ;; + nfs) + # we expect nfs mounts here ... check that nfs module is loaded before + cat /proc/filesystems | grep -q -E "[[:space:]]nfs" || \ + { modprobe ${MODPRV} nfs 2>/dev/null || error "$error_nfsmod" nonfatal; } + for transport in tcp udp fail; do + [ $transport = "fail" ] && { error "$init_nfs" nonfatal; + noimg=yes; break;} + mount -n -t nfs -o ${mntopt},nolock,${transport} \ + ${server}:${srcpath} ${target} && break + done + ;; + smb|cifs) + # cifs mounts might be problematic if accessed with superuser id + mount -n -o ${mntopt},user=guest,guest,file_mode=0755,dir_mode=0755 \ + -t ${proto} //${server}${srcpath} ${target} + #d_mkrlscript entry boot.slx "/opt/openslx/uclib-rootfs/bin/mount -n \ + #-o ${mntopt},guest,user=guest,file_mode=0755,dir_mode=0755 -t ${proto} \ + #//${server}${srcpath} ${target#/mnt}" + ;; +esac +} +############################################################################# +# replace @@@serverip@@@ with real serverip. Allows the usage of a variable +# for the server ip address (e.g. in machine-setup or kernel commandline) +checkip () +{ +if [ "@@@serverip@@@" = "$1" -a -n "$serverip" ] ; then + echo $serverip +else + echo $1 +fi +} +############################################################################# +# replacement for which command to find executables inside stage4 rootfs +binfinder() +{ +local program="$1" +local s4path +local notfound=1 +for s4path in bin sbin usr/bin usr/sbin usr/local/bin \ + usr/local/sbin usr/bin/X11; do + if [ -f "/mnt/$s4path/$program" ] && \ + [ -x "/mnt/$s4path/$program" ]; then + printf '%s\n' "/$s4path/$program" + notfound=0 + break + fi +done +return $notfound +} +############################################################################# +# disk formatter and mounter. some proper error message output should be +# added. It uses programs invoked from stage 4 root filesystem. First +# argument is blockdev or file to be formatted, second mountpoint if not +# /mnt/tmp (default) +diskfm () { +local target=$1 +local mntpnt=$2 +local fs +local path +[ -f /lib/ld-linux.so.2 ] || ln -s /mnt/lib/ld-linux.so.2 /lib/ld-linux.so.2 +for fs in xfs reiserfs ext2 ; do + if strinfile "$fs" /proc/filesystems || modprobe ${MODPRV} $fs ; then + unset $found + for path in /sbin /bin /usr/sbin /usr/bin ; do + if test -x /mnt/$path/mkfs.$fs ; then + found=yes + case mkfs.$fs in + mkfs.xfs) + fopt="-f" + mopt="-o noexec" + ;; + mkfs.ext2) + fopt="-Fq" + mopt="-o nocheck,noexec" + ;; + mkfs.reiserfs) + fopt="-f" + mopt="-o noexec" + ;; + esac + LD_LIBRARY_PATH=/mnt/lib /mnt/$path/mkfs.$fs $fopt $target \ + >/dev/null 2>&1 #|| error + if [ -z $mntpnt ] ; then + umount /mnt/tmp 2>/dev/null + if mount -t $fs -n $mopt $target /mnt/tmp 2>/dev/null; then + return 0 + else + mount -n -t tmpfs none /mnt/tmp + fi + else + testmkd $mntpnt + mount -t $fs -n -o loop $target $mntpnt 2>/dev/null + return 0 + fi + fi + done + [ -z $found ] && continue + else break + fi +done +} + +############################################################################# +# dhcp client function +rundhcp () +{ +local vci="$1" +# ensure the interface is up - might produce conflicts - nbd could fail!! +# fixme: really needed? +# [ -n "$noipyet" ] && ip link set dev $nwif up +[ -f /lib/modules/${KERNEL}/kernel/net/packet/af_packet.ko ] && \ + modprobe ${MODPRV} af_packet +echo "Starting udhcpc for IP configuration" +mkdir /var/lib/dhcp >/dev/null 2>&1 +[ -n $vci ] && vci="-V $vci" +testmkd /usr/share/udhcpc +ln -sf /bin/dhcpmkconfig /usr/share/udhcpc/default.script +# see for options.c file in udhcp subdir of busybox for accepted "-O option" +udhcpc -O nissrv -O nisdomain -t 8 -q $vci \ + -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null +} + +############################################################################# +# function for retrieving configuration file (machine-setup) via tftp from a +# predefined server or given source (file=tftp-server:/path via kernel +# command line) +unpack () { +# $1 is config file name to get, $2 IP of server to get file from +local dst=$1 +if [ -s $dst ] ; then + # fixme: handle different types of packaging (gzip/bzip2)?? + if ! tar -xpzf $dst 2> /tmp/ConfTGZ-tar-error ; then + cat /tmp/ConfTGZ-tar-error + error "$unpack_ConfTGZ" nonfatal + rm /tmp/ConfTGZ-tar-error + fi + [ "$DEBUGLEVEL" -le 2 -o "$DEBUGLEVEL" -eq 8 ] && rm $dst + return 0 +else + return 1 +fi +} + +# tftp wrapper +# usage tftp_get [count] +# count is optional - default is 3 - use -1 for indefinit +tftp_get () { + local file="$1" + local file_server="$2" + local download_successful=0 + local countdown="$3" + + if [ -z "$1" -o -z "$2" ]; then + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[tftp_get] Usage: tftp_get [count]" + return 1; + fi + + [ "$countdown" = "" ] && countdown=3 + + until [ $download_successful -eq 1 ] + do + if [ "$countdown" = "0" ]; then + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[tftp_get] download of \"$file\" from \"$file_server\" ... failed" + return 0; + fi + tftp -g -r $file -l /tmp/$(basename $file) $file_server + [ -s /tmp/$(basename $file) ] && download_successful=1 + countdown=$(expr $countdown - 1) + usleep 200000 + done + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[tftp_get] download of \"$file\" from \"$file_server\" ... successful" + return 0; +} + + +# wget wrapper +# usage wget_get [count] +# count is optional - default is 3 - use -1 for indefinit +wget_get () { + local file="$1" + local file_server="$2" + local download_successful=0 + local countdown="$3" + + if [ -z "$1" -o -z "$2" ]; then + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[wget_get] Usage: wget_get [count]" + return 1; + fi + + [ "$countdown" = "" ] && countdown=3 + + until [ $download_successful -eq 1 ] + do + if [ "$countdown" = "0" ]; then + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[wget_get] download of \"$file\" from \"$file_server\" ... failed" + return 0; + fi + wget -q $file_server$file -O /tmp/$(basename $file) + [ -s /tmp/$(basename $file) ] && download_successful=1 + countdown=$(expr $countdown - 1) + usleep 200000 + done + [ $DEBUGLEVEL -ge 1 ] && \ + echo "[wget_get] download of \"$file\" from \"$file_server\" ... successful" + return 0; +} + + +fileget () { +# normally tftp would be used, alternatively use wget for ftp or http +# if local device file is specified - mount and unmount after copying +local cfgfile +[ "x$fileprot" = "x" ] && fileprot=tftp +if [ "x$filepath" != "x" ] ; then + cfgfile=${filepath} + [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip}) + # wait for dns if "fileserv" is a name and not lbd device + [ "$fileprot" != "lbd" ] && \ + echo ${fileserv} | grep -qi [a-z] && waitfor /tmp/dhcp-done 10000 + [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\ +$filepath, fileserv:$fileserv" >>$LOGFILE + case "$fileprot" in + ftp|http) + wget_get $cfgfile $fileprot://$fileserv \ + && { unpack /tmp/$(basename $cfgfile) && break; } 2>>$LOGFILE + ;; + lbd) + local ldev=$fileserv + echo "Waiting for configuration file ${cfgfile} ...." + [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\ +$filepath, fileserv:$fileserv" >>$LOGFILE + waitfor /mnt/${cfgfile} 10000 + if [ -f /mnt/${cfgfile} ]; then + unpack /mnt/$cfgfile + else + error "$init_errlfg" + fi + ;; + *) + tftp_get $cfgfile $fileserv \ + && unpack /tmp/$(basename $cfgfile) 2>>$LOGFILE + ;; + esac +else + # predefined value for OpenSLX environment; it is expected that this + # directory is just below the tftpboot (path to which the daemon is + # restricted to) + filepath="client-config" + [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip}) + [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\ +$filepath, fileserv:$fileserv" >>$LOGFILE + # try to get configuration files successively; start with distro client + # and try last distro default ... + mac=$(echo $macaddr|sed "s/:/-/g") + for cfgfile in ${filepath}/${SYSTEM_NAME}/01-$mac.tgz \ + ${filepath}/${SYSTEM_NAME}/default.tgz ; do + case "$fileprot" in + ftp|http) + wget $fileprot://$fileserv/$cfgfile -O /tmp/$(basename $cfgfile) \ + 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; } + ;; + tftp) + tftp_get $cfgfile $fileserv \ + 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; } + ;; + esac + done + echo -e "\n## Configuration via fileget from ${fileprot}://${fileserv}/\ +${cfgfile}\n# Hierarchy is distro client and as last distro/default" \ + >>/tmp/confviafile +fi +cat /initramfs/machine-setup >>/tmp/confviafile 2>/dev/null || \ + error "$nomachsetup" +echo "fileget via $fileprot from $fileserv/$cfgfile finished" >/tmp/file-done +[ $DEBUGLEVEL -ge 1 ] && echo "fileget from $cfgfile finished" >>$LOGFILE +} + +############################################################################# +# function for creating directories after testing of their existance avoids +# to recreate directories in union mounts. If second and/or third parameters +# are given check for permission patterns +testmkd () { + test -d $1 || mkdir -p $1 >/dev/null 2>&1 + [ $# -ge 2 ] && for i in "$2" "$3" ; do + echo "$i" | grep -q -E "^[0-9]{3,4}$" && chmod "$i" $1 >/dev/null 2>&1 + echo "$i" | grep -q -E ":." && chown "$i" $1 >/dev/null 2>&1 + done +} + +############################################################################# +# function for writing a syslog-ng.conf file. First parameter is absolute +# destination (incl. /mnt prefix) +# sysngwriter $dest $start_syslog +sysngwriter () { +local mysyslogngcfg=$1 +# logging servers might be specified in $log_servers (from e.g. dhcp) +# fixme!? only first logserver from dhcp variable is used +[ -n "$log_servers" ] && start_syslog="syslog://${log_servers% *}:514/udp" +echo -e "# File written by $0 within InitRamFS\n\ +source src {\n\tfile(\"/proc/kmsg\");\n\ +\tunix-dgram(\"/dev/log\");\n\tinternal();\n};\ndestination console_all {\ +\n\tfile(\"/dev/tty10\");\n};" >$mysyslogngcfg +case "$start_syslog" in + yes|Yes|YES) + echo -e "\nlog {\n\tsource(src);\n\tdestination(console_all);\n};" \ + >>$mysyslogngcfg + ;; + file) + echo -e "destination allmessages {\n\tfile(\"/var/log/allmessages\");\n};\ +\nlog {\n\tsource(src); destination(allmessages);\n};" >>$mysyslogngcfg + ;; + *) + syslogsrv=$(uri_token $start_syslog server) + syslogport=$(uri_token $start_syslog port) + syslogprot=$(uri_token $start_syslog path) + [ -z ${syslogport} ] && syslogport=514 + [ -z ${syslogprot} ] && syslogprot=udp + echo -e "destination loghost {\n\t${syslogprot}(\"${syslogsrv}\" \ +port(${syslogport}));\n};\nlog {\n\tsource(src);\n\tdestination(loghost);\n};"\ + >>$mysyslogngcfg + ;; +esac +} + +############################################################################# +# simple string in string search +strinstr () { + case "$2" in *$1*) return 0;; esac + return 1 +} + +############################################################################# +# simple string in file search, for the future grep should be used instead +strinfile () { + case "$(cat $2)" in *$1*) return 0;; esac + return 1 +} + +############################################################################# +# wait for a file to appear and stop after maxwait counts +waitfor () { +local file=$1 +local maxwait=$2 +local count=0 +[ -z $file ] && return 0 +[ -z $maxwait ] && maxwait=5000 +while [ ! -e $file ] ; do + usleep 1000 + count=$(($count + 1)) + [ $count -gt $maxwait ] && return 1 +done +return 0 +} + +############################################################################# +# ldconfig is needed if rootfilesystem is composed of several parts. Search +# for ldconfig and execute it (we expect ldconfig not to be a dynamically +# linked tool) +# check that /mnt/etc/ld.so.conf is never lost +ldconfig () { +local cachefile="$1" +for ldcfg in /mnt/sbin/ldconfig \ + /mnt/bin/ldconfig \ + /mnt/usr/sbin/ldconfig; do + test -x $ldcfg && { + $ldcfg -r /mnt -C $cachefile; break; } +done +echo "finished at $(sysup)" >/tmp/ldcfg +} + +############################################################################# +# base passwd/shadow, the standard user present in every system. All other +# system users should be generated within the service function +basepasswd () { +# hack (see Ticket #206) +root_pw="$1" +# strip every line with userid between 500 and 99999 from the passwd +# file +sed '/^[a-zA-Z0-9]*:[a-zA-Z0-9]*:[1-9][0-9]\{3,4\}:/d;/^+:*/d;/^+$/d; + /^[a-zA-Z0-9]*:[a-zA-Z0-9]*:[5-9][0-9]\{2\}:/d' /mnt/etc/passwd \ + >/tmp/newpasswd +# and add user nobody again (is there a more elegant way?) +sed -n -e '/nobody/p' /mnt/etc/passwd >>/tmp/newpasswd +# create the shadow from passwd file +echo -e "root:"${root_pw}":12958:0:10000::::" >/mnt/etc/shadow +sed 's/:.*/:!:13078:0:99999:7:::/;/^root.*/d' /tmp/newpasswd \ + >>/mnt/etc/shadow +mv /tmp/newpasswd /mnt/etc/passwd +chmod 0640 /mnt/etc/shadow +} + +############################################################################# +# wait for the completion of configuration file (machine-setup). It is +# composed from different sources +cfgcomplete () { +waitfor /tmp/dhcp-done 10000 || error "$error_errdcfg" nonfatal +waitfor /tmp/file-done 10000 || error "$error_errfcfg" nonfatal +waitfor /tmp/ldap-done 10000 || error "$error_errlcfg" nonfatal +# concatenate the different files now into the central config file, order +# matters - ldap (not implemented yet) data has highest priority +if ! test -f /tmp/cfgcomplete ; then + echo "## Stage3 configuration via initial/early /etc/initramfs-setup" \ + >/etc/ext-initramfs-setup + for config in /etc/initramfs-setup /tmp/confviadhcp /tmp/confviafile \ + /tmp/confvialdap + do test -f $config && cat $config >>/etc/ext-initramfs-setup + done +# check again and replace @@@serverip@@@ and produce a final version for +# stage4 (no much use, just debugging) +sed "s,@@@serverip@@@,$serverip," -i /etc/ext-initramfs-setup +. /etc/ext-initramfs-setup +cp /etc/ext-initramfs-setup /mnt/etc/machine-setup +mv /etc/ext-initramfs-setup /etc/initramfs-setup +echo "config completed" >/tmp/cfgcomplete +fi +} + +############################################################################# +# execute all shell scripts in the given init-hook folder +runinithook () { +local hook=$1 +if [ -d /etc/init-hooks/$hook ]; then + for hook_script in /etc/init-hooks/$hook/*.sh; do + if [ -e $hook_script ]; then + /bin/init-wrapper $hook_script $DEBUGLEVEL + . /tmp/env/wrapper.env + fi + done +fi +} + +############################################################################# +# localization simply derived from $language variable set in machine-setup or +# other sources - mostly taken from knoppix +localization () { +country="$1" +CONSOLE_FONT="lat9w-16.psfu" +case "$country" in + # German version + de*) + COUNTRY="de" + LANG="de_DE.UTF-8" + KEYTABLE="de-latin1-nodeadkeys" + XKEYBOARD="de" + KDEKEYBOARD="de" + CHARSET="utf8" + KDEKEYBOARDS="us,fr" + TZ="Europe/Berlin" + ;; + # Belgian version + be*) + COUNTRY="be" + LANG="C" + KEYTABLE="be2-latin1" + XKEYBOARD="be" + KDEKEYBOARD="be" + CHARSET="iso8859-15" + KDEKEYBOARDS="us,de,fr" + TZ="Europe/Brussels" + ;; + # Bulgarian version + bg*) + COUNTRY="bg" + LANG="bg_BG" + KEYTABLE="bg" + XKEYBOARD="bg" + KDEKEYBOARD="bg" + CHARSET="microsoft-cp1251" + KDEKEYBOARDS="us,de,fr" + TZ="Europe/Sofia" + ;; + # Switzerland (basically de with some modifications) + ch) + LANGUAGE="de" + COUNTRY="ch" + LANG="de_CH" + KEYTABLE="sg-latin1" + XKEYBOARD="de_CH" + KDEKEYBOARD="de_CH" + CHARSET="iso8859-15" + KDEKEYBOARDS="de,us,fr" + TZ="Europe/Zurich" + ;; + # Simplified Chinese + cn) + COUNTRY="cn" + LANG="zh_CN.GB2312" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="us" + CHARSET="gb2312.1980-0" + KDEKEYBOARDS="us,de,fr" + XMODIFIERS="@im=Chinput" + TZ="Asia/Shanghai" + ;; + # Czechoslovakia + cs|cz) + LANGUAGE="cs" + COUNTRY="cs" + LANG="cs_CZ.UTF-8" + KEYTABLE="cz-lat2" + XKEYBOARD="cs" + KDEKEYBOARD="cz" + CHARSET="iso8859-2" + KDEKEYBOARDS="us,de,fr" + TZ="Europe/Prague" + CONSOLE_FONT="iso02g" + ;; + # Denmark + dk|da) + COUNTRY="dk" + LANG="da_DK.UTF-8" + # Workaround: "dk" broken in gettext, use da:da_DK + LANGUAGE="da:da_DK" + KEYTABLE="dk" + XKEYBOARD="dk" + KDEKEYBOARD="dk" + CHARSET="iso8859-15" + KDEKEYBOARDS="dk,de,us,fr" + TZ="Europe/Copenhagen" + ;; + es) + # Spain + COUNTRY="es.UTF-8" + LANG="es_ES" + KEYTABLE="es" + XKEYBOARD="es" + KDEKEYBOARD="es" + CHARSET="iso8859-15" + KDEKEYBOARDS="de,us,fr" + TZ="Europe/Madrid" + ;; + # Finland + fi) + COUNTRY="fi" + LANG="fi_FI.UTF-8" + KEYTABLE="fi" + XKEYBOARD="fi" + KDEKEYBOARD="fi" + CHARSET="iso8859-15" + KDEKEYBOARDS="us" + TZ="Europe/Helsinki" + ;; + # France + fr*) + COUNTRY="fr" + LANG="fr_FR.UTF-8" + KEYTABLE="fr" + XKEYBOARD="fr" + KDEKEYBOARD="fr" + CHARSET="iso8859-15" + KDEKEYBOARDS="de,us" + TZ="Europe/Paris" + ;; + he|il) + # Hebrew version + LANGUAGE="he" + COUNTRY="il" + LANG="he_IL.UTF-8" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="il" + CHARSET="iso8859-8" + KDEKEYBOARDS="us,fr,de" + TZ="Asia/Jerusalem" + ;; + # Ireland + ie) + COUNTRY="ie" + LANG="en_IE.UTF-8" + KEYTABLE="uk" + XKEYBOARD="uk" + KDEKEYBOARD="gb" + CHARSET="iso8859-15" + KDEKEYBOARDS="us,de,es,fr,it" + TZ="Europe/Dublin" + ;; + # Italy + it) + COUNTRY="it" + LANG="it_IT.UTF-8" + KEYTABLE="it" + XKEYBOARD="it" + KDEKEYBOARD="it" + CHARSET="iso8859-15" + KDEKEYBOARDS="fr,us,de" + TZ="Europe/Rome" + ;; + # Japan + ja) + COUNTRY="jp" + LANG="ja_JP.UTF-8" + LANGUAGE="ja" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="us" + CHARSET="iso8859-15" + KDEKEYBOARDS="fr,us,de" + TZ="Asia/Tokyo" + ;; + # The Netherlands + nl) + COUNTRY="nl" + LANG="nl_NL.UTF-8" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="en_US" + CHARSET="iso8859-15" + KDEKEYBOARDS="nl,de,fr" + TZ="Europe/Amsterdam" + ;; + # Poland + pl) + COUNTRY="pl" + LANG="pl_PL.UTF-8" + KEYTABLE="pl" + XKEYBOARD="pl" + KDEKEYBOARD="pl" + CHARSET="iso8859-2" + KDEKEYBOARDS="de,us,fr" + TZ="Europe/Warsaw" + CONSOLE_FONT="iso02g" + ;; + # Russia + ru) + COUNTRY="ru" + LANG="ru_RU.UTF-8" + KEYTABLE="ru" + XKEYBOARD="ru" + KDEKEYBOARD="ru" + CHARSET="koi8-r" + CONSOLE_FONT="Cyr_a8x16" + KDEKEYBOARDS="de,us,fr" + TZ="Europe/Moscow" + ;; + # Slovakia + sk) + COUNTRY="sk" + LANG="sk_SK.UTF-8" + KEYTABLE="sk-qwerty" + XKEYBOARD="sk" + KDEKEYBOARD="sk" + CHARSET="iso8859-2" + KDEKEYBOARDS="us,de" + TZ="Europe/Bratislava" + CONSOLE_FONT="iso02g" + ;; + # Slovenia + sl) + LANGUAGE="sl" + COUNTRY="si" + LANG="sl_SI.UTF-8" + KEYTABLE="slovene" + XKEYBOARD="sl" + KDEKEYBOARD="si" + CHARSET="iso8859-2" + KDEKEYBOARDS="us,de" + TZ="Europe/Ljubljana" + CONSOLE_FONT="iso02g" + ;; + tr) +# Turkish version (guessed) + COUNTRY="tr" + LANG="tr_TR.UTF-8" + KEYTABLE="tr_q-latin5" + XKEYBOARD="tr" + KDEKEYBOARD="tr" + CHARSET="iso8859-9" + KDEKEYBOARDS="us,de,fr" + TZ="Europe/Istanbul" + ;; + # Taiwan - Traditional Chinese version + tw) + COUNTRY="tw" + LANG="zh_TW.UTF-8" + LANGUAGE="zh_TW.Big5" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="us" + CHARSET="iso8859-1" + KDEKEYBOARDS="us" + XMODIFIERS="@im=xcin" + TZ="Asia/Taipei" + ;; + # Great Britian + uk) + COUNTRY="uk" + LANG="en_GB.UTF-8" + LANGUAGE="en" + KEYTABLE="uk" + XKEYBOARD="uk" + KDEKEYBOARD="gb" + CHARSET="iso8859-1" + KDEKEYBOARDS="us" + TZ="Europe/London" + ;; + # US and default configuration + *) + LANGUAGE="us" + COUNTRY="us" + LANG="C" + KEYTABLE="us" + XKEYBOARD="us" + KDEKEYBOARD="us" + CHARSET="iso8859-1" + KDEKEYBOARDS="de,fr" + TZ="America/New_York" + ;; +esac +} + +############################################################################# +# This function gets an uri or a comma separated list of uris as parameter. +# It will then try to mount these uris and add them to the union at / +include_in_fsroot_union () { + union_id=0 # used to have guarantee differing names for the unions mount point + union_type=$1 + for ROOTFS in $(echo $2 |sed 's/,/ /g'); do + union_id=$(($union_id + 1)) + srvproto=$(uri_token $ROOTFS prot) + case $srvproto in + nfs) + # activate kernel nfs if not present, nfsroot consists now of two + # different parts + root_path=$(uri_token $ROOTFS path) + nfsserver=$(uri_token $ROOTFS server) + mkdir -p /mnt/tmp/${root_path}_${union_id} + for proto in tcp udp fail; do + [ $proto = "fail" ] && { error "$scfg_nfs"; break; } + mount -n -t nfs -o ro,nolock,$proto $nfsserver:$root_path \ + /mnt/tmp/${root_path}_${union_id} && break + done + ;; + *nbd) + echo "Not working yet" + nbdmod=$srvproto + # get settings for nbd-client, filesystem equals to path in URI + # notation + nbdhost=$(uri_token $ROOTFS server) + nbdport=$(uri_token $ROOTFS port) + nbdrfst=$(uri_token $ROOTFS path) + echo -e "(D)NBD $ROOTFS parsed to $srvproto - $nbdhost - \ + $nbdport - $nbdrfst" >> /tmp/testlog + #FIXME: do mount + ;; + aoe) + echo "Not implemented yet" + ;; + iscsi) + echo "Not implemented yet" + #iscsiserver=$(uri_token $ROOTFS server) + #iscsiport=$(uri_token $ROOTFS port) + #iscsitarget=$(uri_token $ROOTFS path) + ;; + esac + if [ "X$union_type" == "XUnionFS" ]; then + [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && \ + echo "Using unionctl to mount ${root_path}_${union_id} (type: \ + $union_type)" + unionctl /mnt/ --add --after 1 --mode ro /mnt/tmp/${root_path}_${union_id} + elif [ "X$union_type" == "XAUFS" ]; then + # unionctl for aufs is a sh script needing tools not included in our + # initramfs + [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && \ + echo "Using aufs-mount to mount ${root_path}_${union_id} (type: $union_type)" + mount -n -o remount,add:1:/mnt/tmp/${root_path}_${union_id}=ro none /mnt + else + error ${init_loadunions} nonfatal + fi + done +} + +############################################################################# +# dummy functions - avoid undefined functions in servconfig (functions are +# normally overwritten by settings within distro-functions) - a file +# generated by mkdxsinitrd from /functions-default & ~-version + +# setup initial boot scripts (for most standard distributions, gentoo is to +# be handled differently) +initial_boot () { +: +} +# function for udev configuration +config_udev () { +: +} +# function for ntp configuration +config_ntp () { +: +} +# function for afs +config_afs () { +: +} +# function for atd +config_atd () { +: +} +# function for configuration of cron services +config_cron () { +: +} +# syslog service +config_syslog () { +: +} +# secure shell service +config_sshd () { +: +} +# snmp agent for remote monitoring +config_snmp () { +: +} +# consolefont +consolefont () { +: +} +# acpi and powersave +config_acpi () { +: +} +# configure hal, dbus, resmgr and services like that +config_dreshal () { +: +} +# configure automounter, simple NFSv3 imports only +config_automount () { +: +} +# configure print services / start requested printer daemon +config_printer () { +: +} +# configure bluetooth services +config_bt () { +: +} +# create a compliant runlevel script, needed for boot.slx +d_mkrlscript () { +: +} +# start name service caching daemon +config_nscd () { +: +} +# configure automounter +config_automount () { +: +} +# configure samba service (not winbind, but nmbd, smbd) +config_samba () { +: +} +# start portmapper (needed at least for nfs and nis services) +config_portmap () { +: +} +# start nis/ypbind +config_nis () { +: +} +# configure nfsv4 stuff +config_nfsv4 () { +: +} +# configure keyboard layout +keytable () { +: +} +# set up localization like keytable, console +dlocale () { +: +} diff --git a/src/initramfs/stage3-stuff/etc/ldap-functions b/src/initramfs/stage3-stuff/etc/ldap-functions new file mode 100644 index 00000000..d2b6753e --- /dev/null +++ b/src/initramfs/stage3-stuff/etc/ldap-functions @@ -0,0 +1,75 @@ +####################################################################### +# configuration via ldap +# get_timeranges: helper function for ldapconf, retrieving timeranges +# of machineconfig-objects under search base $1 (Host,Group,Default) +get_timeranges(){ +trquery=`ldapsearch -x -H ldap://$ldapserver -b $1 -D $user -w $pwd -LLL \ +"(objectclass=machineconfig)" Timerange|sed -n '/Tim*/p'|sed 's/TimeRange: /#/'` +} +# matching_timerange: helper function for ldapconf to get "most +# specific timerange" matching actual time +matching_timerange(){ +match=0 +lines=$[`echo $trquery | sed 's/#/\n#/g'|wc -l` -1] +for ((i=0;i<$lines;i++)) ; do + timerange[$i]=`echo $trquery | cut -d "#" -f $[$i+2] | sed 's/ //g'` +done +while true ; do + for ((i=0;i<$lines;i++)) ; do + trday=`echo ${timerange[i]} | cut -d "_" -f 1` + trbegin=`echo ${timerange[i]} | cut -d "_" -f 2` + trend=`echo ${timerange[i]} | cut -d "_" -f 3` + if [ $trday == $wday ] && [ $trday != "X" ] && [ $trbegin != "X" ] && \ + [ $trbegin -le $time ] && [ $time -le $trend ]; then + echo $wday $time "[D H H]match ->" ${timerange[i]} + tr=${timerange[i]} + match=1 && break + fi + done + if [ $match == 1 ] ; then break ; fi + for ((i=0;i<$lines;i++)) ; do + trday=`echo ${timerange[i]} | cut -d "_" -f 1` + trbegin=`echo ${timerange[i]} | cut -d "_" -f 2` + trend=`echo ${timerange[i]} | cut -d "_" -f 3` + if [ $trday == $wday ] && [ $trbegin == "X" ] && [ $trend == "X" ]; then + echo $wday $time "[D _ _]match ->" ${timerange[i]} + tr=${timerange[i]} + match=1 && break + fi + done + if [ $match == 1 ] ; then break ; fi + for ((i=0;i<$lines;i++)) ; do + trday=`echo ${timerange[i]} | cut -d "_" -f 1` + trbegin=`echo ${timerange[i]} | cut -d "_" -f 2` + trend=`echo ${timerange[i]} | cut -d "_" -f 3` + if [ $trday == "X" ] && [ $trbegin != "X" ] && [ $trbegin -le $time ] && \ + [ $time -le $trend ]; then + echo $wday $time "[_ H H]match ->" ${timerange[i]} + tr=${timerange[i]} + match=1 && break + else + if [ ${timerange[$i]} == "X_X_X" ]; then + echo $wday $time "[_ _ _]match ->" ${timerange[i]} + tr="X_X_X" && match=1 + else + match=0 + fi + fi + done + if [ $match == 1 ] || [ $match == 0 ] ; then break ; fi +done +} +# get_machineconfig: helper function for ldapconf, writing machine +# config data of one timerange $tr into file "tmp/confvialdap/$tr" +get_machineconfig(){ +ldapsearch -x -H ldap://$ldapserver -b $1 -D $user -w $pwd -LLL \ +"(&(objectclass=machineconfig)(timerange=$tr))"|sed '/dn:/d'|sed '/ou=/d'|\ +sed '/dc=/d'|sed '/objectC*/d'|sed '/Tim*/d'|sed '/cn:/d'|sed '/desc*/d'|sed \ +'s/: /=/g'|sed 's/-/_/g' > tmp/confvialdap/$tr +} + +ldapconf () { +local ldapserver=$1 +error "$error_ldapcfg" +echo "not implemented" > /tmp/ldap-done +} diff --git a/src/initramfs/stage3-stuff/etc/messages b/src/initramfs/stage3-stuff/etc/messages new file mode 100644 index 00000000..ca66245d --- /dev/null +++ b/src/initramfs/stage3-stuff/etc/messages @@ -0,0 +1,204 @@ +# Copyright (c) 2003 - 2006 - RZ Uni Freiburg +# Copyright (c) 2006 - 2009 - 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 +# +# Messages file for all error and info messages generated during client +# bootup (within initialramfs) for OpenSLX linux diskless clients version 5. +# Fhis file contains the standard set of error messages. + +# messages from (slx) init +init_errmsg="The functions file contains a lot of slx scripts \ +functionality. Without this\ninit script will not run." +init_mff="The main $init_errmsg" +init_dff="The distro $init_errmsg" +init_sscf="The slx configuration variables could not be found. Please +provide the slxconfig file." +init_noeth=" Unable to configure the ethernet device (eth0). Please check \ +for an\n appropriate kernel module." +init_errip=" Unable to setup at \ +least basic functionality, because no IP configuration\n available. You \ +might pass that information via kernel command line\n through setting of \ +'ipappend 1' in pxelinux.cfg/* or just enable dhcp\n or ldap. They are \ +enabled via tokens ('ldap' or 'dhcp') in kernel\n command line." +init_errldap=" Unable to setup at \ +least basic functionality, because no IP configuration\n available. Please \ +beware - ldap works only in combination of either\n ipappend or similar or \ +with dhcp!" +init_errnwad=" Failed to load the network adaptor modules added via \ +slxconfig-demuxer\n run. Please reconfigure the module list and add the \ +appropriate modules\n without *.ko suffix." +init_bootmac=" If you have more than one ethernet adaptor present in your \ +machine or using\n a NVidia chipset then it would be advisable to switch on \ +passing of the\n boot MAC address via kernel commandline (IPAPPEND=3) in \ +your PXElinux\n configuration." +init_nveth=" Your system uses a NVidia ethernet chip which might to fail to \ +get the\n original MAC address assigned. Use IPAPPEND=3 in your PXElinux \ +configuration\n to get the boot MAC address passed on." +init_errdhcp=" Did not get complete IP \ +configuration via DHCP. You may want to add\n a vendor code identifier \ +via kernel commandline (vci=VCI)." +init_erripcfg=" Up to now no IP configuration is available. If there is any \ +local file config\n the system may work locally." +init_errbld=" Failed to load \ +module ${NBD}.ko. It is needed if you intend to use\n network block \ +device (D)NBD for the client as root filesystem." +init_nbdcl=" Failed to start the network block device client. Unable to \ +mount root\n filesystem." +init_nbddev=" For some reason the network block device /dev/${NBD}0 never \ +appeared.\n You might want to check udev or your list of static device \ +files." +init_dnbd2s=" After 100 retries, it was not possible to start the dnbd2 \ +service. Please\n check that at least one server is available. You might \ +use the\n /sys/block/vnbd0 interface for this." +init_moddir=" The requested modules or firmware directory does not exist. \ +That could mean:\n\ + * The kernel was updated but the demuxer was not run afterwards.\n\ + * The mounted filesystem does not contain the modules directory at all.\n\ + You might want to check the list of mounted filesystems and if /mnt is\n\ + not empty run 'ls /mnt/lib/modules; ls /mnt/lib/firmware' to check." +init_loadaufs=" Loading of AUFS and/or UnionFS failed - Either the module(s) \ +are not\n present or do not match the running kernel. If you do not want to \ +see\n this message add the token(s) 'noaufs'/'nounionfs' to your kernel \ +command\n line or remove the modules from your kernel module directory." +init_loadunions=" Stacking of directories failed, because UnionFS/AUFS is not \ +loaded." +init_deselau=" You switched off AUFS and UnionFS via kernel commandline, thus \ +no module\n was loaded, using traditional bind mounts." +init_loadcow=" Loading of Copy On Write (COW - special block device) module \ +failed -\n Either module is not present or module does not match the \ +running\n kernel. If you do not want to see this message remove the token \ +'cowloop' from kernel command line." +init_cownobld=" Loading of cow module is of no sense if no network/other block \ +device is used or\n UnionFS/AUFS was specified as read write layer too. Remove \ +UnionFS/AUFS token from\n kernel commandline if cowloop should be used instead." +init_nfs=" Mount of root filesystem via NFS was requested via kernel command \ +line\n but failed. There might be the following reasons for that:\n \ +* No nfs.ko module could be loaded and no NFS support was present in the\n \ +running kernel - see error messages above\n \ +* You tried to mount from wrong server or path ($nfsroot)\n \ +* No NFS server is running or you do not have permissions" +init_ldcfg=" Starting ldconfig - normally switched off. Enable it via kernel \ +cmdline option\n 'noldsc'. You might have/want to add additional library \ +pathes to the\n ld.so.conf file." +init_errlog=" Unable to create the logfile configuration in \ +/etc/${D_SYSCONFDIR}. That\n might indicate some severe error." +init_fstab=" Failed to create /etc/fstab in the clients root filesystem. The\n\ + noexistence of the file might produce some unexpected behaviour of\n\ + mount commands." +init_errldcfg=" For some reason the generation of ld.so.cache did not \ +finish in time." +init_infldcfg=" You decided not to recreate \ +/etc/ld.so.cache file. That might cause errors\n if libraries are installed \ +after this file was created on server." +init_errlfg=" The ConfTGZ filesource was some local device which was not \ +mounted successfully.\n Either the wrong device was given or the filesystem \ +is not known to the kernel." +init_errloop=" The loopback mounting of the rootfs container failed. Either \ +the file is\n not available, unreadable or problems with the filesystem \ +modules." +init_errcfg="of this client did not finish in\n time. You might check the \ +process list and list the modules loaded until\n now." +init_errhw=" For some reason the hardware autoconfig $init_errcfg" +init_errxorg=" For some reason no xorg.conf appeared, check xconfig!" +init_errsw=" For some reason the software configuration $init_errcfg" +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_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." +init_runinit=" Could not execute run-init due to missing command or wrong\n \ +parameters given." +init_picfg=" The plugin configuration directory is missing. This could be due \ +to failed\n config get process at the beginning of stage3 setup. Either \ +requested\n configuration file is missing in ~/client-config/ or a \ +general\n transmission error." + +# messages from functions +error_msg="An error occured during execution of $0 script:\n\n" +error_nfe="\n -> This error is not fatal - continuing ...\n" +error_shell="\n -> Running shell for debugging purposes now ...\n" +error_modload="Failed to load module " +error_modnfs="needed for mounting rootfs" +error_nodhcp=" You tried to configure system via dhcp, but no usable dhcp\n\ + client could be found. Please check that you have some client from\n\ + the following list installed: dhclient dhcpcd pump ipconfig." +error_dhcp=" The following problems could produce that error:\n\ + * The af_packet.ko module is either not loaded nor present in kernel.\n\ + * No network device is present - either no module matching the hardware\n\ + was loaded nor present in kernel.\n You might want to run 'lsmod'." +error_dhclient=" Fatal error occured while trying to run dhclient.\n\ +$error_dhcp" +error_ldapcfg=" The configuration via ldap is not implemented yet." +error_errdcfg=" Did not get any configuration data via dhcp until now ..." +error_errfcfg=" Did not get any configuration data via tftp until now ..." +error_errlcfg=" Did not get any configuration data via ldap until now ..." +unpack_ConfTGZ=" Error during unpacking of the ConfTGZ archive.\nAre you sure \ +it is in proper format?" +nomachsetup=" No machine-setup file found. You might not have gotten any \ +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\ +so requesting the start of service make no sense. Please\n disable service\ +or install the files/packages needed." +df_errcron=" The cron start script $df_errserv" +df_errsysl=" The syslog start script $df_errserv" +df_errsshd=" The sshd start script $df_errserv" +df_erryp=" The NIS client $df_errserv" +df_errpmap=" The portmapper $df_errserv" +df_erramnt=" Automounter $df_errserv" +df_errnsc=" Name Service caching deamon $df_errserv\n This service might \ +be useful to take load from a ldap user directory." +df_errafsd=" No afs directory present." +df_errafsn=" AFS client service is not available." +df_errkbd=" No non-english keyboard and console settings are installed. \ +Please add\n them to your stage1 to have them enabled." + +# messages from servconfig +scfg_nfs=" Mount of some NFS source failed ..." +scfg_rdate=" Your configured ntpserver does not offer time configuration \ +on port 37." +scfg_ntptz=" No such timezone data file (needed for ntp time service \ +configuration)." +scfg_evmlm=" Mounting of local device source for vmware directory failed \ +for some reason." +scfg_vmdir=" For some reason the runvmware script is not available for \ +copying. That\n could be the result of failed mount or simply missing \ +file on\n server." +scfg_vmchs=" The virtual machines lister/chooser is not available from \ +~/templates\n directory. Thus no default k/gdm menu entry is created." +scfg_erradir=" Only one directory level is allowed to hook up automounter \ +to and the\n directory should exist (on the servers export) or should be \ +creatable\n (e.g. because of UnionFS writeable root directory)." +scfg_country=" No configuration for localization found in config file. \ +Using default\n country setting '${D_DEFAULTCOUNTRY}' defined in $0." + +# messages from hwautocfg +hcfg_hwsetup=" The X server configuration file generated by hwautocfg could \ +not\n be found." +gfx_msg="Please check your graphic adaptor settings ($hw_graphic)." +hw_msg=" Please check your predefined monitor settings ($hw_monitor): \ +Automatic\n configuration of display" +hcfg_res=" $hwmsg resolution was attempted but not established. Using \ +default resolutions (defined in xconfig)" +hcfg_hwsetup=" Expected information from hwsetup to appear in \ +/tmp/hwsetup.info.\n Unable to configure parts of the systems hardware. \ +Please check that\n hwsetup is properly installed and executable." +hcfg_keyb=" No settings found for keyboard, using default of '${XKEYBOARD}' \ +defined\n in $0." + diff --git a/src/initramfs/stage3-stuff/etc/messages.de b/src/initramfs/stage3-stuff/etc/messages.de new file mode 100644 index 00000000..487332d7 --- /dev/null +++ b/src/initramfs/stage3-stuff/etc/messages.de @@ -0,0 +1,215 @@ +# 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 at http://openslx.org +# +# Messages file for all error and info messages generated during client +# bootup (within initialramfs) for OpenSLX linux diskless clients version 5 +# this file could be used for localization of error messages. + +# messages from (slx) init / Fehlermeldungen des SLX init +init_errmsg=" ,,functions''-Datei beinhaltet viele Funktionen \ +der SLX Skripte. Ohne diese\n wird das Init-Skript nicht funktionieren." +init_mff=" Die Haupt $init_errmsg" +init_dff=" Die Distro $init_errmsg" +init_sscf=" Die SLX Konfigurations-Variablen wurden nicht gefunden. +Bitte stellen Sie die\n SLX Konfigurations-Datei zur Verfuegung." +init_noeth=" Konnte die Netzwerk-Schnittstelle nicht konfigurieren (eth0).\ + Bitte pruefen,\n ob das geeignete kernel-Modul vorhanden ist." +init_errip=" Konnte die Grund-Funktionalitaet nicht einrichten, \ +da keine IP-Konfigurationen\n vorhanden sind. Sie koennten diese \ +Informationen ueber die Kernel-Command-Line\n durch die Einstellung \ +'ipappend 1' in pxelinux.cfg/* oder ldap\n aktivieren. Sie werden durch \ +Token ('ldap') in den Kernel Start Optionen\n eingeschaltet." +init_errldap=" Konnte nicht wenigstens die Grund-Funktionalitaet einrichten, \ +da keine IP-Konfigurationen\n vorhanden sind. Achtung - ldap arbeitet nur in \ +Kombination mit IPAPPEND (PXE)\n o.ae. oder DHCP!" +init_errnwad=" Konnte die Netzwerk-Adapter, die durch den slx/mkramfs bzw. \ +mkdxsinitrd-Aufruf definiert\n wurden, nicht laden. Bitte erneut aufrufen \ +und die passenden Module auflisten\n (ohne Endung .ko)." +init_bootmac=" Es scheint mehr als eine Ethernet-Karte installiert und die \ +passenden\n Kernel-Module geladen zu sein. Das kann fuer Probleme sorgen, da \ +evtl.\n die nicht verbundene Netzwerkkarte als das erste Interface konfiguriert\ + \n wurde. Durch die Uebergabe der MAC Adresse des Bootdevices (IPAPPEND=3 in +der PXElinux-Konfiguration) laesst sich dieses vermeiden." +init_nveth=" Ihr System benutzt anscheinend eine NVidia-Netzwerkkarte. Hier \ +kann es\n vorkommen, dass die MAC-Adresse nicht korrekt eingestellt wird. \ +Dieses laesst\n sich durch die Uebergabe der MAC Adresse des Bootdevices \ +(IPAPPEND=3 in der PXElinux-Konfiguration) vermeiden." +init_errdhcp=" Keine komplette IP-Konfiguration ueber DHCP bekommen. \ +Eventuell sollten Sie\n ueber die Kernel Start Optionen eine Hersteller Code \ +ID (vendor code identifier)\n (VCI=vci) hinzufuegen." +init_erripcfg=" Bis zu diesem Zeitpunkt konnte keine (gueltige) IP.\ +Konfiguration beschafft\n werden. Die Maschine kann funktionieren, wenn \ +lokale Konfiguration per\n Datei moeglich ist." +init_errbld=" Konnte nicht das Modul ${NBD}.ko laden. Es wird gebraucht, \ +wenn Sie vorhaben, das\n Netzwerk Block Geraet (network block device) (D)NBD \ +fuer den Klienten als Wurzel-Dateisystem zu verwenden." +init_nbdcl=" Konnte den Network Block Geraete-Dienst nicht starten und damit \ +das Wurzel-Dateisystem\n nicht einhaengen." +init_nbddev=" Aus irgendeinem Grund ist /dev/${NBD}0 nie erschienen. Sie \ +sollten ihr udev-System\n nach Listen von statischen Geraeten untersuchen." +init_dnbd2s=" Nach 100 Versuchen konnte das dnbd2 Blockdevice keinen laufenden \ +Server finden.\n Bitte ueberpruefen Sie die Erreichbarkeit." +init_moddir=" Das angeforderte Modul- bzw. Firmware-Verzeichnis existiert \ +nicht. Das\n koennte bedeuten:\n\ + * Der Kernel wurde ausgetauscht/erneuert ohne einen neuen Aufruf \ +von slxmkramfs oder\n mkdxsinitrd.\n * Das eingehaengte Dateisystem \ +beinhaltet das Modul-Verzeichnis ueberhaupt nicht.\n Sie sollten die Liste \ +der eingehaengten Dateisysteme pruefen und wenn /mnt\n nicht leer ist, \ +'ls /mnt/lib/modules' ausfuehren." +init_loadunions=" Stapeln mehrerer Verzeichnisse nicht moeglich, da kein \ +UnionFS/AUFS\n Modul geladen ist." +init_loadaufs=" Laden von AUFS/UnionFS schlug fehl - entweder das Modul ist \ +nicht vorhanden, oder\n es passt nicht zum laufenden Kernel. Wenn Sie diese \ +Meldung nicht sehen\n wollen, fügen Sie das Token 'noaufs'/'nounionfs' den \ +Kernel Start\n Optionen hinzu oder loeschen Sie die Module." +init_deselau=" Sie haben AUFS und UnionFS mittels Kernel-Commandline \ +ausgeschaltet, deshalb\n wurde kein entsprechendes Kernel-Modul geladen." +init_loadcow=" Laden von Copy On Write (COW - Spezielles Block Geraet) Modul \ +schlug fehl -\n entweder das Modul nicht praesent oder es passt nicht zum \ +laufenden\n Kernel. Wenn Sie diese Meldung nicht sehen wollen, entfernen sie \ +das Token 'cowloop' aus den Kernel Start Optionen." +init_loadufs=" Laden von UnionFS schlug fehl - entweder das Modul ist \ +nicht vorhanden, oder\n es passt nicht zum laufenden Kernel. Wenn Sie diese \ +Meldung nicht mehr sehen\n wollen, entfernen Sie das Token 'unionfs' von den \ +Kernel Start Optionen." +init_cownonbd=" Laden des COW-Moduls ist sinnlos, wenn kein Netzwerk Block \ +Geraet benutzt wird oder\n UnionFS als Lese- Schreib-Schicht spezifiziert \ +wurde. Entfernen Sie das UnionFS Token aus\n den Kernel-Start-Optionen wenn \ +'cowloop' stattdessen verwendet werden soll." +init_nfs=" Einhaengen des Wurzel Dateisystems ueber NFS wurde angefordert \ +durch die Kernel Start Optionen,\n aber schlug fehl. Die folgenden Gruende \ +koennten verantwortlich sein:\n\ + * Kein nfs.ko (und weitere dafuer benoetigte) Modul konnte geladen werden und \ +keine NFS Unterstuetzung war im\n laufenden Kernel vorhanden - siehe \ +Fehlermeldungen darueber.\n\ + * Sie versuchten, einen falschen Pfad einzuhaengen ($nfsroot).\n\ + * Kein NFS-Server laeuft oder Sie haben nicht die Zugriffsberechtigungen auf \ +diesen." +init_ldcfg=" Starte ldconfig - normalerweise ausgeschaltet. Wird mit der Kernel \ +Start Option\n 'noldsc' aktiviert. Eventuell sollten Sie zusaetzliche \ +Bibliothekspfade\n zur ld.so.conf hinzufuegen." +init_errlog=" Konnte die Log-Datei Konfiguration nicht anlegen in \ +/etc/${D_SYSCONFDIR}. Das\n koennte auf schwerwiegende Fehler hindeuten." +init_fstab="Das Erzeugen von /etc/fstab im Wurzel-Dateisystem des Clients \ +schlug fehl.\n Die Abwesenheit dieser Datei koennte unvorhergesehenes Verhalten \ +der mount-Befehle\n verursachen." +init_errldcfg=" Aus irgendeinem Grund konnte die Erstellung von ld.so.cache \ +nicht rechtzeitig fertiggestellt\n werden." +init_infldcfg=" Sie entschieden sich, die Datei /etc/ld.so.cache nicht neu \ +zu erstellen. Das koennte Fehler verursachen\n wenn Bibliotheken installiert \ +werden nachdem diese Datei auf dem Server erstellt wurde." +init_errlfg=" Die ConfTGZ Quelle war ein lokales Device, welches nicht korrekt \ +eingebunden werden\n konnte. Entweder wurde das falsche Device/Partition \ +angegeben oder das\n Dateisystem ist dem Kernel nicht bekannt." +init_errloop=" Der Loopback-Mounting des Rootfilesystem-Containers schlug \ +fehl. Entweder\n die Datei existiert nicht, ist unlesbar oder es gibt \ +Probleme mit\n den Filesystem-Modulen." +init_errcfg="des Clients nicht rechtzeitig beendet\n Sie sollten die Prozess \ +Liste pruefen und die Module, die bis zum jetzigen Zeitpunkt geladen wurden." +init_errhw=" Aus irgendeinem Grund wurde die Hardware Auto-Konfiguration \ +$init_errcfg" +init_errsw=" Aus irgendeinem Grund wurde die Software Konfiguration $init_errcfg" +init_wait=" Wartete $i Zeiteinheiten das Kernel-Modul- bzw. Firmware-Verzeichnis \ +auszuhaengen ..." +init_errumnt=" Das Kernel Modul Verzeichnis auszuhaengen \ +scheiterte aus irgendeinem Grund. Sind einige\n ,,modprobe'' noch aktiv!?" +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." +init_runinit=" Konnte switch_root/run-init nicht ausfuehren, wegen fehlender \ +Befehle\n oder falsch angegebenen Parametern." +init_picfg=" Das Plugin-Konfigurationsverzeichnis fehlt. Dieses könnte an einem \ +fehlgeschlagenen\n holen der Client-Konfiguration liegen, weil entweder die \ +Datei nicht auf\n dem Server verfuegbar ist oder der Transport nicht klappte." + +# messages from functions +error_msg="Ein Fehler trat auf waehrend der Ausfuehrung des $0 Skripts:\n\n" +error_nfe="\n -> Dieser Fehler ist nicht schwerwiegend - setze fort ...\n" +error_shell="\n -> Fuehre Shell aus zum Debuggen ...\n" +error_modload="Es schlug fehl, folgendes Modul zu laden:" +error_modnfs="gebraucht zum einhaengen des Wurzel Dateisystems" +error_nodhcp=" Sie versuchten ihr System mittels DHCP einzurichten, es wurde \ +aber kein brauchbarer DHCP\n Client gefunden. Bitte pruefen Sie, ob sie einen \ +der folgenden Clients\n installiert haben: dhclient dhcpcd pump udhcpc." +error_dhcp=" Die folgenden Probleme koennten den Fehler verursachen:\n\ + * Das af_packet.ko Modul ist weder geladen noch praesent im Kernel.\n\ + * Kein Netzwerk Geraet ist praesent - weder ein passendes Modul\n\ + wurde geladen noch ist praesent im laufenden Kernel.\n Sie sollten \ +'lsmod' ausfuehren." +error_dhclient=" Schwerer Fehler aufgetreten beim Aufrufen von dhclient.\n\ +$error_dhcp" +error_ldapcfg=" Die Konfiguration via ldap ist noch nicht implementiert." +error_errdcfg=" Bis jetzt noch keine Konfigurationsdaten bekommen via dhcp .." +error_errfcfg=" Bis jetzt noch keine Konfigurationsdaten bekommen via tftp ..." +error_errlcfg=" Bis jetzt noch keine Konfigurationsdaten bekommen via ldap ..." +unpack_ConfTGZ=" Fehler beim entpacken des ConfTGZ.\nSind Sie sicher, dass es im \ +richtigen Format ist?" +nomachsetup=" Die Datei machine-setup nicht gefunden. Es koennte sein, dass das \ +Konfigurations-\n paket nicht erfolgreich vom Server beschafft wurde. Das \ +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 \ +verfuegbar.\n Deswegen macht der Start des Dienstes keinen Sinn. Bitte \ +deaktivieren Sie den Start\n oder installieren Sie die benoetigten Dateien." +df_errcron=" Das cron Start-Skript $df_errserv" +df_errsysl=" Das syslog Start-Skript $df_errserv" +df_errsshd=" Das sshd Start-Skript $df_errserv" +df_erryp=" Der NIS-Klient $df_errserv" +df_errpmap=" Der Portmapper $df_errserv" +df_erramnt=" Der Automounter $df_errserv" +df_errnsc=" Der Name Service Zwischenspeicherungs Daemon $df_errserv\n \ +Dieser Dienst koennte nuetzlich sein, um Daten von einem ldap Benutzer-\ +Verzeichnis zu bekommen." +df_errafsd=" Kein AFS Verzeichnis erreichbar" +df_errafsn=" Der AFS-Client Dienst ist nicht verfuegbar" +df_errkbd=" Keine nicht-englische Tastatur und/oder Konsolenunterstuetzung \ +installiert.\n Falls gewuenscht/benoetigt diese im Stage1 nachinstallieren!" + +# messages from servconfig +scfg_nfs=" Das Einhaengen einer NFS Quelle schlug fehl..." +scfg_ntptz=" Die Zeitzonen-Datei wurde nicht gefunden (gebraucht fuer die \ +NTP-Zeit Dienst Konfiguration)." +scfg_evmlm=" Das Einbinden der lokalen Festplatte(npartition) des VMware-\ +Image-Verzeichnisses\n schlug fehl." +scfg_vmdir=" Aus irgendeinem Grund kann das runvmware Skript nicht \ +verfuegbar zu kopieren.\n Das koennte das Ergebnis eines fehlgeschlagenen \ +Mount-Versuchs sein\n oder die Datei fehlt auf dem Server." +scfg_vmchs=" Das Auswahltool/menu fuer Virtuelle Machinen ist nicht im \ +~/templates\n Verzeichnis vorhanden. Deshalb wurde kein Default KDM Menu \ +Eintrag erzeugt." +scfg_erradir=" Es wird nur eine Verzeichnis-Ebene erlaubt, den Automounter \ +zu installieren und das\n Verzeichnis sollte existieren (auf dem \ +Server-Export) oder sollte anlegbar sein\n (z.B. durch UnionFS beschreibbares \ +Wurzel-Verzeichnis)." +scfg_country=" Keine Konfiguration fuer die Lokalisierung gefunden in der \ +Konfigurations-Datei. Benutzer\n Standard Laender-Einstellung \ +'${D_DEFAULTCOUNTRY}' definiert in $0." + +# messages from hwautocfg +hcfg_hwsetup=" Die xserver-Konfigurations-Datei, erstellt von hwsetup, konnte \ +nicht\n gefunden werden." +gfx_msg="Bitte pruefen Sie ihre Grafik-Adapter-Einstellungen ($hw_graphic)." +hw_msg=" Bitte pruefen Sie ihre vordefinierten Monitor-Einstellungen ($hw_monitor): \ +Automatische\n Konfiguration des Bildschirms." +hcfg_res=" $hwmsg Aufloesung wurde versucht aber nicht eingerichtet. Benutze \ +Standard-Aufloesungen (defined in xconfig)" +hcfg_hwsetup=" Erwartete Informationen von hwsetup in \ +/tmp/hwsetup.info.\n Teile des Systems koennen nicht eingerichtet werden. \ +Bitte pruefen, dass\n hwsetup richtig installiert und ausfuehrbar ist." +hcfg_keyb=" Keine Einstellungen fuer ihre Tastatur gefunden, verwende den \ +Standard-Wert '${XKEYBOARD}' definiert\n in $0." + diff --git a/src/initramfs/stage3-stuff/init b/src/initramfs/stage3-stuff/init new file mode 100755 index 00000000..3f97dba0 --- /dev/null +++ b/src/initramfs/stage3-stuff/init @@ -0,0 +1,1030 @@ +#!/bin/sh +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# 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 feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Main script for initial ramfs for OpenSLX linux stateless clients +############################################################################# + +# fixme: the primary init script should never fail, so move all critical code +# into sub script calls (see ticket 259) + +export PATH=/bin:/sbin:/usr/bin/:/usr/sbin + +# device files get their own filesystem (to be move mounted later) +devdir="/dev" +mount -n -t tmpfs -o 'size=25%,mode=0755' initramfsdevs ${devdir} + +# mount the important standard directories +[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc +[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys + +# create basic device files an directories (in dev - for most hardware related +# devices mdev should handle that) +for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \ + "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \ + "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \ + "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \ + "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \ + "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \ + "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \ + "/dev/fb0 c 29 0" "/dev/xconsole p"; do + mknod $i +done +mkdir -p ${devdir}/pts ${devdir}/shm ${devdir}/.udevdb ${devdir}/.udev \ + ${devdir}/.initramfs /var/log +# create some standard links (expected?) in /dev +ln -s /proc/kcore /dev/core +ln -s /proc/self/fd /dev/fd +ln -s /proc/self/fd/0 /dev/stdin +ln -s /proc/self/fd/1 /dev/stdout +ln -s /proc/self/fd/2 /dev/stderr + +# redirect kernel messages to tty10 instead of the standard console +getty -i -n -l /bin/cat 38400 tty10 & +setlogcons 10 + +# start device auto discovery/setup service of busybox +echo >/etc/mdev.conf +mdev -s + +# source functions file common for all distros, messages contains all error +# and info output (for some reason the error output is not produced properly +# - crash) + +# how do the localization here? There is not yet a country-Variable +. /etc/messages +. /etc/functions || ( echo -e $init_mff && sleep 100 ) +. /etc/distro-functions || ( echo -e $init_dff && sleep 100 ) + +# configuration settings for this slx system's environment +. /etc/slxsystem.conf 2>/dev/null || ( echo -e ${init_sscf} && \ + sleep 100 ) +# initramfs-setup configuration (common initial settings for all clients using +# a certain InitRamFS generated by slxconfig-demuxer) +[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null + +export date="${slxconf_date}" + +export DEBUGLEVEL=0 +export KERNEL="${slxconf_kernver}" +export NWMODULES="${slxconf_listnwmod}" +export DISTRO_NAME="${slxconf_distro_name}" +export DISTRO_VER="${slxconf_distro_ver}" +export SYSTEM_NAME="${slxconf_system_name}" +export SLXVERSION="${slxconf_slxver}" + +# do not use dnbd cache file +nodnbdcache="yes" + +# set a default LAN interface, might be modified for WLAN, bridge setups or +# on machines with more than one ethernet card built in +export nwif="eth0" + +# load usb modules for keyboard (reenable usb keyboards, otherwise the +# admin has to wait until second run of hwsetup late in stage3) and the +# network adaptor modules, search for pci modules to load later on +hwautocfg base + +# if no kernel version is set, try to get it directly from /proc +if [ -z $KERNEL ] ; then + KERNEL=$(cat /proc/version) + KERNEL=${KERNEL#*version } + KERNEL=${KERNEL% (*) (*} +fi + +# set defaults for some important variables, might be overwritten via +# kernel commandline +tmpfssize="$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') \ + / 100 \* 75 - 128000)k" # in kbyte +cowsize="50%" +rwdir=/dev/shm +nfsro="nfs" +aufs=1 +unionfs=1 + +runinithook '00-started' + +# run pre init script and user defined preinit.local, copied by mkdxsinitrd +# from /var/lib/openslx/config/... in stage2 +preinit +[ -x /bin/preinit.local ] && /bin/preinit.local + + +# switch off the several configuration methods, will be switched on +# according to kernel commandline settings +echo "noldap" > /tmp/ldap-done + +# external configuration file retrieval (per tftp) must be done, as otherwise +# we will never get the initramfs-setup file. By default, we try a predefined +# standard path (.../tftpboot/client-config/ ...) +file="yes" + +# read kernel commandline +read KCMDLINE < /proc/cmdline +export KCMDLINE +# read the system wide initramfs-setup and then the kernel commandline +for opts in $(sed "s/#.*//" /etc/initramfs-setup) ${KCMDLINE} ; do + case ${opts} in + # shut down pc + shutdown) + cat </proc/sysrq-trigger + ;; + # from IPAPPEND + BOOTIF=*) + bootmac=$(echo ${opts} | sed "s/.*=01-//;s/-/:/g") + ;; + # localization + country=*) + COUNTRY=${opts#country=} + grep -q -E "country=" /etc/initramfs-setup && + echo -e "\n# localization information gotten via kernel command line \ +in $0\ncountry=\"${COUNTRY}\"" >>/etc/initramfs-setup + ;; + # single token for debugging ... + debug) + DEBUGLEVEL=1 + ;; + # ... or a specified debug level + debug=*) + DEBUGLEVEL=${opts#debug=} + if [ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] ; then + echo "** SLX init started near $(sysup)" + elif [ $DEBUGLEVEL -ge 3 -a $DEBUGLEVEL -le 20 ] ; then + # create, start a debug shell process + echo "Debug shell started on second console (tty2)" + echo -e "#!/bin/sh\nsh" >/bin/debugshell + chmod u+x /bin/debugshell + getty -i -n -l /bin/debugshell 38400 tty2 & + # start logging (debuglevel >=3) + # fixme: SuSE hangs in Creating /var/log/boot.msg if activated + echo "Syslogd started on third console (tty3)" + # just to have some name in syslog + echo "(slx init)" >/proc/sys/kernel/hostname + syslogd -C2048 + klogd + logread -f > /dev/tty3 2>/dev/null & + logread -f >> /var/log/messages 2>/dev/null & + fi + ;; + # if configuration should not be gathered by dhcp client + nodhcp) + nodhcp="yes" + echo "nodhcp" >/tmp/dhcp-done + ;; + nofile) + unset file + echo "nofile" >/tmp/file-done + ;; + # if ldap configuration should be triggered + ldap) + ldap="yes" + rm /tmp/ldap-done + ;; + # ldap configuration with host and port to contact (base) + ldap=*) + ldap="yes" + rm /tmp/ldap-done + ;; + # file source with tftp server and file location on the server + file=*|file) + if [ "${opts}" != "file" ] ; then + fileprot=$(uri_token ${opts#file=} prot) + fileserv=$(uri_token ${opts#file=} server) + filepath=$(uri_token ${opts#file=} path) + fi + ;; + # if ld.so.cache should be generated; should be switched on when composing + # rootfs from more than one source + ldsc) + ldsc="yes";; + # simple union of base ro rootdir with tempfs on top + nounionfs) + unionfs=0;; + # additional source to unify root filesystem with; the top layer will be + # the tempfs + unionfs=*) + unionfs=1 + uniondirs=${opts#unionfs=} + # most probably it is a good idea to run ldconfig, so enable it + ldsc="yes" + ;; + # same for AUFS; alternative to unionfs + noaufs) + aufs=0;; + aufs=*) + aufs=1 + uniondirs=${opts#aufs=} + # most probably it is a good idea to run ldconfig, so enable it + ldsc="yes" + ;; + # if cowloop should be used, only ontop of network block device and in + # combination with classical fs, like ext2 useful + cowloop=*) + cowloop=1 + #cowsize=${opts#cowloop=} + ;; + # rootfs will void the variables (d)nbdroot, nfsroot ... + # fixme: allow multiple rootfs sources to be unioned!? + # if strinstr " " "$rootfs" ... + rootfs=*) + rootfs=${opts#rootfs=} + rootfs=${rootfs#\"} + rootfs=${rootfs%%\"} + srvproto=$(uri_token $rootfs prot) + case $srvproto in + nfs) + # nfsroot consists of two components + nfspath=$(uri_token $rootfs path) + nfsserver=$(uri_token $rootfs server) + grep -q -E "nfsserver" /etc/initramfs-setup || \ + echo -e "# nfs root information gotten via kernel command \ +line in $0\nnfsserver=\"${nfsserver}\"\nnfspath=\"${nfspath}\"" \ + >>/etc/initramfs-setup + ;; + *nbd*) + bldmod=$srvproto + # get settings for nbd-client, filesystem equals to path in URI + # notation (remove leading slash from filesystem at the end) + bldhost=$(uri_token $rootfs server) + bldport=$(uri_token $rootfs port) + bldrfst=$(uri_token $rootfs path) + bldrfst=${bldrfst#/*} + ;; + aoe) + echo "Not implemented yet" + bldmod= + ;; + iscsi) + echo "Not implemented yet" + bldmod= + #iscsiserver=$(uri_token $rootfs server) + #iscsiport=$(uri_token $rootfs port) + #iscsitarget=$(uri_token $rootfs path) + ;; + lbd) + # use a local device for mounting root block device with given + # filesystem directly or a root filesystem container from another + # filesystem, e.g. rootfs=lbd://sda1/squashfs (bldmod cannot be + # empty, use loop or the real device stuff) + bldmod=loop + blddev=$(uri_token $rootfs server) + bldfst=$(uri_token $rootfs path) + bldfst=${bldfst#/*} + ;; + esac + ;; + # size of cache dnbd should use within ram + dcsize=*) + dnbdcachesize=${opts#dcsize=};; + # ip configuration client-ip:server-ip:gateway:netmask + ip=*) + ipinfo=${opts#ip=};; + # deprecated: nfs server and path (rewritten to standard style) + nfsroot=*) + srvproto=nfs + nfsroot=${opts#nfsroot=} + nfspath=${nfsroot#*:} + nfsserver=${nfsroot%:/*} + grep -q -E "nfsserver" /etc/initramfs-setup || \ + echo -e "\n# nfs root information gotten via kernel command line \n\ +in $0\n# deprecated: please use rootfs=nfs://...\nnfsserver=\"${nfsserver}\"\ +\nnfspath=\"${nfspath}\"">> /etc/initramfs-setup + ;; + # size of tempfs if not max. 50% of RAM should be used + tmpfssize=*) + tmpfssize=${opts#tmpfssize=};; + # vendor code identifier for dhcp requests, that way OpenSLX clients could + # be distinguished from other (dhcp) clients + vci=*) + vci=${opts#vci=};; + # option for ddcinfo + ddcinfo=*) + ddcinfo=${opts#ddcinfo=};; + esac +done + +runinithook '05-have-kernelvars' + +# at this point a timer should be started to ensure an automated reboot +# or halt of the machine if SLX init does not succeed (e.g. missing kernel +# module for the network adaptor) +if [ ${DEBUGLEVEL} -lt 3 -o ${DEBUGLEVEL} = 8 ] ; then + cat< /bin/watchdog +#!/bin/sh +echo \$$ > /tmp/watchdogpid +[ ! -f /proc/version ] && mount -n -t proc proc /proc +sleep 120 2> /dev/null +echo "o" > /proc/sysrq-trigger +EOF + chmod u+x /bin/watchdog + watchdog & +fi + +# check if at least one type of IP configuration is availabe +if [ -n "$nodhcp" -a -z "$ldap" -a -z "$ipinfo" -a $srvproto != "lbd" ] + then echo -e "# You did not specify any advanced configuration mode for \ +your clients. You\n# might want to add the token 'dhcp' for DHCP config, \ +'file(=source)'\n# for config file get via TFTP or 'ldap(=source)' for LDAP \ +configuration to\n# your kernel command line." >> /etc/initramfs-setup + if strinfile "clientip" /etc/initramfs-setup ; then + # IP configuration seems to be present in initramfs-setup file + # TODO: FIX this, as it will clobber all kernel-cmdline values! + . /etc/initramfs-setup + ipinfo="ip=$clientip:$serverip:$gateway:$subnet_mask" + else + error "$init_errip" + fi +fi + +# for ldap configuration at least basic IP setup is needed to contact the +# server +[ -n "$nodhcp" -a -n "$ldap" -a -z "$ipinfo" ] && error "$init_errldap" +# set debug level and logfile +if [ $DEBUGLEVEL -eq 20 ] ; then + echo "** Setting debuglevel to ${DEBUGLEVEL} at $(sysup)" +elif [ $DEBUGLEVEL -ne 0 ] ; then + echo "Setting debuglevel to ${DEBUGLEVEL}" +fi +export MODPRV=" " +export LOGFILE +if [ "${DEBUGLEVEL}" -gt 0 -a "${DEBUGLEVEL}" != 8 ] ; then + # set LOGFILE and move it later on into stage4 + LOGFILE="/var/log/slx-boot.log" + echo "Starting OpenSLX client boot logging at $(date)" >$LOGFILE + echo "1 4 1 7" >/proc/sys/kernel/printk + [ "${DEBUGLEVEL}" -ge 2 ] && MODPRV="-v" + [ "${DEBUGLEVEL}" -gt 3 -a "${DEBUGLEVEL}" -le 10 ] && { + set -x + # and the kernel too + echo "7 7 7 7" >/proc/sys/kernel/printk; } + [ "${DEBUGLEVEL}" -gt 10 -a "${DEBUGLEVEL}" -le 20 ] && set +x +else + # switch off most of kernel debug output + echo "0 0 0 0" >/proc/sys/kernel/printk + # modprobe should stay quiet + MODPRV="-q" + LOGFILE="/dev/null" +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) +if strinstr "eth" "$nwif" ; then + for ethif in eth0 eth1 eth2 eth3 ; do + export macaddr=$(ip link show dev $ethif 2>/dev/null | \ + grep -i link.ether | awk '{print $2}') + # if there is no bootmac present in kernel commandline any checks are + # useless + if [ -z "$bootmac" ] ; then + bootmac="$macaddr" + [ "$ethif" != "eth0" ] && error "$init_bootmac" nonfatal + fi + if [ "$macaddr" = "$bootmac" ] ; then + nwif=$ethif + break + elif [ "x$macaddr" = "x" ] ; then + # if the macaddr is empty on the first interface tried, there is no + # network adaptor visible (missing kernel module) + if [ "$ethif" = "eth0" ] ; then + error "$init_errnwad" + else + # assume a forcedeth problem here (nonmatching MACs) + macaddr=${bootmac} + fi + break + fi + done +fi +# quickfix for proper nwif passing ... (to be fixed in a more general way) +sed "s/nwif=.*/nwif=\"${nwif}\"/" -i /tmp/env/wrapper.env +# hook to setup bridging (several virtualization tools ... +runinithook '20-nw-bridge-config' + +# set up loopback networking +[ $DEBUGLEVEL -eq 20 ] && echo "** starting ip config at $(sysup)" +ip link set dev lo up 2>/dev/null +ip addr add 127.0.0.1/8 dev lo 2>/dev/null +ip link set dev $nwif up 2>/dev/null || error "$init_noeth" + +# analyze ip information from the kernel command line and put parts +# of it into several variables +if [ -n "$ipinfo" ] ; then + getip () { + local val="$ipinfo:"; i=$(($1 - 1)); + while [ $i -gt 0 ] ; do + val=${val#*:} ; i=$(($i - 1)); + done; + echo $val|sed "s/:.*//"; } + clientip=$(getip 1) + serverip=$(getip 2) + gateway=$(getip 3) + subnet_mask=$(getip 4) + broadcast_address=$(ipcalc -s -b $clientip $subnet_mask|sed s/.*=//) + [ -z "$broadcast_address" ] && broadcast_address=255.255.255.255 + # we might have an idea of the dns server via preboot + dns_srv=$(getip 5) + [ -n "$dns_srv" ] && echo nameserver $dns_srv >/etc/resolv.conf; + echo -e "# ip configuration written by $0 script:\nclientip=$clientip\n\ +subnet_mask=$subnet_mask\ngateway=$gateway\nserverip=$serverip\n\ +broadcast_address=$broadcast_address" >>/etc/initramfs-setup + # set static ip address + ip addr add $clientip/$(ipcalc -s -p $clientip $subnet_mask|sed s/.*=//) \ + broadcast $broadcast_address dev $nwif 2>/dev/null + ip route add default via $gateway 2>/dev/null +else + noipyet="yes" +fi +# get configuration data via dhcp (with vendor code identifier if present +# in ${vci} from kernel command line or initramfs-setup) ... +if [ -z "$nodhcp" ] ; then + ( rundhcp ${vci}; echo "dhcp finished at $(sysup)" >/tmp/dhcp-done ) & + if [ -n "$noipyet" ] ; then + waitfor /tmp/dhcp-done 20000 + . /tmp/confviadhcp + # by now there should be a proper ip configuration present + if [ -z "$clientip" -o -z "$subnet_mask" -o -z "$broadcast_address" ] + then error "$init_errdhcp" + else + { ip addr add \ + $clientip/$(ipcalc -s -p $clientip $subnet_mask|sed s/.*=//) \ + broadcast $broadcast_address dev $nwif 2>/dev/null || \ + error "$init_erripcfg"; } + # if gateway is available set it + [ -n $gateway ] && ip route add default via $gateway 2>/dev/null + fi + # fixme: to be checked!! + # else + # if [ -n "$file" -a "$srvproto" = "lbd" ] ; then + # error "$init_erripcfg" nonfatal + # else + # error "$init_erripcfg" + # fi + # fi + fi +fi +# check if serverip is set as variable @@@serverip@@@ +sed "s,@@@serverip@@@,$serverip," -i /etc/initramfs-setup +[ $DEBUGLEVEL -eq 20 ] && echo "** finished ip config at $(sysup)" + +# on some network adaptors we need to wait for the link to come up +dmesg | grep -q "link down" && for i in 1 1 1 1 ; do + dmesg | grep -q "link up" && break + [ $DEBUGLEVEL -ge 1 ] && echo "network: waited half a second for the \ +link to come up" >>$LOGFILE + sleep $i +done +# ... or ldap if available (in background) +[ -n "$ldap" ] && ldapconf & +# ... or via (t)ftp/http file get (in background) +[ -n "$file" ] && fileget & + +runinithook '25-have-ip-config' + +# if root filesystem should be imported via local or a network block device +if [ -n "${bldmod}" ] ; then + # load block device driver(s) if needed + for module in ${bldmod} ; do + modprobe ${MODPRV} ${module} || error "$init_errbld" + done + mdev -s + [ -z "$bldrfst" ] && bldrfst=squashfs + bldhost=$(checkip $bldhost) + if [ $DEBUGLEVEL -eq 20 ] ; then + echo "** starting setup of ${bldmod} at $(sysup)" + else + echo "Stateless client using ${bldmod} on $bldhost:$bldport with $bldrfst" + fi + # fixme: check for fs in /proc/filesystems before trying to load the module + modprobe ${MODPRV} ${bldrfst} || error "$init_errbld" nonfatal + + # for debugging: interface might not be properly up - check reachability + [ $DEBUGLEVEL -ge 1 ] && ping -c 1 -w 15 ${bldhost} >/dev/null 2>&1 + + case "${srvproto}" in + # network block device present in standard kernel + nbd) + RDEV=/dev/nbd0 + waitfor "${RDEV}" 20000 || error "$init_nbddev" + i=0 + while ! nbd-client $bldhost $bldport ${RDEV} -persist ; do + usleep 100000 + i=$(($i + 1)) + if [ $i -ge 1000 ] ; then + error "$init_nbds"; break + fi + done + usleep 100 + echo deadline > /sys/block/nbd0/queue/scheduler + # echo "32" > /sys/block/nbd0/queue/read_ahead_kb + ;; + # dnbd2 by Vito Di Leo + dnbd2) + RDEV=/dev/vnbd0 + waitfor "${RDEV}" 20000 || error "$init_nbddev" + # quickhack, should be read in from URI + echo 1 > /sys/block/vnbd0/config/vid + echo 1 > /sys/block/vnbd0/config/rid + # check for others in initramfs-setup and then kernel cmdline + rootfs="$(sed -n "/rootfs=/p" /etc/initramfs-setup| \ + sed "s,rootfs=,,;s,\",,g") " + [ "$rootfs" = " " ] && \ + rootfs="$(cat /proc/cmdline|sed "s,.*rootfs=\",,;s,\".*,,") " + i=0 + # assume no more than 16 different dnbd2 servers (default 4) + while [ "x$bldhost" != "x" -a $i -lt 16 ]; do + #echo "I: $i R: $rootfs P:$bldport H:$bldhost" + echo $bldhost $bldport > /sys/block/vnbd0/server${i}/sock + i=$(($i + 1)) + rootfs=${rootfs#* } + bldsp=$(echo ${rootfs}|sed "s, .*,,") + bldhost=$(uri_token $bldsp server) + bldport=$(uri_token $bldsp port) + done + # the cfq scheduler seem not a good idea here + echo deadline > /sys/block/vnbd0/queue/scheduler + # needed for some reason to settle initialization + sleep 1 + i=0 + while [ $(cat /sys/block/vnbd0/config/running) != 1 ] ; do + usleep 100000 + echo 1 > /sys/block/vnbd0/config/running + i=$(($i + 1)) + if [ $i -ge 50 ] ; then + error "$init_dnbd2s"; break + fi + done + echo "64" > /sys/block/vnbd0/queue/read_ahead_kb + ;; + # dnbd by Thorsten Zitterell + dnbd) + # quickhack + RDEV=/dev/dnbd0 + if [ -z $nodnbdcache ] ; then # variable not really used yet + mkdir /dnbd + mount -n -o 'size=20%' -t tmpfs tmpfs /dnbd + ( cat /dev/zero > /dnbd/cache 2>/dev/null || echo "ok" >/tmp/cache ) & + clientopt="-c /dnbd/cache" + waitfor /tmp/cache 10000 + fi + [ $(echo $bldhost|sed "s,\..*,,") -ge 224 ] && \ + ip route add 224.0.0.0/4 dev $nwif + waitfor /dev/dnbd0 10000 || error "$init_nbddev" + echo "dnbd-client -b $bldhost -d $RDEV $clientopt" + while ! dnbd-client -b $bldhost -d $RDEV $clientopt ; do + usleep 10000 + done + # problem with squashfs and cfq scheduler + echo noop > /sys/block/dnbd0/queue/scheduler + echo 0 > /sys/block/dnbd0/queue/read_ahead_kb + ;; + lbd) + # using clients local block device (disk partition is to be specified + RDEV=/dev/$blddev + echo "$bldrfst" >>/etc/filesystems + realbldrfst=$bldrfst + # we might need to mount the base layer filesystem first before accessing + # e.g. a squashfs container file on it + bldrfst=auto + ;; + esac + RWRO="ro" + if [ -n "${cowloop}" -a -x /bin/cowdev ] ; then + modprobe ${MODPRV} cowloop || { + error "$init_loadcow" nonfatal + unset cowloop; } + [ -x /bin/mdev ] && mdev -s + fi + if [ -n "${cowloop}" ] ; then + if [ -n "${unionfs}" -o -n "${aufs}" ] ; then + error "$init_cownobld" + unset unionfs aufs + fi + echo "Using Copy-on-Write block device for rw access" + mount -n -t tmpfs -o size=${cowsize} ramfs ${rwdir} + mkdir /dev/cow && mknod /dev/cow/ctl b 241 255 + usleep 200 + ln -s /dev/cowloop0 /dev/cow/0 + # fixme - cowdev depending on blockdev choosen above ... + cowdev -a /dev/nbd0 ${rwdir}/nbd.cow + usleep 200 + RWRO="rw" + RDEV=/dev/cow/0 + # run ldconfig if not switched off via kernel command line + ldcfg + else + # use normal UnionFS behaviour because rootfs is not NFS + unset nfsro + fi + # finally mount the configured network/local block device + for i in 0 5000 20000 100000 500000 1000000 ; do + usleep $i + mount -n -t $bldrfst -o $RWRO $RDEV /mnt 2>/dev/null && break + done + # check if we got the rootfilesystem directly or need to mount a container + # file from the mounted block device + if [ "${srvproto}" = "lbd" -a -f /mnt/boot/${slxconf_system_name} ]; then + mkdir /dev/bootdisk + mount --move /mnt /dev/bootdisk + mount -t ${realbldrfst} -o loop \ + /dev/bootdisk/boot/${slxconf_system_name} /mnt || error "$init_errloop" + fi + [ $DEBUGLEVEL -eq 20 ] && echo "** finished blockdev setup stuff at $(sysup)" +elif [ -n ${iscsiserver} ] ; then + [ $DEBUGLEVEL -eq 20 ] && echo "** started setting up iSCSI initiator at \ +$(sysup)" + #if [ -n ${iscsitarget} ] ; then + # echo "InitiatorName=${iscsitarget}"|sed "s,@@@serverip@@@,$serverip," \ + # >/etc/initiatorname.iscsi + #else + # discovery + #fi + #echo -e "node.startup = automatic">/etc/iscsid.conf + #iscsid -c /etc/iscsid.conf + # the cowloop part has to be moved (option for iscsi devices too) + # and should be generalized for nbd, dnbd, iscsi +fi + +# if no type of root filesystem is passed via kernel command line try +# information gathered from dhcp process (only valid for nfs) +if [ -z "${bldmod}" -a -z "${bldhost}" -a -z "${nfsserver}" ] ; then + # information has to be read from dhcp and ldap configuration + # cfgcomplete merges all configuration files + cfgcomplete +fi + +# mount nfs rootfs +if [ -z "${bldmod}" -a -z "${bldserver}" ] ; then + [ $DEBUGLEVEL -eq 20 ] && echo "** started nfs mount" + # read in extended initramfs-setup + . /etc/initramfs-setup + # prefer nfsserver and nfspath from kernel commandline over the information + # gotten from dhcp server + if [ -n "${nfsserver}" -a -n "${nfspath}" ] ; then + # check if nfsserver is set as variable @@@serverip@@@ + nfsserver=$(checkip $nfsserver) + else + # we got a problem here + error "$init_nfssp" fatal + fi + # interface might not be properly up - check reachability + ping -c 1 -w 15 ${nfsserver} >/dev/null 2>&1 + # mount the rootfs via nfs readonly (ro) + fsmount nfs ${nfsserver} ${nfspath} /mnt ro + #for transport in tcp udp fail; do + # [ $proto = "fail" ] && { error "$init_nfs"; break; } + # mount -n -t nfs -o ro,nolock,${transport} ${nfsroot} /mnt && break + #done + [ $DEBUGLEVEL -eq 20 ] && echo "** finished nfs mount at $(sysup)" +fi + +runinithook '35-have-network-root' + +# get the complete collection of kernel modules and firmwares available +testmkd /lib/firmware +mount -n --bind /mnt/lib/modules /lib/modules && \ +mount -n --bind /mnt/lib/firmware /lib/firmware || error "$init_moddir" +# start hardware configuration as background process if not a special +# debuglevel (21) is used for the option of manual hwautocfg start +if [ ${DEBUGLEVEL} = 21 ] ; then + echo "You can run 'hwautocfg main &' manually now ..." + /bin/sh +else + [ $DEBUGLEVEL -eq 20 ] && echo "** started hwautocfg in background at \ +$(sysup)" + hwautocfg main & +fi + +runinithook '40-started-hw-config' + +# unionfs/aufs modules visible by now if installed, try to use aufs for rw +# access if available +union_type="" +if [ ${aufs} -eq 1 ] && \ + modprobe ${MODPRV} aufs 2>/dev/null && \ + lsmod | grep -qe "^aufs" ; then union_type="AUFS" +elif [ ${unionfs} -eq 1 ] && \ + modprobe ${MODPRV} unionfs 2>/dev/null && \ + lsmod | grep -qe "^unionfs" ; then union_type="UnionFS" +elif [ ${aufs} -eq 0 -a ${unionfs} -eq 0 -a -z "${cowloop}" ] ; then + error "$init_deselau" nonfatal + unset aufs unionfs +else + error "$init_loadaufs" nonfatal + unset aufs unionfs +fi + +# runtimer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ + echo "** Filesystem setup started at $(sysup)" +# setup of client root filesystem dependent on the availability of UnionFS +if [ "x${union_type}" != "x" ] ; then + echo "Using ${union_type} for rw access" + mkdir -p ${rwdir}/union ${rwdir}/uniontmp /rorootfs + # adapting tempfs size of the device directory (takes /tmp in stage4) + mount -o remount,size=${tmpfssize} ${devdir} + mount -n -t tmpfs -o size=${tmpfssize} none ${rwdir}/uniontmp + # hack for handling unionfs with patched run-init + mount -n --move /mnt /rorootfs + if [ "$union_type" == "UnionFS" ]; then + mount -n -t unionfs -o dirs=${rwdir}/uniontmp:/rorootfs=${nfsro}ro \ + none /mnt + elif [ "$union_type" == "AUFS" ]; then + mount -n -t aufs -o br:/${rwdir}/uniontmp:/rorootfs=ro none /mnt + fi + mkdir -p /mnt/uniontmp + mount -n --move ${rwdir}/uniontmp /mnt/uniontmp + chmod 0755 /mnt/uniontmp /mnt + # running hardware disk/tmp setup now + hwautocfg disk & + # run ldconfig if switched on via kernel command line (token ldsc) or + # triggered by unionized root filesystem + ldcfg +elif [ -z "${cowloop}" ] ; then + # fire up hardware disk/tmp setup first + hwautocfg disk & + echo "Using bind mounts to ramdisk for rw access" + mount -n -t tmpfs -o size=75% ramfs ${rwdir} + for path in ${D_BINDMPTS} ; do + mkdir -p ${rwdir}/${path} >/dev/null 2>&1 + mount -n --bind ${rwdir}/${path} /mnt/${path} + [ ${DEBUGLEVEL} -gt 1 -a ${DEBUGLEVEL} != 8 ] && \ + echo "Created ${rwdir}/${path} and mounted it to /mnt/$path" + done + # see above ... + ldcfg + # save the RO directories mentioned in the distro-specific + # config to a temporary directory. They will later on be restored + for path in ${D_RODIRSINRW}; do + if [ -d /mnt/${path} ] ; then + list="${path} ${list}" + # exclude them from etc copy process too + echo "${path}/*"|sed -e "s,/root/,,;s,^/,," >>/tmp/etc.exclude + mkdir -p /root/${path} >/dev/null 2>&1 + mount -n --bind /mnt/${path} /root/${path} >/dev/null 2>&1 + fi + done + for path in /etc/${D_SYSCONFDIR} ${D_DIRINBINDMNT} ${list}; do + mkdir -p ${rwdir}/${path} + done + testmkd ${rwdir}/var/tmp 1777 + # exclude all sysv runlevel link stuff + for i in ${D_RCDIRS} ${D_INITBOOTD} ; do + echo "*$i/*" >>/tmp/etc.exclude + done + # add list of files to be excluded and common excludes to the filter list + echo -e "-\ndhcp*\n*~\n*.old\n*-\nxorg.conf*" >>/tmp/etc.exclude + # if ld.so.cache is to be generated then do not copy the file + [ -n "${ldsc}" ] && echo -e "ld.so.cache*" >>/tmp/etc.exclude + # for tar exclude lists might be used, more difficult for cp + cd /mnt + tar -X /tmp/etc.exclude -cp etc/*|tar -xp -C ${rwdir} 2>/dev/null + cd / + mount -n --bind ${rwdir}/etc /mnt/etc + mount -n --bind ${rwdir}/var /mnt/var + # get the "covered" mounts back into filesystem structure + for path in ${list}; do + mount -n --move /root/$path /mnt/$path #>>$LOGFILE 2>&1 + done + #rm -rf /root/* >/dev/null 2>&1 + # run some specific stuff !? +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 +# runtimer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ + echo "** Filesystem setup completed at $(sysup)" + +# write debug file information after filesystem setup completed +echo -e "# /etc${D_SYSCONFDIR}/logfile - file created by $0 (initramfs \ +from $date)\n#\n# logfile \ +for linux diskless client specific debugging output\nLOGFILE=\"$LOGFILE\"\n#\ +\n# debug level\nDEBUGLEVEL=\"$DEBUGLEVEL\"" \ + > /mnt/etc/${D_SYSCONFDIR}/logfile || error "$init_errlog" + +# run distribution independent and dependent configuration of files and +# services (offer debug shell in runlevel 22) +if [ ${DEBUGLEVEL} = 22 ] ; then + /bin/sh +else + servconfig & +fi + +for path in @@@COMDIRINDXS@@@ ${D_DIRINDXS} ${D_DIRINBINDMNT} ; do + testmkd /mnt/${path} +done +# Needed writable subdirs nested in readonly subdirs of writable one +for path in ${D_RWDIRSINRO}; do + mount -n -t tmpfs none /mnt/${path} +done +for i in /var/run/utmp /var/log/wtmp /var/log/lastlog /etc/mtab ; do + echo -n > /mnt/$i +done +chown 65534:0 /mnt/var/lib/nobody +# /proc/bus/usb might be deprecated in newer kernels ... +echo -e "# /etc/fstab - file generated by $0 (initramfs from $date)\n#\ +\tOpenSLX Project, info@openslx.com\n\nrootfs\t\t/\t\trootfs\t\tro\t\t 0 0\n\ +proc\t\t/proc\t\tproc\t\tdefaults\t 0 0\ninitramdevs\t/dev\t\ttmpfs\ +\t\trw\t\t 0 0\ndevpts\t\t/dev/pts\tdevpts\t\tmode=0620,gid=5\t 0 0" \ + >/mnt/etc/fstab || error "$init_fstab" +echo -e "rootfs / rootfs rw 0 0\ninitramdevs /dev tmpfs rw\ + 0 0" > /mnt/etc/mtab + +# copy library cache if generated +if [ -n "${ldsc}" ] ; then + # creating library cache takes a while ... + if waitfor /tmp/ldcfg 50000 ; then + test -s /mnt/tmp/ld.so.cache && \ + mv /mnt/tmp/ld.so.cache /mnt/etc/ld.so.cache + else + error "$init_errldcfg" + fi +else + [ $DEBUGLEVEL -gt 2 ] && error "$init_infldcfg" nonfatal +fi + +runinithook '60-have-servconfig' + +# wait a while for hardware setup to complete and start cleanup procedure +[ $DEBUGLEVEL -gt 1 ] && echo "Waiting for hwautocfg to finish ..." +waitfor /tmp/hwcfg 20000 || error "$init_errhw" +hwautocfg finish & + +# wait a while for services setup to complete +[ $DEBUGLEVEL -gt 1 ] && echo "Waiting for servconfig to finish ..." +waitfor /tmp/svcfg 10000 || error "$init_errsw" +# IP configuration is complete and should not be updated automatically +killall -9 udhcpc 2>/dev/null + +# if uniondirs is not set yet, maybe the unions were given via initramfs-setup +if [ -z "$uniondirs" ]; then + if [ "$union_type" == "AUFS" ]; then + # does it contain "://"? + if [ "$aufs" != "${aufs#*://}" ]; then + uniondirs="$aufs" + fi + elif [ "$union_type" == "UnionFS" ]; then + # does it contain "://"? + if [ "$unionfs" != "${unionfs#*://}" ]; then + uniondirs="$unionfs" + fi + fi +fi +# if locations are given that should be unioned with the fs root, do it +if [ -n "$uniondirs" ]; then + include_in_fsroot_union "$union_type" "$uniondirs" +fi + +runinithook '70-before-plugins' + +# ddcinfo temporary overwrite (with kernel cmdline ddcinfo=1) +if [ "${ddcinfo}" = "1" -a -f /initramfs/plugin-conf/xserver.conf ]; then + echo 'xserver_ddcinfo="1"' >> /initramfs/plugin-conf/xserver.conf +fi + +# runtimer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ + echo "** Plugin configuration started at $(sysup)" + +# check for any plugin-specific runlevel scripts and run them, if found: +if [ ${DEBUGLEVEL} = 25 ] ; then + /bin/sh +else + if [ -d /etc/plugin-init.d ]; then + for plugin_starter in /etc/plugin-init.d/*.sh; do + if [ -e $plugin_starter ]; then + [ $DEBUGLEVEL -gt 0 ] \ + && echo -n "Running plugin starter $plugin_starter ..." + [ $DEBUGLEVEL -eq 15 ] \ + && sed '/^#!/ a\\set -x' -i $plugin_starter + init-wrapper $plugin_starter >>/tmp/plugin_starter 2>&1 + if [ $? -eq 0 ]; then + [ $DEBUGLEVEL -gt 0 ] \ + && echo " ok" + else + [ $DEBUGLEVEL -gt 0 ] \ + && echo " failed" + fi + fi + done + # load variables defined by plugins to current environment + [ -f /tmp/env/wrapper.env ] && . /tmp/env/wrapper.env + fi +fi + +runinithook '80-after-plugins' + +# runtimer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ + echo "** Plugin configuration finished at $(sysup)" + +# create links for initial stage4 boot scripts +initial_boot + +runinithook '85-have-initial-boot' + +# post init for some distro specific stuff to run +postinit +# general postinit.local configurable by the admin via openslx/config/ +[ -f /initramfs/postinit.local ] && { + [ $DEBUGLEVEL -gt 0 ] && \ + echo -n "Running script /bin/postinit.local ... " + chmod u+x /initramfs/postinit.local + /initramfs/postinit.local + [ $DEBUGLEVEL -gt 0 ] && echo "ok"; } + +# start a debug shell in higher debug levels +[ $DEBUGLEVEL -gt 2 -a $DEBUGLEVEL != 8 ] \ + && echo "DEBUGLEVEL>2: starting debug-shell, exit with CTRL+D" && /bin/sh + +runinithook '90-postinit-done' + +# unmount the bind mounted modules, firmware directories and nfs /tmp/scratch +# (if present) +export ticks +for ticks in 0 1 2 5 10 20 30; do + sleep $ticks && umount -n /lib/modules 2>/dev/null && break + error "$init_wait" nonfatal +done +for ticks in 0 1 2 5 10 20 30; do + sleep $ticks && umount -n /lib/firmware 2>/dev/null && break + error "$init_wait" nonfatal +done +mount 2>/dev/null | grep -q "/tmp/scratch type nfs" && \ + for ticks in 0 1 2 5 10 20 30; do + sleep $ticks && umount -n /tmp/scratch 2>/dev/null && break + done + +mount 2>/dev/null | grep -q /lib/modules && error "$init_errumnt" +# 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 +sed -n "s,/mnt,,;/\/tmp /p" /proc/mounts >> /mnt/etc/mtab +[ -f /tmp/fstab ] && cat /tmp/fstab >> /mnt/etc/fstab +# preparations to leave initramfs - umounting ... +umount -n /sys || error "$init_errsys" nonfatal +umount -n /proc/bus/usb >/dev/null 2>&1 +chmod 1777 /dev/shm /mnt/tmp 2>/dev/null + +runinithook '95-cleanup' + +# kill hwautocfg, servconfig, hwinfo, syslogd, etc. +killall -9 hwautocfg servconfig debugshell hwinfo syslogd logread 2>/dev/null + +# runtimer +[ $DEBUGLEVEL -eq 8 -o $DEBUGLEVEL -eq 20 ] && \ + echo "** SLX init ended near $(sysup)" +# kill the watchdog (autopoweroff, if stage3 init never finishes) +[ -f /tmp/watchdogpid ] && kill $(cat /tmp/watchdogpid) 2>/dev/null +# stop logging services if required and move logfile into stage4 filesystem +# (if exists) +killall klogd 2>/dev/null +[ -f /var/log/slx-boot.log ] && mv /var/log/slx-boot.log \ + /mnt/var/log/slx-s3boot.log +[ -f /var/log/messages ] && cp /var/log/messages \ + /mnt/var/log/slx_messages 2>/dev/null +# if no syslog plugin was configured, start the daemon again writing to no +# logfile directly (useless fake test as placeholder) +# THIS IS NOT WORKING SOMEHOW!! +#[ ! -d /mnt/opt/openslx/plugin-repo/syslog/ ] && syslogd -O /mnt/var/log/testfile + +# move /dev and unmount /proc and unset all old, unneeded environment +# variables +mount -n --move /dev /mnt/dev +umount -n /proc +unset client debug date initrd ip bldroot macaddr nwif nfsroot rootfs ticks \ + vci vga +unset BOOT_IMAGE KCMDLINE KERNEL MODPRV NWMODULES OLDPWD UDEVD_EVENT_TIMEOUT \ + SLXVERSION UDEVD_EXPECTED_SEQNUM PATH + +runinithook '99-handing-over' + +# new style of pivoting (switch_root or run-init) +exec /sbin/switch_root -c dev/console /mnt /sbin/init $DEBUG_UPSTART || \ + error "$init_runinit" diff --git a/src/initramfs/tools/hwinfo/bin/hwinfo-13.11 b/src/initramfs/tools/hwinfo/bin/hwinfo-13.11 new file mode 100755 index 00000000..f2ae313c Binary files /dev/null and b/src/initramfs/tools/hwinfo/bin/hwinfo-13.11 differ diff --git a/src/initramfs/tools/hwinfo/bin/hwinfo-14.19 b/src/initramfs/tools/hwinfo/bin/hwinfo-14.19 new file mode 100755 index 00000000..af71e25c Binary files /dev/null and b/src/initramfs/tools/hwinfo/bin/hwinfo-14.19 differ diff --git a/src/initramfs/tools/hwinfo/bin/hwinfo-15.21 b/src/initramfs/tools/hwinfo/bin/hwinfo-15.21 new file mode 100755 index 00000000..87629a5c Binary files /dev/null and b/src/initramfs/tools/hwinfo/bin/hwinfo-15.21 differ diff --git a/src/initramfs/tools/hwinfo/bin/hwinfo-15.3 b/src/initramfs/tools/hwinfo/bin/hwinfo-15.3 new file mode 100755 index 00000000..4f806b6e Binary files /dev/null and b/src/initramfs/tools/hwinfo/bin/hwinfo-15.3 differ diff --git a/src/initramfs/tools/hwinfo/bin/hwinfo-16.0 b/src/initramfs/tools/hwinfo/bin/hwinfo-16.0 new file mode 100755 index 00000000..5dbe48a4 Binary files /dev/null and b/src/initramfs/tools/hwinfo/bin/hwinfo-16.0 differ diff --git a/src/initramfs/tools/hwinfo/db/hwinfo.db.tgz b/src/initramfs/tools/hwinfo/db/hwinfo.db.tgz new file mode 100644 index 00000000..524ee1de Binary files /dev/null and b/src/initramfs/tools/hwinfo/db/hwinfo.db.tgz differ diff --git a/src/initramfs/tools/hwinfo/lib/libhd.so.13.11 b/src/initramfs/tools/hwinfo/lib/libhd.so.13.11 new file mode 100755 index 00000000..f6fa83a6 Binary files /dev/null and b/src/initramfs/tools/hwinfo/lib/libhd.so.13.11 differ diff --git a/src/initramfs/tools/hwinfo/lib/libhd.so.14.19 b/src/initramfs/tools/hwinfo/lib/libhd.so.14.19 new file mode 100755 index 00000000..087e7c1e Binary files /dev/null and b/src/initramfs/tools/hwinfo/lib/libhd.so.14.19 differ diff --git a/src/initramfs/tools/hwinfo/lib/libhd.so.15.21 b/src/initramfs/tools/hwinfo/lib/libhd.so.15.21 new file mode 100755 index 00000000..fe066957 Binary files /dev/null and b/src/initramfs/tools/hwinfo/lib/libhd.so.15.21 differ diff --git a/src/initramfs/tools/hwinfo/lib/libhd.so.15.3 b/src/initramfs/tools/hwinfo/lib/libhd.so.15.3 new file mode 100755 index 00000000..6ab25238 Binary files /dev/null and b/src/initramfs/tools/hwinfo/lib/libhd.so.15.3 differ diff --git a/src/initramfs/tools/hwinfo/lib/libhd.so.16.0 b/src/initramfs/tools/hwinfo/lib/libhd.so.16.0 new file mode 100644 index 00000000..3fd68f29 Binary files /dev/null and b/src/initramfs/tools/hwinfo/lib/libhd.so.16.0 differ diff --git a/src/initramfs/tools/mksquashfs/3.3/mksquashfs b/src/initramfs/tools/mksquashfs/3.3/mksquashfs new file mode 100755 index 00000000..c43d8106 Binary files /dev/null and b/src/initramfs/tools/mksquashfs/3.3/mksquashfs differ diff --git a/src/initramfs/tools/mksquashfs/3.3/unsquashfs b/src/initramfs/tools/mksquashfs/3.3/unsquashfs new file mode 100755 index 00000000..4a73d690 Binary files /dev/null and b/src/initramfs/tools/mksquashfs/3.3/unsquashfs differ diff --git a/src/initramfs/tpm/bin/detect-tpm.sh b/src/initramfs/tpm/bin/detect-tpm.sh new file mode 100755 index 00000000..48bc92f7 --- /dev/null +++ b/src/initramfs/tpm/bin/detect-tpm.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# + +SYS_PATH="/sys/class/misc/tpm0/device/" +MODULES="atmel tis nsc infineon" +MODULES_FORCE="tis" +FLAGS="" +FLAGS_FORCE="force=1" + +test_tpm() { + if [ ! -d "$SYS_PATH" ] ; then + return 1 + fi + +# tpm_tis creates "active" and "enabled" files +# _atmel and _nsc only create the "caps" + ACTIVE="$(cat $SYS_PATH/active 2>/dev/null)" + ENABLED="$(cat $SYS_PATH/enabled 2>/dev/null)" + CAPS="$(cat $SYS_PATH/caps 2>/dev/null)" + if [ -n "$ACTIVE" -o -n "$ENABLED" -o -n "$CAPS" ] ; then + echo + echo "successfully detected TPM chip!" + echo + echo "$CAPS" + echo + else + return 2 + fi +} + +try_modules() { + if [ "$1" == "force" ] ; then + MODULES=$MODULES_FORCE + FLAGS=$FLAGS_FORCE + echo "using flags '$FLAGS'" + fi + echo -n "trying modules:" + for module in $MODULES ; do + echo -n " $module" + modprobe tpm_${module} $FLAGS 2>/dev/null + if test_tpm ; then + return 0 + fi + # clean up since e.g. infineon always loads w/o error... + modprobe -r tpm_${module} 2>/dev/null + done + echo + return 1 +} + +# create device-node +test -c /dev/tpm0 || mknod /dev/tpm0 c 10 224 + +if try_modules ; then + exit 0 # success +fi +if ! try_modules force ; then + echo "Warning: no TPM chip found!" + exit 1 +fi diff --git a/src/initramfs/tpm/bin/fetch-sshkeys.sh b/src/initramfs/tpm/bin/fetch-sshkeys.sh new file mode 100755 index 00000000..c385fd47 --- /dev/null +++ b/src/initramfs/tpm/bin/fetch-sshkeys.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# + +SHOWMAC="/bin/showmac.sh" +KEYTRG="/root/.ssh" + +# FIXME: remote-host could be determined from kernel-cmdline, should we? +RHOST="132.230.4.180" + +if [ ! -x "$SHOWMAC" ] ; then + echo "Can't find $SHOWMAC, exiting." + exit 1 +fi +MAC_ETH0="$($SHOWMAC eth0)" + +mkdir -p "$KEYTRG" + +PRIVKEY="id_rsa.tpm-${MAC_ETH0}.sealed" + +echo -n "trying to fetch private key (via tftp):" +tftp -r client-config/tpm/$PRIVKEY -l $KEYTRG/id_rsa -g $RHOST +if [ "$?" -gt 0 ] ; then + echo " FAILED!" + echo "ERROR: can't find private key for this MAC-address: $MAC_ETH0." + exit 2 +fi +echo " $PRIVKEY" +chmod 600 $KEYTRG/id_rsa diff --git a/src/initramfs/tpm/bin/mygetty.sh b/src/initramfs/tpm/bin/mygetty.sh new file mode 100755 index 00000000..db344d21 --- /dev/null +++ b/src/initramfs/tpm/bin/mygetty.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# + +if [ -f "/mnt/sbin/agetty" ] ; then + /mnt/sbin/agetty -n -l /bin/bash 9600 /dev/tty1 +else + echo "agetty-binary not found!" +fi + +# /bin/bash diff --git a/src/initramfs/tpm/bin/showmac.sh b/src/initramfs/tpm/bin/showmac.sh new file mode 100755 index 00000000..ef2aaf21 --- /dev/null +++ b/src/initramfs/tpm/bin/showmac.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# + +DEV="$1" +[ -z "$DEV" ] && DEV="eth0" + +ip link show $DEV | \ + sed -n 's,.*\(..:..:..:..:..:..\) br.*,\1,p' | \ + sed 's,:,-,g' diff --git a/src/initramfs/tpm/etc/bash.bashrc b/src/initramfs/tpm/etc/bash.bashrc new file mode 100644 index 00000000..0c0dc200 --- /dev/null +++ b/src/initramfs/tpm/etc/bash.bashrc @@ -0,0 +1,3 @@ +[ -z "$PS1" ] && return + +PS1="(\h):\w# " diff --git a/src/initramfs/tpm/etc/hosts b/src/initramfs/tpm/etc/hosts new file mode 100644 index 00000000..35337c24 --- /dev/null +++ b/src/initramfs/tpm/etc/hosts @@ -0,0 +1,3 @@ +# needed for tpm stuff ... +127.0.0.1 localhost +::1 localhost ipv6-localhost ipv6-loopback diff --git a/src/initramfs/tpm/etc/inputrc b/src/initramfs/tpm/etc/inputrc new file mode 100644 index 00000000..ac81a394 --- /dev/null +++ b/src/initramfs/tpm/etc/inputrc @@ -0,0 +1 @@ +set bell-style none diff --git a/src/initramfs/tpm/etc/ld.so.preload b/src/initramfs/tpm/etc/ld.so.preload new file mode 100644 index 00000000..a59b3240 --- /dev/null +++ b/src/initramfs/tpm/etc/ld.so.preload @@ -0,0 +1 @@ +/usr/local/share/tpm/lib/libcrypto.so.0.9.8 diff --git a/src/initramfs/tpm/etc/libdeps b/src/initramfs/tpm/etc/libdeps new file mode 100644 index 00000000..9dae75e3 --- /dev/null +++ b/src/initramfs/tpm/etc/libdeps @@ -0,0 +1,34 @@ +# whitespace-separated list containing libraries +# that are required for some binaries to work... + +# tcsd requires libgcc_s, otherwise it exits after the +# first connection socket is closed +lib/libgcc_s.so.1 + +# nss is required to connect to local and remote services: +lib/libnss_compat.so.2 +lib/libnss_files.so.2 + +################ deprecated ################ +# slxldd resolves the dependencies below... +### lib/libpthread.so.0 + +# tcsd: +### lib/libdl.so.2 +### lib/libz.so.1 + +# ssh/scp: +### lib/libresolv.so.2 +### lib/libutil.so.1 +### lib/libnsl.so.1 +### lib/libcrypt.so.1 +### usr/lib/libopensc.so.2 +### usr/lib/libgssapi_krb5.so.2 +### usr/lib/libkrb5.so.3 +### usr/lib/libk5crypto.so.3 +### usr/lib/libscconf.so.2 +### usr/lib/libssl.so.0.9.8 +### usr/lib/libopenct.so.1 +### usr/lib/libpcsclite.so.1 +### usr/lib/libltdl.so.3 +### usr/lib/libkrb5support.so.0 diff --git a/src/initramfs/tpm/etc/passwd b/src/initramfs/tpm/etc/passwd new file mode 100644 index 00000000..644c98f1 --- /dev/null +++ b/src/initramfs/tpm/etc/passwd @@ -0,0 +1,5 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/bash +daemon:x:2:2:Daemon:/sbin:/bin/bash +tss:x:111:112:Trusted Software Stack:/var/lib/tpm/:/bin/false +nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash diff --git a/src/initramfs/tpm/var/lib/tpm/system.data b/src/initramfs/tpm/var/lib/tpm/system.data new file mode 100644 index 00000000..ad10a1cd Binary files /dev/null and b/src/initramfs/tpm/var/lib/tpm/system.data differ diff --git a/src/initramfs/uclib-rootfs.old/bin/ash b/src/initramfs/uclib-rootfs.old/bin/ash new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/busybox b/src/initramfs/uclib-rootfs.old/bin/busybox new file mode 100755 index 00000000..8a9e390b Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/bin/busybox differ diff --git a/src/initramfs/uclib-rootfs.old/bin/cat b/src/initramfs/uclib-rootfs.old/bin/cat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/cat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/chgrp b/src/initramfs/uclib-rootfs.old/bin/chgrp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/chgrp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/chmod b/src/initramfs/uclib-rootfs.old/bin/chmod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/chmod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/chown b/src/initramfs/uclib-rootfs.old/bin/chown new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/chown @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/cp b/src/initramfs/uclib-rootfs.old/bin/cp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/cp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/cpio b/src/initramfs/uclib-rootfs.old/bin/cpio new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/cpio @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/cttyhack b/src/initramfs/uclib-rootfs.old/bin/cttyhack new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/cttyhack @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/date b/src/initramfs/uclib-rootfs.old/bin/date new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/date @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/dd b/src/initramfs/uclib-rootfs.old/bin/dd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/dd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/df b/src/initramfs/uclib-rootfs.old/bin/df new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/df @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/dmesg b/src/initramfs/uclib-rootfs.old/bin/dmesg new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/dmesg @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/echo b/src/initramfs/uclib-rootfs.old/bin/echo new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/echo @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/egrep b/src/initramfs/uclib-rootfs.old/bin/egrep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/egrep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/false b/src/initramfs/uclib-rootfs.old/bin/false new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/false @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/grep b/src/initramfs/uclib-rootfs.old/bin/grep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/grep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/gunzip b/src/initramfs/uclib-rootfs.old/bin/gunzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/gunzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/gzip b/src/initramfs/uclib-rootfs.old/bin/gzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/gzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ip b/src/initramfs/uclib-rootfs.old/bin/ip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ipcalc b/src/initramfs/uclib-rootfs.old/bin/ipcalc new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ipcalc @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/kill b/src/initramfs/uclib-rootfs.old/bin/kill new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/kill @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ldconfig b/src/initramfs/uclib-rootfs.old/bin/ldconfig new file mode 100755 index 00000000..71ea4b7c Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/bin/ldconfig differ diff --git a/src/initramfs/uclib-rootfs.old/bin/ln b/src/initramfs/uclib-rootfs.old/bin/ln new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ln @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ls b/src/initramfs/uclib-rootfs.old/bin/ls new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ls @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/mkdir b/src/initramfs/uclib-rootfs.old/bin/mkdir new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/mkdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/mknod b/src/initramfs/uclib-rootfs.old/bin/mknod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/mknod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/mount b/src/initramfs/uclib-rootfs.old/bin/mount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/mount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/mv b/src/initramfs/uclib-rootfs.old/bin/mv new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/mv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/nice b/src/initramfs/uclib-rootfs.old/bin/nice new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/nice @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/pidof b/src/initramfs/uclib-rootfs.old/bin/pidof new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/pidof @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ping b/src/initramfs/uclib-rootfs.old/bin/ping new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ping @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/ps b/src/initramfs/uclib-rootfs.old/bin/ps new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/ps @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/pwd b/src/initramfs/uclib-rootfs.old/bin/pwd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/pwd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/rm b/src/initramfs/uclib-rootfs.old/bin/rm new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/rm @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/sed b/src/initramfs/uclib-rootfs.old/bin/sed new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/sed @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/sh b/src/initramfs/uclib-rootfs.old/bin/sh new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/sh @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/sleep b/src/initramfs/uclib-rootfs.old/bin/sleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/sleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/sync b/src/initramfs/uclib-rootfs.old/bin/sync new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/sync @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/tar b/src/initramfs/uclib-rootfs.old/bin/tar new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/tar @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/touch b/src/initramfs/uclib-rootfs.old/bin/touch new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/touch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/true b/src/initramfs/uclib-rootfs.old/bin/true new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/true @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/umount b/src/initramfs/uclib-rootfs.old/bin/umount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/umount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/uname b/src/initramfs/uclib-rootfs.old/bin/uname new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/uname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/usleep b/src/initramfs/uclib-rootfs.old/bin/usleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/usleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/vi b/src/initramfs/uclib-rootfs.old/bin/vi new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/vi @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/bin/zcat b/src/initramfs/uclib-rootfs.old/bin/zcat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/bin/zcat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/etc/ld.so.cache b/src/initramfs/uclib-rootfs.old/etc/ld.so.cache new file mode 100644 index 00000000..eb53c2b9 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/ld.so.cache differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/a/ansi b/src/initramfs/uclib-rootfs.old/etc/terminfo/a/ansi new file mode 100644 index 00000000..52e58b23 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/a/ansi differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/d/dumb b/src/initramfs/uclib-rootfs.old/etc/terminfo/d/dumb new file mode 100644 index 00000000..fd4091a9 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/d/dumb differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/l/linux b/src/initramfs/uclib-rootfs.old/etc/terminfo/l/linux new file mode 100644 index 00000000..2c3ceb70 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/l/linux differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/r/rxvt b/src/initramfs/uclib-rootfs.old/etc/terminfo/r/rxvt new file mode 100644 index 00000000..1e81ea1f Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/r/rxvt differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/s/screen b/src/initramfs/uclib-rootfs.old/etc/terminfo/s/screen new file mode 100644 index 00000000..142b54a6 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/s/screen differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/s/sun b/src/initramfs/uclib-rootfs.old/etc/terminfo/s/sun new file mode 100644 index 00000000..1976f973 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/s/sun differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt100 b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt100 new file mode 100644 index 00000000..1a7176dd Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt100 differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt102 b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt102 new file mode 100644 index 00000000..b9a393c5 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt102 differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt200 b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt200 new file mode 120000 index 00000000..5f37425d --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt200 @@ -0,0 +1 @@ +../v/vt220 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt220 b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt220 new file mode 100644 index 00000000..b3d4d9fb Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt220 differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt52 b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt52 new file mode 100644 index 00000000..b3f466f2 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/v/vt52 differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm new file mode 100644 index 00000000..a626ac94 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-color b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-color new file mode 100644 index 00000000..10bf2e1a Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-color differ diff --git a/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-xfree86 b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-xfree86 new file mode 100644 index 00000000..f5f9c2d3 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/etc/terminfo/x/xterm-xfree86 differ diff --git a/src/initramfs/uclib-rootfs.old/lib/ld-uClibc-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/ld-uClibc-0.9.30.1.so new file mode 100755 index 00000000..51a8fc4b Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/ld-uClibc-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/ld-uClibc.so.0 b/src/initramfs/uclib-rootfs.old/lib/ld-uClibc.so.0 new file mode 120000 index 00000000..3dc0074e --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/ld-uClibc.so.0 @@ -0,0 +1 @@ +ld-uClibc-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libc.so.0 b/src/initramfs/uclib-rootfs.old/lib/libc.so.0 new file mode 120000 index 00000000..7ea3dfa2 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libc.so.0 @@ -0,0 +1 @@ +libuClibc-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libcrypt-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libcrypt-0.9.30.1.so new file mode 100755 index 00000000..e5c3d405 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libcrypt-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libcrypt.so.0 b/src/initramfs/uclib-rootfs.old/lib/libcrypt.so.0 new file mode 120000 index 00000000..efbe4755 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libcrypt.so.0 @@ -0,0 +1 @@ +libcrypt-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libdl-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libdl-0.9.30.1.so new file mode 100755 index 00000000..3a4c5784 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libdl-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libdl.so.0 b/src/initramfs/uclib-rootfs.old/lib/libdl.so.0 new file mode 120000 index 00000000..94f8b370 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libdl.so.0 @@ -0,0 +1 @@ +libdl-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libm-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libm-0.9.30.1.so new file mode 100755 index 00000000..18b0eaf4 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libm-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libm.so.0 b/src/initramfs/uclib-rootfs.old/lib/libm.so.0 new file mode 120000 index 00000000..7c83f175 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libm.so.0 @@ -0,0 +1 @@ +libm-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libnsl-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libnsl-0.9.30.1.so new file mode 100755 index 00000000..d10310dd Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libnsl-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libnsl.so.0 b/src/initramfs/uclib-rootfs.old/lib/libnsl.so.0 new file mode 120000 index 00000000..06a67360 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libnsl.so.0 @@ -0,0 +1 @@ +libnsl-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libpthread-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libpthread-0.9.30.1.so new file mode 100755 index 00000000..34953439 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libpthread-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libpthread.so.0 b/src/initramfs/uclib-rootfs.old/lib/libpthread.so.0 new file mode 120000 index 00000000..6e3f5a3d --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libpthread.so.0 @@ -0,0 +1 @@ +libpthread-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libresolv-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libresolv-0.9.30.1.so new file mode 100755 index 00000000..42f2dda0 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libresolv-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libresolv.so.0 b/src/initramfs/uclib-rootfs.old/lib/libresolv.so.0 new file mode 120000 index 00000000..5fbd926b --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libresolv.so.0 @@ -0,0 +1 @@ +libresolv-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/librt-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/librt-0.9.30.1.so new file mode 100755 index 00000000..6595380e Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/librt-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/librt.so.0 b/src/initramfs/uclib-rootfs.old/lib/librt.so.0 new file mode 120000 index 00000000..f61c6e12 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/librt.so.0 @@ -0,0 +1 @@ +librt-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libthread_db-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libthread_db-0.9.30.1.so new file mode 100755 index 00000000..2946dac7 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libthread_db-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libthread_db.so.1 b/src/initramfs/uclib-rootfs.old/lib/libthread_db.so.1 new file mode 120000 index 00000000..30ee3cef --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libthread_db.so.1 @@ -0,0 +1 @@ +libthread_db-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libuClibc-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libuClibc-0.9.30.1.so new file mode 100755 index 00000000..0300bb7c Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libuClibc-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libutil-0.9.30.1.so b/src/initramfs/uclib-rootfs.old/lib/libutil-0.9.30.1.so new file mode 100755 index 00000000..b1c68245 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libutil-0.9.30.1.so differ diff --git a/src/initramfs/uclib-rootfs.old/lib/libutil.so.0 b/src/initramfs/uclib-rootfs.old/lib/libutil.so.0 new file mode 120000 index 00000000..c7d6d48b --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libutil.so.0 @@ -0,0 +1 @@ +libutil-0.9.30.1.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libz.so b/src/initramfs/uclib-rootfs.old/lib/libz.so new file mode 120000 index 00000000..c52c0288 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libz.so @@ -0,0 +1 @@ +libz.so.1.2.3 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libz.so.1 b/src/initramfs/uclib-rootfs.old/lib/libz.so.1 new file mode 120000 index 00000000..c52c0288 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/lib/libz.so.1 @@ -0,0 +1 @@ +libz.so.1.2.3 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/lib/libz.so.1.2.3 b/src/initramfs/uclib-rootfs.old/lib/libz.so.1.2.3 new file mode 100755 index 00000000..1b2329fb Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/lib/libz.so.1.2.3 differ diff --git a/src/initramfs/uclib-rootfs.old/sbin/dnbd-client b/src/initramfs/uclib-rootfs.old/sbin/dnbd-client new file mode 100755 index 00000000..4d1f4b2c Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/sbin/dnbd-client differ diff --git a/src/initramfs/uclib-rootfs.old/sbin/fbsplash b/src/initramfs/uclib-rootfs.old/sbin/fbsplash new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/fbsplash @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/fdisk b/src/initramfs/uclib-rootfs.old/sbin/fdisk new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/fdisk @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/getty b/src/initramfs/uclib-rootfs.old/sbin/getty new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/getty @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/halt b/src/initramfs/uclib-rootfs.old/sbin/halt new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/halt @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/hdparm b/src/initramfs/uclib-rootfs.old/sbin/hdparm new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/hdparm @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/hwclock b/src/initramfs/uclib-rootfs.old/sbin/hwclock new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/hwclock @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/ifrename b/src/initramfs/uclib-rootfs.old/sbin/ifrename new file mode 100755 index 00000000..015f7a4c Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/sbin/ifrename differ diff --git a/src/initramfs/uclib-rootfs.old/sbin/inotifyd b/src/initramfs/uclib-rootfs.old/sbin/inotifyd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/inotifyd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/insmod b/src/initramfs/uclib-rootfs.old/sbin/insmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/insmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/klogd b/src/initramfs/uclib-rootfs.old/sbin/klogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/klogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/loadkmap b/src/initramfs/uclib-rootfs.old/sbin/loadkmap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/loadkmap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/logread b/src/initramfs/uclib-rootfs.old/sbin/logread new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/logread @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/lsmod b/src/initramfs/uclib-rootfs.old/sbin/lsmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/lsmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/mdev b/src/initramfs/uclib-rootfs.old/sbin/mdev new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/mdev @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/mkdosfs b/src/initramfs/uclib-rootfs.old/sbin/mkdosfs new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/mkdosfs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/mkfs.vfat b/src/initramfs/uclib-rootfs.old/sbin/mkfs.vfat new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/mkfs.vfat @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/mkswap b/src/initramfs/uclib-rootfs.old/sbin/mkswap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/mkswap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/modprobe b/src/initramfs/uclib-rootfs.old/sbin/modprobe new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/modprobe @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/nbd-client b/src/initramfs/uclib-rootfs.old/sbin/nbd-client new file mode 100755 index 00000000..c22cb4b7 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/sbin/nbd-client differ diff --git a/src/initramfs/uclib-rootfs.old/sbin/poweroff b/src/initramfs/uclib-rootfs.old/sbin/poweroff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/poweroff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/reboot b/src/initramfs/uclib-rootfs.old/sbin/reboot new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/reboot @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/rmmod b/src/initramfs/uclib-rootfs.old/sbin/rmmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/rmmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/route b/src/initramfs/uclib-rootfs.old/sbin/route new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/route @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/start-stop-daemon b/src/initramfs/uclib-rootfs.old/sbin/start-stop-daemon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/start-stop-daemon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/swapoff b/src/initramfs/uclib-rootfs.old/sbin/swapoff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/swapoff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/swapon b/src/initramfs/uclib-rootfs.old/sbin/swapon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/swapon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/switch_root b/src/initramfs/uclib-rootfs.old/sbin/switch_root new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/switch_root @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/sysctl b/src/initramfs/uclib-rootfs.old/sbin/sysctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/sysctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/syslogd b/src/initramfs/uclib-rootfs.old/sbin/syslogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/syslogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/tunctl b/src/initramfs/uclib-rootfs.old/sbin/tunctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/tunctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/udhcpc b/src/initramfs/uclib-rootfs.old/sbin/udhcpc new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/udhcpc @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/vconfig b/src/initramfs/uclib-rootfs.old/sbin/vconfig new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/vconfig @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/watchdog b/src/initramfs/uclib-rootfs.old/sbin/watchdog new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/watchdog @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/sbin/zcip b/src/initramfs/uclib-rootfs.old/sbin/zcip new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/sbin/zcip @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/[ b/src/initramfs/uclib-rootfs.old/usr/bin/[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/[[ b/src/initramfs/uclib-rootfs.old/usr/bin/[[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/[[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/ar b/src/initramfs/uclib-rootfs.old/usr/bin/ar new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/ar @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/arping b/src/initramfs/uclib-rootfs.old/usr/bin/arping new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/arping @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/awk b/src/initramfs/uclib-rootfs.old/usr/bin/awk new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/awk @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/basename b/src/initramfs/uclib-rootfs.old/usr/bin/basename new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/basename @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/bunzip2 b/src/initramfs/uclib-rootfs.old/usr/bin/bunzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/bunzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/bzcat b/src/initramfs/uclib-rootfs.old/usr/bin/bzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/bzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/bzip2 b/src/initramfs/uclib-rootfs.old/usr/bin/bzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/bzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/chvt b/src/initramfs/uclib-rootfs.old/usr/bin/chvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/chvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/cut b/src/initramfs/uclib-rootfs.old/usr/bin/cut new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/cut @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/deallocvt b/src/initramfs/uclib-rootfs.old/usr/bin/deallocvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/deallocvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/du b/src/initramfs/uclib-rootfs.old/usr/bin/du new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/du @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/eject b/src/initramfs/uclib-rootfs.old/usr/bin/eject new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/eject @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/env b/src/initramfs/uclib-rootfs.old/usr/bin/env new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/env @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/expr b/src/initramfs/uclib-rootfs.old/usr/bin/expr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/expr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/find b/src/initramfs/uclib-rootfs.old/usr/bin/find new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/find @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/free b/src/initramfs/uclib-rootfs.old/usr/bin/free new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/free @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/ftpget b/src/initramfs/uclib-rootfs.old/usr/bin/ftpget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/ftpget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/ftpput b/src/initramfs/uclib-rootfs.old/usr/bin/ftpput new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/ftpput @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/getent b/src/initramfs/uclib-rootfs.old/usr/bin/getent new file mode 100755 index 00000000..30d515b7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/getent @@ -0,0 +1,43 @@ +#!/bin/sh +# $Header: /var/cvs/uClibc/extra/scripts/getent,v 1.2 2005/02/02 14:18:01 solar Exp $ +# +# Closely (not perfectly) emulate the behavior of glibc's getent utility +# +#passwd|shadow|group|aliases|hosts|networks|ethers|netgroup|protocols|services|rpc +# only returns the first match (by design) +# dns based search is not supported (hosts,networks) +# case-insensitive matches not supported (ethers; others?) +# may return false-positives (hosts,protocols,rpc,services,ethers) + +export PATH="${PATH}:/bin:/usr/bin" + +file="/etc/$1" +case $1 in + passwd|group) + match="^$2:\|^[^:]*:[^:]*:$2:" ;; + shadow) + match="^$2:" ;; + networks|netgroup) + match="^[[:space:]]*$2\>" ;; + hosts|protocols|rpc|services|ethers) + match="\<$2\>" ;; + aliases) + match="^[[:space:]]*$2[[:space:]]*:" ;; + ""|-h|--help) + echo "USAGE: $0 database [key]" + exit 0 ;; + *) + echo "$0: Unknown database: $1" 1>&2 + exit 1 ;; +esac + +if [ ! -f "$file" ] ; then + echo "$0: Could not find database file for $1" 1>&2 + exit 1 +fi + +if [ $# -eq 1 ] ; then + exec cat "$file" +else + sed "s/#.*//; /$match/q; d" "$file" | grep . || exit 2 +fi diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/head b/src/initramfs/uclib-rootfs.old/usr/bin/head new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/head @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/id b/src/initramfs/uclib-rootfs.old/usr/bin/id new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/id @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/killall b/src/initramfs/uclib-rootfs.old/usr/bin/killall new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/killall @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/ldd b/src/initramfs/uclib-rootfs.old/usr/bin/ldd new file mode 100755 index 00000000..f018ad28 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/usr/bin/ldd differ diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/less b/src/initramfs/uclib-rootfs.old/usr/bin/less new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/less @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/logger b/src/initramfs/uclib-rootfs.old/usr/bin/logger new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/logger @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/lzmacat b/src/initramfs/uclib-rootfs.old/usr/bin/lzmacat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/lzmacat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/md5sum b/src/initramfs/uclib-rootfs.old/usr/bin/md5sum new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/md5sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/nc b/src/initramfs/uclib-rootfs.old/usr/bin/nc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/nc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/ncurses5-config b/src/initramfs/uclib-rootfs.old/usr/bin/ncurses5-config new file mode 100755 index 00000000..bef48cd7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/ncurses5-config @@ -0,0 +1,156 @@ +#!/bin/sh +# $Id: ncurses-config.in,v 1.11 2006/10/28 20:22:52 tom Exp $ +############################################################################## +# Copyright (c) 2006 Free Software Foundation, Inc. # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # +############################################################################## +# +# Author: Thomas E. Dickey, 2006 + +prefix="/usr" +exec_prefix="${prefix}" + +bindir="${exec_prefix}/bin" +libdir="/lib" +datadir="/usr/share" +mandir="/usr/share/man" + +THIS="ncurses" + +test $# = 0 && exec /bin/sh $0 --error + +while test $# -gt 0; do + case "$1" in + -*=*) + ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` + ;; + *) + ARG= + ;; + esac + + case "$1" in + # basic configuration + --prefix=*) + prefix="$ARG" + test -z "$exec_prefix" && exec_prefix="$ARG" + ;; + --prefix) + echo "$prefix" + ;; + --exec-prefix=*) + exec_prefix="$ARG" + ;; + --exec-prefix) + echo "$exec_prefix" + ;; + # compile/link + --cflags) + INCS= + if test "${prefix}/include" != /usr/include ; then + INCS="-I${prefix}/include" + fi + if test "" != no ; then + INCS="$INCS -I${prefix}/include/${THIS}" + fi + sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO + $INCS +ENDECHO + ;; + --libs) + sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO + -L${exec_prefix}/lib -l${THIS} +ENDECHO + ;; + # identification + --version) + echo "5.6.20061217" + ;; + --abi-version) + echo "5" + ;; + --mouse-version) + echo "1" + ;; + # locations + --bindir) + echo "${bindir}" + ;; + --datadir) + echo "${datadir}" + ;; + --libdir) + echo "${libdir}" + ;; + --mandir) + echo "${mandir}" + ;; + --terminfo) + echo "/usr/share/terminfo" + ;; + --terminfo-dirs) + echo "/etc/terminfo:/usr/share/terminfo" + ;; + --termpath) + echo "" + ;; + # general info + --help) + cat <&2 + exit 1 + ;; + esac + shift +done +# vile:shmode diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/nmeter b/src/initramfs/uclib-rootfs.old/usr/bin/nmeter new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/nmeter @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/openvt b/src/initramfs/uclib-rootfs.old/usr/bin/openvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/openvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/printf b/src/initramfs/uclib-rootfs.old/usr/bin/printf new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/printf @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/readahead b/src/initramfs/uclib-rootfs.old/usr/bin/readahead new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/readahead @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/readlink b/src/initramfs/uclib-rootfs.old/usr/bin/readlink new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/readlink @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/realpath b/src/initramfs/uclib-rootfs.old/usr/bin/realpath new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/realpath @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/rpm2cpio b/src/initramfs/uclib-rootfs.old/usr/bin/rpm2cpio new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/rpm2cpio @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/sort b/src/initramfs/uclib-rootfs.old/usr/bin/sort new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/sort @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/strace b/src/initramfs/uclib-rootfs.old/usr/bin/strace new file mode 100755 index 00000000..3aec0598 Binary files /dev/null and b/src/initramfs/uclib-rootfs.old/usr/bin/strace differ diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/strings b/src/initramfs/uclib-rootfs.old/usr/bin/strings new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/strings @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/tail b/src/initramfs/uclib-rootfs.old/usr/bin/tail new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/tail @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/test b/src/initramfs/uclib-rootfs.old/usr/bin/test new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/test @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/tftp b/src/initramfs/uclib-rootfs.old/usr/bin/tftp new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/tftp @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/time b/src/initramfs/uclib-rootfs.old/usr/bin/time new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/time @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/timeout b/src/initramfs/uclib-rootfs.old/usr/bin/timeout new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/timeout @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/tr b/src/initramfs/uclib-rootfs.old/usr/bin/tr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/tr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/uniq b/src/initramfs/uclib-rootfs.old/usr/bin/uniq new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/uniq @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/unlzma b/src/initramfs/uclib-rootfs.old/usr/bin/unlzma new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/unlzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/uptime b/src/initramfs/uclib-rootfs.old/usr/bin/uptime new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/uptime @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/wc b/src/initramfs/uclib-rootfs.old/usr/bin/wc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/wc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/wget b/src/initramfs/uclib-rootfs.old/usr/bin/wget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/wget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/which b/src/initramfs/uclib-rootfs.old/usr/bin/which new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/which @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/whoami b/src/initramfs/uclib-rootfs.old/usr/bin/whoami new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/whoami @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/bin/xargs b/src/initramfs/uclib-rootfs.old/usr/bin/xargs new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/bin/xargs @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libc.so b/src/initramfs/uclib-rootfs.old/usr/lib/libc.so new file mode 100755 index 00000000..32a2e3d9 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libc.so @@ -0,0 +1,5 @@ +/* GNU ld script + * Use the shared library, but some functions are only in + * the static library, so try that secondarily. */ +OUTPUT_FORMAT ( elf32-i386 ) +GROUP ( /usr/lib/uclibc_nonshared.a /lib/libc.so.0 AS_NEEDED ( /lib/ld-uClibc.so.0 ) ) diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libcrypt.so b/src/initramfs/uclib-rootfs.old/usr/lib/libcrypt.so new file mode 120000 index 00000000..42735716 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libcrypt.so @@ -0,0 +1 @@ +../../lib/libcrypt.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libdl.so b/src/initramfs/uclib-rootfs.old/usr/lib/libdl.so new file mode 120000 index 00000000..f648150a --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libdl.so @@ -0,0 +1 @@ +../../lib/libdl.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libm.so b/src/initramfs/uclib-rootfs.old/usr/lib/libm.so new file mode 120000 index 00000000..8d5c614e --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libm.so @@ -0,0 +1 @@ +../../lib/libm.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libnsl.so b/src/initramfs/uclib-rootfs.old/usr/lib/libnsl.so new file mode 120000 index 00000000..b4a08661 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libnsl.so @@ -0,0 +1 @@ +../../lib/libnsl.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libpthread.so b/src/initramfs/uclib-rootfs.old/usr/lib/libpthread.so new file mode 120000 index 00000000..57f4003c --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libpthread.so @@ -0,0 +1 @@ +../../lib/libpthread.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libresolv.so b/src/initramfs/uclib-rootfs.old/usr/lib/libresolv.so new file mode 120000 index 00000000..f5b11fcd --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libresolv.so @@ -0,0 +1 @@ +../../lib/libresolv.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/librt.so b/src/initramfs/uclib-rootfs.old/usr/lib/librt.so new file mode 120000 index 00000000..b7dd09d3 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/librt.so @@ -0,0 +1 @@ +../../lib/librt.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libthread_db.so b/src/initramfs/uclib-rootfs.old/usr/lib/libthread_db.so new file mode 120000 index 00000000..e05f68f2 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libthread_db.so @@ -0,0 +1 @@ +../../lib/libthread_db.so.1 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libutil.so b/src/initramfs/uclib-rootfs.old/usr/lib/libutil.so new file mode 120000 index 00000000..5b103561 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libutil.so @@ -0,0 +1 @@ +../../lib/libutil.so.0 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/lib/libz.so b/src/initramfs/uclib-rootfs.old/usr/lib/libz.so new file mode 100755 index 00000000..97779630 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/lib/libz.so @@ -0,0 +1,11 @@ +/* GNU ld script + Since Gentoo has critical dynamic libraries in /lib, and the static versions + in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we + run into linking problems. This "fake" dynamic lib is a linker script that + redirects the linker to the real lib. And yes, this works in the cross- + compiling scenario as the sysroot-ed linker will prepend the real path. + + See bug http://bugs.gentoo.org/4411 for more info. + */ +OUTPUT_FORMAT ( elf32-i386 ) +GROUP ( /lib/libz.so ) diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/brctl b/src/initramfs/uclib-rootfs.old/usr/sbin/brctl new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/brctl @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/chroot b/src/initramfs/uclib-rootfs.old/usr/sbin/chroot new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/chroot @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/fbset b/src/initramfs/uclib-rootfs.old/usr/sbin/fbset new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/fbset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/httpd b/src/initramfs/uclib-rootfs.old/usr/sbin/httpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/httpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/loadfont b/src/initramfs/uclib-rootfs.old/usr/sbin/loadfont new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/loadfont @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/rdate b/src/initramfs/uclib-rootfs.old/usr/sbin/rdate new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/rdate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/setlogcons b/src/initramfs/uclib-rootfs.old/usr/sbin/setlogcons new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/setlogcons @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs.old/usr/sbin/udhcpd b/src/initramfs/uclib-rootfs.old/usr/sbin/udhcpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs.old/usr/sbin/udhcpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ash b/src/initramfs/uclib-rootfs/bin/ash new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/bash b/src/initramfs/uclib-rootfs/bin/bash new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/bash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/busybox b/src/initramfs/uclib-rootfs/bin/busybox new file mode 100755 index 00000000..fa652e7b Binary files /dev/null and b/src/initramfs/uclib-rootfs/bin/busybox differ diff --git a/src/initramfs/uclib-rootfs/bin/cat b/src/initramfs/uclib-rootfs/bin/cat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/cat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/chgrp b/src/initramfs/uclib-rootfs/bin/chgrp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/chgrp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/chmod b/src/initramfs/uclib-rootfs/bin/chmod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/chmod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/chown b/src/initramfs/uclib-rootfs/bin/chown new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/chown @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/cp b/src/initramfs/uclib-rootfs/bin/cp new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/cp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/cpio b/src/initramfs/uclib-rootfs/bin/cpio new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/cpio @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/cttyhack b/src/initramfs/uclib-rootfs/bin/cttyhack new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/cttyhack @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/date b/src/initramfs/uclib-rootfs/bin/date new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/date @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/dd b/src/initramfs/uclib-rootfs/bin/dd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/dd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/df b/src/initramfs/uclib-rootfs/bin/df new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/df @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/dmesg b/src/initramfs/uclib-rootfs/bin/dmesg new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/dmesg @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/echo b/src/initramfs/uclib-rootfs/bin/echo new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/echo @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/egrep b/src/initramfs/uclib-rootfs/bin/egrep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/egrep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/false b/src/initramfs/uclib-rootfs/bin/false new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/false @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/grep b/src/initramfs/uclib-rootfs/bin/grep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/grep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/gunzip b/src/initramfs/uclib-rootfs/bin/gunzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/gunzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/gzip b/src/initramfs/uclib-rootfs/bin/gzip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/gzip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ip b/src/initramfs/uclib-rootfs/bin/ip new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ipcalc b/src/initramfs/uclib-rootfs/bin/ipcalc new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ipcalc @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/kill b/src/initramfs/uclib-rootfs/bin/kill new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/kill @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ln b/src/initramfs/uclib-rootfs/bin/ln new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ln @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ls b/src/initramfs/uclib-rootfs/bin/ls new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ls @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/mkdir b/src/initramfs/uclib-rootfs/bin/mkdir new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/mkdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/mknod b/src/initramfs/uclib-rootfs/bin/mknod new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/mknod @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/mount b/src/initramfs/uclib-rootfs/bin/mount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/mount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/mv b/src/initramfs/uclib-rootfs/bin/mv new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/mv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/nice b/src/initramfs/uclib-rootfs/bin/nice new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/nice @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/pidof b/src/initramfs/uclib-rootfs/bin/pidof new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/pidof @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ping b/src/initramfs/uclib-rootfs/bin/ping new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ping @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/ps b/src/initramfs/uclib-rootfs/bin/ps new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/ps @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/pwd b/src/initramfs/uclib-rootfs/bin/pwd new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/pwd @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/rev b/src/initramfs/uclib-rootfs/bin/rev new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/rev @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/rm b/src/initramfs/uclib-rootfs/bin/rm new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/rm @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/sed b/src/initramfs/uclib-rootfs/bin/sed new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/sed @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/sh b/src/initramfs/uclib-rootfs/bin/sh new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/sh @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/sleep b/src/initramfs/uclib-rootfs/bin/sleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/sleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/sync b/src/initramfs/uclib-rootfs/bin/sync new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/sync @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/tar b/src/initramfs/uclib-rootfs/bin/tar new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/tar @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/touch b/src/initramfs/uclib-rootfs/bin/touch new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/touch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/true b/src/initramfs/uclib-rootfs/bin/true new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/true @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/umount b/src/initramfs/uclib-rootfs/bin/umount new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/umount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/uname b/src/initramfs/uclib-rootfs/bin/uname new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/uname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/usleep b/src/initramfs/uclib-rootfs/bin/usleep new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/usleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/vi b/src/initramfs/uclib-rootfs/bin/vi new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/vi @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/bin/zcat b/src/initramfs/uclib-rootfs/bin/zcat new file mode 120000 index 00000000..c3fa8102 --- /dev/null +++ b/src/initramfs/uclib-rootfs/bin/zcat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/lib/ld-2.11.2.so b/src/initramfs/uclib-rootfs/lib/ld-2.11.2.so new file mode 100755 index 00000000..fecb3a46 Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/ld-2.11.2.so differ diff --git a/src/initramfs/uclib-rootfs/lib/ld-linux.so.2 b/src/initramfs/uclib-rootfs/lib/ld-linux.so.2 new file mode 120000 index 00000000..e1654955 --- /dev/null +++ b/src/initramfs/uclib-rootfs/lib/ld-linux.so.2 @@ -0,0 +1 @@ +ld-2.11.2.so \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/lib/libc.so.6 b/src/initramfs/uclib-rootfs/lib/libc.so.6 new file mode 100644 index 00000000..bfd7ef5d Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libc.so.6 differ diff --git a/src/initramfs/uclib-rootfs/lib/libdbus-1.so.3 b/src/initramfs/uclib-rootfs/lib/libdbus-1.so.3 new file mode 100644 index 00000000..526f06dc Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libdbus-1.so.3 differ diff --git a/src/initramfs/uclib-rootfs/lib/libdl.so.2 b/src/initramfs/uclib-rootfs/lib/libdl.so.2 new file mode 100644 index 00000000..b7d6dacc Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libdl.so.2 differ diff --git a/src/initramfs/uclib-rootfs/lib/libhal.so.1 b/src/initramfs/uclib-rootfs/lib/libhal.so.1 new file mode 100644 index 00000000..8db463f0 Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libhal.so.1 differ diff --git a/src/initramfs/uclib-rootfs/lib/libm.so.6 b/src/initramfs/uclib-rootfs/lib/libm.so.6 new file mode 100644 index 00000000..0e557bfe Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libm.so.6 differ diff --git a/src/initramfs/uclib-rootfs/lib/libpthread.so.0 b/src/initramfs/uclib-rootfs/lib/libpthread.so.0 new file mode 100755 index 00000000..55de7d33 Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/libpthread.so.0 differ diff --git a/src/initramfs/uclib-rootfs/lib/librt.so.1 b/src/initramfs/uclib-rootfs/lib/librt.so.1 new file mode 100644 index 00000000..fbea0db1 Binary files /dev/null and b/src/initramfs/uclib-rootfs/lib/librt.so.1 differ diff --git a/src/initramfs/uclib-rootfs/sbin/bootchartd b/src/initramfs/uclib-rootfs/sbin/bootchartd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/bootchartd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/fbsplash b/src/initramfs/uclib-rootfs/sbin/fbsplash new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/fbsplash @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/fdisk b/src/initramfs/uclib-rootfs/sbin/fdisk new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/fdisk @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/getty b/src/initramfs/uclib-rootfs/sbin/getty new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/getty @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/halt b/src/initramfs/uclib-rootfs/sbin/halt new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/halt @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/hdparm b/src/initramfs/uclib-rootfs/sbin/hdparm new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/hdparm @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/hwclock b/src/initramfs/uclib-rootfs/sbin/hwclock new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/hwclock @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/inotifyd b/src/initramfs/uclib-rootfs/sbin/inotifyd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/inotifyd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/insmod b/src/initramfs/uclib-rootfs/sbin/insmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/insmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/klogd b/src/initramfs/uclib-rootfs/sbin/klogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/klogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/ldconfig b/src/initramfs/uclib-rootfs/sbin/ldconfig new file mode 100755 index 00000000..74da4189 Binary files /dev/null and b/src/initramfs/uclib-rootfs/sbin/ldconfig differ diff --git a/src/initramfs/uclib-rootfs/sbin/loadkmap b/src/initramfs/uclib-rootfs/sbin/loadkmap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/loadkmap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/logread b/src/initramfs/uclib-rootfs/sbin/logread new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/logread @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/lsmod b/src/initramfs/uclib-rootfs/sbin/lsmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/lsmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/lspci b/src/initramfs/uclib-rootfs/sbin/lspci new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/lspci @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/lsusb b/src/initramfs/uclib-rootfs/sbin/lsusb new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/lsusb @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/mdev b/src/initramfs/uclib-rootfs/sbin/mdev new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/mdev @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/mkdosfs b/src/initramfs/uclib-rootfs/sbin/mkdosfs new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/mkdosfs @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/mkfs.vfat b/src/initramfs/uclib-rootfs/sbin/mkfs.vfat new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/mkfs.vfat @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/mkswap b/src/initramfs/uclib-rootfs/sbin/mkswap new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/mkswap @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/modinfo b/src/initramfs/uclib-rootfs/sbin/modinfo new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/modinfo @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/modprobe b/src/initramfs/uclib-rootfs/sbin/modprobe new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/modprobe @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/poweroff b/src/initramfs/uclib-rootfs/sbin/poweroff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/poweroff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/reboot b/src/initramfs/uclib-rootfs/sbin/reboot new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/reboot @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/rmmod b/src/initramfs/uclib-rootfs/sbin/rmmod new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/rmmod @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/route b/src/initramfs/uclib-rootfs/sbin/route new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/route @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/start-stop-daemon b/src/initramfs/uclib-rootfs/sbin/start-stop-daemon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/start-stop-daemon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/swapoff b/src/initramfs/uclib-rootfs/sbin/swapoff new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/swapoff @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/swapon b/src/initramfs/uclib-rootfs/sbin/swapon new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/swapon @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/switch_root b/src/initramfs/uclib-rootfs/sbin/switch_root new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/switch_root @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/sysctl b/src/initramfs/uclib-rootfs/sbin/sysctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/sysctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/syslogd b/src/initramfs/uclib-rootfs/sbin/syslogd new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/syslogd @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/tunctl b/src/initramfs/uclib-rootfs/sbin/tunctl new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/tunctl @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/udhcpc b/src/initramfs/uclib-rootfs/sbin/udhcpc new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/udhcpc @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/vconfig b/src/initramfs/uclib-rootfs/sbin/vconfig new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/vconfig @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/watchdog b/src/initramfs/uclib-rootfs/sbin/watchdog new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/watchdog @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/sbin/zcip b/src/initramfs/uclib-rootfs/sbin/zcip new file mode 120000 index 00000000..71259713 --- /dev/null +++ b/src/initramfs/uclib-rootfs/sbin/zcip @@ -0,0 +1 @@ +../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/[ b/src/initramfs/uclib-rootfs/usr/bin/[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/[[ b/src/initramfs/uclib-rootfs/usr/bin/[[ new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/[[ @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/ar b/src/initramfs/uclib-rootfs/usr/bin/ar new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/ar @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/arping b/src/initramfs/uclib-rootfs/usr/bin/arping new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/arping @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/awk b/src/initramfs/uclib-rootfs/usr/bin/awk new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/awk @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/basename b/src/initramfs/uclib-rootfs/usr/bin/basename new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/basename @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/bunzip2 b/src/initramfs/uclib-rootfs/usr/bin/bunzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/bunzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/bzcat b/src/initramfs/uclib-rootfs/usr/bin/bzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/bzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/bzip2 b/src/initramfs/uclib-rootfs/usr/bin/bzip2 new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/bzip2 @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/chvt b/src/initramfs/uclib-rootfs/usr/bin/chvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/chvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/cut b/src/initramfs/uclib-rootfs/usr/bin/cut new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/cut @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/deallocvt b/src/initramfs/uclib-rootfs/usr/bin/deallocvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/deallocvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/du b/src/initramfs/uclib-rootfs/usr/bin/du new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/du @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/dumpleases b/src/initramfs/uclib-rootfs/usr/bin/dumpleases new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/dumpleases @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/eject b/src/initramfs/uclib-rootfs/usr/bin/eject new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/eject @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/env b/src/initramfs/uclib-rootfs/usr/bin/env new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/env @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/expr b/src/initramfs/uclib-rootfs/usr/bin/expr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/expr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/fgconsole b/src/initramfs/uclib-rootfs/usr/bin/fgconsole new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/fgconsole @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/find b/src/initramfs/uclib-rootfs/usr/bin/find new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/find @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/flock b/src/initramfs/uclib-rootfs/usr/bin/flock new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/flock @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/free b/src/initramfs/uclib-rootfs/usr/bin/free new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/free @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/ftpget b/src/initramfs/uclib-rootfs/usr/bin/ftpget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/ftpget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/ftpput b/src/initramfs/uclib-rootfs/usr/bin/ftpput new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/ftpput @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/head b/src/initramfs/uclib-rootfs/usr/bin/head new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/head @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/id b/src/initramfs/uclib-rootfs/usr/bin/id new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/id @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/killall b/src/initramfs/uclib-rootfs/usr/bin/killall new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/killall @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/ld b/src/initramfs/uclib-rootfs/usr/bin/ld new file mode 100755 index 00000000..f169e2ec Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/bin/ld differ diff --git a/src/initramfs/uclib-rootfs/usr/bin/ldd b/src/initramfs/uclib-rootfs/usr/bin/ldd new file mode 100755 index 00000000..4dba3cfb --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/ldd @@ -0,0 +1,193 @@ +#! /bin/bash +# Copyright (C) 1996-2008, 2009 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + + +# This is the `ldd' command, which lists what shared libraries are +# used by given dynamically-linked executables. It works by invoking the +# run-time dynamic linker as a command and setting the environment +# variable LD_TRACE_LOADED_OBJECTS to a non-empty value. + +# We should be able to find the translation right at the beginning. +TEXTDOMAIN=libc +TEXTDOMAINDIR=/usr/share/locale + +RTLDLIST="/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2" +warn= +bind_now= +verbose= + +while test $# -gt 0; do + case "$1" in + --vers | --versi | --versio | --version) + echo 'ldd (Debian EGLIBC 2.11.2-2) 2.11.2' + printf $"Copyright (C) %s Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +" "2009" + printf $"Written by %s and %s. +" "Roland McGrath" "Ulrich Drepper" + exit 0 + ;; + --h | --he | --hel | --help) + printf $"Usage: ldd [OPTION]... FILE... + --help print this help and exit + --version print version information and exit + -d, --data-relocs process data relocations + -r, --function-relocs process data and function relocations + -u, --unused print unused direct dependencies + -v, --verbose print all information +" + printf $"For bug reporting instructions, please see: +%s. +" "" + exit 0 + ;; + -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ + --data-rel | --data-relo | --data-reloc | --data-relocs) + warn=yes + shift + ;; + -r | --f | --fu | --fun | --func | --funct | --functi | --functio | \ + --function | --function- | --function-r | --function-re | --function-rel | \ + --function-relo | --function-reloc | --function-relocs) + warn=yes + bind_now=yes + shift + ;; + -v | --verb | --verbo | --verbos | --verbose) + verbose=yes + shift + ;; + -u | --u | --un | --unu | --unus | --unuse | --unused) + unused=yes + shift + ;; + --v | --ve | --ver) + echo >&2 $"ldd: option \`$1' is ambiguous" + exit 1 + ;; + --) # Stop option processing. + shift; break + ;; + -*) + echo >&2 'ldd:' $"unrecognized option" "\`$1'" + echo >&2 $"Try \`ldd --help' for more information." + exit 1 + ;; + *) + break + ;; + esac +done + +nonelf () +{ + # Maybe extra code for non-ELF binaries. + return 1; +} + +add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now" +add_env="$add_env LD_LIBRARY_VERSION=\$verify_out" +add_env="$add_env LD_VERBOSE=$verbose" +if test "$unused" = yes; then + add_env="$add_env LD_DEBUG=\"$LD_DEBUG${LD_DEBUG:+,}unused\"" +fi + +# The following use of cat is needed to make ldd work in SELinux +# environments where the executed program might not have permissions +# to write to the console/tty. But only bash 3.x supports the pipefail +# option, and we don't bother to handle the case for older bash versions. +if x=`set -o` && test "$x" != "${x#*pipefail}" && set -o pipefail ; then + try_trace() { + eval $add_env '"$@"' | cat + } +else + try_trace() { + eval $add_env '"$@"' + } +fi + +case $# in +0) + echo >&2 'ldd:' $"missing file arguments" + echo >&2 $"Try \`ldd --help' for more information." + exit 1 + ;; +1) + single_file=t + ;; +*) + single_file=f + ;; +esac + +result=0 +for file do + # We don't list the file name when there is only one. + test $single_file = t || echo "${file}:" + case $file in + */*) : + ;; + *) file=./$file + ;; + esac + if test ! -e "$file"; then + echo "ldd: ${file}:" $"No such file or directory" >&2 + result=1 + elif test ! -f "$file"; then + echo "ldd: ${file}:" $"not regular file" >&2 + result=1 + elif test -r "$file"; then + RTLD= + ret=1 + for rtld in ${RTLDLIST}; do + if test -x $rtld; then + verify_out=`${rtld} --verify "$file"` + ret=$? + case $ret in + [02]) RTLD=${rtld}; break;; + esac + fi + done + case $ret in + 0|2) + try_trace "$RTLD" "$file" || result=1 + ;; + 1|126) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { + echo $" not a dynamic executable" + result=1 + } + ;; + *) + echo 'ldd:' ${RTLD} $"exited with unknown exit code" "($ret)" >&2 + exit 1 + ;; + esac + else + echo 'ldd:' $"error: you do not have read permission for" "\`$file'" >&2 + result=1 + fi +done + +exit $result +# Local Variables: +# mode:ksh +# End: diff --git a/src/initramfs/uclib-rootfs/usr/bin/less b/src/initramfs/uclib-rootfs/usr/bin/less new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/less @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/logger b/src/initramfs/uclib-rootfs/usr/bin/logger new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/logger @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/lspci b/src/initramfs/uclib-rootfs/usr/bin/lspci new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/lspci @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/lsusb b/src/initramfs/uclib-rootfs/usr/bin/lsusb new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/lsusb @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/lzcat b/src/initramfs/uclib-rootfs/usr/bin/lzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/lzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/lzma b/src/initramfs/uclib-rootfs/usr/bin/lzma new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/lzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/lzmacat b/src/initramfs/uclib-rootfs/usr/bin/lzmacat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/lzmacat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/md5sum b/src/initramfs/uclib-rootfs/usr/bin/md5sum new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/md5sum @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/nc b/src/initramfs/uclib-rootfs/usr/bin/nc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/nc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/nmeter b/src/initramfs/uclib-rootfs/usr/bin/nmeter new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/nmeter @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/openvt b/src/initramfs/uclib-rootfs/usr/bin/openvt new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/openvt @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/printf b/src/initramfs/uclib-rootfs/usr/bin/printf new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/printf @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/readahead b/src/initramfs/uclib-rootfs/usr/bin/readahead new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/readahead @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/readlink b/src/initramfs/uclib-rootfs/usr/bin/readlink new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/readlink @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/realpath b/src/initramfs/uclib-rootfs/usr/bin/realpath new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/realpath @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/rpm2cpio b/src/initramfs/uclib-rootfs/usr/bin/rpm2cpio new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/rpm2cpio @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/rzscontrol b/src/initramfs/uclib-rootfs/usr/bin/rzscontrol new file mode 100755 index 00000000..0d7f2702 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/bin/rzscontrol differ diff --git a/src/initramfs/uclib-rootfs/usr/bin/smemcap b/src/initramfs/uclib-rootfs/usr/bin/smemcap new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/smemcap @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/sort b/src/initramfs/uclib-rootfs/usr/bin/sort new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/sort @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/strace b/src/initramfs/uclib-rootfs/usr/bin/strace new file mode 100755 index 00000000..efe78e71 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/bin/strace differ diff --git a/src/initramfs/uclib-rootfs/usr/bin/strings b/src/initramfs/uclib-rootfs/usr/bin/strings new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/strings @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/tail b/src/initramfs/uclib-rootfs/usr/bin/tail new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/tail @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/test b/src/initramfs/uclib-rootfs/usr/bin/test new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/test @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/tftp b/src/initramfs/uclib-rootfs/usr/bin/tftp new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/tftp @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/time b/src/initramfs/uclib-rootfs/usr/bin/time new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/time @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/timeout b/src/initramfs/uclib-rootfs/usr/bin/timeout new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/timeout @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/tr b/src/initramfs/uclib-rootfs/usr/bin/tr new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/tr @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/uniq b/src/initramfs/uclib-rootfs/usr/bin/uniq new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/uniq @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/unlzma b/src/initramfs/uclib-rootfs/usr/bin/unlzma new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/unlzma @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/unxz b/src/initramfs/uclib-rootfs/usr/bin/unxz new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/unxz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/uptime b/src/initramfs/uclib-rootfs/usr/bin/uptime new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/uptime @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/wc b/src/initramfs/uclib-rootfs/usr/bin/wc new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/wc @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/wget b/src/initramfs/uclib-rootfs/usr/bin/wget new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/wget @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/which b/src/initramfs/uclib-rootfs/usr/bin/which new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/which @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/whoami b/src/initramfs/uclib-rootfs/usr/bin/whoami new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/whoami @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/xargs b/src/initramfs/uclib-rootfs/usr/bin/xargs new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/xargs @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/xz b/src/initramfs/uclib-rootfs/usr/bin/xz new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/xz @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/bin/xzcat b/src/initramfs/uclib-rootfs/usr/bin/xzcat new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/bin/xzcat @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so b/src/initramfs/uclib-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so new file mode 100644 index 00000000..ae24957b Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libbfd-2.20.1-system.20100303.so differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libfusion-1.2.so.9 b/src/initramfs/uclib-rootfs/usr/lib/libfusion-1.2.so.9 new file mode 100644 index 00000000..1b8d84ea Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libfusion-1.2.so.9 differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libgcc_s.so.1 b/src/initramfs/uclib-rootfs/usr/lib/libgcc_s.so.1 new file mode 100644 index 00000000..f893c04d Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libgcc_s.so.1 differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libhal.so.1 b/src/initramfs/uclib-rootfs/usr/lib/libhal.so.1 new file mode 100644 index 00000000..8db463f0 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libhal.so.1 differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libhd.so.16 b/src/initramfs/uclib-rootfs/usr/lib/libhd.so.16 new file mode 100644 index 00000000..3fd68f29 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libhd.so.16 differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libm.so b/src/initramfs/uclib-rootfs/usr/lib/libm.so new file mode 120000 index 00000000..6c7b429c --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/lib/libm.so @@ -0,0 +1 @@ +/lib/libm.so.6 \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/lib/libpcre.so.3 b/src/initramfs/uclib-rootfs/usr/lib/libpcre.so.3 new file mode 100644 index 00000000..d11113bb Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libpcre.so.3 differ diff --git a/src/initramfs/uclib-rootfs/usr/lib/libz.so.1 b/src/initramfs/uclib-rootfs/usr/lib/libz.so.1 new file mode 100644 index 00000000..c1b51178 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/lib/libz.so.1 differ diff --git a/src/initramfs/uclib-rootfs/usr/sbin/brctl b/src/initramfs/uclib-rootfs/usr/sbin/brctl new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/brctl @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/chroot b/src/initramfs/uclib-rootfs/usr/sbin/chroot new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/chroot @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/dhcprelay b/src/initramfs/uclib-rootfs/usr/sbin/dhcprelay new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/dhcprelay @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/fbset b/src/initramfs/uclib-rootfs/usr/sbin/fbset new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/fbset @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/httpd b/src/initramfs/uclib-rootfs/usr/sbin/httpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/httpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/hwinfo b/src/initramfs/uclib-rootfs/usr/sbin/hwinfo new file mode 100755 index 00000000..5dbe48a4 Binary files /dev/null and b/src/initramfs/uclib-rootfs/usr/sbin/hwinfo differ diff --git a/src/initramfs/uclib-rootfs/usr/sbin/loadfont b/src/initramfs/uclib-rootfs/usr/sbin/loadfont new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/loadfont @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/rdate b/src/initramfs/uclib-rootfs/usr/sbin/rdate new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/rdate @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/setlogcons b/src/initramfs/uclib-rootfs/usr/sbin/setlogcons new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/setlogcons @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/initramfs/uclib-rootfs/usr/sbin/udhcpd b/src/initramfs/uclib-rootfs/usr/sbin/udhcpd new file mode 120000 index 00000000..f948f1a7 --- /dev/null +++ b/src/initramfs/uclib-rootfs/usr/sbin/udhcpd @@ -0,0 +1 @@ +../../bin/busybox \ No newline at end of file diff --git a/src/installer/OpenSLX/OSExport/BlockDevice/AoE.pm b/src/installer/OpenSLX/OSExport/BlockDevice/AoE.pm new file mode 100644 index 00000000..cc7866b5 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/BlockDevice/AoE.pm @@ -0,0 +1,95 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# AoE.pm +# - provides ATA-over-Ethernet specific overrides of the +# OpenSLX::OSExport::BlockDevice API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::BlockDevice::AoE; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::BlockDevice::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::OSExport::BlockDevice::Base 1; +use OpenSLX::Utils; + +# +# +# N.B.: currently this is just a stub +# +# + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {'name' => 'aoe',}; + return bless $self, $class; +} + +sub getExportPort +{ + my $self = shift; + my $openslxDB = shift; + + return $openslxDB->incrementGlobalCounter('next-nbd-server-port'); +} + +sub generateExportURI +{ + my $self = shift; + my $export = shift; + + my $serverIP = $export->{server_ip} || ''; + my $server + = length($serverIP) ? $serverIP : generatePlaceholderFor('serverip'); + $server .= ":$export->{port}" if length($export->{port}); + + return "aoe://$server"; +} + +sub requiredBlockDeviceModules +{ + my $self = shift; + + return qw( aoe ); +} + +sub requiredBlockDeviceTools +{ + my $self = shift; + + # TODO: is there any such tool? + + return; +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + print(('#' x 80) . "\n"); + print _tr( + "Please make sure you start a corresponding aoe-server:\n\t%s\n", + "... (don't know how this is done yet)" + ); + print(('#' x 80) . "\n"); + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/BlockDevice/Base.pm b/src/installer/OpenSLX/OSExport/BlockDevice/Base.pm new file mode 100644 index 00000000..6469c2f4 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/BlockDevice/Base.pm @@ -0,0 +1,77 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX OSExport::BlockDevice API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::BlockDevice::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSExport::BlockDevice::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + my $fs = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between block-device and its engine + + $self->{'fs'} = $fs; + weaken($self->{'fs'}); + # avoid circular reference between block-device and its file-system +} + +sub getExportPort +{ +} + +sub generateExportURI +{ +} + +sub requiredBlockDeviceModules +{ +} + +sub requiredBlockDeviceTools +{ +} + +sub showExportConfigInfo +{ +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSExport::BlockDevice::Base - the base class for all OSExport::BlockDevices + +=cut diff --git a/src/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm b/src/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm new file mode 100644 index 00000000..25e112ee --- /dev/null +++ b/src/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm @@ -0,0 +1,91 @@ +# Copyright (c) 2006, 2008 - 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/ +# ----------------------------------------------------------------------------- +# DNBD2.pm +# - provides DNBD2+Squashfs-specific overrides of the +# OpenSLX::OSExport::BlockDevice API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::BlockDevice::DNBD2; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::BlockDevice::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::OSExport::BlockDevice::Base 1; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {'name' => 'dnbd2',}; + return bless $self, $class; +} + +sub getExportPort +{ + my $self = shift; + my $openslxDB = shift; + + return $openslxDB->incrementGlobalCounter('next-nbd-server-port'); +} + +sub generateExportURI +{ + my $self = shift; + my $export = shift; + + my $serverIP = $export->{server_ip} || ''; + my $server + = length($serverIP) ? $serverIP : generatePlaceholderFor('serverip'); + $server .= ":$export->{port}" if length($export->{port}); + + return "dnbd2://$server"; +} + +sub requiredBlockDeviceModules +{ + my $self = shift; + + return qw( dnbd2 ); +} + +sub requiredBlockDeviceTools +{ + my $self = shift; + + return qw( ); +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + print '#' x 80 , "\n", + _tr( + "Please make sure you start a corresponding dnbd2-server:\n\t%s\n", + "dnbd2-server /etc/dnbd2/server.conf\n" + ), + "Create or modify a config file like /etc/dnbd2/server.conf, looking like:", + "\n# dnbd2 server configuration\n\n", + "$export->{port}\n", + "$self->{fs}->{'export-path'}\n\n", + '#' x 80, "\n"; + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/BlockDevice/LBD.pm b/src/installer/OpenSLX/OSExport/BlockDevice/LBD.pm new file mode 100644 index 00000000..e8df1b04 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/BlockDevice/LBD.pm @@ -0,0 +1,76 @@ +# 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/ +# ----------------------------------------------------------------------------- +# LBD.pm +# - provides the local block devices with Squashfs container specific +# overrides of the OpenSLX::OSExport::BlockDevice API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::BlockDevice::LBD; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::BlockDevice::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::OSExport::BlockDevice::Base 1; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {'name' => 'LBD',}; + return bless $self, $class; +} + +sub generateExportURI +{ + my $self = shift; + + return "lbd://sda1/squashfs"; +} + +sub requiredBlockDeviceModules +{ + my $self = shift; + + return qw( ehci_hcd usb_storage scsi_mod sd_mod loop ext3 ); +} + +sub requiredBlockDeviceTools +{ + my $self = shift; + + return qw( ); +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + print '#' x 80 , "\n", + _tr( + "Please make sure you copy all corresponding files to your boot\n", + "device you wish to deploy (e.g. bootable USB stick)\n" + ), + "Make your device bootable using syslinux for (v)fat or extlinux for\n", + "ext2/3 partitions. Cat HPA syslinux' mbr to the device very beginning\n", + "and set the boot flag to the partion you made bootable\n\n", + '#' x 80, "\n"; + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/BlockDevice/NBD.pm b/src/installer/OpenSLX/OSExport/BlockDevice/NBD.pm new file mode 100644 index 00000000..58378751 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/BlockDevice/NBD.pm @@ -0,0 +1,87 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# NBD.pm +# - provides NBD+Squashfs-specific overrides of the +# OpenSLX::OSExport::BlockDevice API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::BlockDevice::NBD; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::BlockDevice::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::OSExport::BlockDevice::Base 1; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {'name' => 'nbd',}; + return bless $self, $class; +} + +sub getExportPort +{ + my $self = shift; + my $openslxDB = shift; + + return $openslxDB->incrementGlobalCounter('next-nbd-server-port'); +} + +sub generateExportURI +{ + my $self = shift; + my $export = shift; + + my $serverIP = $export->{server_ip} || ''; + my $server + = length($serverIP) ? $serverIP : generatePlaceholderFor('serverip'); + $server .= ":$export->{port}" if length($export->{port}); + + return "nbd://$server"; +} + +sub requiredBlockDeviceModules +{ + my $self = shift; + + return qw( nbd ); +} + +sub requiredBlockDeviceTools +{ + my $self = shift; + + return qw( nbd-client ); +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + print(('#' x 80) . "\n"); + print _tr( + "Please make sure you start a corresponding nbd-server:\n\t%s\n", + "nbd-server $export->{port} $self->{fs}->{'export-path'} -r" + ); + print(('#' x 80) . "\n"); + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/Distro/Any.pm b/src/installer/OpenSLX/OSExport/Distro/Any.pm new file mode 100644 index 00000000..dc3c7c8b --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Any.pm @@ -0,0 +1,66 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Any.pm +# - provides generic overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Any; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'any', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + + /var + - /var/tmp/* + - /var/spool/* + - /var/run/* + - /var/lock/* + - /var/log/* + - /var/lib/xdm + - /var/lib/smart + - /var/cache/yum + - /var/cache/man/* + - /usr/share/vmware/* + - /tmp/* + - /sys/* + - /proc/* + - /mnt/* + - /media/* + + /lib/modules/*/misc/vmblock.o + + /lib/modules/*/misc/vmnet.o + + /lib/modules/*/misc/vmmon.o + - /lib/klibc/events/* + - /boot/initrd* + - /boot/grub + "; + return; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSExport/Distro/Base.pm b/src/installer/OpenSLX/OSExport/Distro/Base.pm new file mode 100644 index 00000000..5223ce95 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Base.pm @@ -0,0 +1,71 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Base.pm +# - provides base implementation of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSExport::Distro::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between distro and its engine + + $self->initDistroInfo(); + return; +} + +sub initDistroInfo +{ +} + +sub getSquashfsVersion +{ + my $self = shift; + my $distroVersion = shift; + + return "4.0"; +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSExport::Distro::Base + +=head1 SYNOPSIS + +... + +=cut diff --git a/src/installer/OpenSLX/OSExport/Distro/Debian.pm b/src/installer/OpenSLX/OSExport/Distro/Debian.pm new file mode 100644 index 00000000..98e9b42f --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Debian.pm @@ -0,0 +1,60 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Debian.pm +# - provides Debian-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Debian; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'debian', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + - /var/log/* + - /var/lib/xdm + - /var/cache/man/* + - /var/cache/apt/archives/* + - /usr/share/vmware/* + - /tmp/* + - /sys/* + - /proc/* + - /mnt/* + - /media/* + - /lib/klibc/events/* + - /boot/initrd* + - /boot/grub + "; + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/Distro/Fedora.pm b/src/installer/OpenSLX/OSExport/Distro/Fedora.pm new file mode 100644 index 00000000..4c196bd1 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Fedora.pm @@ -0,0 +1,65 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Fedora.pm +# - provides Fedora-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Fedora; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'fedora', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + # TODO: check and refine this! + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + - /var/lock/* + - /var/log/* + - /var/lib/xdm + - /var/lib/smart + - /var/cache/yum + - /var/cache/man/* + - /usr/share/vmware/* + - /tmp/* + - /sys/* + - /proc/* + - /mnt/* + - /media/* + - /lib/klibc/events/* + - /boot/initrd* + - /boot/grub + - *.rpmsave + - *.rpmnew + "; + return; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSExport/Distro/Gentoo.pm b/src/installer/OpenSLX/OSExport/Distro/Gentoo.pm new file mode 100644 index 00000000..79fa2210 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Gentoo.pm @@ -0,0 +1,59 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Gentoo.pm +# - provides Gentoo-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Gentoo; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'gentoo', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + - /var/log/* + - /var/lib/xdm + - /var/lib/init.d/* + - /var/cache/man/* + - /usr/share/vmware/* + - /tmp/* + - /sys/* + - /proc/* + - /mnt/* + - /media/* + - /boot/initrd* + - /boot/grub + "; + return; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSExport/Distro/SciLin.pm b/src/installer/OpenSLX/OSExport/Distro/SciLin.pm new file mode 100644 index 00000000..272b5cef --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/SciLin.pm @@ -0,0 +1,94 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/SciLin.pm +# - provides SciLin-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::SciLin; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'scilin', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + - /var/mail + - /var/log/* + - /var/lock/* + - /var/lib/xdm + - /var/lib/vm* + - /var/lib/suspend* + - /var/lib/smart + - /var/lib/gdm/* + - /var/lib/dhcp* + - /var/lib/bluetooth/ + - /var/cache/yum + - /var/cache/man/* + - /var/cache/zypp/* + + /usr/lib/python*/*/*.o + + /usr/lib/perl5/*/*/*/*.o + + /usr/lib/gcc/*/*/*.o + + /usr/lib/*.o + + /usr/X11R6/lib/modules/drivers/*.o + + /usr/X11R6/lib/modules/drivers/linux/*.o + - /usr/bin/BackGround + - /tmp/* + - /sys/* + - /proc/* + - /opt/kde3/share/apps/kdm/read_sysconfig.sh + - /opt/kde3/share/autostart/runupdater.desktop + - /opt/kde3/share/autostart/profile_chooser-autostart.desktop + - /opt/kde3/share/autostart/kinternet.desktop + - /usr/share/gnome/autostart/gpk-update-icon*.desktop + - /mnt/* + - /media/* + + /media + + /lib/modules/*/misc/vmblock.o + + /lib/modules/*/misc/vmnet.o + + /lib/modules/*/misc/vmmon.o + - /etc/*rpmnew + - /etc/*rpmorig + - /etc/*pptp* + - /etc/*ppp* + - /etc/dhcp* + - /etc/cron.*/* + - /etc/netplug* + - /etc/sysconfig/network* + - /etc/X11/xkb + - /boot/initrd* + - /boot/grub + - *.rpmsave + - *.rpmnew + "; + return; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/Distro/Suse.pm b/src/installer/OpenSLX/OSExport/Distro/Suse.pm new file mode 100644 index 00000000..9e62e6e5 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Suse.pm @@ -0,0 +1,145 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Suse.pm +# - provides SUSE-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Suse; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'suse', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + + /var/run/screen + - /var/mail + - /var/log/* + - /var/lock/* + - /var/lib/zypp/* + - /var/lib/zmd + - /var/lib/xdm + - /var/lib/vm* + - /var/lib/suspend* + - /var/lib/smart + - /var/lib/sax + - /var/lib/hardware/* + - /var/lib/gdm/* + - /var/lib/dhcp* + - /var/lib/bluetooth/ + - /var/lib/YaST2/you/mnt/* + - /var/lib/YaST2/backup_boot_sectors + - /var/cache/sax + - /var/cache/libx11/compose/* + - /var/cache/beagle + - /var/cache/yum + - /var/cache/man/* + - /var/cache/zypp/* + - /var/adm/backup/rpmdb/* + - /var/adm/mount/AP* + - /var/adm/SuSEconfig + - /usr/share/vmware/* + - /usr/lib/zen-updater + + /usr/lib/python*/*/*.o + + /usr/lib/perl5/*/*/*/*.o + + /usr/lib/gcc/*/*/*.o + + /usr/lib/*.o + + /usr/X11R6/lib/modules/drivers/*.o + + /usr/X11R6/lib/modules/drivers/linux/*.o + - /usr/bin/zen-* + - /usr/bin/nw-manager + - /usr/X11R6/bin/BackGround + - /usr/bin/BackGround + - /usr/share/autostart/SUSEgreeter.desktop + - /tmp/* + - /sys/* + - /proc/* + - /opt/kde3/share/apps/kdm/read_sysconfig.sh + - */autostart/suseplugger.desktop + - */autostart/susewatcher.desktop + - */autostart/runupdater.desktop + - */autostart/profile_chooser-autostart.desktop + - */autostart/opensuseupdater.desktop + - */autostart/knetworkmanager-autostart.desktop + - */autostart/kerry.autostart.desktop + - */autostart/kinternet.desktop + - */autostart/SUSEgreeter.desktop + - */autostart/zen-updater-auto.desktop + - */autostart/beagle*.desktop + - */autostart/gpk-update-icon*.desktop + - */autostart/kupdateapplet.desktop + - */config/SuSE/default/kupdateapplet.* + - */config/SuSE/default/*.live + - */config/SuSE/default/*beagle* + - /mnt/* + - /media/* + + /media + + /lib/modules/*/misc/vmblock.o + + /lib/modules/*/misc/vmnet.o + + /lib/modules/*/misc/vmmon.o + - /etc/*rpmnew + - /etc/*rpmorig + - /etc/*YaST2save + - /etc/*pptp* + - /etc/*ppp* + - /etc/dhcp* + - /etc/cron.*/* + - /etc/sysconfig/network/ifcfg-* + - /etc/X11/xdm/SuSEconfig.xdm + - /boot/initrd* + - /boot/grub + - *.rpmsave + - *.rpmnew + - *.YaST2save + "; + return; +} + + +sub getSquashfsVersion +{ + my $self = shift; + my $distroVersion = shift; + + my %versionMap = ( + '11.0' => '3.2', + '11.1' => '3.2', + '11.2' => '3.3', + '11.3' => '4.0' + ); + + my $distroDefault = '4.0'; + + return $versionMap{$distroVersion} || $distroDefault; +} + + +1; diff --git a/src/installer/OpenSLX/OSExport/Distro/Ubuntu.pm b/src/installer/OpenSLX/OSExport/Distro/Ubuntu.pm new file mode 100644 index 00000000..3826f019 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Distro/Ubuntu.pm @@ -0,0 +1,108 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSExport/Distro/Ubuntu.pm +# - provides Ubuntu-specific overrides of the OSExport Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Distro::Ubuntu; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'ubuntu', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + + $self->{'export-filter'} = " + - /var/tmp/* + - /var/spool/* + - /var/run/* + + /var/run/screen + - /var/log/* + - /var/log/apt/* + + /var/log/apt + - /var/lib/*dm/* + - /var/lib/libnss-ldap/* + - /var/cache/apt/archives/* + + /var/cache/apt/archives/partial + - /var/cache/man/* + - /var/cache/nscd/* + - /usr/share/vmware/* + - /usr/share/autostart/trackerd.desktop + - /usr/share/autostart/knetworkmanager.desktop + - /etc/update-motd.d/90* + - /etc/update-motd.d/91* + - /etc/update-motd.d/98* + - /tmp/* + - /sys/* + - /proc/* + - /mnt/* + - /media/* + - /lib/udev/devices + - /initrd* + - /etc/cron.*/* + - /boot/initrd* + - /boot/grub + - /etc/xdg/compiz + - /etc/xdg/autostart/adept_notifier_auto.desktop + - /etc/xdg/autostart/evolution*alarm*notify* + - /etc/xdg/autostart/knetworkmanager* + - /etc/xdg/autostart/nm-applet.desktop + - /etc/xdg/autostart/system-config-printer-applet-kde.desktop + - /etc/xdg/autostart/tracker* + - /etc/xdg/autostart/jockey-* + - /etc/xdg/autostart/ica* + - /etc/xdg/autostart/hplip* + - /etc/xdg/autostart/redhat* + - /etc/xdg/autostart/gnome-power-manager* + - /etc/xdg/autostart/update* + - /etc/xdg/update-notifier.desktop + - /etc/xdg/user-dirs-update-gtk.desktop + "; + return; +} + + +sub getSquashfsVersion +{ + my $self = shift; + my $distroVersion = shift; + + my %versionMap = ( + '8.04' => '3.3', + '8.10' => '3.3', + '9.04' => '3.3', + '9.10' => '4.0', + '10.04' => '4.0' + ); + + my $distroDefault = '4.0'; + + return $versionMap{$distroVersion} || $distroDefault; +} + + +1; diff --git a/src/installer/OpenSLX/OSExport/Engine.pm b/src/installer/OpenSLX/OSExport/Engine.pm new file mode 100644 index 00000000..251869e0 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/Engine.pm @@ -0,0 +1,364 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Engine.pm +# - provides driver engine for the OSExport API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::Engine; + +use strict; +use warnings; + +our (@ISA, @EXPORT, $VERSION); +$VERSION = 1.01; # API-version . implementation-version + +use Exporter; +@ISA = qw(Exporter); + +@EXPORT = qw( + %supportedExportFileSystems %supportedExportBlockDevices + @supportedExportTypes +); + +use File::Basename; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +our ( + %supportedExportFileSystems, %supportedExportBlockDevices, + @supportedExportTypes, +); + +%supportedExportFileSystems = ( + 'nfs' => 'NFS', + 'sqfs' => 'SquashFS', +); + +%supportedExportBlockDevices = ( + 'dnbd2' => 'DNBD2', + 'nbd' => 'NBD', + 'aoe' => 'AoE', +); + +@supportedExportTypes = ( + 'nfs', + 'sqfs-aoe', + 'sqfs-dnbd2', + 'sqfs-nbd', +); + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +sub initializeFromExisting +{ + my $self = shift; + my $exportName = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + my $export = $openslxDB->fetchExportByFilter({'name' => $exportName}); + if (!defined $export) { + die _tr("Export '%s' not found in DB, giving up!", $exportName); + } + my $vendorOS = + $openslxDB->fetchVendorOSByFilter({'id' => $export->{vendor_os_id}}); + + $openslxDB->disconnect(); + + $self->_initialize($vendorOS->{name}, $vendorOS->{id}, $export->{name}, + $export->{type}); + return; +} + +sub initializeForNew +{ + my $self = shift; + my $vendorOSName = shift; + my $exportType = lc(shift); + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + my $vendorOS = $openslxDB->fetchVendorOSByFilter({'name' => $vendorOSName}); + if (!defined $vendorOS) { + die _tr("vendor-OS '%s' not found in DB, giving up!", $vendorOSName); + } + + my $exportName = "${vendorOSName}::${exportType}"; + + $openslxDB->disconnect(); + + $self->_initialize($vendorOS->{name}, $vendorOS->{id}, $exportName, + $exportType); + return; +} + +sub exportVendorOS +{ + my $self = shift; + + vlog( + 1, + _tr( + "vendor-OS from '%s' will be exported to '%s'", + $self->{'vendor-os-path'}, + $self->{'exporter'}->{'export-path'} + ) + ); + if (!$self->{'exporter'}->checkRequirements($self->{'vendor-os-path'})) { + die _tr( + "clients wouldn't be able to access the exported root-fs!\nplease " + . "install the missing module(s) or use another export-type."); + } + + $self->{'exporter'}->exportVendorOS($self->{'vendor-os-path'},); + vlog( + 0, + _tr( + "vendor-OS '%s' successfully exported to '%s'!", + $self->{'vendor-os-path'}, + $self->{exporter}->{'export-path'} + ) + ); + $self->_addExportToConfigDB(); + return; +} + +sub purgeExport +{ + my $self = shift; + + if ($self->{'exporter'}->purgeExport()) { + vlog( + 0, + _tr( + "export '%s' successfully removed!", + $self->{exporter}->{'export-path'} + ) + ); + } + $self->_removeExportFromConfigDB(); + return; +} + +sub generateExportURI +{ + my $self = shift; + + return $self->{exporter}->generateExportURI(@_); +} + +sub requiredFSMods +{ + my $self = shift; + + return $self->{exporter}->requiredFSMods(); +} + +sub requiredFSTools +{ + my $self = shift; + + return $self->{exporter}->requiredFSTools(); +} + +################################################################################ +### implementation methods +################################################################################ +sub _initialize +{ + my $self = shift; + my $vendorOSName = shift; + my $vendorOSId = shift; + my $exportName = shift; + my $exportType = lc(shift); + + if ($vendorOSName eq '<<>>') { + die _tr("you can't do that with the default vendor-OS!\n"); + } + if (!grep { $_ eq $exportType } @supportedExportTypes) { + vlog(0, + _tr("Sorry, export type '%s' is unsupported.\n", $exportType) + . _tr("List of supported export types:\n\t") + . join("\n\t", sort @supportedExportTypes)); + exit 1; + } + $exportType =~ m[^(\w+)(?:-(\w+))?$]; + my $exportFS = lc($1); + my $exportBD = lc($2); + vlog(2, "export-filesys='$exportFS' export-blockdev='$exportBD'"); + + $self->{'vendor-os-name'} = $vendorOSName; + $self->{'vendor-os-id'} = $vendorOSId; + $self->{'export-name'} = $exportName; + $self->{'export-type'} = $exportType; + $vendorOSName =~ m[^(.+?\-[^-]+)]; + $self->{'distro-name'} = lc($1); + my $distroName = ucfirst(lc($1)); + + # load module for the requested distro: + my $distro = loadDistroModule({ + distroName => $distroName, + distroScope => 'OpenSLX::OSExport::Distro', + fallbackName => 'Any', + }); + if (!$distro) { + die _tr( + 'unable to load any OSExport::Distro module for vendor-OS %s!', + $vendorOSName + ); + } + $distro->initialize($self); + $self->{distro} = $distro; + + # load module for the requested export type: + my $fsModuleName = $supportedExportFileSystems{$exportFS}; + my $exporter = + instantiateClass("OpenSLX::OSExport::FileSystem::$fsModuleName"); + if (length($exportBD)) { + my $blockModuleName = $supportedExportBlockDevices{$exportBD}; + my $blockDevice = + instantiateClass("OpenSLX::OSExport::BlockDevice::$blockModuleName"); + $blockDevice->initialize($self, $exporter); + $exporter->initialize($self, $blockDevice); + } else { + $exporter->initialize($self); + } + $self->{'exporter'} = $exporter; + + $self->{'vendor-os-path'} = + "$openslxConfig{'private-path'}/stage1/$vendorOSName"; + + return; +} + +sub _addExportToConfigDB +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + my $export = $openslxDB->fetchExportByFilter( + { + 'name' => $self->{'export-name'}, + 'vendor_os_id' => $self->{'vendor-os-id'}, + } + ); + if (defined $export) { + vlog( + 0, + _tr( + "No need to change export '%s' in OpenSLX-database.\n", + $self->{'export-name'} + ) + ); + $self->{exporter}->showExportConfigInfo($export); + } else { + $export = { + 'vendor_os_id' => $self->{'vendor-os-id'}, + 'name' => $self->{'export-name'}, + 'type' => $self->{'export-type'}, + }; + + my $id = $self->{exporter}->addExportToConfigDB($export, $openslxDB); + vlog( + 0, + _tr( + "Export '%s' has been added to DB (ID=%s)...\n", + $self->{'export-name'}, $id + ) + ); + + $self->{exporter}->showExportConfigInfo($export) if $id; + } + + my $system = $openslxDB->fetchSystemByFilter({ + 'name' => $self->{'export-name'}, + }); + if (!defined $system) { + # now create a default system for that export, using the standard kernel: + system("slxconfig add-system $self->{'export-name'}"); + } + + $openslxDB->disconnect(); + return; +} + +sub _removeExportFromConfigDB +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + # remove export from DB: + my $exportName = $self->{'export-name'}; + my $export = $openslxDB->fetchExportByFilter({'name' => $exportName,}); + if (!defined $export) { + vlog( + 0, + _tr( + "Export '%s' doesn't exist in OpenSLX-database.\n", $exportName + ) + ); + } else { + # remove all systems using this export and then remove the + # export itself: + my @systemIDs = + map { $_->{id} } + $openslxDB->fetchSystemByFilter({'export_id' => $export->{id}}, 'id'); + vlog( + 1, + _tr( + "removing systems '%s' from DB, since they belong to the export" + . " being deleted.\n", + join ',', + @systemIDs + ) + ); + $openslxDB->removeSystem(\@systemIDs); + $openslxDB->removeExport($export->{id}); + vlog(0, _tr("Export '%s' has been removed from DB.\n", $exportName)); + } + + $openslxDB->disconnect(); + return; +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSExport::Engine - + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +... + +=cut + diff --git a/src/installer/OpenSLX/OSExport/FileSystem/Base.pm b/src/installer/OpenSLX/OSExport/FileSystem/Base.pm new file mode 100644 index 00000000..05f3c6a0 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/FileSystem/Base.pm @@ -0,0 +1,148 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX OSExport::FileSystem API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::FileSystem::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use File::Basename; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSExport::FileSystem::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between file-system and its engine +} + +sub exportVendorOS +{ +} + +sub purgeExport +{ +} + +sub checkRequirements +{ + return 1; +} + +sub addExportToConfigDB +{ + my $self = shift; + my $export = shift; + my $openslxDB = shift; + + return $openslxDB->addExport($export); +} + +sub generateExportURI +{ +} + +sub requiredFSMods +{ +} + +sub requiredFSTools +{ +} + +sub showExportConfigInfo +{ +} + +################################################################################ +### implementation methods +################################################################################ +sub _pickKernelVersion +{ + my $self = shift; + my $vendorOSPath = shift; + + my $kernel = followLink("$vendorOSPath/boot/vmlinuz"); + if (!-e $kernel) { + # 'vmlinuz'-link doesn't exist, so we have to pick the kernel manually + my $osSetupEngine = instantiateClass("OpenSLX::OSSetup::Engine"); + $osSetupEngine->initialize($self->{engine}->{'vendor-os-name'}, 'none'); + $kernel = $osSetupEngine->pickKernelFile("$vendorOSPath/boot"); + } + my $kernelName = basename($kernel); + if ($kernelName !~ m[-(.+)$]) { + die _tr("unable to determine version of kernel '%s'!", $kernelName); + } + return $1; +} + +sub _locateKernelModule +{ + my $self = shift; + my $vendorOSPath = shift; + my $moduleName = shift; + my $defaultPaths = shift; + + vlog(1, _tr("locating kernel-module '%s'", $moduleName)); + # check default paths first: + foreach my $defPath (@$defaultPaths) { + vlog(2, "trying $defPath/$moduleName"); + my $target = followLink("$defPath/$moduleName", $vendorOSPath); + return $target unless !-e $target; + } + # use brute force to search for the newest incarnation of the module: + use File::Find; + my $location; + my $locationAge = 9999999; + vlog(2, "searching in $vendorOSPath/lib/modules"); + find sub { + return unless $_ eq $moduleName; + if (-M _ < $locationAge) { + $locationAge = -M _; + $location = $File::Find::name; + vlog(2, "located at $location (age=$locationAge days)"); + } + }, "$vendorOSPath/lib/modules"; + if (defined $location) { + return followLink($location, $vendorOSPath); + } + return; +} + +1; + +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSExport::FileSystem::Base - the base class for all OSExport::FileSystems + +=cut diff --git a/src/installer/OpenSLX/OSExport/FileSystem/NFS.pm b/src/installer/OpenSLX/OSExport/FileSystem/NFS.pm new file mode 100644 index 00000000..9bd2ca87 --- /dev/null +++ b/src/installer/OpenSLX/OSExport/FileSystem/NFS.pm @@ -0,0 +1,238 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# NFS.pm +# - provides NFS-specific overrides of the OpenSLX::OSExport::FileSystem API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::FileSystem::NFS; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::FileSystem::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'nfs', + }; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + + my $exportBasePath = "$openslxConfig{'public-path'}/export"; + $self->{'export-path'} = "$exportBasePath/nfs/$engine->{'vendor-os-name'}"; + return; +} + +sub exportVendorOS +{ + my $self = shift; + my $source = shift; + + my $target = $self->{'export-path'}; + if ($self->_isTargetBindMounted($source, $target)) { + warn _tr( + "%s is a bind-mount to vendor-OS root - rsync step is skipped!", + $target + ); + return; + } + + $self->_copyViaRsync($source, $target); + + return; +} + +sub purgeExport +{ + my $self = shift; + + my $source = $self->{'engine'}->{'vendor-os-path'}; + my $target = $self->{'export-path'}; + if ($self->_isTargetBindMounted($source, $target)) { + warn _tr( + "%s is a bind-mount to vendor-OS root - removal step is skipped!", + $target + ); + return; + } + + if (system("rm -r $target")) { + vlog(0, _tr("unable to remove export '%s'!", $target)); + return 0; + } + return 1; +} + +sub checkRequirements +{ + my $self = shift; + my $vendorOSPath = shift; + + # determine most appropriate kernel version ... + my $kernelVer = $self->_pickKernelVersion($vendorOSPath); + + # ... and check if that kernel-version provides all the required modules + my $nfsMod = $self->_locateKernelModule( + $vendorOSPath, + 'nfs.ko', + [ + "$vendorOSPath/lib/modules/$kernelVer/kernel/fs/nfs", + "$vendorOSPath/lib/modules/$kernelVer/kernel/fs" + ] + ); + if (!defined $nfsMod) { + warn _tr("unable to find nfs-module for kernel version '%s'.", + $kernelVer); + return; + } + return 1; +} + +sub generateExportURI +{ + my $self = shift; + my $export = shift; + my $vendorOS = shift; + + my $serverIP = $export->{server_ip} || ''; + my $server + = length($serverIP) ? $serverIP : generatePlaceholderFor('serverip'); + my $port = $export->{port} || ''; + $server .= ":$port" if length($port); + + my $exportPath = "$openslxConfig{'public-path'}/export"; + return "nfs://$server$exportPath/nfs/$vendorOS->{name}"; +} + +sub requiredFSMods +{ + my $self = shift; + + return qw( nfs ); +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + print (('#' x 80)."\n"); + print _tr("Please make sure the following line is contained in /etc/exports\nin order to activate the NFS-export of this vendor-OS:\n\t%s\n", + "$self->{'export-path'}\t*(ro,no_root_squash,async,no_subtree_check)"); + print (('#' x 80)."\n"); + +# TODO : add something a bit more clever here... +# my $exports = slurpFile("/etc/exports"); + return; +} + +################################################################################ +### implementation methods +################################################################################ +sub _copyViaRsync +{ + my $self = shift; + my $source = shift; + my $target = shift; + + if (system("mkdir -p $target")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $target, $!); + } + my $includeExcludeList = $self->_determineIncludeExcludeList(); + vlog(1, _tr("using include-exclude-filter:\n%s\n", $includeExcludeList)); + my $rsyncFH; + my $additionalRsyncOptions = $ENV{SLX_RSYNC_OPTIONS} || ''; + my $rsyncCmd + = "rsync -av --delete-excluded --exclude-from=- $additionalRsyncOptions" + . " $source/ $target"; + vlog(2, "executing: $rsyncCmd\n"); + open($rsyncFH, '|-', $rsyncCmd) + or die _tr("unable to start rsync for source '%s', giving up! (%s)", + $source, $!); + print $rsyncFH $includeExcludeList; + close($rsyncFH) + or die _tr("unable to export to target '%s', giving up! (%s)", + $target, $!); + return; +} + +sub _determineIncludeExcludeList +{ + my $self = shift; + + # Rsync uses a first match strategy, so we mix the local specifications + # in front of the filterset given by the package (as the local filters + # should always overrule the vendor filters): + my $distroName = $self->{engine}->{'distro-name'}; + my $localFilterFile + = "$openslxConfig{'config-path'}/distro-info/$distroName/export-filter"; + my $includeExcludeList + = slurpFile($localFilterFile, { failIfMissing => 0 }); + $includeExcludeList .= $self->{engine}->{distro}->{'export-filter'}; + $includeExcludeList =~ s[^\s+][]igms; + # remove any leading whitespace, as rsync doesn't like it + return $includeExcludeList; +} + +sub _isTargetBindMounted +{ + my $self = shift; + my $source = shift; + my $target = shift; + + # For development purposes, it is very desirable to be able to take a + # shortcut that avoids doing the actual copying of the folders (as that + # takes a considerable amount of time). + # In order to support this, we explicitly check if the OpenSLX NFS export + # root folder (/srv/openslx/export/nfs) is a bind-mount of the OpenSLX + # stage1 folder (/var/opt/openslx/stage1). + # If that is the case, we print a notice and skip the rsync step (which + # wouldn't work anyway, as source and target folder are the same). + my $stage1Root = dirname($source); + my $nfsRoot = dirname($target); + chomp(my $canonicalStage1Root = qx{readlink -f $stage1Root} || $stage1Root); + chomp(my $canonicalNFSRoot = qx{readlink -f $nfsRoot} || $nfsRoot); + my @mounts = slurpFile('/etc/mtab'); + for my $mount (@mounts) { + if ($mount =~ m{ + ^ + $canonicalStage1Root # mount source + \s+ + $canonicalNFSRoot # mount target + \s+ + none # filesystem for bind mounts is 'none' + \s+ + \S*\bbind\b\S* # look for bind mounts only + }gmsx) { + return 1; + } + } + return 0; +} + +1; diff --git a/src/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm b/src/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm new file mode 100644 index 00000000..77034c9c --- /dev/null +++ b/src/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm @@ -0,0 +1,410 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# SquashFS.pm +# - provides SquashFS-specific overrides of the OpenSLX::OSExport::ExportType +# API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSExport::FileSystem::SquashFS; + +use strict; +use warnings; + +use base qw(OpenSLX::OSExport::FileSystem::Base); + +use File::Basename; +use OpenSLX::Basics; +use OpenSLX::ConfigDB qw(:support); +use OpenSLX::OSExport::FileSystem::Base 1; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {'name' => 'sqfs',}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + my $blockDevice = shift || confess('need to pass in block-device!'); + + $self->SUPER::initialize($engine); + + $self->{'block-device'} = $blockDevice; + my $exportBasePath = "$openslxConfig{'public-path'}/export"; + $self->{'export-path'} = "$exportBasePath/sqfs/$engine->{'vendor-os-name'}"; + return; +} + +sub exportVendorOS +{ + my $self = shift; + my $source = shift; + + my $includeExcludeList = $self->_determineIncludeExcludeList(); + # in order to do the filtering as part of mksquashfs, we need to map + # our internal (rsync-)filter format to regexes: + $includeExcludeList = + $self->_mapRsyncFilter2Regex($source, $includeExcludeList); + vlog(1, _tr("using include-exclude-filter:\n%s\n", $includeExcludeList)); + my $target = $self->{'export-path'}; + + my $sourceTime = (stat($source))[9] || 0; + my $targetTime = (stat($target))[9] || 0; + vlog(2, "source-time=$sourceTime target-time=$targetTime"); + + if ($targetTime && $sourceTime < $targetTime) { + vlog( + 0, + "!!! creation of squashfs skipped, as vendor-OS hasn't changed since last export!\n" + . "!!! Use 'touch $source' to force an export." + ); + } else { + $self->_createSquashFS($source, $target, $includeExcludeList); + } + $self->_addBlockDeviceTagToExport($target); + return; +} + +sub purgeExport +{ + my $self = shift; + + my $target = $self->{'export-path'}; + if ($self->_removeBlockDeviceTagFromExport($target)) { + # no more tags, we can remove the image: + if (slxsystem("rm $target")) { + vlog(0, _tr("unable to remove export '%s'!", $target)); + return 0; + } + } + return 1; +} + +sub checkRequirements +{ + my $self = shift; + my $vendorOSPath = shift; + + # determine most appropriate kernel version ... + my $kernelVer = $self->_pickKernelVersion($vendorOSPath); + + # ... and check if that kernel-version provides all the required modules + my @blockModNames = $self->{'block-device'}->requiredBlockDeviceModules(); + foreach my $blockModName (@blockModNames) { + my $blockMod = + $self->_locateKernelModule($vendorOSPath, "$blockModName.ko", + ["$vendorOSPath/lib/modules/$kernelVer/kernel/drivers/block"]); + if (!defined $blockMod) { + warn _tr( + "unable to find blockdevice-module '%s' for kernel version '%s'.", + $blockModName, $kernelVer + ); + return; + } + } + my $squashfsMod = $self->_locateKernelModule( + $vendorOSPath, + 'squashfs.ko', + [ + "$vendorOSPath/lib/modules/$kernelVer/kernel/fs/squashfs", + "$vendorOSPath/lib/modules/$kernelVer/kernel/fs" + ] + ); + if (!defined $squashfsMod) { + warn _tr("unable to find squashfs-module for kernel version '%s'.", + $kernelVer); + return; + } + return 1; +} + +sub addExportToConfigDB +{ + my $self = shift; + my $export = shift; + my $openslxDB = shift; + + $export->{port} = $self->{'block-device'}->getExportPort($openslxDB); + + my $res = $openslxDB->addExport($export); + return $res; +} + +sub generateExportURI +{ + my $self = shift; + my $export = shift; + my $vendorOS = shift; + + my $URI = $self->{'block-device'}->generateExportURI($export); + $URI .= '/squashfs'; + return $URI; +} + +sub requiredFSMods +{ + my $self = shift; + + my @mods = $self->{'block-device'}->requiredBlockDeviceModules(); + push @mods, 'squashfs '; + return @mods; +} + +sub requiredFSTools +{ + my $self = shift; + + return $self->{'block-device'}->requiredBlockDeviceTools(); +} + +sub showExportConfigInfo +{ + my $self = shift; + my $export = shift; + + $self->{'block-device'}->showExportConfigInfo($export); + return; +} + +################################################################################ +### implementation methods +################################################################################ + +################################################################################# +# Branch to choose the appropriate squashfs version according to target system # +################################################################################ + +sub _createSquashFS +{ + my $self = shift; + my $source = shift; + my $target = shift; + my $includeExcludeList = shift; + + + my @versionString = split(/-/, $self->{engine}->{'vendor-os-name'}); + my $mksquashfsVersion = $self->{engine}->{distro}->getSquashfsVersion($versionString[1]); + + vlog(0, "found version string $versionString[1] out of $self->{engine}->{'vendor-os-name'}"); + vlog(0, "use squashfs version: $mksquashfsVersion"); + + $self->_createSquashFS_prepare($target); + + my $mksquashfsParams; + + $mksquashfsVersion == '3.2' && do + {$mksquashfsParams = $self->_createSquashFS_setup_3_2($includeExcludeList)}; + $mksquashfsVersion == '3.3' && do + {$mksquashfsParams = $self->_createSquashFS_setup_3_3($includeExcludeList)}; + $mksquashfsVersion == '4.0' && do + {$mksquashfsParams = $self->_createSquashFS_setup_4($includeExcludeList)}; + + $self->_createSquashFS_run($source, $target, $mksquashfsParams); + + return; +} + +sub _createSquashFS_prepare +{ + my $self = shift; + my $target = shift; + + system("rm -f $target"); + # mksquasfs isn't significantly faster if fs already exists, but it + # causes the filesystem to grow somewhat, so we remove it in order to + # get the smallest FS-file possible. + + my $baseDir = dirname($target); + if (!-e $baseDir) { + if (system("mkdir -p $baseDir")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $baseDir, $!); + } + } + return; +} + + +sub _createSquashFS_run { + my $self = shift; + my $source = shift; + my $target = shift; + my $params = shift; + + # ... invoke mksquashfs ... + vlog(0, _tr("invoking mksquashfs...")); + my $mksquashfsBinary = + "$openslxConfig{'base-path'}/share/squashfs/$params->{binary}"; + my $res = + system("$mksquashfsBinary $source $target $params->{cmdlineOptions}"); + unlink($params->{tmpfile}); + # ... remove filter file if done + if ($res) { + die _tr( + "unable to create squashfs for source '%s' as target '%s', giving up! (%s)", + $source, $target, $!); + } + return; +} + +sub _createSquashFS_setup_4 +{ + my $self = shift; + my $includeExcludeList = shift; + + # dump filter to a file ... + my $filterFile = "/tmp/slx-nbdsquash-filter-$$"; + my $includeFile = "/tmp/slx-nbdsquash-includes-$$"; + spitFile($filterFile, $includeExcludeList); + + slxsystem("sed $filterFile -e '/^-/d' -e 's/^+[ \t]*//' > $includeFile"); + slxsystem("sed -i $filterFile -e '/^+/d' -e 's/^-[ \t]*//'"); + + my $result = { + binary => "mksquashfs_4", + cmdlineOptions => "-wildcards -ef $filterFile", + tmpfile => "$filterFile" + }; + + return $result; +} + + +sub _createSquashFS_setup_3_3 +{ + my $self = shift; + my $includeExcludeList = shift; + + # dump filter to a file ... + my $filterFile = "/tmp/slx-nbdsquash-filter-$$"; + my $includeFile = "/tmp/slx-nbdsquash-includes-$$"; + spitFile($filterFile, $includeExcludeList); + + slxsystem("sed $filterFile -e '/^-/d' -e 's/^+[ \t]*//' > $includeFile"); + slxsystem("sed -i $filterFile -e '/^+/d' -e 's/^-[ \t]*//'"); + + my $result = { + binary => "mksquashfs_3_3", + cmdlineOptions => "-wildcards -ef $filterFile", + tmpfile => "$filterFile" + }; + + return $result; +} + + +sub _createSquashFS_setup_3_2 +{ + my $self = shift; + my $includeExcludeList = shift; + + # dump filter to a file ... + my $filterFile = "/tmp/slx-nbdsquash-filter-$$"; + spitFile($filterFile, $includeExcludeList); + + my $result = { + binary => "mksquashfs_3_2", + cmdlineOptions => "-ff $filterFile", + tmpfile => "$filterFile" + }; + + return $result; +} + +sub _determineIncludeExcludeList +{ + my $self = shift; + + # Rsync uses a first match strategy, so we mix the local specifications + # in front of the filterset given by the package (as the local filters + # should always overrule the vendor filters): + my $distroName = $self->{engine}->{'distro-name'}; + my $localFilterFile = + "$openslxConfig{'config-path'}/distro-info/$distroName/export-filter"; + my $includeExcludeList + = slurpFile($localFilterFile, { failIfMissing => 0 }); + $includeExcludeList .= $self->{engine}->{distro}->{'export-filter'}; + $includeExcludeList =~ s[^\s+][]igms; + # remove any leading whitespace, as rsync doesn't like it + return $includeExcludeList; +} + +sub _mapRsyncFilter2Regex +{ + my $self = shift; + my $sourcePath = shift; + my $rsyncFilter = shift; + + return join( + "\n", + map { + if ($_ =~ m[^([-+]\s*)(.+?)\s*$]) + { + my $action = $1; + my $regex = $2; + $regex =~ s[\*\*][.+]g; + # '**' matches everything + $regex =~ s[\*][[^/]+]g; + # '*' matches anything except slashes + $regex =~ s[\?][[^/]?]g; + # '*' matches any single char except slash + $regex =~ s[\?][[^/]?]g; + # '*' matches any single char except slash + $regex =~ s[\.][\\.]g; + # escape any dots + if (substr($regex, 0, 1) eq '/') { + # absolute path given, need to extend by source-path: + "$action^$sourcePath$regex\$"; + } else { + # filename pattern given, need to anchor to the end only: + "$action$regex\$"; + } + } else { + $_; + } + } + split "\n", + $rsyncFilter + ); +} + +sub _addBlockDeviceTagToExport +{ + my $self = shift; + my $target = shift; + + my $tagName = "$target" . '@' . lc($self->{'block-device'}->{name}); + linkFile(basename($target), $tagName); + return; +} + +sub _removeBlockDeviceTagFromExport +{ + my $self = shift; + my $target = shift; + + my $tagName = "$target" . '@' . lc($self->{'block-device'}->{name}); + slxsystem("rm $tagName"); + # now find out whether or not there are any other tags left: + my $vendorOSName = basename($target); + opendir(DIR, dirname($target)); + my @tags = grep { /^$vendorOSName\@/ } readdir(DIR); + return @tags ? 0 : 1; + # return 1 if no more tags (i.e. it is safe to remove the image) +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm b/src/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm new file mode 100644 index 00000000..43385a29 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm @@ -0,0 +1,31 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Any_Clone.pm +# - provides generic clone-only overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Any_Clone; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/Distro/Base.pm b/src/installer/OpenSLX/OSSetup/Distro/Base.pm new file mode 100644 index 00000000..c356e6d9 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Base.pm @@ -0,0 +1,371 @@ +# 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Base.pm +# - provides base implementation of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Fcntl qw(:DEFAULT :flock); +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSSetup::System::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between distro and its engine + + if ($engine->{'distro-name'} =~ m[x86_64]) { + # be careful to only try installing 64-bit systems if actually + # running on a 64-bit host, as otherwise we are going to fail later, + # anyway: + my $arch = `uname -m`; + if ($?) { + die _tr("unable to determine architecture of host system (%s)\n", $!); + } + if ($arch !~ m[x86_64]) { + die _tr("you can't install a 64-bit system on a 32-bit host, sorry!\n"); + } + } + + $self->{'stage1a-binaries'} = { + "$openslxConfig{'base-path'}/share/busybox/busybox" => 'bin', + }; + + $self->{'stage1b-faked-files'} = [ + '/etc/mtab', + ]; + + $self->{'stage1c-faked-files'} = [ + ]; + + $self->{'clone-filter'} = " + + /var + - /var/tmp/* + - /var/spool/* + - /var/cache/apt/archives/*.deb + - /var/cache/apt/archives/lock + - /var/cache/apt/archives/partial/* + + /var/cache/apt/archives/partial + - /var/tmp/* + + /var/tmp/apt + - /var/opt/openslx + - /var/lib/vmware + - /var/lib/ntp/* + - /var/run/* + + /var/run/screen + - /var/log/* + + /var/log/apt + - /usr/lib/vmware/modules/* + + /usr + - /tmp/* + + /tmp + - /sys/* + + /sys + + /sbin + - /root/* + + /root + - /proc/* + + /proc + - /opt/openslx + + /opt + - /media/* + + /media + - /mnt/* + + /mnt + + /lib64 + - /lib/ld-uClibc* + + /lib + - /home/* + + /home + - /etc/vmware/* + + /etc/vmware + - /etc/vmware-installer + - /etc/grub* + - /etc/shadow* + - /etc/samba/secrets.tdb + - /etc/resolv.conf.* + - /etc/opt/openslx + + /etc/opt/openslx + - /etc/exports* + - /etc/X11/xorg.* + - /etc/X11/XF86* + + /etc + - /dev/* + + /dev + + /boot + + /bin + - /* + - .svn + - .git + - .*.cmd + - *~ + - *lost+found* + - *.old + - *.bak + "; + + return; +} + +sub fixPrerequiredFiles +{ +} + +sub startSession +{ + my $self = shift; + my $osDir = shift; + + # setup a fixed locale environment to avoid warnings about unset locales + # (like for instance shown by apt-get) + $ENV{LC_ALL} = 'POSIX'; + + # ensure that a couple of important devices exist + my %devInfo = ( + mem => { type => 'c', major => '1', minor => '1' }, + null => { type => 'c', major => '1', minor => '3' }, + zero => { type => 'c', major => '1', minor => '5' }, + random => { type => 'c', major => '1', minor => '8' }, + urandom => { type => 'c', major => '1', minor => '9' }, + kmsg => { type => 'c', major => '1', minor => '11' }, + tty => { type => 'c', major => '5', minor => '0' }, + console => { type => 'c', major => '5', minor => '1' }, + ptmx => { type => 'c', major => '5', minor => '2' }, + ); + if (!-e "$osDir/dev" && !mkpath("$osDir/dev")) { + die _tr("unable to create folder '%s' (%s)\n", "$osDir/dev", $!); + } + foreach my $dev (keys %devInfo) { + my $info = $devInfo{$dev}; + if (!-e "$osDir//dev/$dev") { + if (slxsystem( + "mknod $osDir//dev/$dev $info->{type} $info->{major} $info->{minor}" + )) { + croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!)); + } + } + } + + # enter chroot jail + chrootInto($osDir); + $ENV{PATH} = join(':', @{$self->getDefaultPathList()}); + + # mount /proc (if we have 'mount' available) + if (qx{which mount 2>/dev/null}) { + if (!-e '/proc' && !mkpath('/proc')) { + die _tr("unable to create folder '%s' (%s)\n", "$osDir/proc", $!); + } + if (slxsystem("mount -t proc proc '/proc'")) { + warn _tr("unable to mount '%s' (%s)\n", "$osDir/proc", $!); + } + if (!-e '/dev/pts' && !mkpath('/dev/pts')) { + die _tr("unable to create folder '%s' (%s)\n", "$osDir/dev/pts", $!); + } + if (slxsystem("mount -t devpts devpts '/dev/pts'")) { + warn _tr("unable to mount '%s' (%s)\n", "$osDir/dev/pts", $!); + } + } + + return 1; +} + +sub finishSession +{ + my $self = shift; + + # umount /proc, /dev/pts (if we have 'umount' available) + if (qx{which umount 2>/dev/null}) { + if (slxsystem("umount /proc")) { + warn _tr("unable to umount '%s' (%s)\n", "/proc", $!); + } + if (slxsystem("umount /dev/pts")) { + warn _tr("unable to umount '%s' (%s)\n", "/dev/pts", $!); + } + } + + return 1; +} + +sub getDefaultPathList +{ + my $self = shift; + + return [ qw( + /sbin + /usr/sbin + /usr/local/sbin + /usr/local/bin + /usr/bin + /bin + /usr/bin/X11 + /usr/X11R6/bin + /opt/kde3/bin + /opt/gnome/bin + ) ]; +} + +sub updateDistroConfig +{ + if (slxsystem("ldconfig")) { + die _tr("unable to run ldconfig (%s)", $!); + } +} + +sub pickKernelFile +{ + my $self = shift; + my $kernelPath = shift; + + my $newestKernelFile; + my $newestKernelFileSortKey = ''; + my $kernelPattern = '{vmlinuz,kernel-genkernel-x86}-*'; + foreach my $kernelFile (glob("$kernelPath/$kernelPattern")) { + next unless $kernelFile =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + my $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $newestKernelFile = $kernelFile; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $newestKernelFile) { + die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath); + } + return $newestKernelFile; +} + +sub preSystemInstallationHook +{ +} + +sub postSystemInstallationHook +{ +} + +sub setPasswordForUser +{ + my $self = shift; + my $username = shift; + my $password = shift; + + my $hashedPassword = $self->hashPassword($password); + + my $writePasswordFunction = sub { + # now read, change and write shadow-file in atomic manner: + my $shadowFile = '/etc/shadow'; + if (!-e $shadowFile) { + spitFile( $shadowFile, ''); + } + slxsystem("cp -r $shadowFile $shadowFile~"); + my $shadowFH; + open($shadowFH, '+<', $shadowFile) + or croak _tr("could not open file '%s'! (%s)", $shadowFile, $!); + flock($shadowFH, LOCK_EX) + or croak _tr("could not lock file '%s'! (%s)", $shadowFile, $!); + my $lastChanged = int(time()/24/60/60); + my $newEntry + = "$username:$hashedPassword:$lastChanged:0:99999:7:::"; + my $content = do { local $/; <$shadowFH> }; + if ($content =~ m{^$username:}ims) { + $content =~ s{^$username:.+?$}{$newEntry}ms; + } else { + $content .= "$newEntry\n"; + } + seek($shadowFH, 0, 0) + or croak _tr("could not seek file '%s'! (%s)", $shadowFile, $!); + print $shadowFH $content + or croak _tr("could not write to file '%s'! (%s)", $shadowFile, $!); + close($shadowFH) + or croak _tr("could not close file '%s'! (%s)", $shadowFile, $!); + unlink "$shadowFile~"; + }; + $self->{engine}->callChrootedFunctionForVendorOS($writePasswordFunction); +} + +sub hashPassword +{ + my $self = shift; + my $password = shift; + + my $busyboxBin = $self->{engine}->busyboxBinary(); + my $hashedPassword = qx{$busyboxBin cryptpw -a md5 $password}; + chomp $hashedPassword; + + return $hashedPassword; +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSSetup::System::Base - the base class for all OSSetup backends + +=head1 SYNOPSIS + + package OpenSLX::OSSetup::coolnewOS; + + use vars qw(@ISA $VERSION); + @ISA = ('OpenSLX::OSSetup::Base'); + $VERSION = 1.01; + + use coolnewOS; + + sub new + { + my $class = shift; + my $self = {}; + return bless $self, $class; + } + + # override all methods of OpenSLX::OSSetup::Base in order to implement + # a full OS-setup backend + ... + +I> + +=head1 DESCRIPTION + +This class defines the OSSetup interface for the OpenSLX. + +Aim of the OSSetup abstraction is to make it possible to install a large set +of different operating systems transparently. + +... + +=cut diff --git a/src/installer/OpenSLX/OSSetup/Distro/Debian.pm b/src/installer/OpenSLX/OSSetup/Distro/Debian.pm new file mode 100644 index 00000000..bdb9dcc1 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Debian.pm @@ -0,0 +1,135 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Debian.pm +# - provides Debian-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Debian; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'dpkg'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; + $self->{'stage1c-faked-files'} = []; + return; +} + +sub preSystemInstallationHook +{ + my $self = shift; + + $self->SUPER::preSystemInstallationHook(); + + # create required /dev-entries + my %devInfo = ( + mem => { type => 'c', major => '1', minor => '1' }, + null => { type => 'c', major => '1', minor => '3' }, + zero => { type => 'c', major => '1', minor => '5' }, + random => { type => 'c', major => '1', minor => '8' }, + urandom => { type => 'c', major => '1', minor => '9' }, + kmsg => { type => 'c', major => '1', minor => '11' }, + console => { type => 'c', major => '5', minor => '1' }, + ptmx => { type => 'c', major => '5', minor => '2' }, + ); + foreach my $dev (keys %devInfo) { + my $info = $devInfo{$dev}; + if (!-e "/dev/$dev") { + if (slxsystem( + "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}" + )) { + croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!)); + } + } + } + foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') { + if (!-e "/dev/$devDir") { + if (slxsystem("mkdir -p /dev/$devDir")) { + croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!)); + } + } + } + + # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot + # of initscripts being started. Wishful thinking: there should be another + # way to stop Debian from doing this, as this is not really very supportive + # of folder-based installations (then again: I may simply be too stupid + # to find out how it is supposed to work ...) + rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d'); + spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n"); + chmod 0755, '/usr/sbin/invoke-rc.d'; +} + +sub startSession +{ + my $self = shift; + my $osDir = shift; + + $self->SUPER::startSession($osDir); + + # As in preSystemInstallationHook, we replace /usr/sbin/invoke-rc.d by a + # dummy. + # + # During installation, this might not exist yet, so we better check + if (-e '/usr/sbin/invoke-rc.d') { + rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d'); + spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n"); + chmod 0755, '/usr/sbin/invoke-rc.d'; + } +} + +sub finishSession +{ + my $self = shift; + + # restore /usr/sbin/invoke-rc.d + rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d'); + + $self->SUPER::finishSession(); +} + +sub setPasswordForUser +{ + my $self = shift; + my $username = shift; + my $password = shift; + + # activate shadow passwords + my $activateShadowFunction = sub { + slxsystem('/sbin/shadowconfig', 'on'); + }; + $self->{engine}->callChrootedFunctionForVendorOS($activateShadowFunction); + + # invoke default behaviour + $self->SUPER::setPasswordForUser($username, $password); +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm b/src/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm new file mode 100644 index 00000000..03c6fdf9 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm @@ -0,0 +1,74 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Debian_3_1.pm +# - provides Debian-3.1-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Debian_3_1; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Debian); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub preSystemInstallationHook +{ + my $self = shift; + + $self->SUPER::preSystemInstallationHook(); + + # when the kernel package is being configured, it insists on trying to + # create an initrd, which neither works nor makes sense in our environment. + # + # in order to circumvent this problem, we manually install initrd-tools + # (which contains mkinitrd) ... + $self->{engine}->{'meta-packager'}->installPackages('initrd-tools'); + # ... and replace /usr/sbin/mkinitrd with a dummy, in order to skip the + # initrd-creation. + rename('/usr/sbin/mkinitrd', '/usr/sbin/_mkinitrd'); + spitFile('/usr/sbin/mkinitrd', "#! /bin/sh\ntouch \$2\n"); + chmod 0755, '/usr/sbin/mkinitrd'; +} + +sub startSession +{ + my $self = shift; + my $osDir = shift; + + $self->SUPER::startSession($osDir); + + # As in preSystemInstallationHook, we replace /usr/sbin/mkinitrd with a + # dummy, in order to skip the initrd-creation. + # + # During installation, this might not exist yet, so we better check + if (-e '/usr/sbin/mkinitrd') { + rename('/usr/sbin/mkinitrd', '/usr/sbin/_mkinitrd'); + spitFile('/usr/sbin/mkinitrd', "#! /bin/sh\ntouch \$2\n"); + chmod 0755, '/usr/sbin/mkinitrd'; + } +} + +sub finishSession +{ + my $self = shift; + + # restore /usr/sbin/mkinitrd + rename('/usr/sbin/_mkinitrd', '/usr/sbin/mkinitrd'); + + $self->SUPER::finishSession(); +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/Distro/Fedora.pm b/src/installer/OpenSLX/OSSetup/Distro/Fedora.pm new file mode 100644 index 00000000..80480340 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Fedora.pm @@ -0,0 +1,48 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Fedora.pm +# - provides Fedora-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Fedora; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'rpm'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum'; + $self->{'stage1c-faked-files'} = [ + '/etc/fstab', + '/etc/mtab', + ]; + return; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/Distro/Gentoo.pm b/src/installer/OpenSLX/OSSetup/Distro/Gentoo.pm new file mode 100644 index 00000000..79fd0e29 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Gentoo.pm @@ -0,0 +1,33 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Gentoo.pm +# - provides Gentoo-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Gentoo; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Distro/Scilin.pm b/src/installer/OpenSLX/OSSetup/Distro/Scilin.pm new file mode 100644 index 00000000..e1ce5fc3 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Scilin.pm @@ -0,0 +1,48 @@ +# 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Scilin.pm +# - provides Scientific Linux specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Scilin; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'rpm'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum'; + $self->{'stage1c-faked-files'} = [ + '/etc/fstab', + '/etc/mtab', + ]; + return; +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Distro/Suse.pm b/src/installer/OpenSLX/OSSetup/Distro/Suse.pm new file mode 100644 index 00000000..8e85e46a --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Suse.pm @@ -0,0 +1,98 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Suse.pm +# - provides SUSE-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Suse; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'rpm'; + + # use 'zypper' as meta-packager from 10.2 onwards and use 'smart' for + # older releases + my $defaultMetaPackager = 'zypper'; + if ($self->{'engine'}->{'distro-name'} =~ m{-([^-]+)$}) { + my $distroVersion = 0.0 + $1; + if ($distroVersion <= 10.2) { + $defaultMetaPackager = 'smart'; + } + } + $self->{'meta-packager-type'} + = $ENV{SLX_META_PACKAGER} || $defaultMetaPackager; + + if ($engine->{'action-type'} eq 'install') { + # Inform SUSE RPMs that we're performing an installation - this is + # only important for installations taking place in stage 1c: + $ENV{YAST_IS_RUNNING} = "instsys"; + } + + return; +} + +sub fixPrerequiredFiles +{ + my $self = shift; + my $stage1cDir = shift; + + chown( + 0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", + "$stage1cDir/etc/shadow" + ); + return; +} + +sub updateDistroConfig +{ + my $self = shift; + + # invoke SuSEconfig in order to allow it to update the configuration: + if (slxsystem('SuSEconfig')) { + die _tr("unable to run SuSEconfig (%s)", $!); + } + $self->SUPER::updateDistroConfig(); + return; +} + +sub hashPassword +{ + my $self = shift; + my $password = shift; + + my $busyboxBin = $self->{engine}->busyboxBinary(); + my $hashedPassword = qx{$busyboxBin cryptpw -a blowfish '$password'}; + chomp $hashedPassword; + + return $hashedPassword; +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm b/src/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm new file mode 100644 index 00000000..f0f42487 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm @@ -0,0 +1,119 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSSetup/Distro/Ubuntu.pm +# - provides Ubuntu-specific overrides of the OSSetup Distro API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Ubuntu; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'dpkg'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; + $self->{'stage1c-faked-files'} = []; + return; +} + +sub preSystemInstallationHook +{ + my $self = shift; + + $self->SUPER::preSystemInstallationHook(); + + # fake required /dev-entries + my %devInfo = ( + mem => { type => 'c', major => '1', minor => '1' }, + null => { type => 'c', major => '1', minor => '3' }, + zero => { type => 'c', major => '1', minor => '5' }, + random => { type => 'c', major => '1', minor => '8' }, + urandom => { type => 'c', major => '1', minor => '9' }, + kmsg => { type => 'c', major => '1', minor => '11' }, + console => { type => 'c', major => '5', minor => '1' }, + ptmx => { type => 'c', major => '5', minor => '2' }, + ); + foreach my $dev (keys %devInfo) { + my $info = $devInfo{$dev}; + if (!-e "/dev/$dev") { + if (slxsystem( + "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}" + )) { + croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!)); + } + } + } + foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') { + if (!-e "/dev/$devDir") { + if (slxsystem("mkdir -p /dev/$devDir")) { + croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!)); + } + } + } + + # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot + # of initscripts being started. Wishful thinking: there should be another + # way to stop Ubuntu from doing this, as this is not really very supportive + # of folder-based installations (then again: I may simply be too stupid + # to find out how it is supposed to work ...) + rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d'); + spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n"); + chmod 0755, '/usr/sbin/invoke-rc.d'; +} + +sub startSession +{ + my $self = shift; + my $osDir = shift; + + $self->SUPER::startSession($osDir); + + # As in preSystemInstallationHook, we replace /usr/sbin/invoke-rc.d by a + # dummy. + # + # During installation, this might not exist yet, so we better check + if (-e '/usr/sbin/invoke-rc.d') { + rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d'); + spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n"); + chmod 0755, '/usr/sbin/invoke-rc.d'; + } +} + +sub finishSession +{ + my $self = shift; + + # restore /usr/sbin/invoke-rc.d + rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d'); + + $self->SUPER::finishSession(); +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Engine.pm b/src/installer/OpenSLX/OSSetup/Engine.pm new file mode 100644 index 00000000..642a058b --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Engine.pm @@ -0,0 +1,1929 @@ +# 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/ +# ----------------------------------------------------------------------------- +# Engine.pm +# - provides driver engine for the OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Engine; + +use strict; +use warnings; + +our (@ISA, @EXPORT, $VERSION); +$VERSION = 1.01; # API-version . implementation-version + +use Exporter; +@ISA = qw(Exporter); + +@EXPORT = qw( + %supportedDistros +); + +use Config::General; +use File::Basename; +use File::Path; +use URI; + +use OpenSLX::Basics; +use OpenSLX::ScopedResource; +use OpenSLX::Syscall; +use OpenSLX::Utils; + +use vars qw(%supportedDistros); + +%supportedDistros = ( + 'debian-3.1' => 'clone,install,update,shell', + 'debian-4.0' => 'clone,install,update,shell', + 'debian-4.0_amd64' => 'clone,install,update,shell', + 'debian-5.0' => 'clone,update,shell', + 'fedora-6' => 'clone,install,update,shell', + 'fedora-6_x86_64' => 'clone,install,update,shell', + 'gentoo-2007.X' => 'clone', + 'suse-10.1' => 'clone,install,update,shell', + 'suse-10.1_x86_64' => 'clone,install,update,shell', + 'suse-10.2' => 'clone,install,update,shell', + 'suse-10.2_x86_64' => 'clone,install,update,shell', + 'suse-10.3' => 'clone,install,update,shell', + 'suse-10.3_x86_64' => 'clone,update,shell', + 'suse-11.0' => 'clone,install,update,shell', + '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', + 'suse-11.3' => 'clone,update,shell', + 'suse-11.3_x86_64' => 'clone,update,shell', + 'scilin-4.7' => 'clone,update,shell', + 'scilin-5.3' => 'clone,update,shell', + 'scilin-5.4_x86_64' => 'clone,update,shell', + 'scilin-5.5_x86_64' => 'clone,update,shell', + 'ubuntu-8.04' => 'clone,install,update,shell', + 'ubuntu-8.04_amd64' => 'clone,update,shell', + 'ubuntu-8.10' => 'clone,install,update,shell', + 'ubuntu-8.10_amd64' => 'clone,update,shell', + 'ubuntu-9.04' => 'clone,install,update,shell', + '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; +my $filelisting; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + my $vendorOSName = shift; + my $actionType = shift; + + if ($vendorOSName eq '<<>>') { + die _tr("you can't do that with the default vendor-OS!\n"); + } + if ($vendorOSName !~ m[^([^\-]+\-[^\-]+)(?:\-(.+))?]) { + die _tr( + "Given vendor-OS has unknown format, " . + "expected '-[-]'\n" + ); + } + my $distroName = lc($1); + my $selectionName = $2 || 'default'; + $self->{'vendor-os-name'} = $vendorOSName; + $self->{'action-type'} = $actionType; + $self->{'distro-name'} = $distroName; + $self->{'selection-name'} = $selectionName; + $self->{'clone-source'} = ''; + if (!exists $supportedDistros{$distroName}) { + print _tr("Sorry, distro '%s' is unsupported.\n", $distroName); + print _tr("List of supported distros:\n\t"); + print join("\n\t", sort keys %supportedDistros) . "\n"; + exit 1; + } + my $support = $supportedDistros{$distroName}; + if ($actionType eq 'install' && $support !~ m[install]i) { + print _tr( + "Sorry, distro '%s' can not be installed, only cloned!\n", + $distroName + ); + exit 1; + } + elsif ($actionType eq 'update' && $support !~ m[(update)]i) { + print _tr( + "Sorry, update support for vendor-OS '%s' has not been " . + "implemented!\n", + $distroName + ); + exit 1; + } + elsif ($actionType eq 'shell' && $support !~ m[(shell)]i) { + print _tr( + "Sorry, vendor-OS '%s' has no support for chrooted shells " . + "available!\n", + $distroName + ); + exit 1; + } + + # load module for the requested distro: + my $distro = loadDistroModule({ + distroName => $distroName, + distroScope => 'OpenSLX::OSSetup::Distro', + fallbackName => 'Any_Clone', + }); + if (!$distro) { + die _tr( + 'unable to load any OSSetup::Distro module for vendor-OS %s!', + $vendorOSName + ); + } + + $distro->initialize($self); + $self->{distro} = $distro; + + # protect against parallel executions of writing OpenSLX scripts + $self->{'vendor-os-lock'} = grabLock($vendorOSName); + + if ($actionType =~ m{^(install|update|shell|plugin)}) { + # setup path to distribution-specific info: + my $sharedDistroInfoDir + = "$openslxConfig{'base-path'}/share/distro-info/" . + "$self->{'distro-name'}"; + if (!-d $sharedDistroInfoDir) { + die _tr( + "unable to find shared distro-info in '%s'\n", + $sharedDistroInfoDir + ); + } + $self->{'shared-distro-info-dir'} = $sharedDistroInfoDir; + my $configDistroInfoDir = + "$openslxConfig{'config-path'}/distro-info/$self->{'distro-name'}"; + if (!-d $configDistroInfoDir) { + die _tr( + "unable to find configurable distro-info in '%s'\n", + $configDistroInfoDir + ); + } + $self->{'config-distro-info-dir'} = $configDistroInfoDir; + + my $setupMirrorsIfNecessary = $actionType eq 'install'; + $self->_readDistroInfo($setupMirrorsIfNecessary); + } + + if ($self->{'action-type'} eq 'install' + && !exists $self->{'distro-info'}->{'selection'}->{$selectionName}) + { + die( + _tr( + "selection '%s' is unknown to distro '%s'\n", + $selectionName, $self->{'distro-name'} + ) + . _tr("These selections are available:\n\t") + . join("\n\t", sort keys %{$self->{'distro-info'}->{'selection'}}) + . "\n" + ); + } + + $self->{'vendor-os-path'} + = "$openslxConfig{'private-path'}/stage1/$self->{'vendor-os-name'}"; + vlog(1, "vendor-OS path is '$self->{'vendor-os-path'}'"); + + if ($actionType =~ m{^(install|update|shell|plugin)}) { + $self->_createPackager(); + $self->_createMetaPackager(); + } + + return; +} + +sub installVendorOS +{ + my $self = shift; + my $vendorOSSettings = shift; + + my $installInfoFile = "$self->{'vendor-os-path'}/.openslx-install-info"; + if (-e $installInfoFile) { + die _tr("vendor-OS '%s' already exists, giving up!\n", + $self->{'vendor-os-path'}); + } + $self->_createVendorOSPath(); + + my $httpServers = OpenSLX::ScopedResource->new({ + name => 'local-http-servers', + acquire => sub { $self->_startLocalURLServersAsNeeded(); 1 }, + release => sub { $self->_stopLocalURLServers(); 1 }, + }); + + my $baseSystemFile = "$self->{'vendor-os-path'}/.openslx-base-system"; + if (-e $baseSystemFile) { + vlog(0, _tr("found existing base system, continuing...\n")); + } + else { + # basic setup, stage1a-c: + $self->_setupStage1A(); + callInSubprocess( + sub { + # some tasks that involve a chrooted environment: + $self->_changePersonalityIfNeeded(); + $self->_setupStage1B(); + $self->_setupStage1C(); + } + ); + $self->_stage1C_cleanupBasicVendorOS(); + # just touch the file, in order to indicate a basic system: + slxsystem("touch $baseSystemFile"); + } + callInSubprocess( + sub { + # another task that involves a chrooted environment: + $self->_changePersonalityIfNeeded(); + $self->_setupStage1D(); + } + ); + + # create the install-info file, in order to indicate a proper installation: + spitFile( + $installInfoFile, + "SLX_META_PACKAGER=$self->{distro}->{'meta-packager-type'}\n" + ); + + # base system info file is no longer needed, we have a full system now + slxsystem("rm $baseSystemFile"); + + $self->_applyVendorOSSettings($vendorOSSettings) unless !$vendorOSSettings; + + vlog( + 0, + _tr( + "Vendor-OS '%s' installed succesfully.\n", + $self->{'vendor-os-name'} + ) + ); + + # generate default openslx directories for the client + $self->_generateDefaultDirs(); + + # add the uclibs and tools to the stage1 + $self->_copyUclibcRootfs(); + #callInSubprocess( + # sub { + # $self->_callChrootedFunction({ + # chrootDir => $self->{'vendor-os-path'}, + # function => sub { + # $self->{'distro'}->addUclibLdconfig(); + # }, + # updateConfig => 1, + # }); + #}); + $self->_touchVendorOS(); + $self->addInstalledVendorOSToConfigDB(); + return; +} + +sub cloneVendorOS +{ + my $self = shift; + my $source = shift; + + if (substr($source, -1, 1) ne '/') { + # make sure source path ends with a slash, as otherwise, the + # last folder would be copied (but we only want its contents). + $source .= '/'; + } + + $self->{'clone-source'} = $source; + my $lastCloneSource = ''; + my $cloneInfoFile = "$self->{'vendor-os-path'}/.openslx-clone-info"; + my $isReClone; + if (-e $self->{'vendor-os-path'}) { + my $installInfoFile = "$self->{'vendor-os-path'}/.openslx-install-info"; + if (-e $installInfoFile) { + # oops, given vendor-os has been installed, not cloned, we complain: + croak( + _tr( + "The vendor-OS '%s' exists but it is no clone, refusing " . + "to clobber!\nPlease delete the folder manually, if " . + "that's really what you want...\n", + $self->{'vendor-os-path'} + ) + ); + } + elsif (-e $cloneInfoFile) { + # check if last and current source match: + my $cloneInfo = slurpFile($cloneInfoFile); + if ($cloneInfo =~ m[^source\s*=\s*(.+?)\s*$]ims) { + $lastCloneSource = $1; + } + if ($source ne $lastCloneSource) { + # protect user from confusing sources (still allowed, though): + my $yes = _tr('yes'); + my $no = _tr('no'); + print _tr( + "Last time this vendor-OS was cloned, it has been cloned " . + "from '%s', now you specified a different source: '%s'\n" . + "Would you still like to proceed (%s/%s)?", + $lastCloneSource, $source, $yes, $no + ); + my $answer = ; + exit 5 unless $answer =~ m[^\s*$yes]i; + } + $isReClone = 1; + } + else { + # Neither the install-info nor the clone-info file exists. This + # probably means that the folder has been created by an older + # version of the tools. There's not much we can do, we simply + # trust our user and assume that he knows what he's doing. + } + } + + $self->_createVendorOSPath(); + + $self->_clone_fetchSource($source); + if ($source ne $lastCloneSource) { + spitFile($cloneInfoFile, "source=$source\n"); + } + if ($isReClone) { + vlog( + 0, + _tr( + "Vendor-OS '%s' has been re-cloned succesfully.\n", + $self->{'vendor-os-name'} + ) + ); + } + else { + vlog( + 0, + _tr( + "Vendor-OS '%s' has been cloned succesfully.\n", + $self->{'vendor-os-name'} + ) + ); + } + + # generate default openslx directories for the client + $self->_generateDefaultDirs(); + + # add the uclibs and tools to the stage1 + $self->_copyUclibcRootfs(); + $self->_touchVendorOS(); + $self->addInstalledVendorOSToConfigDB(); + return; +} + +sub updateVendorOS +{ + my $self = shift; + + if (!-e $self->{'vendor-os-path'}) { + die _tr("can't update vendor-OS '%s', since it doesn't exist!\n", + $self->{'vendor-os-path'}); + } + + my $httpServers = OpenSLX::ScopedResource->new({ + name => 'local-http-servers', + acquire => sub { $self->_startLocalURLServersAsNeeded(); 1 }, + release => sub { $self->_stopLocalURLServers(); 1 }, + }); + + callInSubprocess( + sub { + $self->_changePersonalityIfNeeded(); + $self->_updateStage1D(); + } + ); + + $self->_generateDefaultDirs(); + $self->_copyUclibcRootfs(); + $self->_touchVendorOS(); + vlog( + 0, + _tr("Vendor-OS '%s' updated succesfully.\n", $self->{'vendor-os-name'}) + ); + + $self->_installPlugins(); + + return; +} + +sub startChrootedShellForVendorOS +{ + my $self = shift; + + if (!-e $self->{'vendor-os-path'}) { + die _tr( + "can't start chrooted shell for vendor-OS '%s', since it doesn't " . + "exist!\n", + $self->{'vendor-os-path'} + ); + } + + my $httpServers = OpenSLX::ScopedResource->new({ + name => 'local-http-servers', + acquire => sub { $self->_startLocalURLServersAsNeeded(); 1 }, + release => sub { $self->_stopLocalURLServers(); 1 }, + }); + + callInSubprocess( + sub { + $self->_changePersonalityIfNeeded(); + $self->_startChrootedShellInStage1D(); + } + ); + + vlog( + 0, + _tr( + "Chrooted shell for vendor-OS '%s' has been closed.\n", + $self->{'vendor-os-name'} + ) + ); + $self->_touchVendorOS(); + + return; +} + +sub callChrootedFunctionForVendorOS +{ + my $self = shift; + my $function = shift; + my $updateConfig = shift || 0; + + if (!-e $self->{'vendor-os-path'}) { + die _tr( + "can't call chrooted function for vendor-OS '%s', since it " . + "doesn't exist!\n", + $self->{'vendor-os-path'} + ); + } + + # avoid trying to chroot into a 64-bit vendor-OS if the host is only 32-bit: + if (!$self->_hostIs64Bit() && -e "$self->{'vendor-os-path'}/lib64") { + die _tr("you can't use a 64-bit vendor-OS on a 32-bit host, sorry!\n"); + } + + my $httpServers = OpenSLX::ScopedResource->new({ + name => 'local-http-servers', + acquire => sub { $self->_startLocalURLServersAsNeeded(); 1 }, + release => sub { $self->_stopLocalURLServers(); 1 }, + }); + + callInSubprocess( + sub { + $self->_changePersonalityIfNeeded(); + $self->_callChrootedFunction({ + chrootDir => $self->{'vendor-os-path'}, + function => $function, + updateConfig => $updateConfig, + }); + } + ); + + vlog( + 1, + _tr( + "Chrooted function for vendor-OS '%s' has finished.\n", + $self->{'vendor-os-name'} + ) + ); + $self->_touchVendorOS(); + + return 1; +} + +sub removeVendorOS +{ + my $self = shift; + + vlog( + 0, + _tr("removing vendor-OS folder '%s'...", $self->{'vendor-os-path'}) + ); + if (system( + "find $self->{'vendor-os-path'} -xdev -depth -print0 | xargs -0 rm -r" + )) { + vlog( + 0, + _tr("* unable to remove vendor-OS '%s'!", $self->{'vendor-os-path'}) + ); + } + else { + vlog( + 0, + _tr( + "Vendor-OS '%s' removed succesfully.\n", + $self->{'vendor-os-name'} + ) + ); + } + $self->removeVendorOSFromConfigDB(); + return; +} + +sub addInstalledVendorOSToConfigDB +{ + my $self = shift; + + if (!-e $self->{'vendor-os-path'}) { + die _tr( + "can't import vendor-OS '%s', since it doesn't exist!\n", + $self->{'vendor-os-path'} + ); + } + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + my @plugins; + + # insert new vendor-os if it doesn't already exist in DB: + my $vendorOSName = $self->{'vendor-os-name'}; + my $vendorOS = $openslxDB->fetchVendorOSByFilter({'name' => $vendorOSName}); + if (defined $vendorOS) { + if ($vendorOS->{'clone_source'} + && $self->{'clone-source'} ne $vendorOS->{'clone_source'}) { + $openslxDB->changeVendorOS( + $vendorOS->{id}, + { 'clone_source' => $self->{'clone-source'} } + ); + vlog( + 0, + _tr( + "Vendor-OS '%s' has been updated in OpenSLX-database.\n", + $vendorOSName + ) + ); + } + else { + vlog( + 0, + _tr( + "No need to change vendor-OS '%s' in OpenSLX-database.\n", + $vendorOSName + ) + ); + } + # fetch installed plugins of this vendor-OS in order to reinstall them + @plugins = $openslxDB->fetchInstalledPlugins($vendorOS->{id}); + } + else { + my $data = { 'name' => $vendorOSName }; + if (length($self->{'clone-source'})) { + $data->{'clone_source'} = $self->{'clone-source'}; + } + my $id = $openslxDB->addVendorOS($data); + + vlog( + 0, + _tr( + "Vendor-OS '%s' has been added to DB (ID=%s).\n", + $vendorOSName, $id + ) + ); + # fetch plugins from default vendor-OS in order to install those into + # this new one + @plugins = $openslxDB->fetchInstalledPlugins(0); + } + + $openslxDB->disconnect(); + + # now that we have the list of plugins, we (re-)install all of them: + $self->_installPlugins(\@plugins, defined $vendorOS); + + return; +} + +sub removeVendorOSFromConfigDB +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + + my $vendorOSName = $self->{'vendor-os-name'}; + my $vendorOS = $openslxDB->fetchVendorOSByFilter({'name' => $vendorOSName}); + if (!defined $vendorOS) { + vlog( + 0, + _tr( + "Vendor-OS '%s' didn't exist in OpenSLX-database.\n", + $vendorOSName + ) + ); + } + else { + # remove all exports (and systems) using this vendor-OS and then + # remove the vendor-OS itself: + my @exports = $openslxDB->fetchExportByFilter( + {'vendor_os_id' => $vendorOS->{id}}); + foreach my $export (@exports) { + my $osExportEngine = instantiateClass("OpenSLX::OSExport::Engine"); + $osExportEngine->initializeFromExisting($export->{name}); + vlog( + 0, + _tr( + "purging export '%s', since it belongs to the vendor-OS " . + "being deleted...", + $export->{name} + ) + ); + $osExportEngine->purgeExport(); + } + + $openslxDB->removeVendorOS($vendorOS->{id}); + vlog( + 0, + _tr("Vendor-OS '%s' has been removed from DB!\n", $vendorOSName) + ); + } + + $openslxDB->disconnect(); + return; +} + +sub pickKernelFile +{ + my $self = shift; + + return $self->{distro}->pickKernelFile(@_); +} + +sub distroName +{ + my $self = shift; + + return $self->{'distro-name'}; +} + +sub metaPackager +{ + my $self = shift; + + return $self->{'meta-packager'}; +} + +sub packager +{ + my $self = shift; + + return $self->{'packager'}; +} + +sub getInstallablePackagesForSelection +{ + my $self = shift; + my $selKey = shift; + + return if !$selKey; + + my $selection = $self->{'distro-info'}->{selection}->{$selKey}; + return if !$selection; + + my @pkgs = split m{\s+}, $selection->{packages}; + my %installedPkgs; + @installedPkgs{ $self->{'packager'}->getInstalledPackages() } = (); + @pkgs = grep { !exists $installedPkgs{$_} } @pkgs; + + return join ' ', @pkgs; +} + +sub busyboxBinary +{ + my $self = shift; + + my $uclibdir = "$openslxConfig{'base-path'}/share/uclib-rootfs"; + + return sprintf( + "LD_LIBRARY_PATH=%s/lib %s/bin/busybox", + $uclibdir, + $uclibdir + ); +} + +################################################################################ +### implementation methods +################################################################################ +sub _readDistroInfo +{ + my $self = shift; + my $setupMirrorsIfNecessary = shift || 0; + + vlog(1, "reading configuration info for $self->{'vendor-os-name'}..."); + + $self->{'distro-info'} = { + 'package-subdir' => '', + 'prereq-packages' => '', + 'bootstrap-packages' => '', + 'metapackager' => {}, + 'repository' => {}, + 'selection' => {}, + 'excludes' => {}, + }; + + # merge user-provided configuration with distro defaults + foreach my $file ( + "$self->{'shared-distro-info-dir'}/settings.default", + "$self->{'config-distro-info-dir'}/settings" + ) { + if (-e $file) { + vlog(2, "reading configuration file $file..."); + my $configObject = Config::General->new( + -AllowMultiOptions => 0, + -AutoTrue => 1, + -ConfigFile => $file, + -LowerCaseNames => 1, + -SplitPolicy => 'equalsign', + ); + my %config = $configObject->getall(); + mergeHash($self->{'distro-info'}, \%config); + } + } + + # fetch mirrors for all repositories (if requested): + foreach my $repoKey (keys %{$self->{'distro-info'}->{repository}}) { + my $repo = $self->{'distro-info'}->{repository}->{$repoKey}; + $repo->{key} = $repoKey; + # if there is local URL, only that is used, otherwise we fetch the + # configured mirrors: + if (!$repo->{'local-url'}) { + $repo->{urls} = $self->_fetchConfiguredMirrorsForRepository( + $repo, $setupMirrorsIfNecessary + ); + } + } + + # expand all selections: + my $seen = {}; + foreach my $selKey (keys %{$self->{'distro-info'}->{selection}}) { + $self->_expandSelection($selKey, $seen); + } + + # dump distro-info, if asked for: + if ($openslxConfig{'log-level'} >= 2) { + my $repository = $self->{'distro-info'}->{repository}; + foreach my $r (sort keys %$repository) { + vlog(2, "repository '$r':"); + foreach my $k (sort keys %{$repository->{$r}}) { + vlog(3, "\t$k = '$repository->{$r}->{$k}'"); + } + } + my $selection = $self->{'distro-info'}->{selection}; + foreach my $s (sort keys %$selection) { + vlog(2, "selection '$s':"); + foreach my $k (sort keys %{$selection->{$s}}) { + vlog(3, "\t$k = '$selection->{$s}->{$k}'"); + } + } + my $excludes = $self->{'distro-info'}->{excludes}; + foreach my $e (sort keys %$excludes) { + vlog(2, "excludes for '$e':"); + foreach my $k (sort keys %{$excludes->{$e}}) { + vlog(3, "\t$k = '$excludes->{$e}->{$k}'"); + } + } + } + return; +} + +sub _fetchConfiguredMirrorsForRepository +{ + my $self = shift; + my $repoInfo = shift; + my $setupMirrorsIfNecessary = shift; + + my $configuredMirrorsFile + = "$self->{'config-distro-info-dir'}/mirrors/$repoInfo->{key}"; + if (!-e $configuredMirrorsFile) { + return '' if !$setupMirrorsIfNecessary; + vlog(0, + _tr( + "repo '%s' has no configured mirrors, let's pick some ...", + $repoInfo->{name} + ) + ); + $self->_configureBestMirrorsForRepository($repoInfo); + } + vlog(2, "reading configured mirrors file '$configuredMirrorsFile'."); + my $configObject = Config::General->new( + -AllowMultiOptions => 0, + -AutoTrue => 1, + -ConfigFile => $configuredMirrorsFile, + -LowerCaseNames => 1, + -SplitPolicy => 'equalsign', + ); + my %config = $configObject->getall(); + + return $config{urls}; +} + +sub _configureBestMirrorsForRepository +{ + my $self = shift; + my $repoInfo = shift; + + my $configuredMirrorsFile + = "$self->{'config-distro-info-dir'}/mirrors/$repoInfo->{key}"; + + if (!-e "$self->{'config-distro-info-dir'}/mirrors") { + mkdir "$self->{'config-distro-info-dir'}/mirrors"; + } + + my $allMirrorsFile + = "$self->{'shared-distro-info-dir'}/mirrors/$repoInfo->{key}"; + my @allMirrors = string2Array(scalar slurpFile($allMirrorsFile)); + + my $mirrorsToTryCount = $openslxConfig{'mirrors-to-try-count'} || 20; + my $mirrorsToUseCount = $openslxConfig{'mirrors-to-use-count'} || 5; + vlog(1, + _tr( + "selecting the '%s' best mirrors (from a set of '%s') for repo " . + "'%s' ...", + $mirrorsToUseCount, $mirrorsToTryCount, $repoInfo->{key} + ) + ); + + # determine own top-level domain: + my $topLevelDomain; + if (defined $openslxConfig{'mirrors-preferred-top-level-domain'}) { + $topLevelDomain + = lc($openslxConfig{'mirrors-preferred-top-level-domain'}); + } + else { + my $FQDN = getFQDN(); + $FQDN =~ m{\.(\w+)$}; + $topLevelDomain = lc($1); + } + + # select up to $mirrorsToTryCount "close" mirrors from the array ... + my @tryMirrors + = grep { + my $uri = URI->new($_); + my $host = $uri->host(); + $host =~ m{\.(\w+)$} && lc($1) eq $topLevelDomain; + } + @allMirrors; + + my $tryList = join("\n\t", @tryMirrors); + vlog(1, + _tr( + "mirrors matching the preferred top level domain ('%s'):\n\t%s\n", + $topLevelDomain, $tryList + ) + ); + + if (@tryMirrors > $mirrorsToTryCount) { + # shrink array to $mirrorsToTryCount elements + vlog(1, _tr("shrinking list to %s mirrors\n", $mirrorsToTryCount)); + $#tryMirrors = $mirrorsToTryCount; + } + elsif (@tryMirrors < $mirrorsToTryCount) { + # we need more mirrors, try adding some others randomly: + vlog(1, + _tr( + "filling list with %s more random mirrors:\n", + $mirrorsToTryCount - @tryMirrors + ) + ); + + # fill @untriedMirrors with the mirrors not already contained + # in @tryMirrors ... + my @untriedMirrors + = grep { + my $mirror = $_; + !grep { $mirror eq $_ } @tryMirrors; + } @allMirrors; + + # ... and pick randomly until we have reached the limit or there are + # no more unused mirrors left + foreach my $count (@tryMirrors..$mirrorsToTryCount-1) { + last if !@untriedMirrors; + my $index = int(rand(scalar @untriedMirrors)); + my $randomMirror = splice(@untriedMirrors, $index, 1); + push @tryMirrors, $randomMirror; + vlog(1, "\t$randomMirror\n"); + } + } + + # just make sure we are not going to try/use more mirros than we have + # available + if ($mirrorsToTryCount > @tryMirrors) { + $mirrorsToTryCount = @tryMirrors; + } + if ($mirrorsToUseCount > $mirrorsToTryCount) { + $mirrorsToUseCount = $mirrorsToTryCount; + } + + # ... fetch a file from all of these mirrors and measure the time taken ... + vlog(0, + _tr( + "testing %s mirrors to determine the fastest %s ...\n", + $mirrorsToTryCount, $mirrorsToUseCount + ) + ); + my %mirrorSpeed; + my $veryGoodSpeedCount = 0; + foreach my $mirror (@tryMirrors) { + if ($veryGoodSpeedCount >= $mirrorsToUseCount) { + # we already have enough mirrors with very good speed, + # it makes no sense to test any others. We simply set the + # time of the remaining mirrors to some large value, so they + # won't get picked: + $mirrorSpeed{$mirror} = 10000; + next; + } + + # test the current mirror and record the result + my $time = $self->_speedTestMirror( + $mirror, $repoInfo->{'file-for-speedtest'} + ); + $mirrorSpeed{$mirror} = $time; + if ($time <= 1) { + $veryGoodSpeedCount++; + } + } + + # ... now select the best (fastest) $mirrorsToUseCount mirrors ... + my @bestMirrors + = ( + sort { + $mirrorSpeed{$a} <=> $mirrorSpeed{$b}; + } + @tryMirrors + )[0..$mirrorsToUseCount-1]; + + vlog(0, + _tr( + "picked these '%s' mirrors for repo '%s':\n\t%s\n", + $mirrorsToUseCount, $repoInfo->{name}, join("\n\t", @bestMirrors) + ) + ); + + # ... and write them into the configuration file: + my $configObject = Config::General->new( + -AllowMultiOptions => 0, + -AutoTrue => 1, + -LowerCaseNames => 1, + -SplitPolicy => 'equalsign', + ); + $configObject->save_file($configuredMirrorsFile, { + 'urls' => join("\n", @bestMirrors), + }); + return; +} + +sub _speedTestMirror +{ + my $self = shift; + my $mirror = shift; + my $file = shift; + + vlog(0, _tr("\ttesting mirror '%s' ...\n", $mirror)); + + # do an explicit DNS-lookup as we do not want to include the time that takes + # in the speedtest + my $uri = URI->new($mirror); + my $hostName = $uri->host(); + if (!gethostbyname($hostName)) { + # unable to resolve host, we pretend it took really long + return 10000; + } + + # now measure the time it takes to download the file + my $wgetCmd = $self->busyboxBinary(); + $wgetCmd .= " wget -q -O - $mirror/$file >/dev/null"; + my $start = time(); + if (slxsystem($wgetCmd)) { + # just return any large number that is unlikely to be selected + return 10000; + } + my $time = time() - $start; + vlog(0, "\tfetched '$file' in $time seconds\n"); + return $time; +} + +sub _expandSelection +{ + my $self = shift; + my $selKey = shift; + my $seen = shift; + + return if $seen->{$selKey}; + $seen->{$selKey} = 1; + + return if !exists $self->{'distro-info'}->{selection}->{$selKey}; + my $selection = $self->{'distro-info'}->{selection}->{$selKey}; + + if ($selection->{base}) { + # add all packages from base selection(s) to the current one: + my $basePackages = ''; + for my $base (split ',', $selection->{base}) { + my $baseSelection = $self->{'distro-info'}->{selection}->{$base} + or die _tr( + 'base-selection "%s" is unknown (referenced in "%s")!', + $base, $selKey + ); + $self->_expandSelection($base, $seen); + $basePackages .= $baseSelection->{packages} || ''; + } + my $packages = $selection->{packages} || ''; + $selection->{packages} = $basePackages . "\n" . $packages; + } + return; +} + +sub _applyVendorOSSettings +{ + my $self = shift; + my $vendorOSSettings = shift; + + if (exists $vendorOSSettings->{'root-password'}) { + # hashes password according to requirements of current distro and + # writes it to /etc/shadow + $self->{distro}->setPasswordForUser( + 'root', $vendorOSSettings->{'root-password'} + ); + } + + return; +} + +sub _createVendorOSPath +{ + my $self = shift; + + if (slxsystem("mkdir -p $self->{'vendor-os-path'}")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $self->{'vendor-os-path'}, $!); + } + return; +} + +sub _touchVendorOS +{ + my $self = shift; + + # touch root folder, as we are using this folder to determine the + # 'age' of the vendor-OS when trying to determine whether or not we + # need to re-export this vendor-OS: + slxsystem("touch $self->{'vendor-os-path'}"); + return; +} + +sub _generateDefaultDirs +{ + my $self = shift; + my $targetRoot = shift || $self->{'vendor-os-path'}; + + vlog(0, _tr("Creating default directories ...\n")); + + my $OPENSLX_DEFAULT_DIR = "/opt/openslx"; + my $OPENSLX_DEFAULT_CONFDIR = "/etc/opt/openslx"; + my $OPENSLX_DEFAULT_LOGDIR = "/var/log/openslx"; + 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", 0, 0755); + mkpath("$targetRoot/$OPENSLX_DEFAULT_CONFDIR", 0, 0755); + mkpath("$targetRoot/$OPENSLX_DEFAULT_LOGDIR", 0, 0755); + mkpath("$targetRoot/$OPENSLX_DEFAULT_BINDIR", 0, 0755); + mkpath("$targetRoot/$OPENSLX_DEFAULT_LIBDIR", 0, 0755); + mkpath("$targetRoot/$OPENSLX_DEFAULT_VIRTDIR", 0, 0755); + #system("chmod 0755 $targetRoot/$OPENSLX_DEFAULT_DIR"); + + 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"; + + spitFile("$targetRoot/$OPENSLX_DEFAULT_CONFDIR/openslx.conf", + "$openslxConfig"); + + # add BINDIR to PATH + my $openslxDefaultPath = "PATH=$OPENSLX_DEFAULT_BINDIR:\$PATH\n"; + $openslxDefaultPath .= "export PATH\n"; + spitFile("$targetRoot/etc/profile.d/openslx-binpath.sh", + "$openslxDefaultPath"); +} + +sub _copyUclibcRootfs +{ + my $self = shift; + my $targetRoot = shift || $self->{'vendor-os-path'}; + my $distro = $self->{distro}; + + vlog(0, _tr("copying uclibc-rootfs into vendor-OS ...\n")); + + my $target = "$targetRoot/opt/openslx/uclib-rootfs"; + + if (system("mkdir -p $target")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $target, $!); + } + + my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs"; + my @excludes = qw( + dialog + kexec + libcurses.so* + libncurses.so* + ); + my $exclOpts = join ' ', map { "--exclude $_" } @excludes; + vlog(3, _tr("using exclude-filter:\n%s\n", $exclOpts)); + my $rsyncFH; + my $rsyncCmd + = "rsync -aq --delete-excluded --exclude-from=- $uclibcRootfs/ $target"; + vlog(2, "executing: $rsyncCmd\n"); + # if we're doing a fresh install we need to create /lib, /bin first + mkdir "$targetRoot/lib"; + mkdir "$targetRoot/bin"; + + open($rsyncFH, '|-', $rsyncCmd) + or die _tr("unable to start rsync for source '%s', giving up! (%s)", + $uclibcRootfs, $!); + print $rsyncFH $exclOpts; + close($rsyncFH) + or die _tr("unable to copy to target '%s', giving up! (%s)", + $target, $!); + + # write version of uclibc-rootfs original into a file in order to be + # able to check the up-to-date state later (in the config-demuxer) + slxsystem("slxversion >${target}.version"); + + return; +} + +sub _createPackager +{ + my $self = shift; + + my $packagerClass + = "OpenSLX::OSSetup::Packager::$self->{distro}->{'packager-type'}"; + my $packager = instantiateClass($packagerClass); + $packager->initialize($self); + $self->{'packager'} = $packager; + return; +} + +sub _createMetaPackager +{ + my $self = shift; + + my $metaPackagerType = $self->{distro}->{'meta-packager-type'}; + + my $installInfoFile = "$self->{'vendor-os-path'}/.openslx-install-info"; + if (-e $installInfoFile) { + # activate the meta-packager that was used when installing the os: + my $installInfo = slurpFile($installInfoFile); + if ($installInfo =~ m[SLX_META_PACKAGER=(\w+)]) { + $metaPackagerType = $1; + } + } + + my $metaPackagerClass = "OpenSLX::OSSetup::MetaPackager::$metaPackagerType"; + my $metaPackager = instantiateClass($metaPackagerClass); + $metaPackager->initialize($self); + $self->{'meta-packager'} = $metaPackager; + return; +} + +sub _sortRepositoryURLs +{ + my $self = shift; + my $repoInfo = shift; + + my @URLs + = defined $repoInfo->{'local-url'} + ? $repoInfo->{'local-url'} + : string2Array($repoInfo->{urls}); + if (!@URLs) { + die( + _tr( + "repository '%s' has no URLs defined, " . + "unable to fetch anything!", + $repoInfo->{name}, + ) + ); + } + + return \@URLs; +} + +sub _downloadBaseFiles +{ + my $self = shift; + my $files = shift; + use vars qw(@filelisting); + + my $pkgSubdir = $self->{'distro-info'}->{'package-subdir'}; + my @URLs = @{$self->{'baseURLs'}}; + my $maxTryCount = $openslxConfig{'ossetup-max-try-count'}; + my @possiblefiles; + + my @foundFiles; + foreach my $fileVariantStr (@$files) { + my $tryCount = 0; + next unless $fileVariantStr =~ m[\S]; + my $foundFile; +try_next_url: + my $url = $URLs[$self->{'baseURL-index'}]; + $url .= "/$pkgSubdir" if length($pkgSubdir); + + foreach my $file (split '\s+', $fileVariantStr) { + #substitute given name with real filename including version number + my $basefile = basename($file); + my $basedir = dirname($file)."/"; + @possiblefiles = grep(/^$basefile/,@filelisting); + #selecting always the first occurence + if ($possiblefiles[0]) { + $basefile = $possiblefiles[0]; + } elsif ($basefile =~ /.*\.rpm/) { + vlog(5,"Trying suggested name because of .rpm-ending."); + } else { + die _tr("file <$basefile> not found in list received from" . + "mirror"); + } + vlog(2, "fetching <$basefile>..."); + if (slxsystem("wget", "-c", "-O", "$basefile", + "$url/$basedir$basefile") == 0) { + $foundFile = $basefile; + last; + } + elsif (-e $basefile) { + vlog(0, "removing left-over '$basefile' and trying again..."); + unlink $basefile; + redo; + } + } + if (!defined $foundFile) { + if ($tryCount < $maxTryCount) { + $tryCount++; + $self->{'baseURL-index'} + = ($self->{'baseURL-index'} + 1) % scalar(@URLs); + vlog( + 0, + _tr( + "switching to mirror '%s'.", + $URLs[$self->{'baseURL-index'}] + ) + ); + goto try_next_url; + } + die _tr("unable to fetch '%s' from any source!\n", $fileVariantStr); + } + push @foundFiles, $foundFile; + } + return @foundFiles; +} + +sub _startLocalURLServersAsNeeded +{ + my $self = shift; + + my $port = 5080; + my %portForURL; + foreach my $repoInfo (values %{$self->{'distro-info'}->{repository}}) { + my $localURL = $repoInfo->{'local-url'} || ''; + next if !$localURL; + next if $localURL =~ m[^\w+:]; # anything /w a protcol-spec is non-local + if (!exists $localHttpServers{$localURL}) { + my $pid + = executeInSubprocess( + $self->busyboxBinary(), "httpd", '-p', $port, '-h', '/', + '-f' + ); + vlog(1, + _tr( + "started local HTTP-server for URL '%s' on port '%s'.", + $localURL, $port + ) + ); + $repoInfo->{'local-url'} = "http://localhost:$port$localURL"; + $localHttpServers{$localURL}->{pid} = $pid; + $localHttpServers{$localURL}->{url} = $repoInfo->{'local-url'}; + $port++; + } + else { + $repoInfo->{'local-url'} = $localHttpServers{$localURL}->{url}; + } + } + return; +} + +sub _stopLocalURLServers +{ + my $self = shift; + + while (my ($localURL, $serverInfo) = each %localHttpServers) { + vlog(1, _tr("stopping local HTTP-server for URL '%s'.", $localURL)); + kill TERM => $serverInfo->{pid}; + } +} + +sub _setupStage1A +{ + my $self = shift; + + vlog(1, "setting up stage1a for $self->{'vendor-os-name'}..."); + + # specify individual paths for the respective substages: + $self->{stage1aDir} = "$self->{'vendor-os-path'}/stage1a"; + $self->{stage1bSubdir} = 'slxbootstrap'; + $self->{stage1cSubdir} = 'slxfinal'; + + # we create *all* of the above folders by creating stage1cDir: + my $stage1cDir + = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}/". + "$self->{'stage1cSubdir'}"; + if (slxsystem("mkdir -p $stage1cDir")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $stage1cDir, $!); + } + + $self->_stage1A_setupUclibcEnvironment(); + $self->_stage1A_copyPrerequiredFiles(); + $self->_stage1A_copyTrustedPackageKeys(); + $self->_stage1A_createRequiredFiles(); + return; +} + +sub _stage1A_setupUclibcEnvironment +{ + my $self = shift; + $self->_copyUclibcRootfs("$self->{stage1aDir}/$self->{stage1bSubdir}"); + my $source = "$self->{stage1bSubdir}/opt/openslx/uclib-rootfs"; + my $target = "$self->{stage1aDir}"; + slxsystem("ln -sf $source/bin $target/bin"); + slxsystem("ln -sf $source/lib $target/lib"); + slxsystem("ln -sf $source/usr $target/usr"); + $self->_stage1A_setupResolver(); + + return; +} + + +sub _stage1A_setupResolver +{ + my $self = shift; + my $libcFolder = shift; + + #if (!defined $libcFolder) { + # warn _tr("unable to determine libc-target-folder, will use /lib!"); + # $libcFolder = '/lib'; + #} + + copyFile('/etc/resolv.conf', "$self->{stage1aDir}/etc"); + copyFile('/etc/nsswitch.conf', "$self->{stage1aDir}/etc"); + spitFile("$self->{stage1aDir}/etc/hosts", "127.0.0.1 localhost\n"); + #copyFile("$libcFolder/libresolv*", "$self->{stage1aDir}$libcFolder"); + #copyFile("$libcFolder/libnss_dns*", "$self->{stage1aDir}$libcFolder"); + #copyFile("$libcFolder/libnss_files*", "$self->{stage1aDir}$libcFolder"); + + my $stage1cDir + = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}/" . + "$self->{'stage1cSubdir'}"; + copyFile('/etc/resolv.conf', "$stage1cDir/etc"); + return; +} + +sub _stage1A_copyPrerequiredFiles +{ + my $self = shift; + + return unless -d "$self->{'shared-distro-info-dir'}/prereqfiles"; + + vlog(2, "copying folder with pre-required files..."); + my $stage1cDir + = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}/" . + "$self->{'stage1cSubdir'}"; + my $cmd = qq[ + tar -cp -C $self->{'shared-distro-info-dir'}/prereqfiles . \\ + | tar -xp -C $stage1cDir + ]; + if (slxsystem($cmd)) { + die _tr( + "unable to copy folder with pre-required files to folder '%s'" . + "(%s)\n", + $stage1cDir, $! + ); + } + vlog(2, "fix pre-required files..."); + $self->{distro}->fixPrerequiredFiles($stage1cDir); + return; +} + +sub _stage1A_copyTrustedPackageKeys +{ + my $self = shift; + + vlog(2, "copying folder with trusted package keys..."); + my $stage1bDir = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}"; + foreach my $folder ( + $self->{'shared-distro-info-dir'}, $self->{'config-distro-info-dir'} + ) { + next unless -d "$folder/trusted-package-keys"; + my $cmd = qq[ + tar -cp -C $folder trusted-package-keys \\ + | tar -xp -C $stage1bDir + ]; + if (slxsystem($cmd)) { + die _tr( + "unable to copy folder with trusted package keys to folder " . + "'%s' (%s)\n", + "$stage1bDir/trusted-package-keys", $! + ); + } + slxsystem("chmod 444 $stage1bDir/trusted-package-keys/*"); + + # install ultimately trusted keys (from distributor): + my $stage1cDir = "$stage1bDir/$self->{'stage1cSubdir'}"; + my $keyDir = "$self->{'shared-distro-info-dir'}/trusted-package-keys"; + if (-e "$keyDir/pubring.gpg") { + copyFile("$keyDir/pubring.gpg", "$stage1cDir/usr/lib/rpm/gnupg"); + } + } + return; +} + +sub _stage1A_createRequiredFiles +{ + my $self = shift; + + vlog(2, "creating required files..."); + + # fake all files required by stage1b (by creating them empty): + my $stage1bDir = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}"; + foreach my $fake (@{$self->{distro}->{'stage1b-faked-files'}}) { + fakeFile("$stage1bDir/$fake"); + } + + # fake all files required by stage1c (by creating them empty): + my $stage1cDir = "$stage1bDir/$self->{'stage1cSubdir'}"; + foreach my $fake (@{$self->{distro}->{'stage1c-faked-files'}}) { + fakeFile("$stage1cDir/$fake"); + } + + mkdir "$stage1cDir/dev"; + if (!-e "$stage1cDir/dev/null" + && slxsystem("mknod $stage1cDir/dev/null c 1 3")) + { + die _tr( + "unable to create node '%s' (%s)\n", "$stage1cDir/dev/null", $! + ); + } + return; +} + +sub _setupStage1B +{ + my $self = shift; + + vlog(1, "setting up stage1b for $self->{'vendor-os-name'}..."); + $self->_stage1B_chrootAndBootstrap(); + return; +} + +sub _stage1B_chrootAndBootstrap +{ + my $self = shift; + + # give packager a chance to copy required files into stage1a-folder: + $self->{packager}->prepareBootstrap($self->{stage1aDir}); + + $self->_callChrootedFunction({ + chrootDir => $self->{stage1aDir}, + function => sub { + # chdir into slxbootstrap, as we want to drop packages into there: + chdir "/$self->{stage1bSubdir}" + or die _tr( + "unable to chdir into '%s' (%s)\n", + "/$self->{stage1bSubdir}", $! + ); + + # fetch prerequired packages and use them to bootstrap the packager: + $self->{'baseURLs'} = $self->_sortRepositoryURLs( + $self->{'distro-info'}->{repository}->{base} + ); + $self->{'baseURL-index'} = 0; + my @pkgs = + string2Array($self->{'distro-info'}->{'prereq-packages'}); + vlog( + 2, + "downloading these prereq packages:\n\t" . join("\n\t", @pkgs) + ); + my @prereqPkgs = $self->_downloadBaseFiles(\@pkgs); + $self->{'prereq-packages'} = \@prereqPkgs; + $self->{packager}->bootstrap(\@prereqPkgs); + + @pkgs = + string2Array($self->{'distro-info'}->{'bootstrap-packages'}); + push( + @pkgs, + string2Array( + $self->{'distro-info'}->{'metapackager'} + ->{$self->{distro}->{'meta-packager-type'}}->{packages} + ) + ); + vlog( + 2, + "downloading bootstrap packages:\n\t" . join("\n\t", @pkgs) + ); + my @bootstrapPkgs = $self->_downloadBaseFiles(\@pkgs); + $self->{'bootstrap-packages'} = \@bootstrapPkgs; + }, + }); + return; +} + +sub _setupStage1C +{ + my $self = shift; + + vlog(1, "setting up stage1c for $self->{'vendor-os-name'}..."); + $self->_stage1C_chrootAndInstallBasicVendorOS(); + return; +} + +sub _stage1C_chrootAndInstallBasicVendorOS +{ + my $self = shift; + + my $stage1bDir = "/$self->{stage1bSubdir}"; + chrootInto($stage1bDir); + + my $stage1cDir = "/$self->{stage1cSubdir}"; + + # import any additional trusted package keys to rpm-DB: + my $keyDir = "/trusted-package-keys"; + my $keyDirDH; + if (opendir($keyDirDH, $keyDir)) { + my @keyFiles + = map { "$keyDir/$_" } + grep { $_ !~ m[^(\.\.?|pubring.gpg)$] } + readdir($keyDirDH); + closedir($keyDirDH); + $self->{packager}->importTrustedPackageKeys(\@keyFiles, $stage1cDir); + } + + # install bootstrap packages + $self->{packager}->installPackages( + $self->{'bootstrap-packages'}, $stage1cDir + ); + return; +} + +sub _stage1C_cleanupBasicVendorOS +{ + my $self = shift; + + my $stage1cDir + = "$self->{'stage1aDir'}/$self->{'stage1bSubdir'}/" . + "$self->{'stage1cSubdir'}"; + if (slxsystem("mv $stage1cDir/* $self->{'vendor-os-path'}/")) { + die _tr( + "unable to move final setup to '%s' (%s)\n", + $self->{'vendor-os-path'}, $! + ); + } + if (slxsystem("rm -rf $self->{stage1aDir}")) { + die _tr( + "unable to remove temporary folder '%s' (%s)\n", + $self->{stage1aDir}, $! + ); + } + return; +} + +sub _setupStage1D +{ + my $self = shift; + + vlog(1, "setting up stage1d for $self->{'vendor-os-name'}..."); + + $self->_callChrootedFunction({ + chrootDir => $self->{'vendor-os-path'}, + function => sub { + $self->_stage1D_setupPackageSources(); + $self->_stage1D_updateBasicVendorOS(); + $self->{distro}->preSystemInstallationHook(); + my $ok = eval { + $self->_stage1D_installPackageSelection(); + 1; + }; + my $err = $ok ? undef : $@; + $self->{distro}->postSystemInstallationHook(); + die $err if defined $err; + }, + updateConfig => 1, + }); + return; +} + +sub _updateStage1D +{ + my $self = shift; + + vlog(1, "updating $self->{'vendor-os-name'}..."); + + $self->_callChrootedFunction({ + chrootDir => $self->{'vendor-os-path'}, + function => sub { + $self->_stage1D_updateBasicVendorOS(); + }, + updateConfig => 1, + }); + return; +} + +sub _startChrootedShellInStage1D +{ + my $self = shift; + + vlog(0, "starting chrooted shell for $self->{'vendor-os-name'}"); + vlog(0, "---------------------------------------"); + vlog(0, "- please type 'exit' if you are done! -"); + vlog(0, "---------------------------------------"); + + $self->_callChrootedFunction({ + chrootDir => $self->{'vendor-os-path'}, + function => sub { + # will hang until user exits manually: + slxsystem($openslxConfig{'default-shell'}); + }, + updateConfig => 1, + }); + return; +} + +sub _callChrootedFunction +{ + my $self = shift; + my $params = shift; + + checkParams($params, { + 'chrootDir' => '!', + 'function' => '!', + 'updateConfig' => '?', + }); + + my $distro = $self->{distro}; + my $distroSession = OpenSLX::ScopedResource->new({ + name => 'ossetup::distro::session', + acquire => sub { $distro->startSession($params->{chrootDir}); 1 }, + release => sub { $distro->finishSession(); 1 }, + }); + + die $@ if ! eval { + # invoke given function: + $params->{function}->(); + $distro->updateDistroConfig() if $params->{updateConfig}; + 1; + }; + + return; +} + +sub _stage1D_setupPackageSources +{ + my $self = shift; + + vlog(1, "setting up package sources for meta packager..."); + my $selectionName = $self->{'selection-name'}; + my $pkgExcludes + = $self->{'distro-info'}->{excludes}->{$selectionName}->{packages}; + my $excludeList = join ' ', string2Array($pkgExcludes); + $self->{'meta-packager'}->initPackageSources(); + my ($rk, $repo); + while (($rk, $repo) = each %{$self->{'distro-info'}->{repository}}) { + vlog(2, "setting up package source $rk..."); + $self->{'meta-packager'}->setupPackageSource( + $rk, $repo, $excludeList, $self->_sortRepositoryURLs($repo) + ); + } + return; +} + +sub _stage1D_updateBasicVendorOS +{ + my $self = shift; + + vlog(1, "updating basic vendor-os..."); + $self->{'meta-packager'}->updateBasicVendorOS(); + return; +} + +sub _stage1D_installPackageSelection +{ + my $self = shift; + + my $selectionName = $self->{'selection-name'}; + + vlog(1, "installing package selection <$selectionName>..."); + my $selection = $self->{'distro-info'}->{selection}->{$selectionName}; + my @pkgs = string2Array($selection->{packages}); + my @installedPkgs = $self->{'packager'}->getInstalledPackages(); + @pkgs = grep { + my $pkg = $_; + if (grep { $_ eq $pkg; } @installedPkgs) { + vlog(1, "package '$pkg' filtered, it is already installed."); + 0; + } + else { + 1; + } + } @pkgs; + if (!@pkgs) { + vlog( + 0, + _tr( + "No packages listed for selection '%s', nothing to do.", + $selectionName + ) + ); + } + else { + vlog(1, "installing these packages:\n" . join("\n\t", @pkgs)); + $self->{'meta-packager'}->installPackages(join(' ', @pkgs), 1); + } + return; +} + +sub _clone_fetchSource +{ + my $self = shift; + my $source = shift; + + vlog( + 0, + _tr( + "Cloning vendor-OS from '%s' to '%s'...\n", $source, + $self->{'vendor-os-path'} + ) + ); + my $excludeIncludeList = $self->_clone_determineIncludeExcludeList(); + vlog(1, "using exclude-include-filter:\n$excludeIncludeList\n"); + my $additionalRsyncOptions = $ENV{SLX_RSYNC_OPTIONS} || ''; + my $rsyncCmd + = "rsync -av --delete --exclude-from=- $additionalRsyncOptions" + . " $source $self->{'vendor-os-path'}"; + vlog(2, "executing: $rsyncCmd\n"); + my $rsyncFH; + open($rsyncFH, '|-', $rsyncCmd) + or croak( + _tr( + "unable to start rsync for source '%s', giving up! (%s)\n", + $source, $! + ) + ); + print $rsyncFH $excludeIncludeList; + if (!close($rsyncFH)) { + print "rsync-result=", 0+$!, "\n"; + croak _tr( + "unable to clone from source '%s', giving up! (%s)\n", $source, $! + ); + } + return; +} + +sub _clone_determineIncludeExcludeList +{ + my $self = shift; + + my $localFilterFile + = "$openslxConfig{'config-path'}/distro-info/clone-filter"; + my $includeExcludeList + = slurpFile($localFilterFile, { failIfMissing => 0 }); + $includeExcludeList .= $self->{distro}->{'clone-filter'}; + $includeExcludeList =~ s[^\s+][]igms; + + # remove any leading whitespace, as rsync doesn't like it + return $includeExcludeList; +} + +sub _installPlugins +{ + my $self = shift; + my $plugins = shift; + my $isReInstall = shift; + + if (!$plugins) { + $plugins = []; + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + # fetch plugins from existing vendor-OS + my $vendorOS = $openslxDB->fetchVendorOSByFilter({ + 'name' => $self->{'vendor-os-name'} + }); + if ($vendorOS) { + push @$plugins, $openslxDB->fetchInstalledPlugins($vendorOS->{id}); + $isReInstall = 1; + } + $openslxDB->disconnect(); + } + + return if ! @$plugins; + + require OpenSLX::OSPlugin::Engine; + vlog( + 0, + $isReInstall + ? _tr("reinstalling plugins...\n") + : _tr("installing default plugins...\n") + ); + for my $pluginInfo ( + sort { + $self->_sortPluginsByDependency($a->{plugin_name}, + $b->{plugin_name}); + } @$plugins + ) { + my $pluginName = $pluginInfo->{plugin_name}; + my $pluginEngine = OpenSLX::OSPlugin::Engine->new(); + vlog(0, _tr("\t%s\n", $pluginName)); + $pluginEngine->initialize( + $pluginName, $self->{'vendor-os-name'}, $pluginInfo->{attrs} + ); + $pluginEngine->installPlugin(); + } + vlog(0, _tr("done with plugins.\n")); + + return; +} + +sub _sortPluginsByDependency +{ + my $self = shift; + my $pluginNameA = shift; + my $pluginNameB = shift; + + my $pluginA = OpenSLX::OSPlugin::Roster->getPlugin($pluginNameA); + if ($pluginA->dependsOnPlugin($pluginNameB)) { + return 1; + } + my $pluginB = OpenSLX::OSPlugin::Roster->getPlugin($pluginNameB); + if ($pluginB->dependsOnPlugin($pluginNameA)) { + return -1; + } + return 0; +} + +################################################################################ +### utility methods +################################################################################ +sub _changePersonalityIfNeeded +{ + my $self = shift; + + my $distroName = $self->{'distro-name'}; + if ($self->_hostIs64Bit() && $distroName !~ m[_64]) { + vlog(2, 'entering 32-bit personality'); + OpenSLX::Syscall->enter32BitPersonality(); + } + return; +} + +sub _hostIs64Bit +{ + my $self = shift; + + $self->{arch} = `uname -m` unless defined $self->{arch}; + return ($self->{arch} =~ m[64]); +} + +1; + +=pod + +=head1 NAME + +OpenSLX::OSSetup::Engine - driver engine for OSSetup API + +=head1 SYNOPSIS + +... + +=cut + diff --git a/src/installer/OpenSLX/OSSetup/MetaPackager/Base.pm b/src/installer/OpenSLX/OSSetup/MetaPackager/Base.pm new file mode 100644 index 00000000..f149d0f5 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/MetaPackager/Base.pm @@ -0,0 +1,98 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSSetup::MetaPackager::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between meta-packager and its engine + + return; +} + +sub initPackageSources +{ +} + +sub setupPackageSource +{ +} + +sub updateBasicVendorOS +{ +} + +sub installPackages +{ +} + +sub removePackages +{ +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSSetup::MetaPackager::Base - the base class for all OSSetup::MetaPackagers + +=head1 SYNOPSIS + + package OpenSLX::OSSetup::MetaPackager::coolnewpkg; + + use vars qw(@ISA $VERSION); + @ISA = ('OpenSLX::OSSetup::MetaPackager::Base'); + $VERSION = 1.01; + + use coolnewpkg; + + sub new + { + my $class = shift; + my $self = {}; + return bless $self, $class; + } + + # override all methods of OpenSLX::OSSetup::MetaPackager::Base in order to + # implement the support for a new meta-packager + ... + +I> + +=cut diff --git a/src/installer/OpenSLX/OSSetup/MetaPackager/apt.pm b/src/installer/OpenSLX/OSSetup/MetaPackager/apt.pm new file mode 100644 index 00000000..ecb87a35 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/MetaPackager/apt.pm @@ -0,0 +1,142 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# apt.pm +# - provides apt-get-specific overrides of the OpenSLX::OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::apt; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::MetaPackager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'apt', + }; + return bless $self, $class; +} + +sub initPackageSources +{ + my $self = shift; + + $ENV{LC_ALL} = 'POSIX'; + + # remove any existing sources + slxsystem('rm -f /etc/apt/sources.list'); + + # create default timezone if there isn't any + if (!-e '/etc/timezone') { + spitFile('/etc/timezone', "$openslxConfig{'default-timezone'}\n"); + } + + # create kernel config if there isn't any + if (!-e '/etc/kernel-img.conf') { + my $kernelConfig = unshiftHereDoc(<<" END-OF-HERE"); + # Kernel image management overrides + # See kernel-img.conf(5) for details + do_symlinks = yes + relative_links = yes + do_bootloader = no + do_bootfloppy = no + do_initrd = yes + link_in_boot = yes + END-OF-HERE + spitFile('/etc/kernel-img.conf', $kernelConfig); + } + + return 1; +} + +sub setupPackageSource +{ + my $self = shift; + my $repoName = shift; + my $repoInfo = shift; + my $excludeList = shift; + my $repoURLs = shift; + + my $baseURL = shift @$repoURLs; + my $distribution = $repoInfo->{'distribution'}; + my $components = $repoInfo->{'components'}; + + my $sourcesList = "deb $baseURL $distribution $components\n"; + + foreach my $mirrorURL (@$repoURLs) { + $sourcesList .= "deb $mirrorURL $distribution $components\n"; + } + + appendFile('/etc/apt/sources.list', $sourcesList); + + return; +} + +sub installPackages +{ + my $self = shift; + my $packages = shift; + my $doRefresh = shift || 0; + + $packages =~ tr{\n}{ }; + + if ($doRefresh && slxsystem("apt-get -y update")) { + die _tr("unable to update repository info (%s)\n", $!); + } + if ('/var/cache/debconf/slx-defaults.dat') { + $ENV{DEBCONF_DB_FALLBACK} + = "'File{/var/cache/debconf/slx-defaults.dat}'"; + } + $ENV{DEBIAN_FRONTEND} = 'noninteractive'; + if (slxsystem("apt-get -y install $packages")) { + die _tr("unable to install selection (%s)\n", $!); + } + delete $ENV{DEBCONF_DB_FALLBACK}; + delete $ENV{DEBIAN_FRONTEND}; + + return 1; +} + +sub removePackages +{ + my $self = shift; + my $pkgSelection = shift; + + if (slxsystem("apt-get -y remove $pkgSelection")) { + die _tr("unable to remove selection (%s)\n", $!); + } + + return 1; +} + +sub updateBasicVendorOS +{ + my $self = shift; + + if (slxsystem("apt-get -y update")) { + die _tr("unable to update repository info (%s)\n", $!); + } + if (slxsystem("apt-get -y upgrade")) { + die _tr("unable to update this vendor-os (%s)\n", $!); + } + + return 1; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/MetaPackager/smart.pm b/src/installer/OpenSLX/OSSetup/MetaPackager/smart.pm new file mode 100644 index 00000000..fc178cb7 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/MetaPackager/smart.pm @@ -0,0 +1,127 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# smart.pm +# - provides smart-specific overrides of the OpenSLX::OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::smart; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::MetaPackager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'smart', + }; + return bless $self, $class; +} + +sub initPackageSources +{ + my $self = shift; + + $ENV{LC_ALL} = 'POSIX'; + + # remove any existing channels + slxsystem("rm -f /etc/smart/channels/*"); + if (slxsystem("smart channel -y --remove-all")) { + die _tr("unable to remove existing channels (%s)\n", $!); + } + return 1; +} + +sub setupPackageSource +{ + my $self = shift; + my $repoName = shift; + my $repoInfo = shift; + my $excludeList = shift; + my $repoURLs = shift; + + my $repoSubdir = ''; + if ($repoInfo->{'repo-subdir'}) { + $repoSubdir = "/$repoInfo->{'repo-subdir'}"; + } + my $baseURL = shift @$repoURLs; + my $repoDescr + = qq[$repoName name="$repoInfo->{name}" baseurl=$baseURL$repoSubdir]; + $repoDescr .= " type=rpm-md"; + if (slxsystem("smart channel -y --add $repoDescr")) { + die _tr("unable to add channel '%s' (%s)\n", $repoName, $!); + } + + my $mirrorDescr; + foreach my $mirrorURL (@$repoURLs) { + $mirrorDescr .= " --add $baseURL$repoSubdir $mirrorURL$repoSubdir"; + } + if (defined $mirrorDescr) { + if (slxsystem("smart mirror $mirrorDescr")) { + die _tr( + "unable to add mirrors for channel '%s' (%s)\n", + $repoName, $! + ); + } + } + return 1; +} + +sub installPackages +{ + my $self = shift; + my $packages = shift; + my $doRefresh = shift || 0; + + $packages =~ tr{\n}{ }; + + if ($doRefresh && slxsystem("smart update")) { + die _tr("unable to update channel info (%s)\n", $!); + } + if (slxsystem("smart install -y $packages")) { + die _tr("unable to install selection (%s)\n", $!); + } + return 1; +} + +sub removePackages +{ + my $self = shift; + my $pkgSelection = shift; + + if (slxsystem("smart remove -y $pkgSelection")) { + die _tr("unable to remove selection (%s)\n", $!); + } + return 1; +} + +sub updateBasicVendorOS +{ + my $self = shift; + + if (slxsystem("smart upgrade -y --update")) { + if ($! == 2) { + # file not found => smart isn't installed + die _tr("unable to update this vendor-os, as it seems to lack an installation of smart!\n"); + } + die _tr("unable to update this vendor-os (%s)\n", $!); + } + return 1; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/MetaPackager/yum.pm b/src/installer/OpenSLX/OSSetup/MetaPackager/yum.pm new file mode 100644 index 00000000..99a10382 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/MetaPackager/yum.pm @@ -0,0 +1,117 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# yum.pm +# - provides yum-specific overrides of the OpenSLX::OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::yum; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::MetaPackager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'yum', + }; + return bless $self, $class; +} + +sub initPackageSources +{ + my $self = shift; + + $ENV{LC_ALL} = 'POSIX'; + + slxsystem("rm -f /etc/yum.repos.d/*"); + slxsystem("mkdir -p /etc/yum.repos.d"); + + return 1; +} + +sub setupPackageSource +{ + my $self = shift; + my $repoName = shift; + my $repoInfo = shift; + my $excludeList = shift; + my $repoURLs = shift; + + my $repoSubdir; + if (length($repoInfo->{'repo-subdir'})) { + $repoSubdir = "/$repoInfo->{'repo-subdir'}"; + } + my $baseURL = shift @$repoURLs; + + my $repoDescr + = "[$repoName]\nname=$repoInfo->{name}\nbaseurl=$baseURL$repoSubdir\n"; + vlog(4,"Adding repo <",$repoName,"> with Base-URL <",$baseURL,"> and Repo-SubDir <",$repoSubdir,">"); + foreach my $mirrorURL (@$repoURLs) { + $repoDescr .= " $mirrorURL$repoSubdir\n"; + } + my $repoFile = "/etc/yum.repos.d/$repoName.repo"; + spitFile($repoFile, "$repoDescr\nexclude=$excludeList\n"); + + return 1; +} + +sub installPackages +{ + my $self = shift; + my $packages = shift; + + $packages =~ tr{\n}{ }; + if (slxsystem("mount -t proc proc proc/") != 0){die _tr("unable to mount proc/ for yum \n");}; + if (slxsystem("yum -y install $packages")) { + die _tr("unable to install selection (%s)\n", $!); + } + if(slxsystem("umount proc/") != 0) {_tr("unable to umount proc/")}; + + return 1; +} + +sub removePackages +{ + my $self = shift; + my $pkgSelection = shift; + + if (slxsystem("yum -y remove $pkgSelection")) { + die _tr("unable to remove selection (%s)\n", $!); + } + + return 1; +} + +sub updateBasicVendorOS +{ + my $self = shift; + if (slxsystem("mount -t proc proc proc/") != 0){die _tr("unable to mount proc/ for yum \n");}; + if (slxsystem("yum -y update")) { + if ($! == 2) { + # file not found => yum isn't installed + die _tr("unable to update this vendor-os, as it seems to lack an installation of yum!\n"); + } + if(slxsystem("umount proc/") != 0) {_tr("unable to umount proc/")}; + die _tr("unable to update this vendor-os (%s)\n", $!); + } + if(slxsystem("umount proc/") != 0) {_tr("unable to umount proc/")}; + return 1; +} + +1; \ No newline at end of file diff --git a/src/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm b/src/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm new file mode 100644 index 00000000..4bb22bde --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm @@ -0,0 +1,122 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# zypper.pm +# - provides zypper-specific overrides of the OpenSLX::OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::zypper; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::MetaPackager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'zypper', + }; + return bless $self, $class; +} + +sub initPackageSources +{ + my $self = shift; + + $ENV{LC_ALL} = 'POSIX'; + + # remove any existing channels + slxsystem("rm -f /etc/zypp/repos.d/*"); + + return 1; +} + +sub setupPackageSource +{ + my $self = shift; + my $repoName = shift; + my $repoInfo = shift; + my $excludeList = shift; + my $repoURLs = shift; + + my $repoSubdir = ''; + if (defined $repoInfo->{'repo-subdir'} && + length($repoInfo->{'repo-subdir'})) { + $repoSubdir = "/$repoInfo->{'repo-subdir'}"; + } + my $baseURL = shift @$repoURLs; + + if ($baseURL =~ m/non-oss/) { + # skip non-oss repositories, cause zypper can't realy handle them + # correctly; zypper is deacting them with following message: + # "Repository type can't be determined." + return 1; + } + + if (slxsystem("zypper addrepo $baseURL$repoSubdir $repoName")) { + die _tr("unable to add repo '%s' (%s)\n", $repoName, $!); + } + + return 1; +} + +sub installPackages +{ + my $self = shift; + my $packages = shift; + my $doRefresh = shift || 0; + + $packages =~ tr{\n}{ }; + + if ($doRefresh && slxsystem("zypper --non-interactive refresh")) { + die _tr("unable to update repo info (%s)\n", $!); + } + if (slxsystem("zypper --non-interactive install $packages")) { + die _tr("unable to install selection (%s)\n", $!); + } + + return 1; +} + +sub removePackages +{ + my $self = shift; + my $pkgSelection = shift; + + if (slxsystem("zypper --non-interactive remove $pkgSelection")) { + die _tr("unable to remove selection (%s)\n", $!); + } + + return 1; +} + +sub updateBasicVendorOS +{ + my $self = shift; + + if (slxsystem("zypper --non-interactive update")) { + if ($! == 2) { + # file not found => zypper isn't installed + die _tr("unable to update this vendor-os, as it seems to lack an installation of zypper!\n"); + } + die _tr("unable to update this vendor-os (%s)\n", $!); + } + + return 1; +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Packager/Base.pm b/src/installer/OpenSLX/OSSetup/Packager/Base.pm new file mode 100644 index 00000000..af600b8b --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Packager/Base.pm @@ -0,0 +1,98 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX OSSetup::Packager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Packager::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSSetup::Packager::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + weaken($self->{'engine'}); + # avoid circular reference between packager and its engine + + return; +} + +sub prepareBootstrap +{ +} + +sub bootstrap +{ +} + +sub importTrustedPackageKeys +{ +} + +sub installPackages +{ +} + +sub getInstalledPackages +{ +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSSetup::Packager::Base - the base class for all OSSetup::Packagers + +=head1 SYNOPSIS + + package OpenSLX::OSSetup::Packager::coolnewpkg; + + use vars qw(@ISA $VERSION); + @ISA = ('OpenSLX::OSSetup::Packager::Base'); + $VERSION = 1.01; + + use coolnewpkg; + + sub new + { + my $class = shift; + my $self = {}; + return bless $self, $class; + } + + # override all methods of OpenSLX::OSSetup::Packager::Base in order to + # implement the support for a new packager + ... + +I> + +=cut diff --git a/src/installer/OpenSLX/OSSetup/Packager/dpkg.pm b/src/installer/OpenSLX/OSSetup/Packager/dpkg.pm new file mode 100644 index 00000000..94aff9c6 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Packager/dpkg.pm @@ -0,0 +1,102 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# rpm.pm +# - provides rpm-specific overrides of the OpenSLX::OSSetup::Packager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Packager::dpkg; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Packager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'dpkg', + }; + return bless $self, $class; +} + +sub prepareBootstrap +{ + my $self = shift; + my $stage1aDir = shift; + + copyBinaryWithRequiredLibs({ + 'binary' => '/usr/bin/perl', + 'targetFolder' => "$stage1aDir/usr/bin", + 'libTargetFolder' => $stage1aDir, + }); + +} + +sub bootstrap +{ + my $self = shift; + my $pkgs = shift; + + my $debootstrapPkg = $pkgs->[0]; + chdir '..'; + vlog(2, "unpacking debootstrap ..."); + if (slxsystem("ash", "-c", "ar x slxbootstrap/$debootstrapPkg")) { + die _tr("unable to unarchive package '%s' (%s)", $debootstrapPkg, $!); + } + if (slxsystem("ash", "-c", "tar xzf data.tar.gz")) { + die _tr("unable to untar 'data.tar.gz (%s)", $!); + } + if (slxsystem("ash", "-c", "rm -f debian-binary *.tar.gz")) { + die _tr("unable to cleanup package '%s' (%s)", $debootstrapPkg, $!); + } + my $arch = $self->{engine}->{'distro-info'}->{arch}; + my $releaseName = $self->{engine}->{'distro-info'}->{'release-name'}; + my $baseURL = $self->{engine}->{baseURLs}->[0]; + my $debootstrapCmd = unshiftHereDoc(<<" END-OF-HERE"); + /usr/sbin/debootstrap --arch $arch $releaseName \\ + /slxbootstrap/slxfinal $baseURL + END-OF-HERE + if (slxsystem("ash", "-c", ". $debootstrapCmd")) { + die _tr("unable to run debootstrap (%s)", $!); + } + return; +} + +sub installPackages +{ + my $self = shift; + my $pkgs = shift; + my $finalPath = shift; + + return unless defined $pkgs && @$pkgs; + + if (slxsystem("dpkg", "--root=$finalPath", "--install", @$pkgs)) { + die _tr("error during package-installation (%s)\n", $!); + } + return; +} + +sub getInstalledPackages +{ + my $self = shift; + + my $rpmCmd = 'dpkg-query --showformat "\${package}\n" --show'; + my $pkgList = qx{$rpmCmd}; + return split "\n", $pkgList; +} + +1; diff --git a/src/installer/OpenSLX/OSSetup/Packager/rpm.pm b/src/installer/OpenSLX/OSSetup/Packager/rpm.pm new file mode 100644 index 00000000..8a86a3d2 --- /dev/null +++ b/src/installer/OpenSLX/OSSetup/Packager/rpm.pm @@ -0,0 +1,89 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# rpm.pm +# - provides rpm-specific overrides of the OpenSLX::OSSetup::Packager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Packager::rpm; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Packager::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'rpm', + }; + return bless $self, $class; +} + +sub bootstrap +{ + my $self = shift; + my $pkgs = shift; + + foreach my $pkg (@$pkgs) { + vlog(2, "unpacking package $pkg..."); + if (slxsystem("ash", "-c", "rpm2cpio $pkg | cpio -i -d -u")) { + die _tr("unable to unpack package <%s> (%s)", $pkg, $!); + } + } + return; +} + +sub importTrustedPackageKeys +{ + my $self = shift; + my $keyFiles = shift; + my $finalPath = shift; + + return unless defined $keyFiles; + + foreach my $keyFile (@$keyFiles) { + vlog(2, "importing package key $keyFile..."); + if (slxsystem("rpm", "--root=$finalPath", "--import", "$keyFile")) { + die _tr("unable to import package key <%s> (%s)\n", $keyFile, $!); + } + } + return; +} + +sub installPackages +{ + my $self = shift; + my $pkgs = shift; + my $finalPath = shift; + + return unless defined $pkgs && scalar(@$pkgs); + + if (slxsystem("rpm", "--root=$finalPath", "-ivh", @$pkgs)) { + die _tr("error during package-installation (%s)\n", $!); + } + return; +} + +sub getInstalledPackages +{ + my $self = shift; + + my $rpmCmd = 'rpm -qa --queryformat="%{NAME}\n"'; + my $pkgList = `$rpmCmd`; + return split "\n", $pkgList; +} + +1; diff --git a/src/installer/slxos-export b/src/installer/slxos-export new file mode 100755 index 00000000..8c0733ab --- /dev/null +++ b/src/installer/slxos-export @@ -0,0 +1,323 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +slxos-export + OpenSLX-script to generate an export from a vendor-OS. +]; + +use Encode; +use Getopt::Long qw(:config pass_through); +use Pod::Usage; + +# add the folder this script lives in and the lib-folder to perl's +# search path for modules: +use FindBin; +use lib "$FindBin::RealBin"; +use lib "$FindBin::RealBin/../lib"; + +use lib "$FindBin::RealBin/../config-db"; +# development path to config-db + +use OpenSLX::Basics; +use OpenSLX::OSExport::Engine; +use OpenSLX::Utils; + +my %option; + +GetOptions( + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'version' => \$option{versionReq}, + ) + or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +if ($option{manReq}) { + # avoid dubious problem with perldoc in combination with UTF-8 that + # leads to strange dashes and single-quotes being used + $ENV{LC_ALL} = 'POSIX'; + pod2usage(-verbose => 2); +} +if ($option{versionReq}) { + system('slxversion'); + exit 1; +} + +openslxInit(); + +my $action = shift @ARGV || ''; + +if ($action =~ m[^list-ex]i) { + print _tr("List of exported vendor-OSes (exports):\n"); + foreach my $type (sort keys %supportedExportFileSystems) { + # list all image files, followed by the block devices using it: + my @files = map { + my $image = decode('utf8', $_); + $image =~ s[^.+/][]; + $image; + } + sort glob("$openslxConfig{'public-path'}/export/$type/*"); + my %imageFiles; + foreach my $file (@files) { + if ($file =~ m[^(.+)@(.+)$]) { + # it's a link referring to a block device using this image, + # we collect the name of the block device: + push @{$imageFiles{$1}}, $2; + } else { + # it's an image file, we setup an empty array of block devices: + $imageFiles{$file} = []; + } + } + print join( + '', + map { + my $devices = join(',', @{$imageFiles{$_}}); + my $name = "${_}::$type"; + if (length($devices)) { + "\t$name".substr(' ' x 30, length($name))."($devices)\n"; + } else { + "\t$name\n"; + } + } + grep { + # filter out RSYNC_TMP folders: + $_ !~ m[###]; + } + sort keys %imageFiles + ); + } +} elsif ($action =~ m[^list-in]i) { + my @vendorOSDirs + = grep { -d $_ } glob("$openslxConfig{'private-path'}/stage1/*"); + print _tr("List of installed vendor-OSes:\n"); + print join( + '', + map { + my $vendorOS = decode('utf8', $_); + $vendorOS =~ s[^.+/][]; + "\t$vendorOS\n"; + } + sort @vendorOSDirs + ); +} elsif ($action =~ m[^list-ty]i) { + print _tr("List of supported export types:\n\t"); + print join("\n\t", sort @supportedExportTypes) . "\n"; +} elsif ($action =~ m[^export]i) { + if (scalar(@ARGV) != 2) { + print STDERR _tr( + "You need to specify exactly one vendor-os-name and one export-type!\n" + ); + pod2usage(2); + } + my $vendorOSName = shift @ARGV; + my $exportType = shift @ARGV; + + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + + # create OSExport-engine for given export type and start it: + my $engine = OpenSLX::OSExport::Engine->new; + $engine->initializeForNew($vendorOSName, $exportType); + if (!-e $engine->{'vendor-os-path'}) { + die _tr("vendor-OS '%s' doesn't exist, giving up!\n", + $engine->{'vendor-os-path'}); + } + $engine->exportVendorOS(); +} elsif ($action =~ m[^remove]i) { + if (scalar(@ARGV) != 1) { + print STDERR _tr("You need to specify exactly one export-name!\n"); + pod2usage(2); + } + my $exportName = shift @ARGV; + + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + + # create OSExport-engine for given export type and start it: + my $engine = OpenSLX::OSExport::Engine->new; + $engine->initializeFromExisting($exportName); + $engine->purgeExport(); +} else { + vlog(0, _tr(unshiftHereDoc(<<' END-OF-HERE'), $0)); + You need to specify exactly one action: + export + list-exported + list-installed + list-types + remove + Try '%s --help' for more info. + END-OF-HERE +} + +=head1 NAME + +slxos-export - OpenSLX-script to generate an export from a vendor-OS. + +=head1 SYNOPSIS + +slxos-export [options] + +=head3 Options + + --help brief help message + --log-level= level of logging verbosity (0-3) + --man show full documentation + --version show version + +=head3 Actions + +=over 8 + +=item B<< export >> + +exports the vendor-OS with the given name using the given export type and +adds it to the config-DB, too. The export will be named as the vendor-OS, +but with an additional '-' appended to it (where will be replaced +by the chosen export-type). + +=item B<< list-exported >> + +list all exported vendor-OSes + +=item B<< list-installed >> + +list all installed vendor-OSes + +=item B<< list-types >> + +list all supported export types + +=item B<< remove >> + +removes the export with the given name from disk and config-DB + +=back + +=head1 DESCRIPTION + +B converts an installed vendor-OS into a form that can be accessed +via network by booting clients. + +The resulting form of such a conversion is called an I and those come +in different flavors: + +=over 8 + +=item B< Export Type 'nfs'> + +NFS (network file system) is a well established networking file system, which +is supported by LINUX since long. + +=item B< Export Type 'sqfs-nbd'> + +Squash-FS is a rather modern filesystem providing very good compression, +resulting in considerably reduced network traffic during boot (and execution). +However, in order to mount a squash-fs that resides on the server, the client +has to get access to it first. This can be established via a network block +device, which basically "transports" a block device over the network (from +server to client), making it possible to use more or less any file system over +the network. +So, this example translates to 'use a squashfs on a network block device'. + +=back + +When invoking slxos-export, you have to pass it a vendor-OS name and the export +type you want to use and it will do the conversion (which can take a while, so +please be patient). + +The resulting export will be stored under C. + +=head1 OPTIONS + +=over 4 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--man> + +Prints the manual page and exits. + +=item B<--version> + +Prints the version and exits. + +=back + +=head1 EXAMPLES + +=over 8 + +=head3 Exporting a Vendor-OS via NFS + +=item B<< slxos-export export suse-10.2 nfs >> + +Exports the installed vendor-OS suse-10.2 via nfs, the +resulting NFS-export will live in C. + +=back + +=head3 Exporting a Vendor-OS via NBD + +=over 8 + +=item B<< slxos-export export ubuntu-6.10 sqfs-nbd >> + +Exports the installed vendor-OS ubuntu-6.10 via nbd, the resulting +Squash-FS will live in C. + +=back + +=head3 Removing an Export + +=over 8 + +=item B<< slxos-export remove ubuntu-6.10 nbd >> + +Wipes the squash-FS of the export named 'ubuntu-6.10' from disk (i.e. the +file C will be deleted) and +removes that export from the config-DB, too. + +=back + +=head1 SEE ALSO + +slxsettings, slxos-setup, slxconfig, slxconfig-demuxer + +=head1 GENERAL OPENSLX OPTIONS + +Being a part of OpenSLX, this script supports several other options +which can be used to overrule the OpenSLX settings: + + --db-name= name of database + --db-spec= full DBI-specification of database + --db-type= type of database to connect to + --locale= locale to use for translations + --log-level= level of logging verbosity (0-3) + --logfile= file to write logging output to + --private-path= path to private data + --public-path= path to public (client-accesible) data + --temp-path= path to temporary data + +Please refer to the C-manpage for a more detailed description +of these options. + +=cut + diff --git a/src/installer/slxos-setup b/src/installer/slxos-setup new file mode 100755 index 00000000..8812a19b --- /dev/null +++ b/src/installer/slxos-setup @@ -0,0 +1,402 @@ +#! /usr/bin/perl +# ----------------------------------------------------------------------------- +# Copyright (c) 2006..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/ +# ----------------------------------------------------------------------------- +use strict; +use warnings; + +my $abstract = q[ +slxos-setup + This script installs an operating system into a folder that can be used as + a stage1 system for OpenSLX. +]; + +use Encode; +use Getopt::Long qw(:config pass_through); +use Pod::Usage; + +# add the folder this script lives in and the lib-folder to perl's +# search path for modules: +use FindBin; +use lib "$FindBin::RealBin"; +use lib "$FindBin::RealBin/../lib"; + +use lib "$FindBin::RealBin/../config-db"; + # development path to config-db + +use OpenSLX::Basics; +use OpenSLX::OSSetup::Engine; +use OpenSLX::Utils; + +my %option; + +GetOptions( + 'help|?' => \$option{helpReq}, + 'man' => \$option{manReq}, + 'version' => \$option{versionReq}, +) or pod2usage(2); +pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq}; +if ($option{manReq}) { + # avoid dubious problem with perldoc in combination with UTF-8 that + # leads to strange dashes and single-quotes being used + $ENV{LC_ALL} = 'POSIX'; + pod2usage(-verbose => 2) +} +if ($option{versionReq}) { + system('slxversion'); + exit 1; +} + +if ($> != 0) { + die _tr("Sorry, this script can only be executed by the superuser!\n"); +} + +openslxInit(); + +my $action = shift @ARGV || ''; + +# create ossetup-engine for given distro and start it: +my $engine = OpenSLX::OSSetup::Engine->new; +if ($action =~ m[^import]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to give the name of the vendor-os you'd like to import!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'import'); + if (!-e $engine->{'vendor-os-path'}) { + die _tr("'%s' doesn't exist, giving up!\n", $engine->{'vendor-os-path'}); + } + $engine->addInstalledVendorOSToConfigDB(); +} elsif ($action =~ m[^update]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to give the name of the vendor-os you'd like to update!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'update'); + $engine->updateVendorOS(); +} elsif ($action =~ m[^shell]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to give the name of the vendor-os you'd like to start of shell for!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'shell'); + $engine->startChrootedShellForVendorOS(); +} elsif ($action =~ m[^install]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to give the name of the vendor-os you'd like to install!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'install'); + $engine->installVendorOS(); +} elsif ($action =~ m[^clone]i) { + my $source = shift @ARGV; + my $vendorOSName = shift @ARGV; + if (!defined $source || !defined $vendorOSName) { + print STDERR _tr("You need to specify exactly one source and one vendor-OS-name!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'clone'); + $engine->cloneVendorOS($source); +} elsif ($action =~ m[^remove]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to specify exactly one vendor-OS-name!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'remove'); + $engine->removeVendorOS(); +} elsif ($action =~ m[^list-se]i) { + my $vendorOSName = shift @ARGV; + if (!defined $vendorOSName) { + print STDERR _tr("You need to specify exactly one vendor-OS-name!\n"); + pod2usage(2); + } + # we chdir into the script's folder such that all relative paths have + # a known starting point: + chdir($FindBin::RealBin) + or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!); + $engine->initialize($vendorOSName, 'install'); + print _tr("List of supported selections for '%s':\n", $vendorOSName); + print join('', map { "\t$_\n" } + sort keys %{$engine->{'distro-info'}->{selection}}); +} elsif ($action =~ m[^list-su]i) { + print _tr("List of supported distros:\n"); + print join('', map { + "\t$_" + .(' 'x(20-length($_))) + ."\t($supportedDistros{$_})\n" + } + sort keys %supportedDistros); +} elsif ($action =~ m[^list-in]i) { + print _tr("List of installed vendor-OSes:\n"); + print join( + '', + map { + my $vendorOS = decode('utf8', $_); + $vendorOS =~ s[^.+/][]; + "\t$vendorOS\n"; + } + grep { -d $_ } + sort glob("$openslxConfig{'private-path'}/stage1/*") + ); +} else { + vlog(0, _tr(unshiftHereDoc(<<' END-OF-HERE'), $0)); + You need to specify exactly one action: + clone + import-into-db + install + list-installed + list-selections + list-supported + remove + shell + update + Try '%s --help' for more info. + END-OF-HERE +} + + + +=head1 NAME + +slxos-setup - OpenSLX-script to install a vendor-OS. + +=head1 SYNOPSIS + +slxos-setup [options] ... + +=head3 Options + + --help brief help message + --log-level= level of logging verbosity (0-3) + --man show full documentation + --version show version + +=head3 Actions + +=over 8 + +=item B<< clone >> + +clones an existing operating system via rsync + +=item B<< import-into-db >> + +imports a vendor-OS into the openslx-db + +=item B<< install >> + +installs a vendor-OS into a folder + +=item B<< list-installed >> + +show installed vendor-OSes + +=item B<< list-selections >> + +show available selections for given vendor-OS + +=item B<< list-supported >> + +show supported distros + +=item B<< remove >> + +removes an installed vendor-OS + +=item B<< shell >> + +starts a chrooted shell for an installed vendor-OS + +=item B<< update >> + +updates an installed vendor-OS + +=back + +=head1 DESCRIPTION + +B installs an operating system into a folder which +will be used as a OpenSLX-stage1-system (a.k.a. a I). + +You can either install a vendor-OS from scratch (causing the required +packages to be downloaded or copied from a local source). Installing +is supported for several different LINUX distributions, but not for all +of them. + +Alternatively, a locally installed operating system can be cloned +into a vendor-OS. + +When invoking slxos-setup, you have to pass it the name of the vendor-OS +you wish to create. + +=head1 OPTIONS + +=over 8 + +=item B<--help> + +Prints a brief help message and exits. + +=item B<--man> + +Prints the manual page and exits. + +=item B<--version> + +Prints the version and exits. + +=item B + +The vendor-os-name is the name of the vendor-OS that shall be installed, +cloned, imported or updated. It corresponds to a folder in the OpenSLX- +stage1-path (usually /var/opt/openslx/stage1). +The general format of a vendor-os-name is: + + - +or + -- + +The distro-name is something like 'suse' or 'fedora', and the release-version +is a numerical version, e.g. '10.1' or '6'. + +If you specify a selection, too, you state that you want all the packages +that are provided by the specific selection (many distributions offer several +different package selections for installation, like 'kde' or 'gnome'). +If you do not specify any selection, you will get the default selection of +that distribution. + +If you pass an unknown selection, you will see a list of the selections +that are available. The available selections for any vendor-OS can be requested +via the 'list-selections' action. + +In clone-mode, it is a good idea to specify some unique string as the selection +part of the vendor-os-name, such that you will easily recognize the vendor-OS +at a later stage. We recommend something like '-cloned-from-'. + +=item B + +When cloning a vendor-OS, slxos-setup needs to know where to fetch +the existing OS-files from. Please check the 'rsync' docs for what +format an rsync-uri has. + +=back + +=head1 EXAMPLES + +=head3 Installing a Vendor-OS + +=over 8 + +=item B<< slxos-setup install suse-11.1 >> + +Installs the distro suse-11.1 as a new vendor-OS. + +=item B<< slxos-setup install suse-11.1-gnome >> + +Installs the 'gnome'-selection of distro suse-11.1 as a new +vendor-OS. + +=back + +=head3 Cloning an Operating System to Make a New Vendor-OS + +=over 8 + +=item B<< slxos-setup clone my_server:/ suse-11.1-clone-my_server >> + +Clones the suse-11.1 system from server 'my_server' as a new +vendor-OS, which will be named 'suse-11.1-clone-my_server'. + +=back + +=head3 Updating a Vendor-OS + +=over 8 + +=item B<< slxos-setup update suse-11.1 >> + +Updates the (existing) vendor-OS 'suse-11.1'. + +=back + +=head3 Importing an Existing Vendor-OS into the Config-DB + +=over 8 + +=item B<< slxos-setup import-into-db suse-11.1 >> + +Imports the (existing) vendor-OS 'suse-11.1' into the config-DB. + +=back + +=head3 Removing a Vendor-OS + +=over 8 + +=item B<< slxos-setup remove suse-11.1 >> + +Wipes the (existing) vendor-OS 'suse-11.1' from disk and removes it +from the config-DB, too. + +=back + +=head1 SEE ALSO + +slxsettings, slxos-export, slxconfig, slxconfig-demuxer + +=head1 GENERAL OPENSLX OPTIONS + +Being a part of OpenSLX, this script supports several other options +which can be used to overrule the OpenSLX settings: + + --db-name= name of database + --db-spec= full DBI-specification of database + --db-type= type of database to connect to + --locale= locale to use for translations + --log-level= level of logging verbosity (0-3) + --logfile= file to write logging output to + --private-path= path to private data + --public-path= path to public (client-accesible) data + --temp-path= path to temporary data + +Please refer to the C-manpage for a more detailed description +of these options. + +=cut diff --git a/src/lib/OpenSLX/Basics.pm b/src/lib/OpenSLX/Basics.pm new file mode 100644 index 00000000..4ac40166 --- /dev/null +++ b/src/lib/OpenSLX/Basics.pm @@ -0,0 +1,856 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +package OpenSLX::Basics; + +use strict; +use warnings; + +our (@ISA, @EXPORT, $VERSION); + +use Exporter; +$VERSION = 1.01; +@ISA = qw(Exporter); + +@EXPORT = qw( + &openslxInit %openslxConfig %cmdlineConfig + &_tr + &warn &die &croak &carp &confess &cluck + &callInSubprocess &executeInSubprocess &slxsystem + &vlog + &checkParams + &instantiateClass &loadDistroModule +); + +=head1 NAME + +OpenSLX::Basics - implements basic functionality for OpenSLX. + +=head1 DESCRIPTION + +This module exports basic functions, which are expected to be used all across +OpenSLX. + +=cut + +our (%openslxConfig, %cmdlineConfig, %openslxPath); + +use subs qw(die warn); + +use open ':utf8'; + +require Carp; # do not import anything as we are going to overload carp + # and croak! +use Config::General; +use Encode; +use FindBin; +use Getopt::Long; +use POSIX qw(locale_h); + +my $translations; + +=head1 PUBLIC VARIABLES + +=over + +=item B<%openslxConfig> + +This hash holds the active openslx configuration. + +The initial content is based on environment variables or default values. Calling +C will read the configuration files and/or cmdline arguments +and modify this hash accordingly. + +The individual entries of this hash are documented in the manual of the +I-script, so please look there if you'd like to know more. + +=cut + +%openslxConfig = ( + 'db-name' => $ENV{SLX_DB_NAME} || 'openslx', + 'db-spec' => $ENV{SLX_DB_SPEC}, + 'db-type' => $ENV{SLX_DB_TYPE} || 'SQLite', + 'locale' => setlocale(LC_MESSAGES), + 'locale-charmap' => `locale charmap`, + 'base-path' => $ENV{SLX_BASE_PATH} || '/opt/openslx', + 'config-path' => $ENV{SLX_CONFIG_PATH} || '/etc/opt/openslx', + 'log-level' => $ENV{SLX_VERBOSE_LEVEL} || '0', + 'private-path' => $ENV{SLX_PRIVATE_PATH} || '/var/opt/openslx', + 'public-path' => $ENV{SLX_PUBLIC_PATH} || '/srv/openslx', + 'temp-path' => $ENV{SLX_TEMP_PATH} || '/tmp', + + # + # options useful during development only: + # + 'debug-confess' => '0', + # + # only settable programmatically: + # + 'log-pids' => '0', + + # + # extended settings follow, which are only supported by slxsettings, + # but not by any other script: + # + 'db-user' => undef, + 'db-passwd' => undef, + 'default-shell' => 'bash', + 'default-timezone' => 'Europe/Berlin', + 'mirrors-preferred-top-level-domain' => undef, + 'mirrors-to-try-count' => '20', + 'mirrors-to-use-count' => '5', + 'ossetup-max-try-count' => '5', + 'pxe-default-menu-entry' => undef, + 'pxe-passwd' => 'secret', + 'pxe-timeout' => '100', + 'pxe-title' => 'Welcome to OpenSLX', + 'pxe-totaltimeout' => '600', + 'syslinux-theme' => 'openslx', +); +chomp($openslxConfig{'locale-charmap'}); + +=item B<%cmdlineConfig> + +This hash holds the config items that were specified via cmdline. This can be +useful if you need to find out which settings have been specified via cmdline +and which ones have come from a config file. + +Currently, only the slxsettings script and some tests make use of this hash. + +=cut + +# specification of cmdline arguments that are shared by all openslx-scripts: +my %openslxCmdlineArgs = ( + + # name of database, defaults to 'openslx' + 'db-name=s' => \$cmdlineConfig{'db-name'}, + + # full specification of database, a special string defining the + # precise database to connect to (the contents of this string + # depend on db-type) + 'db-spec=s' => \$cmdlineConfig{'db-spec'}, + + # type of database to connect to (SQLite, mysql, ...), defaults to 'SQLite' + 'db-type=s' => \$cmdlineConfig{'db-type'}, + + # activates debug mode, this will show the lines where any error occured + # (followed by a stacktrace): + 'debug-confess' => \$cmdlineConfig{'debug-confess'}, + + # locale to use for translations + 'locale=s' => \$cmdlineConfig{'locale'}, + + # locale-charmap to use for I/O (iso-8859-1, utf-8, etc.) + 'locale-charmap=s' => \$cmdlineConfig{'locale-charmap'}, + + # level of logging verbosity (0-3) + 'log-level=i' => \$cmdlineConfig{'log-level'}, + + # file to write logging output to, defaults to STDERR + 'logfile=s' => \$cmdlineConfig{'locale'}, + + # path to private data (which is *not* accesible by clients and contains + # database, vendorOSes and all local extensions [system specific scripts]) + 'private-path=s' => \$cmdlineConfig{'private-path'}, + + # path to public data (which is accesible by clients and contains + # PXE-configurations, kernels, initramfs and client configurations) + 'public-path=s' => \$cmdlineConfig{'public-path'}, + + # path to temporary data (used during demuxing) + 'temp-path=s' => \$cmdlineConfig{'temp-path'}, +); + +# filehandle used for logging: +my $openslxLog = *STDERR; + +$Carp::CarpLevel = 1; + +=back + +=head1 PUBLIC FUNCTIONS + +=over + +=item B + +Initializes OpenSLX environment - every script should invoke this function +before it invokes any other. + +Basically, this function reads in the configuration and sets up logging +and translation backends. + +Returns 1 upon success and dies in case of a problem. + +=cut + +sub openslxInit +{ + # evaluate cmdline arguments: + Getopt::Long::Configure('no_pass_through'); + GetOptions(%openslxCmdlineArgs); + + # try to read and evaluate config files: + my $configPath + = $cmdlineConfig{'config-path'} || $openslxConfig{'config-path'}; + my $sharePath = "$openslxConfig{'base-path'}/share"; + my $verboseLevel = $cmdlineConfig{'log-level'} || 0; + foreach my $f ( + "$sharePath/settings.default", + "$configPath/settings", + "$ENV{HOME}/.openslx/settings" + ) { + next unless -e $f; + if ($verboseLevel >= 2) { + vlog(0, "reading config-file $f..."); + } + my $configObject = Config::General->new( + -AutoTrue => 1, + -ConfigFile => $f, + -LowerCaseNames => 1, + -SplitPolicy => 'equalsign', + ); + my %config = $configObject->getall(); + foreach my $key (keys %config) { + # N.B.: these config files are used by shell-scripts, too, so in + # order to comply with shell-style, the config files use shell + # syntax and an uppercase, underline-as-separator format. + # Internally, we use lowercase, minus-as-separator format, so we + # need to convert the environment variable names to our own + # internal style here (e.g. 'SLX_BASE_PATH' to 'base-path'): + my $ourKey = $key; + $ourKey =~ s[^slx_][]; + $ourKey =~ tr/_/-/; + $openslxConfig{$ourKey} = $config{$key}; + } + } + + # push any cmdline argument into our config hash, possibly overriding any + # setting from the config files: + while (my ($key, $val) = each(%cmdlineConfig)) { + next unless defined $val; + $openslxConfig{$key} = $val; + } + + if (defined $openslxConfig{'logfile'}) { + open($openslxLog, '>>', $openslxConfig{'logfile'}) + or croak( + _tr( + "unable to append to logfile '%s'! (%s)", + $openslxConfig{'logfile'}, $! + ) + ); + } + if ($openslxConfig{'log-level'} >= 2) { + foreach my $key (sort keys %openslxConfig) { + my $val = $openslxConfig{$key} || ''; + vlog(2, "config-dump: $key = $val"); + } + } + + # setup translation "engine": + _trInit(); + + return 1; +} + +=item B + +Logs the given I<$message> if the current log level is equal or greater than +the given I<$level>. + +=cut + +sub vlog +{ + my $minLevel = shift; + return if $minLevel > $openslxConfig{'log-level'}; + my $str = join("", '-' x $minLevel, @_); + if (substr($str, -1, 1) ne "\n") { + $str .= "\n"; + } + if ($openslxConfig{'log-pids'}) { + print $openslxLog "$$: $str"; + } else { + print $openslxLog $str; + } + return; +} + +=item B<_tr($originalMsg, @msgParams)> + +Translates the english text given in I<$originalMsg> to the currently selected +language, passing on any given additional I<$msgParams> to the translation +process (as printf arguments). + +N.B.: although it starts with an underscore, this is still a public function! + +=cut + +sub _tr +{ + my $trOrig = shift; + + my $trKey = $trOrig; + $trKey =~ s[\n][\\n]g; + $trKey =~ s[\t][\\t]g; + + my $formatStr; + if (defined $translations) { + $formatStr = $translations->{$trKey}; + } + if (!defined $formatStr) { + $formatStr = $trOrig; + } + return sprintf($formatStr, @_); +} + +=item B + +Forks the current process and invokes the code given in I<$childFunc> in the +child process. The parent blocks until the child has executed that function. + +If an error occured during execution of I<$childFunc>, the parent process will +cleanup the child and then pass back that error with an invocation of die(). + +If the process of executing I<$childFunc> is being interrupted by a signal, +the parent will cleanup and then exit with an appropriate exit code. + +=cut + +sub callInSubprocess +{ + my $childFunc = shift; + + my $pid = fork(); + if (!$pid) { + # child -> execute the given function and exit: + if (! eval { $childFunc->(); 1 }) { + $@ = "*** $@" unless substr( $@, 0, 4) eq '*** '; + print STDERR "$@\n"; + } + exit 0; + } + + # parent -> pass on interrupt- and terminate-signals to child ... + $SIG{INT} = sub { kill 'INT', $pid; }; + $SIG{TERM} = sub { kill 'TERM', $pid; }; + + # ... and wait until child has done its work + waitpid($pid, 0); + exit $? if $?; + + return; +} + +=item B + +Forks the current process and executes the program given in I<@cmdlineArgs> in +the child process. + +The parent process returns immediately after having spawned the new process, +returning the process-ID of the child. + +=cut + +sub executeInSubprocess +{ + my @cmdlineArgs = @_; + + my $pid = fork(); + if (!$pid) { + + # child... + # ...exec the given cmdline: + exec(@cmdlineArgs); + } + + # parent... + return $pid; +} + +=item B + +Executes a new program specified by I<@cmdlineArgs> and waits until it is done. + +Returns the exit code of the execution (usually 0 if everything is ok). + +If any signal (other than SIGPIPE) interrupts the execution, this function +dies with an appropriate error message. SIGPIPE is being ignored in order +to ignore any failed FTP connections and the like (we just return the +error code instead). + +=cut + +sub slxsystem +{ + vlog(2, _tr("executing: %s", join ' ', @_)); + my $res = system(@_); + if ($res > 0) { + # check if child got killed, if so we stop, too (unless the signal is + # SIGPIPE, which we ignore in order to loop over failed FTP connections + # and the like): + my $signalNo = $res & 127; + if ($signalNo > 0 && $signalNo != 13) { + die _tr( + "child-process received signal '%s', parent stops!", $signalNo + ); + } + } + return $res; +} + +=item B, B, B, B, B, B + +Overrides of the respective functions in I or I that mark +any warnings with '°°°' and any errors with '***' in order to make them +more visible in the output. + +=cut + +sub cluck +{ + _doThrowOrWarn('cluck', @_); + return; +} + +sub carp +{ + _doThrowOrWarn('carp', @_); + return; +} + +sub warn +{ + _doThrowOrWarn('warn', @_); + return; +} + +sub confess +{ + _doThrowOrWarn('confess', @_); + return; +} + +sub croak +{ + _doThrowOrWarn('croak', @_); + return; +} + +sub die +{ + _doThrowOrWarn('die', @_); + return; +} + +=item B + +Utility function that can be used by any function that accepts param-hashes +to check if the parameters given in I<$params> actually match the expectations +specified in I<$paramsSpec>. + +Each individual parameter has a specification that describes the expectation +that the calling function has towards this param. The following specifications +are supported: + +* '!' - the parameter is required +* '?' - the parameter is optional +* 'm{regex}' - the parameter must match the given regex +* '!class=...' - the parameter is required and must be an object of the given class +* '?class=...' - if the parameter has been given, it must be an object of the given class + +The function will confess for any unknown, missing, or non-matching param. + +=cut + +sub checkParams +{ + my $params = shift or confess('need to pass in params-hashref!'); + my $paramsSpec = shift or confess('need to pass in params-spec-hashref!'); + + # print a warning for any unknown parameters that have been given: + my @unknownParams + = grep { !exists $paramsSpec->{$_}; } + keys %$params; + if (@unknownParams) { + my $unknownParamsStr = join ',', @unknownParams; + confess("Enocuntered unknown params: '$unknownParamsStr'!\n"); + } + + # check if all required params have been specified: + foreach my $param (keys %$paramsSpec) { + my $spec = $paramsSpec->{$param}; + if (ref($spec) eq 'HASH') { + # Handle nested specs by recursion: + my $subParams = $params->{$param}; + if (!defined $subParams) { + confess("Required param '$param' is missing!"); + } + checkParams($subParams, $spec); + } + elsif (ref($spec) eq 'ARRAY') { + # Handle nested spec arrays by looped recursion: + my $subParams = $params->{$param}; + if (!defined $subParams) { + confess("Required param '$param' is missing!"); + } + elsif (ref($subParams) ne 'ARRAY') { + confess("Value for param '$param' must be an array-ref!"); + } + foreach my $subParam (@$subParams) { + checkParams($subParam, $spec->[0]); + } + } + elsif ($spec eq '!') { + # required parameter: + if (!exists $params->{$param}) { + confess("Required param '$param' is missing!"); + } + } + elsif ($spec =~ m{^\!class=(.+)$}i) { + my $class = $1; + # required parameter ... + if (!exists $params->{$param}) { + confess("Required param '$param' is missing!"); + } + # ... of specific class + if (!$params->{$param}->isa($class)) { + confess("Param '$param' is not a '$class', but that is required!"); + } + } + elsif ($spec eq '?') { + # optional parameter - nothing to do + } + elsif ($spec =~ m{^\?class=(.+)$}i) { + my $class = $1; + # optional parameter ... + if (exists $params->{$param}) { + # ... has been given, so it must match specific class + if (!$params->{$param}->isa($class)) { + confess("Param '$param' is not a '$class', but that is required!"); + } + } + } + elsif ($spec =~ m{^m{(.+)}$}) { + # try to match given regex: + my $regex = $1; + my $value = $params->{$param}; + if ($value !~ m{$regex}) { + confess("Required param '$param' isn't matching regex '$regex' (given value was '$value')!"); + } + } + else { + # complain about unknown spec: + confess("Unknown param-spec '$spec' encountered!"); + } + } + + return scalar 1; +} + +=item B + +Loads the required module and instantiates an object of the class given in +I<$class>. + +The following flags can be specified via I<$flags>-hashref: + +=over + +=item acceptMissing [optional] + +Usually, this function will die if the corresponding module could not be found +(acceptMissing == 0). Pass in acceptMissing => 1 if you want this function +to return undef instead. + +=item pathToClass [optional] + +Sometimes, the module specified in I<$class> lives relative to another path. +If so, you can specify the base path of that module via this flag. + +=item incPaths [optional] + +Some modules live outside of the standard perl search paths. If you'd like to +load such a module, you can specify one (or more) paths that will be added +to @INC while trying to load the module. + +=item version [optional] + +If you require a specific version of the module, you can specify the version +number via the I<$version> flag. + +=back + +=cut + +sub instantiateClass +{ + my $class = shift; + my $flags = shift || {}; + + checkParams($flags, { + 'acceptMissing' => '?', + 'pathToClass' => '?', + 'incPaths' => '?', + 'version' => '?', + }); + my $pathToClass = $flags->{pathToClass}; + my $requestedVersion = $flags->{version}; + my $incPaths = $flags->{incPaths} || []; + + my $moduleName = defined $pathToClass ? "$pathToClass/$class" : $class; + $moduleName =~ s[::][/]g; + $moduleName .= '.pm'; + + vlog(3, "trying to load $moduleName..."); + local @INC = @INC; + foreach my $incPath (@$incPaths) { + next if grep { $_ eq $incPath } @INC; + unshift @INC, $incPath; + } + if (!eval { require $moduleName; 1 } ) { + # check if module does not exists anywhere in search path + if ($! == 2) { + return if $flags->{acceptMissing}; + die _tr("Module '%s' not found!\n", $moduleName); + } + # some other error (probably compilation problems) + die _tr("Unable to load module '%s' (%s)\n", $moduleName, $@); + } + if (defined $requestedVersion) { + my $classVersion = $class->VERSION; + if ($classVersion < $requestedVersion) { + die _tr( + 'Could not load class <%s> (Version <%s> required, but <%s> found)', + $class, $requestedVersion, $classVersion); + } + } + return $class->new; +} + +=item B + +Tries to determine the most appropriate distro module for the context specified +via the given I<$params>. + +During that process, this function will try to load several different modules, +working its way from the most specific down to a generic fallback. + +For example: when given I as distroName, this function would +try the following modules: + +=over + +=item I + +=item I + +=item I + +=item I + +=item I (or whatever has been given as fallback name) + +=back + +The I<$params>-hashref supports the following entries: + +=over + +=item distroName + +Specifies the name of the distro as it was retrieved from the vendor-OS +(e.g. 'suse-10.2' or 'ubuntu-8.04_amd64'). + +=item distroScope + +Specifies the scope of the required distro class (e.g. +'OpenSLX::OSSetup::Distro' or 'vmware::OpenSLX::Distro'). + +=item fallbackName [optional] + +Instead of the default 'Base', you can specify the name of a different fallback +class that will be tried if no module matching the given distro name could be +found. + +=item pathToClass [optional] + +If you require the distro modules to be loaded relative to a specific path, +you can specify that base path via the I<$pathToClass> param. + +=back + +=cut + +sub loadDistroModule +{ + my $params = shift; + + checkParams($params, { + 'distroName' => '!', + 'distroScope' => '!', + 'fallbackName' => '?', + 'pathToClass' => '?', + }); + my $distroName = ucfirst(lc($params->{distroName})); + my $distroScope = $params->{distroScope}; + my $fallbackName = $params->{fallbackName} || 'Base'; + my $pathToClass = $params->{pathToClass}; + + vlog(1, "finding a ${distroScope} module for $distroName ..."); + + # try to load the distro module starting with the given name and then + # working the way upwards (from most specific to generic). + $distroName =~ tr{.-}{__}; + my @distroModules; + my $blockRX = qr{ + ^(.+?)_ # everything before the last block (the rest is dropped) + (?:x86_)? # takes care to treat 'x86_64' as one block + [^_]*$ # the last _-block + }x; + while($distroName =~ m{$blockRX}) { + push @distroModules, $distroName; + $distroName = $1; + } + push @distroModules, $distroName; + push @distroModules, $fallbackName; + + my $pluginBasePath = "$openslxConfig{'base-path'}/lib/plugins"; + + my $distro; + for my $distroModule (@distroModules) { + my $loaded = eval { + vlog(1, "trying ${distroScope}::$distroModule ..."); + my $flags = { acceptMissing => 1 }; + if ($pathToClass) { + $flags->{incPaths} = [ $pathToClass ]; + } + $distro = instantiateClass("${distroScope}::$distroModule", $flags); + return 0 if !$distro; # module does not exist, try next + vlog(1, "ok - using ${distroScope}::$distroModule."); + 1; + }; + last if $loaded; + if (!defined $loaded) { + die _tr( + "Error when trying to load distro module '%s':\n%s", + $distroModule, $@ + ); + } + } + + return $distro; +} + +sub _trInit +{ + # activate automatic charset conversion on all the standard I/O streams, + # just to give *some* support to shells in other charsets: + binmode(STDIN, ":encoding($openslxConfig{'locale-charmap'})"); + binmode(STDOUT, ":encoding($openslxConfig{'locale-charmap'})"); + binmode(STDERR, ":encoding($openslxConfig{'locale-charmap'})"); + + my $locale = $openslxConfig{'locale'}; + if (lc($locale) eq 'c') { + # treat locale 'c' as equivalent for 'posix': + $locale = 'posix'; + } + + if (lc($locale) ne 'posix') { + # parse locale and canonicalize it (e.g. to 'de_DE') and generate + # two filenames from it (language+country and language only): + if ($locale !~ m{^\s*([^_]+)(?:_(\w+))?}) { + die "locale $locale has unknown format!?!"; + } + my @locales; + if (defined $2) { + push @locales, lc($1) . '_' . uc($2); + } + push @locales, lc($1); + + # try to load any of the Translation modules (starting with the more + # specific one [language+country]): + my $loadedTranslationModule; + foreach my $trName (@locales) { + vlog(2, "trying to load translation module $trName..."); + my $trModule = "OpenSLX/Translations/$trName.pm"; + my $trModuleSpec = "OpenSLX::Translations::$trName"; + if (eval { require $trModule } ) { + # copy the translations available in the given locale into our + # hash: + $translations = $trModuleSpec->getAllTranslations(); + $loadedTranslationModule = $trModule; + vlog( + 1, + _tr( + "translations module %s loaded successfully", $trModule + ) + ); + last; + } + } + if (!defined $loadedTranslationModule) { + vlog(1, + "unable to load any translations module for locale '$locale' ($!)." + ); + } + } + return; +} + +sub _doThrowOrWarn +{ + my $type = shift; + my $msg = shift; + + # use '! ' for warnings and '***' for errors + $msg =~ s[^(! |\*\*\*) ][]gms; + if ($type eq 'carp' || $type eq 'warn' || $type eq 'cluck') { + $msg =~ s[^][! ]gms; + } + else { + $msg =~ s[^][*** ]gms; + } + + if ($openslxConfig{'debug-confess'}) { + my %functionFor = ( + 'carp' => sub { Carp::cluck @_ }, + 'cluck' => sub { Carp::cluck @_ }, + 'confess' => sub { Carp::confess @_ }, + 'croak' => sub { Carp::confess @_ }, + 'die' => sub { Carp::confess @_ }, + 'warn' => sub { Carp::cluck @_ }, + ); + my $func = $functionFor{$type}; + $func->($msg); + } + else { + chomp $msg; + my %functionFor = ( + 'carp' => sub { Carp::carp @_ }, + 'cluck' => sub { Carp::cluck @_ }, + 'confess' => sub { Carp::confess @_ }, + 'croak' => sub { Carp::croak @_ }, + 'die' => sub { CORE::die @_}, + 'warn' => sub { CORE::warn @_ }, + ); + my $func = $functionFor{$type}; + $func->("$msg\n"); + } + return; +} + + +=back + +=cut + +1; diff --git a/src/lib/OpenSLX/ConfigFolder.pm b/src/lib/OpenSLX/ConfigFolder.pm new file mode 100644 index 00000000..fd52821e --- /dev/null +++ b/src/lib/OpenSLX/ConfigFolder.pm @@ -0,0 +1,154 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +package OpenSLX::ConfigFolder; + +use strict; +use warnings; + +our (@ISA, @EXPORT, $VERSION); + +use Exporter; +$VERSION = 1.01; +@ISA = qw(Exporter); + +@EXPORT = qw( + &createConfigFolderForDefaultSystem + &createConfigFolderForSystem +); + +=head1 NAME + +OpenSLX::ConfigFolder - implements configuration folder related functionality +for OpenSLX. + +=head1 DESCRIPTION + +This module exports functions that create configuration folders for specific +system, which will be used by the slxconfig-demuxer when building an initramfs +for each system. + +=cut + +use OpenSLX::Basics; +use OpenSLX::Utils; + +=head1 PUBLIC FUNCTIONS + +=over + +=item B + +Creates the configuration folder for the default system. + +The resulting folder will be named C and will be created +in the IC-folder (usually +C). + +Within that folder, two subfolders, C and C will be created. + +In the C-subfolder, two files will be created: C +and C, who are empty stub-scripts meant to be edited by the +OpenSLX admin. + +The functions returns 1 if any folder or file had to be created and 0 if all the +required folders & files already existed. + +=cut + +sub createConfigFolderForDefaultSystem +{ + my $result = 0; + my $defaultConfigPath = "$openslxConfig{'private-path'}/config/default"; + if (!-e "$defaultConfigPath/initramfs") { + slxsystem("mkdir -p $defaultConfigPath/initramfs"); + $result = 1; + } + if (!-e "$defaultConfigPath/rootfs") { + slxsystem("mkdir -p $defaultConfigPath/rootfs"); + $result = 1; + } + + # create default pre-/postinit scripts for us in initramfs: + my $preInitFile = "$defaultConfigPath/initramfs/preinit.local"; + if (!-e $preInitFile) { + my $preInit = unshiftHereDoc(<<' END-of-HERE'); + #!/bin/sh + # + # This script allows the local admin to extend the + # capabilities at the beginning of the initramfs (stage3). + # The toolset is rather limited and you have to keep in mind + # that stage4 rootfs has the prefix '/mnt'. + END-of-HERE + spitFile($preInitFile, $preInit); + slxsystem("chmod u+x $preInitFile"); + $result = 1; + } + + my $postInitFile = "$defaultConfigPath/initramfs/postinit.local"; + if (!-e $postInitFile) { + my $postInit = unshiftHereDoc(<<' END-of-HERE'); + #!/bin/sh + # + # This script allows the local admin to extend the + # capabilities at the end of the initramfs (stage3). + # The toolset is rather limited and you have to keep in mind + # that stage4 rootfs has the prefix '/mnt'. + # But you may use some special slx-functions available via + # inclusion: '. /etc/functions' ... + END-of-HERE + spitFile($postInitFile, $postInit); + slxsystem("chmod u+x $postInitFile"); + $result = 1; + } + return $result; +} + +=item B + +Creates the configuration folder for the system whose name has been given in +I<$systemName>. + +The resulting folder will be named just like the system and will be created +in the IC-folder (usually +C). + +In that folder, a single subfolder C will be created (representing +the default setup for all clients of that system). Within that folder, two +subfolders, C and C will be created. + +The functions returns 1 if any folder had to be created and 0 if all the +required folders already existed. + +=cut + +sub createConfigFolderForSystem +{ + my $systemName = shift || confess "need to pass in system-name!"; + + my $result = 0; + my $systemConfigPath + = "$openslxConfig{'private-path'}/config/$systemName/default"; + if (!-e "$systemConfigPath/initramfs") { + slxsystem("mkdir -p $systemConfigPath/initramfs"); + $result = 1; + } + if (!-e "$systemConfigPath/rootfs") { + slxsystem("mkdir -p $systemConfigPath/rootfs"); + $result = 1; + } + return $result; +} + +=back + +=cut + +1; diff --git a/src/lib/OpenSLX/DistroUtils.pm b/src/lib/OpenSLX/DistroUtils.pm new file mode 100644 index 00000000..d7456d92 --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils.pm @@ -0,0 +1,90 @@ +# 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/ +# ----------------------------------------------------------------------------- +# DistroUtils.pm +# - provides utility distro based functions for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils; + +use strict; +use warnings; + +use OpenSLX::Utils; +use OpenSLX::Basics; + +use Data::Dumper; + +use OpenSLX::DistroUtils::Engine; +use OpenSLX::DistroUtils::InitFile; + +use Exporter; + +use vars qw(@ISA @EXPORT $VERSION); + +use Exporter; +$VERSION = 1.01; +@ISA = qw(Exporter); + +@EXPORT = qw( + newInitFile + getInitFileForDistro + simpleInitFile + getKernelVersionForDistro +); + + + +sub newInitFile { + return OpenSLX::DistroUtils::InitFile->new(); +} + + +sub simpleInitFile { + my $config = shift; + my $initFile = OpenSLX::DistroUtils::InitFile->new(); + + return $initFile->simpleSetup($config); +} + + +sub getInitFileForDistro { + my $initFile = shift; + my $distroName = shift; + my $distro; + + my $engine = OpenSLX::DistroUtils::Engine->new(); + + if ($distroName) { + $distro = $engine->loadDistro($distroName); + } else { + $distro = $engine->loadDistro('Base'); + } + + #return $distro->dumpInit($initFile); + return $distro->generateInitFile($initFile); +} + +sub getKernelVersionForDistro { + my $kernelPath = shift; + my $distroName = shift; + my $distro; + + my $engine = OpenSLX::DistroUtils::Engine->new(); + + if ($distroName) { + $distro = $engine->loadDistro($distroName); + } else { + $distro = $engine->loadDistro('Base'); + } + + return $distro->getKernelVersion($kernelPath); +} + +1; \ No newline at end of file diff --git a/src/lib/OpenSLX/DistroUtils/Base.pm b/src/lib/OpenSLX/DistroUtils/Base.pm new file mode 100644 index 00000000..f9e6b13b --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils/Base.pm @@ -0,0 +1,429 @@ +# 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/ +# ----------------------------------------------------------------------------- +# DistroUtils.pm +# - provides base for distro based utils for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils::Base; + +use Data::Dumper; +use OpenSLX::Utils; +use Clone qw(clone); +use Switch; + +use strict; +use warnings; + +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub dumpInit +{ + my $self = shift; + my $initFile = shift; + + print Dumper($initFile->{'configHash'}); + + print $self->generateInitFile($initFile); +} + +sub _concatContent +{ + my $self = shift; + my $block = shift; + + my $output; + + $output = "#"; + $output .= $block->{'blockDesc'}; + $output .= "\n"; + + my $content = $block->{'content'}; + while ( my ($priority, $contentArray) = each %$content ) + { + $output .= join("\n", @$contentArray); + $output .= "\n"; + } + + return $output; +} + +sub _renderInfoBlock +{ + my $self = shift; + my $config = shift; + + my $tpl = unshiftHereDoc(<<' End-of-Here'); + ### BEGIN INIT INFO + # Provides: %s + # Required-Start: %s + # Required-Stop: %s + # Default-Start: %s + # Default-Stop: %s + # Short-Description: %s + ### END INIT INFO + + End-of-Here + + return sprintf( + $tpl, + $config->{'name'}, + $config->{'requiredStart'}, + $config->{'requiredStop'}, + $config->{'defaultStart'}, + $config->{'defaultStop'}, + $config->{'shortDesc'} + ); +} + +sub _insertSystemHelperFunctions +{ + my $self = shift; + my $content = shift; + + # do some regex + + # ubuntu: + # log_end_msg + # log_progress_msg + # log_daemon_msg + # log_action_msg + + # start-stop-daemon + + # suse http://de.opensuse.org/Paketbau/SUSE-Paketkonventionen/Init-Skripte + + return $content; +} + +sub _renderHighlevelConfig +{ + my $self = shift; + my $initFile = shift; + + my $element; + my $hlc = $initFile->{'configHash'}->{'highlevelConfig'}; + + while ( $element = shift(@$hlc)){ + switch ($element->{type}) { + case 'daemon' { + my $tpl; + $tpl = "%s_BIN=%s \n"; + $tpl .= "[ -x %s_BIN ] || exit 5\n\n"; + $tpl .= "%s_OPTS=\"%s\" \n"; + $tpl .= "[ -f /etc/sysconfig/%s ] . /etc/sysconfig/%s \n\n"; + $tpl .= "[ -f /etc/default/%s ] . /etc/default/%s \n\n"; + $tpl .= "%s_PIDFILE=\"/var/run/%s.init.pid\" \n\n"; + $initFile->addToBlock('head', + sprintf( + $tpl, + uc($element->{shortname}), + $element->{binary}, + uc($element->{shortname}), + uc($element->{shortname}), + $element->{parameters}, + $element->{shortname}, + $element->{shortname}, + $element->{shortname}, + $element->{shortname}, + uc($element->{shortname}), + $element->{shortname} + ), + $element->{priority} + ); + + $tpl = "echo -n \"Starting %s \"\n"; + $tpl .= "startproc -f -p \$%s_PIDFILE \$%s_BIN \$%s_OPTS\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('start', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}), + uc($element->{shortname}) + ), + $element->{priority} + ); + + $tpl = "echo -n \"Shutting down %s\" \n"; + $tpl .= "killproc -p \$%s_PIDFILE -TERM \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('stop', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}) + ), + 10 - $element->{priority} + ); + + $tpl = "## Stop the service and if this succeeds (i.e. the \n"; + $tpl .= "## service was running before), start it again.\n"; + $tpl .= "\$0 status >/dev/null && \$0 restart\n\n"; + $tpl .= "# Remember status and be quiet\n"; + $tpl .= "rc_status"; + $initFile->addToCase('try-restart', + $tpl, + $element->{priority} + ); + + $tpl = "## Stop the service and regardless of whether it was \n"; + $tpl .= "## running or not, start it again.\n"; + $tpl .= "\$0 stop\n"; + $tpl .= "\$0 start\n\n"; + $tpl .= "# Remember status and be quiet\n"; + $tpl .= "rc_status"; + $initFile->addToCase('restart', + $tpl, + $element->{priority} + ); + + $tpl = "echo -n \"Reload service %s\"\n"; + $tpl .= "killproc -p \$%s_PIDFILE -HUP \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('reload', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}), + uc($element->{shortname}) + ), + $element->{priority} + ); + + $tpl = "echo -n \"Checking for service %s\"\n"; + $tpl .= "checkproc -p \$%s_PIDFILE \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('status', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}) + ), + $element->{priority} + ); + + + } + case 'function' { + my $tpl; + $tpl = "%s () { \n"; + $tpl .= "%s"; + $tpl .= "\n}\n"; + $initFile->addToBlock('functions', + sprintf( + $tpl, + $element->{name}, + $element->{script} + ) + ); + + } + case 'functionCall' { + my $tpl; + $tpl = "%s %s\n"; + #$tpl .= "%s\n "; + $initFile->addToCase($element->{block}, + sprintf( + $tpl, + $element->{function}, + $element->{parameters}, + "" + ), + $element->{priority} + ); + + } + } + } + +} + + +sub _getInitsystemIncludes +{ + return "\n"; +} + +sub _renderCasePrefix +{ + return "\n"; +} + +sub _renderFooter +{ + return "exit 0\n"; +} + +sub _generateUsage +{ + my $self = shift; + my $usage = shift; + my $tpl; + + $tpl = "## print out usage \n"; + $tpl .= "echo \"Usage: \$0 {%s}\" >&2 \n"; + $tpl .= "exit 1"; + + return sprintf( + $tpl, + $usage + ); +} + +sub _getAuthorBlock +{ + my $tpl; + + $tpl = "# Copyright (c) 2009 - OpenSLX GmbH \n"; + $tpl .= "# \n"; + $tpl .= "# This program is free software distributed under the GPL version 2. \n"; + $tpl .= "# See http://openslx.org/COPYING \n"; + $tpl .= "# \n"; + $tpl .= "# If you have any feedback please consult http://openslx.org/feedback and \n"; + $tpl .= "# send your suggestions, praise, or complaints to feedback\@openslx.org \n"; + $tpl .= "# \n"; + $tpl .= "# General information about OpenSLX can be found at http://openslx.org/ \n"; + $tpl .= "# -----------------------------------------------------------------------------\n"; + $tpl .= "# §filename§ \n"; + $tpl .= "# - §desc§ \n"; + $tpl .= "# §generated§ \n"; + $tpl .= "# -----------------------------------------------------------------------------\n\n"; + + return sprintf( + $tpl + ); +} + +sub generateInitFile +{ + my $self = shift; + my $initFile = shift; + my $content; + my @usage; + + # get a copy of initFile object before modifying it.. + my $initFileCopy = clone($initFile); + + $self->_renderHighlevelConfig($initFileCopy); + + my $config = $initFileCopy->{'configHash'}; + my $output; + + # head + $output = "#!/bin/sh\n"; + $output .= $self->_getAuthorBlock(); + $output .= $self->_renderInfoBlock($config); + $output .= $self->_getInitsystemIncludes(); + + if (keys(%{$config->{'blocks'}->{'head'}->{'content'}}) > 0) { + $output .= $self->_concatContent($config->{'blocks'}->{'head'}); + } + + # functions + if (keys(%{$config->{'blocks'}->{'functions'}->{'content'}}) > 0) { + $output .= $self->_concatContent($config->{'blocks'}->{'functions'}); + } + + # case block + $output .= $self->_renderCasePrefix(); + $output .= "\ncase \"\$1\" in \n"; + + # get caseBlocks in defined order + my @blocks = sort{ + $config->{'caseBlocks'}->{$a}->{'order'} <=> + $config->{'caseBlocks'}->{$b}->{'order'} + } + keys(%{$config->{'caseBlocks'}}); + + # case block + while (@blocks) + { + my $block= shift(@blocks); + if (keys(%{$config->{'caseBlocks'}->{$block}->{'content'}}) > 0) { + push(@usage, $block); + $output .= " $block)\n"; + $content = $self->_concatContent($config->{'caseBlocks'}->{$block}); + $content =~ s/^/ /mg; + $output .= $content; + $output .= " ;;\n"; + } else { + if ($config->{'caseBlocks'}->{$block}->{'required'}) { + print "required block $block undefined"; + } + } + } + + # autogenerate usage + if (scalar(grep(/usage/, @usage)) == 0) { + $initFileCopy->addToCase( + 'usage', + $self->_generateUsage(join(', ',@usage)) + ); + + $output .= " *)\n"; + $content = $self->_concatContent($config->{'caseBlocks'}->{'usage'}); + $content =~ s/^/ /mg; + $output .= $content; + $output .= " ;;\n"; + + } + + # footer + $output .= "esac\n\n"; + $output .= $self->_renderFooter(); + + return $output; + +} + +sub getKernelVersion +{ + my $self = shift; + my $kernelPath = shift; + + + my $newestKernelFile; + my $newestKernelFileSortKey = ''; + my $kernelPattern = '{vmlinuz,kernel-genkernel-x86}-*'; + foreach my $kernelFile (glob("$kernelPath/$kernelPattern")) { + next unless $kernelFile =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + my $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $newestKernelFile = $kernelFile; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $newestKernelFile) { + die; #_tr("unable to pick a kernel-file from path '%s'!", $kernelPath); + } + + $newestKernelFile =~ /.*?-([.\-0-9]*)-([a-zA-Z]*?)$/; + my $kernel = {}; + $kernel->{'version'} = $1; + $kernel->{'suffix'} = $2; + return $kernel; + +} + + +1; diff --git a/src/lib/OpenSLX/DistroUtils/Engine.pm b/src/lib/OpenSLX/DistroUtils/Engine.pm new file mode 100644 index 00000000..16c3e585 --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils/Engine.pm @@ -0,0 +1,58 @@ +# 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/ +# ----------------------------------------------------------------------------- +# Engine.pm +# - provides engine to distro based utils for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils::Engine; + +use OpenSLX::Basics; + +use strict; +use warnings; + +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + + +sub loadDistro { + my $self = shift; + my $distroName = shift; + $distroName = ucfirst($distroName); + + my $distro; + + my $loaded = eval { + $distro = instantiateClass("OpenSLX::DistroUtils::${distroName}"); + return 0 if !$distro; # module does not exist, try next + 1; + }; + + if (!$loaded) { + vlog(1, "can't find distro specific class, try base class.."); + $loaded = eval { + $distro = instantiateClass("OpenSLX::DistroUtils::Base"); + return 0 if !$distro; # module does not exist, try next + 1; + }; + } + + if (!$loaded) { + vlog(1, "failed to load DistroUtils!"); + } + + return $distro; +} + +1; diff --git a/src/lib/OpenSLX/DistroUtils/InitFile.pm b/src/lib/OpenSLX/DistroUtils/InitFile.pm new file mode 100644 index 00000000..ab729959 --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils/InitFile.pm @@ -0,0 +1,232 @@ +# 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/ +# ----------------------------------------------------------------------------- +# InitFile.pm +# - configuration object for runlevel script +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils::InitFile; + +use strict; +use warnings; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub new { + my $class = shift; + my $params = shift || {}; + my $self = { + }; + + $self->{'configHash'} = _initialConfigHash(); + + return bless $self, $class; +} + +sub _initialConfigHash() { + return { + 'name' => "", + 'requiredStart' => "\$remote_fs", + 'requiredStop' => "\$remote_fs", + 'defaultStart' => "2 3 4 5", + 'defaultStop' => "1", + 'shortDesc' => "", + 'blocks' => { + 'head' => { + 'blockDesc' => "head: file existing checks, etc.", + 'content' => {} + }, + 'functions' => { + 'blockDesc' => "functions: helper functions", + 'content' => {} + } + }, + 'caseBlocks' => { + 'start' => { + 'blockDesc' => "start: defines start function for initscript", + 'content' => {}, + 'order' => 1, + 'required' => 1 + }, + 'stop' => { + 'blockDesc' => "stop: defines stop function for initscript", + 'content' => {}, + 'order' => 2, + 'required' => 1 + }, + 'reload' => { + 'blockDesc' => "reload: defines reload function for initscript", + 'content' => {}, + 'order' => 3, + 'required' => 0 + }, + 'force-reload' => { + 'blockDesc' => "force-reload: defines force-reload function for initscript", + 'content' => {}, + 'order' => 4, + 'required' => 0 + }, + 'restart' => { + 'blockDesc' => "restart: defines restart function for initscript", + 'content' => {}, + 'order' => 5, + 'required' => 1 + }, + 'try-restart' => { + 'blockDesc' => "restart: defines restart function for initscript", + 'content' => {}, + 'order' => 6, + 'required' => 0 + }, + 'status' => { + 'blockDesc' => "status: defines status function for initscript", + 'content' => {}, + 'order' => 7, + 'required' => 0 + }, + 'usage' => { + 'blockDesc' => "usage: defines usage function for initscript", + 'content' => {}, + 'order' => 8, + 'required' => 0 + } + } + }; +} + +sub addToCase { + my $self = shift; + my $blockName = shift; + my $content = shift; + my $priority = shift || 5; + + #check if block is valid.. + + push(@{$self->{'configHash'}->{'caseBlocks'}->{$blockName}->{'content'}->{$priority}}, $content); + + return $self; +} + +sub addToBlock { + my $self = shift; + my $blockName = shift; + my $content = shift; + my $priority = shift || 5; + + #check if block is valid.. + + push(@{$self->{'configHash'}->{'blocks'}->{$blockName}->{'content'}->{$priority}}, $content); + + return $self; +} + +sub setName { + my $self = shift; + my $name = shift; + + $self->{'configHash'}->{'name'} = $name; + return $self; +} + +sub setDesc { + my $self = shift; + my $desc = shift; + + $self->{'configHash'}->{'shortDesc'} = $desc; + return $self; +} + +sub addFunction { + my $self = shift; + my $name = shift; + my $script = shift; + my $flags = shift || {}; + my $priority = $flags->{priority} || 5; + + push(@{$self->{'configHash'}->{'highlevelConfig'}}, + { + name => $name, + script => $script, + priority => $priority, + type => 'function' + }); + return 1; +} + +sub addFunctionCall { + my $self = shift; + my $function = shift; + my $block = shift; + my $flags = shift; + my $priority = $flags->{priority} || 5; + my $parameters = $flags->{parameters} || ""; + + push(@{$self->{'configHash'}->{'highlevelConfig'}}, + { + function => $function, + block => $block, + parameters => $parameters, + priority => $priority, + type => 'functionCall' + }); + return 1; +} + +sub addScript { + my $self = shift; + my $name = shift; + my $script = shift; + my $flags = shift || {}; + my $block = $flags->{block} || 'start'; + my $required = $flags->{required} || 1; + my $errormsg = $flags->{errormsg} || "$name failed!"; + my $priority = $flags->{priority} || 5; + + push(@{$self->{'configHash'}->{'highlevelConfig'}}, + { + name => $name, + script => $script, + block => $block, + required => $required, + priority => $priority, + errormsg => $errormsg, + type => 'script' + }); + return 1; +} + +sub addDaemon { + my $self = shift; + my $binary = shift; + $binary =~ m/\/([^\/]*)$/; + my $shortname = $1; + my $parameters = shift || ""; + my $flags = shift || {}; + my $required = $flags->{required} || 1; + my $desc = $flags->{desc} || "$shortname"; + my $errormsg = $flags->{errormsg} || "$desc failed!"; + my $priority = $flags->{priority} || 5; + + push(@{$self->{'configHash'}->{'highlevelConfig'}}, + { + binary => $binary, + shortname => $shortname, + parameters => $parameters, + desc => $desc, + errormsg => $errormsg, + required => $required, + priority => $priority, + type => 'daemon' + }); + return 1; +} + + +1; diff --git a/src/lib/OpenSLX/DistroUtils/Suse.pm b/src/lib/OpenSLX/DistroUtils/Suse.pm new file mode 100644 index 00000000..8a41c2eb --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils/Suse.pm @@ -0,0 +1,174 @@ +# 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/ +# ----------------------------------------------------------------------------- +# Suse.pm +# - provides suse specific functions for distro based utils for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils::Suse; + +use strict; +use warnings; +use Switch; + +use base qw(OpenSLX::DistroUtils::Base); + + +sub _renderCasePrefix +{ + return "rc_reset\n"; +} + +sub _renderFooter +{ + return "rc_exit\n"; +} + + +sub _renderHighlevelConfig { + my $self = shift; + my $initFile = shift; + + my $element; + my $hlc = $initFile->{'configHash'}->{'highlevelConfig'}; + + while ( $element = shift(@$hlc)){ + switch ($element->{type}) { + case 'daemon' { + my $tpl; + $tpl = "%s_BIN=%s \n"; + $tpl .= "[ -x %s_BIN ] || exit 5\n\n"; + $tpl .= "%s_OPTS=\"%s\" \n"; + $tpl .= "[ -f /etc/sysconfig/%s ] . /etc/sysconfig/%s \n\n"; + $tpl .= "%s_PIDFILE=\"/var/run/%s.init.pid\" \n\n"; + $initFile->addToBlock('head', + sprintf( + $tpl, + uc($element->{shortname}), + $element->{binary}, + uc($element->{shortname}), + uc($element->{shortname}), + $element->{parameters}, + $element->{shortname}, + $element->{shortname}, + uc($element->{shortname}), + $element->{shortname} + ) + ); + + $tpl = "echo -n \"Starting %s \"\n"; + $tpl .= "startproc -f -p \$%s_PIDFILE \$%s_BIN \$%s_OPTS\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('start', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}), + uc($element->{shortname}) + ) + ); + + $tpl = "echo -n \"Shutting down %s\" \n"; + $tpl .= "killproc -p \$%s_PIDFILE -TERM \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('stop', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}) + ) + ); + + $tpl = "## Stop the service and if this succeeds (i.e. the \n"; + $tpl .= "## service was running before), start it again.\n"; + $tpl .= "\$0 status >/dev/null && \$0 restart\n\n"; + $tpl .= "# Remember status and be quiet\n"; + $tpl .= "rc_status"; + $initFile->addToCase('try-restart', + $tpl + ); + + $tpl = "## Stop the service and regardless of whether it was \n"; + $tpl .= "## running or not, start it again.\n"; + $tpl .= "\$0 stop\n"; + $tpl .= "\$0 start\n\n"; + $tpl .= "# Remember status and be quiet\n"; + $tpl .= "rc_status"; + $initFile->addToCase('restart', + $tpl + ); + + $tpl = "echo -n \"Reload service %s\"\n"; + $tpl .= "killproc -p \$%s_PIDFILE -HUP \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('reload', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}), + uc($element->{shortname}) + ) + ); + + $tpl = "echo -n \"Checking for service %s\"\n"; + $tpl .= "checkproc -p \$%s_PIDFILE \$%s_BIN\n"; + $tpl .= "rc_status -v"; + $initFile->addToCase('status', + sprintf( + $tpl, + $element->{desc}, + uc($element->{shortname}), + uc($element->{shortname}) + ) + ); + + + } + case 'function' { + my $tpl; + $tpl = "%s () { \n"; + $tpl .= "%s"; + $tpl .= "\n}\n"; + $initFile->addToBlock('functions', + sprintf( + $tpl, + $element->{name}, + $element->{script} + ) + ); + + } + case 'functionCall' { + my $tpl; + $tpl = "%s %s\n"; + #$tpl .= "%s\n "; + $initFile->addToCase($element->{block}, + sprintf( + $tpl, + $element->{function}, + $element->{parameters}, + "" + ), + $element->{priority} + ); + + } + } + } +} + +sub _getInitsystemIncludes +{ + return ". /etc/rc.status\n\n"; +} + +1; \ No newline at end of file diff --git a/src/lib/OpenSLX/DistroUtils/Ubuntu.pm b/src/lib/OpenSLX/DistroUtils/Ubuntu.pm new file mode 100644 index 00000000..915c19c6 --- /dev/null +++ b/src/lib/OpenSLX/DistroUtils/Ubuntu.pm @@ -0,0 +1,172 @@ +# 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/ +# ----------------------------------------------------------------------------- +# Ubuntu.pm +# - provides ubuntu specific functions for distro based utils for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::DistroUtils::Ubuntu; + +use strict; +use warnings; +use Switch; + +use base qw(OpenSLX::DistroUtils::Base); + +sub _getInitsystemIncludes +{ + return ". /lib/lsb/init-functions\n\n"; +} + +sub _renderCasePrefix +{ + return ""; +} + +sub _renderFooter +{ + return "exit 0\n"; +} + + +sub _renderHighlevelConfig { + my $self = shift; + my $initFile = shift; + + my $element; + my $hlc = $initFile->{'configHash'}->{'highlevelConfig'}; + + while ( $element = shift(@$hlc)){ + switch ($element->{type}) { + case 'daemon' { + $element->{binary} =~ m/\/([^\/]*)$/; + my $shortname = $1; + my $tpl = "export %s_PARAMS=\"%s\" \n"; + $tpl .= "if [ -f /etc/default/%s ]; then . /etc/default/%s; fi \n"; + $initFile->addToBlock('head', + sprintf( + $tpl, + uc($shortname), + $element->{parameters}, + $shortname, + $shortname + ) + ); + + + $tpl = "log_daemon_msg \"Starting %s\" \"%s\" \n"; + $tpl .= "start-stop-daemon --start --quiet --oknodo "; + $tpl .= "--pidfile /var/run/%s.pid --exec %s -- \$%s_PARAMS \n"; + $tpl .= "log_end_msg \$?"; + $initFile->addToCase('start', + sprintf( + $tpl, + $element->{description}, + $shortname, + $shortname, + $element->{binary}, + uc($shortname) + ) + ); + + $tpl = "start-stop-daemon --stop --quiet --oknodo "; + $tpl .= "--pidfile /var/run/%s.pid \n"; + $tpl .= "log_end_msg \$?"; + $initFile->addToCase('stop', + sprintf( + $tpl, + $shortname + ) + ); + + $tpl = "log_daemon_msg \"Restarting %s\" \"%s\"\n"; + $tpl .= "\$0 stop\n"; + $tpl .= "case \"\$?\" in\n"; + $tpl .= " 0|1)\n"; + $tpl .= " \$0 start\n"; + $tpl .= " case \"\$?\" in\n"; + $tpl .= " 0) log_end_msg 0 ;;\n"; + $tpl .= " 1) log_end_msg 1 ;; # Old process is still running\n"; + $tpl .= " *) log_end_msg 1 ;; # Failed to start\n"; + $tpl .= " esac\n"; + $tpl .= " ;;\n"; + $tpl .= " *)\n"; + $tpl .= " # Failed to stop\n"; + $tpl .= " log_end_msg 1\n"; + $tpl .= " ;;\n"; + $tpl .= "esac\n"; + $tpl .= ";;\n"; + + $initFile->addToCase('restart', + sprintf( + $tpl, + $shortname + ) + ); + + + $tpl = "start-stop-daemon --stop --signal 1 --quiet "; + $tpl .= "--pidfile /var/run/%s.pid --name \$s\n"; + $tpl .= "return 0\n"; + $initFile->addToCase('reload', + sprintf( + $tpl, + $shortname, + $element->{binary} + ) + ); + + $tpl = "status_of_proc -p /var/run/%s.pid %s_BIN %s && exit 0 || exit \$?"; + $initFile->addToCase('status', + sprintf( + $tpl, + $element->{shortname}, + $element->{binary}, + $element->{shortname} + ) + ); + + + } + case 'function' { + my $tpl; + $tpl = "%s () { \n"; + $tpl .= "%s"; + $tpl .= "\n}\n"; + $initFile->addToBlock('functions', + sprintf( + $tpl, + $element->{name}, + $element->{script} + ) + ); + + } + case 'functionCall' { + my $tpl; + $tpl = "%s %s\n"; + #$tpl .= "%s\n "; + $initFile->addToCase($element->{block}, + sprintf( + $tpl, + $element->{function}, + $element->{parameters}, + "" + ), + $element->{priority} + ); + + } + + } + } + +} + +1; \ No newline at end of file diff --git a/src/lib/OpenSLX/LibScanner.pm b/src/lib/OpenSLX/LibScanner.pm new file mode 100644 index 00000000..e1f42ba4 --- /dev/null +++ b/src/lib/OpenSLX/LibScanner.pm @@ -0,0 +1,262 @@ +# Copyright (c) 2006-2008 - 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/ +# ----------------------------------------------------------------------------- +# LibScanner.pm +# - module that recursively scans a given binary for library dependencies +# ----------------------------------------------------------------------------- +package OpenSLX::LibScanner; + +use strict; +use warnings; + +use File::Find; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $params = shift || {}; + + checkParams($params, { + 'root-path' => '!', + 'verbose' => '?', + } ); + + my $self = { + rootPath => $params->{'root-path'}, + verbose => $params->{'verbose'} || 0, + }; + + return bless $self, $class; +} + +sub determineRequiredLibs +{ + my $self = shift; + my @binaries = @_; + + $self->{filesToDo} = []; + $self->{libs} = []; + $self->{libInfo} = {}; + + $self->_fetchLoaderConfig(); + + foreach my $binary (@binaries) { + if (substr($binary, 0, 1) ne '/') { + # force relative paths relative to $rootPath: + $binary = "$self->{rootPath}/$binary"; + } + if (!-e $binary) { + warn _tr("$0: unable to find file '%s', skipping it\n", $binary); + next; + } + push @{$self->{filesToDo}}, $binary; + } + + foreach my $file (@{$self->{filesToDo}}) { + $self->_addLibsForBinary($file); + } + + return @{$self->{libs}}; +} + +sub _fetchLoaderConfig +{ + my $self = shift; + + my @libFolders; + + if (!-e "$self->{rootPath}/etc") { + die _tr("'%s'-folder not found, maybe wrong root-path?\n", + "$self->{rootPath}/etc"); + } + $self->_fetchLoaderConfigFile("$self->{rootPath}/etc/ld.so.conf"); + + # add "trusted" folders /lib and /usr/lib if not already in place: + if (!grep { m[^$self->{rootPath}/lib$] } @libFolders) { + push @libFolders, "$self->{rootPath}/lib"; + } + if (!grep { m[^$self->{rootPath}/usr/lib$] } @libFolders) { + push @libFolders, "$self->{rootPath}/usr/lib"; + } + + # add lib32-folders for 64-bit Debians, as they do not + # refer those in ld.so.conf (which I find strange...) + if (-e '/lib32' && !grep { m[^$self->{rootPath}/lib32$] } @libFolders) { + push @libFolders, "$self->{rootPath}/lib32"; + } + if (-e '/usr/lib32' + && !grep { m[^$self->{rootPath}/usr/lib32$] } @libFolders) + { + push @libFolders, "$self->{rootPath}/usr/lib32"; + } + + push @{$self->{libFolders}}, @libFolders; + + return; +} + +sub _fetchLoaderConfigFile +{ + my $self = shift; + my $ldConfFile = shift; + + return unless -e $ldConfFile; + my $ldconfFH; + if (!open($ldconfFH, '<', $ldConfFile)) { + warn(_tr("unable to open file '%s' (%s)", $ldConfFile, $!)); + return; + } + while (<$ldconfFH>) { + chomp; + if (m{^\s*include\s+(.+?)\s*$}i) { + my @incFiles = glob("$self->{rootPath}$1"); + foreach my $incFile (@incFiles) { + if ($incFile) { + $self->_fetchLoaderConfigFile($incFile); + } + } + next; + } + if (m{\S+}i) { + s[=.+][]; + # remove any lib-type specifications (e.g. '=libc5') + push @{$self->{libFolders}}, "$self->{rootPath}$_"; + } + } + close $ldconfFH + or die(_tr("unable to close file '%s' (%s)", $ldConfFile, $!)); + return; +} + +sub _addLibsForBinary +{ + my $self = shift; + my $binary = shift; + + # first do some checks: + warn _tr("analyzing '%s'...\n", $binary) if $self->{verbose}; + my $fileInfo = `file --dereference --brief --mime $binary 2>/dev/null`; + if ($?) { + die _tr("unable to fetch file info for '%s', giving up!\n", $binary); + } + chomp $fileInfo; + warn _tr("\tinfo is: '%s'...\n", $fileInfo) if $self->{verbose}; + if ($fileInfo !~ m[^application/(x-executable|x-shared)]i) { + # ignore anything that's not an executable or a shared library + warn _tr( + "%s: ignored, as it isn't an executable or a shared library\n", + $binary + ); + next; + } + + # fetch file info again, this time without '--mime' in order to get the architecture + # bitwidth: + $fileInfo = `file --dereference --brief $binary 2>/dev/null`; + if ($?) { + die _tr("unable to fetch file info for '%s', giving up!\n", $binary); + } + chomp $fileInfo; + warn _tr("\tinfo is: '%s'...\n", $fileInfo) if $self->{verbose}; + my $bitwidth = ($fileInfo =~ m[64-bit]i) ? 64 : 32; + # determine whether binary is 32- or 64-bit platform + + # now find out about needed libs, we first try objdump... + warn _tr("\ttrying objdump...\n") if $self->{verbose}; + my $res = `objdump -p $binary 2>/dev/null`; + if (!$?) { + # find out if rpath is set for binary: + my $rpath; + if ($res =~ m[^\s*RPATH\s*(\S+)]im) { + $rpath = $1; + warn _tr("\trpath='%s'\n", $rpath) if $self->{verbose}; + } + while ($res =~ m[^\s*NEEDED\s*(.+?)\s*$]gm) { + $self->_addLib($1, $bitwidth, $rpath); + } + } else { + # ...objdump failed, so we try readelf instead: + warn _tr("\ttrying readelf...\n") if $self->{verbose}; + $res = `readelf -d $binary 2>/dev/null`; + if ($?) { + die _tr( + "neither objdump nor readelf seems to be installed, giving up!\n" + ); + } + # find out if rpath is set for binary: + my $rpath; + if ($res =~ m{Library\s*rpath:\s*\[([^\]]+)}im) { + $rpath = $1; + warn _tr("\trpath='%s'\n", $rpath) if $self->{verbose}; + } + while ($res =~ m{\(NEEDED\)[^\[]+\[(.+?)\]\s*$}gm) { + $self->_addLib($1, $bitwidth, $rpath); + } + } + return; +} + +sub _addLib +{ + my $self = shift; + my $lib = shift; + my $bitwidth = shift; + my $rpath = shift; + + if (!exists $self->{libInfo}->{$lib}) { + my $libPath; + my @folders = @{$self->{libFolders}}; + if (defined $rpath) { + # add rpath if given (explicit paths set during link stage) + push @folders, split ':', $rpath; + } + foreach my $folder (@folders) { + if (-e "$folder/$lib") { + # have library matching name, now check if the platform is ok, too: + my $libFileInfo = + `file --dereference --brief $folder/$lib 2>/dev/null`; + if ($?) { + die _tr("unable to fetch file info for '%s', giving up!\n", + $folder / $lib); + } + my $libBitwidth = ($libFileInfo =~ m[64-bit]i) ? 64 : 32; + if ($bitwidth != $libBitwidth) { + vlog( + 0, + _tr( + '%s has wrong bitwidth (%s instead of %s)', + "$folder/$lib", $libBitwidth, $bitwidth + ) + ) if $self->{verbose}; + next; + } + $libPath = "$folder/$lib"; + last; + } + } + if (!defined $libPath) { + die _tr("unable to find lib %s!\n", $lib); + } + print "found $libPath\n" if $self->{verbose}; + push @{$self->{libs}}, $libPath; + $self->{libInfo}->{$lib} = 1; + push @{$self->{filesToDo}}, $libPath; + } + return; +} + +1; diff --git a/src/lib/OpenSLX/ScopedResource.pm b/src/lib/OpenSLX/ScopedResource.pm new file mode 100644 index 00000000..af912691 --- /dev/null +++ b/src/lib/OpenSLX/ScopedResource.pm @@ -0,0 +1,174 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +package OpenSLX::ScopedResource; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +=head1 NAME + +OpenSLX::ScopedResource - provides a helper class that implements the +'resource-acquisition-by-definition' pattern. + +=head1 SYNOPSIS + +{ # some scope + + my $distroSession = OpenSLX::ScopedResource->new({ + name => 'distro::session', + acquire => sub { $distro->startSession(); 1 }, + release => sub { $distro->finishSession(); 1 }, + }); + + die $@ if ! eval { + # do something dangerous and unpredictable here: + doRandomStuff(); + 1; + }; + +} +# the distro-session will be cleanly finished, no matter if we died or not + +=head1 DESCRIPTION + +The class C wraps any resource such that the resource will be +acquired when an object of this class is created. Whenever the ScopedResource +object is being destroyed (e.g. by leaving scope) the wrapped resource will +automatically be released. + +The main purpose of this class is to make it simple to implement reliable +resource acquisition and release management even if the structure of the code +that refers to that resource is rather complex. + +Furthermore, this class handles cases where the script handling those resources +is spread across different process and/or makes us of signal handlers. + +=cut + +# make sure that we catch any signals in order to properly release scoped +# resources +use sigtrap qw( die normal-signals error-signals ); + +use OpenSLX::Basics; + +=head1 PUBLIC METHODS + +=over + +=item B + +Creates a ScopedResource object for the resource specified by the given +I<$params>. + +As part of creation of the object, the resource will be acquired. + +The I<$params>-hashref requires the following entries: + +=over + +=item C + +Gives a name for the wrapped resource. This is just used in log messages +concerning the acquisition and release of that resource. + +=item C + +Gives the code that is going to be executed in order to acquire the resource. + +=item C + +Gives the code that is going to be executed in order to release the resource. + +=back + +=cut + +sub new +{ + my $class = shift; + my $params = shift; + + checkParams($params, { + name => '!', + acquire => '!', + release => '!', + }); + + my $self = { + name => $params->{name}, + owner => 0, + acquire => $params->{acquire}, + release => $params->{release}, + }; + + bless $self, $class; + + $self->_acquire(); + + return $self; +} + +=item B + +Releases the resource (if it had been acquired by this process) and cleans up. + +=cut + +sub DESTROY +{ + my $self = shift; + + $self->_release(); + + # remove references to functions, in order to release any closures + $self->{acquire} = undef; + $self->{release} = undef; + + return; +} + +sub _acquire +{ + my $self = shift; + + # acquire the resource and set ourselves as owner + if ($self->{acquire}->()) { + vlog(1, "process $$ acquired resource $self->{name}"); + $self->{owner} = $$; + } +} + +sub _release +{ + my $self = shift; + + # only release the resource if invoked by the owning process + vlog(3, "process $$ tries to release resource $self->{name}"); + return if $self->{owner} != $$; + + # ignore ctrl-c while we are trying to release the resource, as otherwise + # the resource would be leaked + local $SIG{INT} = 'IGNORE'; + + # release the resource and unset owner + if ($self->{release}->()) { + vlog(1, "process $$ released resource $self->{name}"); + $self->{owner} = 0; + } +} + +=back + +=cut + +1; diff --git a/src/lib/OpenSLX/Syscall.pm b/src/lib/OpenSLX/Syscall.pm new file mode 100644 index 00000000..2d9182a7 --- /dev/null +++ b/src/lib/OpenSLX/Syscall.pm @@ -0,0 +1,129 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# PerlHeaders.pm +# - provides automatic generation of required perl headers (for syscalls) +# ----------------------------------------------------------------------------- +package OpenSLX::Syscall; + +use strict; +use warnings; + +our $VERSION = 1.01; + +=head1 NAME + +OpenSLX::Syscall - provides wrapper functions for syscalls. + +=head1 DESCRIPTION + +This module exports one wrapper function for each syscall that OpenSLX is +using. Each of these functions takes care to load all required Perl-headers +before trying to invoke the respective syscall. + +=cut + +use Config; +use File::Path; + +use OpenSLX::Basics; + +=head1 PUBLIC FUNCTIONS + +=over + +=item B + +Invokes the I syscall in order to enter the 32-bit personality +(C). + +=cut + +sub enter32BitPersonality +{ + _loadPerlHeader('syscall.ph'); + _loadPerlHeader('linux/personality.ph', 'sys/personality.ph'); + + syscall(&SYS_personality, PER_LINUX32()) != -1 + or warn _tr("unable to invoke syscall '%s'! ($!)", 'personality'); + + return; +} + +sub _loadPerlHeader +{ + my @phFiles = @_; + + my @alreadyLoaded = grep { exists $INC{$_} } @phFiles; + return if @alreadyLoaded; + + my $phLibDir = $Config{installsitearch}; + local @INC = @INC; + push @INC, "$phLibDir/asm"; + + # Unability to load an existing Perl header may be caused by missing + # asm-(kernel-)headers, since for instance openSUSE 11 does not provide + # any of these). + # If they are missing, we just have a go at creating all of them: + mkpath($phLibDir) unless -e $phLibDir; + 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!\ + \n(maybe linux-libc-dev missing)!' + ); + } + } + 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)', $!); + } + + for my $phFile (@phFiles) { + return 1 if eval { require $phFile }; + + warn(_tr( + 'unable to load Perl-header "%s", trying to create it ...', + $phFile + )); + + # perl-header has not been provided by host-OS, so we create it + # manually from C-header (via h2ph): + (my $hFile = $phFile) =~ s{\.ph$}{.h}; + if (-e "/usr/include/$hFile") { + slxsystem("cd /usr/include && h2ph -aQ -d $phLibDir $hFile") == 0 + or die _tr('unable to create %s! (%s)', $phFile, $!); + } + + return 1 if eval { require $phFile }; + } + + die _tr( + 'unable to load any of these perl headers: %s (%s)', + join(',', @phFiles), $@ + ); +} + +=back + +=cut + +1; diff --git a/src/lib/OpenSLX/Translations/de.pm b/src/lib/OpenSLX/Translations/de.pm new file mode 100644 index 00000000..b0783b81 --- /dev/null +++ b/src/lib/OpenSLX/Translations/de.pm @@ -0,0 +1,359 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# de.pm +# - OpenSLX-translations for the German language. +# ----------------------------------------------------------------------------- +package OpenSLX::Translations::de; + +use strict; +use warnings; + +our $VERSION = 0.02; + +my %translations; + +################################################################################ +### Implementation +################################################################################ +sub getAllTranslations +{ + my $class = shift; + return \%translations; +} + +################################################################################ +### Translations +################################################################################ + +%translations = ( + q{NEW:%s doesn't seem to be installed,\nso there is no support for %s available, sorry!\n} + => + qq{}, + + q{NEW:%s has wrong bitwidth (%s instead of %s)} + => + qq{}, + + q{NEW:%s: ignored, as it isn't an executable or a shared library\n} + => + qq{}, + + q{NEW:'%s' already exists!\n} + => + qq{}, + + q{NEW:'%s' not found, maybe wrong root-path?\n} + => + qq{}, + + q{NEW:\trpath='%s'\n} + => + qq{}, + + q{NEW:\ttrying objdump...\n} + => + qq{}, + + q{NEW:\ttrying readelf...\n} + => + qq{}, + + q{NEW:analyzing '%s'...\n} + => + qq{}, + + q{NEW:Can't add column to table <%s> (%s)} + => + qq{}, + + q{NEW:Can't add columns to table <%s> (%s)} + => + qq{}, + + q{NEW:Can't change columns in table <%s> (%s)} + => + qq{}, + + q{NEW:Can't create table <%s> (%s)} + => + qq{}, + + q{NEW:Can't delete from table <%s> (%s)} + => + qq{}, + + q{NEW:Can't drop columns from table <%s> (%s)} + => + qq{}, + + q{NEW:Can't drop table <%s> (%s)} + => + qq{}, + + q{NEW:Can't execute SQL-statement <%s> (%s)} + => + qq{}, + + q{NEW:Can't insert into table <%s> (%s)} + => + qq{}, + + q{NEW:Can't lock ID-file <%s> (%s)} + => + qq{}, + + q{NEW:Can't open ID-file <%s> (%s)} + => + qq{}, + + q{NEW:Can't prepare SQL-statement <%s> (%s)} + => + qq{}, + + q{NEW:Can't rename table <%s> (%s)} + => + qq{}, + + q{NEW:Can't to seek ID-file <%s> (%s)} + => + qq{}, + + q{NEW:Can't truncate ID-file <%s> (%s)} + => + qq{}, + + q{NEW:Can't update ID-file <%s> (%s)} + => + qq{}, + + q{NEW:Can't update table <%s> (%s)} + => + qq{}, + + q{NEW:Cannot connect to database <%s> (%s)} + => + qq{}, + + q{NEW:config-file <%s> has incorrect syntax here:\n\t%s\n} + => + qq{}, + + q{NEW:copying kernel %s to %s/kernel} + => + qq{}, + + q{Could not determine schema version of database} + => + qq{Die Version des Datenbank-Schemas konnte nicht bestimmt werden}, + + q{NEW:Could not load module <%s> (Version <%s> required, but <%s> found)} + => + qq{}, + + q{NEW:creating tar %s} + => + qq{}, + + q{NEW:DB matches current schema version %s} + => + qq{}, + + q{NEW:executing %s} + => + qq{}, + + q{NEW:exporting client %d:%s} + => + qq{}, + + q{NEW:exporting system %d:%s} + => + qq{}, + + q{NEW:generating initialramfs %s/initramfs} + => + qq{}, + + q{NEW:ignoring unknown key <%s>} + => + qq{}, + + q{NEW:List of supported systems:\n\t} + => + qq{}, + + q{NEW:Lock-file <%s> exists, script is already running.\nPlease remove the logfile and try again if you are sure that no one else\nis executing this script.\n} + => + qq{}, + + q{NEW:merging %s (val=%s)} + => + qq{}, + + q{NEW:merging from default client...} + => + qq{}, + + q{NEW:merging from group %d:%s...} + => + qq{}, + + q{NEW:neither objdump nor readelf seems to be installed, giving up!\n} + => + qq{}, + + q{no} + => + qq{nein}, + + q{NEW:Our schema-version is %s, DB is %s, upgrading DB...} + => + qq{}, + + q{NEW:PXE-system %s already exists!} + => + qq{}, + + q{NEW:removing %s} + => + qq{}, + + q{NEW:setting %s to <%s>} + => + qq{}, + + q{NEW:slxldd: unable to find file '%s', skipping it\n} + => + qq{}, + + q{NEW:Sorry, system '%s' is unsupported.\n} + => + qq{}, + + q{NEW:system-error: illegal target-path <%s>!} + => + qq{}, + + q{This will overwrite the current OpenSLX-database with an example dataset.\nAll your data (%s systems and %s clients) will be lost!\nDo you want to continue(%s/%s)? } + => + qq{Die aktuelle OpenSLX-Datenbank wird mit einem Beispiel-Datensatz überschrieben.\nAlle Daten (%s Systeme und %s Clients) werden gelöscht!\nMöchten Sie den Vorgang fortsetzen(%s/%s)? }, + + q{NEW:translations module %s loaded successfully} + => + qq{}, + + q{NEW:Unable to access client-config-path '%s'!} + => + qq{}, + + q{NEW:unable to create db-datadir %s! (%s)\n} + => + qq{}, + + q{NEW:Unable to create lock-file <%s>, exiting!\n} + => + qq{}, + + q{NEW:Unable to create or access temp-path '%s'!} + => + qq{}, + + q{NEW:Unable to create or access tftpboot-path '%s'!} + => + qq{}, + + q{NEW:unable to execute shell-command:\n\t%s \n\t(%s)} + => + qq{}, + + q{NEW:unable to fetch file info for '%s', giving up!\n} + => + qq{}, + + q{NEW:Unable to load DB-module <%s> (%s)\n} + => + qq{}, + + q{NEW:Unable to load DB-module <%s>\nthat database type is not supported (yet?)\n} + => + qq{}, + + q{NEW:unable to load DHCP-Export backend '%s'! (%s)\n} + => + qq{}, + + q{NEW:Unable to load module <%s> (Version <%s> required)} + => + qq{}, + + q{NEW:Unable to load module <%s> (Version <%s> required, but <%s> found)} + => + qq{}, + + q{NEW:Unable to load system-module <%s> (%s)\n} + => + qq{}, + + q{NEW:Unable to load system-module <%s>!\n} + => + qq{}, + + q{NEW:Unable to write local settings file <%s> (%s)} + => + qq{}, + + q{NEW:unknown settings key <%s>!\n} + => + qq{}, + + q{NEW:UnknownDbSchemaColumnDescr} + => + qq{}, + + q{UnknownDbSchemaCommand} + => + qq{Unbekannter DbSchema-Befehl <%s> wird übergangen}, + + q{NEW:UnknownDbSchemaTypeDescr} + => + qq{}, + + q{NEW:upgrade done} + => + qq{}, + + q{NEW:writing dhcp-config for %s clients} + => + qq{}, + + q{NEW:writing PXE-file %s} + => + qq{}, + + q{yes} + => + qq{ja}, + + q{NEW:You need to specify at least one file!\n} + => + qq{}, + + q{NEW:You need to specify exactly one system name!\n} + => + qq{}, + + q{NEW:You need to specify the root-path!\n} + => + qq{}, + +); + +1; diff --git a/src/lib/OpenSLX/Translations/posix.pm b/src/lib/OpenSLX/Translations/posix.pm new file mode 100644 index 00000000..61a94c93 --- /dev/null +++ b/src/lib/OpenSLX/Translations/posix.pm @@ -0,0 +1,359 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# posix.pm +# - OpenSLX-translations for the posix locale (English language). +# ----------------------------------------------------------------------------- +package OpenSLX::Translations::posix; + +use strict; +use warnings; + +our $VERSION = 0.02; + +my %translations; + +################################################################################ +### Implementation +################################################################################ +sub getAllTranslations +{ + my $class = shift; + return \%translations; +} + +################################################################################ +### Translations +################################################################################ + +%translations = ( + q{%s doesn't seem to be installed,\nso there is no support for %s available, sorry!\n} + => + qq{%s doesn't seem to be installed,\nso there is no support for %s available, sorry!\n}, + + q{%s has wrong bitwidth (%s instead of %s)} + => + qq{%s has wrong bitwidth (%s instead of %s)}, + + q{%s: ignored, as it isn't an executable or a shared library\n} + => + qq{%s: ignored, as it isn't an executable or a shared library\n}, + + q{'%s' already exists!\n} + => + qq{'%s' already exists!\n}, + + q{'%s' not found, maybe wrong root-path?\n} + => + qq{'%s' not found, maybe wrong root-path?\n}, + + q{\trpath='%s'\n} + => + qq{\trpath='%s'\n}, + + q{\ttrying objdump...\n} + => + qq{\ttrying objdump...\n}, + + q{\ttrying readelf...\n} + => + qq{\ttrying readelf...\n}, + + q{analyzing '%s'...\n} + => + qq{analyzing '%s'...\n}, + + q{Can't add column to table <%s> (%s)} + => + qq{Can't add column to table <%s> (%s)}, + + q{Can't add columns to table <%s> (%s)} + => + qq{Can't add columns to table <%s> (%s)}, + + q{Can't change columns in table <%s> (%s)} + => + qq{Can't change columns in table <%s> (%s)}, + + q{Can't create table <%s> (%s)} + => + qq{Can't create table <%s> (%s)}, + + q{Can't delete from table <%s> (%s)} + => + qq{Can't delete from table <%s> (%s)}, + + q{Can't drop columns from table <%s> (%s)} + => + qq{Can't drop columns from table <%s> (%s)}, + + q{Can't drop table <%s> (%s)} + => + qq{Can't drop table <%s> (%s)}, + + q{Can't execute SQL-statement <%s> (%s)} + => + qq{Can't execute SQL-statement <%s> (%s)}, + + q{Can't insert into table <%s> (%s)} + => + qq{Can't insert into table <%s> (%s)}, + + q{Can't lock ID-file <%s> (%s)} + => + qq{Can't lock ID-file <%s> (%s)}, + + q{Can't open ID-file <%s> (%s)} + => + qq{Can't open ID-file <%s> (%s)}, + + q{Can't prepare SQL-statement <%s> (%s)} + => + qq{Can't prepare SQL-statement <%s> (%s)}, + + q{Can't rename table <%s> (%s)} + => + qq{Can't rename table <%s> (%s)}, + + q{Can't to seek ID-file <%s> (%s)} + => + qq{Can't to seek ID-file <%s> (%s)}, + + q{Can't truncate ID-file <%s> (%s)} + => + qq{Can't truncate ID-file <%s> (%s)}, + + q{Can't update ID-file <%s> (%s)} + => + qq{Can't update ID-file <%s> (%s)}, + + q{Can't update table <%s> (%s)} + => + qq{Can't update table <%s> (%s)}, + + q{Cannot connect to database <%s> (%s)} + => + qq{Cannot connect to database <%s> (%s)}, + + q{config-file <%s> has incorrect syntax here:\n\t%s\n} + => + qq{config-file <%s> has incorrect syntax here:\n\t%s\n}, + + q{copying kernel %s to %s/kernel} + => + qq{copying kernel %s to %s/kernel}, + + q{Could not determine schema version of database} + => + qq{Could not determine schema version of database}, + + q{Could not load module <%s> (Version <%s> required, but <%s> found)} + => + qq{Could not load module <%s> (Version <%s> required, but <%s> found)}, + + q{creating tar %s} + => + qq{creating tar %s}, + + q{DB matches current schema version %s} + => + qq{DB matches current schema version %s}, + + q{executing %s} + => + qq{executing %s}, + + q{exporting client %d:%s} + => + qq{exporting client %d:%s}, + + q{exporting system %d:%s} + => + qq{exporting system %d:%s}, + + q{generating initialramfs %s/initramfs} + => + qq{generating initialramfs %s/initramfs}, + + q{ignoring unknown key <%s>} + => + qq{ignoring unknown key <%s>}, + + q{List of supported systems:\n\t} + => + qq{List of supported systems:\n\t}, + + q{Lock-file <%s> exists, script is already running.\nPlease remove the logfile and try again if you are sure that no one else\nis executing this script.\n} + => + qq{Lock-file <%s> exists, script is already running.\nPlease remove the logfile and try again if you are sure that no one else\nis executing this script.\n}, + + q{merging %s (val=%s)} + => + qq{merging %s (val=%s)}, + + q{merging from default client...} + => + qq{merging from default client...}, + + q{merging from group %d:%s...} + => + qq{merging from group %d:%s...}, + + q{neither objdump nor readelf seems to be installed, giving up!\n} + => + qq{neither objdump nor readelf seems to be installed, giving up!\n}, + + q{no} + => + qq{no}, + + q{Our schema-version is %s, DB is %s, upgrading DB...} + => + qq{Our schema-version is %s, DB is %s, upgrading DB...}, + + q{PXE-system %s already exists!} + => + qq{PXE-system %s already exists!}, + + q{removing %s} + => + qq{removing %s}, + + q{setting %s to <%s>} + => + qq{setting %s to <%s>}, + + q{slxldd: unable to find file '%s', skipping it\n} + => + qq{slxldd: unable to find file '%s', skipping it\n}, + + q{Sorry, system '%s' is unsupported.\n} + => + qq{Sorry, system '%s' is unsupported.\n}, + + q{system-error: illegal target-path <%s>!} + => + qq{system-error: illegal target-path <%s>!}, + + q{This will overwrite the current OpenSLX-database with an example dataset.\nAll your data (%s systems and %s clients) will be lost!\nDo you want to continue(%s/%s)? } + => + qq{This will overwrite the current OpenSLX-database with an example dataset.\nAll your data (%s systems and %s clients) will be lost!\nDo you want to continue(%s/%s)? }, + + q{translations module %s loaded successfully} + => + qq{translations module %s loaded successfully}, + + q{Unable to access client-config-path '%s'!} + => + qq{Unable to access client-config-path '%s'!}, + + q{unable to create db-datadir %s! (%s)\n} + => + qq{unable to create db-datadir %s! (%s)\n}, + + q{Unable to create lock-file <%s>, exiting!\n} + => + qq{Unable to create lock-file <%s>, exiting!\n}, + + q{Unable to create or access temp-path '%s'!} + => + qq{Unable to create or access temp-path '%s'!}, + + q{Unable to create or access tftpboot-path '%s'!} + => + qq{Unable to create or access tftpboot-path '%s'!}, + + q{unable to execute shell-command:\n\t%s \n\t(%s)} + => + qq{unable to execute shell-command:\n\t%s \n\t(%s)}, + + q{unable to fetch file info for '%s', giving up!\n} + => + qq{unable to fetch file info for '%s', giving up!\n}, + + q{Unable to load DB-module <%s> (%s)\n} + => + qq{Unable to load DB-module <%s> (%s)\n}, + + q{Unable to load DB-module <%s>\nthat database type is not supported (yet?)\n} + => + qq{Unable to load DB-module <%s>\nthat database type is not supported (yet?)\n}, + + q{unable to load DHCP-Export backend '%s'! (%s)\n} + => + qq{unable to load DHCP-Export backend '%s'! (%s)\n}, + + q{Unable to load module <%s> (Version <%s> required)} + => + qq{Unable to load module <%s> (Version <%s> required)}, + + q{Unable to load module <%s> (Version <%s> required, but <%s> found)} + => + qq{Unable to load module <%s> (Version <%s> required, but <%s> found)}, + + q{Unable to load system-module <%s> (%s)\n} + => + qq{Unable to load system-module <%s> (%s)\n}, + + q{Unable to load system-module <%s>!\n} + => + qq{Unable to load system-module <%s>!\n}, + + q{Unable to write local settings file <%s> (%s)} + => + qq{Unable to write local settings file <%s> (%s)}, + + q{unknown settings key <%s>!\n} + => + qq{unknown settings key <%s>!\n}, + + q{UnknownDbSchemaColumnDescr} + => + qq{UnknownDbSchemaColumnDescr}, + + q{UnknownDbSchemaCommand} + => + qq{UnknownDbSchemaCommand}, + + q{UnknownDbSchemaTypeDescr} + => + qq{UnknownDbSchemaTypeDescr}, + + q{upgrade done} + => + qq{upgrade done}, + + q{writing dhcp-config for %s clients} + => + qq{writing dhcp-config for %s clients}, + + q{writing PXE-file %s} + => + qq{writing PXE-file %s}, + + q{yes} + => + qq{yes}, + + q{You need to specify at least one file!\n} + => + qq{You need to specify at least one file!\n}, + + q{You need to specify exactly one system name!\n} + => + qq{You need to specify exactly one system name!\n}, + + q{You need to specify the root-path!\n} + => + qq{You need to specify the root-path!\n}, + +); + +1; diff --git a/src/lib/OpenSLX/Utils.pm b/src/lib/OpenSLX/Utils.pm new file mode 100644 index 00000000..6e722c00 --- /dev/null +++ b/src/lib/OpenSLX/Utils.pm @@ -0,0 +1,701 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Utils.pm +# - provides utility functions for OpenSLX +# ----------------------------------------------------------------------------- +package OpenSLX::Utils; + +use strict; +use warnings; + +use vars qw(@ISA @EXPORT $VERSION); + +use Exporter; +$VERSION = 1.01; +@ISA = qw(Exporter); + +@EXPORT = qw( + copyFile fakeFile linkFile + copyBinaryWithRequiredLibs + slurpFile spitFile appendFile + followLink + unshiftHereDoc + string2Array trim + chrootInto + mergeHash + getFQDN + readPassword + hostIs64Bit + getAvailableBusyboxApplets + grabLock + pathOf + isInPath +); + +=head1 NAME + +OpenSLX::Utils - provides utility functions for OpenSLX. + +=head1 DESCRIPTION + +This module exports utility functions, which are expected to be used all across +OpenSLX. + +=cut + +use Fcntl qw(:DEFAULT :flock); +use File::Basename; +use File::Path; +use Socket; +use Sys::Hostname; +use Term::ReadLine; + +use OpenSLX::Basics; +use OpenSLX::ScopedResource; + +=head1 PUBLIC FUNCTIONS + +=over + +=item B + +Copies the file specified by I<$fileName> to the folder I<$targetDir>, +preserving the permissions and optionally renaming it to I<$targetFileName> +during the process. + +If I<$targetDir> does not exist yet, it will be created. + +=cut + +sub copyFile +{ + my $fileName = shift || croak 'need to pass in a fileName!'; + my $targetDir = shift || croak 'need to pass in target dir!'; + my $targetFileName = shift || ''; + + mkpath($targetDir) unless -d $targetDir; + my $target = "$targetDir/$targetFileName"; + vlog(2, _tr("copying '%s' to '%s'", $fileName, $target)); + if (system("cp -p $fileName $target")) { + croak( + _tr( + "unable to copy file '%s' to dir '%s' (%s)", + $fileName, $target, $! + ) + ); + } + return; +} + +=item B + +Creates the (empty) file I<$fullPath> unless it already exists. + +If the parent directory of I<$fullPath> does not exist yet, it will be created. + +=cut + +sub fakeFile +{ + my $fullPath = shift || croak 'need to pass in full path!'; + + return if -e $fullPath; + + my $targetDir = dirname($fullPath); + mkpath($targetDir) unless -d $targetDir; + + if (system("touch", $fullPath)) { + croak(_tr("unable to create file '%s' (%s)", $fullPath, $!)); + } + return; +} + +=item B + +Creates the link I<$linkName> that points to I<$linkTarget>. + +If the directory where the new link shall live does not exist yet, it will be +created. + +=cut + +sub linkFile +{ + my $linkTarget = shift || croak 'need to pass in link target!'; + my $linkName = shift || croak 'need to pass in link name!'; + + my $targetDir = dirname($linkName); + mkpath($targetDir) unless -d $targetDir; + if (system("ln -sfn $linkTarget $linkName")) { + croak( + _tr( + "unable to create link '%s' to '%s' (%s)", + $linkName, $linkTarget, $! + ) + ); + } + return; +} + +=item B + +Reads the file specified by <$fileName> and returns the contents. + +The optional hash-ref I<$flags> supports the following entries: + +=over + +=item failIfMissing + +Specifies what shall happen if the file does not exist: die (failIfMissing == 1) +or return an empty string (failIfMissing == 0). Defaults to 1. + +=item io-layer + +Specifies the Perl-IO-layer that shall be applied to the file (defaults to +'utf8'). + +=back + +=cut + +sub slurpFile +{ + my $fileName = shift || confess 'need to pass in fileName!'; + my $flags = shift || {}; + + checkParams($flags, { + 'failIfMissing' => '?', + 'io-layer' => '?', + }); + my $failIfMissing + = exists $flags->{failIfMissing} ? $flags->{failIfMissing} : 1; + my $ioLayer = $flags->{'io-layer'} || 'utf8'; + + my $fh; + if (!open($fh, "<:$ioLayer", $fileName)) { + return '' unless $failIfMissing; + croak _tr("could not open file '%s' for reading! (%s)", $fileName, $!); + } + if (wantarray()) { + my @content = <$fh>; + close($fh) + or croak _tr("unable to close file '%s' (%s)\n", $fileName, $!); + return @content; + } + else { + local $/; + my $content = <$fh>; + close($fh) + or croak _tr("unable to close file '%s' (%s)\n", $fileName, $!); + return $content; + } +} + +=item B + +Writes the given I<$content> to the file specified by <$fileName>, creating +the file (and any missing directories) if it does not exist yet. + +The optional hash-ref I<$flags> supports the following entries: + +=over + +=item io-layer + +Specifies the Perl-IO-layer that shall be applied to the file (defaults to +'utf8'). + +=item mode + +Specifies the file mode that shall be applied to the file (via chmod). + +=back + +=cut + +sub spitFile +{ + my $fileName = shift || croak 'need to pass in a fileName!'; + my $content = shift || ''; + my $flags = shift || {}; + + checkParams($flags, { + 'io-layer' => '?', + 'mode' => '?', + }); + my $ioLayer = $flags->{'io-layer'} || 'utf8'; + + my $targetDir = dirname($fileName); + mkpath($targetDir) unless -d $targetDir; + + my $fh; + open($fh, ">:$ioLayer", $fileName) + or croak _tr("unable to create file '%s' (%s)\n", $fileName, $!); + print $fh $content + or croak _tr("unable to print to file '%s' (%s)\n", $fileName, $!); + close($fh) + or croak _tr("unable to close file '%s' (%s)\n", $fileName, $!); + if (defined $flags->{mode}) { + chmod $flags->{mode}, $fileName; + } + return; +} + +=item B + +Appends the given I<$content> to the file specified by <$fileName>, creating +the file (and any missing directories) if it does not exist yet. + +The optional hash-ref I<$flags> supports the following entries: + +=over + +=item io-layer + +Specifies the Perl-IO-layer that shall be applied to the file (defaults to +'utf8'). + +=back + +=cut + +sub appendFile +{ + my $fileName = shift || croak 'need to pass in a fileName!'; + my $content = shift; + my $flags = shift || {}; + + checkParams($flags, { + 'io-layer' => '?', + }); + my $ioLayer = $flags->{'io-layer'} || 'utf8'; + + my $targetDir = dirname($fileName); + mkpath($targetDir) unless -d $targetDir; + + my $fh; + open($fh, ">>:$ioLayer", $fileName) + or croak _tr("unable to create file '%s' (%s)\n", $fileName, $!); + print $fh $content + or croak _tr("unable to print to file '%s' (%s)\n", $fileName, $!); + close($fh) + or croak _tr("unable to close file '%s' (%s)\n", $fileName, $!); + return; +} + +=item B + +Deeply traverses the given I<$path> until it no longer contains a link and +returns the resulting file or directory. + +If you pass in a I<$prefixedPath>, each link will be resolved relatively to +that path (useful for example with respect to chroot-environments). + +=cut + +sub followLink +{ + my $path = shift || croak 'need to pass in a path!'; + my $prefixedPath = shift || ''; + + my $target; + while (-l "$path") { + $target = readlink "$path"; + if (substr($target, 0, 1) eq '/') { + $path = "$prefixedPath$target"; + } + else { + $path = $prefixedPath . dirname($path) . '/' . $target; + } + } + return $path; +} + +=item B + +Copies a binary to a specified folder, taking along all the libraries that +are required by this binary. + +The hash-ref I<$params> supports the following entries: + +=over + +=item binary + +The full path to the binary that shall be copied. + +=item targetFolder + +The full path to the folder where the binary shall be copied to. + +=item libTargetFolder + +Defines a path relatively to which all required libs will be copied to. + +An example: during execution of + + copyBinaryWithRequiredLibs({ + binary => '/bin/ls', + targetFolder => '/tmp/slx-initramfs/bin', + libTargetFolder => '/tmp/slx-initramfs', + }); + +the library C will be copied to +C. + +=item targetName [optional] + +If you'd like to rename the binary while copying, you can specify the new name +in this entry. + +=back + +=cut + +sub copyBinaryWithRequiredLibs { + my $params = shift; + + checkParams($params, { + 'binary' => '!', # file to copy + 'targetFolder' => '!', # where file shall be copied to + 'libTargetFolder' => '!', # base target folder for libs + 'targetName' => '?', # name of binary in target folder + }); + copyFile($params->{binary}, $params->{targetFolder}, $params->{targetName}); + + # determine all required libraries and copy those, too: + vlog(1, _tr("calling slxldd for $params->{binary}")); + my $slxlddCmd = "slxldd $params->{binary}"; + vlog(2, "executing: $slxlddCmd"); + my $requiredLibsStr = qx{$slxlddCmd}; + if ($?) { + die _tr( + "slxldd couldn't determine the libs required by '%s'! (%s)", + $params->{binary}, $? + ); + } + chomp $requiredLibsStr; + vlog(2, "slxldd results:\n$requiredLibsStr"); + + foreach my $lib (split "\n", $requiredLibsStr) { + my $libDir = dirname($lib); + my $targetLib = "$params->{libTargetFolder}$libDir"; + next if -e "$targetLib/$lib"; + vlog(3, "copying lib '$lib'"); + copyFile($lib, $targetLib); + } + return $requiredLibsStr; +} + +=item B + +Returns the here-doc (or string) given in I<$content> such that the leading +whitespace found on the first line will be removed from all lines. + +As an example: if you pass in the string + + #!/bin/sh + if [ -n "$be_nice" ]; then + echo "bummer!" >/etc/passwd + fi + +you will get this: + +#!/bin/sh +if [ -n "$be_nice" ]; then + echo "bummer!" >/etc/passwd +fi + +=cut + +sub unshiftHereDoc +{ + my $content = shift; + return $content unless $content =~ m{^(\s+)}; + my $shiftStr = $1; + $content =~ s[^$shiftStr][]gms; + return $content; +} + +=item B + +Returns the given string split into an array, using newlines as separator. + +In the resulting array, empty entries will have been removed and each entry +will be trimmed of leading or trailing whitespace and comments (lines starting +with a #). + +=cut + +sub string2Array +{ + my $string = shift || ''; + + my @lines = split m[\n], $string; + for my $line (@lines) { + # remove leading and trailing whitespace: + $line =~ s{^\s*(.*?)\s*$}{$1}; + } + + # drop empty lines and comments: + return grep { length($_) > 0 && $_ !~ m[^\s*#]; } @lines; +} + +=item B + +Does a chroot() into the given directory (which is supposed to contain at +least the fragments of an operating system). + +=cut + +sub chrootInto +{ + my $osDir = shift; + + vlog(2, "chrooting into $osDir..."); + chdir $osDir + or die _tr("unable to chdir into '%s' (%s)\n", $osDir, $!); + + # ...do chroot + chroot "." + or die _tr("unable to chroot into '%s' (%s)\n", $osDir, $!); + return; +} + +=item B + +Deeply copies values from I<$sourceHash> into I<$targetHash>. + +If you pass in 1 for I<$fillOnly>, only hash entries that do not exist in +I<$targetHash> will be copied (C-mode), otherwise all values from +I<$sourceHash> will be copied over (C-mode). + +Returns the resulting I<$targetHash> for convenience. + +=cut + +sub mergeHash +{ + my $targetHash = shift; + my $sourceHash = shift; + my $fillOnly = shift || 0; + + foreach my $key (keys %{$sourceHash}) { + my $sourceVal = $sourceHash->{$key}; + if (ref($sourceVal) eq 'HASH') { + if (!exists $targetHash->{$key}) { + $targetHash->{$key} = {}; + } + mergeHash($targetHash->{$key}, $sourceVal); + } + elsif (ref($sourceVal) eq 'ARRAY') { + if (!exists $targetHash->{$key}) { + $targetHash->{$key} = []; + } + foreach my $val (@{$sourceHash->{$key}}) { + my $targetVal = {}; + push @{$targetHash->{$key}}, $targetVal; + mergeHash($targetVal, $sourceVal); + } + } + else { + next if $fillOnly && exists $targetHash->{$key}; + $targetHash->{$key} = $sourceVal; + } + } + return $targetHash; +} + +=item B + +Determines the fully-qualified-domain-name (FQDN) of the computer executing +this function and returns it. + +=cut + +sub getFQDN +{ + my $hostName = hostname(); + + my $hostAddr = gethostbyname($hostName) + or die(_tr("unable to get address of host '%s'", $hostName)); + my $FQDN = gethostbyaddr($hostAddr, AF_INET) + or die(_tr("unable to get dns-name of address '%s'", $hostAddr)); + return $FQDN; +} + +=item B + +Outputs the given I<$prompt> and then reads a password from the terminal +(trying to make sure that the characters are not echoed in a readable form). + +=cut + +sub readPassword +{ + my $prompt = shift; + + my $term = Term::ReadLine->new('slx'); + my $attribs = $term->Attribs; + $attribs->{redisplay_function} = $attribs->{shadow_redisplay}; + + return $term->readline($prompt); +} + +=item B + +Returns 1 if the host (the computer executing this function) is running a +64-bit OS, 0 if not (i.e. 32-bit). + +=cut + +sub hostIs64Bit +{ + my $arch = qx{uname -m}; + return $arch =~ m[64]; +} + +=item B + +Returns the list of the applets that is provided by the given busybox binary. + +=cut + +sub getAvailableBusyboxApplets +{ + my $busyboxBinary = shift; + + my $busyboxHelp = qx{$busyboxBinary --help}; + if ($busyboxHelp !~ m{defined functions:(.+)\z}ims) { + die "unable to parse busybox --help output:\n$busyboxHelp"; + } + my $rawAppletList = $1; + my @busyboxApplets + = map { + $_ =~ s{\s+}{}igms; + $_; + } + split m{,}, $rawAppletList; + + return @busyboxApplets; +} + +=item grabLock() + +=cut + +sub grabLock +{ + my $lockName = shift || die 'you need to pass a lock-name to grabLock()!'; + + my $lockPath = "$openslxConfig{'private-path'}/locks"; + mkpath($lockPath) unless -e $lockPath; + + # drop any trailing slashes from lock name: + $lockName =~ s{/+$}{}; + my $lockFile = "$lockPath/$lockName"; + + my $lockFH; + + my $lock = OpenSLX::ScopedResource->new({ + name => "lock::$lockName", + acquire => sub { + # use a lock-file to implement the actual locking: + if (-e $lockFile) { + my $ctime = (stat($lockFile))[10]; + my $now = time(); + if ($now - $ctime > 15 * 60) { + # existing lock file is older than 15 minutes, we consider + # that to be a leftover (which shouldn't happen of course) + # and wipe it: + unlink $lockFile; + } + } + + local $| = 1; + my $waiting; + while(!(sysopen($lockFH, $lockFile, O_RDWR | O_CREAT | O_EXCL) + && syswrite($lockFH, getpgrp() . "\n"))) { + if ($! == 13) { + die _tr( + qq[Unable to create lock "%s", giving up!], $lockFile + ); + } else { + # check if the lock is owned by our own process group + # and only block if it isn't (this allows recursive locking) + my $pgrpOfLock + = slurpFile($lockFile, { failIfMissing => 0}); + last if $pgrpOfLock && $pgrpOfLock == getpgrp(); + + # wait for lock to become available + if (!$waiting) { + print _tr('waiting for "%s"-lock ', $lockName); + $waiting = 1; + } + else { + print '.'; + } + sleep(1); + } + } + print "ok\n" if $waiting; + 1 + }, + release => sub { + close($lockFH); + unlink $lockFile; + 1 + }, + }); + + return $lock; +} + +=item B + +Returns the path of a binary it is installed in. + +=cut + +sub pathOf +{ + my $binary = shift; + return qx{which $binary 2>/dev/null}; +} + +=item B + +Returns whether a binary is found. + +=cut + +sub isInPath +{ + my $binary = shift; + my $path = pathOf($binary); + + return $path ? 1 : 0; +} + + +sub trim +{ + my $string = shift; + + $string =~ s/^\s+//; + $string =~ s/\s+$//; + + return $string; +} + + +1; diff --git a/src/lib/distro-info/clone-filter.example b/src/lib/distro-info/clone-filter.example new file mode 100644 index 00000000..14582c3c --- /dev/null +++ b/src/lib/distro-info/clone-filter.example @@ -0,0 +1,14 @@ +# this file defines the filter rules used when cloning any vendor-OS +# +# copy this file to 'clone-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/src/lib/distro-info/debian-3.1/mirrors/base b/src/lib/distro-info/debian-3.1/mirrors/base new file mode 100644 index 00000000..7d6aaa9e --- /dev/null +++ b/src/lib/distro-info/debian-3.1/mirrors/base @@ -0,0 +1,287 @@ +ftp://ameba.sc-uni.ktu.lt/debian +ftp://artfiles.org/debian +ftp://bigmirror.crossbowproject.net/pub/debian +ftp://carroll.aset.psu.edu/pub/linux/distributions/debian +http://cdn.debian.or.jp/debian +ftp://cudlug.cudenver.edu/debian +ftp://debian.balt.net/debian +ftp://debian.bsnet.se/debian +ftp://debian.cict.fr/debian +ftp://debian.cites.uiuc.edu/pub/debian +ftp://debian.cn99.com/debian +http://debian.co.il/debian +ftp://debian.cruisix.net/debian +http://debian.csg.uzh.ch/debian +ftp://debian.csie.nctu.edu.tw/debian +http://debian.csie.ntu.edu.tw/debian +ftp://debian.csie.ntu.edu.tw/pub/debian +ftp://debian.ens-cachan.fr/debian +http://debian.ens-cachan.fr/ftp/debian +http://debian.eso-es.net/debian +ftp://debian.essentkabel.com/debian +ftp://debian.fastbull.org/debian +ftp://debian.fastweb.it/debian +http://debian.fifi.org/debian +ftp://debian.fifi.org/pub/debian +ftp://debian.ibisc.univ-evry.fr/debian +ftp://debian.ihug.co.nz/debian +http://debian.indika.net.id/debian +ftp://debian.inode.at/debian +http://debian.intergenia.de/debian +ftp://debian.internet.gr/debian +ftp://debian.iskon.hr/debian +ftp://debian.lcs.mit.edu/debian +http://debian.logiclinux.com/debian +ftp://debian.ludost.net/debian +http://debian.midco.net/debian +ftp://debian.mines.inpl-nancy.fr/debian +ftp://debian.mirror.ac.za/debian +ftp://debian.mirror.frontiernet.net/debian +ftp://debian.mirror.inra.fr/debian +ftp://debian.mirror.iweb.ca/debian +ftp://debian.mirror.rafal.ca/debian +ftp://debian.mirrors.crysys.hu/debian +ftp://debian.mirrors.easynet.fr/debian +ftp://debian.mirrors.tds.net/debian +ftp://debian.nctu.edu.tw/debian +ftp://debian.netcologne.de/debian +http://debian.osdn.org.ua/debian +ftp://debian.osdn.org.ua/pub/Debian/debian +ftp://debian.osuosl.org/debian +http://debian.otenet.gr/debian +ftp://debian.otenet.gr/pub/linux/debian +http://debian.pffa.de/mirrors/debian +ftp://debian.pffa.de/pub/mirrors/debian +http://debian.pop-sc.rnp.br/debian +ftp://debian.savoirfairelinux.net/debian +ftp://debian.secsup.org/pub/linux/debian +ftp://debian.sh.cvut.cz/debian +http://debian.shimpinomori.net/debian +ftp://debian.swordcoast.net/debian +ftp://debian.telecoms.bg/debian +ftp://debian.torredehanoi.org/debian +ftp://debian.tu-bs.de/debian +ftp://debian.ua.pt/debian +http://debian.ubiobio.cl/debian +ftp://debian.uchicago.edu/debian +ftp://debian.udsu.ru/debian +http://debian.unesr.edu.ve/debian +http://debian.uni-c.dk/debian +ftp://debian.uni-essen.de/debian +http://debian.uni.edu.ni/debian +ftp://debian.wow-vision.com.sg/debian +http://debian.yorku.ca/debian +ftp://dennou-k.gfd-dennou.org/library/Linux/debian +ftp://dennou-q.gfd-dennou.org/library/Linux/debian +ftp://distro.ibiblio.org/pub/linux/distributions/debian +ftp://download.mirror.ac.uk/sites/ftp.debian.org/debian +http://freedom.dicea.unifi.it/ftp/pub/linux/debian +ftp://freedom.dicea.unifi.it/pub/linux/debian +ftp://ftp-stud.fht-esslingen.de/debian +ftp://ftp.arnes.si/packages/debian +http://ftp.at.debian.org/debian +http://ftp.au.debian.org/debian +ftp://ftp.belnet.be/debian +http://ftp.bg.debian.org/debian +ftp://ftp.bme.hu/OS/Linux/dist/debian +ftp://ftp.bononia.it/debian +http://ftp.br.debian.org/debian +ftp://ftp.caliu.info/debian +ftp://ftp.carnet.hr/debian +ftp://ftp.cc.uoc.gr/mirrors/linux/debian +ftp://ftp.ccc.uba.ar/pub/linux/debian/debian +http://ftp.ch.debian.org/debian +ftp://ftp.cica.es/debian +http://ftp.cl.debian.org/debian +ftp://ftp.coe.psu.ac.th/debian +ftp://ftp.corbina.ru/pub/Linux/debian +ftp://ftp.crihan.fr/debian +ftp://ftp.cs.unm.edu/mirrors/debian +http://ftp.cz.debian.org/debian +http://ftp.de.debian.org/debian +ftp://ftp.debian.ikoula.com/debian +ftp://ftp.debian.nl/debian +ftp://ftp.debian.org/debian +ftp://ftp.debian.sk/debian +ftp://ftp.debian.skynet.be/debian +http://ftp.debian.skynet.be/ftp/debian +http://ftp.dk.debian.org/debian +http://ftp.dkuug.dk/debian +ftp://ftp.dkuug.dk/pub/debian +ftp://ftp.dti.ad.jp/pub/Linux/debian +ftp://ftp.duth.gr/debian +ftp://ftp.easynet.be/debian +http://ftp.easynet.be/ftp/debian +http://ftp.ee.debian.org/debian +ftp://ftp.egr.msu.edu/debian +ftp://ftp.eq.uc.pt/pub/software/Linux/debian +http://ftp.eq.uc.pt/software/Linux/debian +http://ftp.es.debian.org/debian +ftp://ftp.esat.net/pub/linux/debian +ftp://ftp.eutelia.it/pub/Debian_Mirror +http://ftp.fi.debian.org/debian +http://ftp.fr.debian.org/debian +http://ftp.freenet.de/debian +ftp://ftp.freenet.de/pub/ftp.debian.org/debian +ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian +ftp://ftp.funet.fi/pub/linux/mirrors/debian +ftp://ftp.grokthis.net/mirrors/debian +http://ftp.gtlib.gatech.edu/debian +ftp://ftp.gtlib.gatech.edu/pub/debian +ftp://ftp.gul.uc3m.es/debian +http://ftp.gva.es/mirror/debian +http://ftp.hk.debian.org/debian +ftp://ftp.hosteurope.de/pub/linux/debian +http://ftp.hr.debian.org/debian +http://ftp.hu.debian.org/debian +ftp://ftp.icm.edu.pl/pub/Linux/debian +http://ftp.ie.debian.org/debian +ftp://ftp.iinet.net.au/debian/debian +ftp://ftp.iitm.ac.in/debian +ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.de.debian.org/debian +ftp://ftp.irb.hr/debian +http://ftp.is.debian.org/debian +http://ftp.it.debian.org/debian +ftp://ftp.iut-bm.univ-fcomte.fr/debian +ftp://ftp.jaist.ac.jp/pub/Linux/Debian +http://ftp.jp.debian.org/debian +ftp://ftp.jyu.fi/debian +ftp://ftp.keystealth.org/debian +http://ftp.kr.debian.org/debian +ftp://ftp.kulnet.kuleuven.ac.be/debian +ftp://ftp.linux.pt/pub/mirrors/debian +ftp://ftp.lip6.fr/pub/linux/distributions/debian +ftp://ftp.lug.ro/debian +ftp://ftp.man.szczecin.pl/pub/Linux/debian +ftp://ftp.mgts.by/debian +ftp://ftp.mikesnet.ro/debian +ftp://ftp.mipt.ru/debian +ftp://ftp.monash.edu.au/pub/linux/debian +ftp://ftp.mpi-sb.mpg.de/pub/linux/distributions/debian/debian +http://ftp.mx.debian.org/debian +ftp://ftp.ndlug.nd.edu/debian +http://ftp.ndlug.nd.edu/mirrors/debian +ftp://ftp.nerim.net/debian +http://ftp.nl.debian.org/debian +ftp://ftp.nluug.nl/pub/os/Linux/distr/debian +http://ftp.no.debian.org/debian +ftp://ftp.ntua.gr/pub/linux/debian +http://ftp.nz.debian.org/debian +http://ftp.pl.debian.org/debian +ftp://ftp.port80.se/debian +ftp://ftp.psn.ru/debian +http://ftp.pt.debian.org/debian +ftp://ftp.pucpr.br/debian +ftp://ftp.rediris.es/debian +ftp://ftp.riken.jp/pub/Linux/debian/debian +http://ftp.ro.debian.org/debian +ftp://ftp.rrzn.uni-hannover.de/debian/debian +http://ftp.ru.debian.org/debian +ftp://ftp.scarlet.be/pub/debian +http://ftp.se.debian.org/debian +http://ftp.si.debian.org/debian +http://ftp.sk.debian.org/debian +http://ftp.softnet.tuc.gr/ftp/linux/debian +ftp://ftp.stw-bonn.de/debian +ftp://ftp.sun.ac.za/debian +http://ftp.sun.ac.za/ftp/debian +ftp://ftp.sunet.se/pub/os/Linux/distributions/debian +http://ftp.surfnet.nl/os/Linux/distr/debian +ftp://ftp.surfnet.nl/pub/os/Linux/distr/debian +ftp://ftp.telepac.pt/pub/debian +http://ftp.thaios.net/debian +ftp://ftp.ticklers.org/debian +ftp://ftp.tiscali.de/pub/debian/debian +http://ftp.tiscali.nl/debian +ftp://ftp.tiscali.nl/pub/mirrors/debian +http://ftp.tr.debian.org/debian +ftp://ftp.tu-chemnitz.de/pub/linux/debian/debian +ftp://ftp.tu-clausthal.de/pub/linux/debian +ftp://ftp.tu-graz.ac.at/mirror/debian +http://ftp.tw.debian.org/debian +ftp://ftp.twaren.net/debian +ftp://ftp.u-picardie.fr/mirror/debian +ftp://ftp.u-strasbg.fr/debian +ftp://ftp.udc.es/debian +http://ftp.uk.debian.org/debian +ftp://ftp.um.es/mirror/debian +http://ftp.uni-bayreuth.de/linux/Debian/debian +ftp://ftp.uni-bayreuth.de/pub/linux/Debian/debian +ftp://ftp.uni-kl.de/debian +ftp://ftp.uni-koeln.de/debian +ftp://ftp.uni-sofia.bg/debian +ftp://ftp.unina.it/pub/linux/distributions/debian +ftp://ftp.univie.ac.at/systems/linux/debian/debian +http://ftp.us.debian.org/debian +ftp://ftp.uwa.edu.au/debian +ftp://ftp.uwsg.indiana.edu/linux/debian +ftp://ftp.vectranet.pl/debian +http://ftp.wa.au.debian.org/debian +ftp://ftp.yz.yamagata-u.ac.jp/debian +ftp://ftp.zcu.cz/mirrors/debian +http://ftp2.de.debian.org/debian +http://ftp2.fr.debian.org/debian +ftp://ftp3.nrc.ca/debian +ftp://ftp5.gwdg.de/pub/linux/debian/debian +ftp://gd.tuwien.ac.at/opsys/linux/debian +ftp://gladiator.real-time.com/linux/debian +ftp://gulus.usherbrooke.ca/debian +ftp://jane.uab.cat/debian +ftp://kebo.vlsm.org/debian +ftp://linorg.usp.br/debian +http://linux.iq.usp.br/debian +ftp://linux.org.by/debian +ftp://lug.mtu.edu/debian +ftp://mi.mirror.garr.it/mirrors/debian +ftp://mir1.ovh.net/debian +http://mir2.ovh.net/debian +ftp://mirror.aarnet.edu.au/debian +http://mirror.anl.gov/debian +ftp://mirror.anl.gov/pub/debian +ftp://mirror.cc.columbia.edu/pub/linux/debian/debian +ftp://mirror.cs.wisc.edu/pub/mirrors/linux/debian +ftp://mirror.datafast.net.au/debian +ftp://mirror.eftel.com/debian +ftp://mirror.inter.net.il/pub/debian +http://mirror.isoc.org.il/pub/debian +ftp://mirror.nttu.edu.tw/debian +http://mirror.nus.edu.sg/Debian +ftp://mirror.nus.edu.sg/pub/Debian +ftp://mirror.optus.net/debian +ftp://mirror.ox.ac.uk/debian +ftp://mirror.pacific.net.au/debian +http://mirror.peer1.net/debian +ftp://mirror.positive-internet.com/debian +ftp://mirror.scarlet-internet.nl/pub/debian +http://mirror.switch.ch/ftp/mirror/debian +ftp://mirror.switch.ch/mirror/debian +http://mirror.tucdemonic.org/debian +http://mirror.ynet.sk/debian +ftp://mirrors.geekbone.org/debian +ftp://mirrors.geeks.org/debian +ftp://mirrors.ircam.fr/pub/debian +ftp://mirrors.kernel.org/debian +http://mirrors.nfsi.pt/debian +ftp://mirrors.nfsi.pt/pub/debian +ftp://mirrors.telianet.dk/debian +http://mirrors.tummy.com/debian +http://mirrors.uol.com.br/pub/debian +ftp://mirrors.usc.edu/pub/linux/distributions/debian +http://mmc.igeofcu.unam.mx/debian +ftp://opensource.nchc.org.tw/debian +http://ring.asahi-net.or.jp/archives/linux/debian/debian +ftp://ring.asahi-net.or.jp/pub/linux/debian/debian +ftp://sb.itc.u-tokyo.ac.jp/DEBIAN +http://sft.if.usp.br/debian +http://sluglug.ucsc.edu/debian +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian +ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/debian +ftp://techweb.rfa.org/debian +ftp://the.earth.li/debian +ftp://ukdebian.mirror.anlx.net/debian +ftp://webb.ens-cachan.fr/debian +ftp://www.las.ic.unicamp.br/pub/debian +ftp://www.mirrorservice.org/sites/ftp.debian.org/debian +http://www.ring.gr.jp/archives/linux/debian/debian +ftp://www.ring.gr.jp/pub/linux/debian/debian +http://www.zentek-international.com/mirrors/debian diff --git a/src/lib/distro-info/debian-3.1/prereqfiles/etc/hosts b/src/lib/distro-info/debian-3.1/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/debian-3.1/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/debian-3.1/prereqfiles/var/cache/debconf/slx-defaults.dat b/src/lib/distro-info/debian-3.1/prereqfiles/var/cache/debconf/slx-defaults.dat new file mode 100644 index 00000000..c621a472 --- /dev/null +++ b/src/lib/distro-info/debian-3.1/prereqfiles/var/cache/debconf/slx-defaults.dat @@ -0,0 +1,16 @@ +Name: locales/default_environment_locale +Template: locales/default_environment_locale +Value: de_DE.UTF-8 +Owners: locales +Flags: seen +Variables: + locales = de_DE.UTF-8 + +Name: locales/locales_to_be_generated +Template: locales/locales_to_be_generated +Value: de_DE.UTF-8 UTF-8 +Owners: locales +Flags: seen +Variables: + locales = aa_DJ ISO-8859-1, aa_ER UTF-8, aa_ER@saaho UTF-8, aa_ET UTF-8, af_ZA ISO-8859-1, am_ET UTF-8, an_ES ISO-8859-15, ar_AE ISO-8859-6, ar_AE.UTF-8 UTF-8, ar_BH ISO-8859-6, ar_BH.UTF-8 UTF-8, ar_DZ ISO-8859-6, ar_DZ.UTF-8 UTF-8, ar_EG ISO-8859-6, ar_EG.UTF-8 UTF-8, ar_IN UTF-8, ar_IQ ISO-8859-6, ar_IQ.UTF-8 UTF-8, ar_JO ISO-8859-6, ar_JO.UTF-8 UTF-8, ar_KW ISO-8859-6, ar_KW.UTF-8 UTF-8, ar_LB ISO-8859-6, ar_LB.UTF-8 UTF-8, ar_LY ISO-8859-6, ar_LY.UTF-8 UTF-8, ar_MA ISO-8859-6, ar_MA.UTF-8 UTF-8, ar_OM ISO-8859-6, ar_OM.UTF-8 UTF-8, ar_QA ISO-8859-6, ar_QA.UTF-8 UTF-8, ar_SA ISO-8859-6, ar_SA.UTF-8 UTF-8, ar_SD ISO-8859-6, ar_SD.UTF-8 UTF-8, ar_SY ISO-8859-6, ar_SY.UTF-8 UTF-8, ar_TN ISO-8859-6, ar_TN.UTF-8 UTF-8, ar_YE ISO-8859-6, ar_YE.UTF-8 UTF-8, az_AZ.UTF-8 UTF-8, be_BY CP1251, be_BY.UTF-8 UTF-8, bg_BG CP1251, bg_BG.UTF-8 UTF-8, bn_BD UTF-8, bn_IN UTF-8, br_FR ISO-8859-1, br_FR@euro ISO-8859-15, bs_BA ISO-8859-2, byn_ER UTF-8, ca_ES ISO-8859-1, ca_ES.UTF-8 UTF-8, ca_ES.UTF-8@euro UTF-8, ca_ES@euro ISO-8859-15, cs_CZ ISO-8859-2, cs_CZ.UTF-8 UTF-8, cy_GB ISO-8859-14, cy_GB.UTF-8 UTF-8, da_DK ISO-8859-1, da_DK.ISO-8859-15 ISO-8859-15, da_DK.UTF-8 UTF-8, de_AT ISO-8859-1, de_AT.UTF-8 UTF-8, de_AT.UTF-8@euro UTF-8, de_AT@euro ISO-8859-15, de_BE ISO-8859-1, de_BE.UTF-8 UTF-8, de_BE.UTF-8@euro UTF-8, de_BE@euro ISO-8859-15, de_CH ISO-8859-1, de_CH.UTF-8 UTF-8, de_DE ISO-8859-1, de_DE.UTF-8 UTF-8, de_DE.UTF-8@euro UTF-8, de_DE@euro ISO-8859-15, de_LU ISO-8859-1, de_LU.UTF-8 UTF-8, de_LU.UTF-8@euro UTF-8, de_LU@euro ISO-8859-15, el_GR ISO-8859-7, el_GR.UTF-8 UTF-8, en_AU ISO-8859-1, en_AU.UTF-8 UTF-8, en_BW ISO-8859-1, en_BW.UTF-8 UTF-8, en_CA ISO-8859-1, en_CA.UTF-8 UTF-8, en_DK ISO-8859-1, en_DK.UTF-8 UTF-8, en_GB ISO-8859-1, en_GB.ISO-8859-15 ISO-8859-15, en_GB.UTF-8 UTF-8, en_HK ISO-8859-1, en_HK.UTF-8 UTF-8, en_IE ISO-8859-1, en_IE.UTF-8 UTF-8, en_IE.UTF-8@euro UTF-8, en_IE@euro ISO-8859-15, en_IN UTF-8, en_NZ ISO-8859-1, en_NZ.UTF-8 UTF-8, en_PH ISO-8859-1, en_PH.UTF-8 UTF-8, en_SG ISO-8859-1, en_SG.UTF-8 UTF-8, en_US ISO-8859-1, en_US.ISO-8859-15 ISO-8859-15, en_US.UTF-8 UTF-8, en_ZA ISO-8859-1, en_ZA.UTF-8 UTF-8, en_ZW ISO-8859-1, en_ZW.UTF-8 UTF-8, es_AR ISO-8859-1, es_AR.UTF-8 UTF-8, es_BO ISO-8859-1, es_BO.UTF-8 UTF-8, es_CL ISO-8859-1, es_CL.UTF-8 UTF-8, es_CO ISO-8859-1, es_CO.UTF-8 UTF-8, es_CR ISO-8859-1, es_CR.UTF-8 UTF-8, es_DO ISO-8859-1, es_DO.UTF-8 UTF-8, es_EC ISO-8859-1, es_EC.UTF-8 UTF-8, es_ES ISO-8859-1, es_ES.UTF-8 UTF-8, es_ES.UTF-8@euro UTF-8, es_ES@euro ISO-8859-15, es_GT ISO-8859-1, es_GT.UTF-8 UTF-8, es_HN ISO-8859-1, es_HN.UTF-8 UTF-8, es_MX ISO-8859-1, es_MX.UTF-8 UTF-8, es_NI ISO-8859-1, es_NI.UTF-8 UTF-8, es_PA ISO-8859-1, es_PA.UTF-8 UTF-8, es_PE ISO-8859-1, es_PE.UTF-8 UTF-8, es_PR ISO-8859-1, es_PR.UTF-8 UTF-8, es_PY ISO-8859-1, es_PY.UTF-8 UTF-8, es_SV ISO-8859-1, es_SV.UTF-8 UTF-8, es_US ISO-8859-1, es_US.UTF-8 UTF-8, es_UY ISO-8859-1, es_UY.UTF-8 UTF-8, es_VE ISO-8859-1, es_VE.UTF-8 UTF-8, et_EE ISO-8859-1, et_EE.ISO-8859-15 ISO-8859-15, et_EE.UTF-8 UTF-8, eu_ES ISO-8859-1, eu_ES.UTF-8 UTF-8, eu_ES.UTF-8@euro UTF-8, eu_ES@euro ISO-8859-15, eu_FR ISO-8859-1, eu_FR.UTF-8 UTF-8, eu_FR@euro ISO-8859-15, fa_IR UTF-8, fi_FI ISO-8859-1, fi_FI.UTF-8 UTF-8, fi_FI.UTF-8@euro UTF-8, fi_FI@euro ISO-8859-15, fo_FO ISO-8859-1, fo_FO.UTF-8 UTF-8, fr_BE ISO-8859-1, fr_BE.UTF-8 UTF-8, fr_BE.UTF-8@euro UTF-8, fr_BE@euro ISO-8859-15, fr_CA ISO-8859-1, fr_CA.UTF-8 UTF-8, fr_CH ISO-8859-1, fr_CH.UTF-8 UTF-8, fr_FR ISO-8859-1, fr_FR.UTF-8 UTF-8, fr_FR.UTF-8@euro UTF-8, fr_FR@euro ISO-8859-15, fr_LU ISO-8859-1, fr_LU.UTF-8 UTF-8, fr_LU.UTF-8@euro UTF-8, fr_LU@euro ISO-8859-15, ga_IE ISO-8859-1, ga_IE.UTF-8 UTF-8, ga_IE.UTF-8@euro UTF-8, ga_IE@euro ISO-8859-15, gd_GB ISO-8859-15, gez_ER UTF-8, gez_ER@abegede UTF-8, gez_ET UTF-8, gez_ET@abegede UTF-8, gl_ES ISO-8859-1, gl_ES.UTF-8 UTF-8, gl_ES.UTF-8@euro UTF-8, gl_ES@euro ISO-8859-15, gu_IN UTF-8, gv_GB ISO-8859-1, gv_GB.UTF-8 UTF-8, he_IL ISO-8859-8, he_IL.UTF-8 UTF-8, hi_IN UTF-8, hr_HR ISO-8859-2, hr_HR.UTF-8 UTF-8, hu_HU ISO-8859-2, hu_HU.UTF-8 UTF-8, id_ID ISO-8859-1, id_ID.UTF-8 UTF-8, is_IS ISO-8859-1, is_IS.UTF-8 UTF-8, it_CH ISO-8859-1, it_CH.UTF-8 UTF-8, it_IT ISO-8859-1, it_IT.UTF-8 UTF-8, it_IT.UTF-8@euro UTF-8, it_IT@euro ISO-8859-15, iw_IL ISO-8859-8, iw_IL.UTF-8 UTF-8, ja_JP.EUC-JP EUC-JP, ja_JP.UTF-8 UTF-8, ka_GE GEORGIAN-PS, kl_GL ISO-8859-1, kl_GL.UTF-8 UTF-8, kn_IN UTF-8, ko_KR.EUC-KR EUC-KR, ko_KR.UTF-8 UTF-8, kw_GB ISO-8859-1, kw_GB.UTF-8 UTF-8, lg_UG ISO-8859-10, lo_LA UTF-8, lt_LT ISO-8859-13, lt_LT.UTF-8 UTF-8, lv_LV ISO-8859-13, lv_LV.UTF-8 UTF-8, mi_NZ ISO-8859-13, mk_MK ISO-8859-5, mk_MK.UTF-8 UTF-8, ml_IN UTF-8, mn_MN UTF-8, mr_IN UTF-8, ms_MY ISO-8859-1, ms_MY.UTF-8 UTF-8, mt_MT ISO-8859-3, mt_MT.UTF-8 UTF-8, nb_NO ISO-8859-1, nb_NO.UTF-8 UTF-8, ne_NP UTF-8, nl_BE ISO-8859-1, nl_BE.UTF-8 UTF-8, nl_BE.UTF-8@euro UTF-8, nl_BE@euro ISO-8859-15, nl_NL ISO-8859-1, nl_NL.UTF-8 UTF-8, nl_NL.UTF-8@euro UTF-8, nl_NL@euro ISO-8859-15, nn_NO ISO-8859-1, nn_NO.UTF-8 UTF-8, no_NO ISO-8859-1, no_NO.UTF-8 UTF-8, oc_FR ISO-8859-1, om_ET UTF-8, om_KE ISO-8859-1, pa_IN UTF-8, pl_PL ISO-8859-2, pl_PL.UTF-8 UTF-8, pt_BR ISO-8859-1, pt_BR.UTF-8 UTF-8, pt_PT ISO-8859-1, pt_PT.UTF-8 UTF-8, pt_PT.UTF-8@euro UTF-8, pt_PT@euro ISO-8859-15, ro_RO ISO-8859-2, ro_RO.UTF-8 UTF-8, ru_RU ISO-8859-5, ru_RU.KOI8-R KOI8-R, ru_RU.UTF-8 UTF-8, ru_UA KOI8-U, ru_UA.UTF-8 UTF-8, se_NO UTF-8, sid_ET UTF-8, sk_SK ISO-8859-2, sk_SK.UTF-8 UTF-8, sl_SI ISO-8859-2, sl_SI.UTF-8 UTF-8, so_DJ ISO-8859-1, so_ET UTF-8, so_KE ISO-8859-1, so_SO ISO-8859-1, sq_AL ISO-8859-1, sq_AL.UTF-8 UTF-8, sr_YU ISO-8859-2, sr_YU.UTF-8 UTF-8, sr_YU.UTF-8@cyrillic UTF-8, sr_YU@cyrillic ISO-8859-5, st_ZA ISO-8859-1, st_ZA.UTF-8 UTF-8, sv_FI ISO-8859-1, sv_FI.UTF-8 UTF-8, sv_FI.UTF-8@euro UTF-8, sv_FI@euro ISO-8859-15, sv_SE ISO-8859-1, sv_SE.ISO-8859-15 ISO-8859-15, sv_SE.UTF-8 UTF-8, ta_IN UTF-8, te_IN UTF-8, tg_TJ KOI8-T, th_TH TIS-620, th_TH.UTF-8 UTF-8, ti_ER UTF-8, ti_ET UTF-8, tig_ER UTF-8, tl_PH ISO-8859-1, tr_TR ISO-8859-9, tr_TR.UTF-8 UTF-8, tt_RU.UTF-8 UTF-8, uk_UA KOI8-U, uk_UA.UTF-8 UTF-8, ur_PK UTF-8, uz_UZ ISO-8859-1, uz_UZ@cyrillic UTF-8, vi_VN UTF-8, vi_VN.TCVN TCVN5712-1, wa_BE ISO-8859-1, wa_BE.UTF-8 UTF-8, wa_BE@euro ISO-8859-15, xh_ZA ISO-8859-1, xh_ZA.UTF-8 UTF-8, yi_US CP1255, zh_CN GB2312, zh_CN.GB18030 GB18030, zh_CN.GBK GBK, zh_CN.UTF-8 UTF-8, zh_HK BIG5-HKSCS, zh_HK.UTF-8 UTF-8, zh_SG GB2312, zh_SG.GBK GBK, zh_TW BIG5, zh_TW.EUC-TW EUC-TW, zh_TW.UTF-8 UTF-8, zu_ZA ISO-8859-1, zu_ZA.UTF-8 UTF-8 + diff --git a/src/lib/distro-info/debian-3.1/settings.default b/src/lib/distro-info/debian-3.1/settings.default new file mode 100644 index 00000000..50b12768 --- /dev/null +++ b/src/lib/distro-info/debian-3.1/settings.default @@ -0,0 +1,41 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_0.3.3.2_all.deb +release-name = sarge + + components = main + distribution = sarge + name = Debian 3.1 + repo-subdir = dists + file-for-speedtest = dists/sarge/main/binary-i386/Packages.gz + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + + + base = minimal + packages = < diff --git a/src/lib/distro-info/debian-3.1/settings.example b/src/lib/distro-info/debian-3.1/settings.example new file mode 100644 index 00000000..ac54855d --- /dev/null +++ b/src/lib/distro-info/debian-3.1/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/debian +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/debian-4.0/mirrors/base b/src/lib/distro-info/debian-4.0/mirrors/base new file mode 100644 index 00000000..7d6aaa9e --- /dev/null +++ b/src/lib/distro-info/debian-4.0/mirrors/base @@ -0,0 +1,287 @@ +ftp://ameba.sc-uni.ktu.lt/debian +ftp://artfiles.org/debian +ftp://bigmirror.crossbowproject.net/pub/debian +ftp://carroll.aset.psu.edu/pub/linux/distributions/debian +http://cdn.debian.or.jp/debian +ftp://cudlug.cudenver.edu/debian +ftp://debian.balt.net/debian +ftp://debian.bsnet.se/debian +ftp://debian.cict.fr/debian +ftp://debian.cites.uiuc.edu/pub/debian +ftp://debian.cn99.com/debian +http://debian.co.il/debian +ftp://debian.cruisix.net/debian +http://debian.csg.uzh.ch/debian +ftp://debian.csie.nctu.edu.tw/debian +http://debian.csie.ntu.edu.tw/debian +ftp://debian.csie.ntu.edu.tw/pub/debian +ftp://debian.ens-cachan.fr/debian +http://debian.ens-cachan.fr/ftp/debian +http://debian.eso-es.net/debian +ftp://debian.essentkabel.com/debian +ftp://debian.fastbull.org/debian +ftp://debian.fastweb.it/debian +http://debian.fifi.org/debian +ftp://debian.fifi.org/pub/debian +ftp://debian.ibisc.univ-evry.fr/debian +ftp://debian.ihug.co.nz/debian +http://debian.indika.net.id/debian +ftp://debian.inode.at/debian +http://debian.intergenia.de/debian +ftp://debian.internet.gr/debian +ftp://debian.iskon.hr/debian +ftp://debian.lcs.mit.edu/debian +http://debian.logiclinux.com/debian +ftp://debian.ludost.net/debian +http://debian.midco.net/debian +ftp://debian.mines.inpl-nancy.fr/debian +ftp://debian.mirror.ac.za/debian +ftp://debian.mirror.frontiernet.net/debian +ftp://debian.mirror.inra.fr/debian +ftp://debian.mirror.iweb.ca/debian +ftp://debian.mirror.rafal.ca/debian +ftp://debian.mirrors.crysys.hu/debian +ftp://debian.mirrors.easynet.fr/debian +ftp://debian.mirrors.tds.net/debian +ftp://debian.nctu.edu.tw/debian +ftp://debian.netcologne.de/debian +http://debian.osdn.org.ua/debian +ftp://debian.osdn.org.ua/pub/Debian/debian +ftp://debian.osuosl.org/debian +http://debian.otenet.gr/debian +ftp://debian.otenet.gr/pub/linux/debian +http://debian.pffa.de/mirrors/debian +ftp://debian.pffa.de/pub/mirrors/debian +http://debian.pop-sc.rnp.br/debian +ftp://debian.savoirfairelinux.net/debian +ftp://debian.secsup.org/pub/linux/debian +ftp://debian.sh.cvut.cz/debian +http://debian.shimpinomori.net/debian +ftp://debian.swordcoast.net/debian +ftp://debian.telecoms.bg/debian +ftp://debian.torredehanoi.org/debian +ftp://debian.tu-bs.de/debian +ftp://debian.ua.pt/debian +http://debian.ubiobio.cl/debian +ftp://debian.uchicago.edu/debian +ftp://debian.udsu.ru/debian +http://debian.unesr.edu.ve/debian +http://debian.uni-c.dk/debian +ftp://debian.uni-essen.de/debian +http://debian.uni.edu.ni/debian +ftp://debian.wow-vision.com.sg/debian +http://debian.yorku.ca/debian +ftp://dennou-k.gfd-dennou.org/library/Linux/debian +ftp://dennou-q.gfd-dennou.org/library/Linux/debian +ftp://distro.ibiblio.org/pub/linux/distributions/debian +ftp://download.mirror.ac.uk/sites/ftp.debian.org/debian +http://freedom.dicea.unifi.it/ftp/pub/linux/debian +ftp://freedom.dicea.unifi.it/pub/linux/debian +ftp://ftp-stud.fht-esslingen.de/debian +ftp://ftp.arnes.si/packages/debian +http://ftp.at.debian.org/debian +http://ftp.au.debian.org/debian +ftp://ftp.belnet.be/debian +http://ftp.bg.debian.org/debian +ftp://ftp.bme.hu/OS/Linux/dist/debian +ftp://ftp.bononia.it/debian +http://ftp.br.debian.org/debian +ftp://ftp.caliu.info/debian +ftp://ftp.carnet.hr/debian +ftp://ftp.cc.uoc.gr/mirrors/linux/debian +ftp://ftp.ccc.uba.ar/pub/linux/debian/debian +http://ftp.ch.debian.org/debian +ftp://ftp.cica.es/debian +http://ftp.cl.debian.org/debian +ftp://ftp.coe.psu.ac.th/debian +ftp://ftp.corbina.ru/pub/Linux/debian +ftp://ftp.crihan.fr/debian +ftp://ftp.cs.unm.edu/mirrors/debian +http://ftp.cz.debian.org/debian +http://ftp.de.debian.org/debian +ftp://ftp.debian.ikoula.com/debian +ftp://ftp.debian.nl/debian +ftp://ftp.debian.org/debian +ftp://ftp.debian.sk/debian +ftp://ftp.debian.skynet.be/debian +http://ftp.debian.skynet.be/ftp/debian +http://ftp.dk.debian.org/debian +http://ftp.dkuug.dk/debian +ftp://ftp.dkuug.dk/pub/debian +ftp://ftp.dti.ad.jp/pub/Linux/debian +ftp://ftp.duth.gr/debian +ftp://ftp.easynet.be/debian +http://ftp.easynet.be/ftp/debian +http://ftp.ee.debian.org/debian +ftp://ftp.egr.msu.edu/debian +ftp://ftp.eq.uc.pt/pub/software/Linux/debian +http://ftp.eq.uc.pt/software/Linux/debian +http://ftp.es.debian.org/debian +ftp://ftp.esat.net/pub/linux/debian +ftp://ftp.eutelia.it/pub/Debian_Mirror +http://ftp.fi.debian.org/debian +http://ftp.fr.debian.org/debian +http://ftp.freenet.de/debian +ftp://ftp.freenet.de/pub/ftp.debian.org/debian +ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian +ftp://ftp.funet.fi/pub/linux/mirrors/debian +ftp://ftp.grokthis.net/mirrors/debian +http://ftp.gtlib.gatech.edu/debian +ftp://ftp.gtlib.gatech.edu/pub/debian +ftp://ftp.gul.uc3m.es/debian +http://ftp.gva.es/mirror/debian +http://ftp.hk.debian.org/debian +ftp://ftp.hosteurope.de/pub/linux/debian +http://ftp.hr.debian.org/debian +http://ftp.hu.debian.org/debian +ftp://ftp.icm.edu.pl/pub/Linux/debian +http://ftp.ie.debian.org/debian +ftp://ftp.iinet.net.au/debian/debian +ftp://ftp.iitm.ac.in/debian +ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.de.debian.org/debian +ftp://ftp.irb.hr/debian +http://ftp.is.debian.org/debian +http://ftp.it.debian.org/debian +ftp://ftp.iut-bm.univ-fcomte.fr/debian +ftp://ftp.jaist.ac.jp/pub/Linux/Debian +http://ftp.jp.debian.org/debian +ftp://ftp.jyu.fi/debian +ftp://ftp.keystealth.org/debian +http://ftp.kr.debian.org/debian +ftp://ftp.kulnet.kuleuven.ac.be/debian +ftp://ftp.linux.pt/pub/mirrors/debian +ftp://ftp.lip6.fr/pub/linux/distributions/debian +ftp://ftp.lug.ro/debian +ftp://ftp.man.szczecin.pl/pub/Linux/debian +ftp://ftp.mgts.by/debian +ftp://ftp.mikesnet.ro/debian +ftp://ftp.mipt.ru/debian +ftp://ftp.monash.edu.au/pub/linux/debian +ftp://ftp.mpi-sb.mpg.de/pub/linux/distributions/debian/debian +http://ftp.mx.debian.org/debian +ftp://ftp.ndlug.nd.edu/debian +http://ftp.ndlug.nd.edu/mirrors/debian +ftp://ftp.nerim.net/debian +http://ftp.nl.debian.org/debian +ftp://ftp.nluug.nl/pub/os/Linux/distr/debian +http://ftp.no.debian.org/debian +ftp://ftp.ntua.gr/pub/linux/debian +http://ftp.nz.debian.org/debian +http://ftp.pl.debian.org/debian +ftp://ftp.port80.se/debian +ftp://ftp.psn.ru/debian +http://ftp.pt.debian.org/debian +ftp://ftp.pucpr.br/debian +ftp://ftp.rediris.es/debian +ftp://ftp.riken.jp/pub/Linux/debian/debian +http://ftp.ro.debian.org/debian +ftp://ftp.rrzn.uni-hannover.de/debian/debian +http://ftp.ru.debian.org/debian +ftp://ftp.scarlet.be/pub/debian +http://ftp.se.debian.org/debian +http://ftp.si.debian.org/debian +http://ftp.sk.debian.org/debian +http://ftp.softnet.tuc.gr/ftp/linux/debian +ftp://ftp.stw-bonn.de/debian +ftp://ftp.sun.ac.za/debian +http://ftp.sun.ac.za/ftp/debian +ftp://ftp.sunet.se/pub/os/Linux/distributions/debian +http://ftp.surfnet.nl/os/Linux/distr/debian +ftp://ftp.surfnet.nl/pub/os/Linux/distr/debian +ftp://ftp.telepac.pt/pub/debian +http://ftp.thaios.net/debian +ftp://ftp.ticklers.org/debian +ftp://ftp.tiscali.de/pub/debian/debian +http://ftp.tiscali.nl/debian +ftp://ftp.tiscali.nl/pub/mirrors/debian +http://ftp.tr.debian.org/debian +ftp://ftp.tu-chemnitz.de/pub/linux/debian/debian +ftp://ftp.tu-clausthal.de/pub/linux/debian +ftp://ftp.tu-graz.ac.at/mirror/debian +http://ftp.tw.debian.org/debian +ftp://ftp.twaren.net/debian +ftp://ftp.u-picardie.fr/mirror/debian +ftp://ftp.u-strasbg.fr/debian +ftp://ftp.udc.es/debian +http://ftp.uk.debian.org/debian +ftp://ftp.um.es/mirror/debian +http://ftp.uni-bayreuth.de/linux/Debian/debian +ftp://ftp.uni-bayreuth.de/pub/linux/Debian/debian +ftp://ftp.uni-kl.de/debian +ftp://ftp.uni-koeln.de/debian +ftp://ftp.uni-sofia.bg/debian +ftp://ftp.unina.it/pub/linux/distributions/debian +ftp://ftp.univie.ac.at/systems/linux/debian/debian +http://ftp.us.debian.org/debian +ftp://ftp.uwa.edu.au/debian +ftp://ftp.uwsg.indiana.edu/linux/debian +ftp://ftp.vectranet.pl/debian +http://ftp.wa.au.debian.org/debian +ftp://ftp.yz.yamagata-u.ac.jp/debian +ftp://ftp.zcu.cz/mirrors/debian +http://ftp2.de.debian.org/debian +http://ftp2.fr.debian.org/debian +ftp://ftp3.nrc.ca/debian +ftp://ftp5.gwdg.de/pub/linux/debian/debian +ftp://gd.tuwien.ac.at/opsys/linux/debian +ftp://gladiator.real-time.com/linux/debian +ftp://gulus.usherbrooke.ca/debian +ftp://jane.uab.cat/debian +ftp://kebo.vlsm.org/debian +ftp://linorg.usp.br/debian +http://linux.iq.usp.br/debian +ftp://linux.org.by/debian +ftp://lug.mtu.edu/debian +ftp://mi.mirror.garr.it/mirrors/debian +ftp://mir1.ovh.net/debian +http://mir2.ovh.net/debian +ftp://mirror.aarnet.edu.au/debian +http://mirror.anl.gov/debian +ftp://mirror.anl.gov/pub/debian +ftp://mirror.cc.columbia.edu/pub/linux/debian/debian +ftp://mirror.cs.wisc.edu/pub/mirrors/linux/debian +ftp://mirror.datafast.net.au/debian +ftp://mirror.eftel.com/debian +ftp://mirror.inter.net.il/pub/debian +http://mirror.isoc.org.il/pub/debian +ftp://mirror.nttu.edu.tw/debian +http://mirror.nus.edu.sg/Debian +ftp://mirror.nus.edu.sg/pub/Debian +ftp://mirror.optus.net/debian +ftp://mirror.ox.ac.uk/debian +ftp://mirror.pacific.net.au/debian +http://mirror.peer1.net/debian +ftp://mirror.positive-internet.com/debian +ftp://mirror.scarlet-internet.nl/pub/debian +http://mirror.switch.ch/ftp/mirror/debian +ftp://mirror.switch.ch/mirror/debian +http://mirror.tucdemonic.org/debian +http://mirror.ynet.sk/debian +ftp://mirrors.geekbone.org/debian +ftp://mirrors.geeks.org/debian +ftp://mirrors.ircam.fr/pub/debian +ftp://mirrors.kernel.org/debian +http://mirrors.nfsi.pt/debian +ftp://mirrors.nfsi.pt/pub/debian +ftp://mirrors.telianet.dk/debian +http://mirrors.tummy.com/debian +http://mirrors.uol.com.br/pub/debian +ftp://mirrors.usc.edu/pub/linux/distributions/debian +http://mmc.igeofcu.unam.mx/debian +ftp://opensource.nchc.org.tw/debian +http://ring.asahi-net.or.jp/archives/linux/debian/debian +ftp://ring.asahi-net.or.jp/pub/linux/debian/debian +ftp://sb.itc.u-tokyo.ac.jp/DEBIAN +http://sft.if.usp.br/debian +http://sluglug.ucsc.edu/debian +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian +ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/debian +ftp://techweb.rfa.org/debian +ftp://the.earth.li/debian +ftp://ukdebian.mirror.anlx.net/debian +ftp://webb.ens-cachan.fr/debian +ftp://www.las.ic.unicamp.br/pub/debian +ftp://www.mirrorservice.org/sites/ftp.debian.org/debian +http://www.ring.gr.jp/archives/linux/debian/debian +ftp://www.ring.gr.jp/pub/linux/debian/debian +http://www.zentek-international.com/mirrors/debian diff --git a/src/lib/distro-info/debian-4.0/prereqfiles/etc/hosts b/src/lib/distro-info/debian-4.0/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/debian-4.0/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/debian-4.0/settings.default b/src/lib/distro-info/debian-4.0/settings.default new file mode 100644 index 00000000..075754e3 --- /dev/null +++ b/src/lib/distro-info/debian-4.0/settings.default @@ -0,0 +1,32 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb +release-name = etch + + components = main + distribution = etch + name = Debian 4.0 + repo-subdir = dists + file-for-speedtest = dists/etch/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/debian-4.0/settings.example b/src/lib/distro-info/debian-4.0/settings.example new file mode 100644 index 00000000..ac54855d --- /dev/null +++ b/src/lib/distro-info/debian-4.0/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/debian +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/debian-4.0_amd64/mirrors/base b/src/lib/distro-info/debian-4.0_amd64/mirrors/base new file mode 100644 index 00000000..7d6aaa9e --- /dev/null +++ b/src/lib/distro-info/debian-4.0_amd64/mirrors/base @@ -0,0 +1,287 @@ +ftp://ameba.sc-uni.ktu.lt/debian +ftp://artfiles.org/debian +ftp://bigmirror.crossbowproject.net/pub/debian +ftp://carroll.aset.psu.edu/pub/linux/distributions/debian +http://cdn.debian.or.jp/debian +ftp://cudlug.cudenver.edu/debian +ftp://debian.balt.net/debian +ftp://debian.bsnet.se/debian +ftp://debian.cict.fr/debian +ftp://debian.cites.uiuc.edu/pub/debian +ftp://debian.cn99.com/debian +http://debian.co.il/debian +ftp://debian.cruisix.net/debian +http://debian.csg.uzh.ch/debian +ftp://debian.csie.nctu.edu.tw/debian +http://debian.csie.ntu.edu.tw/debian +ftp://debian.csie.ntu.edu.tw/pub/debian +ftp://debian.ens-cachan.fr/debian +http://debian.ens-cachan.fr/ftp/debian +http://debian.eso-es.net/debian +ftp://debian.essentkabel.com/debian +ftp://debian.fastbull.org/debian +ftp://debian.fastweb.it/debian +http://debian.fifi.org/debian +ftp://debian.fifi.org/pub/debian +ftp://debian.ibisc.univ-evry.fr/debian +ftp://debian.ihug.co.nz/debian +http://debian.indika.net.id/debian +ftp://debian.inode.at/debian +http://debian.intergenia.de/debian +ftp://debian.internet.gr/debian +ftp://debian.iskon.hr/debian +ftp://debian.lcs.mit.edu/debian +http://debian.logiclinux.com/debian +ftp://debian.ludost.net/debian +http://debian.midco.net/debian +ftp://debian.mines.inpl-nancy.fr/debian +ftp://debian.mirror.ac.za/debian +ftp://debian.mirror.frontiernet.net/debian +ftp://debian.mirror.inra.fr/debian +ftp://debian.mirror.iweb.ca/debian +ftp://debian.mirror.rafal.ca/debian +ftp://debian.mirrors.crysys.hu/debian +ftp://debian.mirrors.easynet.fr/debian +ftp://debian.mirrors.tds.net/debian +ftp://debian.nctu.edu.tw/debian +ftp://debian.netcologne.de/debian +http://debian.osdn.org.ua/debian +ftp://debian.osdn.org.ua/pub/Debian/debian +ftp://debian.osuosl.org/debian +http://debian.otenet.gr/debian +ftp://debian.otenet.gr/pub/linux/debian +http://debian.pffa.de/mirrors/debian +ftp://debian.pffa.de/pub/mirrors/debian +http://debian.pop-sc.rnp.br/debian +ftp://debian.savoirfairelinux.net/debian +ftp://debian.secsup.org/pub/linux/debian +ftp://debian.sh.cvut.cz/debian +http://debian.shimpinomori.net/debian +ftp://debian.swordcoast.net/debian +ftp://debian.telecoms.bg/debian +ftp://debian.torredehanoi.org/debian +ftp://debian.tu-bs.de/debian +ftp://debian.ua.pt/debian +http://debian.ubiobio.cl/debian +ftp://debian.uchicago.edu/debian +ftp://debian.udsu.ru/debian +http://debian.unesr.edu.ve/debian +http://debian.uni-c.dk/debian +ftp://debian.uni-essen.de/debian +http://debian.uni.edu.ni/debian +ftp://debian.wow-vision.com.sg/debian +http://debian.yorku.ca/debian +ftp://dennou-k.gfd-dennou.org/library/Linux/debian +ftp://dennou-q.gfd-dennou.org/library/Linux/debian +ftp://distro.ibiblio.org/pub/linux/distributions/debian +ftp://download.mirror.ac.uk/sites/ftp.debian.org/debian +http://freedom.dicea.unifi.it/ftp/pub/linux/debian +ftp://freedom.dicea.unifi.it/pub/linux/debian +ftp://ftp-stud.fht-esslingen.de/debian +ftp://ftp.arnes.si/packages/debian +http://ftp.at.debian.org/debian +http://ftp.au.debian.org/debian +ftp://ftp.belnet.be/debian +http://ftp.bg.debian.org/debian +ftp://ftp.bme.hu/OS/Linux/dist/debian +ftp://ftp.bononia.it/debian +http://ftp.br.debian.org/debian +ftp://ftp.caliu.info/debian +ftp://ftp.carnet.hr/debian +ftp://ftp.cc.uoc.gr/mirrors/linux/debian +ftp://ftp.ccc.uba.ar/pub/linux/debian/debian +http://ftp.ch.debian.org/debian +ftp://ftp.cica.es/debian +http://ftp.cl.debian.org/debian +ftp://ftp.coe.psu.ac.th/debian +ftp://ftp.corbina.ru/pub/Linux/debian +ftp://ftp.crihan.fr/debian +ftp://ftp.cs.unm.edu/mirrors/debian +http://ftp.cz.debian.org/debian +http://ftp.de.debian.org/debian +ftp://ftp.debian.ikoula.com/debian +ftp://ftp.debian.nl/debian +ftp://ftp.debian.org/debian +ftp://ftp.debian.sk/debian +ftp://ftp.debian.skynet.be/debian +http://ftp.debian.skynet.be/ftp/debian +http://ftp.dk.debian.org/debian +http://ftp.dkuug.dk/debian +ftp://ftp.dkuug.dk/pub/debian +ftp://ftp.dti.ad.jp/pub/Linux/debian +ftp://ftp.duth.gr/debian +ftp://ftp.easynet.be/debian +http://ftp.easynet.be/ftp/debian +http://ftp.ee.debian.org/debian +ftp://ftp.egr.msu.edu/debian +ftp://ftp.eq.uc.pt/pub/software/Linux/debian +http://ftp.eq.uc.pt/software/Linux/debian +http://ftp.es.debian.org/debian +ftp://ftp.esat.net/pub/linux/debian +ftp://ftp.eutelia.it/pub/Debian_Mirror +http://ftp.fi.debian.org/debian +http://ftp.fr.debian.org/debian +http://ftp.freenet.de/debian +ftp://ftp.freenet.de/pub/ftp.debian.org/debian +ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian +ftp://ftp.funet.fi/pub/linux/mirrors/debian +ftp://ftp.grokthis.net/mirrors/debian +http://ftp.gtlib.gatech.edu/debian +ftp://ftp.gtlib.gatech.edu/pub/debian +ftp://ftp.gul.uc3m.es/debian +http://ftp.gva.es/mirror/debian +http://ftp.hk.debian.org/debian +ftp://ftp.hosteurope.de/pub/linux/debian +http://ftp.hr.debian.org/debian +http://ftp.hu.debian.org/debian +ftp://ftp.icm.edu.pl/pub/Linux/debian +http://ftp.ie.debian.org/debian +ftp://ftp.iinet.net.au/debian/debian +ftp://ftp.iitm.ac.in/debian +ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.de.debian.org/debian +ftp://ftp.irb.hr/debian +http://ftp.is.debian.org/debian +http://ftp.it.debian.org/debian +ftp://ftp.iut-bm.univ-fcomte.fr/debian +ftp://ftp.jaist.ac.jp/pub/Linux/Debian +http://ftp.jp.debian.org/debian +ftp://ftp.jyu.fi/debian +ftp://ftp.keystealth.org/debian +http://ftp.kr.debian.org/debian +ftp://ftp.kulnet.kuleuven.ac.be/debian +ftp://ftp.linux.pt/pub/mirrors/debian +ftp://ftp.lip6.fr/pub/linux/distributions/debian +ftp://ftp.lug.ro/debian +ftp://ftp.man.szczecin.pl/pub/Linux/debian +ftp://ftp.mgts.by/debian +ftp://ftp.mikesnet.ro/debian +ftp://ftp.mipt.ru/debian +ftp://ftp.monash.edu.au/pub/linux/debian +ftp://ftp.mpi-sb.mpg.de/pub/linux/distributions/debian/debian +http://ftp.mx.debian.org/debian +ftp://ftp.ndlug.nd.edu/debian +http://ftp.ndlug.nd.edu/mirrors/debian +ftp://ftp.nerim.net/debian +http://ftp.nl.debian.org/debian +ftp://ftp.nluug.nl/pub/os/Linux/distr/debian +http://ftp.no.debian.org/debian +ftp://ftp.ntua.gr/pub/linux/debian +http://ftp.nz.debian.org/debian +http://ftp.pl.debian.org/debian +ftp://ftp.port80.se/debian +ftp://ftp.psn.ru/debian +http://ftp.pt.debian.org/debian +ftp://ftp.pucpr.br/debian +ftp://ftp.rediris.es/debian +ftp://ftp.riken.jp/pub/Linux/debian/debian +http://ftp.ro.debian.org/debian +ftp://ftp.rrzn.uni-hannover.de/debian/debian +http://ftp.ru.debian.org/debian +ftp://ftp.scarlet.be/pub/debian +http://ftp.se.debian.org/debian +http://ftp.si.debian.org/debian +http://ftp.sk.debian.org/debian +http://ftp.softnet.tuc.gr/ftp/linux/debian +ftp://ftp.stw-bonn.de/debian +ftp://ftp.sun.ac.za/debian +http://ftp.sun.ac.za/ftp/debian +ftp://ftp.sunet.se/pub/os/Linux/distributions/debian +http://ftp.surfnet.nl/os/Linux/distr/debian +ftp://ftp.surfnet.nl/pub/os/Linux/distr/debian +ftp://ftp.telepac.pt/pub/debian +http://ftp.thaios.net/debian +ftp://ftp.ticklers.org/debian +ftp://ftp.tiscali.de/pub/debian/debian +http://ftp.tiscali.nl/debian +ftp://ftp.tiscali.nl/pub/mirrors/debian +http://ftp.tr.debian.org/debian +ftp://ftp.tu-chemnitz.de/pub/linux/debian/debian +ftp://ftp.tu-clausthal.de/pub/linux/debian +ftp://ftp.tu-graz.ac.at/mirror/debian +http://ftp.tw.debian.org/debian +ftp://ftp.twaren.net/debian +ftp://ftp.u-picardie.fr/mirror/debian +ftp://ftp.u-strasbg.fr/debian +ftp://ftp.udc.es/debian +http://ftp.uk.debian.org/debian +ftp://ftp.um.es/mirror/debian +http://ftp.uni-bayreuth.de/linux/Debian/debian +ftp://ftp.uni-bayreuth.de/pub/linux/Debian/debian +ftp://ftp.uni-kl.de/debian +ftp://ftp.uni-koeln.de/debian +ftp://ftp.uni-sofia.bg/debian +ftp://ftp.unina.it/pub/linux/distributions/debian +ftp://ftp.univie.ac.at/systems/linux/debian/debian +http://ftp.us.debian.org/debian +ftp://ftp.uwa.edu.au/debian +ftp://ftp.uwsg.indiana.edu/linux/debian +ftp://ftp.vectranet.pl/debian +http://ftp.wa.au.debian.org/debian +ftp://ftp.yz.yamagata-u.ac.jp/debian +ftp://ftp.zcu.cz/mirrors/debian +http://ftp2.de.debian.org/debian +http://ftp2.fr.debian.org/debian +ftp://ftp3.nrc.ca/debian +ftp://ftp5.gwdg.de/pub/linux/debian/debian +ftp://gd.tuwien.ac.at/opsys/linux/debian +ftp://gladiator.real-time.com/linux/debian +ftp://gulus.usherbrooke.ca/debian +ftp://jane.uab.cat/debian +ftp://kebo.vlsm.org/debian +ftp://linorg.usp.br/debian +http://linux.iq.usp.br/debian +ftp://linux.org.by/debian +ftp://lug.mtu.edu/debian +ftp://mi.mirror.garr.it/mirrors/debian +ftp://mir1.ovh.net/debian +http://mir2.ovh.net/debian +ftp://mirror.aarnet.edu.au/debian +http://mirror.anl.gov/debian +ftp://mirror.anl.gov/pub/debian +ftp://mirror.cc.columbia.edu/pub/linux/debian/debian +ftp://mirror.cs.wisc.edu/pub/mirrors/linux/debian +ftp://mirror.datafast.net.au/debian +ftp://mirror.eftel.com/debian +ftp://mirror.inter.net.il/pub/debian +http://mirror.isoc.org.il/pub/debian +ftp://mirror.nttu.edu.tw/debian +http://mirror.nus.edu.sg/Debian +ftp://mirror.nus.edu.sg/pub/Debian +ftp://mirror.optus.net/debian +ftp://mirror.ox.ac.uk/debian +ftp://mirror.pacific.net.au/debian +http://mirror.peer1.net/debian +ftp://mirror.positive-internet.com/debian +ftp://mirror.scarlet-internet.nl/pub/debian +http://mirror.switch.ch/ftp/mirror/debian +ftp://mirror.switch.ch/mirror/debian +http://mirror.tucdemonic.org/debian +http://mirror.ynet.sk/debian +ftp://mirrors.geekbone.org/debian +ftp://mirrors.geeks.org/debian +ftp://mirrors.ircam.fr/pub/debian +ftp://mirrors.kernel.org/debian +http://mirrors.nfsi.pt/debian +ftp://mirrors.nfsi.pt/pub/debian +ftp://mirrors.telianet.dk/debian +http://mirrors.tummy.com/debian +http://mirrors.uol.com.br/pub/debian +ftp://mirrors.usc.edu/pub/linux/distributions/debian +http://mmc.igeofcu.unam.mx/debian +ftp://opensource.nchc.org.tw/debian +http://ring.asahi-net.or.jp/archives/linux/debian/debian +ftp://ring.asahi-net.or.jp/pub/linux/debian/debian +ftp://sb.itc.u-tokyo.ac.jp/DEBIAN +http://sft.if.usp.br/debian +http://sluglug.ucsc.edu/debian +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian +ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/debian +ftp://techweb.rfa.org/debian +ftp://the.earth.li/debian +ftp://ukdebian.mirror.anlx.net/debian +ftp://webb.ens-cachan.fr/debian +ftp://www.las.ic.unicamp.br/pub/debian +ftp://www.mirrorservice.org/sites/ftp.debian.org/debian +http://www.ring.gr.jp/archives/linux/debian/debian +ftp://www.ring.gr.jp/pub/linux/debian/debian +http://www.zentek-international.com/mirrors/debian diff --git a/src/lib/distro-info/debian-4.0_amd64/prereqfiles/etc/hosts b/src/lib/distro-info/debian-4.0_amd64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/debian-4.0_amd64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/debian-4.0_amd64/settings.default b/src/lib/distro-info/debian-4.0_amd64/settings.default new file mode 100644 index 00000000..22126f66 --- /dev/null +++ b/src/lib/distro-info/debian-4.0_amd64/settings.default @@ -0,0 +1,41 @@ +arch = amd64 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb +release-name = etch + + components = main + distribution = etch + name = Debian 4.0 + repo-subdir = dists + file-for-speedtest = dists/etch/main/binary-amd64/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + + + base = minimal + packages = < diff --git a/src/lib/distro-info/debian-4.0_amd64/settings.example b/src/lib/distro-info/debian-4.0_amd64/settings.example new file mode 100644 index 00000000..ac54855d --- /dev/null +++ b/src/lib/distro-info/debian-4.0_amd64/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/debian +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/debian-5.0/mirrors/base b/src/lib/distro-info/debian-5.0/mirrors/base new file mode 100644 index 00000000..7d6aaa9e --- /dev/null +++ b/src/lib/distro-info/debian-5.0/mirrors/base @@ -0,0 +1,287 @@ +ftp://ameba.sc-uni.ktu.lt/debian +ftp://artfiles.org/debian +ftp://bigmirror.crossbowproject.net/pub/debian +ftp://carroll.aset.psu.edu/pub/linux/distributions/debian +http://cdn.debian.or.jp/debian +ftp://cudlug.cudenver.edu/debian +ftp://debian.balt.net/debian +ftp://debian.bsnet.se/debian +ftp://debian.cict.fr/debian +ftp://debian.cites.uiuc.edu/pub/debian +ftp://debian.cn99.com/debian +http://debian.co.il/debian +ftp://debian.cruisix.net/debian +http://debian.csg.uzh.ch/debian +ftp://debian.csie.nctu.edu.tw/debian +http://debian.csie.ntu.edu.tw/debian +ftp://debian.csie.ntu.edu.tw/pub/debian +ftp://debian.ens-cachan.fr/debian +http://debian.ens-cachan.fr/ftp/debian +http://debian.eso-es.net/debian +ftp://debian.essentkabel.com/debian +ftp://debian.fastbull.org/debian +ftp://debian.fastweb.it/debian +http://debian.fifi.org/debian +ftp://debian.fifi.org/pub/debian +ftp://debian.ibisc.univ-evry.fr/debian +ftp://debian.ihug.co.nz/debian +http://debian.indika.net.id/debian +ftp://debian.inode.at/debian +http://debian.intergenia.de/debian +ftp://debian.internet.gr/debian +ftp://debian.iskon.hr/debian +ftp://debian.lcs.mit.edu/debian +http://debian.logiclinux.com/debian +ftp://debian.ludost.net/debian +http://debian.midco.net/debian +ftp://debian.mines.inpl-nancy.fr/debian +ftp://debian.mirror.ac.za/debian +ftp://debian.mirror.frontiernet.net/debian +ftp://debian.mirror.inra.fr/debian +ftp://debian.mirror.iweb.ca/debian +ftp://debian.mirror.rafal.ca/debian +ftp://debian.mirrors.crysys.hu/debian +ftp://debian.mirrors.easynet.fr/debian +ftp://debian.mirrors.tds.net/debian +ftp://debian.nctu.edu.tw/debian +ftp://debian.netcologne.de/debian +http://debian.osdn.org.ua/debian +ftp://debian.osdn.org.ua/pub/Debian/debian +ftp://debian.osuosl.org/debian +http://debian.otenet.gr/debian +ftp://debian.otenet.gr/pub/linux/debian +http://debian.pffa.de/mirrors/debian +ftp://debian.pffa.de/pub/mirrors/debian +http://debian.pop-sc.rnp.br/debian +ftp://debian.savoirfairelinux.net/debian +ftp://debian.secsup.org/pub/linux/debian +ftp://debian.sh.cvut.cz/debian +http://debian.shimpinomori.net/debian +ftp://debian.swordcoast.net/debian +ftp://debian.telecoms.bg/debian +ftp://debian.torredehanoi.org/debian +ftp://debian.tu-bs.de/debian +ftp://debian.ua.pt/debian +http://debian.ubiobio.cl/debian +ftp://debian.uchicago.edu/debian +ftp://debian.udsu.ru/debian +http://debian.unesr.edu.ve/debian +http://debian.uni-c.dk/debian +ftp://debian.uni-essen.de/debian +http://debian.uni.edu.ni/debian +ftp://debian.wow-vision.com.sg/debian +http://debian.yorku.ca/debian +ftp://dennou-k.gfd-dennou.org/library/Linux/debian +ftp://dennou-q.gfd-dennou.org/library/Linux/debian +ftp://distro.ibiblio.org/pub/linux/distributions/debian +ftp://download.mirror.ac.uk/sites/ftp.debian.org/debian +http://freedom.dicea.unifi.it/ftp/pub/linux/debian +ftp://freedom.dicea.unifi.it/pub/linux/debian +ftp://ftp-stud.fht-esslingen.de/debian +ftp://ftp.arnes.si/packages/debian +http://ftp.at.debian.org/debian +http://ftp.au.debian.org/debian +ftp://ftp.belnet.be/debian +http://ftp.bg.debian.org/debian +ftp://ftp.bme.hu/OS/Linux/dist/debian +ftp://ftp.bononia.it/debian +http://ftp.br.debian.org/debian +ftp://ftp.caliu.info/debian +ftp://ftp.carnet.hr/debian +ftp://ftp.cc.uoc.gr/mirrors/linux/debian +ftp://ftp.ccc.uba.ar/pub/linux/debian/debian +http://ftp.ch.debian.org/debian +ftp://ftp.cica.es/debian +http://ftp.cl.debian.org/debian +ftp://ftp.coe.psu.ac.th/debian +ftp://ftp.corbina.ru/pub/Linux/debian +ftp://ftp.crihan.fr/debian +ftp://ftp.cs.unm.edu/mirrors/debian +http://ftp.cz.debian.org/debian +http://ftp.de.debian.org/debian +ftp://ftp.debian.ikoula.com/debian +ftp://ftp.debian.nl/debian +ftp://ftp.debian.org/debian +ftp://ftp.debian.sk/debian +ftp://ftp.debian.skynet.be/debian +http://ftp.debian.skynet.be/ftp/debian +http://ftp.dk.debian.org/debian +http://ftp.dkuug.dk/debian +ftp://ftp.dkuug.dk/pub/debian +ftp://ftp.dti.ad.jp/pub/Linux/debian +ftp://ftp.duth.gr/debian +ftp://ftp.easynet.be/debian +http://ftp.easynet.be/ftp/debian +http://ftp.ee.debian.org/debian +ftp://ftp.egr.msu.edu/debian +ftp://ftp.eq.uc.pt/pub/software/Linux/debian +http://ftp.eq.uc.pt/software/Linux/debian +http://ftp.es.debian.org/debian +ftp://ftp.esat.net/pub/linux/debian +ftp://ftp.eutelia.it/pub/Debian_Mirror +http://ftp.fi.debian.org/debian +http://ftp.fr.debian.org/debian +http://ftp.freenet.de/debian +ftp://ftp.freenet.de/pub/ftp.debian.org/debian +ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian +ftp://ftp.funet.fi/pub/linux/mirrors/debian +ftp://ftp.grokthis.net/mirrors/debian +http://ftp.gtlib.gatech.edu/debian +ftp://ftp.gtlib.gatech.edu/pub/debian +ftp://ftp.gul.uc3m.es/debian +http://ftp.gva.es/mirror/debian +http://ftp.hk.debian.org/debian +ftp://ftp.hosteurope.de/pub/linux/debian +http://ftp.hr.debian.org/debian +http://ftp.hu.debian.org/debian +ftp://ftp.icm.edu.pl/pub/Linux/debian +http://ftp.ie.debian.org/debian +ftp://ftp.iinet.net.au/debian/debian +ftp://ftp.iitm.ac.in/debian +ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.de.debian.org/debian +ftp://ftp.irb.hr/debian +http://ftp.is.debian.org/debian +http://ftp.it.debian.org/debian +ftp://ftp.iut-bm.univ-fcomte.fr/debian +ftp://ftp.jaist.ac.jp/pub/Linux/Debian +http://ftp.jp.debian.org/debian +ftp://ftp.jyu.fi/debian +ftp://ftp.keystealth.org/debian +http://ftp.kr.debian.org/debian +ftp://ftp.kulnet.kuleuven.ac.be/debian +ftp://ftp.linux.pt/pub/mirrors/debian +ftp://ftp.lip6.fr/pub/linux/distributions/debian +ftp://ftp.lug.ro/debian +ftp://ftp.man.szczecin.pl/pub/Linux/debian +ftp://ftp.mgts.by/debian +ftp://ftp.mikesnet.ro/debian +ftp://ftp.mipt.ru/debian +ftp://ftp.monash.edu.au/pub/linux/debian +ftp://ftp.mpi-sb.mpg.de/pub/linux/distributions/debian/debian +http://ftp.mx.debian.org/debian +ftp://ftp.ndlug.nd.edu/debian +http://ftp.ndlug.nd.edu/mirrors/debian +ftp://ftp.nerim.net/debian +http://ftp.nl.debian.org/debian +ftp://ftp.nluug.nl/pub/os/Linux/distr/debian +http://ftp.no.debian.org/debian +ftp://ftp.ntua.gr/pub/linux/debian +http://ftp.nz.debian.org/debian +http://ftp.pl.debian.org/debian +ftp://ftp.port80.se/debian +ftp://ftp.psn.ru/debian +http://ftp.pt.debian.org/debian +ftp://ftp.pucpr.br/debian +ftp://ftp.rediris.es/debian +ftp://ftp.riken.jp/pub/Linux/debian/debian +http://ftp.ro.debian.org/debian +ftp://ftp.rrzn.uni-hannover.de/debian/debian +http://ftp.ru.debian.org/debian +ftp://ftp.scarlet.be/pub/debian +http://ftp.se.debian.org/debian +http://ftp.si.debian.org/debian +http://ftp.sk.debian.org/debian +http://ftp.softnet.tuc.gr/ftp/linux/debian +ftp://ftp.stw-bonn.de/debian +ftp://ftp.sun.ac.za/debian +http://ftp.sun.ac.za/ftp/debian +ftp://ftp.sunet.se/pub/os/Linux/distributions/debian +http://ftp.surfnet.nl/os/Linux/distr/debian +ftp://ftp.surfnet.nl/pub/os/Linux/distr/debian +ftp://ftp.telepac.pt/pub/debian +http://ftp.thaios.net/debian +ftp://ftp.ticklers.org/debian +ftp://ftp.tiscali.de/pub/debian/debian +http://ftp.tiscali.nl/debian +ftp://ftp.tiscali.nl/pub/mirrors/debian +http://ftp.tr.debian.org/debian +ftp://ftp.tu-chemnitz.de/pub/linux/debian/debian +ftp://ftp.tu-clausthal.de/pub/linux/debian +ftp://ftp.tu-graz.ac.at/mirror/debian +http://ftp.tw.debian.org/debian +ftp://ftp.twaren.net/debian +ftp://ftp.u-picardie.fr/mirror/debian +ftp://ftp.u-strasbg.fr/debian +ftp://ftp.udc.es/debian +http://ftp.uk.debian.org/debian +ftp://ftp.um.es/mirror/debian +http://ftp.uni-bayreuth.de/linux/Debian/debian +ftp://ftp.uni-bayreuth.de/pub/linux/Debian/debian +ftp://ftp.uni-kl.de/debian +ftp://ftp.uni-koeln.de/debian +ftp://ftp.uni-sofia.bg/debian +ftp://ftp.unina.it/pub/linux/distributions/debian +ftp://ftp.univie.ac.at/systems/linux/debian/debian +http://ftp.us.debian.org/debian +ftp://ftp.uwa.edu.au/debian +ftp://ftp.uwsg.indiana.edu/linux/debian +ftp://ftp.vectranet.pl/debian +http://ftp.wa.au.debian.org/debian +ftp://ftp.yz.yamagata-u.ac.jp/debian +ftp://ftp.zcu.cz/mirrors/debian +http://ftp2.de.debian.org/debian +http://ftp2.fr.debian.org/debian +ftp://ftp3.nrc.ca/debian +ftp://ftp5.gwdg.de/pub/linux/debian/debian +ftp://gd.tuwien.ac.at/opsys/linux/debian +ftp://gladiator.real-time.com/linux/debian +ftp://gulus.usherbrooke.ca/debian +ftp://jane.uab.cat/debian +ftp://kebo.vlsm.org/debian +ftp://linorg.usp.br/debian +http://linux.iq.usp.br/debian +ftp://linux.org.by/debian +ftp://lug.mtu.edu/debian +ftp://mi.mirror.garr.it/mirrors/debian +ftp://mir1.ovh.net/debian +http://mir2.ovh.net/debian +ftp://mirror.aarnet.edu.au/debian +http://mirror.anl.gov/debian +ftp://mirror.anl.gov/pub/debian +ftp://mirror.cc.columbia.edu/pub/linux/debian/debian +ftp://mirror.cs.wisc.edu/pub/mirrors/linux/debian +ftp://mirror.datafast.net.au/debian +ftp://mirror.eftel.com/debian +ftp://mirror.inter.net.il/pub/debian +http://mirror.isoc.org.il/pub/debian +ftp://mirror.nttu.edu.tw/debian +http://mirror.nus.edu.sg/Debian +ftp://mirror.nus.edu.sg/pub/Debian +ftp://mirror.optus.net/debian +ftp://mirror.ox.ac.uk/debian +ftp://mirror.pacific.net.au/debian +http://mirror.peer1.net/debian +ftp://mirror.positive-internet.com/debian +ftp://mirror.scarlet-internet.nl/pub/debian +http://mirror.switch.ch/ftp/mirror/debian +ftp://mirror.switch.ch/mirror/debian +http://mirror.tucdemonic.org/debian +http://mirror.ynet.sk/debian +ftp://mirrors.geekbone.org/debian +ftp://mirrors.geeks.org/debian +ftp://mirrors.ircam.fr/pub/debian +ftp://mirrors.kernel.org/debian +http://mirrors.nfsi.pt/debian +ftp://mirrors.nfsi.pt/pub/debian +ftp://mirrors.telianet.dk/debian +http://mirrors.tummy.com/debian +http://mirrors.uol.com.br/pub/debian +ftp://mirrors.usc.edu/pub/linux/distributions/debian +http://mmc.igeofcu.unam.mx/debian +ftp://opensource.nchc.org.tw/debian +http://ring.asahi-net.or.jp/archives/linux/debian/debian +ftp://ring.asahi-net.or.jp/pub/linux/debian/debian +ftp://sb.itc.u-tokyo.ac.jp/DEBIAN +http://sft.if.usp.br/debian +http://sluglug.ucsc.edu/debian +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian +ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/debian +ftp://techweb.rfa.org/debian +ftp://the.earth.li/debian +ftp://ukdebian.mirror.anlx.net/debian +ftp://webb.ens-cachan.fr/debian +ftp://www.las.ic.unicamp.br/pub/debian +ftp://www.mirrorservice.org/sites/ftp.debian.org/debian +http://www.ring.gr.jp/archives/linux/debian/debian +ftp://www.ring.gr.jp/pub/linux/debian/debian +http://www.zentek-international.com/mirrors/debian diff --git a/src/lib/distro-info/debian-5.0/prereqfiles/etc/hosts b/src/lib/distro-info/debian-5.0/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/debian-5.0/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/debian-5.0/settings.default b/src/lib/distro-info/debian-5.0/settings.default new file mode 100644 index 00000000..40af4b20 --- /dev/null +++ b/src/lib/distro-info/debian-5.0/settings.default @@ -0,0 +1,32 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb +release-name = etch + + components = main + distribution = etch + name = Debian 5.0 + repo-subdir = dists + file-for-speedtest = dists/etch/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/debian-5.0/settings.example b/src/lib/distro-info/debian-5.0/settings.example new file mode 100644 index 00000000..ac54855d --- /dev/null +++ b/src/lib/distro-info/debian-5.0/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/debian +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/fedora-6/export-filter.example b/src/lib/distro-info/fedora-6/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/fedora-6/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/src/lib/distro-info/fedora-6/mirrors/base b/src/lib/distro-info/fedora-6/mirrors/base new file mode 100644 index 00000000..1ff185e4 --- /dev/null +++ b/src/lib/distro-info/fedora-6/mirrors/base @@ -0,0 +1,105 @@ +ftp://alviss.et.tudelft.nl/pub/fedora/linux/core/6/i386/os +http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/6/i386/os +http://download.fedora.redhat.com/pub/fedora/linux/6/i386/os +http://fedora.kiewel-online.de/linux/core/6/i386/os +http://fedora.mirror.facebook.com/linux/core/6/i386/os +http://fedora.mirror.garr.it/mirrors/fedora/linux/core/6/i386/os +http://fedora.secsup.org/linux/6/i386/os +ftp://fedora.secsup.org/pub/linux/redhat/fedora/linux/core/6/i386/os +http://fr2.rpmfind.net/linux/fedora/core/6/i386/os +http://ftp-stud.hs-esslingen.de/pub/fedora/linux/core/6/i386/os +ftp://ftp.applios.net/pub/fedora/linux/core/6/i386/os +http://ftp.astral.ro/mirrors/fedora/pub/fedora/linux/core/6/i386/os +http://ftp.belnet.be/linux/fedora/linux/core/6/i386/os +ftp://ftp.ceid.upatras.gr/pub/fedora/linux/core/6/i386/os +http://ftp.chg.ru/pub/Linux/fedora/linux/core/6/i386/os +http://ftp.cica.es/fedora/linux/core/6/i386/os +ftp://ftp.ciril.fr/pub/linux/fedora/linux/core/6/i386/os +http://ftp.crc.dk/fedora/linux/core/6/i386/os +ftp://ftp.crc.dk/pub/mirrors/fedora/linux/core/6/i386/os +ftp://ftp.cru.fr/pub/linux/fedora/core/6/i386/os +ftp://ftp.cs.hacettepe.edu.tr/pub/mirrors/fedora/linux/core/6/i386/os +ftp://ftp.cse.buffalo.edu/pub/Linux/fedora/linux/core/6/i386/os +http://ftp.dti.ad.jp/pub/Linux/Fedora/core/6/i386/os +http://ftp.fi.muni.cz/pub/linux/fedora/linux/core/6/i386/os +ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/core/6/i386/os +http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/6/i386/os +ftp://ftp.gtlib.gatech.edu/pub/fedora.redhat/linux/core/6/i386/os +http://ftp.gts.lug.ro/fedora/linux/core/6/i386/os +http://ftp.gui.uva.es/sites/fedora.redhat.com/linux/core/6/i386/os +http://ftp.heanet.ie/pub/fedora/linux/core/6/i386/os +http://ftp.hostrino.com/pub/fedora/linux/core/6/i386/os +http://ftp.iij.ad.jp/pub/linux/fedora/core/6/i386/os +http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/6/i386/os +ftp://ftp.kaist.ac.kr/fedora/linux/core/6/i386/os +http://ftp.kaist.ac.kr/pub/fedora/linux/core/6/i386/os +http://ftp.kddilabs.jp/Linux/packages/fedora/core/6/i386/os +http://ftp.linux.ee/pub/fedora/linux/core/6/i386/os +http://ftp.linux.ncsu.edu/pub/fedora/linux/core/6/i386/os +ftp://ftp.linux.org.tr/pub/fedora/linux/core/6/i386/os +http://ftp.lip6.fr/ftp/pub/linux/distributions/fedora/6/i386/os +ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os +ftp://ftp.muug.mb.ca/pub/fedora/linux/core/6/i386/os +http://ftp.nluug.nl/pub/os/Linux/distr/fedora/linux/core/6/i386/os +ftp://ftp.otenet.gr/pub/linux/fedora/linux/core/6/i386/os +ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/core/6/i386/os +http://ftp.ps.pl/pub/Linux/fedora-linux/core/6/i386/os +http://ftp.pwr.wroc.pl/pub/linux/fedora/linux/core/6/i386/os +ftp://ftp.rediris.es/mirror/fedora-redhat/core/6/i386/os +http://ftp.rhnet.is/pub/fedora/linux/core/6/i386/os +http://ftp.riken.jp/Linux/fedora/core/6/i386/os +ftp://ftp.solnet.ch/mirror/fedora/linux/core/6/i386/os +http://ftp.stw-bonn.de/pub/fedora/linux/core/6/i386/os +http://ftp.SURFnet.nl/pub/os/Linux/distr/fedora/linux/core/6/i386/os +http://ftp.tlk-l.net/pub/mirrors/fedora/core/6/i386/os +http://ftp.tu-chemnitz.de/pub/linux/fedora-enchilada/linux/core/6/i386/os +ftp://ftp.tvnet.hu/pub/fedora/linux/core/6/i386/os +ftp://ftp.uci.edu/mirrors/fedora/linux/core/6/i386/os +http://ftp.udl.es/pub/fedora/linux/core/6/i386/os +http://ftp.uni-bayreuth.de/linux/fedora/linux/core/6/i386/os +ftp://ftp.uni-bayreuth.de/pub/linux/fedora/linux/core/6/i386/os +ftp://ftp.uninett.no/pub/linux/Fedora/core/6/i386/os +http://ftp.univie.ac.at/systems/linux/fedora/core/6/i386/os +http://ftp.upjs.sk/pub/fedora/linux/core/6/i386/os +http://ftp.usf.edu/pub/fedora/linux/core/6/i386/os +http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/core/6/i386/os +http://gulus.usherbrooke.ca/pub/distro/fedora/linux/core/6/i386/os +http://kdeforge.unl.edu/mirrors/fedora/linux/core/6/i386/os +ftp://limestone.uoregon.edu/fedora/linux/6/i386/os +http://limestone.uoregon.edu/ftp/fedora/linux/6/i386/os +http://linux.nssl.noaa.gov/fedora/linux/core/6/i386/os +http://mirror.aarnet.edu.au/pub/fedora/linux/core/6/i386/os +http://mirror.anl.gov/pub/fedora/linux/core/6/i386/os +http://mirror.cc.vt.edu/pub/fedora/linux/core/6/i386/os +http://mirror.cogentco.com/pub/linux/fedora/linux/core/6/i386/os +ftp://mirror.cs.princeton.edu/pub/mirrors/fedora/linux/core/6/i386/os +http://mirror.fraunhofer.de/download.fedora.redhat.com/fedora/linux/core/6/i386/os +http://mirror.hiwaay.net/pub/fedora/linux/core/6/i386/os +http://mirror.internode.on.net/pub/fedora/linux/core/6/i386/os +http://mirror.karneval.cz/pub/linux/fedora/linux/core/6/i386/os +http://mirror.linux.duke.edu/pub/fedora/linux/core/6/i386/os +http://mirror.newnanutilities.org/pub/fedora/linux/core/6/i386/os +http://mirror.nuvio.com/pub/fedora/linux/core/6/i386/os +ftp://mirror.nyi.net/fedora/linux/core/6/i386/os +http://mirror.optus.net/fedora/linux/core/6/i386/os +http://mirror.pacific.net.au/linux/fedora/linux/core/6/i386/os +http://mirror.stanford.edu/fedora/linux/core/6/i386/os +ftp://mirror.stanford.edu/pub/mirrors/fedora/linux/core/6/i386/os +http://mirror.steadfast.net/fedora/core/6/i386/os +http://mirror.switch.ch/ftp/mirror/fedora/linux/core/6/i386/os +ftp://mirror.switch.ch/mirror/fedora/linux/core/6/i386/os +http://mirror.usu.edu/mirrors/fedora/linux/core/6/i386/os +http://mirror.web-ster.com/fedora/core/6/i386/os +http://mirrors.cat.pdx.edu/fedora/linux/core/6/i386/os +http://mirrors.ircam.fr/pub/fedora/linux/core/6/i386/os +http://mirrors.kernel.org/fedora/core/6/i386/os +http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/core/6/i386/os +http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/core/6/i386/os +http://srl.cs.jhu.edu/YUM/fedora/core/6/i386/os +http://sunsite.icm.edu.pl/pub/Linux/fedora/linux/core/6/i386/os +http://sunsite.mff.cuni.cz/MIRRORS/fedora.redhat.com/linux/core/6/i386/os +http://sunsite.rediris.es/mirror/fedora-redhat/core/6/i386/os +http://www.gtlib.gatech.edu/pub/fedora.redhat/linux/core/6/i386/os +http://www.jur-linux.org/download/fedora/6/i386/os +http://www.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os +http://www.muug.mb.ca/pub/fedora/linux/core/6/i386/os diff --git a/src/lib/distro-info/fedora-6/mirrors/base_update b/src/lib/distro-info/fedora-6/mirrors/base_update new file mode 100644 index 00000000..b490c5b4 --- /dev/null +++ b/src/lib/distro-info/fedora-6/mirrors/base_update @@ -0,0 +1,90 @@ +ftp://alviss.et.tudelft.nl/pub/fedora/linux/core/updates/6/i386 +http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/updates/6/i386 +http://download.fedora.redhat.com/pub/fedora/linux/updates/6/i386 +http://fedora.kiewel-online.de/linux/core/updates/6/i386 +http://fedora.mirror.facebook.com/linux/core/updates/6/i386 +http://fedora.mirror.garr.it/mirrors/fedora/linux/core/updates/6/i386 +http://fedora.secsup.org/linux/updates/6/i386 +ftp://fedora.secsup.org/pub/linux/redhat/fedora/linux/core/updates/6/i386 +http://fr2.rpmfind.net/linux/fedora/core/updates/6/i386 +http://ftp-stud.hs-esslingen.de/pub/fedora/linux/core/updates/6/i386 +http://ftp.astral.ro/mirrors/fedora/pub/fedora/linux/core/updates/6/i386 +http://ftp.belnet.be/linux/fedora/linux/core/updates/6/i386 +ftp://ftp.ceid.upatras.gr/pub/fedora/linux/core/updates/6/i386 +http://ftp.cica.es/fedora/linux/core/updates/6/i386 +ftp://ftp.ciril.fr/pub/linux/fedora/linux/core/updates/6/i386 +http://ftp.crc.dk/fedora/linux/core/updates/6/i386 +ftp://ftp.crc.dk/pub/mirrors/fedora/linux/core/updates/6/i386 +ftp://ftp.cru.fr/pub/linux/fedora/core/updates/6/i386 +ftp://ftp.cs.hacettepe.edu.tr/pub/mirrors/fedora/linux/core/updates/6/i386 +ftp://ftp.cse.buffalo.edu/pub/Linux/fedora/linux/core/updates/6/i386 +http://ftp.dti.ad.jp/pub/Linux/Fedora/core/updates/6/i386 +http://ftp.fi.muni.cz/pub/linux/fedora/linux/core/updates/6/i386 +ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/core/updates/6/i386 +http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/updates/6/i386 +ftp://ftp.gtlib.gatech.edu/pub/fedora.redhat/linux/core/updates/6/i386 +http://ftp.gts.lug.ro/fedora/linux/core/updates/6/i386 +http://ftp.heanet.ie/pub/fedora/linux/core/updates/6/i386 +http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/6/i386 +http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/6/i386 +ftp://ftp.kaist.ac.kr/fedora/linux/core/updates/6/i386 +http://ftp.kaist.ac.kr/pub/fedora/linux/core/updates/6/i386 +http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/6/i386 +http://ftp.linux.ncsu.edu/pub/fedora/linux/core/updates/6/i386 +ftp://ftp.linux.org.tr/pub/fedora/linux/core/updates/6/i386 +ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386 +ftp://ftp.muug.mb.ca/pub/fedora/linux/core/updates/6/i386 +http://ftp.nluug.nl/pub/os/Linux/distr/fedora/linux/core/updates/6/i386 +http://ftp.ntua.gr/pub/linux/fedora/linux/core/updates/6/i386 +ftp://ftp.otenet.gr/pub/linux/fedora/linux/core/updates/6/i386 +ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/core/updates/6/i386 +http://ftp.ps.pl/pub/Linux/fedora-linux/core/updates/6/i386 +http://ftp.pwr.wroc.pl/pub/linux/fedora/linux/core/updates/6/i386 +ftp://ftp.rediris.es/mirror/fedora-redhat/core/updates/6/i386 +http://ftp.rhnet.is/pub/fedora/linux/core/updates/6/i386 +http://ftp.riken.jp/Linux/fedora/core/updates/6/i386 +ftp://ftp.solnet.ch/mirror/fedora/linux/core/updates/6/i386 +http://ftp.stw-bonn.de/pub/fedora/linux/core/updates/6/i386 +http://ftp.SURFnet.nl/pub/os/Linux/distr/fedora/linux/core/updates/6/i386 +http://ftp.tlk-l.net/pub/mirrors/fedora/core/updates/6/i386 +http://ftp.tu-chemnitz.de/pub/linux/fedora-enchilada/linux/core/updates/6/i386 +ftp://ftp.tvnet.hu/pub/fedora/linux/core/updates/6/i386 +ftp://ftp.uci.edu/mirrors/fedora/linux/core/updates/6/i386 +http://ftp.udl.es/pub/fedora/linux/core/updates/6/i386 +ftp://ftp.uninett.no/pub/linux/Fedora/core/updates/6/i386 +http://ftp.univie.ac.at/systems/linux/fedora/core/updates/6/i386 +http://ftp.upjs.sk/pub/fedora/linux/core/updates/6/i386 +http://ftp.usf.edu/pub/fedora/linux/core/updates/6/i386 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/core/updates/6/i386 +http://gulus.usherbrooke.ca/pub/distro/fedora/linux/core/updates/6/i386 +http://kdeforge.unl.edu/mirrors/fedora/linux/core/updates/6/i386 +http://limestone.uoregon.edu/ftp/fedora/linux/updates/6/i386 +http://linux.nssl.noaa.gov/fedora/linux/core/updates/6/i386 +http://mirror.aarnet.edu.au/pub/fedora/linux/core/updates/6/i386 +http://mirror.anl.gov/pub/fedora/linux/core/updates/6/i386 +http://mirror.cc.vt.edu/pub/fedora/linux/core/updates/6/i386 +http://mirror.cogentco.com/pub/linux/fedora/linux/core/updates/6/i386 +ftp://mirror.cs.princeton.edu/pub/mirrors/fedora/linux/core/updates/6/i386 +http://mirror.fraunhofer.de/download.fedora.redhat.com/fedora/linux/core/updates/6/i386 +http://mirror.hiwaay.net/pub/fedora/linux/core/updates/6/i386 +http://mirror.internode.on.net/pub/fedora/linux/core/updates/6/i386 +http://mirror.karneval.cz/pub/linux/fedora/linux/core/updates/6/i386 +http://mirror.linux.duke.edu/pub/fedora/linux/core/updates/6/i386 +http://mirror.newnanutilities.org/pub/fedora/linux/core/updates/6/i386 +http://mirror.nuvio.com/pub/fedora/linux/core/updates/6/i386 +ftp://mirror.nyi.net/fedora/linux/core/updates/6/i386 +http://mirror.optus.net/fedora/linux/core/updates/6/i386 +http://mirror.stanford.edu/fedora/linux/core/updates/6/i386 +http://mirror.steadfast.net/fedora/core/updates/6/i386 +http://mirror.switch.ch/ftp/mirror/fedora/linux/core/updates/6/i386 +ftp://mirror.switch.ch/mirror/fedora/linux/core/updates/6/i386 +http://mirror.web-ster.com/fedora/core/updates/6/i386 +http://mirrors.cat.pdx.edu/fedora/linux/core/updates/6/i386 +http://mirrors.ircam.fr/pub/fedora/linux/core/updates/6/i386 +http://mirrors.kernel.org/fedora/core/updates/6/i386 +http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/core/updates/6/i386 +http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/core/updates/6/i386 +http://srl.cs.jhu.edu/YUM/fedora/core/updates/6/i386 +http://sunsite.mff.cuni.cz/MIRRORS/fedora.redhat.com/linux/core/updates/6/i386 +http://www.jur-linux.org/download/fedora/updates/6/i386 +http://www.muug.mb.ca/pub/fedora/linux/core/updates/6/i386 diff --git a/src/lib/distro-info/fedora-6/prereqfiles/etc/hosts b/src/lib/distro-info/fedora-6/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/fedora-6/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/fedora-6/settings.default b/src/lib/distro-info/fedora-6/settings.default new file mode 100644 index 00000000..53dfbe74 --- /dev/null +++ b/src/lib/distro-info/fedora-6/settings.default @@ -0,0 +1,125 @@ +bootstrap-packages = < + packages = < +package-subdir = Fedora/RPMS +prereq-packages = < + name = Fedora Core 6 + + + name = Fedora Core 6 updates + + + packages = < + + base = minimal + diff --git a/src/lib/distro-info/fedora-6/settings.example b/src/lib/distro-info/fedora-6/settings.example new file mode 100644 index 00000000..22883d4b --- /dev/null +++ b/src/lib/distro-info/fedora-6/settings.example @@ -0,0 +1,20 @@ +# 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 +# +# local-url = /srv/ftp/pub/pub/linux/fedora/linux/core/6/i386/os +# +# +# local-url = /srv/ftp/pub/linux/fedora/linux/core/updates/6/i386 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY new file mode 100644 index 00000000..592eba55 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY @@ -0,0 +1,34 @@ +The following public key can be used to verify RPM packages built and +signed by Red Hat, Inc. using `rpm -K' using the GNU GPG package. +Questions about this key should be sent to security@redhat.com. + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.0 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +mQGiBDfqVDgRBADBKr3Bl6PO8BQ0H8sJoD6p9U7Yyl7pjtZqioviPwXP+DCWd4u8 +HQzcxAZ57m8ssA1LK1Fx93coJhDzM130+p5BG9mYSWShLabR3N1KXdXQYYcowTOM +GxdwYRGr1Spw8QydLhjVfU1VSl4xt6bupPbWJbyjkg5Z3P7BlUOUJmrx3wCgobNV +EDGaWYJcch5z5B1of/41G8kEAKii6q7Gu/vhXXnLS6m15oNnPVybyngiw/23dKjS +ZVG7rKANEK2mxg1VB+vc/uUc4k49UxJJfCZg1gu1sPFV3GSa+Y/7jsiLktQvCiLP +lncQt1dV+ENmHR5BdIDPWDzKBVbgWnSDnqQ6KrZ7T6AlZ74VMpjGxxkWU6vV2xsW +XCLPA/9P/vtImA8CZN3jxGgtK5GGtDNJ/cMhhuv5tnfwFg4b/VGo2Jr8mhLUqoIb +E6zeGAmZbUpdckDco8D5fiFmqTf5+++pCEpJLJkkzel/32N2w4qzPrcRMCiBURES +PjCLd4Y5rPoU8E4kOHc/4BuHN903tiCsCPloCrWsQZ7UdxfQ5LQiUmVkIEhhdCwg +SW5jIDxzZWN1cml0eUByZWRoYXQuY29tPohVBBMRAgAVBQI36lQ4AwsKAwMVAwID +FgIBAheAAAoJECGRgM3bQqYOsBQAnRVtg7B25Hm11PHcpa8FpeddKiq2AJ9aO8sB +XmLDmPOEFI75mpTrKYHF6rkCDQQ36lRyEAgAokgI2xJ+3bZsk8jRA8ORIX8DH05U +lMH27qFYzLbT6npXwXYIOtVn0K2/iMDj+oEB1Aa2au4OnddYaLWp06v3d+XyS0t+ +5ab2ZfIQzdh7wCwxqRkzR+/H5TLYbMG+hvtTdylfqIX0WEfoOXMtWEGSVwyUsnM3 +Jy3LOi48rQQSCKtCAUdV20FoIGWhwnb/gHU1BnmES6UdQujFBE6EANqPhp0coYoI +hHJ2oIO8ujQItvvNaU88j/s/izQv5e7MXOgVSjKe/WX3s2JtB/tW7utpy12wh1J+ +JsFdbLV/t8CozUTpJgx5mVA3RKlxjTA+On+1IEUWioB+iVfT7Ov/0kcAzwADBQf9 +E4SKCWRand8K0XloMYgmipxMhJNnWDMLkokvbMNTUoNpSfRoQJ9EheXDxwMpTPwK +ti/PYrrL2J11P2ed0x7zm8v3gLrY0cue1iSba+8glY+p31ZPOr5ogaJw7ZARgoS8 +BwjyRymXQp+8Dete0TELKOL2/itDOPGHW07SsVWOR6cmX4VlRRcWB5KejaNvdrE5 +4XFtOd04NMgWI63uqZc4zkRa+kwEZtmbz3tHSdRCCE+Y7YVP6IUf/w6YPQFQriWY +FiA6fD10eB+BlIUqIw80VgjsBKmCwvKkn4jg8kibXgj4/TzQSx77uYokw1EqQ2wk +OZoaEtcubsNMquuLCMWijYhGBBgRAgAGBQI36lRyAAoJECGRgM3bQqYOhyYAnj7h +VDY/FJAGqmtZpwVp9IlitW5tAJ4xQApr/jNFZCTksnI+4O1765F7tA== +=3AHZ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-beta b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-beta new file mode 100644 index 00000000..ffcf6aed --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-beta @@ -0,0 +1,32 @@ +The following public key can be used to verify RPM packages built and +signed by Red Hat, Inc. for this beta using `rpm -K' using the GNU GPG +package. Questions about this key should be sent to security@redhat.com. + + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.6 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +mQGiBDySTqsRBACzc7xuCIp10oj5B2PAV4XzDeVxprv/WTMreSNSK+iC0bEz0IBp +Vnn++qtyiXfH+bGIE9jqZgIEnpttWhUOaU5LhcLFzy+m8NWfngIFP9QfGmGAe9Gd +LFeAdhj4RmSG/vgr7vDd83Hz22dv403Ar/sliWO4vDOrMmZBG57WGYTWtwCgkMsi +UUQuJ6slbzKn82w+bYxOlL0EAIylWJGaTkKOTL5DqVR3ik9aT0Dt3FNVYiuhcKBe +II4E3KOIVA9kO8in1IZjx2gs6K2UV+GsoAVANdfKL7l9O+k+J8OxhE74oycvYJxW +QzCgXMZkNcvW5wyXwEMcr6TVd/5BGztcMw8oT3/l2MtAEG/vn1XaWToRSO1XDMDz ++AjUA/4m0mTkN8S4wjzJG8lqN7+quW3UOaiCe8J3SFrrrhE0XbY9cTJI/9nuXHU1 +VjqOSmXQYH2Db7UOroFTBiWhlAedA4O4yuK52AJnvSsHbnJSEmn9rpo5z1Q8F+qI +mDlzriJdrIrVLeDiUeTlpH3kpG38D7007GhXBV72k1gpMoMcpbQ3UmVkIEhhdCwg +SW5jLiAoQmV0YSBUZXN0IFNvZnR3YXJlKSA8cmF3aGlkZUByZWRoYXQuY29tPohX +BBMRAgAXBQI8l5p/BQsHCgMEAxUDAgMWAgECF4AACgkQ/TcmiYl9oHqdeQCfZjw4 +F9sir3XfRAjVe9kYNcQ8hnIAn0WgyT7H5RriWYTOCfauOmd+cAW4iEYEEBECAAYF +AjyXmqQACgkQIZGAzdtCpg5nDQCfepuRUyuVJvhuQkPWySETYvRw+WoAnjAWhx6q +0npMx4OE1JGFi8ymKXktuQENBDySTq4QBADKL/mK7S8E3synxISlu7R6fUvu07Oc +RoX96n0Di6T+BS99hC44XzHjMDhUX2ZzVvYS88EZXoUDDkB/8g7SwZrOJ/QE1zrI +JmSVciNhSYWwqeT40Evs88ajZUfDiNbS/cSC6oui98iS4vxd7sE7IPY+FSx9vuAR +xOa9vBnJY/dx0wADBQQAosm+Iltt2uigC6LJzxNOoIdB5r0GqTC1o5sHCeNqXJhU +ExAG8m74uzMlYVLOpGZi4y4NwwAWvCWC0MWWnnu+LGFy1wKiJKRjhv5F+WkFutY5 +WHV5L44vp9jSIlBCRG+84jheTh8xqhndM9wOfPwWdYYu1vxrB8Tn6kA17PcYfHSI +RgQYEQIABgUCPJJergAKCRD9NyaJiX2geiCPAJ4nEM4NtI9Uj8lONDk6FU86PmoL +yACfb68fBd2pWEzLKsOk9imIobHHpzE= +=gpIn +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora new file mode 100644 index 00000000..17d4ec70 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora @@ -0,0 +1,27 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJ +D11NUCqH8c7EctOquOZ5zTcWxHiWWbLyKQwUw2SUvnWa5SSbi8kI8q9MTPsPvhwt +gMrQMLenMO+nsrxrSaG6XcD+ssfJNxC7NQVCQAj3pvvg9rKi3ygsM7CXHwCghgsq +X6TOr55HE90DbEsoq3b/jjsD/i8aIZ6urUgrpAkQslcakXdJLKgSdwjRUgVZgvYZ +b7kAx1iPq0t/AhB3NJw3zW4AAKJohGg3xj5K4V8PJEZrSIpoRYlF43Kqlfu2p5gh +WT89SP4YAlWPeTqf0+dTYUYz3b144k2ZFOdRuXIRxunoYNAUr9oMrxBXbJ/eY+0U +QX3pBACYzKizyY4JJgd0zFJmNkcdK9nzcm+btYFnYQo33w5GSE686UNr+9yiXt9t +mPRvNEbj3u+xoAX8B/5k3aZ5NbUhV64/VcKlUdRIxNlFCG7I9KgxeHWAYwi7yqOG +XM3T/v6o7GLdQEB0ChFqS7kUlqmwLV+C3QhlrFe/Cuk26i+Q6rQiRmVkb3JhIFBy +b2plY3QgPGZlZG9yYUByZWRoYXQuY29tPohbBBMRAgAbBQI/nZ07BgsJCAcDAgMV +AgMDFgIBAh4BAheAAAoJELRCadBPKm/S2PAAnRTlhorITphab+oxAHtbxZF9BVyD +AJ9WOVaZUG53IWWIAXOGv3j/cmr3lohGBBMRAgAGBQI/nZ22AAoJECGRgM3bQqYO +R5QAoIp1G+omVktq/snxpmz5UeHjlSYjAKCRr/ea/L7S7ZTxB18cf1TYfad1x4hG +BBARAgAGBQI/ntjgAAoJECnVuiSN9W0FUSUAoJnrone4J0o1HMkRz+6g9KVuO2Fy +AJ0XyebOzVmI9U5OyOfnNmYV0wnQcrkBDQQ/nZ08EAQAugOfLWJbKwMA9vg2mJU5 +94TZU0HRJkx/fqYhx0YxWWRpzplrEyvcDXuYcWi1Hwh0tD86T4fR5GV6joWiWClz +D+Hwhhb6gcSdeSGlGLlZAvWYtFSHWiv+3LaI9w8Vtczl99Bh2WiMDNDDGw0RQg6Z +aftldLSe4j1pffpFGQ8SuisAAwUEAKVxqLT7fC5xQ6oclcZ+PhoDlePQ1BiTS7tu +GM07bFF4nNvY91LL7S31pooz3XbGSWP8jxzSv1Fw35YhSmWGOBOEXluqMbVQGJJ5 +m8fqJOjC0imbfeWgr/T7zLrJeiljDxvX+6TyawyWQngF6v1Hq6FRV0O0bOp9Npt5 +zqCbDGs/iEYEGBECAAYFAj+dnTwACgkQtEJp0E8qb9L//gCcDVYnDegNCOxDn1se +dDwxw+0h8OcAn1CZHof15QqxnTwEnvwF2QeOI5dn +=mJAx +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-extras b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-extras new file mode 100644 index 00000000..e89f1643 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-extras @@ -0,0 +1,35 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBEG+vu8RBACyH3cUSp+DXbyIvZ075bGDhjhRCf8m44UW2cCQdO/45CJBkRnC +AA6SHthCrXCVKIuuo1jSwy8kMXt1P/7IpF6Tc8ZMzcHKTyNetuuD/A7oavgnrJNb +QVTScqbD6VrvjUAPpDz5TMPqMMFYwylp+ySKMQpoPOYoqdNE3XwnA5vOywCg44+S +KDWIV0j5xCeIAoa47VmgF2cEAK/FIZRkbb7+i2Fob1mxKsnuLN/xx67aBpU2w7HO +scVnkke08lRestDVk/6xb+lrq+gVLdNBfAANBrOcwRv2heu+Zu3PZGuC166/JWFM +kx5a9TkI0zQAw72LqKeX4VDBRz5fUoIs/C+3aGc5Mh+h8fZYjJGf0kr/90rnd/0e +WqsBA/9ONArdHN44aICt7xku/t98p9Da04A7kRYTHlLrBk5i0U4JJXKei7ZAzNi4 +Or//8ATepQdsBMCJVx1Ss/vJKxupLG9Mw43nbNuA5SmOSPnAoyglYadKyaUXBbVj +mkqf9ZkjOMfD5u9PEWMWMq3f8uf05qxsrBDeiyc7Fk0jBYTvnrQ4RmVkb3JhIFBy +ZSBFeHRyYXMgUmVsZWFzZSA8cHJlLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6I +XgQTEQIAHgUCQb6+7wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM +5uAMAKC+XaPSCYIpdcmJYEe9rNxYMz/hLwCeOyBYUYA2L0WnbfXuNafRqwta/s2I +RgQSEQIABgUCQgD+/AAKCRC0QmnQTypv0lVYAJoCLolPSuAj873GbV2+m3Bj6sS/ +UACeNcDmIWeruRld83uSQcx4xJyEOUa0KUZlZG9yYSBQcm9qZWN0IDxmZWRvcmEt +ZXh0cmFzQHJlZGhhdC5jb20+iF4EExECAB4FAkIAeFQCGwMGCwkIBwMCAxUCAwMW +AgECHgECF4AACgkQgu2VBBrHDOYu8wCffLm57mvcYApV7eqvHXr29gNAbLwAoJVq +JWvgBIvg8/4MiqwKAQ1MDkIUiEYEEhECAAYFAkIA/wQACgkQtEJp0E8qb9LQJACf +c0LteS513+5O6erQO7RBUxC/NI4AniDHK+Ogf5l5Gs2ciwD+WApsZ4mPtDBGZWRv +cmEgUHJvamVjdCA8ZmVkb3JhLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6IXgQT +EQIAHgUCQgB4iQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM5gZ7 +AJ9n8CYN6nvMqxCbQQZwvs7e/J4//QCeM3nDwC5EfEbEtOHPIYAqTf3IQZaIRgQS +EQIABgUCQgD/BAAKCRC0QmnQTypv0qKuAJ0cnqk9BbbblRSBbn72bK/BAquzywCe +M7S0C6rfrYlfOjQHQdVB5GitT9u5AQ0EQb6+8RAEAJmsZ5apOFz0Fj6RwX0D+nOU +Atdzd3zpTNzu4j8+L750ePutjuwizEmCxKycchuG+gGasLmdxY+xk5AUB7gLt4ms +eKsWyHvQt+H4wG8jjOjHWXlaJkZaYQUxpVPd6/11hkoqpodJ9ckfoIJnpUJWDcd3 +HTW7jdq+ZtBXjQlwvh3HAAMHA/9g50+hqjn23d91SaFTkvaAySZYHEF/xm5sOV1X +Z37XNFdl7JRl6BN7y59PE9Nk6qP4yHqH1G2YNDL3BmejChMF5GmEqluNdnvfFvwk +yqPvE7qCv8BhktPqsnrpFmtfeDFI4vztD08oab9LdkDvQwLHBZpc+wCb4VJzOkaZ +7e7VP4hJBBgRAgAJBQJBvr7xAhsMAAoJEILtlQQaxwzmxdYAn3X4X/ENC3V4yPDR +7X6oVeIVr5fvAJ4n5vY10NpvYKV5arzKd8DSW2m5Bg== +=N/fy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-legacy b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-legacy new file mode 100644 index 00000000..d15e7e90 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-legacy @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBEALkQkRBACCBCp/a5rsqy2Q0NW/2OMkYtsb3k5M6dsQYoHDLiZK4VG1j+Bf +2zzp+HJiUnLFp/l7mROuRioU9/UHpEYFIVunBYXeZf84OxB+mruh9UZtYn3oVXtH +oaMI7hIFirTZ5eEY7zrfvTbvZ2Sm5cE3F2G5sWVOfxhl5opinuWN4xtSwwCggooh +LqarkF4KN6D8xoyjrhLaxiMD/Az7RE6oH0Vwl9dX7YmccymDEesT5Ql6Q5FvfkuZ +F5ZaQwaBO2ko2hMMh2AdCxoYAZPjWqC5r6Wy9P8hMfh+A0S4zon2DE/r0d4vLEY2 +HoptwtElq6gpltydx+/vXhZWkwCO//Kz9wXgZr496KtGXmEKYtdlVScBW6OvdyyD +18zeA/9RuY59C7uxxe6cu7amqjP52xx5rHGkdJD5E8o3rmjdsr9tJ3FcjtIV0DV2 +BkfLIMnsp2gd972n7JBzlA9LJ+JTtMzvf9WdrErpRz1VeI1jHe4/hNGe3hd6xJIE +rxj5FH+LwTj3vfErZdKsWOuudNkz1N4AwZr/k05gV3bi7j8RCLRIRmVkb3JhIExl +Z2FjeSAoaHR0cDovL3d3dy5mZWRvcmFsZWdhY3kub3JnKSA8c2Vjbm90aWNlQGZl +ZG9yYWxlZ2FjeS5vcmc+iFkEExECABkFAkALkQkECwcDAgMVAgMDFgIBAh4BAheA +AAoJEBCMRRJzEAL686wAn3bA5dioMd0UDpUaES9TglLDpONbAJ467XWdHHwhxuHz +oxWc3q7rWPBinLkCDQRAC5EuEAgAsPAVcrvrKB1A/hxoM61KEgaLB9GnGUOgoaV6 +I58stO3sxaxj3bblrpIJjo02BA49xrtL8kpqjKveABThVC1yiSYfySmXKHlO09cv +A+qj+QSxieRciFKc50F1+j8q5Hqcigxzwhr4sJt5IhAx6HIwar5uxNNBgE98JN42 +GthUH39G+alRmzVd+3gQCLFroJSzHtFX7IlwHM33owAZwIVGlUhlBTHdbsvGf0xG +mPYkI+JAUXpTTsnP7kR0/Ktm3zAHBEMw19eqQ5MSwVo28cA+jq2sLrL5DiE5quCd +tB/RVnUUdbfN/o8sN6yxssNB6ZOB61l0K8bvm+9Qgstn/EQFSwADBggAmmFJueD1 +iXehZsRtaH+qZw7z6Q6jUPxDTiuVPhLkUux3wOSWMOp6S+ZYliCaw32TBKgE2SwT +NnvTJYsuGLf3ECxOxMmu2McDHYZM82zRV4PRBMKFfiOa67/x5lhZgEkqf9TO+wk5 +M67GYbjZoyBaYEiE+eWD2cdema3n3zXzy+q2UEkHkzHx6ME9dRrgND3EW2hC9GJ6 +7wY9h+BlUR6Am4o0/ZLZJ2QEvyVnlI3/zZo9L6h8waZKI4l16nuDr/O8z2UOYc/X +OMwBJCVwvbB2Z/f91dhy2EVWJZyyZBCG/FMXXDchxKwJOOQgrVbxWGDIMSdyHLUL +2FuWnC/vdKc7wYhGBBgRAgAGBQJAC5EuAAoJEBCMRRJzEAL6wkcAnAlIrH0JuGjL +T17HoheG/iUbj4Z4AJ9b/7OPGgNglwrLQJfihyPzManKYw== +=wmoy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide new file mode 100644 index 00000000..f61eeb11 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide @@ -0,0 +1,21 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+doUwRBADudl/P8RqkzaHstvwbT93MByo7yX+xHcr0FaVAoG9Qfn+2O0qy +nbNIz9BoieCx9zfgruBBaYjcT1p7QjdyfvF3wLq6ak84ne+QW91rctzqG8JqPhSB +e34L7T0JnsUdiLfnfq895Hy67SYTOcJ6sN1Eg/eKYPP0CHKL9BY9atGRZwCg14Kh +va6OSfIDyV6DNnfYF+cUSwsEALARvclTS8lLL+4sgZthg4D4Od4mYayr0QpKpoBI +0RxOj26v038unOGqEjjqX/F36PwQv6wt6DmaGd9atQ/VUqW4cnKmNfaxJVAqznqW +q80FKzTPH/JC/20v/5xx0FoxEVSCoKs2YPdXEQfEUAzNG9JC4GHNCxt2Gtnt4o5l +sn15BADepds5sa/ptu//hJcYhrvcgzUJQR/JQdDbtK+Rzrvi2oZQFZUHzCVVxxfE +0AULmX5bEC08nAGtp418ceeo1PdqlcVE+kaxuFpPgto/Sd1FvJW4P2B1a7rcUjGc +BarOMVY8QpFZs5iIlkzZdPns1BCijWlhltOiyrdxyNrM49hjlrRGRmVkb3JhIFBy +b2plY3QgYXV0b21hdGVkIGJ1aWxkIHNpZ25pbmcga2V5ICgyMDAzKSA8cmF3aGlk +ZUByZWRoYXQuY29tPohbBBMRAgAbBQI/naFMBgsJCAcDAgMVAgMDFgIBAh4BAheA +AAoJEOE4XU4c3byppW8An385Vt7LXSAIHqdH85QTCH512cr+AJ9vB4inXB6lxOoq +sbnKY0HG4Sr1IIhGBBMRAgAGBQI/naOPAAoJELRCadBPKm/SFMgAn2/FfBhf2Yov +j3gH8Z1t+bbsHRkLAJ94tjdweTZmfZsQZ7YaDXpeJ2iY+4hGBBARAgAGBQI/ntkG +AAoJECnVuiSN9W0Fi5gAn3wSpemY+8rq8aFfRLEumrSksfUoAJ95YyaGdRXv+fWt +KfPJSNTqsqhiKA== +=umuG +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-test b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-test new file mode 100644 index 00000000..efb8d813 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-fedora-test @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+do/cRBACAF7Gv91v32uUrT4nZe+qKgLl59HmtvmaOzT4lInrF95Sget7p +2TpnIqh5H0x0VGpdoeNfHvlXCw+aP50mTJv91BYmLfelkTzokqpEU5YpqGOqa5BV +jelnoK1VKOcXMB28d79Gz9tn7friZN4SnyWbcSIA4C3dHNhsjifIYf0rywCg3y19 +3N6jODa0VSGeeEb4whE2xccD/i/rqk0MQmW6td2Dz2jTBaHxyf7FIcH18YDtwraD +otBRxqGkTVyFGc1q7ZTrRsbzdjIfxbp2C6GT2VJ5kHuRm9jf7JdW5fOhun+oLimR +erTlrPmgz8qQRcqUm6fkmUsYufL1u7DdyfxX7jI2ngkbAR+CsZ8Cj5JhBMeAXc/D +WWhPA/4mzZ70hn1OrGLokzxNr4O7u1+n0thsxGN0qfuTNGIc09UKCoAN42he7Qjs +kIqiE7gLtLzx8elxVOK19tNcaAiLoqmtxlLQqB03pLy4V0tMP9QcWQETbc67qTd1 +zASiefGjf364j4lQd+X9AqdyhUrnax3UgPD5IxilBp92Cw7Qi7QzRmVkb3JhIFBy +b2plY3QgKFRlc3QgU29mdHdhcmUpIDxyYXdoaWRlQHJlZGhhdC5jb20+iFsEExEC +ABsFAj+do/cGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ2oTL1DDJ7Pgh8QCgqNNs +b7xdW+UhzyZw+DEAQF6e+q4AmwVus4u9REyd/aigK2RvrdtcsNy0iEYEExECAAYF +Aj+dpBoACgkQtEJp0E8qb9Ji4QCfanY0CXnRwtBnm8GEMRNqgfGgcc0AnRunlejp +JRxGPaRsmY/11stYll32iEYEEBECAAYFAj+e2SIACgkQKdW6JI31bQWWNQCfTKcX +/7lerpwIVHcAILDduz9qxssAn1t46ERJ9EqsxJxSFlN7oBPyNkt6 +=R9He +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-rawhide b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-rawhide new file mode 100644 index 00000000..2cb42458 --- /dev/null +++ b/src/lib/distro-info/fedora-6/trusted-package-keys/RPM-GPG-KEY-rawhide @@ -0,0 +1,24 @@ +By using `rpm -K' and the GNU GPG package, the following public key can be +used to verify RPM packages built and signed by Red Hat, Inc. for rawhide +and testing. Questions about this key should be sent to +security@redhat.com. + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD9DmVMRBACW9LRPUtKnUTNeSQN5huiPA0+d0hGLTEG1kkUj47zWC3RXZ1Xh +c/6yzWOrPk85Q7ys/dGoLLqsfekkxDVipUE0iS+47VMYgm531x4cd2oKnQb3Z/2R +3A6kjDkc2KyTmfOsZ8DTdL76u81Rnv6MCQjXTJCFOQzv3yxmn6ZDhOoSkwCg24J2 +Qh0zuvvtyfNMsj+S8ksase8D/1qQgcURZDYZkaxrQSsdyZWsqb4NT51snXG5wE4L +Yh1VGH26YU/kY7YxU5TPo8kbQTztkqaoFHk/O6zx+Q/iS8Izv2ByTsZv0F/Weym7 +Fyf+x+PTA7oDvV9hN/aJy/UPF+t4GRrsEV2mH8Ee3hIZGKSWwTwZZh+JyfIcqkyU +zwY9BACLOZ8xZjHzU4MjZw2qgWemr96Zyr2foGl0+2G1STnluWf24//nNWBiLFuA +txucItsppnUM0qB5RZ69N4c9MOmCZkBoahP3Q30qAsaAN4RaaE6AG7Yms0wtPW3m +qzzhcuCtRAumXqA/oQWYqmHaEwUPenJaxut5rasApm2r5QxaQbRFUmVkIEhhdCwg +SW5jLiBhdXRvbWF0ZWQgYnVpbGQgc2lnbmluZyBrZXkgKDIwMDMpIDxyYXdoaWRl +QHJlZGhhdC5jb20+iFsEExECABsFAj9DmVMGCwkIBwMCAxUCAwMWAgECHgECF4AA +CgkQlM1XQuQY46oixwCfUKmLRHSIBd1FbGTaR5ARBfSsK+MAn1BfxKyahkQ0ScN7 +9RNaYei9kxGIiEYEExECAAYFAj9DvtMACgkQIZGAzdtCpg5exACeJlj9DExab5AK +C0eQHr8td+WRJ0QAnRNDGXQCBENRgFNgcecDMAr7P6se +=LmwA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/export-filter.example b/src/lib/distro-info/fedora-6_x86_64/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/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/src/lib/distro-info/fedora-6_x86_64/mirrors/base b/src/lib/distro-info/fedora-6_x86_64/mirrors/base new file mode 100644 index 00000000..71f25f3c --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/mirrors/base @@ -0,0 +1,101 @@ +ftp://alviss.et.tudelft.nl/pub/fedora/linux/core/6/x86_64/os +http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/6/x86_64/os +http://download.fedora.redhat.com/pub/fedora/linux/6/x86_64/os +http://fedora.kiewel-online.de/linux/core/6/x86_64/os +http://fedora.mirror.facebook.com/linux/core/6/x86_64/os +http://fedora.mirror.garr.it/mirrors/fedora/linux/core/6/x86_64/os +http://fedora.secsup.org/linux/6/x86_64/os +ftp://fedora.secsup.org/pub/linux/redhat/fedora/linux/core/6/x86_64/os +http://fr2.rpmfind.net/linux/fedora/core/6/x86_64/os +http://ftp-stud.hs-esslingen.de/pub/fedora/linux/core/6/x86_64/os +http://ftp.astral.ro/mirrors/fedora/pub/fedora/linux/core/6/x86_64/os +http://ftp.belnet.be/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.ceid.upatras.gr/pub/fedora/linux/core/6/x86_64/os +http://ftp.chg.ru/pub/Linux/fedora/linux/core/6/x86_64/os +http://ftp.cica.es/fedora/linux/core/6/x86_64/os +ftp://ftp.ciril.fr/pub/linux/fedora/linux/core/6/x86_64/os +http://ftp.crc.dk/fedora/linux/core/6/x86_64/os +ftp://ftp.crc.dk/pub/mirrors/fedora/linux/core/6/x86_64/os +ftp://ftp.cru.fr/pub/linux/fedora/core/6/x86_64/os +ftp://ftp.cse.buffalo.edu/pub/Linux/fedora/linux/core/6/x86_64/os +http://ftp.dti.ad.jp/pub/Linux/Fedora/core/6/x86_64/os +http://ftp.fi.muni.cz/pub/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/core/6/x86_64/os +http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/6/x86_64/os +ftp://ftp.gtlib.gatech.edu/pub/fedora.redhat/linux/core/6/x86_64/os +http://ftp.gts.lug.ro/fedora/linux/core/6/x86_64/os +http://ftp.gui.uva.es/sites/fedora.redhat.com/linux/core/6/x86_64/os +http://ftp.heanet.ie/pub/fedora/linux/core/6/x86_64/os +http://ftp.hostrino.com/pub/fedora/linux/core/6/x86_64/os +http://ftp.iij.ad.jp/pub/linux/fedora/core/6/x86_64/os +http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/6/x86_64/os +ftp://ftp.kaist.ac.kr/fedora/linux/core/6/x86_64/os +http://ftp.kaist.ac.kr/pub/fedora/linux/core/6/x86_64/os +http://ftp.kddilabs.jp/Linux/packages/fedora/core/6/x86_64/os +http://ftp.linux.ee/pub/fedora/linux/core/6/x86_64/os +http://ftp.linux.ncsu.edu/pub/fedora/linux/core/6/x86_64/os +ftp://ftp.linux.org.tr/pub/fedora/linux/core/6/x86_64/os +http://ftp.lip6.fr/ftp/pub/linux/distributions/fedora/6/x86_64/os +ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os +ftp://ftp.muug.mb.ca/pub/fedora/linux/core/6/x86_64/os +http://ftp.nluug.nl/pub/os/Linux/distr/fedora/linux/core/6/x86_64/os +ftp://ftp.otenet.gr/pub/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/core/6/x86_64/os +http://ftp.ps.pl/pub/Linux/fedora-linux/core/6/x86_64/os +http://ftp.pwr.wroc.pl/pub/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.rediris.es/mirror/fedora-redhat/core/6/x86_64/os +http://ftp.rhnet.is/pub/fedora/linux/core/6/x86_64/os +http://ftp.riken.jp/Linux/fedora/core/6/x86_64/os +ftp://ftp.solnet.ch/mirror/fedora/linux/core/6/x86_64/os +http://ftp.stw-bonn.de/pub/fedora/linux/core/6/x86_64/os +http://ftp.SURFnet.nl/pub/os/Linux/distr/fedora/linux/core/6/x86_64/os +http://ftp.tlk-l.net/pub/mirrors/fedora/core/6/x86_64/os +http://ftp.tu-chemnitz.de/pub/linux/fedora-enchilada/linux/core/6/x86_64/os +ftp://ftp.tvnet.hu/pub/fedora/linux/core/6/x86_64/os +ftp://ftp.uci.edu/mirrors/fedora/linux/core/6/x86_64/os +http://ftp.udl.es/pub/fedora/linux/core/6/x86_64/os +http://ftp.uni-bayreuth.de/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.uni-bayreuth.de/pub/linux/fedora/linux/core/6/x86_64/os +ftp://ftp.uninett.no/pub/linux/Fedora/core/6/x86_64/os +http://ftp.upjs.sk/pub/fedora/linux/core/6/x86_64/os +http://ftp.usf.edu/pub/fedora/linux/core/6/x86_64/os +http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/core/6/x86_64/os +http://gulus.usherbrooke.ca/pub/distro/fedora/linux/core/6/x86_64/os +http://kdeforge.unl.edu/mirrors/fedora/linux/core/6/x86_64/os +ftp://limestone.uoregon.edu/fedora/linux/6/x86_64/os +http://limestone.uoregon.edu/ftp/fedora/linux/6/x86_64/os +http://linux.nssl.noaa.gov/fedora/linux/core/6/x86_64/os +http://mirror.aarnet.edu.au/pub/fedora/linux/core/6/x86_64/os +http://mirror.anl.gov/pub/fedora/linux/core/6/x86_64/os +http://mirror.cc.vt.edu/pub/fedora/linux/core/6/x86_64/os +http://mirror.cogentco.com/pub/linux/fedora/linux/core/6/x86_64/os +ftp://mirror.cs.princeton.edu/pub/mirrors/fedora/linux/core/6/x86_64/os +http://mirror.fraunhofer.de/download.fedora.redhat.com/fedora/linux/core/6/x86_64/os +http://mirror.hiwaay.net/pub/fedora/linux/core/6/x86_64/os +http://mirror.internode.on.net/pub/fedora/linux/core/6/x86_64/os +http://mirror.karneval.cz/pub/linux/fedora/linux/core/6/x86_64/os +http://mirror.linux.duke.edu/pub/fedora/linux/core/6/x86_64/os +http://mirror.nuvio.com/pub/fedora/linux/core/6/x86_64/os +ftp://mirror.nyi.net/fedora/linux/core/6/x86_64/os +http://mirror.optus.net/fedora/linux/core/6/x86_64/os +http://mirror.pacific.net.au/linux/fedora/linux/core/6/x86_64/os +http://mirror.stanford.edu/fedora/linux/core/6/x86_64/os +ftp://mirror.stanford.edu/pub/mirrors/fedora/linux/core/6/x86_64/os +http://mirror.steadfast.net/fedora/core/6/x86_64/os +http://mirror.switch.ch/ftp/mirror/fedora/linux/core/6/x86_64/os +ftp://mirror.switch.ch/mirror/fedora/linux/core/6/x86_64/os +http://mirror.usu.edu/mirrors/fedora/linux/core/6/x86_64/os +http://mirror.web-ster.com/fedora/core/6/x86_64/os +http://mirrors.cat.pdx.edu/fedora/linux/core/6/x86_64/os +http://mirrors.ircam.fr/pub/fedora/linux/core/6/x86_64/os +http://mirrors.kernel.org/fedora/core/6/x86_64/os +http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/core/6/x86_64/os +http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/core/6/x86_64/os +http://srl.cs.jhu.edu/YUM/fedora/core/6/x86_64/os +http://sunsite.icm.edu.pl/pub/Linux/fedora/linux/core/6/x86_64/os +http://sunsite.mff.cuni.cz/MIRRORS/fedora.redhat.com/linux/core/6/x86_64/os +http://sunsite.rediris.es/mirror/fedora-redhat/core/6/x86_64/os +http://www.gtlib.gatech.edu/pub/fedora.redhat/linux/core/6/x86_64/os +http://www.jur-linux.org/download/fedora/6/x86_64/os +http://www.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os +http://www.muug.mb.ca/pub/fedora/linux/core/6/x86_64/os diff --git a/src/lib/distro-info/fedora-6_x86_64/mirrors/base_update b/src/lib/distro-info/fedora-6_x86_64/mirrors/base_update new file mode 100644 index 00000000..2775b991 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/mirrors/base_update @@ -0,0 +1,90 @@ +ftp://alviss.et.tudelft.nl/pub/fedora/linux/core/updates/6/x86_64 +http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/updates/6/x86_64 +http://download.fedora.redhat.com/pub/fedora/linux/updates/6/x86_64 +http://fedora.kiewel-online.de/linux/core/updates/6/x86_64 +http://fedora.mirror.facebook.com/linux/core/updates/6/x86_64 +http://fedora.mirror.garr.it/mirrors/fedora/linux/core/updates/6/x86_64 +http://fedora.secsup.org/linux/updates/6/x86_64 +ftp://fedora.secsup.org/pub/linux/redhat/fedora/linux/core/updates/6/x86_64 +http://fr2.rpmfind.net/linux/fedora/core/updates/6/x86_64 +http://ftp-stud.hs-esslingen.de/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.astral.ro/mirrors/fedora/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.belnet.be/linux/fedora/linux/core/updates/6/x86_64 +ftp://ftp.ceid.upatras.gr/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.chg.ru/pub/Linux/fedora/linux/core/updates/6/x86_64 +http://ftp.cica.es/fedora/linux/core/updates/6/x86_64 +ftp://ftp.ciril.fr/pub/linux/fedora/linux/core/updates/6/x86_64 +http://ftp.crc.dk/fedora/linux/core/updates/6/x86_64 +ftp://ftp.crc.dk/pub/mirrors/fedora/linux/core/updates/6/x86_64 +ftp://ftp.cru.fr/pub/linux/fedora/core/updates/6/x86_64 +http://ftp.dti.ad.jp/pub/Linux/Fedora/core/updates/6/x86_64 +http://ftp.fi.muni.cz/pub/linux/fedora/linux/core/updates/6/x86_64 +ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/core/updates/6/x86_64 +http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/updates/6/x86_64 +ftp://ftp.gtlib.gatech.edu/pub/fedora.redhat/linux/core/updates/6/x86_64 +http://ftp.gts.lug.ro/fedora/linux/core/updates/6/x86_64 +http://ftp.gui.uva.es/sites/fedora.redhat.com/linux/core/updates/6/x86_64 +http://ftp.heanet.ie/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/6/x86_64 +http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/6/x86_64 +ftp://ftp.kaist.ac.kr/fedora/linux/core/updates/6/x86_64 +http://ftp.kaist.ac.kr/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/6/x86_64 +http://ftp.linux.ee/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.linux.ncsu.edu/pub/fedora/linux/core/updates/6/x86_64 +ftp://ftp.linux.org.tr/pub/fedora/linux/core/updates/6/x86_64 +ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/updates/6/x86_64 +ftp://ftp.muug.mb.ca/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.nluug.nl/pub/os/Linux/distr/fedora/linux/core/updates/6/x86_64 +ftp://ftp.otenet.gr/pub/linux/fedora/linux/core/updates/6/x86_64 +ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/core/updates/6/x86_64 +http://ftp.ps.pl/pub/Linux/fedora-linux/core/updates/6/x86_64 +http://ftp.pwr.wroc.pl/pub/linux/fedora/linux/core/updates/6/x86_64 +ftp://ftp.rediris.es/mirror/fedora-redhat/core/updates/6/x86_64 +http://ftp.rhnet.is/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.riken.jp/Linux/fedora/core/updates/6/x86_64 +ftp://ftp.solnet.ch/mirror/fedora/linux/core/updates/6/x86_64 +http://ftp.stw-bonn.de/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.SURFnet.nl/pub/os/Linux/distr/fedora/linux/core/updates/6/x86_64 +http://ftp.tlk-l.net/pub/mirrors/fedora/core/updates/6/x86_64 +http://ftp.tu-chemnitz.de/pub/linux/fedora-enchilada/linux/core/updates/6/x86_64 +ftp://ftp.tvnet.hu/pub/fedora/linux/core/updates/6/x86_64 +ftp://ftp.uci.edu/mirrors/fedora/linux/core/updates/6/x86_64 +http://ftp.udl.es/pub/fedora/linux/core/updates/6/x86_64 +ftp://ftp.uninett.no/pub/linux/Fedora/core/updates/6/x86_64 +http://ftp.upjs.sk/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.usf.edu/pub/fedora/linux/core/updates/6/x86_64 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/core/updates/6/x86_64 +http://gulus.usherbrooke.ca/pub/distro/fedora/linux/core/updates/6/x86_64 +http://kdeforge.unl.edu/mirrors/fedora/linux/core/updates/6/x86_64 +http://limestone.uoregon.edu/ftp/fedora/linux/updates/6/x86_64 +http://linux.nssl.noaa.gov/fedora/linux/core/updates/6/x86_64 +http://mirror.aarnet.edu.au/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.anl.gov/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.cc.vt.edu/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.cogentco.com/pub/linux/fedora/linux/core/updates/6/x86_64 +ftp://mirror.cs.princeton.edu/pub/mirrors/fedora/linux/core/updates/6/x86_64 +http://mirror.fraunhofer.de/download.fedora.redhat.com/fedora/linux/core/updates/6/x86_64 +http://mirror.hiwaay.net/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.internode.on.net/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.karneval.cz/pub/linux/fedora/linux/core/updates/6/x86_64 +http://mirror.linux.duke.edu/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.newnanutilities.org/pub/fedora/linux/core/updates/6/x86_64 +http://mirror.nuvio.com/pub/fedora/linux/core/updates/6/x86_64 +ftp://mirror.nyi.net/fedora/linux/core/updates/6/x86_64 +http://mirror.optus.net/fedora/linux/core/updates/6/x86_64 +http://mirror.stanford.edu/fedora/linux/core/updates/6/x86_64 +http://mirror.steadfast.net/fedora/core/updates/6/x86_64 +http://mirror.switch.ch/ftp/mirror/fedora/linux/core/updates/6/x86_64 +ftp://mirror.switch.ch/mirror/fedora/linux/core/updates/6/x86_64 +http://mirror.web-ster.com/fedora/core/updates/6/x86_64 +http://mirrors.cat.pdx.edu/fedora/linux/core/updates/6/x86_64 +http://mirrors.ircam.fr/pub/fedora/linux/core/updates/6/x86_64 +http://mirrors.kernel.org/fedora/core/updates/6/x86_64 +http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/core/updates/6/x86_64 +http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/core/updates/6/x86_64 +http://srl.cs.jhu.edu/YUM/fedora/core/updates/6/x86_64 +http://sunsite.mff.cuni.cz/MIRRORS/fedora.redhat.com/linux/core/updates/6/x86_64 +http://www.jur-linux.org/download/fedora/updates/6/x86_64 +http://www.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/updates/6/x86_64 +http://www.muug.mb.ca/pub/fedora/linux/core/updates/6/x86_64 diff --git a/src/lib/distro-info/fedora-6_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/fedora-6_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/fedora-6_x86_64/settings.default b/src/lib/distro-info/fedora-6_x86_64/settings.default new file mode 100644 index 00000000..3e940b94 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/settings.default @@ -0,0 +1,125 @@ +bootstrap-packages = < + packages = < +package-subdir = Fedora/RPMS +prereq-packages = < + name = Fedora Core 6 + + + name = Fedora Core 6 updates + + + packages = < + + base = minimal + diff --git a/src/lib/distro-info/fedora-6_x86_64/settings.example b/src/lib/distro-info/fedora-6_x86_64/settings.example new file mode 100644 index 00000000..c41e6d33 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/settings.example @@ -0,0 +1,20 @@ +# 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 +# +# local-url = /srv/ftp/pub/pub/linux/fedora/linux/core/6/x86_64/os +# +# +# local-url = /srv/ftp/pub/linux/fedora/linux/core/updates/6/x86_64 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY new file mode 100644 index 00000000..592eba55 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY @@ -0,0 +1,34 @@ +The following public key can be used to verify RPM packages built and +signed by Red Hat, Inc. using `rpm -K' using the GNU GPG package. +Questions about this key should be sent to security@redhat.com. + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.0 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +mQGiBDfqVDgRBADBKr3Bl6PO8BQ0H8sJoD6p9U7Yyl7pjtZqioviPwXP+DCWd4u8 +HQzcxAZ57m8ssA1LK1Fx93coJhDzM130+p5BG9mYSWShLabR3N1KXdXQYYcowTOM +GxdwYRGr1Spw8QydLhjVfU1VSl4xt6bupPbWJbyjkg5Z3P7BlUOUJmrx3wCgobNV +EDGaWYJcch5z5B1of/41G8kEAKii6q7Gu/vhXXnLS6m15oNnPVybyngiw/23dKjS +ZVG7rKANEK2mxg1VB+vc/uUc4k49UxJJfCZg1gu1sPFV3GSa+Y/7jsiLktQvCiLP +lncQt1dV+ENmHR5BdIDPWDzKBVbgWnSDnqQ6KrZ7T6AlZ74VMpjGxxkWU6vV2xsW +XCLPA/9P/vtImA8CZN3jxGgtK5GGtDNJ/cMhhuv5tnfwFg4b/VGo2Jr8mhLUqoIb +E6zeGAmZbUpdckDco8D5fiFmqTf5+++pCEpJLJkkzel/32N2w4qzPrcRMCiBURES +PjCLd4Y5rPoU8E4kOHc/4BuHN903tiCsCPloCrWsQZ7UdxfQ5LQiUmVkIEhhdCwg +SW5jIDxzZWN1cml0eUByZWRoYXQuY29tPohVBBMRAgAVBQI36lQ4AwsKAwMVAwID +FgIBAheAAAoJECGRgM3bQqYOsBQAnRVtg7B25Hm11PHcpa8FpeddKiq2AJ9aO8sB +XmLDmPOEFI75mpTrKYHF6rkCDQQ36lRyEAgAokgI2xJ+3bZsk8jRA8ORIX8DH05U +lMH27qFYzLbT6npXwXYIOtVn0K2/iMDj+oEB1Aa2au4OnddYaLWp06v3d+XyS0t+ +5ab2ZfIQzdh7wCwxqRkzR+/H5TLYbMG+hvtTdylfqIX0WEfoOXMtWEGSVwyUsnM3 +Jy3LOi48rQQSCKtCAUdV20FoIGWhwnb/gHU1BnmES6UdQujFBE6EANqPhp0coYoI +hHJ2oIO8ujQItvvNaU88j/s/izQv5e7MXOgVSjKe/WX3s2JtB/tW7utpy12wh1J+ +JsFdbLV/t8CozUTpJgx5mVA3RKlxjTA+On+1IEUWioB+iVfT7Ov/0kcAzwADBQf9 +E4SKCWRand8K0XloMYgmipxMhJNnWDMLkokvbMNTUoNpSfRoQJ9EheXDxwMpTPwK +ti/PYrrL2J11P2ed0x7zm8v3gLrY0cue1iSba+8glY+p31ZPOr5ogaJw7ZARgoS8 +BwjyRymXQp+8Dete0TELKOL2/itDOPGHW07SsVWOR6cmX4VlRRcWB5KejaNvdrE5 +4XFtOd04NMgWI63uqZc4zkRa+kwEZtmbz3tHSdRCCE+Y7YVP6IUf/w6YPQFQriWY +FiA6fD10eB+BlIUqIw80VgjsBKmCwvKkn4jg8kibXgj4/TzQSx77uYokw1EqQ2wk +OZoaEtcubsNMquuLCMWijYhGBBgRAgAGBQI36lRyAAoJECGRgM3bQqYOhyYAnj7h +VDY/FJAGqmtZpwVp9IlitW5tAJ4xQApr/jNFZCTksnI+4O1765F7tA== +=3AHZ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-beta b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-beta new file mode 100644 index 00000000..ffcf6aed --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-beta @@ -0,0 +1,32 @@ +The following public key can be used to verify RPM packages built and +signed by Red Hat, Inc. for this beta using `rpm -K' using the GNU GPG +package. Questions about this key should be sent to security@redhat.com. + + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.6 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +mQGiBDySTqsRBACzc7xuCIp10oj5B2PAV4XzDeVxprv/WTMreSNSK+iC0bEz0IBp +Vnn++qtyiXfH+bGIE9jqZgIEnpttWhUOaU5LhcLFzy+m8NWfngIFP9QfGmGAe9Gd +LFeAdhj4RmSG/vgr7vDd83Hz22dv403Ar/sliWO4vDOrMmZBG57WGYTWtwCgkMsi +UUQuJ6slbzKn82w+bYxOlL0EAIylWJGaTkKOTL5DqVR3ik9aT0Dt3FNVYiuhcKBe +II4E3KOIVA9kO8in1IZjx2gs6K2UV+GsoAVANdfKL7l9O+k+J8OxhE74oycvYJxW +QzCgXMZkNcvW5wyXwEMcr6TVd/5BGztcMw8oT3/l2MtAEG/vn1XaWToRSO1XDMDz ++AjUA/4m0mTkN8S4wjzJG8lqN7+quW3UOaiCe8J3SFrrrhE0XbY9cTJI/9nuXHU1 +VjqOSmXQYH2Db7UOroFTBiWhlAedA4O4yuK52AJnvSsHbnJSEmn9rpo5z1Q8F+qI +mDlzriJdrIrVLeDiUeTlpH3kpG38D7007GhXBV72k1gpMoMcpbQ3UmVkIEhhdCwg +SW5jLiAoQmV0YSBUZXN0IFNvZnR3YXJlKSA8cmF3aGlkZUByZWRoYXQuY29tPohX +BBMRAgAXBQI8l5p/BQsHCgMEAxUDAgMWAgECF4AACgkQ/TcmiYl9oHqdeQCfZjw4 +F9sir3XfRAjVe9kYNcQ8hnIAn0WgyT7H5RriWYTOCfauOmd+cAW4iEYEEBECAAYF +AjyXmqQACgkQIZGAzdtCpg5nDQCfepuRUyuVJvhuQkPWySETYvRw+WoAnjAWhx6q +0npMx4OE1JGFi8ymKXktuQENBDySTq4QBADKL/mK7S8E3synxISlu7R6fUvu07Oc +RoX96n0Di6T+BS99hC44XzHjMDhUX2ZzVvYS88EZXoUDDkB/8g7SwZrOJ/QE1zrI +JmSVciNhSYWwqeT40Evs88ajZUfDiNbS/cSC6oui98iS4vxd7sE7IPY+FSx9vuAR +xOa9vBnJY/dx0wADBQQAosm+Iltt2uigC6LJzxNOoIdB5r0GqTC1o5sHCeNqXJhU +ExAG8m74uzMlYVLOpGZi4y4NwwAWvCWC0MWWnnu+LGFy1wKiJKRjhv5F+WkFutY5 +WHV5L44vp9jSIlBCRG+84jheTh8xqhndM9wOfPwWdYYu1vxrB8Tn6kA17PcYfHSI +RgQYEQIABgUCPJJergAKCRD9NyaJiX2geiCPAJ4nEM4NtI9Uj8lONDk6FU86PmoL +yACfb68fBd2pWEzLKsOk9imIobHHpzE= +=gpIn +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora new file mode 100644 index 00000000..17d4ec70 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora @@ -0,0 +1,27 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJ +D11NUCqH8c7EctOquOZ5zTcWxHiWWbLyKQwUw2SUvnWa5SSbi8kI8q9MTPsPvhwt +gMrQMLenMO+nsrxrSaG6XcD+ssfJNxC7NQVCQAj3pvvg9rKi3ygsM7CXHwCghgsq +X6TOr55HE90DbEsoq3b/jjsD/i8aIZ6urUgrpAkQslcakXdJLKgSdwjRUgVZgvYZ +b7kAx1iPq0t/AhB3NJw3zW4AAKJohGg3xj5K4V8PJEZrSIpoRYlF43Kqlfu2p5gh +WT89SP4YAlWPeTqf0+dTYUYz3b144k2ZFOdRuXIRxunoYNAUr9oMrxBXbJ/eY+0U +QX3pBACYzKizyY4JJgd0zFJmNkcdK9nzcm+btYFnYQo33w5GSE686UNr+9yiXt9t +mPRvNEbj3u+xoAX8B/5k3aZ5NbUhV64/VcKlUdRIxNlFCG7I9KgxeHWAYwi7yqOG +XM3T/v6o7GLdQEB0ChFqS7kUlqmwLV+C3QhlrFe/Cuk26i+Q6rQiRmVkb3JhIFBy +b2plY3QgPGZlZG9yYUByZWRoYXQuY29tPohbBBMRAgAbBQI/nZ07BgsJCAcDAgMV +AgMDFgIBAh4BAheAAAoJELRCadBPKm/S2PAAnRTlhorITphab+oxAHtbxZF9BVyD +AJ9WOVaZUG53IWWIAXOGv3j/cmr3lohGBBMRAgAGBQI/nZ22AAoJECGRgM3bQqYO +R5QAoIp1G+omVktq/snxpmz5UeHjlSYjAKCRr/ea/L7S7ZTxB18cf1TYfad1x4hG +BBARAgAGBQI/ntjgAAoJECnVuiSN9W0FUSUAoJnrone4J0o1HMkRz+6g9KVuO2Fy +AJ0XyebOzVmI9U5OyOfnNmYV0wnQcrkBDQQ/nZ08EAQAugOfLWJbKwMA9vg2mJU5 +94TZU0HRJkx/fqYhx0YxWWRpzplrEyvcDXuYcWi1Hwh0tD86T4fR5GV6joWiWClz +D+Hwhhb6gcSdeSGlGLlZAvWYtFSHWiv+3LaI9w8Vtczl99Bh2WiMDNDDGw0RQg6Z +aftldLSe4j1pffpFGQ8SuisAAwUEAKVxqLT7fC5xQ6oclcZ+PhoDlePQ1BiTS7tu +GM07bFF4nNvY91LL7S31pooz3XbGSWP8jxzSv1Fw35YhSmWGOBOEXluqMbVQGJJ5 +m8fqJOjC0imbfeWgr/T7zLrJeiljDxvX+6TyawyWQngF6v1Hq6FRV0O0bOp9Npt5 +zqCbDGs/iEYEGBECAAYFAj+dnTwACgkQtEJp0E8qb9L//gCcDVYnDegNCOxDn1se +dDwxw+0h8OcAn1CZHof15QqxnTwEnvwF2QeOI5dn +=mJAx +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-extras b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-extras new file mode 100644 index 00000000..e89f1643 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-extras @@ -0,0 +1,35 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBEG+vu8RBACyH3cUSp+DXbyIvZ075bGDhjhRCf8m44UW2cCQdO/45CJBkRnC +AA6SHthCrXCVKIuuo1jSwy8kMXt1P/7IpF6Tc8ZMzcHKTyNetuuD/A7oavgnrJNb +QVTScqbD6VrvjUAPpDz5TMPqMMFYwylp+ySKMQpoPOYoqdNE3XwnA5vOywCg44+S +KDWIV0j5xCeIAoa47VmgF2cEAK/FIZRkbb7+i2Fob1mxKsnuLN/xx67aBpU2w7HO +scVnkke08lRestDVk/6xb+lrq+gVLdNBfAANBrOcwRv2heu+Zu3PZGuC166/JWFM +kx5a9TkI0zQAw72LqKeX4VDBRz5fUoIs/C+3aGc5Mh+h8fZYjJGf0kr/90rnd/0e +WqsBA/9ONArdHN44aICt7xku/t98p9Da04A7kRYTHlLrBk5i0U4JJXKei7ZAzNi4 +Or//8ATepQdsBMCJVx1Ss/vJKxupLG9Mw43nbNuA5SmOSPnAoyglYadKyaUXBbVj +mkqf9ZkjOMfD5u9PEWMWMq3f8uf05qxsrBDeiyc7Fk0jBYTvnrQ4RmVkb3JhIFBy +ZSBFeHRyYXMgUmVsZWFzZSA8cHJlLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6I +XgQTEQIAHgUCQb6+7wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM +5uAMAKC+XaPSCYIpdcmJYEe9rNxYMz/hLwCeOyBYUYA2L0WnbfXuNafRqwta/s2I +RgQSEQIABgUCQgD+/AAKCRC0QmnQTypv0lVYAJoCLolPSuAj873GbV2+m3Bj6sS/ +UACeNcDmIWeruRld83uSQcx4xJyEOUa0KUZlZG9yYSBQcm9qZWN0IDxmZWRvcmEt +ZXh0cmFzQHJlZGhhdC5jb20+iF4EExECAB4FAkIAeFQCGwMGCwkIBwMCAxUCAwMW +AgECHgECF4AACgkQgu2VBBrHDOYu8wCffLm57mvcYApV7eqvHXr29gNAbLwAoJVq +JWvgBIvg8/4MiqwKAQ1MDkIUiEYEEhECAAYFAkIA/wQACgkQtEJp0E8qb9LQJACf +c0LteS513+5O6erQO7RBUxC/NI4AniDHK+Ogf5l5Gs2ciwD+WApsZ4mPtDBGZWRv +cmEgUHJvamVjdCA8ZmVkb3JhLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6IXgQT +EQIAHgUCQgB4iQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM5gZ7 +AJ9n8CYN6nvMqxCbQQZwvs7e/J4//QCeM3nDwC5EfEbEtOHPIYAqTf3IQZaIRgQS +EQIABgUCQgD/BAAKCRC0QmnQTypv0qKuAJ0cnqk9BbbblRSBbn72bK/BAquzywCe +M7S0C6rfrYlfOjQHQdVB5GitT9u5AQ0EQb6+8RAEAJmsZ5apOFz0Fj6RwX0D+nOU +Atdzd3zpTNzu4j8+L750ePutjuwizEmCxKycchuG+gGasLmdxY+xk5AUB7gLt4ms +eKsWyHvQt+H4wG8jjOjHWXlaJkZaYQUxpVPd6/11hkoqpodJ9ckfoIJnpUJWDcd3 +HTW7jdq+ZtBXjQlwvh3HAAMHA/9g50+hqjn23d91SaFTkvaAySZYHEF/xm5sOV1X +Z37XNFdl7JRl6BN7y59PE9Nk6qP4yHqH1G2YNDL3BmejChMF5GmEqluNdnvfFvwk +yqPvE7qCv8BhktPqsnrpFmtfeDFI4vztD08oab9LdkDvQwLHBZpc+wCb4VJzOkaZ +7e7VP4hJBBgRAgAJBQJBvr7xAhsMAAoJEILtlQQaxwzmxdYAn3X4X/ENC3V4yPDR +7X6oVeIVr5fvAJ4n5vY10NpvYKV5arzKd8DSW2m5Bg== +=N/fy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-legacy b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-legacy new file mode 100644 index 00000000..d15e7e90 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-legacy @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBEALkQkRBACCBCp/a5rsqy2Q0NW/2OMkYtsb3k5M6dsQYoHDLiZK4VG1j+Bf +2zzp+HJiUnLFp/l7mROuRioU9/UHpEYFIVunBYXeZf84OxB+mruh9UZtYn3oVXtH +oaMI7hIFirTZ5eEY7zrfvTbvZ2Sm5cE3F2G5sWVOfxhl5opinuWN4xtSwwCggooh +LqarkF4KN6D8xoyjrhLaxiMD/Az7RE6oH0Vwl9dX7YmccymDEesT5Ql6Q5FvfkuZ +F5ZaQwaBO2ko2hMMh2AdCxoYAZPjWqC5r6Wy9P8hMfh+A0S4zon2DE/r0d4vLEY2 +HoptwtElq6gpltydx+/vXhZWkwCO//Kz9wXgZr496KtGXmEKYtdlVScBW6OvdyyD +18zeA/9RuY59C7uxxe6cu7amqjP52xx5rHGkdJD5E8o3rmjdsr9tJ3FcjtIV0DV2 +BkfLIMnsp2gd972n7JBzlA9LJ+JTtMzvf9WdrErpRz1VeI1jHe4/hNGe3hd6xJIE +rxj5FH+LwTj3vfErZdKsWOuudNkz1N4AwZr/k05gV3bi7j8RCLRIRmVkb3JhIExl +Z2FjeSAoaHR0cDovL3d3dy5mZWRvcmFsZWdhY3kub3JnKSA8c2Vjbm90aWNlQGZl +ZG9yYWxlZ2FjeS5vcmc+iFkEExECABkFAkALkQkECwcDAgMVAgMDFgIBAh4BAheA +AAoJEBCMRRJzEAL686wAn3bA5dioMd0UDpUaES9TglLDpONbAJ467XWdHHwhxuHz +oxWc3q7rWPBinLkCDQRAC5EuEAgAsPAVcrvrKB1A/hxoM61KEgaLB9GnGUOgoaV6 +I58stO3sxaxj3bblrpIJjo02BA49xrtL8kpqjKveABThVC1yiSYfySmXKHlO09cv +A+qj+QSxieRciFKc50F1+j8q5Hqcigxzwhr4sJt5IhAx6HIwar5uxNNBgE98JN42 +GthUH39G+alRmzVd+3gQCLFroJSzHtFX7IlwHM33owAZwIVGlUhlBTHdbsvGf0xG +mPYkI+JAUXpTTsnP7kR0/Ktm3zAHBEMw19eqQ5MSwVo28cA+jq2sLrL5DiE5quCd +tB/RVnUUdbfN/o8sN6yxssNB6ZOB61l0K8bvm+9Qgstn/EQFSwADBggAmmFJueD1 +iXehZsRtaH+qZw7z6Q6jUPxDTiuVPhLkUux3wOSWMOp6S+ZYliCaw32TBKgE2SwT +NnvTJYsuGLf3ECxOxMmu2McDHYZM82zRV4PRBMKFfiOa67/x5lhZgEkqf9TO+wk5 +M67GYbjZoyBaYEiE+eWD2cdema3n3zXzy+q2UEkHkzHx6ME9dRrgND3EW2hC9GJ6 +7wY9h+BlUR6Am4o0/ZLZJ2QEvyVnlI3/zZo9L6h8waZKI4l16nuDr/O8z2UOYc/X +OMwBJCVwvbB2Z/f91dhy2EVWJZyyZBCG/FMXXDchxKwJOOQgrVbxWGDIMSdyHLUL +2FuWnC/vdKc7wYhGBBgRAgAGBQJAC5EuAAoJEBCMRRJzEAL6wkcAnAlIrH0JuGjL +T17HoheG/iUbj4Z4AJ9b/7OPGgNglwrLQJfihyPzManKYw== +=wmoy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide new file mode 100644 index 00000000..f61eeb11 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-rawhide @@ -0,0 +1,21 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+doUwRBADudl/P8RqkzaHstvwbT93MByo7yX+xHcr0FaVAoG9Qfn+2O0qy +nbNIz9BoieCx9zfgruBBaYjcT1p7QjdyfvF3wLq6ak84ne+QW91rctzqG8JqPhSB +e34L7T0JnsUdiLfnfq895Hy67SYTOcJ6sN1Eg/eKYPP0CHKL9BY9atGRZwCg14Kh +va6OSfIDyV6DNnfYF+cUSwsEALARvclTS8lLL+4sgZthg4D4Od4mYayr0QpKpoBI +0RxOj26v038unOGqEjjqX/F36PwQv6wt6DmaGd9atQ/VUqW4cnKmNfaxJVAqznqW +q80FKzTPH/JC/20v/5xx0FoxEVSCoKs2YPdXEQfEUAzNG9JC4GHNCxt2Gtnt4o5l +sn15BADepds5sa/ptu//hJcYhrvcgzUJQR/JQdDbtK+Rzrvi2oZQFZUHzCVVxxfE +0AULmX5bEC08nAGtp418ceeo1PdqlcVE+kaxuFpPgto/Sd1FvJW4P2B1a7rcUjGc +BarOMVY8QpFZs5iIlkzZdPns1BCijWlhltOiyrdxyNrM49hjlrRGRmVkb3JhIFBy +b2plY3QgYXV0b21hdGVkIGJ1aWxkIHNpZ25pbmcga2V5ICgyMDAzKSA8cmF3aGlk +ZUByZWRoYXQuY29tPohbBBMRAgAbBQI/naFMBgsJCAcDAgMVAgMDFgIBAh4BAheA +AAoJEOE4XU4c3byppW8An385Vt7LXSAIHqdH85QTCH512cr+AJ9vB4inXB6lxOoq +sbnKY0HG4Sr1IIhGBBMRAgAGBQI/naOPAAoJELRCadBPKm/SFMgAn2/FfBhf2Yov +j3gH8Z1t+bbsHRkLAJ94tjdweTZmfZsQZ7YaDXpeJ2iY+4hGBBARAgAGBQI/ntkG +AAoJECnVuiSN9W0Fi5gAn3wSpemY+8rq8aFfRLEumrSksfUoAJ95YyaGdRXv+fWt +KfPJSNTqsqhiKA== +=umuG +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-test b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-test new file mode 100644 index 00000000..efb8d813 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-fedora-test @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD+do/cRBACAF7Gv91v32uUrT4nZe+qKgLl59HmtvmaOzT4lInrF95Sget7p +2TpnIqh5H0x0VGpdoeNfHvlXCw+aP50mTJv91BYmLfelkTzokqpEU5YpqGOqa5BV +jelnoK1VKOcXMB28d79Gz9tn7friZN4SnyWbcSIA4C3dHNhsjifIYf0rywCg3y19 +3N6jODa0VSGeeEb4whE2xccD/i/rqk0MQmW6td2Dz2jTBaHxyf7FIcH18YDtwraD +otBRxqGkTVyFGc1q7ZTrRsbzdjIfxbp2C6GT2VJ5kHuRm9jf7JdW5fOhun+oLimR +erTlrPmgz8qQRcqUm6fkmUsYufL1u7DdyfxX7jI2ngkbAR+CsZ8Cj5JhBMeAXc/D +WWhPA/4mzZ70hn1OrGLokzxNr4O7u1+n0thsxGN0qfuTNGIc09UKCoAN42he7Qjs +kIqiE7gLtLzx8elxVOK19tNcaAiLoqmtxlLQqB03pLy4V0tMP9QcWQETbc67qTd1 +zASiefGjf364j4lQd+X9AqdyhUrnax3UgPD5IxilBp92Cw7Qi7QzRmVkb3JhIFBy +b2plY3QgKFRlc3QgU29mdHdhcmUpIDxyYXdoaWRlQHJlZGhhdC5jb20+iFsEExEC +ABsFAj+do/cGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ2oTL1DDJ7Pgh8QCgqNNs +b7xdW+UhzyZw+DEAQF6e+q4AmwVus4u9REyd/aigK2RvrdtcsNy0iEYEExECAAYF +Aj+dpBoACgkQtEJp0E8qb9Ji4QCfanY0CXnRwtBnm8GEMRNqgfGgcc0AnRunlejp +JRxGPaRsmY/11stYll32iEYEEBECAAYFAj+e2SIACgkQKdW6JI31bQWWNQCfTKcX +/7lerpwIVHcAILDduz9qxssAn1t46ERJ9EqsxJxSFlN7oBPyNkt6 +=R9He +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-rawhide b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-rawhide new file mode 100644 index 00000000..2cb42458 --- /dev/null +++ b/src/lib/distro-info/fedora-6_x86_64/trusted-package-keys/RPM-GPG-KEY-rawhide @@ -0,0 +1,24 @@ +By using `rpm -K' and the GNU GPG package, the following public key can be +used to verify RPM packages built and signed by Red Hat, Inc. for rawhide +and testing. Questions about this key should be sent to +security@redhat.com. + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBD9DmVMRBACW9LRPUtKnUTNeSQN5huiPA0+d0hGLTEG1kkUj47zWC3RXZ1Xh +c/6yzWOrPk85Q7ys/dGoLLqsfekkxDVipUE0iS+47VMYgm531x4cd2oKnQb3Z/2R +3A6kjDkc2KyTmfOsZ8DTdL76u81Rnv6MCQjXTJCFOQzv3yxmn6ZDhOoSkwCg24J2 +Qh0zuvvtyfNMsj+S8ksase8D/1qQgcURZDYZkaxrQSsdyZWsqb4NT51snXG5wE4L +Yh1VGH26YU/kY7YxU5TPo8kbQTztkqaoFHk/O6zx+Q/iS8Izv2ByTsZv0F/Weym7 +Fyf+x+PTA7oDvV9hN/aJy/UPF+t4GRrsEV2mH8Ee3hIZGKSWwTwZZh+JyfIcqkyU +zwY9BACLOZ8xZjHzU4MjZw2qgWemr96Zyr2foGl0+2G1STnluWf24//nNWBiLFuA +txucItsppnUM0qB5RZ69N4c9MOmCZkBoahP3Q30qAsaAN4RaaE6AG7Yms0wtPW3m +qzzhcuCtRAumXqA/oQWYqmHaEwUPenJaxut5rasApm2r5QxaQbRFUmVkIEhhdCwg +SW5jLiBhdXRvbWF0ZWQgYnVpbGQgc2lnbmluZyBrZXkgKDIwMDMpIDxyYXdoaWRl +QHJlZGhhdC5jb20+iFsEExECABsFAj9DmVMGCwkIBwMCAxUCAwMWAgECHgECF4AA +CgkQlM1XQuQY46oixwCfUKmLRHSIBd1FbGTaR5ARBfSsK+MAn1BfxKyahkQ0ScN7 +9RNaYei9kxGIiEYEExECAAYFAj9DvtMACgkQIZGAzdtCpg5exACeJlj9DExab5AK +C0eQHr8td+WRJ0QAnRNDGXQCBENRgFNgcecDMAr7P6se +=LmwA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/scilin-4.7/export-filter.example b/src/lib/distro-info/scilin-4.7/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/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/src/lib/distro-info/scilin-4.7/prereqfiles/etc/group b/src/lib/distro-info/scilin-4.7/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/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/src/lib/distro-info/scilin-4.7/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-4.7/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-4.7/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-4.7/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/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/src/lib/distro-info/scilin-4.7/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-4.7/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/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/src/lib/distro-info/scilin-4.7/settings.default b/src/lib/distro-info/scilin-4.7/settings.default new file mode 100644 index 00000000..79f006fc --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 4.7 + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-4.7/settings.example b/src/lib/distro-info/scilin-4.7/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-4.7/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/scilin-5.3/export-filter.example b/src/lib/distro-info/scilin-5.3/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/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/src/lib/distro-info/scilin-5.3/prereqfiles/etc/group b/src/lib/distro-info/scilin-5.3/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/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/src/lib/distro-info/scilin-5.3/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-5.3/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-5.3/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-5.3/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/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/src/lib/distro-info/scilin-5.3/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-5.3/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/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/src/lib/distro-info/scilin-5.3/settings.default b/src/lib/distro-info/scilin-5.3/settings.default new file mode 100644 index 00000000..9f964927 --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 5.3 + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-5.3/settings.example b/src/lib/distro-info/scilin-5.3/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-5.3/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/scilin-5.4/export-filter.example b/src/lib/distro-info/scilin-5.4/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/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/src/lib/distro-info/scilin-5.4/prereqfiles/etc/group b/src/lib/distro-info/scilin-5.4/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/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/src/lib/distro-info/scilin-5.4/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-5.4/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-5.4/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-5.4/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/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/src/lib/distro-info/scilin-5.4/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-5.4/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/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/src/lib/distro-info/scilin-5.4/settings.default b/src/lib/distro-info/scilin-5.4/settings.default new file mode 100644 index 00000000..5b86aab9 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 5.4 + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-5.4/settings.example b/src/lib/distro-info/scilin-5.4/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/scilin-5.4_x86_64/export-filter.example b/src/lib/distro-info/scilin-5.4_x86_64/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_x86_64/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/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/group b/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_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/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_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/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-5.4_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_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/src/lib/distro-info/scilin-5.4_x86_64/settings.default b/src/lib/distro-info/scilin-5.4_x86_64/settings.default new file mode 100644 index 00000000..fdc4f5f4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_x86_64/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 5.4 64Bit + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-5.4_x86_64/settings.example b/src/lib/distro-info/scilin-5.4_x86_64/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-5.4_x86_64/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/scilin-5.5/export-filter.example b/src/lib/distro-info/scilin-5.5/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/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/src/lib/distro-info/scilin-5.5/prereqfiles/etc/group b/src/lib/distro-info/scilin-5.5/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/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/src/lib/distro-info/scilin-5.5/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-5.5/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-5.5/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-5.5/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/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/src/lib/distro-info/scilin-5.5/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-5.5/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/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/src/lib/distro-info/scilin-5.5/settings.default b/src/lib/distro-info/scilin-5.5/settings.default new file mode 100644 index 00000000..29996f63 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 5.5 + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-5.5/settings.example b/src/lib/distro-info/scilin-5.5/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/scilin-5.5_x86_64/export-filter.example b/src/lib/distro-info/scilin-5.5_x86_64/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_x86_64/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/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/group b/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_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/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_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/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/scilin-5.5_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_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/src/lib/distro-info/scilin-5.5_x86_64/settings.default b/src/lib/distro-info/scilin-5.5_x86_64/settings.default new file mode 100644 index 00000000..7c0f832b --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_x86_64/settings.default @@ -0,0 +1,30 @@ +bootstrap-packages = < + packages = < +package-subdir = ??? +prereq-packages = < + name = Scientific Linux 5.5 64Bit + repo-subdir = ? + file-for-speedtest = ? + + + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/scilin-5.5_x86_64/settings.example b/src/lib/distro-info/scilin-5.5_x86_64/settings.example new file mode 100644 index 00000000..5ae02428 --- /dev/null +++ b/src/lib/distro-info/scilin-5.5_x86_64/settings.example @@ -0,0 +1,17 @@ +# 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 +# +# local-url = /srv/ftp/pub/some-distribution/inst-source +# + +# add a new selection: +# +# base = minimal +# packages = < diff --git a/src/lib/distro-info/suse-10.2/export-filter.example b/src/lib/distro-info/suse-10.2/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2/mirrors/base b/src/lib/distro-info/suse-10.2/mirrors/base new file mode 100644 index 00000000..fae4451d --- /dev/null +++ b/src/lib/distro-info/suse-10.2/mirrors/base @@ -0,0 +1,2 @@ +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/oss +http://download.opensuse.org/distribution/10.2/repo/oss \ No newline at end of file diff --git a/src/lib/distro-info/suse-10.2/mirrors/base_non-oss b/src/lib/distro-info/suse-10.2/mirrors/base_non-oss new file mode 100644 index 00000000..3ecadd23 --- /dev/null +++ b/src/lib/distro-info/suse-10.2/mirrors/base_non-oss @@ -0,0 +1,2 @@ +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/non-oss +http://download.opensuse.org/distribution/10.2/repo/non-oss \ No newline at end of file diff --git a/src/lib/distro-info/suse-10.2/mirrors/base_update b/src/lib/distro-info/suse-10.2/mirrors/base_update new file mode 100644 index 00000000..5422bc2f --- /dev/null +++ b/src/lib/distro-info/suse-10.2/mirrors/base_update @@ -0,0 +1,6 @@ +http://distro.ibiblio.org/pub/linux/distributions/suse/suse/update/10.2 +http://lisa.gov.pt/ftp/suse/update/10.2 +http://mirrors.kernel.org/suse/update/10.2 +http://suse.cs.utah.edu/suse/update/10.2 +http://suse.mirrors.tds.net/pub/suse/update/10.2 +http://www.mirrorservice.org/sites/ftp.suse.com/pub/suse/update/10.2 diff --git a/src/lib/distro-info/suse-10.2/prereqfiles/etc/group b/src/lib/distro-info/suse-10.2/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2/prereqfiles/etc/hosts b/src/lib/distro-info/suse-10.2/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-10.2/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-10.2/prereqfiles/etc/passwd b/src/lib/distro-info/suse-10.2/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2/prereqfiles/etc/shadow b/src/lib/distro-info/suse-10.2/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2/settings.default b/src/lib/distro-info/suse-10.2/settings.default new file mode 100644 index 00000000..f17a1b0a --- /dev/null +++ b/src/lib/distro-info/suse-10.2/settings.default @@ -0,0 +1,1061 @@ +bootstrap-packages = < + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 10.2 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.2 non-OSS + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.2 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = textmode + packages = < + + base = minimal + + diff --git a/src/lib/distro-info/suse-10.2/settings.example b/src/lib/distro-info/suse-10.2/settings.example new file mode 100644 index 00000000..2905cef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/10.2 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..434ca172 --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc new file mode 100644 index 00000000..e0628d2c --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF +AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE +AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ +Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 +JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ +=ZmDA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..5a4e4912 --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc new file mode 100644 index 00000000..e81d472f --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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 +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL +CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF +YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=tJSz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc new file mode 100644 index 00000000..2769097c --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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 +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD +BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q +W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe +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 +1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l +/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO +=pJli +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..d653ac28 --- /dev/null +++ b/src/lib/distro-info/suse-10.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-10.2/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5e96ad54 Binary files /dev/null and b/src/lib/distro-info/suse-10.2/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-10.2_x86_64/export-filter.example b/src/lib/distro-info/suse-10.2_x86_64/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/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/src/lib/distro-info/suse-10.2_x86_64/mirrors/base b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base new file mode 100644 index 00000000..fae4451d --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base @@ -0,0 +1,2 @@ +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/oss +http://download.opensuse.org/distribution/10.2/repo/oss \ No newline at end of file diff --git a/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..3ecadd23 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_non-oss @@ -0,0 +1,2 @@ +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/non-oss +http://download.opensuse.org/distribution/10.2/repo/non-oss \ No newline at end of file diff --git a/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_update b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_update new file mode 100644 index 00000000..02d2ff3d --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/mirrors/base_update @@ -0,0 +1,5 @@ +http://lisa.gov.pt/ftp/suse/update/10.2 +http://mirrors.kernel.org/suse/update/10.2 +http://suse.cs.utah.edu/suse/update/10.2 +http://suse.mirrors.tds.net/pub/suse/update/10.2 +http://www.mirrorservice.org/sites/ftp.suse.com/pub/suse/update/10.2 diff --git a/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-10.2_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-10.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/src/lib/distro-info/suse-10.2_x86_64/settings.default b/src/lib/distro-info/suse-10.2_x86_64/settings.default new file mode 100644 index 00000000..e17a378c --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/settings.default @@ -0,0 +1,1061 @@ +bootstrap-packages = < + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 10.2 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.2 non-OSS + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.2 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = textmode + packages = < + + base = minimal + diff --git a/src/lib/distro-info/suse-10.2_x86_64/settings.example b/src/lib/distro-info/suse-10.2_x86_64/settings.example new file mode 100644 index 00000000..2905cef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/10.2 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..434ca172 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc new file mode 100644 index 00000000..e0628d2c --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF +AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE +AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ +Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 +JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ +=ZmDA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..5a4e4912 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc new file mode 100644 index 00000000..e81d472f --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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 +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL +CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF +YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=tJSz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc new file mode 100644 index 00000000..2769097c --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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 +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD +BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q +W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe +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 +1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l +/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO +=pJli +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..d653ac28 --- /dev/null +++ b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (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/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5e96ad54 Binary files /dev/null and b/src/lib/distro-info/suse-10.2_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-10.3/export-filter.example b/src/lib/distro-info/suse-10.3/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/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/src/lib/distro-info/suse-10.3/mirrors/base b/src/lib/distro-info/suse-10.3/mirrors/base new file mode 100644 index 00000000..68f41317 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/mirrors/base @@ -0,0 +1,250 @@ +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/oss +http://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/oss +http://www.lizardsource.cn/distribution/10.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/10.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/oss +http://download.opensuse.or.id/distribution/10.3/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/10.3/repo/oss +ftp://www.lizardsource.cn/distribution/10.3/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/10.3/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/10.3/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.cbn.net.id/distribution/10.3/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/10.3/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/10.3/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/10.3/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/10.3/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/10.3/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/10.3/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/oss +http://ftp.daum.net/opensuse/distribution/10.3/repo/oss +http://mirror.suse.ru/distribution/10.3/repo/oss +http://77.88.19.68/opensuse/distribution/10.3/repo/oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/10.3/repo/oss +http://77.88.19.73/opensuse/distribution/10.3/repo/oss +http://77.88.19.74/opensuse/distribution/10.3/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/oss +http://93.158.155.193/opensuse/distribution/10.3/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/10.3/repo/oss +ftp://ftp.daum.net/opensuse/distribution/10.3/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/10.3/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/10.3/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/10.3/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/10.3/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/10.3/repo/oss +ftp://mirror.in.th/opensuse/distribution/10.3/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/10.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/10.3/repo/oss +http://suse.inode.at/opensuse/distribution/10.3/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/oss +ftp://suse.inode.at/opensuse/distribution/10.3/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/oss +http://suse.lagis.at/opensuse/distribution/10.3/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/10.3/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/10.3/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://mirrors.netbg.com/opensuse/distribution/10.3/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/10.3/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/10.3/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://suse.lagis.at/opensuse/distribution/10.3/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/10.3/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://opensuse.intergenia.de/distribution/10.3/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/10.3/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://widehat.opensuse.org/distribution/10.3/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/10.3/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://opensuse-linuxmigratio.at/distribution/10.3/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/10.3/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/10.3/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/10.3/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/10.3/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/oss +http://mirror.ovh.net/opensuse/distribution/10.3/repo/oss +http://opensuse.cict.fr/distribution/10.3/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/10.3/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/10.3/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/10.3/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/10.3/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/10.3/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/10.3/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/10.3/repo/oss +http://repo1.linux.edu.lv/distribution/10.3/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/10.3/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/10.3/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://repo1.linux.edu.lv/distribution/10.3/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/oss +http://opensuse.hro.nl/opensuse/distribution/10.3/repo/oss +http://opensuse.uib.no/distribution/10.3/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/10.3/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/10.3/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/10.3/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/10.3/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/oss +http://opensuse.ynet.sk/distribution/10.3/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/10.3/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/10.3/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/10.3/repo/oss +http://linux.dell.com/repo/community/distribution/10.3/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/10.3/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/oss +http://mirror.umoss.org/opensuse/distribution/10.3/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.ca.unixheads.org/distribution/10.3/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/10.3/repo/oss +http://mirrors.xmission.com/opensuse/distribution/10.3/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/oss +http://opensuse.cs.utah.edu/distribution/10.3/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/10.3/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/10.3/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/10.3/repo/oss +http://130.57.19.201/distribution/10.3/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/10.3/repo/oss +http://ftp.utexas.edu/opensuse/distribution/10.3/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/10.3/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/10.3/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/10.3/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/oss +http://mirror.nyi.net/opensuse/distribution/10.3/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/10.3/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/10.3/repo/oss +http://mirrors.rit.edu/opensuse/distribution/10.3/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/10.3/repo/oss +ftp://mirror.nyi.net/opensusedistribution/10.3/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/oss +http://200.221.9.37/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.patan.com.ar/distribution/10.3/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/10.3/repo/oss +http://opensuse.pop.com.br/distribution/10.3/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/10.3/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/oss diff --git a/src/lib/distro-info/suse-10.3/mirrors/base_non-oss b/src/lib/distro-info/suse-10.3/mirrors/base_non-oss new file mode 100644 index 00000000..d3202f2b --- /dev/null +++ b/src/lib/distro-info/suse-10.3/mirrors/base_non-oss @@ -0,0 +1,248 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/10.3/repo/non-oss +ftp://www.lizardsource.cn/distribution/10.3/repo/non-oss +http://www.lizardsource.cn/distribution/10.3/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/non-oss +http://download.opensuse.or.id/distribution/10.3/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.unej.ac.id/opensuse/distribution/10.3/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/10.3/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/10.3/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/10.3/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cbn.net.id/distribution/10.3/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/10.3/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/10.3/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/10.3/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/10.3/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://ftp.daum.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/non-oss +http://77.88.19.68/opensuse/distribution/10.3/repo/non-oss +http://77.88.19.73/opensuse/distribution/10.3/repo/non-oss +http://mirror.suse.ru/distribution/10.3/repo/non-oss +http://77.88.19.74/opensuse/distribution/10.3/repo/non-oss +http://93.158.155.193/opensuse/distribution/10.3/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/10.3/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/10.3/repo/non-oss +http://suse.inode.at/opensuse/distribution/10.3/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/10.3/repo/non-oss +http://suse.lagis.at/opensuse/distribution/10.3/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/10.3/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/10.3/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/10.3/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/10.3/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/10.3/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://opensuse.intergenia.de/distribution/10.3/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://widehat.opensuse.org/distribution/10.3/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/10.3/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/10.3/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/10.3/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cict.fr/distribution/10.3/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/10.3/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/10.3/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/10.3/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/10.3/repo/non-oss +http://repo1.linux.edu.lv/distribution/10.3/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/10.3/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/10.3/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/10.3/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/10.3/repo/non-oss +http://opensuse.uib.no/distribution/10.3/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/10.3/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/10.3/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://opensuse.ynet.sk/distribution/10.3/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/10.3/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/10.3/repo/non-oss +http://linux.dell.com/repo/community/distribution/10.3/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/10.3/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/10.3/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cs.utah.edu/distribution/10.3/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/10.3/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/10.3/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/10.3/repo/non-oss +http://130.57.19.201/distribution/10.3/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/10.3/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/10.3/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/10.3/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/10.3/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/10.3/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.patan.com.ar/distribution/10.3/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/10.3/repo/non-oss +http://opensuse.pop.com.br/distribution/10.3/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/10.3/repo/non-oss diff --git a/src/lib/distro-info/suse-10.3/mirrors/base_update b/src/lib/distro-info/suse-10.3/mirrors/base_update new file mode 100644 index 00000000..eef3a5ff --- /dev/null +++ b/src/lib/distro-info/suse-10.3/mirrors/base_update @@ -0,0 +1,251 @@ +http://opensuse.mirror.ac.za/opensuse/update/10.3 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/10.3 +http://mirror.lupaworld.com/opensuse/update/10.3 +ftp://opensuse.mirror.ac.za/opensuse/update/10.3 +http://www.lizardsource.cn/update/10.3 +http://mirror.alva.ge/pub/opensuse/update/10.3 +http://mirror.alva.ge/pub/opensuse/update/10.3 +ftp://www.lizardsource.cn/update/10.3 +http://download.opensuse.or.id/update/10.3 +http://mirror.unej.ac.id/opensuse/update/10.3 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/10.3 +ftp://mirror.unej.ac.id/opensuse/update/10.3 +http://repo.ugm.ac.id/opensuse/update/10.3 +http://dl2.foss-id.web.id/opensuse/update/10.3 +http://mirror.isoc.org.il/pub/opensuse/update/10.3 +http://opensuse.cbn.net.id/update/10.3 +ftp://opensuse.cbn.net.id/pub/opensuse/update/10.3 +ftp://mirror.isoc.org.il/opensuse/update/10.3 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/10.3 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/10.3 +ftp://dl2.foss-id.web.id/repo/opensuse/update/10.3 +ftp://ftp.kddilabs.jp/Linux/packages/opensuseupdate/10.3 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/10.3 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/10.3 +ftp://repo.ugm.ac.id/opensuse/update/10.3 +http://ftp.novell.co.jp/pub/opensuse/update/10.3 +ftp://ftp.riken.jp/Linux/opensuse/update/10.3 +http://mirror.suse.ru/update/10.3 +ftp://ftp.daum.net/opensuse/update/10.3 +http://77.88.19.68/opensuse/update/10.3 +ftp://ftp.novell.co.jp/pub/opensuse/update/10.3 +http://77.88.19.73/opensuse/update/10.3 +http://77.88.19.74/opensuse/update/10.3 +http://ftp.daum.net/opensuse/update/10.3 +http://93.158.155.193/opensuse/update/10.3 +http://ftp.riken.jp/Linux/opensuse/update/10.3 +ftp://ftp.chg.ru/pub/opensuse/update/10.3 +ftp://spreader.yandex.net/opensuse/update/10.3 +ftp://seeder.yandex.net/opensuse/update/10.3 +ftp://dispenser.yandex.net/opensuse/update/10.3 +ftp://allotter.yandex.net/opensuse/update/10.3 +ftp://ftp.kaist.ac.kr/opensuse/update/10.3 +http://ftp.chg.ru/pub/opensuse/update/10.3 +http://mirror.nus.edu.sg/opensuse/update/10.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/10.3 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/10.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/10.3 +ftp://mirror.in.th/opensuse/update/10.3 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/10.3 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/10.3 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/10.3 +http://ftp.twaren.net/Linux/OpenSuSE/update/10.3 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/10.3 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/10.3 +http://mirror-fpt-telecom.fpt.net/opensuse/update/10.3 +http://suse.inode.at/opensuse/update/10.3 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/10.3 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/10.3 +http://ftp.tugraz.at/mirror/opensuse/update/10.3 +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/update/10.3 +ftp://ftp.tugraz.at/mirror/opensuse/update/10.3 +http://suse.lagis.at/opensuse/update/10.3 +ftp://suse.lagis.at/opensuse/update/10.3 +http://mirror.opensuse.com.ba/opensuse/update/10.3 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/10.3 +ftp://suse.inode.at/opensuse/update/10.3 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/10.3 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/10.3 +http://mirrors.netbg.com/opensuse/update/10.3 +ftp://mirrors.netbg.com/opensuse/update/10.3 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/10.3 +ftp://mirror.switch.ch/mirror/opensuse/update/10.3 +http://mirror.switch.ch/ftp/mirror/opensuse/update/10.3 +http://ftp.linux.cz/pub/linux/opensuse/update/10.3 +http://mirror.karneval.cz/pub/linux/opensuse/update/10.3 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/10.3 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/10.3 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/10.3 +http://ftp5.gwdg.de/pub/opensuse/update/10.3 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/10.3 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/10.3 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/10.3 +ftp://ftp5.gwdg.de/pub/opensuse/update/10.3 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/10.3 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/10.3 +http://ftp.halifax.rwth-aachen.de/opensuse/update/10.3 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/10.3 +http://opensuse.intergenia.de/update/10.3 +http://ftp.uni-ulm.de/mirrors/opensuse/update/10.3 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/10.3 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/10.3 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/10.3 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/10.3 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/10.3 +http://ftp.uni-kl.de/pub/linux/opensuse/update/10.3 +http://ftp3.gwdg.de/pub/opensuse/update/10.3 +http://widehat.opensuse.org/update/10.3 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/10.3 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/10.3 +ftp://ftp4.gwdg.de/pub/opensuse/update/10.3 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/10.3 +http://ftp.uni-kassel.de/opensuse/update/10.3 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/10.3 +http://ftp4.gwdg.de/pub/opensuse/update/10.3 +http://ftp.uni-bayreuth.de/linux/opensuse/update/10.3 +ftp://ftp3.gwdg.de/pub/opensuse/update/10.3 +http://opensuse-linuxmigratio.at/update/10.3 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/10.3 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/10.3 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/10.3 +http://ftp.uni-siegen.de/opensuse/update/10.3 +ftp://ftp.uni-siegen.de/pub/opensuse/update/10.3 +http://ftp.klid.dk/ftp/opensuse/update/10.3 +http://ftp.estpak.ee/pub/suse/opensuse/update/10.3 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/10.3 +http://ftp.gui.uva.es/sites/opensuse.org/update/10.3 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/10.3 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/10.3 +ftp://ftp.klid.dk/opensuse/update/10.3 +http://suse.bifi.unizar.es/opensuse/update/10.3 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/10.3 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/10.3 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/10.3 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/10.3 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.rediris.es/pub/mirror/opensuse/update/10.3 +http://opensuse.mirrors.proxad.net/opensuse/update/10.3 +http://fr2.rpmfind.net/linux/opensuse/update/10.3 +http://mirror.ovh.net/opensuse/update/10.3 +http://opensuse.cict.fr/update/10.3 +ftp://mirror.ovh.net/opensuse/update/10.3 +http://www.mirrorservice.org/sites/download.opensuse.org/update/10.3 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/10.3 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/10.3 +ftp://fr2.rpmfind.net/linux/opensuse/update/10.3 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/10.3 +ftp://mirror.cict.fr/opensuse/update/10.3 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/10.3 +http://ftp.ntua.gr/pub/linux/opensuse/update/10.3 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/10.3 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/10.3 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/10.3 +http://roxen.integrity.hu/pub/opensuse/update/10.3 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/10.3 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/10.3 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/10.3 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/10.3 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/10.3 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/10.3 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/10.3 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/10.3 +http://repo1.linux.edu.lv/update/10.3 +ftp://repo1.linux.edu.lv/update/10.3 +http://rm.mirror.garr.it/mirrors/opensuse/update/10.3 +http://mirrors.nl.eu.kernel.org/opensuse/update/10.3 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/10.3 +http://mirror.leaseweb.com/opensuse/update/10.3 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/10.3 +http://opensuse.hro.nl/opensuse/update/10.3 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/10.3 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/10.3 +ftp://mirror.leaseweb.com/opensuse/update/10.3 +ftp://opensuse.hro.nl/opensuse/update/10.3 +http://opensuse.uib.no/update/10.3 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/10.3 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/10.3 +http://ftp.uninett.no/pub/linux/opensuse/update/10.3 +ftp://ftp.uninett.no/pub/linux/opensuse/update/10.3 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/10.3 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/10.3 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/10.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/10.3 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/10.3 +ftp://ftp.pbone.net/pub/opensuse/update/10.3 +http://ftp.sileman.pl/pub/opensuse/update/10.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/10.3 +ftp://ftp.sileman.pl/pub/opensuse/update/10.3 +ftp://ftp.pbone.net/pub/opensuse/update/10.3 +ftp://cesium.di.uminho.pt/pub/opensuse/update/10.3 +http://cesium.di.uminho.pt/pub/opensuse/update/10.3 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/10.3 +http://ftp.gts.lug.ro/opensuse/update/10.3 +ftp://ftp.gts.lug.ro/opensuse/update/10.3 +http://ftp.ines.lug.ro/opensuse/update/10.3 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/10.3 +ftp://ftp.ines.lug.ro/opensuse/update/10.3 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/10.3 +http://mirrors.se.eu.kernel.org/opensuse/update/10.3 +ftp://mirrors.se.eu.kernel.org/opensuse/update/10.3 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/10.3 +ftp://ftp.df.lth.se/pub/opensuseupdate/10.3 +http://opensuse.ynet.sk/update/10.3 +http://less.cogeco.net/ftp/openSUSE/update/10.3 +http://www.muug.mb.ca/pub/opensuse/update/10.3 +http://linux.dell.com/repo/community/update/10.3 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/10.3 +http://ftp.osuosl.org/pub/opensuse/update/10.3 +ftp://less.cogeco.net/openSUSE/update/10.3 +ftp://ftp.osuosl.org/pub/opensuse/update/10.3 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/10.3 +http://suse.mirrors.tds.net/pub/opensuse/update/10.3 +ftp://www.muug.mb.ca/pub/opensuse/update/10.3 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/10.3 +http://mirror.anl.gov/pub/opensuse/opensuse/update/10.3 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/10.3 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/10.3 +http://opensuse.cs.utah.edu/update/10.3 +ftp://suse.mirrors.tds.net/pub/opensuse/update/10.3 +http://mirrors.med.harvard.edu/opensuse/update/10.3 +http://mirrors.xmission.com/opensuse/update/10.3 +http://mirror.umoss.org/opensuse/update/10.3 +ftp://mirrors.xmission.com/opensuse/update/10.3 +http://mirrors2.kernel.org/opensuse/update/10.3 +http://mirrors1.kernel.org/opensuse/update/10.3 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/10.3 +http://opensuse.ca.unixheads.org/update/10.3 +ftp://mirrors2.kernel.org/opensuse/update/10.3 +http://mirror.rackspace.com/openSUSE/update/10.3 +ftp://mirrors1.kernel.org/opensuse/update/10.3 +http://130.57.19.201/update/10.3 +ftp://130.57.19.201/pub/opensuse/update/10.3 +http://www.gtlib.gatech.edu/pub/opensuse/update/10.3 +ftp://mirror.rackspace.com/openSUSE/update/10.3 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/10.3 +http://ftp.ussg.iu.edu/linux/opensuse/update/10.3 +http://ftp.utexas.edu/opensuse/update/10.3 +ftp://ftp.ussg.iu.edu/linux/opensuse/update/10.3 +ftp://ftp.utexas.edu/mirrors/opensuse/update/10.3 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/10.3 +http://mirror.nyi.net/opensuse/update/10.3 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/10.3 +ftp://mirror.colorado.edu/pub/opensuse/update/10.3 +http://mirrors.rit.edu/opensuse/update/10.3 +ftp://mirror.nyi.net/opensuseupdate/10.3 +http://ftp.iinet.net.au/pub/opensuse/update/10.3 +http://ftp.netspace.net.au/pub/opensuse/update/10.3 +http://mirror.internode.on.net/pub/opensuse/update/10.3 +http://mirror.pacific.net.au/linux/opensuse/update/10.3 +ftp://ftp.iinet.net.au/pub/opensuse/update/10.3 +ftp://mirror.internode.on.net/pub/opensuse/update/10.3 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/10.3 +http://200.221.9.37/pub/opensuse/update/10.3 +ftp://mirror.pacific.net.au/linux/opensuse/update/10.3 +http://opensuse.c3sl.ufpr.br/update/10.3 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/10.3 +http://opensuse.patan.com.ar/update/10.3 +http://opensuse.pop.com.br/update/10.3 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/10.3 diff --git a/src/lib/distro-info/suse-10.3/prereqfiles/etc/group b/src/lib/distro-info/suse-10.3/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/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/src/lib/distro-info/suse-10.3/prereqfiles/etc/hosts b/src/lib/distro-info/suse-10.3/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-10.3/prereqfiles/etc/passwd b/src/lib/distro-info/suse-10.3/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-10.3/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/src/lib/distro-info/suse-10.3/prereqfiles/etc/shadow b/src/lib/distro-info/suse-10.3/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-10.3/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/src/lib/distro-info/suse-10.3/settings.default b/src/lib/distro-info/suse-10.3/settings.default new file mode 100644 index 00000000..4372925c --- /dev/null +++ b/src/lib/distro-info/suse-10.3/settings.default @@ -0,0 +1,1064 @@ +bootstrap-packages = < + packages = < + + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 10.3 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.3 non-OSS + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.3 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = textmode + packages = < + + base = minimal + diff --git a/src/lib/distro-info/suse-10.3/settings.example b/src/lib/distro-info/suse-10.3/settings.example new file mode 100644 index 00000000..97d663ed --- /dev/null +++ b/src/lib/distro-info/suse-10.3/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.3/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.3/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/10.3 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..89fc35cf --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc new file mode 100644 index 00000000..2d21c1ba --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF +AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE +AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ +Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 +JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ +=ZmDA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..894a4630 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc new file mode 100644 index 00000000..a4be6b8b --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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 +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL +CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF +YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=tJSz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc new file mode 100644 index 00000000..67eedcf6 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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 +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD +BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q +W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe +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 +1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l +/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO +=pJli +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..279397c3 --- /dev/null +++ b/src/lib/distro-info/suse-10.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-10.3/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5e96ad54 Binary files /dev/null and b/src/lib/distro-info/suse-10.3/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-10.3_x86_64/export-filter.example b/src/lib/distro-info/suse-10.3_x86_64/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/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/src/lib/distro-info/suse-10.3_x86_64/mirrors/base b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base new file mode 100644 index 00000000..e990f44a --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base @@ -0,0 +1,246 @@ +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/oss +http://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/oss +http://www.lizardsource.cn/distribution/10.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/oss +ftp://www.lizardsource.cn/distribution/10.3/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/10.3/repo/oss +http://download.opensuse.or.id/distribution/10.3/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/10.3/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/10.3/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/10.3/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.cbn.net.id/distribution/10.3/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/10.3/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/10.3/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/10.3/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/10.3/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/10.3/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/oss +http://ftp.daum.net/opensuse/distribution/10.3/repo/oss +http://77.88.19.68/opensuse/distribution/10.3/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/oss +http://77.88.19.73/opensuse/distribution/10.3/repo/oss +http://mirror.suse.ru/distribution/10.3/repo/oss +http://77.88.19.74/opensuse/distribution/10.3/repo/oss +http://93.158.155.193/opensuse/distribution/10.3/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/10.3/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/10.3/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/10.3/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/10.3/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/10.3/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/10.3/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/10.3/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/oss +ftp://mirror.in.th/opensuse/distribution/10.3/repo/oss +http://suse.inode.at/opensuse/distribution/10.3/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/10.3/repo/oss +ftp://suse.inode.at/opensuse/distribution/10.3/repo/oss +http://suse.lagis.at/opensuse/distribution/10.3/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://mirrors.netbg.com/opensuse/distribution/10.3/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/10.3/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/10.3/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/10.3/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://suse.lagis.at/opensuse/distribution/10.3/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/10.3/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://opensuse.intergenia.de/distribution/10.3/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://widehat.opensuse.org/distribution/10.3/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/10.3/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/oss +http://opensuse-linuxmigratio.at/distribution/10.3/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/10.3/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/10.3/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/10.3/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/10.3/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/oss +http://mirror.ovh.net/opensuse/distribution/10.3/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/oss +http://opensuse.cict.fr/distribution/10.3/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/10.3/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/10.3/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/10.3/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/10.3/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/10.3/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/10.3/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/10.3/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/10.3/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/10.3/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/10.3/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/oss +http://repo1.linux.edu.lv/distribution/10.3/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/10.3/repo/oss +http://opensuse.hro.nl/opensuse/distribution/10.3/repo/oss +ftp://repo1.linux.edu.lv/distribution/10.3/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/10.3/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/oss +http://opensuse.uib.no/distribution/10.3/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/10.3/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/10.3/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/oss +http://opensuse.ynet.sk/distribution/10.3/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/10.3/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/10.3/repo/oss +http://linux.dell.com/repo/community/distribution/10.3/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/10.3/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/10.3/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/10.3/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/oss +http://mirror.umoss.org/opensuse/distribution/10.3/repo/oss +http://opensuse.cs.utah.edu/distribution/10.3/repo/oss +http://mirrors.xmission.com/opensuse/distribution/10.3/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/10.3/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/10.3/repo/oss +http://opensuse.ca.unixheads.org/distribution/10.3/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/10.3/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/10.3/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/10.3/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/10.3/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/10.3/repo/oss +http://130.57.19.201/distribution/10.3/repo/oss +http://ftp.utexas.edu/opensuse/distribution/10.3/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/10.3/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/10.3/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/10.3/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/10.3/repo/oss +http://mirror.nyi.net/opensuse/distribution/10.3/repo/oss +http://mirrors.rit.edu/opensuse/distribution/10.3/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/10.3/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/oss +ftp://mirror.nyi.net/opensusedistribution/10.3/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/oss +http://ftp.netspace.net.au/pub/opensuse/distribution/10.3/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/oss +http://200.221.9.37/pub/opensuse/distribution/10.3/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/oss +http://opensuse.patan.com.ar/distribution/10.3/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/10.3/repo/oss +http://opensuse.pop.com.br/distribution/10.3/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/10.3/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/oss diff --git a/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..dafe5ee0 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_non-oss @@ -0,0 +1,241 @@ +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/non-oss +http://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/10.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/non-oss +http://www.lizardsource.cn/distribution/10.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/10.3/repo/non-oss +http://download.opensuse.or.id/distribution/10.3/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/10.3/repo/non-oss +ftp://www.lizardsource.cn/distribution/10.3/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/10.3/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/10.3/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/10.3/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cbn.net.id/distribution/10.3/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/10.3/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/10.3/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/10.3/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/10.3/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.daum.net/opensuse/distribution/10.3/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/non-oss +http://77.88.19.68/opensuse/distribution/10.3/repo/non-oss +http://77.88.19.73/opensuse/distribution/10.3/repo/non-oss +http://mirror.suse.ru/distribution/10.3/repo/non-oss +http://77.88.19.74/opensuse/distribution/10.3/repo/non-oss +http://93.158.155.193/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/10.3/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/10.3/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/10.3/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/10.3/repo/non-oss +http://suse.inode.at/opensuse/distribution/10.3/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/10.3/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/10.3/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/10.3/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/10.3/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.lagis.at/opensuse/distribution/10.3/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/10.3/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://opensuse.intergenia.de/distribution/10.3/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/10.3/repo/non-oss +http://widehat.opensuse.org/distribution/10.3/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/10.3/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/10.3/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/10.3/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/10.3/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/10.3/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/10.3/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cict.fr/distribution/10.3/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/10.3/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/10.3/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/10.3/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/10.3/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/10.3/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +http://repo1.linux.edu.lv/distribution/10.3/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/10.3/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/10.3/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/10.3/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/10.3/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/10.3/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +http://opensuse.uib.no/distribution/10.3/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/10.3/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/10.3/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/10.3/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/10.3/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/10.3/repo/non-oss +http://opensuse.ynet.sk/distribution/10.3/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/10.3/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/10.3/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/10.3/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/10.3/repo/non-oss +http://linux.dell.com/repo/community/distribution/10.3/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/10.3/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/10.3/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://opensuse.cs.utah.edu/distribution/10.3/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/10.3/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/10.3/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/10.3/repo/non-oss +http://130.57.19.201/distribution/10.3/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/10.3/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/10.3/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/10.3/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/10.3/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/10.3/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/10.3/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/10.3/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/10.3/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/10.3/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/10.3/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/10.3/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/10.3/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/10.3/repo/non-oss +http://opensuse.patan.com.ar/distribution/10.3/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/10.3/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/10.3/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/10.3/repo/non-oss +http://opensuse.pop.com.br/distribution/10.3/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/10.3/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/10.3/repo/non-oss diff --git a/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_update b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_update new file mode 100644 index 00000000..a8df5e3f --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/mirrors/base_update @@ -0,0 +1,246 @@ +http://opensuse.mirror.ac.za/opensuse/update/10.3 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/10.3 +ftp://opensuse.mirror.ac.za/opensuse/update/10.3 +http://www.lizardsource.cn/update/10.3 +http://mirror.alva.ge/pub/opensuse/update/10.3 +http://mirror.lupaworld.com/opensuse/update/10.3 +http://mirror.alva.ge/pub/opensuse/update/10.3 +http://download.opensuse.or.id/update/10.3 +http://mirror.unej.ac.id/opensuse/update/10.3 +http://repo.ugm.ac.id/opensuse/update/10.3 +http://dl2.foss-id.web.id/opensuse/update/10.3 +http://mirror.isoc.org.il/pub/opensuse/update/10.3 +http://opensuse.cbn.net.id/update/10.3 +ftp://www.lizardsource.cn/update/10.3 +ftp://opensuse.cbn.net.id/pub/opensuse/update/10.3 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/10.3 +ftp://dl2.foss-id.web.id/repo/opensuse/update/10.3 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/10.3 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/10.3 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/10.3 +ftp://repo.ugm.ac.id/opensuse/update/10.3 +http://ftp.novell.co.jp/pub/opensuse/update/10.3 +ftp://mirror.isoc.org.il/opensuse/update/10.3 +http://ftp.riken.jp/Linux/opensuse/update/10.3 +ftp://ftp.novell.co.jp/pub/opensuse/update/10.3 +http://ftp.daum.net/opensuse/update/10.3 +ftp://mirror.unej.ac.id/opensuse/update/10.3 +http://77.88.19.68/opensuse/update/10.3 +http://77.88.19.73/opensuse/update/10.3 +http://mirror.suse.ru/update/10.3 +http://77.88.19.74/opensuse/update/10.3 +http://93.158.155.193/opensuse/update/10.3 +ftp://ftp.chg.ru/pub/opensuse/update/10.3 +ftp://ftp.kaist.ac.kr/opensuse/update/10.3 +ftp://dispenser.yandex.net/opensuse/update/10.3 +ftp://ftp.riken.jp/Linux/opensuse/update/10.3 +ftp://spreader.yandex.net/opensuse/update/10.3 +http://mirror.nus.edu.sg/opensuse/update/10.3 +http://ftp.chg.ru/pub/opensuse/update/10.3 +ftp://mirror.in.th/opensuse/update/10.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/10.3 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/10.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/10.3 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/10.3 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/10.3 +ftp://allotter.yandex.net/opensuse/update/10.3 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/10.3 +http://ftp.twaren.net/Linux/OpenSuSE/update/10.3 +ftp://seeder.yandex.net/opensuse/update/10.3 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/10.3 +http://mirror-fpt-telecom.fpt.net/opensuse/update/10.3 +http://suse.inode.at/opensuse/update/10.3 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/10.3 +ftp://suse.inode.at/opensuse/update/10.3 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/10.3 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/10.3 +http://ftp.tugraz.at/mirror/opensuse/update/10.3 +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/update/10.3 +ftp://ftp.tugraz.at/mirror/opensuse/update/10.3 +http://suse.lagis.at/opensuse/update/10.3 +ftp://suse.lagis.at/opensuse/update/10.3 +http://mirror.opensuse.com.ba/opensuse/update/10.3 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/10.3 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/10.3 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/10.3 +http://mirrors.netbg.com/opensuse/update/10.3 +http://mirror.switch.ch/ftp/mirror/opensuse/update/10.3 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/10.3 +http://mirror.karneval.cz/pub/linux/opensuse/update/10.3 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/10.3 +ftp://mirrors.netbg.com/opensuse/update/10.3 +http://ftp5.gwdg.de/pub/opensuse/update/10.3 +http://ftp.linux.cz/pub/linux/opensuse/update/10.3 +ftp://mirror.switch.ch/mirror/opensuse/update/10.3 +ftp://ftp5.gwdg.de/pub/opensuse/update/10.3 +http://ftp.halifax.rwth-aachen.de/opensuse/update/10.3 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/10.3 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/10.3 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/10.3 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/10.3 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/10.3 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/10.3 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/10.3 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/10.3 +http://opensuse.intergenia.de/update/10.3 +http://ftp.uni-ulm.de/mirrors/opensuse/update/10.3 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/10.3 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/10.3 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/10.3 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/10.3 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/10.3 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/10.3 +http://ftp.uni-kl.de/pub/linux/opensuse/update/10.3 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/10.3 +http://ftp3.gwdg.de/pub/opensuse/update/10.3 +http://widehat.opensuse.org/update/10.3 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/10.3 +http://ftp4.gwdg.de/pub/opensuse/update/10.3 +http://ftp.uni-kassel.de/opensuse/update/10.3 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.uni-bayreuth.de/linux/opensuse/update/10.3 +ftp://ftp4.gwdg.de/pub/opensuse/update/10.3 +ftp://ftp3.gwdg.de/pub/opensuse/update/10.3 +http://opensuse-linuxmigratio.at/update/10.3 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/10.3 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/10.3 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/10.3 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/10.3 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/10.3 +http://ftp.uni-siegen.de/opensuse/update/10.3 +http://ftp.gui.uva.es/sites/opensuse.org/update/10.3 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/10.3 +http://ftp.klid.dk/ftp/opensuse/update/10.3 +ftp://ftp.klid.dk/opensuse/update/10.3 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/10.3 +http://ftp.estpak.ee/pub/suse/opensuse/update/10.3 +http://suse.bifi.unizar.es/opensuse/update/10.3 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/10.3 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/10.3 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/10.3 +http://opensuse.mirrors.proxad.net/opensuse/update/10.3 +http://mirror.ovh.net/opensuse/update/10.3 +ftp://ftp.uni-siegen.de/pub/opensuse/update/10.3 +http://fr2.rpmfind.net/linux/opensuse/update/10.3 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://opensuse.cict.fr/update/10.3 +http://www.mirrorservice.org/sites/download.opensuse.org/update/10.3 +ftp://mirror.ovh.net/opensuse/update/10.3 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/10.3 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/10.3 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/10.3 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/10.3 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/10.3 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/10.3 +ftp://fr2.rpmfind.net/linux/opensuse/update/10.3 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/10.3 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/10.3 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/10.3 +http://roxen.integrity.hu/pub/opensuse/update/10.3 +http://ftp.ntua.gr/pub/linux/opensuse/update/10.3 +ftp://mirror.cict.fr/opensuse/update/10.3 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/10.3 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/10.3 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/10.3 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/10.3 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://rm.mirror.garr.it/mirrors/opensuse/update/10.3 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://mirror.leaseweb.com/opensuse/update/10.3 +ftp://repo1.linux.edu.lv/update/10.3 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/10.3 +http://mirrors.nl.eu.kernel.org/opensuse/update/10.3 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/10.3 +http://repo1.linux.edu.lv/update/10.3 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/10.3 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/10.3 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/10.3 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/10.3 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/10.3 +http://opensuse.hro.nl/opensuse/update/10.3 +ftp://mirror.leaseweb.com/opensuse/update/10.3 +ftp://opensuse.hro.nl/opensuse/update/10.3 +http://opensuse.uib.no/update/10.3 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/10.3 +http://ftp.uninett.no/pub/linux/opensuse/update/10.3 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/10.3 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/10.3 +http://ftp.rediris.es/pub/mirror/opensuse/update/10.3 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/10.3 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/10.3 +http://ftp.sileman.pl/pub/opensuse/update/10.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/10.3 +ftp://ftp.sileman.pl/pub/opensuse/update/10.3 +http://cesium.di.uminho.pt/pub/opensuse/update/10.3 +ftp://ftp.pbone.net/pub/opensuse/update/10.3 +ftp://cesium.di.uminho.pt/pub/opensuse/update/10.3 +ftp://ftp.uninett.no/pub/linux/opensuse/update/10.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/10.3 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/10.3 +http://ftp.gts.lug.ro/opensuse/update/10.3 +ftp://ftp.gts.lug.ro/opensuse/update/10.3 +http://ftp.ines.lug.ro/opensuse/update/10.3 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/10.3 +ftp://ftp.ines.lug.ro/opensuse/update/10.3 +ftp://ftp.pbone.net/pub/opensuse/update/10.3 +http://mirrors.se.eu.kernel.org/opensuse/update/10.3 +http://ftp.df.lth.se/pub/opensuse/update/10.3 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/10.3 +ftp://ftp.df.lth.se/pub/opensuseupdate/10.3 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/10.3 +ftp://mirrors.se.eu.kernel.org/opensuse/update/10.3 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/10.3 +http://opensuse.ynet.sk/update/10.3 +http://less.cogeco.net/ftp/openSUSE/update/10.3 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/10.3 +ftp://less.cogeco.net/openSUSE/update/10.3 +http://www.muug.mb.ca/pub/opensuse/update/10.3 +http://linux.dell.com/repo/community/update/10.3 +http://ftp.osuosl.org/pub/opensuse/update/10.3 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/10.3 +http://suse.mirrors.tds.net/pub/opensuse/update/10.3 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/10.3 +http://mirrors.med.harvard.edu/opensuse/update/10.3 +http://mirror.anl.gov/pub/opensuse/opensuse/update/10.3 +ftp://ftp.osuosl.org/pub/opensuse/update/10.3 +http://mirror.umoss.org/opensuse/update/10.3 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/10.3 +http://opensuse.cs.utah.edu/update/10.3 +http://opensuse.ca.unixheads.org/update/10.3 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/10.3 +http://mirrors2.kernel.org/opensuse/update/10.3 +http://mirrors1.kernel.org/opensuse/update/10.3 +http://mirror.rackspace.com/openSUSE/update/10.3 +ftp://mirrors.xmission.com/opensuse/update/10.3 +http://130.57.19.201/update/10.3 +http://ftp.utexas.edu/opensuse/update/10.3 +ftp://mirrors2.kernel.org/opensuse/update/10.3 +ftp://130.57.19.201/pub/opensuse/update/10.3 +http://www.gtlib.gatech.edu/pub/opensuse/update/10.3 +ftp://suse.mirrors.tds.net/pub/opensuse/update/10.3 +ftp://mirrors1.kernel.org/opensuse/update/10.3 +http://mirrors.xmission.com/opensuse/update/10.3 +ftp://mirror.rackspace.com/openSUSE/update/10.3 +http://ftp.ussg.iu.edu/linux/opensuse/update/10.3 +ftp://mirror.colorado.edu/pub/opensuse/update/10.3 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/10.3 +ftp://ftp.utexas.edu/mirrors/opensuse/update/10.3 +http://mirror.nyi.net/opensuse/update/10.3 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/10.3 +http://mirrors.rit.edu/opensuse/update/10.3 +ftp://mirror.nyi.net/opensuseupdate/10.3 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/10.3 +http://ftp.iinet.net.au/pub/opensuse/update/10.3 +http://mirror.internode.on.net/pub/opensuse/update/10.3 +http://mirror.pacific.net.au/linux/opensuse/update/10.3 +ftp://ftp.iinet.net.au/pub/opensuse/update/10.3 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/10.3 +http://200.221.9.37/pub/opensuse/update/10.3 +http://opensuse.patan.com.ar/update/10.3 +ftp://mirror.internode.on.net/pub/opensuse/update/10.3 +http://opensuse.c3sl.ufpr.br/update/10.3 +http://opensuse.pop.com.br/update/10.3 +ftp://mirror.pacific.net.au/linux/opensuse/update/10.3 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/10.3 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/10.3 diff --git a/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_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/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-10.3_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/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-10.3_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-10.3_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/src/lib/distro-info/suse-10.3_x86_64/settings.default b/src/lib/distro-info/suse-10.3_x86_64/settings.default new file mode 100644 index 00000000..c36cea67 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/settings.default @@ -0,0 +1,972 @@ +bootstrap-packages = < + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 10.3 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.3 non-OSS + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 10.3 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = textmode + packages = < + + base = minimal + diff --git a/src/lib/distro-info/suse-10.3_x86_64/settings.example b/src/lib/distro-info/suse-10.3_x86_64/settings.example new file mode 100644 index 00000000..2905cef4 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/10.2/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/10.2 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..89fc35cf --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc new file mode 100644 index 00000000..2d21c1ba --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-44201d5d.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIF +AkQgHV0CGwMFCQQ9AoAECwcDAgMVAgMDFgIBAh4BAheAAAoJEOOlw2Awfj1UjUIE +AIf3SLlrfj2RsCDjyYThXen+A/WTYDPbY+NYmmVvFQilHNQY9ZrJ5cNohRQu6hA+ +Sccrf11Uy24tTHWSTzuG9VzFeeIAcIU02XHar0w3QbvTk6IqeG+OZlfOGJj1sdx4 +JKwpwk9mSdrq2ELhrkPZiVWS7RmRkPr2klwYgKGWbmOJ +=ZmDA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..894a4630 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc new file mode 100644 index 00000000..a4be6b8b --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-44748aba.asc @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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 +cHJvdm8tYnVpbGRAbm92ZWxsLmNvbT6IZgQTEQIAJgUCRHSKugIbAwUJA8JnAAYL +CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBTCi8l+LjsFWEoAn13x+5ObqkW08gYF +YNDlcGPjQuGPAJ9kAQbVUvvh1u9mBgu91cQ9W/TkHYhGBBMRAgAGBQJEexD/AAoJ +EKhO2uicgArKFLwAn0B+g2mJ5n8LrBziTQ5SjnSPyDBXAJwJoYTta5Sfw/3vVGpU +fJAKVDoB9w== +=tJSz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc new file mode 100644 index 00000000..67eedcf6 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-40d8063e.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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 +YWdlIFNpZ25pbmcgS2V5IDxidWlsZEBzdXNlLmRlPohiBBMRAgAiBQJA2AY+AhsD +BQkObd+9BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCoTtronIAKypCfAJ9RuZ6ZSV7Q +W4pTgTIxQ+ABPp0sIwCffG9bCNnrETPlgOn+dGEkAWegKL+IRgQQEQIABgUCOnBe +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 +1dbriEwEGBECAAwFAkDYBnoFCQ5t3+gACgkQqE7a6JyACspnpgCfRbYwxT3iq+9l +/PgNTUNTZOlof2oAn25y0eGi0371jap9kOV6uq71sUuO +=pJli +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..279397c3 --- /dev/null +++ b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.4-svn0 (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/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5e96ad54 Binary files /dev/null and b/src/lib/distro-info/suse-10.3_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.0/export-filter.example b/src/lib/distro-info/suse-11.0/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/mirrors/base b/src/lib/distro-info/suse-11.0/mirrors/base new file mode 100644 index 00000000..57a0c1ca --- /dev/null +++ b/src/lib/distro-info/suse-11.0/mirrors/base @@ -0,0 +1,252 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/oss +http://www.lizardsource.cn/distribution/11.0/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/oss +ftp://www.lizardsource.cn/distribution/11.0/repo/oss +http://download.opensuse.or.id/distribution/11.0/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/11.0/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/11.0/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.cbn.net.id/distribution/11.0/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.0/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/11.0/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.0/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.0/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.0/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.0/repo/oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.0/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.0/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.0/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/oss +http://ftp.daum.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.0/repo/oss +http://77.88.19.68/opensuse/distribution/11.0/repo/oss +http://mirror.suse.ru/distribution/11.0/repo/oss +ftp://ftp.daum.net/opensuse/distribution/11.0/repo/oss +http://77.88.19.73/opensuse/distribution/11.0/repo/oss +http://77.88.19.74/opensuse/distribution/11.0/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/oss +http://93.158.155.193/opensuse/distribution/11.0/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.0/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.0/repo/oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.0/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.0/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.0/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/oss +http://suse.inode.at/opensuse/distribution/11.0/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.0/repo/oss +http://suse.lagis.at/opensuse/distribution/11.0/repo/oss +ftp://suse.lagis.at/opensuse/distribution/11.0/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.0/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.0/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.0/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.0/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.0/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/11.0/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.intergenia.de/distribution/11.0/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://widehat.opensuse.org/distribution/11.0/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.0/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.0/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.0/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/11.0/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/11.0/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.0/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/oss +http://opensuse.cict.fr/distribution/11.0/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/11.0/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.0/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.0/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.0/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.0/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.0/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +http://repo1.linux.edu.lv/distribution/11.0/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.0/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.0/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.0/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.0/repo/oss +http://opensuse.uib.no/distribution/11.0/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.0/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.0/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.0/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.0/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/oss +http://opensuse.ynet.sk/distribution/11.0/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.0/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/oss +http://linux.dell.com/repo/community/distribution/11.0/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/11.0/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.0/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.0/repo/oss +http://opensuse.cs.utah.edu/distribution/11.0/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.0/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.0/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.0/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/11.0/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/11.0/repo/oss +http://130.57.19.201/distribution/11.0/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.0/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.0/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.0/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.0/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.0/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/11.0/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.0/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.0/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.nyi.net/opensusedistribution/11.0/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.0/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/oss +http://ftp.netspace.net.au/pub/opensuse/distribution/11.0/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.patan.com.ar/distribution/11.0/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/11.0/repo/oss +http://200.221.9.37/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/oss +http://opensuse.pop.com.br/distribution/11.0/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.0/repo/oss diff --git a/src/lib/distro-info/suse-11.0/mirrors/base_non-oss b/src/lib/distro-info/suse-11.0/mirrors/base_non-oss new file mode 100644 index 00000000..f1a418d2 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/mirrors/base_non-oss @@ -0,0 +1,246 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/non-oss +http://www.lizardsource.cn/distribution/11.0/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/non-oss +http://download.opensuse.or.id/distribution/11.0/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.0/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.0/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.0/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/11.0/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.0/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.0/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.0/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +ftp://www.lizardsource.cn/distribution/11.0/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.daum.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/non-oss +http://77.88.19.68/opensuse/distribution/11.0/repo/non-oss +http://mirror.suse.ru/distribution/11.0/repo/non-oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.0/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.0/repo/non-oss +http://77.88.19.74/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/non-oss +http://93.158.155.193/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.0/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/11.0/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.0/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.0/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.0/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.0/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.0/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.0/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.0/repo/non-oss +http://suse.lagis.at/opensuse/distribution/11.0/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/11.0/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.0/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/11.0/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.0/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://opensuse.intergenia.de/distribution/11.0/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +http://widehat.opensuse.org/distribution/11.0/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.0/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/11.0/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.0/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.0/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/11.0/repo/non-oss +http://opensuse.cict.fr/distribution/11.0/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/11.0/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.0/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.0/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.0/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.0/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.0/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.0/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.0/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.0/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/11.0/repo/non-oss +http://opensuse.uib.no/distribution/11.0/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://opensuse.ynet.sk/distribution/11.0/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.0/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/11.0/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.0/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.0/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://opensuse.cs.utah.edu/distribution/11.0/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/11.0/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/11.0/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/11.0/repo/non-oss +http://130.57.19.201/distribution/11.0/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.0/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/11.0/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.0/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.0/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.0/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.0/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.0/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.0/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +http://opensuse.patan.com.ar/distribution/11.0/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.0/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.pop.com.br/distribution/11.0/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.0/repo/non-oss diff --git a/src/lib/distro-info/suse-11.0/mirrors/base_update b/src/lib/distro-info/suse-11.0/mirrors/base_update new file mode 100644 index 00000000..69e373c6 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/mirrors/base_update @@ -0,0 +1,252 @@ +http://opensuse.mirror.ac.za/opensuse/update/11.0 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.0 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.0 +ftp://opensuse.mirror.ac.za/opensuse/update/11.0 +http://www.lizardsource.cn/update/11.0 +http://mirror.alva.ge/pub/opensuse/update/11.0 +http://mirror.lupaworld.com/opensuse/update/11.0 +http://mirror.alva.ge/pub/opensuse/update/11.0 +http://download.opensuse.or.id/update/11.0 +http://mirror.unej.ac.id/opensuse/update/11.0 +ftp://www.lizardsource.cn/update/11.0 +http://opensuse.cbn.net.id/update/11.0 +http://repo.ugm.ac.id/opensuse/update/11.0 +http://dl2.foss-id.web.id/opensuse/update/11.0 +ftp://repo.ugm.ac.id/opensuse/update/11.0 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.0 +ftp://mirror.unej.ac.id/opensuse/update/11.0 +http://mirror.isoc.org.il/pub/opensuse/update/11.0 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.0 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.0 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.0 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.0 +http://ftp.novell.co.jp/pub/opensuse/update/11.0 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.0 +ftp://mirror.isoc.org.il/opensuse/update/11.0 +http://ftp.riken.jp/Linux/opensuse/update/11.0 +ftp://ftp.riken.jp/Linux/opensuse/update/11.0 +http://77.88.19.68/opensuse/update/11.0 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.0 +http://77.88.19.73/opensuse/update/11.0 +http://77.88.19.74/opensuse/update/11.0 +http://93.158.155.193/opensuse/update/11.0 +http://ftp.daum.net/opensuse/update/11.0 +ftp://ftp.daum.net/opensuse/update/11.0 +http://mirror.suse.ru/update/11.0 +ftp://ftp.kaist.ac.kr/opensuse/update/11.0 +ftp://allotter.yandex.net/opensuse/update/11.0 +http://mirror.nus.edu.sg/opensuse/update/11.0 +ftp://spreader.yandex.net/opensuse/update/11.0 +ftp://dispenser.yandex.net/opensuse/update/11.0 +ftp://ftp.chg.ru/pub/opensuse/update/11.0 +ftp://seeder.yandex.net/opensuse/update/11.0 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.0 +ftp://ftp.metu.edu.tr/opensuse/update/11.0 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.0 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/11.0 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/11.0 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/11.0 +http://ftp.chg.ru/pub/opensuse/update/11.0 +ftp://mirror.in.th/opensuse/update/11.0 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.0 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/11.0 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.0 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.0 +http://suse.inode.at/opensuse/update/11.0 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/11.0 +ftp://suse.inode.at/opensuse/update/11.0 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.0 +http://ftp.tugraz.at/mirror/opensuse/update/11.0 +http://suse.lagis.at/opensuse/update/11.0 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.opensuse.com.ba/opensuse/update/11.0 +http://mirror-fpt-telecom.fpt.net/opensuse/update/11.0 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.0 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.0 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.0 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.0 +ftp://mirrors.netbg.com/opensuse/update/11.0 +ftp://suse.lagis.at/opensuse/update/11.0 +http://mirrors.netbg.com/opensuse/update/11.0 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.0 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.0 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.0 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.0 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.0 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.0 +http://ftp.linux.cz/pub/linux/opensuse/update/11.0 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.0 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.0 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.0 +http://ftp5.gwdg.de/pub/opensuse/update/11.0 +ftp://mirror.switch.ch/mirror/opensuse/update/11.0 +ftp://ftp5.gwdg.de/pub/opensuse/update/11.0 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/11.0 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.0 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.0 +http://opensuse.intergenia.de/update/11.0 +http://ftp.uni-ulm.de/mirrors/opensuse/update/11.0 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.0 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.0 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.0 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.0 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.0 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.0 +http://ftp4.gwdg.de/pub/opensuse/update/11.0 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-kassel.de/opensuse/update/11.0 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.0 +http://ftp3.gwdg.de/pub/opensuse/update/11.0 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/11.0 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.0 +http://opensuse-linuxmigratio.at/update/11.0 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/11.0 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.0 +http://widehat.opensuse.org/update/11.0 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/11.0 +http://ftp.uni-bayreuth.de/linux/opensuse/update/11.0 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.0 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-siegen.de/opensuse/update/11.0 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.0 +ftp://ftp.uni-siegen.de/pub/opensuse/update/11.0 +http://ftp.klid.dk/ftp/opensuse/update/11.0 +ftp://ftp.klid.dk/opensuse/update/11.0 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.0 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.0 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.0 +http://ftp.rediris.es/pub/mirror/opensuse/update/11.0 +http://suse.bifi.unizar.es/opensuse/update/11.0 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.0 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.0 +http://opensuse.mirrors.proxad.net/opensuse/update/11.0 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/11.0 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.ovh.net/opensuse/update/11.0 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.0 +ftp://mirror.ovh.net/opensuse/update/11.0 +http://opensuse.cict.fr/update/11.0 +ftp://mirror.cict.fr/opensuse/update/11.0 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.0 +http://fr2.rpmfind.net/linux/opensuse/update/11.0 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.0 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.0 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.0 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/11.0 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.0 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/11.0 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.0 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.0 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.0 +http://roxen.integrity.hu/pub/opensuse/update/11.0 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.0 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.0 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.0 +ftp://fr2.rpmfind.net/linux/opensuse/update/11.0 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.0 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.0 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.0 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.leaseweb.com/opensuse/update/11.0 +http://rm.mirror.garr.it/mirrors/opensuse/update/11.0 +ftp://mirror.leaseweb.com/opensuse/update/11.0 +http://repo1.linux.edu.lv/update/11.0 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.0 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.0 +ftp://repo1.linux.edu.lv/update/11.0 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/11.0 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.0 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.0 +http://opensuse.hro.nl/opensuse/update/11.0 +ftp://opensuse.hro.nl/opensuse/update/11.0 +http://opensuse.uib.no/update/11.0 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/11.0 +http://ftp.uninett.no/pub/linux/opensuse/update/11.0 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.0 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.0 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.0 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.0 +ftp://ftp.pbone.net/pub/opensuse/update/11.0 +ftp://ftp.pbone.net/pub/opensuse/update/11.0 +http://ftp.sileman.pl/pub/opensuse/update/11.0 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.0 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.0 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.0 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.0 +ftp://ftp.sileman.pl/pub/opensuse/update/11.0 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.0 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.0 +http://ftp.gts.lug.ro/opensuse/update/11.0 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.0 +http://ftp.ines.lug.ro/opensuse/update/11.0 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.0 +ftp://ftp.gts.lug.ro/opensuse/update/11.0 +http://cesium.di.uminho.pt/pub/opensuse/update/11.0 +http://mirrors.se.eu.kernel.org/opensuse/update/11.0 +ftp://ftp.ines.lug.ro/opensuse/update/11.0 +ftp://mirrors.se.eu.kernel.org/opensuse/update/11.0 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.0 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.0 +http://ftp.df.lth.se/pub/opensuse/update/11.0 +http://opensuse.ynet.sk/update/11.0 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.0 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.0 +ftp://less.cogeco.net/openSUSE/update/11.0 +http://linux.dell.com/repo/community/update/11.0 +http://less.cogeco.net/ftp/openSUSE/update/11.0 +http://ftp.osuosl.org/pub/opensuse/update/11.0 +http://www.muug.mb.ca/pub/opensuse/update/11.0 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.0 +ftp://ftp.osuosl.org/pub/opensuse/update/11.0 +ftp://www.muug.mb.ca/pub/opensuse/update/11.0 +http://suse.mirrors.tds.net/pub/opensuse/update/11.0 +ftp://suse.mirrors.tds.net/pub/opensuse/update/11.0 +http://mirrors.med.harvard.edu/opensuse/update/11.0 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.0 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.0 +http://mirror.umoss.org/opensuse/update/11.0 +http://opensuse.cs.utah.edu/update/11.0 +http://opensuse.ca.unixheads.org/update/11.0 +http://mirrors.xmission.com/opensuse/update/11.0 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.0 +http://mirrors1.kernel.org/opensuse/update/11.0 +http://mirrors2.kernel.org/opensuse/update/11.0 +ftp://mirrors1.kernel.org/opensuse/update/11.0 +ftp://mirrors.xmission.com/opensuse/update/11.0 +http://130.57.19.201/update/11.0 +ftp://130.57.19.201/pub/opensuse/update/11.0 +http://mirror.rackspace.com/openSUSE/update/11.0 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/11.0 +ftp://mirror.rackspace.com/openSUSE/update/11.0 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.0 +http://ftp.utexas.edu/opensuse/update/11.0 +ftp://mirrors2.kernel.org/opensuse/update/11.0 +ftp://ftp.ussg.iu.edu/linux/opensuse/update/11.0 +ftp://mirror.colorado.edu/pub/opensuse/update/11.0 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.0 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/11.0 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.0 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.0 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/11.0 +http://mirror.nyi.net/opensuse/update/11.0 +http://mirrors.rit.edu/opensuse/update/11.0 +ftp://mirror.colorado.edu/pub/opensuse/update/11.0 +ftp://mirror.nyi.net/opensuseupdate/11.0 +http://ftp.iinet.net.au/pub/opensuse/update/11.0 +http://ftp.netspace.net.au/pub/opensuse/update/11.0 +http://mirror.internode.on.net/pub/opensuse/update/11.0 +http://mirror.pacific.net.au/linux/opensuse/update/11.0 +ftp://ftp.iinet.net.au/pub/opensuse/update/11.0 +ftp://mirror.internode.on.net/pub/opensuse/update/11.0 +ftp://mirror.pacific.net.au/linux/opensuse/update/11.0 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.0 +http://opensuse.c3sl.ufpr.br/update/11.0 +http://200.221.9.37/pub/opensuse/update/11.0 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.0 +http://opensuse.patan.com.ar/update/11.0 +http://opensuse.pop.com.br/update/11.0 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.0 diff --git a/src/lib/distro-info/suse-11.0/prereqfiles/etc/group b/src/lib/distro-info/suse-11.0/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.0/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.0/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.0/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.0/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/settings.default b/src/lib/distro-info/suse-11.0/settings.default new file mode 100644 index 00000000..a775f942 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/settings.default @@ -0,0 +1,1145 @@ +bootstrap-packages = < + packages = < + + packages = < + + packages = < + +package-subdir = suse +prereq-packages = < + name = openSUSE 11.0 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.0 non-OSS + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.0 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = textmode + packages = < + + base = minimal + diff --git a/src/lib/distro-info/suse-11.0/settings.example b/src/lib/distro-info/suse-11.0/settings.example new file mode 100644 index 00000000..db996216 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.0/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.0/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/11.0 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.0/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/src/lib/distro-info/suse-11.0/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/src/lib/distro-info/suse-11.0/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.0/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..53b38ddc Binary files /dev/null and b/src/lib/distro-info/suse-11.0/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.0_x86_64/mirrors/base b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base new file mode 100644 index 00000000..229683b3 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base @@ -0,0 +1,248 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/oss +http://www.lizardsource.cn/distribution/11.0/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/11.0/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/oss +ftp://www.lizardsource.cn/distribution/11.0/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/11.0/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/oss +http://opensuse.cbn.net.id/distribution/11.0/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.0/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/11.0/repo/oss +http://download.opensuse.or.id/distribution/11.0/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.0/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.0/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.0/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.0/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.0/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/oss +http://ftp.daum.net/opensuse/distribution/11.0/repo/oss +http://77.88.19.68/opensuse/distribution/11.0/repo/oss +http://mirror.suse.ru/distribution/11.0/repo/oss +http://77.88.19.73/opensuse/distribution/11.0/repo/oss +http://77.88.19.74/opensuse/distribution/11.0/repo/oss +http://93.158.155.193/opensuse/distribution/11.0/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.0/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.0/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.0/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.0/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.0/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.0/repo/oss +http://suse.inode.at/opensuse/distribution/11.0/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.0/repo/oss +http://suse.lagis.at/opensuse/distribution/11.0/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.0/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +ftp://suse.lagis.at/opensuse/distribution/11.0/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.0/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/11.0/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.0/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.0/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.0/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://opensuse.intergenia.de/distribution/11.0/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.0/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/oss +http://widehat.opensuse.org/distribution/11.0/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.0/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.0/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.0/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/11.0/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.0/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.0/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.0/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/oss +http://opensuse.cict.fr/distribution/11.0/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/11.0/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.0/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/11.0/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.0/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.0/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.0/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/oss +http://repo1.linux.edu.lv/distribution/11.0/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.0/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.0/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.0/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.0/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.0/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.0/repo/oss +http://opensuse.uib.no/distribution/11.0/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.0/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/oss +http://opensuse.ynet.sk/distribution/11.0/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.0/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.0/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/oss +http://linux.dell.com/repo/community/distribution/11.0/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/11.0/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.0/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.0/repo/oss +http://opensuse.cs.utah.edu/distribution/11.0/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.0/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.0/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/11.0/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/11.0/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.0/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/11.0/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/11.0/repo/oss +http://130.57.19.201/distribution/11.0/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.0/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.0/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.0/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.0/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.0/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.0/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.0/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.0/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.0/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.0/repo/oss +ftp://mirror.nyi.net/opensusedistribution/11.0/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/oss +http://opensuse.patan.com.ar/distribution/11.0/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/11.0/repo/oss +http://200.221.9.37/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/oss +http://opensuse.pop.com.br/distribution/11.0/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.0/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/oss diff --git a/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..1e318801 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_non-oss @@ -0,0 +1,240 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/11.0/repo/non-oss +http://www.lizardsource.cn/distribution/11.0/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.0/repo/non-oss +http://download.opensuse.or.id/distribution/11.0/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.0/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.0/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.0/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/11.0/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +ftp://www.lizardsource.cn/distribution/11.0/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.0/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.0/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.0/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.0/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.0/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.daum.net/opensuse/distribution/11.0/repo/non-oss +http://77.88.19.68/opensuse/distribution/11.0/repo/non-oss +http://mirror.suse.ru/distribution/11.0/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.0/repo/non-oss +http://77.88.19.74/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.0/repo/non-oss +http://93.158.155.193/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.0/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.0/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.0/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.0/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.0/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/11.0/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.0/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +http://suse.lagis.at/opensuse/distribution/11.0/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.0/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.0/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.0/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.0/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.0/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.0/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.0/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.0/repo/non-oss +http://opensuse.intergenia.de/distribution/11.0/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.0/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.0/repo/non-oss +http://widehat.opensuse.org/distribution/11.0/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.0/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.0/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.0/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.0/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.0/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.0/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.cict.fr/distribution/11.0/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.0/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.0/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/11.0/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.0/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.0/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.0/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.0/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.0/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.0/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.0/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.0/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.0/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.0/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/11.0/repo/non-oss +http://opensuse.uib.no/distribution/11.0/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.0/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.0/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.0/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.0/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.0/repo/non-oss +http://opensuse.ynet.sk/distribution/11.0/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.0/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.0/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.0/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.0/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.0/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.0/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/11.0/repo/non-oss +http://opensuse.cs.utah.edu/distribution/11.0/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.0/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/11.0/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/11.0/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.0/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/11.0/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.0/repo/non-oss +http://130.57.19.201/distribution/11.0/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.0/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/11.0/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.0/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.0/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.0/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.0/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.0/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/11.0/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.0/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.0/repo/non-oss +http://opensuse.patan.com.ar/distribution/11.0/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/11.0/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.0/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.0/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.0/repo/non-oss +http://opensuse.pop.com.br/distribution/11.0/repo/non-oss diff --git a/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_update b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_update new file mode 100644 index 00000000..40e25e81 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_x86_64/mirrors/base_update @@ -0,0 +1,246 @@ +http://opensuse.mirror.ac.za/opensuse/update/11.0 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.0 +http://mirror.lupaworld.com/opensuse/update/11.0 +ftp://www.lizardsource.cn/update/11.0 +http://www.lizardsource.cn/update/11.0 +http://mirror.alva.ge/pub/opensuse/update/11.0 +http://mirror.alva.ge/pub/opensuse/update/11.0 +http://download.opensuse.or.id/update/11.0 +http://mirror.unej.ac.id/opensuse/update/11.0 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.0 +http://opensuse.cbn.net.id/update/11.0 +http://repo.ugm.ac.id/opensuse/update/11.0 +http://dl2.foss-id.web.id/opensuse/update/11.0 +ftp://repo.ugm.ac.id/opensuse/update/11.0 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.0 +ftp://opensuse.mirror.ac.za/opensuse/update/11.0 +http://mirror.isoc.org.il/pub/opensuse/update/11.0 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.0 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.0 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.0 +ftp://mirror.unej.ac.id/opensuse/update/11.0 +ftp://mirror.isoc.org.il/opensuse/update/11.0 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.0 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.0 +http://ftp.riken.jp/Linux/opensuse/update/11.0 +ftp://ftp.kddilabs.jp/Linux/packages/opensuseupdate/11.0 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.0 +http://ftp.daum.net/opensuse/update/11.0 +http://mirror.suse.ru/update/11.0 +http://77.88.19.68/opensuse/update/11.0 +http://77.88.19.73/opensuse/update/11.0 +ftp://ftp.riken.jp/Linux/opensuse/update/11.0 +http://77.88.19.74/opensuse/update/11.0 +http://93.158.155.193/opensuse/update/11.0 +ftp://dispenser.yandex.net/opensuse/update/11.0 +ftp://ftp.chg.ru/pub/opensuse/update/11.0 +ftp://allotter.yandex.net/opensuse/update/11.0 +http://mirror.nus.edu.sg/opensuse/update/11.0 +ftp://seeder.yandex.net/opensuse/update/11.0 +ftp://ftp.kaist.ac.kr/opensuse/update/11.0 +ftp://spreader.yandex.net/opensuse/update/11.0 +ftp://ftp.metu.edu.tr/opensuse/update/11.0 +ftp://mirror.in.th/opensuse/update/11.0 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.0 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.0 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/11.0 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/11.0 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/11.0 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/11.0 +http://ftp.chg.ru/pub/opensuse/update/11.0 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.0 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.0 +http://mirror-fpt-telecom.fpt.net/opensuse/update/11.0 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.0 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/11.0 +http://suse.inode.at/opensuse/update/11.0 +ftp://suse.inode.at/opensuse/update/11.0 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.0 +ftp://suse.lagis.at/opensuse/update/11.0 +http://ftp.tugraz.at/mirror/opensuse/update/11.0 +http://suse.lagis.at/opensuse/update/11.0 +http://mirror.opensuse.com.ba/opensuse/update/11.0 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.0 +http://mirrors.netbg.com/opensuse/update/11.0 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.0 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.0 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.0 +ftp://mirror.switch.ch/mirror/opensuse/update/11.0 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.0 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.0 +ftp://mirrors.netbg.com/opensuse/update/11.0 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.0 +http://ftp.linux.cz/pub/linux/opensuse/update/11.0 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.0 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.0 +http://ftp5.gwdg.de/pub/opensuse/update/11.0 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.0 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.0 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.0 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.0 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.0 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/11.0 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.0 +http://opensuse.intergenia.de/update/11.0 +http://ftp.uni-ulm.de/mirrors/opensuse/update/11.0 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.0 +ftp://ftp5.gwdg.de/pub/opensuse/update/11.0 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.0 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.0 +http://ftp3.gwdg.de/pub/opensuse/update/11.0 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.0 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.0 +http://widehat.opensuse.org/update/11.0 +http://ftp4.gwdg.de/pub/opensuse/update/11.0 +http://ftp.uni-kassel.de/opensuse/update/11.0 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/11.0 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.0 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.0 +http://opensuse-linuxmigratio.at/update/11.0 +http://ftp.uni-bayreuth.de/linux/opensuse/update/11.0 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.0 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/11.0 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.0 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.0 +http://ftp.uni-siegen.de/opensuse/update/11.0 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/11.0 +http://ftp.klid.dk/ftp/opensuse/update/11.0 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.0 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.0 +ftp://ftp.uni-siegen.de/pub/opensuse/update/11.0 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/11.0 +http://ftp.rediris.es/pub/mirror/opensuse/update/11.0 +http://suse.bifi.unizar.es/opensuse/update/11.0 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.0 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.0 +http://opensuse.mirrors.proxad.net/opensuse/update/11.0 +ftp://ftp.klid.dk/opensuse/update/11.0 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.ovh.net/opensuse/update/11.0 +http://fr2.rpmfind.net/linux/opensuse/update/11.0 +http://opensuse.cict.fr/update/11.0 +ftp://mirror.cict.fr/opensuse/update/11.0 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.0 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.0 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.0 +ftp://mirror.ovh.net/opensuse/update/11.0 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.0 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.0 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/11.0 +ftp://fr2.rpmfind.net/linux/opensuse/update/11.0 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.0 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.0 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.0 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.0 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.0 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.0 +http://roxen.integrity.hu/pub/opensuse/update/11.0 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.0 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.0 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.0 +http://rm.mirror.garr.it/mirrors/opensuse/update/11.0 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.0 +http://repo1.linux.edu.lv/update/11.0 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.0 +http://mirror.leaseweb.com/opensuse/update/11.0 +ftp://mirror.leaseweb.com/opensuse/update/11.0 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.0 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.0 +ftp://repo1.linux.edu.lv/update/11.0 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.0 +http://opensuse.hro.nl/opensuse/update/11.0 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.0 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/11.0 +http://opensuse.uib.no/update/11.0 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.0 +http://ftp.uninett.no/pub/linux/opensuse/update/11.0 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.0 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.0 +ftp://opensuse.hro.nl/opensuse/update/11.0 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.0 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/11.0 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.0 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.0 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.0 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.0 +ftp://ftp.pbone.net/pub/opensuse/update/11.0 +http://ftp.sileman.pl/pub/opensuse/update/11.0 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.0 +ftp://ftp.pbone.net/pub/opensuse/update/11.0 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.0 +ftp://ftp.sileman.pl/pub/opensuse/update/11.0 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.0 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.0 +http://ftp.gts.lug.ro/opensuse/update/11.0 +ftp://ftp.gts.lug.ro/opensuse/update/11.0 +http://ftp.ines.lug.ro/opensuse/update/11.0 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.0 +http://cesium.di.uminho.pt/pub/opensuse/update/11.0 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.0 +http://mirrors.se.eu.kernel.org/opensuse/update/11.0 +ftp://ftp.ines.lug.ro/opensuse/update/11.0 +http://ftp.df.lth.se/pub/opensuse/update/11.0 +http://opensuse.ynet.sk/update/11.0 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.0 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.0 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.0 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.0 +ftp://mirrors.se.eu.kernel.org/opensuse/update/11.0 +http://less.cogeco.net/ftp/openSUSE/update/11.0 +http://www.muug.mb.ca/pub/opensuse/update/11.0 +http://linux.dell.com/repo/community/update/11.0 +ftp://www.muug.mb.ca/pub/opensuse/update/11.0 +ftp://less.cogeco.net/openSUSE/update/11.0 +http://ftp.osuosl.org/pub/opensuse/update/11.0 +http://suse.mirrors.tds.net/pub/opensuse/update/11.0 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.0 +http://mirrors.med.harvard.edu/opensuse/update/11.0 +ftp://ftp.osuosl.org/pub/opensuse/update/11.0 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.0 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.0 +http://mirror.umoss.org/opensuse/update/11.0 +http://opensuse.cs.utah.edu/update/11.0 +http://opensuse.ca.unixheads.org/update/11.0 +http://mirrors.xmission.com/opensuse/update/11.0 +http://mirrors2.kernel.org/opensuse/update/11.0 +http://mirrors1.kernel.org/opensuse/update/11.0 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.0 +http://mirror.rackspace.com/openSUSE/update/11.0 +http://130.57.19.201/update/11.0 +ftp://mirror.rackspace.com/openSUSE/update/11.0 +http://ftp.utexas.edu/opensuse/update/11.0 +ftp://130.57.19.201/pub/opensuse/update/11.0 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.0 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.0 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.0 +ftp://mirrors1.kernel.org/opensuse/update/11.0 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/11.0 +ftp://mirrors2.kernel.org/opensuse/update/11.0 +ftp://mirror.colorado.edu/pub/opensuse/update/11.0 +ftp://mirrors.xmission.com/opensuse/update/11.0 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/11.0 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/11.0 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.0 +ftp://mirror.colorado.edu/pub/opensuse/update/11.0 +http://mirrors.rit.edu/opensuse/update/11.0 +ftp://mirror.nyi.net/opensuseupdate/11.0 +http://ftp.iinet.net.au/pub/opensuse/update/11.0 +http://mirror.nyi.net/opensuse/update/11.0 +http://mirror.pacific.net.au/linux/opensuse/update/11.0 +http://mirror.internode.on.net/pub/opensuse/update/11.0 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.0 +ftp://mirror.internode.on.net/pub/opensuse/update/11.0 +ftp://ftp.iinet.net.au/pub/opensuse/update/11.0 +ftp://mirror.pacific.net.au/linux/opensuse/update/11.0 +http://opensuse.patan.com.ar/update/11.0 +http://200.221.9.37/pub/opensuse/update/11.0 +http://opensuse.c3sl.ufpr.br/update/11.0 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.0 +http://opensuse.pop.com.br/update/11.0 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.0 diff --git a/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.0_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/src/lib/distro-info/suse-11.0_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/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..53b38ddc Binary files /dev/null and b/src/lib/distro-info/suse-11.0_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.1/export-filter.example b/src/lib/distro-info/suse-11.1/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/mirrors/base b/src/lib/distro-info/suse-11.1/mirrors/base new file mode 100644 index 00000000..e323dcaa --- /dev/null +++ b/src/lib/distro-info/suse-11.1/mirrors/base @@ -0,0 +1,252 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/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 +http://mirror.alva.ge/pub/opensuse/distribution/11.1/repo/oss +http://download.opensuse.or.id/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 +ftp://www.lizardsource.cn/distribution/11.1/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.1/repo/oss +http://opensuse.cbn.net.id/distribution/11.1/repo/oss +http://mirror.unej.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://dl2.foss-id.web.id/repo/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 +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.1/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.1/repo/oss +ftp://repo.ugm.ac.id/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 +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.1/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.1/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.1/repo/oss +http://ftp.riken.jp/Linux/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 +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.daum.net/opensuse/distribution/11.1/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.1/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.1/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.1/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/11.1/repo/oss +ftp://ftp.novell.co.jp/pub/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 +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.1/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.1/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.1/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/oss +http://ftp.twaren.net/Linux/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://suse.inode.at/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://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.1/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/oss +http://suse.lagis.at/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 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.1/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/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 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.1/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.1/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://mirrors.netbg.com/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 +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.1/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.1/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/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://opensuse.intergenia.de/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-ulm.de/mirrors/opensuse/distribution/11.1/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/oss +http://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://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.1/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://widehat.opensuse.org/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://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.1/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.1/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.1/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.1/repo/oss +ftp://ftp3.gwdg.de/pub/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 +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/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 +ftp://ftp.klid.dk/opensuse/distribution/11.1/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.1/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.1/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/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 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://mirror.cict.fr/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 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.1/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.1/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.1/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.1/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.1/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/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.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.1/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.1/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.1/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/oss +http://repo1.linux.edu.lv/distribution/11.1/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/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 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.1/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.1/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.1/repo/oss +http://opensuse.uib.no/distribution/11.1/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.1/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.1/repo/oss +http://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 +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/oss +http://ftp.nux.ipb.pt/pub/dists/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 +http://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.1/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.1/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.1/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.1/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/oss +http://opensuse.ynet.sk/distribution/11.1/repo/oss +http://less.cogeco.net/ftp/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 +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/oss +http://linux.dell.com/repo/community/distribution/11.1/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.1/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/oss +ftp://less.cogeco.net/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 +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.1/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.1/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.1/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.1/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/oss +http://mirrors2.kernel.org/opensuse/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://mirror.rackspace.com/openSUSE/distribution/11.1/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.1/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.1/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.1/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.1/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.1/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.1/repo/oss +ftp://mirrors.xmission.com/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 +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.1/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.1/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.1/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.1/repo/oss +ftp://mirror.colorado.edu/pub/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 +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.pacific.net.au/linux/opensuse/distribution/11.1/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/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 +http://opensuse.pop.com.br/distribution/11.1/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.1/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.1/repo/oss diff --git a/src/lib/distro-info/suse-11.1/mirrors/base_non-oss b/src/lib/distro-info/suse-11.1/mirrors/base_non-oss new file mode 100644 index 00000000..e987723d --- /dev/null +++ b/src/lib/distro-info/suse-11.1/mirrors/base_non-oss @@ -0,0 +1,250 @@ +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://ftp.up.ac.za/mirrors/opensuse/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 +ftp://www.lizardsource.cn/distribution/11.1/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.1/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.1/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.1/repo/non-oss +http://download.opensuse.or.id/distribution/11.1/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.cbn.net.id/pub/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 +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 +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.1/repo/non-oss +http://ftp.novell.co.jp/pub/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.novell.co.jp/pub/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 +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.1/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.riken.jp/Linux/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 +ftp://ftp.chg.ru/pub/opensuse/distribution/11.1/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/11.1/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.1/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.1/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.1/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.1/repo/non-oss +http://ftp.isu.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.chg.ru/pub/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 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.1/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.1/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.1/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.1/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.tugraz.at/mirror/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 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.1/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.1/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/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://mirrors.netbg.com/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.1/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp.halifax.rwth-aachen.de/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 +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 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.1/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-heidelberg.de/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 +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 +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.1/repo/non-oss +http://widehat.opensuse.org/distribution/11.1/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.1/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp3.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 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/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-bayreuth.de/linux/opensuse/distribution/11.1/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.1/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-kassel.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://ftp.uni-siegen.de/opensuse/distribution/11.1/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/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.uni-paderborn.de/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.1/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/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 +ftp://ftp.rediris.es/pub/mirror/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 +ftp://ftp.gui.uva.es/sites/opensuse.org/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 +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.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.cict.fr/distribution/11.1/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.1/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.1/repo/non-oss +ftp://fr2.rpmfind.net/linux/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.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/non-oss +ftp://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 +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.1/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.1/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.1/repo/non-oss +ftp://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://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.1/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://ftp.novell.hu/pub/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://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.1/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.1/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.1/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.1/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.1/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.1/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.1/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.1/repo/non-oss +http://mirrors.nl.eu.kernel.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 +http://opensuse.uib.no/distribution/11.1/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.man.poznan.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.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 +http://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.1/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.1/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.1/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/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://mirrors.se.eu.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.ines.lug.ro/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 +http://less.cogeco.net/ftp/openSUSE/distribution/11.1/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.1/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/11.1/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.1/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.1/repo/non-oss +http://www.muug.mb.ca/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://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.1/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.1/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.1/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +ftp://www.muug.mb.ca/pub/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://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.1/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.1/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://mirrors.xmission.com/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://mirrors.xmission.com/opensuse/distribution/11.1/repo/non-oss +ftp://130.57.19.201/pub/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://mirror.rackspace.com/openSUSE/distribution/11.1/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.1/repo/non-oss +ftp://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 +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 +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.1/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.1/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.1/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.1/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.1/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.1/repo/non-oss +ftp://mirror.internode.on.net/pub/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 +http://200.221.9.37/pub/opensuse/distribution/11.1/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.1/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.1/repo/non-oss +http://opensuse.patan.com.ar/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 diff --git a/src/lib/distro-info/suse-11.1/mirrors/base_update b/src/lib/distro-info/suse-11.1/mirrors/base_update new file mode 100644 index 00000000..76260505 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/mirrors/base_update @@ -0,0 +1,252 @@ +http://mirror.lupaworld.com/opensuse/update/11.1 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.1 +http://opensuse.mirror.ac.za/opensuse/update/11.1 +ftp://opensuse.mirror.ac.za/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 +http://download.opensuse.or.id/update/11.1 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.1 +ftp://www.lizardsource.cn/update/11.1 +http://opensuse.cbn.net.id/update/11.1 +http://mirror.unej.ac.id/opensuse/update/11.1 +http://dl2.foss-id.web.id/opensuse/update/11.1 +ftp://mirror.isoc.org.il/opensuse/update/11.1 +http://repo.ugm.ac.id/opensuse/update/11.1 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.1 +http://mirror.isoc.org.il/pub/opensuse/update/11.1 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.1 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.1 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.1 +ftp://mirror.unej.ac.id/opensuse/update/11.1 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.1 +http://ftp.novell.co.jp/pub/opensuse/update/11.1 +ftp://repo.ugm.ac.id/opensuse/update/11.1 +http://ftp.riken.jp/Linux/opensuse/update/11.1 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.1 +ftp://ftp.kddilabs.jp/Linux/packages/opensuseupdate/11.1 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.1 +http://77.88.19.68/opensuse/update/11.1 +ftp://ftp.daum.net/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://ftp.daum.net/opensuse/update/11.1 +http://93.158.155.193/opensuse/update/11.1 +ftp://ftp.kaist.ac.kr/opensuse/update/11.1 +ftp://spreader.yandex.net/opensuse/update/11.1 +ftp://ftp.chg.ru/pub/opensuse/update/11.1 +ftp://seeder.yandex.net/opensuse/update/11.1 +http://mirror.nus.edu.sg/opensuse/update/11.1 +ftp://mirror.in.th/opensuse/update/11.1 +ftp://allotter.yandex.net/opensuse/update/11.1 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.1 +ftp://ftp.metu.edu.tr/opensuse/update/11.1 +ftp://dispenser.yandex.net/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.isu.edu.tw/pub/Linux/opensuse/update/11.1 +http://mirror-fpt-telecom.fpt.net/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.ncnu.edu.tw/Linux/opensuse/update/11.1 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.1 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/11.1 +http://suse.inode.at/opensuse/update/11.1 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.1 +ftp://ftp.twaren.net/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 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.1 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.1 +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.1 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.1 +ftp://suse.lagis.at/opensuse/update/11.1 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.1 +http://mirror.opensuse.com.ba/opensuse/update/11.1 +http://mirrors.netbg.com/opensuse/update/11.1 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.1 +ftp://mirror.switch.ch/mirror/opensuse/update/11.1 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.1 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.1 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.1 +http://ftp5.gwdg.de/pub/opensuse/update/11.1 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.1 +http://ftp.linux.cz/pub/linux/opensuse/update/11.1 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.1 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.1 +ftp://mirrors.netbg.com/opensuse/update/11.1 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.1 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.1 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.1 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.1 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.1 +ftp://ftp5.gwdg.de/pub/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 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.1 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.1 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/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 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.1 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.1 +http://ftp3.gwdg.de/pub/opensuse/update/11.1 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.1 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.1 +http://widehat.opensuse.org/update/11.1 +http://ftp4.gwdg.de/pub/opensuse/update/11.1 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.1 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.1 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.1 +http://ftp.uni-kassel.de/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.tu-ilmenau.de/mirror/opensuse/update/11.1 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.1 +ftp://ftp.uni-siegen.de/pub/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 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.1 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.1 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.1 +ftp://ftp.tu-ilmenau.de/mirror/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 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.1 +http://suse.bifi.unizar.es/opensuse/update/11.1 +http://ftp.uni-siegen.de/opensuse/update/11.1 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.1 +http://ftp.klid.dk/ftp/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 +ftp://mirror.ovh.net/opensuse/update/11.1 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.1 +http://mirror.ovh.net/opensuse/update/11.1 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.1 +http://fr2.rpmfind.net/linux/opensuse/update/11.1 +ftp://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 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.1 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.1 +http://opensuse.cict.fr/update/11.1 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.1 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.1 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.1 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.1 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.1 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/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.cict.fr/opensuse/update/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 +http://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 +ftp://repo1.linux.edu.lv/update/11.1 +http://mirror.leaseweb.com/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 +ftp://mirror.leaseweb.com/opensuse/update/11.1 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.1 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.1 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.1 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.1 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.1 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.1 +http://opensuse.hro.nl/opensuse/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 +http://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 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.1 +ftp://opensuse.hro.nl/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 +ftp://ftp.icm.edu.pl/pub/Linux/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.sileman.pl/pub/opensuse/update/11.1 +ftp://ftp.pbone.net/pub/opensuse/update/11.1 +http://cesium.di.uminho.pt/pub/opensuse/update/11.1 +http://ftp.gts.lug.ro/opensuse/update/11.1 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.1 +ftp://ftp.gts.lug.ro/opensuse/update/11.1 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.1 +http://ftp.ines.lug.ro/opensuse/update/11.1 +ftp://ftp.nux.ipb.pt/pub/dists/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 +http://ftp.df.lth.se/pub/opensuse/update/11.1 +http://ftp.sunet.se/pub/Linux/distributions/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 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.1 +ftp://less.cogeco.net/openSUSE/update/11.1 +http://www.muug.mb.ca/pub/opensuse/update/11.1 +http://linux.dell.com/repo/community/update/11.1 +http://ftp.osuosl.org/pub/opensuse/update/11.1 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.1 +http://less.cogeco.net/ftp/openSUSE/update/11.1 +ftp://www.muug.mb.ca/pub/opensuse/update/11.1 +http://suse.mirrors.tds.net/pub/opensuse/update/11.1 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.1 +ftp://suse.mirrors.tds.net/pub/opensuse/update/11.1 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.1 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.1 +http://mirror.umoss.org/opensuse/update/11.1 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.1 +http://opensuse.cs.utah.edu/update/11.1 +http://mirrors.med.harvard.edu/opensuse/update/11.1 +ftp://ftp.osuosl.org/pub/opensuse/update/11.1 +http://mirrors.xmission.com/opensuse/update/11.1 +ftp://mirrors.xmission.com/opensuse/update/11.1 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.1 +http://mirrors1.kernel.org/opensuse/update/11.1 +http://opensuse.ca.unixheads.org/update/11.1 +http://mirror.rackspace.com/openSUSE/update/11.1 +http://130.57.19.201/update/11.1 +http://mirrors2.kernel.org/opensuse/update/11.1 +ftp://mirrors1.kernel.org/opensuse/update/11.1 +ftp://130.57.19.201/pub/opensuse/update/11.1 +ftp://mirrors2.kernel.org/opensuse/update/11.1 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.1 +ftp://mirror.rackspace.com/openSUSE/update/11.1 +http://ftp.utexas.edu/opensuse/update/11.1 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.1 +ftp://mirror.colorado.edu/pub/opensuse/update/11.1 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.1 +ftp://www.gtlib.gatech.edu/pub/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 +ftp://ftp.ussg.iu.edu/linux/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 +ftp://mirror.nyi.net/opensuseupdate/11.1 +http://ftp.iinet.net.au/pub/opensuse/update/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 +ftp://mirror.internode.on.net/pub/opensuse/update/11.1 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.1 +http://opensuse.patan.com.ar/update/11.1 +http://opensuse.c3sl.ufpr.br/update/11.1 +http://200.221.9.37/pub/opensuse/update/11.1 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.1 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.1 +http://opensuse.pop.com.br/update/11.1 diff --git a/src/lib/distro-info/suse-11.1/prereqfiles/etc/group b/src/lib/distro-info/suse-11.1/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.1/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.1/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.1/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.1/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/settings.default b/src/lib/distro-info/suse-11.1/settings.default new file mode 100644 index 00000000..36e38866 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/settings.default @@ -0,0 +1,1126 @@ +bootstrap-packages = < + packages = < + + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 11.1 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.1 non-OSS + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.1 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = kde + packages = < + + base = textmode + packages = < + + base = minimal + + diff --git a/src/lib/distro-info/suse-11.1/settings.example b/src/lib/distro-info/suse-11.1/settings.example new file mode 100644 index 00000000..e57cb43b --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.1/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.1/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/11.1 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..aaec909b --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..f0bb55a3 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.1/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/src/lib/distro-info/suse-11.1/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/src/lib/distro-info/suse-11.1/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.1/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5bd5a78e Binary files /dev/null and b/src/lib/distro-info/suse-11.1/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.1_x86_64/mirrors/base b/src/lib/distro-info/suse-11.1_x86_64/mirrors/base new file mode 100644 index 00000000..8d55eac4 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-11.1_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..bd887ed3 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/mirrors/base_update b/src/lib/distro-info/suse-11.1_x86_64/mirrors/base_update new file mode 100644 index 00000000..d0c666e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.1_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..aaec909b --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..f0bb55a3 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/src/lib/distro-info/suse-11.1_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/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5bd5a78e Binary files /dev/null and b/src/lib/distro-info/suse-11.1_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.2/export-filter.example b/src/lib/distro-info/suse-11.2/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/mirrors/base b/src/lib/distro-info/suse-11.2/mirrors/base new file mode 100644 index 00000000..e30465d5 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/mirrors/base_non-oss b/src/lib/distro-info/suse-11.2/mirrors/base_non-oss new file mode 100644 index 00000000..47ee0d08 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/mirrors/base_update b/src/lib/distro-info/suse-11.2/mirrors/base_update new file mode 100644 index 00000000..bc6e9a4c --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/prereqfiles/etc/group b/src/lib/distro-info/suse-11.2/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.2/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.2/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.2/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.2/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.2/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/settings.default b/src/lib/distro-info/suse-11.2/settings.default new file mode 100644 index 00000000..7e152670 --- /dev/null +++ b/src/lib/distro-info/suse-11.2/settings.default @@ -0,0 +1,1126 @@ +bootstrap-packages = < + packages = < + + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 11.2 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.2 non-OSS + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.2 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = kde + packages = < + + base = textmode + packages = < + + base = minimal + + diff --git a/src/lib/distro-info/suse-11.2/settings.example b/src/lib/distro-info/suse-11.2/settings.example new file mode 100644 index 00000000..a8db67df --- /dev/null +++ b/src/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/11.2 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ddcc28cd --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..8cc6c669 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..31f2005c --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..580858ba --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..fdd693f9 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..d0f64278 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..c813e864 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.2/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..18086b97 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5bd5a78e Binary files /dev/null and b/src/lib/distro-info/suse-11.2/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.2_x86_64/mirrors/base b/src/lib/distro-info/suse-11.2_x86_64/mirrors/base new file mode 100644 index 00000000..8d55eac4 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-11.2_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..bd887ed3 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/mirrors/base_update b/src/lib/distro-info/suse-11.2_x86_64/mirrors/base_update new file mode 100644 index 00000000..d0c666e0 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.2_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/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/src/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/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5bd5a78e Binary files /dev/null and b/src/lib/distro-info/suse-11.2_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/suse-11.3/export-filter.example b/src/lib/distro-info/suse-11.3/export-filter.example new file mode 100644 index 00000000..a414fef4 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/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/src/lib/distro-info/suse-11.3/mirrors/base b/src/lib/distro-info/suse-11.3/mirrors/base new file mode 100644 index 00000000..679b0910 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/mirrors/base @@ -0,0 +1,252 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.3/repo/oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.3/repo/oss +http://www.lizardsource.cn/distribution/11.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.3/repo/oss +http://mirror.alva.ge/pub/opensuse/distribution/11.3/repo/oss +http://download.opensuse.or.id/distribution/11.3/repo/oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.3/repo/oss +http://mirror.lupaworld.com/opensuse/distribution/11.3/repo/oss +ftp://www.lizardsource.cn/distribution/11.3/repo/oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.3/repo/oss +http://repo.ugm.ac.id/opensuse/distribution/11.3/repo/oss +http://opensuse.cbn.net.id/distribution/11.3/repo/oss +http://mirror.unej.ac.id/opensuse/distribution/11.3/repo/oss +http://dl2.foss-id.web.id/opensuse/distribution/11.3/repo/oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.3/repo/oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.3/repo/oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/repo/oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.3/repo/oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.3/repo/oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.3/repo/oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.3/repo/oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/repo/oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.3/repo/oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.3/repo/oss +ftp://mirror.unej.ac.id/opensuse/distribution/11.3/repo/oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.3/repo/oss +http://ftp.daum.net/opensuse/distribution/11.3/repo/oss +http://77.88.19.68/opensuse/distribution/11.3/repo/oss +http://77.88.19.73/opensuse/distribution/11.3/repo/oss +http://mirror.suse.ru/distribution/11.3/repo/oss +http://77.88.19.74/opensuse/distribution/11.3/repo/oss +http://93.158.155.193/opensuse/distribution/11.3/repo/oss +ftp://ftp.daum.net/opensuse/distribution/11.3/repo/oss +ftp://seeder.yandex.net/opensuse/distribution/11.3/repo/oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.3/repo/oss +ftp://allotter.yandex.net/opensuse/distribution/11.3/repo/oss +http://mirror.nus.edu.sg/opensuse/distribution/11.3/repo/oss +ftp://dispenser.yandex.net/opensuse/distribution/11.3/repo/oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.3/repo/oss +ftp://spreader.yandex.net/opensuse/distribution/11.3/repo/oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.3/repo/oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.3/repo/oss +ftp://mirror.in.th/opensuse/distribution/11.3/repo/oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.3/repo/oss +http://ftp.chg.ru/pub/opensuse/distribution/11.3/repo/oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.3/repo/oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.3/repo/oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.3/repo/oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.3/repo/oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.3/repo/oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.3/repo/oss +http://suse.inode.at/opensuse/distribution/11.3/repo/oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.3/repo/oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.3/repo/oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/repo/oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.3/repo/oss +ftp://suse.inode.at/opensuse/distribution/11.3/repo/oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.3/repo/oss +http://suse.lagis.at/opensuse/distribution/11.3/repo/oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.3/repo/oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/repo/oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/repo/oss +http://mirrors.netbg.com/opensuse/distribution/11.3/repo/oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/repo/oss +ftp://suse.lagis.at/opensuse/distribution/11.3/repo/oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/repo/oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.3/repo/oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/repo/oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://mirrors.netbg.com/opensuse/distribution/11.3/repo/oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/repo/oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.3/repo/oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.3/repo/oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.3/repo/oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/repo/oss +http://opensuse.intergenia.de/distribution/11.3/repo/oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/repo/oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/repo/oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/repo/oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/repo/oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +http://ftp.uni-kassel.de/opensuse/distribution/11.3/repo/oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://widehat.opensuse.org/distribution/11.3/repo/oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/repo/oss +http://opensuse-linuxmigratio.at/distribution/11.3/repo/oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.3/repo/oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.3/repo/oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.3/repo/oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.3/repo/oss +http://ftp.uni-siegen.de/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.3/repo/oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/repo/oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.3/repo/oss +http://suse.bifi.unizar.es/opensuse/distribution/11.3/repo/oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/repo/oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.3/repo/oss +ftp://ftp.klid.dk/opensuse/distribution/11.3/repo/oss +http://mirror.ovh.net/opensuse/distribution/11.3/repo/oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/repo/oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/repo/oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.3/repo/oss +http://opensuse.cict.fr/distribution/11.3/repo/oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://mirror.cict.fr/opensuse/distribution/11.3/repo/oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/repo/oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.3/repo/oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.3/repo/oss +ftp://mirror.ovh.net/opensuse/distribution/11.3/repo/oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/repo/oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/repo/oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/repo/oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.3/repo/oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/repo/oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.3/repo/oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/repo/oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.3/repo/oss +http://mirror.leaseweb.com/opensuse/distribution/11.3/repo/oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.3/repo/oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/repo/oss +http://repo1.linux.edu.lv/distribution/11.3/repo/oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/repo/oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/repo/oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.3/repo/oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/repo/oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/oss +http://opensuse.hro.nl/opensuse/distribution/11.3/repo/oss +ftp://repo1.linux.edu.lv/distribution/11.3/repo/oss +ftp://opensuse.hro.nl/opensuse/distribution/11.3/repo/oss +http://opensuse.uib.no/distribution/11.3/repo/oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.3/repo/oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/repo/oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/repo/oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/repo/oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.3/repo/oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/repo/oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.3/repo/oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/repo/oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.3/repo/oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.3/repo/oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/repo/oss +http://ftp.gts.lug.ro/opensuse/distribution/11.3/repo/oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/repo/oss +http://ftp.ines.lug.ro/opensuse/distribution/11.3/repo/oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.3/repo/oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/repo/oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.3/repo/oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.3/repo/oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.3/repo/oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.3/repo/oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/repo/oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.3/repo/oss +http://opensuse.ynet.sk/distribution/11.3/repo/oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.3/repo/oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/repo/oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.3/repo/oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/repo/oss +http://linux.dell.com/repo/community/distribution/11.3/repo/oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.3/repo/oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.3/repo/oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.3/repo/oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/repo/oss +ftp://less.cogeco.net/openSUSE/distribution/11.3/repo/oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.3/repo/oss +http://opensuse.cs.utah.edu/distribution/11.3/repo/oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/repo/oss +http://mirror.umoss.org/opensuse/distribution/11.3/repo/oss +http://opensuse.ca.unixheads.org/distribution/11.3/repo/oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.3/repo/oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.3/repo/oss +http://mirrors.xmission.com/opensuse/distribution/11.3/repo/oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/repo/oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/repo/oss +http://mirrors2.kernel.org/opensuse/distribution/11.3/repo/oss +http://mirrors1.kernel.org/opensuse/distribution/11.3/repo/oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.3/repo/oss +http://mirror.rackspace.com/openSUSE/distribution/11.3/repo/oss +http://130.57.19.201/distribution/11.3/repo/oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.3/repo/oss +ftp://130.57.19.201/pub/opensuse/distribution/11.3/repo/oss +http://ftp.utexas.edu/opensuse/distribution/11.3/repo/oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/repo/oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/repo/oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.3/repo/oss +ftp://mirrors.xmission.com/opensuse/distribution/11.3/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.3/repo/oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.3/repo/oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.3/repo/oss +http://mirror.nyi.net/opensuse/distribution/11.3/repo/oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.3/repo/oss +http://mirrors.rit.edu/opensuse/distribution/11.3/repo/oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.3/repo/oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.3/repo/oss +ftp://mirror.nyi.net/opensusedistribution/11.3/repo/oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.3/repo/oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.3/repo/oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.3/repo/oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.3/repo/oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.3/repo/oss +http://opensuse.patan.com.ar/distribution/11.3/repo/oss +http://200.221.9.37/pub/opensuse/distribution/11.3/repo/oss +http://opensuse.c3sl.ufpr.br/distribution/11.3/repo/oss +http://opensuse.pop.com.br/distribution/11.3/repo/oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.3/repo/oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.3/repo/oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.3/repo/oss diff --git a/src/lib/distro-info/suse-11.3/mirrors/base_non-oss b/src/lib/distro-info/suse-11.3/mirrors/base_non-oss new file mode 100644 index 00000000..127e4a13 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/mirrors/base_non-oss @@ -0,0 +1,250 @@ +http://opensuse.mirror.ac.za/opensuse/distribution/11.3/repo/non-oss +http://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/distribution/11.3/repo/non-oss +http://mirror.lupaworld.com/opensuse/distribution/11.3/repo/non-oss +http://www.lizardsource.cn/distribution/11.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.3/repo/non-oss +http://mirror.alva.ge/pub/opensuse/distribution/11.3/repo/non-oss +ftp://www.lizardsource.cn/distribution/11.3/repo/non-oss +ftp://opensuse.mirror.ac.za/opensuse/distribution/11.3/repo/non-oss +http://mirror.unej.ac.id/opensuse/distribution/11.3/repo/non-oss +http://opensuse.cbn.net.id/distribution/11.3/repo/non-oss +http://download.opensuse.or.id/distribution/11.3/repo/non-oss +http://repo.ugm.ac.id/opensuse/distribution/11.3/repo/non-oss +ftp://opensuse.cbn.net.id/pub/opensuse/distribution/11.3/repo/non-oss +http://dl2.foss-id.web.id/opensuse/distribution/11.3/repo/non-oss +http://mirror.isoc.org.il/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/repo/non-oss +ftp://dl2.foss-id.web.id/repo/opensuse/distribution/11.3/repo/non-oss +http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/11.3/repo/non-oss +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.isoc.org.il/opensuse/distribution/11.3/repo/non-oss +http://ftp.novell.co.jp/pub/opensuse/distribution/11.3/repo/non-oss +ftp://repo.ugm.ac.id/opensuse/distribution/11.3/repo/non-oss +http://ftp.riken.jp/Linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.novell.co.jp/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.daum.net/opensuse/distribution/11.3/repo/non-oss +http://77.88.19.68/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.kddilabs.jp/Linux/packages/opensusedistribution/11.3/repo/non-oss +http://77.88.19.73/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.riken.jp/Linux/opensuse/distribution/11.3/repo/non-oss +http://mirror.suse.ru/distribution/11.3/repo/non-oss +http://77.88.19.74/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.chg.ru/pub/opensuse/distribution/11.3/repo/non-oss +ftp://spreader.yandex.net/opensuse/distribution/11.3/repo/non-oss +http://mirror.nus.edu.sg/opensuse/distribution/11.3/repo/non-oss +ftp://dispenser.yandex.net/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.kaist.ac.kr/opensuse/distribution/11.3/repo/non-oss +ftp://seeder.yandex.net/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.in.th/opensuse/distribution/11.3/repo/non-oss +ftp://allotter.yandex.net/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.metu.edu.tr/opensuse/distribution/11.3/repo/non-oss +http://ftp.isu.edu.tw/pub/Linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/distribution/11.3/repo/non-oss +http://ftp.chg.ru/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.suntel.com.tr/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.ncnu.edu.tw/Linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.3/repo/non-oss +http://ftp.twaren.net/Linux/OpenSuSE/distribution/11.3/repo/non-oss +http://mirror-fpt-telecom.fpt.net/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/11.3/repo/non-oss +http://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/repo/non-oss +http://suse.inode.at/opensuse/distribution/11.3/repo/non-oss +http://ftp.tugraz.at/mirror/opensuse/distribution/11.3/repo/non-oss +ftp://suse.inode.at/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.tugraz.at/mirror/opensuse/distribution/11.3/repo/non-oss +http://suse.lagis.at/opensuse/distribution/11.3/repo/non-oss +ftp://suse.lagis.at/opensuse/distribution/11.3/repo/non-oss +http://mirror.opensuse.com.ba/opensuse/distribution/11.3/repo/non-oss +http://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/repo/non-oss +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/distribution/11.3/repo/non-oss +http://mirrors.netbg.com/opensuse/distribution/11.3/repo/non-oss +http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/distribution/11.3/repo/non-oss +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +http://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/distribution/11.3/repo/non-oss +ftp://mirrors.netbg.com/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.switch.ch/mirror/opensuse/distribution/11.3/repo/non-oss +http://ftp.linux.cz/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.karneval.cz/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/repo/non-oss +http://ftp5.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/distribution/11.3/repo/non-oss +http://ftp.uni-bremen.de/pub/mirrors/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://download.uni-hd.de/ftp/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.halifax.rwth-aachen.de/opensuse/distribution/11.3/repo/non-oss +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp5.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://opensuse.intergenia.de/distribution/11.3/repo/non-oss +http://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/repo/non-oss +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/repo/non-oss +http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-ulm.de/mirrors/opensuse/distribution/11.3/repo/non-oss +http://widehat.opensuse.org/distribution/11.3/repo/non-oss +http://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/distribution/11.3/repo/non-oss +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp4.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp3.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp4.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.uni-kassel.de/opensuse/distribution/11.3/repo/non-oss +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +http://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/repo/non-oss +http://opensuse-linuxmigratio.at/distribution/11.3/repo/non-oss +ftp://ftp3.gwdg.de/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-kassel.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-kl.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.uni-siegen.de/opensuse/distribution/11.3/repo/non-oss +http://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.3/repo/non-oss +http://ftp.klid.dk/ftp/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.tu-ilmenau.de/mirror/opensuse/distribution/11.3/repo/non-oss +http://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.klid.dk/opensuse/distribution/11.3/repo/non-oss +http://ftp.estpak.ee/pub/suse/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/repo/non-oss +ftp://ftp.uni-siegen.de/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uni-bayreuth.de/linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.rediris.es/pub/mirror/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.rediris.es/pub/mirror/opensuse/distribution/11.3/repo/non-oss +http://suse.bifi.unizar.es/opensuse/distribution/11.3/repo/non-oss +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.gui.uva.es/sites/opensuse.org/distribution/11.3/repo/non-oss +http://opensuse.mirrors.proxad.net/opensuse/distribution/11.3/repo/non-oss +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +http://fr2.rpmfind.net/linux/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.ovh.net/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/distribution/11.3/repo/non-oss +http://opensuse.cict.fr/distribution/11.3/repo/non-oss +http://mirror.ovh.net/opensuse/distribution/11.3/repo/non-oss +http://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/repo/non-oss +ftp://fr2.rpmfind.net/linux/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/non-oss +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/distribution/11.3/repo/non-oss +ftp://mirror.cict.fr/opensuse/distribution/11.3/repo/non-oss +http://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/repo/non-oss +http://ftp.ntua.gr/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.ntua.gr/pub/linux/opensusedistribution/11.3/repo/non-oss +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/non-oss +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/distribution/11.3/repo/non-oss +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/non-oss +ftp://www.mirrorservice.org/sites/download.opensuse.org/distribution/11.3/repo/non-oss +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/distribution/11.3/repo/non-oss +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/distribution/11.3/repo/non-oss +http://rm.mirror.garr.it/mirrors/opensuse/distribution/11.3/repo/non-oss +http://roxen.integrity.hu/pub/opensuse/distribution/11.3/repo/non-oss +http://repo1.linux.edu.lv/distribution/11.3/repo/non-oss +http://mirror.leaseweb.com/opensuse/distribution/11.3/repo/non-oss +ftp://repo1.linux.edu.lv/distribution/11.3/repo/non-oss +ftp://mirror.leaseweb.com/opensuse/distribution/11.3/repo/non-oss +ftp://rm.mirror.garr.it/mirrors/opensusedistribution/11.3/repo/non-oss +http://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://ftp2.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/repo/non-oss +http://ftp1.nluug.nl/os/Linux/distr/opensuse/distribution/11.3/repo/non-oss +http://opensuse.hro.nl/opensuse/distribution/11.3/repo/non-oss +http://opensuse.uib.no/distribution/11.3/repo/non-oss +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/distribution/11.3/repo/non-oss +http://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.3/repo/non-oss +ftp://mirrors.nl.eu.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.3/repo/non-oss +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.uninett.no/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://opensuse.hro.nl/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/11.3/repo/non-oss +http://ftp.sileman.pl/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/repo/non-oss +http://cesium.di.uminho.pt/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/distribution/11.3/repo/non-oss +http://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.pbone.net/pub/opensuse/distribution/11.3/repo/non-oss +ftp://cesium.di.uminho.pt/pub/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.gts.lug.ro/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.sileman.pl/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.ines.lug.ro/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/distribution/11.3/repo/non-oss +http://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.3/repo/non-oss +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/distribution/11.3/repo/non-oss +http://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/repo/non-oss +ftp://mirrors.se.eu.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://ftp.gts.lug.ro/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.ines.lug.ro/opensuse/distribution/11.3/repo/non-oss +http://ftp.df.lth.se/pub/opensuse/distribution/11.3/repo/non-oss +http://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/distribution/11.3/repo/non-oss +http://opensuse.ynet.sk/distribution/11.3/repo/non-oss +http://less.cogeco.net/ftp/openSUSE/distribution/11.3/repo/non-oss +http://linux.dell.com/repo/community/distribution/11.3/repo/non-oss +ftp://less.cogeco.net/openSUSE/distribution/11.3/repo/non-oss +ftp://ftp.df.lth.se/pub/opensusedistribution/11.3/repo/non-oss +http://ftp.osuosl.org/pub/opensuse/distribution/11.3/repo/non-oss +http://www.muug.mb.ca/pub/opensuse/distribution/11.3/repo/non-oss +http://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.osuosl.org/pub/opensuse/distribution/11.3/repo/non-oss +http://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/repo/non-oss +ftp://opensuse.fastsoft.net/pub/linux/opensuse/distribution/11.3/repo/non-oss +http://mirrors.med.harvard.edu/opensuse/distribution/11.3/repo/non-oss +ftp://suse.mirrors.tds.net/pub/opensuse/distribution/11.3/repo/non-oss +http://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://www.muug.mb.ca/pub/opensuse/distribution/11.3/repo/non-oss +http://mirror.umoss.org/opensuse/distribution/11.3/repo/non-oss +http://opensuse.cs.utah.edu/distribution/11.3/repo/non-oss +http://opensuse.ca.unixheads.org/distribution/11.3/repo/non-oss +ftp://mirror.anl.gov/pub/opensuse/opensuse/distribution/11.3/repo/non-oss +http://mirrors2.kernel.org/opensuse/distribution/11.3/repo/non-oss +ftp://opensuse.cs.utah.edu/pub/opensuse/distribution/11.3/repo/non-oss +http://mirrors1.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://mirrors.xmission.com/opensuse/distribution/11.3/repo/non-oss +http://mirror.rackspace.com/openSUSE/distribution/11.3/repo/non-oss +http://130.57.19.201/distribution/11.3/repo/non-oss +ftp://mirrors.xmission.com/opensuse/distribution/11.3/repo/non-oss +ftp://130.57.19.201/pub/opensuse/distribution/11.3/repo/non-oss +http://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/repo/non-oss +ftp://mirrors2.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://ftp.ussg.iu.edu/linux/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.rackspace.com/openSUSE/distribution/11.3/repo/non-oss +http://ftp.utexas.edu/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.ussg.iu.edu/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.utexas.edu/mirrors/opensuse/distribution/11.3/repo/non-oss +ftp://www.gtlib.gatech.edu/pub/opensuse/distribution/11.3/repo/non-oss +http://distro.ibiblio.org/pub/linux/distributions/opensuse/distribution/11.3/repo/non-oss +http://mirror.cps.cmich.edu/opensuse/opensuse/distribution/11.3/repo/non-oss +http://mirror.nyi.net/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.3/repo/non-oss +ftp://mirrors1.kernel.org/opensuse/distribution/11.3/repo/non-oss +http://mirrors.rit.edu/opensuse/distribution/11.3/repo/non-oss +http://ftp.iinet.net.au/pub/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.colorado.edu/pub/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.nyi.net/opensusedistribution/11.3/repo/non-oss +http://mirror.internode.on.net/pub/opensuse/distribution/11.3/repo/non-oss +http://mirror.pacific.net.au/linux/opensuse/distribution/11.3/repo/non-oss +ftp://ftp.iinet.net.au/pub/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.internode.on.net/pub/opensuse/distribution/11.3/repo/non-oss +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.3/repo/non-oss +ftp://mirror.pacific.net.au/linux/opensuse/distribution/11.3/repo/non-oss +http://200.221.9.37/pub/opensuse/distribution/11.3/repo/non-oss +http://opensuse.c3sl.ufpr.br/distribution/11.3/repo/non-oss +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/distribution/11.3/repo/non-oss +http://opensuse.patan.com.ar/distribution/11.3/repo/non-oss +http://opensuse.pop.com.br/distribution/11.3/repo/non-oss +ftp://opensuse.c3sl.ufpr.br/opensuse/distribution/11.3/repo/non-oss diff --git a/src/lib/distro-info/suse-11.3/mirrors/base_update b/src/lib/distro-info/suse-11.3/mirrors/base_update new file mode 100644 index 00000000..6d560d07 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/mirrors/base_update @@ -0,0 +1,252 @@ +http://mirror.lupaworld.com/opensuse/update/11.3 +http://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.3 +http://opensuse.mirror.ac.za/opensuse/update/11.3 +ftp://opensuse.mirror.ac.za/opensuse/update/11.3 +http://www.lizardsource.cn/update/11.3 +http://mirror.alva.ge/pub/opensuse/update/11.3 +http://mirror.alva.ge/pub/opensuse/update/11.3 +http://download.opensuse.or.id/update/11.3 +ftp://ftp.up.ac.za/mirrors/opensuse/opensuse/update/11.3 +ftp://www.lizardsource.cn/update/11.3 +http://opensuse.cbn.net.id/update/11.3 +http://mirror.unej.ac.id/opensuse/update/11.3 +http://dl2.foss-id.web.id/opensuse/update/11.3 +ftp://mirror.isoc.org.il/opensuse/update/11.3 +http://repo.ugm.ac.id/opensuse/update/11.3 +http://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.3 +http://mirror.isoc.org.il/pub/opensuse/update/11.3 +http://ftp.kddilabs.jp/Linux/packages/opensuse/update/11.3 +ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/update/11.3 +ftp://dl2.foss-id.web.id/repo/opensuse/update/11.3 +ftp://mirror.unej.ac.id/opensuse/update/11.3 +ftp://opensuse.cbn.net.id/pub/opensuse/update/11.3 +http://ftp.novell.co.jp/pub/opensuse/update/11.3 +ftp://repo.ugm.ac.id/opensuse/update/11.3 +http://ftp.riken.jp/Linux/opensuse/update/11.3 +ftp://ftp.novell.co.jp/pub/opensuse/update/11.3 +ftp://ftp.kddilabs.jp/Linux/packages/opensuseupdate/11.3 +http://ftp.yz.yamagata-u.ac.jp/pub/linux/opensuse/update/11.3 +http://77.88.19.68/opensuse/update/11.3 +ftp://ftp.daum.net/opensuse/update/11.3 +http://77.88.19.73/opensuse/update/11.3 +ftp://ftp.riken.jp/Linux/opensuse/update/11.3 +http://mirror.suse.ru/update/11.3 +http://77.88.19.74/opensuse/update/11.3 +http://ftp.daum.net/opensuse/update/11.3 +http://93.158.155.193/opensuse/update/11.3 +ftp://ftp.kaist.ac.kr/opensuse/update/11.3 +ftp://spreader.yandex.net/opensuse/update/11.3 +ftp://ftp.chg.ru/pub/opensuse/update/11.3 +ftp://seeder.yandex.net/opensuse/update/11.3 +http://mirror.nus.edu.sg/opensuse/update/11.3 +ftp://mirror.in.th/opensuse/update/11.3 +ftp://allotter.yandex.net/opensuse/update/11.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.3 +ftp://ftp.metu.edu.tr/opensuse/update/11.3 +ftp://dispenser.yandex.net/opensuse/update/11.3 +ftp://ftp.suntel.com.tr/pub/opensuse/update/11.3 +http://ftp.chg.ru/pub/opensuse/update/11.3 +http://ftp.isu.edu.tw/pub/Linux/opensuse/update/11.3 +http://mirror-fpt-telecom.fpt.net/opensuse/update/11.3 +ftp://ftp.ncnu.edu.tw/Linux/opensuse/update/11.3 +http://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.3 +http://ftp.ncnu.edu.tw/Linux/opensuse/update/11.3 +http://ftp.twaren.net/Linux/OpenSuSE/update/11.3 +ftp://ftp.isu.edu.tw/pub/Linux/OpenSuSE/update/11.3 +http://suse.inode.at/opensuse/update/11.3 +ftp://ftp.cse.yzu.edu.tw/pub/Linux/openSUSE/update/11.3 +ftp://ftp.twaren.net/Linux/OpenSuSE/update/11.3 +http://ftp.tugraz.at/mirror/opensuse/update/11.3 +ftp://suse.inode.at/opensuse/update/11.3 +http://suse.lagis.at/opensuse/update/11.3 +http://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.3 +ftp://ftp.tugraz.at/mirror/opensuse/update/11.3 +ftp://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.3 +http://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.3 +ftp://suse.lagis.at/opensuse/update/11.3 +ftp://opensuse.mirrors.skynet.be/pub/ftp.opensuse.org/opensuse/update/11.3 +http://mirror.opensuse.com.ba/opensuse/update/11.3 +http://mirrors.netbg.com/opensuse/update/11.3 +http://mirror.switch.ch/ftp/mirror/opensuse/update/11.3 +ftp://mirror.switch.ch/mirror/opensuse/update/11.3 +http://mirror.karneval.cz/pub/linux/opensuse/update/11.3 +http://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.3 +ftp://ftp.belnet.be/mirror/ftp.opensuse.org/update/11.3 +http://ftp5.gwdg.de/pub/opensuse/update/11.3 +http://gd.tuwien.ac.at/opsys/linux/opensuse/update/11.3 +http://ftp.linux.cz/pub/linux/opensuse/update/11.3 +http://ftp.halifax.rwth-aachen.de/opensuse/update/11.3 +ftp://mirror.karneval.cz/pub/linux/opensuse/update/11.3 +ftp://mirrors.netbg.com/opensuse/update/11.3 +ftp://ftp.sh.cvut.cz/MIRRORS/opensuse/update/11.3 +http://ftp.uni-bremen.de/pub/mirrors/opensuse/update/11.3 +ftp://ftp.halifax.rwth-aachen.de/opensuse/update/11.3 +http://download.uni-hd.de/ftp/pub/linux/opensuse/update/11.3 +ftp://ftp.uni-heidelberg.de/pub/linux/opensuse/update/11.3 +ftp://ftp5.gwdg.de/pub/opensuse/update/11.3 +http://sunsite.rwth-aachen.de:3080/ftp/pub/Linux/opensuse/update/11.3 +http://opensuse.intergenia.de/update/11.3 +http://ftp.uni-ulm.de/mirrors/opensuse/update/11.3 +ftp://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.3 +ftp://ftp.uni-ulm.de/mirrors/opensuse/update/11.3 +http://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.3 +http://ftp.rz.uni-wuerzburg.de/pub/linux/opensuse/update/11.3 +http://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.3 +ftp://ftp.tu-chemnitz.de/pub/linux/opensuse/update/11.3 +http://ftp.uni-kl.de/pub/linux/opensuse/update/11.3 +ftp://sunsite.informatik.rwth-aachen.de/pub/linux/opensuse/update/11.3 +http://ftp3.gwdg.de/pub/opensuse/update/11.3 +ftp://ftp.uni-kl.de/pub/linux/opensuse/update/11.3 +ftp://ftp.hosteurope.de/mirror/ftp.opensuse.org/update/11.3 +http://widehat.opensuse.org/update/11.3 +http://ftp4.gwdg.de/pub/opensuse/update/11.3 +ftp://ftp4.gwdg.de/pub/opensuse/update/11.3 +ftp://ftp3.gwdg.de/pub/opensuse/update/11.3 +http://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.3 +http://ftp.uni-kassel.de/opensuse/update/11.3 +http://ftp.uni-bayreuth.de/linux/opensuse/update/11.3 +http://opensuse-linuxmigratio.at/update/11.3 +ftp://ftp.uni-kassel.de/pub/linux/opensuse/update/11.3 +http://ftp.tu-ilmenau.de/mirror/opensuse/update/11.3 +ftp://suse.uni-leipzig.de/pub/ftp.opensuse.org/opensuse/update/11.3 +ftp://ftp.uni-siegen.de/pub/opensuse/update/11.3 +http://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.3 +ftp://ftp.uni-paderborn.de/pub/linux/opensuse/update/11.3 +ftp://ftp.uni-bayreuth.de/linux/opensuse/update/11.3 +http://ftp.estpak.ee/pub/suse/opensuse/update/11.3 +http://ftp.gui.uva.es/sites/opensuse.org/update/11.3 +ftp://ftp.tu-ilmenau.de/mirror/opensuse/update/11.3 +ftp://ftp.gui.uva.es/sites/opensuse.org/update/11.3 +http://ftp.rediris.es/pub/mirror/opensuse/update/11.3 +ftp://ftp.klid.dk/opensuse/update/11.3 +ftp://ftp.rediris.es/pub/mirror/opensuse/update/11.3 +http://suse.bifi.unizar.es/opensuse/update/11.3 +http://ftp.uni-siegen.de/opensuse/update/11.3 +http://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.3 +http://ftp.klid.dk/ftp/opensuse/update/11.3 +http://opensuse.mirrors.proxad.net/opensuse/update/11.3 +ftp://opensuse.mirrors.proxad.net/mirrors/ftp.opensuse.org/opensuse/update/11.3 +ftp://mirror.ovh.net/opensuse/update/11.3 +ftp://ftp.funet.fi/pub/mirrors/ftp.opensuse.com/pub/opensuse/update/11.3 +http://mirror.ovh.net/opensuse/update/11.3 +http://www.mirrorservice.org/sites/download.opensuse.org/update/11.3 +http://fr2.rpmfind.net/linux/opensuse/update/11.3 +ftp://www.mirrorservice.org/sites/download.opensuse.org/update/11.3 +http://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.3 +ftp://fr2.rpmfind.net/linux/opensuse/update/11.3 +ftp://mirror.ox.ac.uk/sites/ftp.opensuse.org/pub/opensuse/update/11.3 +http://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.3 +http://opensuse.cict.fr/update/11.3 +http://ftp.ntua.gr/pub/linux/opensuse/update/11.3 +ftp://ftp.cc.uoc.gr/mirrors/linux/opensuse/opensuse/update/11.3 +http://anorien.csc.warwick.ac.uk/mirrors/download.opensuse.org/update/11.3 +ftp://ftp.ntua.gr/pub/linux/opensuseupdate/11.3 +http://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.3 +ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/update/11.3 +ftp://ftp.fsn.hu/pub/linux/distributions/opensuse/update/11.3 +http://roxen.integrity.hu/pub/opensuse/update/11.3 +ftp://mirror.cict.fr/opensuse/update/11.3 +http://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.3 +ftp://ftp.esat.net/mirrors/ftp.opensuse.org/pub/opensuse/update/11.3 +http://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.3 +http://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.3 +http://rm.mirror.garr.it/mirrors/opensuse/update/11.3 +http://repo1.linux.edu.lv/update/11.3 +ftp://repo1.linux.edu.lv/update/11.3 +http://mirror.leaseweb.com/opensuse/update/11.3 +ftp://ftp.heanet.ie/mirrors/ftp.opensuse.org/opensuse/update/11.3 +ftp://ftp.novell.hu/pub/mirrors/ftp.opensuse.org/opensuse/update/11.3 +ftp://mirror.leaseweb.com/opensuse/update/11.3 +ftp://rm.mirror.garr.it/mirrors/opensuseupdate/11.3 +ftp://mirrors.nl.eu.kernel.org/opensuse/update/11.3 +http://ftp2.nluug.nl/os/Linux/distr/opensuse/update/11.3 +http://ftp1.nluug.nl/os/Linux/distr/opensuse/update/11.3 +http://mirrors.nl.eu.kernel.org/opensuse/update/11.3 +ftp://ftp1.nluug.nl/pub/os/Linux/distr/opensuse/update/11.3 +http://opensuse.hro.nl/opensuse/update/11.3 +http://opensuse.uib.no/update/11.3 +ftp://ftp2.nluug.nl/pub/os/Linux/distr/opensuse/update/11.3 +http://ftp.uninett.no/pub/linux/opensuse/update/11.3 +http://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.3 +http://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.3 +ftp://opensuse.uib.no/pub/Linux/Distributions/opensuse/opensuse/update/11.3 +ftp://ftp.man.poznan.pl/pub/linux/opensuse/opensuse/update/11.3 +ftp://ftp.uninett.no/pub/linux/opensuse/update/11.3 +ftp://opensuse.hro.nl/opensuse/update/11.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.3 +ftp://ftp.pbone.net/pub/opensuse/update/11.3 +ftp://ftp.icm.edu.pl/pub/Linux/opensuse/update/11.3 +http://ftp.sileman.pl/pub/opensuse/update/11.3 +ftp://ftp.man.szczecin.pl/pub/Linux/opensuse/opensuse/update/11.3 +ftp://ftp.sileman.pl/pub/opensuse/update/11.3 +ftp://ftp.pbone.net/pub/opensuse/update/11.3 +http://cesium.di.uminho.pt/pub/opensuse/update/11.3 +http://ftp.gts.lug.ro/opensuse/update/11.3 +ftp://cesium.di.uminho.pt/pub/opensuse/update/11.3 +ftp://ftp.gts.lug.ro/opensuse/update/11.3 +http://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.3 +http://ftp.ines.lug.ro/opensuse/update/11.3 +ftp://ftp.nux.ipb.pt/pub/dists/opensuse/update/11.3 +ftp://ftp.ines.lug.ro/opensuse/update/11.3 +http://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.3 +http://mirrors.se.eu.kernel.org/opensuse/update/11.3 +http://ftp.df.lth.se/pub/opensuse/update/11.3 +http://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.3 +ftp://ftp.iasi.roedu.net/mirrors/opensuse.org/update/11.3 +http://opensuse.ynet.sk/update/11.3 +ftp://mirrors.se.eu.kernel.org/opensuse/update/11.3 +ftp://ftp.df.lth.se/pub/opensuseupdate/11.3 +ftp://less.cogeco.net/openSUSE/update/11.3 +http://www.muug.mb.ca/pub/opensuse/update/11.3 +http://linux.dell.com/repo/community/update/11.3 +http://ftp.osuosl.org/pub/opensuse/update/11.3 +ftp://ftp.sunet.se/pub/Linux/distributions/opensuse/update/11.3 +http://less.cogeco.net/ftp/openSUSE/update/11.3 +ftp://www.muug.mb.ca/pub/opensuse/update/11.3 +http://suse.mirrors.tds.net/pub/opensuse/update/11.3 +ftp://opensuse.fastsoft.net/pub/linux/opensuse/update/11.3 +ftp://suse.mirrors.tds.net/pub/opensuse/update/11.3 +http://opensuse.fastsoft.net/pub/linux/opensuse/update/11.3 +http://mirror.anl.gov/pub/opensuse/opensuse/update/11.3 +http://mirror.umoss.org/opensuse/update/11.3 +ftp://mirror.anl.gov/pub/opensuse/opensuse/update/11.3 +http://opensuse.cs.utah.edu/update/11.3 +http://mirrors.med.harvard.edu/opensuse/update/11.3 +ftp://ftp.osuosl.org/pub/opensuse/update/11.3 +http://mirrors.xmission.com/opensuse/update/11.3 +ftp://mirrors.xmission.com/opensuse/update/11.3 +ftp://opensuse.cs.utah.edu/pub/opensuse/update/11.3 +http://mirrors1.kernel.org/opensuse/update/11.3 +http://opensuse.ca.unixheads.org/update/11.3 +http://mirror.rackspace.com/openSUSE/update/11.3 +http://130.57.19.201/update/11.3 +http://mirrors2.kernel.org/opensuse/update/11.3 +ftp://mirrors1.kernel.org/opensuse/update/11.3 +ftp://130.57.19.201/pub/opensuse/update/11.3 +ftp://mirrors2.kernel.org/opensuse/update/11.3 +http://ftp.ussg.iu.edu/linux/opensuse/update/11.3 +ftp://mirror.rackspace.com/openSUSE/update/11.3 +http://ftp.utexas.edu/opensuse/update/11.3 +http://www.gtlib.gatech.edu/pub/opensuse/update/11.3 +ftp://mirror.colorado.edu/pub/opensuse/update/11.3 +ftp://ftp.utexas.edu/mirrors/opensuse/update/11.3 +ftp://www.gtlib.gatech.edu/pub/opensuse/update/11.3 +http://distro.ibiblio.org/pub/linux/distributions/opensuse/update/11.3 +http://mirror.cps.cmich.edu/opensuse/opensuse/update/11.3 +ftp://ftp.ussg.iu.edu/linux/opensuse/update/11.3 +http://mirror.nyi.net/opensuse/update/11.3 +ftp://mirror.colorado.edu/pub/opensuse/update/11.3 +http://mirrors.rit.edu/opensuse/update/11.3 +ftp://mirror.nyi.net/opensuseupdate/11.3 +http://ftp.iinet.net.au/pub/opensuse/update/11.3 +http://mirror.internode.on.net/pub/opensuse/update/11.3 +http://mirror.pacific.net.au/linux/opensuse/update/11.3 +ftp://ftp.iinet.net.au/pub/opensuse/update/11.3 +ftp://mirror.internode.on.net/pub/opensuse/update/11.3 +http://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.3 +http://opensuse.patan.com.ar/update/11.3 +http://opensuse.c3sl.ufpr.br/update/11.3 +http://200.221.9.37/pub/opensuse/update/11.3 +ftp://mirror.aarnet.edu.au/pub/opensuse/opensuse/update/11.3 +ftp://opensuse.c3sl.ufpr.br/opensuse/update/11.3 +http://opensuse.pop.com.br/update/11.3 diff --git a/src/lib/distro-info/suse-11.3/prereqfiles/etc/group b/src/lib/distro-info/suse-11.3/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/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/src/lib/distro-info/suse-11.3/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.3/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.3/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.3/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.3/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/src/lib/distro-info/suse-11.3/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.3/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.3/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/src/lib/distro-info/suse-11.3/settings.default b/src/lib/distro-info/suse-11.3/settings.default new file mode 100644 index 00000000..7e152670 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/settings.default @@ -0,0 +1,1126 @@ +bootstrap-packages = < + packages = < + + packages = < + + packages = < +package-subdir = suse +prereq-packages = < + name = openSUSE 11.2 + repo-subdir = suse + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.2 non-OSS + file-for-speedtest = suse/setup/descr/packages.en.gz + + + name = openSUSE 11.2 updates + file-for-speedtest = repodata/primary.xml.gz + + + packages = < + + base = minimal + packages = < + + base = textmode + packages = < + + base = kde + packages = < + + base = textmode + packages = < + + base = minimal + + diff --git a/src/lib/distro-info/suse-11.3/settings.example b/src/lib/distro-info/suse-11.3/settings.example new file mode 100644 index 00000000..a8db67df --- /dev/null +++ b/src/lib/distro-info/suse-11.3/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 +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/oss +# +# +# local-url = /srv/ftp/pub/opensuse/distribution/11.2/repo/non-oss +# +# +# local-url = /srv/ftp/pub/suse/update/11.2 +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..fcc4856d --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-307e3d54-4be01a65.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-307e3d54-4be01a65.asc new file mode 100644 index 00000000..95350435 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-307e3d54-4be01a65.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (GNU/Linux) + +mIsERCAdXQEEAL7MrBTz+3SBWpCm2ae2yaDqV3ezQcs2JlvqidJVhsZqQe9/jkxi +KTEQW5+TXF/+BlQSiebunRI7oo3+9U8GyRCgs1sf+yRQWMLzZqRaarzRhw9w+Ihl +edtqYl6/U2JZCb8Adp6d7RzlRliJdJ/VtsfXj2ef7Dwu7elOVSsmaBdtAAYptChT +dVNFIFBhY2thZ2UgU2lnbmluZyBLZXkgPGJ1aWxkQHN1c2UuZGU+iLgEEwECACIC +GwMECwcDAgMVAgMDFgIBAh4BAheABQJL4BplBQkPRMsIAAoJEOOlw2Awfj1UhOsD +/RkkEhOIC9NNad0F5O0rEJxvsI7Nm+6FnNJq8LjyR5+87epQCXgpaBXEGd4RcjjO +TukLaHHrC1T/h4biIyf253VZHr4oJ46sUivNUFq60gl4gk56aTGTNeUWOsgrU4jm +auFca3dbGcNfiJ7c7dF2CkOAR+CPMLPYTvuVIRQBAjeS +=jKkp +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..0c4115ac --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3dbdc284-4be1884d.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3dbdc284-4be1884d.asc new file mode 100644 index 00000000..2433332e --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-3dbdc284-4be1884d.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (GNU/Linux) + +mQENBEkUTD8BCADWLy5d5IpJedHQQSXkC1VK/oAZlJEeBVpSZjMCn8LiHaI9Wq3G +3Vp6wvsP1b3kssJGzVFNctdXt5tjvOLxvrEfRJuGfqHTKILByqLzkeyWawbFNfSQ +93/8OunfSTXC1Sx3hgsNXQuOrNVKrDAQUqT620/jj94xNIg09bLSxsjN6EeTvyiO +mtE9H1J03o9tY6meNL/gcQhxBvwuo205np0JojYBP0pOfN8l9hnIOLkA0yu4ZXig +oKOVmf4iTjX4NImIWldT+UaWTO18NWcCrujtgHueytwYLBNV5N0oJIP2VYuLZfSD +VYuPllv7c6O2UEOXJsdbQaVuzU1HLocDyipnABEBAAG0NG9wZW5TVVNFIFByb2pl +Y3QgU2lnbmluZyBLZXkgPG9wZW5zdXNlQG9wZW5zdXNlLm9yZz6JATwEEwECACYC +GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCS+GITQUJClIKDgAKCRC4iy/UPb3C +hCtvCACELgrgzAbLw8p4PfsHzrEAvZbaWSLpSOCV4ZQdo0Q9vaHcsjENXfnZ7ctu +hDnyVSmzy4HcVfBfLmK1xkI8ByXK9JGXt3RXuZWHBuaJQKM0hbAZZ/ScMUOs6Igu +2gmyDaJyrf1vBPtNWpMSS8Jp10iJ9/5B5Hlq4UJxMwTGZwcddhRl/UQKErygdnVg +o5zTdyB05BKF4KEIvdbl9xSfifLfOT8CGBpCmnUmD6YB7agXm3OAM9bZGa2v9ipm +s/haLqxS+b4plYKDN8d8xc2whEfTQD158VW0giv38w6NAd6kCxq2pg5L5PmpF9DM +BZl8K2SBMEtV7BYK9wfnxaRl6Wh/ +=uF5Q +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-56b4177a-4be18cab.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-56b4177a-4be18cab.asc new file mode 100644 index 00000000..9cbdae75 --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-56b4177a-4be18cab.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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+iGYEExECACYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCS+GM +qwUJC8//eAAKCRAcchwkVrQXenCfAKCiI/uNClNI32AaPU36o2mFIUKcHgCfby3/ +8UEqkeBRFM1zyjHBo2w/GYyIRgQQEQIABgUCS+GOAgAKCRA7MBG3a51lI2PoAJ9+ +OORElEjcmtUu0pOhatgoEx+DoACfcJMHcdT+8ckq17RsEgWuS/4dGVM= +=uu+g +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-7e2e3b05-4be037ca.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-7e2e3b05-4be037ca.asc new file mode 100644 index 00000000..58ea0ead --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-7e2e3b05-4be037ca.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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 +AgMBAh4BAheABQJL4DfKBQkO9G+QAAoJEBTCi8l+LjsFWJ0AoIRm3ZLa4FoQ4/rD +nWb0DlZZWJRmAJwPdtR6KhW3eZNEi0YJEJ09dlCBsA== +=2leo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-9c800aca-4be01999.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-9c800aca-4be01999.asc new file mode 100644 index 00000000..4d4d0b4c --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-9c800aca-4be01999.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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 +FQIDAxYCAQIeAQIXgAUCS+AZmQUJGXXzGAAKCRCoTtronIAKyl9KAJ9KyC11XDiC +lhuqOJ+Q0yPL5Ge/aQCePxBrVWcVaAjGq4vTkwMkiD9FVMK5Ag0EOe70khAIAISR +0E3ozF/la+oNaRwxHLrCet30NgnxRROYhPaJB/Tu1FQokn2/Qld/HZnh3TwhBIw1 +FqrhWBJ7491iAjLR9uPbdWJrn+A7t8kSkPaF3Z/6kyc5a8fas44ht5h+6HMBzoFC +MAq2aBHQRFRNp9Mz1ZvoXXcI1lk1l8OqcUM/ovXbDfPcXsUVeTPTtGzcAi2jVl9h +l3iwJKkyv/RLmcusdsi8YunbvWGFAF5GaagYQo7YlF6UaBQnYJTM523AMgpPQtsK +m9o/w9WdgXkgWhgkhZEeqUS3m5xNey1nLu9iMvq9M/iXnGz4sg6Q2Y+GqZ+yAvNW +jRRou3zSE7Bzg28MI4sAAwYH/2D71Xc5HPDgu87WnBFgmp8MpSr8QnSs0wwPg3xE +ullGEocolSb2c0ctuSyeVnCttJMzkukL9TqyF4s/6XRstWirSWawJxRLKH6Zjo/F +aKsshYKf8gBkAaddvpl3pO0gmUYbqmpQ3xDEYlhCeieXS5MkockQ1sj2xYdB1xO0 +ExzfiCiscUKjUFy+mdzUsUutafuZ+gbHog1CN/ccZCkxcBa5IFCHORrNjq9pYWlr +xsEn6ApsG7JJbM2besW1PkdEoxak74z1senh36m5jQvVjA3U4xq1wwylxadmmJaJ +HzeiLfb7G1ZRjZTsB7fyYxqDzMVul6o9BSwO/1XsIAnV1uuITAQYEQIADAUCS+AZ +vQUJGXXzKwAKCRCoTtronIAKysYeAJ4yNHu8lpjQiBL69k3VNr9hbQMmzwCfcrIB +TnsG384Q1YOf9lIUSYEa9sk= +=yIuV +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..086f8f8a --- /dev/null +++ b/src/lib/distro-info/suse-11.3/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.15 (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/src/lib/distro-info/suse-11.3/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.3/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/distro-info/suse-11.3_x86_64/mirrors/base b/src/lib/distro-info/suse-11.3_x86_64/mirrors/base new file mode 100644 index 00000000..8d55eac4 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/mirrors/base_non-oss b/src/lib/distro-info/suse-11.3_x86_64/mirrors/base_non-oss new file mode 100644 index 00000000..bd887ed3 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/mirrors/base_update b/src/lib/distro-info/suse-11.3_x86_64/mirrors/base_update new file mode 100644 index 00000000..d0c666e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/group b/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/group new file mode 100644 index 00000000..505cb221 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/hosts b/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/passwd b/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/passwd new file mode 100644 index 00000000..9b8fc4fe --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/shadow b/src/lib/distro-info/suse-11.3_x86_64/prereqfiles/etc/shadow new file mode 100644 index 00000000..cd100a5a --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-0dfb3188-41ed929b.asc new file mode 100644 index 00000000..ac75d62a --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-307e3d54-481f30aa.asc new file mode 100644 index 00000000..57a9078a --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3d25d3d9-36e12d04.asc new file mode 100644 index 00000000..80380d2f --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-3dbdc284-49144c3f.asc new file mode 100644 index 00000000..aaec909b --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-56b4177a-47965b33.asc new file mode 100644 index 00000000..f0bb55a3 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-7e2e3b05-4816488f.asc new file mode 100644 index 00000000..74ff59e0 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-9c800aca-481f343a.asc new file mode 100644 index 00000000..daeef8a5 --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/gpg-pubkey-a1912208-446a0899.asc new file mode 100644 index 00000000..8467c19b --- /dev/null +++ b/src/lib/distro-info/suse-11.3_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/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/pubring.gpg b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/pubring.gpg new file mode 100644 index 00000000..5bd5a78e Binary files /dev/null and b/src/lib/distro-info/suse-11.3_x86_64/trusted-package-keys/pubring.gpg differ diff --git a/src/lib/distro-info/ubuntu-10.04/mirrors/base b/src/lib/distro-info/ubuntu-10.04/mirrors/base new file mode 100644 index 00000000..cddbef70 --- /dev/null +++ b/src/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/src/lib/distro-info/ubuntu-10.04/mirrors/base_security b/src/lib/distro-info/ubuntu-10.04/mirrors/base_security new file mode 100644 index 00000000..3617b3dd --- /dev/null +++ b/src/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/src/lib/distro-info/ubuntu-10.04/mirrors/base_updates b/src/lib/distro-info/ubuntu-10.04/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/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/src/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-10.04/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-10.04/settings.default b/src/lib/distro-info/ubuntu-10.04/settings.default new file mode 100644 index 00000000..acf37c4e --- /dev/null +++ b/src/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 + + components = main restricted + distribution = lucid + name = Ubuntu 10.04 + repo-subdir = dists + file-for-speedtest = dists/lucid/main/binary-i386/Packages.bz2 + + + 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 + + + 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 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-10.04/settings.example b/src/lib/distro-info/ubuntu-10.04/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-8.04/mirrors/base b/src/lib/distro-info/ubuntu-8.04/mirrors/base new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04/mirrors/base @@ -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/src/lib/distro-info/ubuntu-8.04/mirrors/base_security b/src/lib/distro-info/ubuntu-8.04/mirrors/base_security new file mode 100644 index 00000000..21789622 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04/mirrors/base_security @@ -0,0 +1,163 @@ +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.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 +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/src/lib/distro-info/ubuntu-8.04/mirrors/base_updates b/src/lib/distro-info/ubuntu-8.04/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.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/src/lib/distro-info/ubuntu-8.04/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-8.04/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-8.04/settings.default b/src/lib/distro-info/ubuntu-8.04/settings.default new file mode 100644 index 00000000..8c51dc89 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04/settings.default @@ -0,0 +1,76 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.10ubuntu1~hardy1_all.deb +release-name = hardy + + components = main restricted + distribution = hardy + name = Ubuntu 8.04 + repo-subdir = dists + file-for-speedtest = dists/hardy/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = hardy-security + name = Ubuntu 8.04 Security + repo-subdir = dists + file-for-speedtest = dists/hardy-security/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = hardy-updates + name = Ubuntu 8.04 Updates + repo-subdir = dists + file-for-speedtest = dists/hardy-updates/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-8.04/settings.example b/src/lib/distro-info/ubuntu-8.04/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base b/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base @@ -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/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_security b/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_security new file mode 100644 index 00000000..21789622 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_security @@ -0,0 +1,163 @@ +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.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 +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/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_updates b/src/lib/distro-info/ubuntu-8.04_amd64/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/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/src/lib/distro-info/ubuntu-8.04_amd64/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-8.04_amd64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-8.04_amd64/settings.default b/src/lib/distro-info/ubuntu-8.04_amd64/settings.default new file mode 100644 index 00000000..35efc3e8 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/settings.default @@ -0,0 +1,76 @@ +arch = amd64 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.10ubuntu1~hardy1_all.deb +release-name = hardy + + components = main restricted + distribution = hardy + name = Ubuntu 8.04 + repo-subdir = dists + file-for-speedtest = dists/hardy/main/binary-amd64/Packages.bz2 + + + components = main restricted + distribution = hardy-security + name = Ubuntu 8.04 Security + repo-subdir = dists + file-for-speedtest = dists/hardy-security/main/binary-amd64/Packages.bz2 + + + components = main restricted + distribution = hardy-updates + name = Ubuntu 8.04 Updates + repo-subdir = dists + file-for-speedtest = dists/hardy-updates/main/binary-amd64/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-8.04_amd64/settings.example b/src/lib/distro-info/ubuntu-8.04_amd64/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.04_amd64/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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-8.10/mirrors/base b/src/lib/distro-info/ubuntu-8.10/mirrors/base new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/mirrors/base @@ -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/src/lib/distro-info/ubuntu-8.10/mirrors/base_security b/src/lib/distro-info/ubuntu-8.10/mirrors/base_security new file mode 100644 index 00000000..21789622 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/mirrors/base_security @@ -0,0 +1,163 @@ +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.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 +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/src/lib/distro-info/ubuntu-8.10/mirrors/base_updates b/src/lib/distro-info/ubuntu-8.10/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/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/src/lib/distro-info/ubuntu-8.10/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-8.10/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-8.10/settings.default b/src/lib/distro-info/ubuntu-8.10/settings.default new file mode 100644 index 00000000..4945b343 --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/settings.default @@ -0,0 +1,76 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.10ubuntu1~intrepid1_all.deb +release-name = hardy + + components = main restricted + distribution = intrepid + name = Ubuntu 8.10 + repo-subdir = dists + file-for-speedtest = dists/intrepid/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = intrepid-security + name = Ubuntu 8.10 Security + repo-subdir = dists + file-for-speedtest = dists/intrepid-security/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = intrepid-updates + name = Ubuntu 8.10 Updates + repo-subdir = dists + file-for-speedtest = dists/intrepid-updates/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-8.10/settings.example b/src/lib/distro-info/ubuntu-8.10/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-8.10/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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-9.04/mirrors/base b/src/lib/distro-info/ubuntu-9.04/mirrors/base new file mode 100644 index 00000000..cddbef70 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.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/src/lib/distro-info/ubuntu-9.04/mirrors/base_security b/src/lib/distro-info/ubuntu-9.04/mirrors/base_security new file mode 100644 index 00000000..3617b3dd --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.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/src/lib/distro-info/ubuntu-9.04/mirrors/base_updates b/src/lib/distro-info/ubuntu-9.04/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.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/src/lib/distro-info/ubuntu-9.04/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-9.04/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-9.04/settings.default b/src/lib/distro-info/ubuntu-9.04/settings.default new file mode 100644 index 00000000..62abe07c --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04/settings.default @@ -0,0 +1,76 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.12_all.deb +release-name = jaunty + + components = main restricted + distribution = jaunty + name = Ubuntu 9.04 + repo-subdir = dists + file-for-speedtest = dists/jaunty/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = jaunty-security + name = Ubuntu 9.04 Security + repo-subdir = dists + file-for-speedtest = dists/jaunty-security/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = jaunty-updates + name = Ubuntu 9.04 Updates + repo-subdir = dists + file-for-speedtest = dists/jaunty-updates/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-9.04/settings.example b/src/lib/distro-info/ubuntu-9.04/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base b/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base @@ -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/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_security b/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_security new file mode 100644 index 00000000..21789622 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_security @@ -0,0 +1,163 @@ +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.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 +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/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_updates b/src/lib/distro-info/ubuntu-9.04_amd64/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/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/src/lib/distro-info/ubuntu-9.04_amd64/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-9.04_amd64/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-9.04_amd64/settings.default b/src/lib/distro-info/ubuntu-9.04_amd64/settings.default new file mode 100644 index 00000000..145a0c72 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/settings.default @@ -0,0 +1,76 @@ +arch = amd64 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.12_all.deb +release-name = jaunty + + components = main restricted + distribution = jaunty + name = Ubuntu 9.04 + repo-subdir = dists + file-for-speedtest = dists/jaunty/main/binary-amd64/Packages.bz2 + + + components = main restricted + distribution = jaunty-security + name = Ubuntu 9.04 Security + repo-subdir = dists + file-for-speedtest = dists/jaunty-security/main/binary-amd64/Packages.bz2 + + + components = main restricted + distribution = jaunty-updates + name = Ubuntu 9.04 Updates + repo-subdir = dists + file-for-speedtest = dists/jaunty-updates/main/binary-amd64/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-9.04_amd64/settings.example b/src/lib/distro-info/ubuntu-9.04_amd64/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.04_amd64/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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/lib/distro-info/ubuntu-9.10/mirrors/base b/src/lib/distro-info/ubuntu-9.10/mirrors/base new file mode 100644 index 00000000..cddbef70 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/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/src/lib/distro-info/ubuntu-9.10/mirrors/base_security b/src/lib/distro-info/ubuntu-9.10/mirrors/base_security new file mode 100644 index 00000000..3617b3dd --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/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/src/lib/distro-info/ubuntu-9.10/mirrors/base_updates b/src/lib/distro-info/ubuntu-9.10/mirrors/base_updates new file mode 100644 index 00000000..3b936ecf --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/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/src/lib/distro-info/ubuntu-9.10/prereqfiles/etc/hosts b/src/lib/distro-info/ubuntu-9.10/prereqfiles/etc/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/prereqfiles/etc/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/src/lib/distro-info/ubuntu-9.10/settings.default b/src/lib/distro-info/ubuntu-9.10/settings.default new file mode 100644 index 00000000..61e8ea63 --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/settings.default @@ -0,0 +1,76 @@ +arch = i386 +package-subdir = pool +prereq-packages = main/d/debootstrap/debootstrap_1.0.20_all.deb +release-name = karmic + + components = main restricted + distribution = karmic + name = Ubuntu 9.10 + repo-subdir = dists + file-for-speedtest = dists/karmic/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = karmic-security + name = Ubuntu 9.10 Security + repo-subdir = dists + file-for-speedtest = dists/karmic-security/main/binary-i386/Packages.bz2 + + + components = main restricted + distribution = karmic-updates + name = Ubuntu 9.10 Updates + repo-subdir = dists + file-for-speedtest = dists/karmic-updates/main/binary-i386/Packages.bz2 + + + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + packages = < + + base = minimal + diff --git a/src/lib/distro-info/ubuntu-9.10/settings.example b/src/lib/distro-info/ubuntu-9.10/settings.example new file mode 100644 index 00000000..31881c4c --- /dev/null +++ b/src/lib/distro-info/ubuntu-9.10/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 +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# +# +# local-url = /srv/ftp/pub/ubuntu +# + +# add a new selection: +# +# base = kde +# packages = < diff --git a/src/os-plugins/OpenSLX/OSPlugin/Base.pm b/src/os-plugins/OpenSLX/OSPlugin/Base.pm new file mode 100644 index 00000000..2af0f04c --- /dev/null +++ b/src/os-plugins/OpenSLX/OSPlugin/Base.pm @@ -0,0 +1,631 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# Base.pm +# - provides empty base of the OpenSLX OSPlugin API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +=head1 NAME + +OpenSLX::OSPlugin::Base - the base class for all OpenSLX OS-plugins. + +=head1 DESCRIPTION + +This class defines the OpenSLX API for OS-plugins. + +The general idea behind OS-plugins is to extend any installed vendor-OS with +a specific features. Each feature is implemented as a separate, small software +component in order to make them easy to understand and maintain. + +Since all of these software components are plugged into the OpenSLX system by +means of a common API, we call them Bs. + +This API can be separated into different parts: + +=over + +=item - L (provide info about a plugin) + +=item - L (installing or removing a plugin into/from a +vendor-OS) + +=item - L (integrating a plugin into an initramfs) + +=back + +=head1 MORE INFO + +Please read the user-level introduction on plugins in the OpenSLX-wiki: +L (in German). + +If you'd like to know how a plugin is implemented, please have a look at the +'example' plugin, which contains some explainations and useful hints. + +If you have any questions regarding the concept of OS-plugins and their +implementation, please drop a mail to: ot@openslx.com, or join the IRC-channel +'#openslx' (on freenode). + +=cut + +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::OSPlugin::Roster; + +=head1 PLUGIN API + +=head2 Declarative Interface + +=over + +=item new() + +Every plugin should provide a new-method and provide it's own name in the +'name' entry of $self. + +Please note that by convention, plugin names are all lowercase! + +=cut + +sub new +{ + confess "Creating OpenSLX::OSPlugin::Base-objects directly makes no sense!"; +} + +=item initialize() + +Initializes basic context for this plugin (esp. a reference to the OSPlugin +engine that drives this plugin. + +=cut + +sub initialize +{ + my $self = shift; + + $self->{'os-plugin-engine'} = shift; + $self->{'distro'} = shift; + + weaken($self->{'os-plugin-engine'}); + # avoid circular reference between plugin and its engine + + return; +} + +=item getInfo() + +Returns a hash-ref with administrative information about this plugin (what does +it do and how does it relate to other plugins). Every plugin needs to provide +this method and return the information about itself. + +The returned hash-ref must include at least the following entries: + +=over + +=item B + +Explains the purpose of this plugins. + +=item B + +Specifies the execution precedence of this plugin with respect to all other +plugins (plugins with lower precedences will be started before the ones with +a higher precedence). + +Valid values range from 0-99. If your plugin does not have any requirements +in this context, just specify the default value '50'. + +=item B + +Specifies the list of plugins that are required by this plugin. + +Before any plugin can be installed, all other plugins that are required by it +must have been installed. + +=back + +=cut + +sub getInfo +{ + my $self = shift; + + return { + # a short (one-liner) description of this plugin + description => '', + }; +} + +=item getAttrInfo() + +Returns a hash-ref with information about all attributes supported by this +specific plugin. + +This default configuration will be added as attributes to the default system, +such that it can be overruled for any specific system by means of B. + +The returned hash-ref must include at least the following entries: + +=over + +=item B::active> + +Indicates whether or not this plugin is active (1 for active, 0 for inactive). + +=back + +=cut + +sub getAttrInfo +{ + my $self = shift; + + # This default configuration will be added as attributes to the default + # system, such that it can be overruled for any specific system by means + # of slxconfig. + return { + # attribute 'active' is mandatory for all plugins + }; +} + +=item getDefaultAttrsForVendorOS() + +Returns a hash-ref with the default attribute values for the given vendor-OS. + +=cut + +sub getDefaultAttrsForVendorOS +{ + my $self = shift; + + # the default implementation does not change the default values at all: + return $self->getAttrInfo(); +} + +=item checkStage3AttrValues() + +Checks if the stage3 values given in B<$stage3Attrs> are allowed and make sense. + +This method returns an array-ref of problems found. If there were no problems, +this methods returns undef. + +Plugins may override this implementation to do checks that for instance look +at the stage1 vendor-OS-attributes given in B<$vendorOSAttrs>. + +N.B.: this method is called while being chrooted into the vendor-OS, so it + may invoke all distro methods that expect to be run in this environment, + too + +=cut + +sub checkStage3AttrValues +{ + my $self = shift; + my $stage3Attrs = shift; + my $vendorOSAttrs = shift; + + # this default implementation does no further checks (thus relying on the + # attributte regex check that is done in the AttributeRoster) + return; +} + +=item dependsOnPlugin() + +=cut + +sub dependsOnPlugin +{ + my $self = shift; + my $otherName = shift; + + if (!defined $self->{dependsOn}) { + my @dependsOn = $self->_determineAllPluginsWeDependOn(); + $self->{dependsOn} = \@dependsOn; + } + + return grep { $_ eq $otherName } @{$self->{dependsOn}}; +} + +=back + +=head2 Vendor-OS Interface + +=over + +=item installationPhase() + +In this method, the plugin should install itself into the given vendor-OS. + +What "installation" means is up to the plugin. Some plugins may just copy +a file from the OpenSLX host installation into the vendor-OS, while others may +need to download files from the internet and/or install packages through the +vendor-OS' meta packager. + +N.B.: This method is invoked while chrooted into the vendor-OS root. + +The hash-ref given in B<$info> contains vital information for the installation +process: + +=over + +=item C + +The folder where the stage1-plugin should store all files required by the +corresponding stage3 runlevel script. + +=item C + +A temporary playground that will be cleaned up automatically. + +=item C + +In order to make the OpenSLX files from the host available, the OpenSLX base +folder (normally /opt/openslx) will be mounted into the chroot. +So if you have to copy any files from the host, fetch them from this path. + +=item C + +In order to make the OpenSLX config files from the host available, the OpenSLX +config folder (normally /etc/opt/openslx) will be mounted into the chroot. +So if you have to copy any config files from the host, fetch them from this +path. + +=item C + +Contains the attributes in effect for the installation of this plugin. + +=back + +=cut + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +=item removalPhase() + +In this method, the plugin should remove itself from the given vendor-OS. + +What "removal" means is up to the plugin. Some plugins may just delete +a file from the vendor-OS, while others may need to uninstall packages through +the vendor-OS' meta packager. + +N.B.: This method is invoked while chrooted into the vendor-OS root. + +The hash-ref given in B<$info> contains vital information for the installation +process: + +=over + +=item C + +The folder where the stage1-plugin should store all files required by the +corresponding stage3 runlevel script. + +=item C + +A temporary playground that will be cleaned up automatically. + +=item C + +In order to make the OpenSLX files from the host available, the OpenSLX base +folder (normally /opt/openslx) will be mounted into the chroot. +So if you have to copy any files from the host, fetch them from this path. + +=item C + +In order to make the OpenSLX config files from the host available, the OpenSLX +config folder (normally /etc/opt/openslx) will be mounted into the chroot. +So if you have to copy any config files from the host, fetch them from this +path. + +=item C + +Contains the attributes in effect for the installation of this plugin. + +=back + +=cut + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +=item preInstallationPhase() + +In this method, any preparations for installation of the plugin into a vendor-OS +should be executed. As this method is being called immediately before the chroot +is entered, this is the last/only chance to copy any files into the chroot that +are required from within (in installationPhase()). + +The given parameters are similar to the ones for installationPhase(), except +that all paths are now relative to the root-fs instead of being relative to the +chroot (i.e. the paths are ready to be used from outside the chroot): + +A "exit 1;" will result in a not installed plugin. + +=over + +=item C + +The folder where the stage1-plugin should store all files required by the +corresponding stage3 runlevel script. + +=item C + +A temporary playground that will be cleaned up automatically. + +If a plugin needs to unpack any archives, these archives should be copied to +this folder (as it will be cleaned automatically). + +=item C + +In order to make the OpenSLX files from the host available, the OpenSLX base +folder (normally /opt/openslx) will be mounted into the chroot. +So if you have to copy any files from the host, fetch them from this path. + +=item C + +In order to make the OpenSLX config files from the host available, the OpenSLX +config folder (normally /etc/opt/openslx) will be mounted into the chroot. +So if you have to copy any config files from the host, fetch them from this +path. + +=item C + +Contains the attributes in effect for the installation of this plugin. + +=item C + +Contains the path to the vendor-OS into which the plugin will be installed. + +=back + +=cut + +sub preInstallationPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +=item postRemovalPhase() + +In this method, any plugin has the chance to do any necessary cleanup that +must be executed outside of the chroot. + +This method is invoked immediately after leaving the chroot into the vendor-OS +root, but before the plugin-temp-path has been cleaned up. So if required, any +files could be copied out of the temp-path somewhere into the root-fs. + +The given parameters are similar to the ones for removalPhase(), except that all +paths are now relative to the root-fs instead of being relative to the chroot +(i.e. the paths are ready to be used from outside the chroot): + +=over + +=item C + +The folder where the stage1-plugin should store all files required by the +corresponding stage3 runlevel script. + +=item C + +A temporary playground that will be cleaned up automatically. + +=item C + +In order to make the OpenSLX files from the host available, the OpenSLX base +folder (normally /opt/openslx) will be mounted into the chroot. +So if you have to copy any files from the host, fetch them from this path. + +=item C + +In order to make the OpenSLX config files from the host available, the OpenSLX +config folder (normally /etc/opt/openslx) will be mounted into the chroot. +So if you have to copy any config files from the host, fetch them from this +path. + +=item C + +Contains the attributes in effect for the installation of this plugin. + +=item C + +Contains the path to the vendor-OS from which the plugin has been removed. + +=back + +=cut + +sub postRemovalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +=back + +=head2 Initramfs Interface + +All of the following methods are invoked by the config demuxer when it makes an +initramfs for a system that has this plugin activated. Through these methods, +each plugin can integrate itself into that initramfs. + +=over + +=item suggestAdditionalKernelParams() + +Called in order to give the plugin a chance to add any kernel params it +requires. + +In order to do so, the plugin should return a list of additional kernel params +that it would like to see added. + +=cut + +sub suggestAdditionalKernelParams +{ + my $self = shift; + my $makeInitRamFSEngine = shift; + + return; +} + +=item suggestAdditionalKernelModules() + +Called in order to give the plugin a chance to add any kernel modules it +requires. + +In order to do so, the plugin should return the names of additional kernel +modules that it would like to see added. + +=cut + +sub suggestAdditionalKernelModules +{ + my $self = shift; + my $makeInitRamFSEngine = shift; + my $attrs = shift; + + return; +} + +=item copyRequiredFilesIntoInitramfs() + +Called in order to give the plugin a chance to copy all required files from the +vendor-OS into the initramfs. + +N.B.: Only files that are indeed required by the initramfs should be copied +here, i.e. files that are needed *before* the root-fs has been mounted. +All other files should be taken from the root-fs instead! + +=cut + +sub copyRequiredFilesIntoInitramfs +{ + my $self = shift; + my $targetPath = shift; + my $attrs = shift; + my $makeInitRamFSEngine = shift; + + return; +} + +=item setupPluginInInitramfs() + +Called in order to let the plugin setup all the files it requires in the +initramfs. + +Normally, you don't need to override this method in your own plugin, +as it is usually enough to override suggestAdditionalKernelParams(), +suggestAdditionalKernelModules() and maybe copyRequiredFilesIntoInitramfs(). + +=cut + +sub setupPluginInInitramfs +{ + my $self = shift; + my $attrs = shift; + my $makeInitRamFSEngine = shift; + + my $pluginName = $self->{name}; + my $pluginSrcPath = "$openslxConfig{'base-path'}/lib/plugins"; + my $buildPath = $makeInitRamFSEngine->{'build-path'}; + my $pluginInitdPath = "$buildPath/etc/plugin-init.d"; + my $initHooksPath = "$buildPath/etc/init-hooks"; + + # copy runlevel script + my $precedence = sprintf('%02d', $self->getInfo()->{precedence}); + my $scriptName = "$pluginSrcPath/$pluginName/XX_${pluginName}.sh"; + my $targetName = "$pluginInitdPath/${precedence}_${pluginName}.sh"; + if (-e $scriptName) { + $makeInitRamFSEngine->addCMD("cp $scriptName $targetName"); + $makeInitRamFSEngine->addCMD("chmod a+x $targetName"); + } + + # copy init hook scripts, if any + if (-d "$pluginSrcPath/$pluginName/init-hooks") { + my $hookSrcPath = "$pluginSrcPath/$pluginName/init-hooks"; + $makeInitRamFSEngine->addCMD( + "cp -r $hookSrcPath/* $buildPath/etc/init-hooks/" + ); + } + + # invoke hook methods to suggest additional kernel params ... + my @suggestedParams + = $self->suggestAdditionalKernelParams($makeInitRamFSEngine); + if (@suggestedParams) { + my $params = join ' ', @suggestedParams; + vlog(1, "plugin $pluginName suggests these kernel params: $params"); + $makeInitRamFSEngine->addKernelParams(@suggestedParams); + } + + # ... and kernel modules + my @suggestedModules + = $self->suggestAdditionalKernelModules($makeInitRamFSEngine, $attrs); + if (@suggestedModules) { + my $modules = join(',', @suggestedModules); + vlog(1, "plugin $pluginName suggests these kernel modules: $modules"); + $makeInitRamFSEngine->addKernelModules(@suggestedModules); + } + + # invoke hook method to copy any further files that are required in stage3 + # before the root-fs has been mounted + $self->copyRequiredFilesIntoInitramfs( + $buildPath, $attrs, $makeInitRamFSEngine + ); + + return 1; +} + +sub _determineAllPluginsWeDependOn +{ + my $self = shift; + my $seen = shift || {}; + + return if $seen->{$self->{name}}; + $seen->{$self->{name}} = 1; + + my %dependsOn; + if ($self->getInfo()->{required}) { + @dependsOn{@{$self->getInfo()->{required}}} = (); + } + + foreach my $depName (keys %dependsOn) { + my $depPlugin = OpenSLX::OSPlugin::Roster->getPlugin($depName); + my @subDeps = $depPlugin->_determineAllPluginsWeDependOn($seen); + @dependsOn{@subDeps} = (); + } + + return keys %dependsOn; +} + +=back + +1; diff --git a/src/os-plugins/OpenSLX/OSPlugin/Engine.pm b/src/os-plugins/OpenSLX/OSPlugin/Engine.pm new file mode 100644 index 00000000..25827205 --- /dev/null +++ b/src/os-plugins/OpenSLX/OSPlugin/Engine.pm @@ -0,0 +1,857 @@ +# Copyright (c) 2007, 2008 - 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/ +# ----------------------------------------------------------------------------- +# Engine.pm +# - provides driver engine for the OSPlugin API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::Engine; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use Config; +use File::Basename; +use File::Path; +use Storable; + +use OpenSLX::Basics; +use OpenSLX::OSPlugin::Roster; +use OpenSLX::OSSetup::Engine; +use OpenSLX::ScopedResource; +use OpenSLX::Utils; + +=head1 NAME + +OpenSLX::OSPlugin::Engine - driver class for plugin handling. + +=head1 DESCRIPTION + +This class works as a driver for the installation/removal of plugins +into/from a vendor. + +Additionally, it provides the OS-Plugin support interface. + +=head1 PUBLIC METHODS + +=over + +=item new() + +Trivial constructor + +=cut + +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +=item initialize($pluginName, $vendorOSName ) + +Sets up basic data (I<$pluginName> and I<$vendorOSName>) as well as paths and +loads plugin. + +=cut + +sub initialize +{ + my $self = shift; + my $pluginName = shift; + my $vendorOSName = shift; + my $givenAttrs = shift || {}; + + $self->{'vendor-os-name'} = $vendorOSName; + + $self->{'vendor-os-path'} + = "$openslxConfig{'private-path'}/stage1/$vendorOSName"; + vlog(2, "vendor-OS path is '$self->{'vendor-os-path'}'"); + + if ($pluginName) { + $self->{'plugin-name'} = $pluginName; + $self->{'plugin-path'} + = "$openslxConfig{'base-path'}/lib/plugins/$pluginName"; + vlog(1, "plugin path is '$self->{'plugin-path'}'"); + + $self->{'plugin'} = $self->_loadPlugin(); + return if !$self->{'plugin'}; + + $self->{'chrooted-plugin-repo-path'} + = "$openslxConfig{'base-path'}/plugin-repo/$self->{'plugin-name'}"; + $self->{'plugin-repo-path'} + = "$self->{'vendor-os-path'}/$self->{'chrooted-plugin-repo-path'}"; + $self->{'chrooted-plugin-temp-path'} + = "/tmp/slx-plugin/$self->{'plugin-name'}"; + $self->{'plugin-temp-path'} + = "$self->{'vendor-os-path'}/$self->{'chrooted-plugin-temp-path'}"; + $self->{'chrooted-openslx-base-path'} = '/mnt/opt/openslx'; + $self->{'chrooted-openslx-config-path'} = '/mnt/etc/opt/openslx'; + + # merge attributes that were given on cmdline with the ones that + # already exist in the DB and finally with the default values + $self->{'plugin-attrs'} = { %$givenAttrs }; + my $defaultAttrs = $self->{plugin}->getDefaultAttrsForVendorOS( + $vendorOSName + ); + my $dbAttrs = $self->_fetchInstalledPluginAttrs($vendorOSName); + for my $attrName (keys %$defaultAttrs) { + next if exists $givenAttrs->{$attrName}; + $self->{'plugin-attrs'}->{$attrName} + = exists $dbAttrs->{$attrName} + ? $dbAttrs->{$attrName} + : $defaultAttrs->{$attrName}->{default}; + } + $self->{'vendorOS-attrs'} = $dbAttrs; + } + + return 1; +} + +=back + +=head2 Driver Interface + +The following methods are invoked by the slxos-plugin script in order to +install/remove a plugin into/from a vendor-OS: + +=over + +=item installPlugin() + +Invokes the plugin's installer method while chrooted into that vendor-OS. + +=cut + +sub installPlugin +{ + my $self = shift; + + $self->_checkIfRequiredPluginsAreInstalled(); + + # look for unknown attributes + my $attrs = $self->{'plugin-attrs'}; + my $attrInfos = $self->{plugin}->getAttrInfo(); + my @unknownAttrs = grep { !exists $attrInfos->{$_} } keys %$attrs; + if (@unknownAttrs) { + die _tr( + "The plugin '%s' does not support these attributes:\n\t%s", + $self->{'plugin-name'}, join(',', @unknownAttrs) + ); + } + + # check all attr-values against the regex of the attribute (if any) + my @attrProblems; + foreach my $attr (keys %$attrs) { + my $value = $attrs->{$attr}; + next if !defined $value; + my $attrInfo = $attrInfos->{$attr}; + my $regex = $attrInfo->{content_regex}; + if ($regex && $value !~ $regex) { + push @attrProblems, _tr( + "the value '%s' for attribute %s is not allowed.\nAllowed values are: %s", + $value, $attr, $attrInfo->{content_descr} + ); + } + } + + if (@attrProblems) { + my $complaint = join "\n", @attrProblems; + die $complaint; + } + + if ($self->{'vendor-os-name'} ne '<<>>') { + + # as the attrs may be changed by the plugin during installation, we + # have to find a way to pass them back to this process (remember: + # installation takes place in a forked process in order to do a chroot). + # We simply serialize the attributes into a temp file and deserialize + # it in the calling process. + my $serializedAttrsFile + = "$self->{'plugin-temp-path'}/serialized-attrs"; + my $chrootedSerializedAttrsFile + = "$self->{'chrooted-plugin-temp-path'}/serialized-attrs"; + + rmtree([ $self->{'plugin-repo-path'}, $self->{'plugin-temp-path'} ]); + mkpath([ $self->{'plugin-repo-path'}, $self->{'plugin-temp-path'} ]); + + # invoke plugin and let it prepare the installation + $self->{plugin}->preInstallationPhase( { + 'plugin-repo-path' => $self->{'plugin-repo-path'}, + 'plugin-temp-path' => $self->{'plugin-temp-path'}, + 'openslx-base-path' => $openslxConfig{'base-path'}, + 'openslx-config-path' => $openslxConfig{'config-path'}, + 'plugin-attrs' => $self->{'plugin-attrs'}, + 'vendor-os-path' => $self->{'vendor-os-path'}, + } ); + + # HACK: do a dummy serialization here in order to get Storable + # completely loaded (otherwise it will complain in the chroot about + # missing modules). + store $self->{'plugin-attrs'}, $serializedAttrsFile; + + $self->_callChrootedFunctionForPlugin( + sub { + # invoke plugin and let it install itself into vendor-OS + $self->{plugin}->installationPhase( { + 'plugin-repo-path' + => $self->{'chrooted-plugin-repo-path'}, + 'plugin-temp-path' + => $self->{'chrooted-plugin-temp-path'}, + 'openslx-base-path' + => $self->{'chrooted-openslx-base-path'}, + 'openslx-config-path' + => $self->{'chrooted-openslx-config-path'}, + 'plugin-attrs' + => $self->{'plugin-attrs'}, + } ); + + # serialize possibly changed attributes (executed inside chroot) + store $self->{'plugin-attrs'}, $chrootedSerializedAttrsFile; + } + ); + + # now retrieve (deserialize) the current attributes and store them + $self->{'plugin-attrs'} = retrieve $serializedAttrsFile; + + # cleanup temp path + rmtree([ $self->{'plugin-temp-path'} ]); + + # now update the vendorOS-attrs and let the plugin itself check the + # stage3 attrs + $self->{'vendorOS-attrs'} = $self->{'plugin-attrs'}; + $self->checkStage3AttrValues( + $self->{'plugin-attrs'}, \@attrProblems + ); + if (@attrProblems) { + my $complaint = join "\n", @attrProblems; + die $complaint; + } + } + + $self->_addInstalledPluginToDB(); + + return 1; +} + +=item removePlugin() + +Invokes the plugin's removal method while chrooted into that vendor-OS. + +=cut + +sub removePlugin +{ + my $self = shift; + + $self->_checkIfPluginIsRequiredByOthers(); + + if ($self->{'vendor-os-name'} ne '<<>>') { + + mkpath([ $self->{'plugin-repo-path'}, $self->{'plugin-temp-path'} ]); + + $self->_callChrootedFunctionForPlugin( + sub { + $self->{plugin}->removalPhase( { + 'plugin-repo-path' + => $self->{'chrooted-plugin-repo-path'}, + 'plugin-temp-path' + => $self->{'chrooted-plugin-temp-path'}, + 'openslx-base-path' + => $self->{'chrooted-openslx-base-path'}, + 'openslx-config-path' + => $self->{'chrooted-openslx-config-path'}, + 'plugin-attrs' + => $self->{'plugin-attrs'}, + } ); + } + ); + + # invoke plugin and let it prepare the installation + $self->{plugin}->postRemovalPhase( { + 'plugin-repo-path' => $self->{'plugin-repo-path'}, + 'plugin-temp-path' => $self->{'plugin-temp-path'}, + 'openslx-base-path' => $openslxConfig{'base-path'}, + 'openslx-config-path' => $openslxConfig{'config-path'}, + 'plugin-attrs' => $self->{'plugin-attrs'}, + 'vendor-os-path' => $self->{'vendor-os-path'}, + } ); + + rmtree([ $self->{'plugin-repo-path'}, $self->{'plugin-temp-path'} ]); + } + + $self->_removeInstalledPluginFromDB(); + + return 1; +} + +=item getInstalledPlugins() + +Returns the list of names of the plugins that are installed into the current +vendor-OS. + +=cut + +sub getInstalledPlugins +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + my @installedPlugins = $openslxDB->fetchInstalledPlugins($vendorOSID); + $openslxDB->disconnect(); + + return @installedPlugins; +} + +=back + +=head2 Support Interface + +This is the plugin support interface for OS-plugins, which represents the +connection between a plugin's implementation and the rest of the OpenSLX system. + +Plugin implementations are meant to use this interface in order to find +out details about the current vendor-OS or download files or install packages. + +=over + +=item vendorOSName() + +Returns the name of the current vendor-OS. + +=cut + +sub vendorOSName +{ + my $self = shift; + + return $self->{'vendor-os-name'}; +} + +=item distroName() + +Returns the name of the distro that the current vendor-OS is based on. + +Each distro name always consists of the distro type, a dash and the +distro version, like 'suse-10.2' or 'ubuntu-7.04'. + +=cut + +sub distroName +{ + my $self = shift; + + return $self->_osSetupEngine()->distroName(); +} + +=item downloadFile($fileURL, $targetPath, $wgetOptions) + +Invokes busybox's wget to download a file from the given URL. + +=over + +=item I<$fileURL> + +The URL of the file to download. + +=item I<$targetPath> [optional] + +The directory where the file should be downloaded into. The default is the +current plugin's temp directory. + +=item I<$wgetOptions> [optional] + +Any other options you'd like to pass to wget. + +=item I + +If the downloaded was successful this method returns C<1>, otherwise it dies. + +=back + +=cut + +sub downloadFile +{ + my $self = shift; + my $fileURL = shift || return; + my $targetPath = shift || $self->{'chrooted-plugin-temp-path'}; + my $wgetOptions = shift || ''; + + my $busybox = $self->_osSetupEngine()->busyboxBinary(); + + if (slxsystem("$busybox wget -P $targetPath $wgetOptions $fileURL")) { + die _tr('unable to download file "%s"! (%s)', $fileURL, $!); + } + + return 1; +} + +=item getInstalledPackages() + +Returns the list of names of the packages (as an array) that are already +installed in the vendor-OS. +Useful if a plugin wants to find out whether or not it has to +install additional packages. + +=cut + +sub getInstalledPackages +{ + my $self = shift; + + my $packager = $self->_osSetupEngine()->packager(); + return if !$packager; + + return $packager->getInstalledPackages(); +} + +=item getInstallablePackagesForSelection() + +Looks at the selection with the given name and returns the list of names of the +packages (as one string separated by spaces) that need to be installed in order +to complete the selection. + +=cut + +sub getInstallablePackagesForSelection +{ + my $self = shift; + my $selection = shift; + + return $self->_osSetupEngine()->getInstallablePackagesForSelection( + $selection + ); +} + +=item installPackages($packages) + +Installs the given packages into the vendor-OS. + +N.B: Since this method uses the meta-packager of the vendor-OS, package +dependencies will be determined and solved automatically. + +=over + +=item I<$packages> + +Contains a list of package names (separated by spaces) that shall be installed. + +=item I + +If the packages have been installed successfully this method return 1, +otherwise it dies. + +=back + +=cut + +sub installPackages +{ + my $self = shift; + my $packages = shift; + + return if !$packages; + + my $metaPackager = $self->_osSetupEngine()->metaPackager(); + return if !$metaPackager; + + return $metaPackager->installPackages($packages, 1); +} + +=item removePackages($packages) + +Removes the given packages from the vendor-OS. + +=over + +=item I<$packages> [ARRAY-ref] + +Contains a list of package names (separated by spaces) that shall be removed. + +=item I + +If the packages have been removed successfully this method return 1, +otherwise it dies. + +=back + +=cut + +sub removePackages +{ + my $self = shift; + my $packages = shift; + + return if !$packages; + + my $metaPackager = $self->_osSetupEngine()->metaPackager(); + return if !$metaPackager; + + return $metaPackager->removePackages($packages); +} + +=back + +=head2 Driver Interface + +The following methods are invoked by the slxos-plugin script in order to +install/remove a plugin into/from a vendor-OS: + +=over + +=item checkStage3AttrValues() + +Checks if the stage3 values given in B<$stage3Attrs> are allowed and make sense. + +This method gets also invoked whenever changes by slxconfig were made (passing +in only the stage3 attributes the user tried to change) and by the config +demuxer (passing in all stage3 attributes for the system currently being +demuxed). + +If all values are ok, this method returns 1 - if not, it extends the given +problems array-ref with the problems that were found (and returns undef). + +This method chroots into the vendor-OS and then asks the plugin itself to check +the attributes. + +=cut + +sub checkStage3AttrValues +{ + my $self = shift; + my $stage3Attrs = shift; + my $problemsOut = shift; + + # we have to pass any problems back to this process (remember: + # installation takes place in a forked process in order to do a chroot). + # We simply serialize the problems into a temp file and deserialize + # it in the calling process. + my $serializedProblemsFile + = "$self->{'plugin-temp-path'}/serialized-problems"; + my $chrootedSerializedProblemsFile + = "$self->{'chrooted-plugin-temp-path'}/serialized-problems"; + + mkpath([ $self->{'plugin-repo-path'}, $self->{'plugin-temp-path'} ]); + + # HACK: do a dummy serialization here in order to get Storable + # completely loaded (otherwise it will complain in the chroot about + # missing modules). + store [], $serializedProblemsFile; + + $self->_callChrootedFunctionForPlugin( + sub { + # let plugin check by itself + my $problems = $self->{plugin}->checkStage3AttrValues( + $stage3Attrs, $self->{'vendorOS-attrs'} + ); + + # serialize list of problems (executed inside chroot) + store($problems, $chrootedSerializedProblemsFile) if $problems; + } + ); + + # now retrieve (deserialize) the found problems and pass them on + my $problems = retrieve $serializedProblemsFile; + rmtree([ $self->{'plugin-temp-path'} ]); + if ($problems && ref($problems) eq 'ARRAY' && @$problems) { + push @$problemsOut, @$problems; + return; + } + + return 1; +} + +=back + +=cut + +sub _loadPlugin +{ + my $self = shift; + + my $pluginModule = "OpenSLX::OSPlugin::$self->{'plugin-name'}"; + my $plugin = instantiateClass( + $pluginModule, { + acceptMissing => 1, + pathToClass => $self->{'plugin-path'}, + } + ); + return if !$plugin; + + # if there's a distro folder, instantiate the most appropriate distro class + my $distro; + if ($self->{'vendor-os-name'} ne '<<>>' + && -d "$self->{'plugin-path'}/OpenSLX/Distro") { + my $pluginBasePath = "$openslxConfig{'base-path'}/lib/plugins"; + my $distroScope = $plugin->{name} . '::OpenSLX::Distro'; + $distro = loadDistroModule({ + distroName => $self->distroName(), + distroScope => $distroScope, + pathToClass => $pluginBasePath, + }); + if (!$distro) { + die _tr( + 'unable to load any distro module for vendor-OS %s in plugin %s', + $self->{'vendor-os-name'}, $plugin->{name} + ); + } + $distro->initialize($self); + } + + $plugin->initialize($self, $distro); + + return $plugin; +} + +sub _callChrootedFunctionForPlugin +{ + my $self = shift; + my $function = shift; + + # create os-setup engine here in order to block access to the vendor-OS + # via other processes (which could cause problems) + my $osSetupEngine = $self->_osSetupEngine(); + + my @bindmounts; + my @chrootPerlIncludes; + + # setup list of perl modules we want to bind into chroot + push @chrootPerlIncludes, "/mnt/opt/openslx/lib"; + + push @bindmounts, { + 'source' => $Config{privlibexp}, + 'target' => "$self->{'vendor-os-path'}/mnt/perl/privlibexp" + }; + push @chrootPerlIncludes, "/mnt/perl/privlibexp"; + push @bindmounts, { + 'source' => $Config{archlibexp}, + 'target' => "$self->{'vendor-os-path'}/mnt/perl/archlibexp" + }; + push @chrootPerlIncludes, "/mnt/perl/archlibexp"; + push @bindmounts, { + 'source' => $Config{vendorlibexp}, + 'target' => "$self->{'vendor-os-path'}/mnt/perl/vendorlibexp" + }; + push @chrootPerlIncludes, "/mnt/perl/vendorlibexp"; + push @bindmounts, { + 'source' => $Config{vendorarchexp}, + 'target' => "$self->{'vendor-os-path'}/mnt/perl/vendorarchexp" + }; + push @chrootPerlIncludes, "/mnt/perl/vendorarchexp"; + + # prepare openslx bind mounts + push @bindmounts, { + 'source' => $openslxConfig{'base-path'}, + 'target' => "$self->{'vendor-os-path'}/mnt/opt/openslx" + }; + push @bindmounts, { + 'source' => $openslxConfig{'config-path'}, + 'target' => "$self->{'vendor-os-path'}/mnt/etc/opt/openslx" + }; + + # create mountpoints + foreach (@bindmounts) { + mkpath($_->{'target'}); + } + + my $pluginSession = OpenSLX::ScopedResource->new({ + name => 'osplugin::session', + acquire => sub { + # bind mount perl includes, openslx base and config paths into vendor-OS + foreach (@bindmounts) { + slxsystem("mount -o bind $_->{'source'} $_->{'target'}") == 0 + or die _tr( + "unable to bind mount '%s' to '%s'! (%s)", + $_->{'source'}, $_->{'target'}, $! + ); + } + + # add mounted perl includes to @INC + foreach (@chrootPerlIncludes) { + unshift @INC, $_; + } + 1 + }, + release => sub { + # cleanup @INC again + while (my $perlinc = pop(@chrootPerlIncludes)) { + if ($INC[0] eq $perlinc) { + shift @INC; + } + } + + # unmount bindmounts + foreach (@bindmounts) { + slxsystem("umount $_->{'target'}") == 0 + or die _tr( + "unable to umount '%s'! (%s)", + $_->{'target'}, $! + ); + } + 1 + }, + }); + + # now let plugin install itself into vendor-OS + $osSetupEngine->callChrootedFunctionForVendorOS($function); + + return; +} + +sub _addInstalledPluginToDB +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + $openslxDB->addInstalledPlugin( + $vendorOSID, $self->{'plugin-name'}, $self->{'plugin-attrs'} + ); + $openslxDB->disconnect(); + + return 1; +} + +sub _checkIfRequiredPluginsAreInstalled +{ + my $self = shift; + + my $requiredPlugins = $self->{plugin}->getInfo()->{required} || []; + return 1 if !@$requiredPlugins; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + my @installedPlugins = $openslxDB->fetchInstalledPlugins($vendorOSID); + $openslxDB->disconnect(); + + my @missingPlugins + = grep { + my $required = $_; + ! grep { $_->{plugin_name} eq $required } @installedPlugins; + } + @$requiredPlugins; + + if (@missingPlugins) { + die _tr( + 'the plugin "%s" requires the following plugins to be installed first: "%s"!', + $self->{'plugin-name'}, join(',', @missingPlugins) + ); + } + + return 1; +} + +sub _checkIfPluginIsRequiredByOthers +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + my @installedPlugins = $openslxDB->fetchInstalledPlugins($vendorOSID); + $openslxDB->disconnect(); + + my @lockingPlugins + = grep { + my $installed + = OpenSLX::OSPlugin::Roster->getPlugin($_->{plugin_name}); + my $requiredByInstalled + = $installed + ? ($installed->getInfo()->{required} || []) + : []; + grep { $_ eq $self->{'plugin-name'} } @$requiredByInstalled; + } + @installedPlugins; + + if (@lockingPlugins) { + die _tr( + 'the plugin "%s" is required by the following plugins: "%s"!', + $self->{'plugin-name'}, + join(',', map { $_->{plugin_name} } @lockingPlugins) + ); + } + + return 1; +} + +sub _fetchInstalledPluginAttrs +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + my $installedPlugin = $openslxDB->fetchInstalledPlugins( + $vendorOSID, $self->{'plugin-name'} + ); + $openslxDB->disconnect(); + + return {} if !$installedPlugin; + return $installedPlugin->{attrs}; +} + +sub _removeInstalledPluginFromDB +{ + my $self = shift; + + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); + $openslxDB->connect(); + my $vendorOSID = $self->_fetchVendorOSID($openslxDB); + $openslxDB->removeInstalledPlugin($vendorOSID, $self->{'plugin-name'}); + $openslxDB->disconnect(); + + return 1; +} + +sub _fetchVendorOSID +{ + my $self = shift; + my $openslxDB = shift; + + if ($self->{'vendor-os-name'} eq '<<>>') { + return 0; + } + + my $vendorOS = $openslxDB->fetchVendorOSByFilter( { + name => $self->{'vendor-os-name'}, + } ); + if (!$vendorOS) { + die _tr( + 'unable to find vendor-OS "%s" in DB!', $self->{'vendor-os-name'} + ); + } + + return $vendorOS->{id}; +} + +sub _osSetupEngine +{ + my $self = shift; + + if (!$self->{'ossetup-engine'}) { + # create ossetup-engine for given vendor-OS: + my $osSetupEngine = OpenSLX::OSSetup::Engine->new; + $osSetupEngine->initialize($self->{'vendor-os-name'}, 'plugin'); + $self->{'ossetup-engine'} = $osSetupEngine; + } + + return $self->{'ossetup-engine'}; +} + +1; diff --git a/src/os-plugins/OpenSLX/OSPlugin/Roster.pm b/src/os-plugins/OpenSLX/OSPlugin/Roster.pm new file mode 100644 index 00000000..7bfed044 --- /dev/null +++ b/src/os-plugins/OpenSLX/OSPlugin/Roster.pm @@ -0,0 +1,213 @@ +# Copyright (c) 2006, 2007 - 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/ +# ----------------------------------------------------------------------------- +# OSPlugin::Roster.pm +# - provides information about all available plugins +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::Roster; + +use strict; +use warnings; + +use OpenSLX::Basics; +use Clone qw(clone); + +my %plugins; + +=item C + +Returns a hash that keys the names of available plugins to their info hash. + +=cut + +sub getAvailablePlugins +{ + my $class = shift; + + $class->_init() if !%plugins; + + my %pluginInfo; + foreach my $pluginName (keys %plugins) { + $pluginInfo{$pluginName} = $plugins{$pluginName}->getInfo(); + } + return \%pluginInfo; +} + +=item C + +Returns an instance of the plugin with the given name + +=cut + +sub getPlugin +{ + my $class = shift; + my $pluginName = shift; + + $class->_init() if !%plugins; + + my $plugin = $plugins{$pluginName}; + return if !$plugin; + + return clone($plugin); +} + +=item C + +Returns a hash that contains info about the attributes support by the +given plugin + +=cut + +sub getPluginAttrInfo +{ + my $class = shift; + my $pluginName = shift; + + $class->_init() if !%plugins; + + return if !$plugins{$pluginName}; + + return $plugins{$pluginName}->getAttrInfo(); +} + +=item C + +Fetches attribute info from all available plugins and adds it to the given +hash-ref. + +If a plugin name has been given, only the attributes of that plugin will be +added. + +=over + +=item Return Value + +1 + +=back + +=cut + +sub addAllAttributesToHash +{ + my $class = shift; + my $attrInfo = shift; + my $pluginName = shift; + + return $class->_addAttributesToHash($attrInfo, $pluginName, sub { 1 } ); +} + +=item C + +Fetches attribute info relevant for stage1 (i.e. vendor-OS-attributes) +from all available plugins and adds it to the given hash-ref. + +If a plugin name has been given, only the attributes of that plugin will be +added. + +=over + +=item Return Value + +1 + +=back + +=cut + +sub addAllStage1AttributesToHash +{ + my $class = shift; + my $attrInfo = shift; + my $pluginName = shift; + + return $class->_addAttributesToHash($attrInfo, $pluginName, sub { + my $attr = shift; + return $attr->{applies_to_vendor_os}; + } ); +} + +=item C + +Fetches attribute info relevant for stage3 (i.e. system- or client-attributes) +from all available plugins and adds it to the given hash-ref. + +If a plugin name has been given, only the attributes of that plugin will be +added. + +=over + +=item Return Value + +1 + +=back + +=cut + +sub addAllStage3AttributesToHash +{ + my $class = shift; + my $attrInfo = shift; + my $pluginName = shift; + + return $class->_addAttributesToHash($attrInfo, $pluginName, sub { + my $attr = shift; + return $attr->{applies_to_systems} || $attr->{applies_to_clients}; + } ); +} + +sub _addAttributesToHash +{ + my $class = shift; + my $attrInfo = shift; + my $pluginName = shift; + my $testFunc = shift; + + $class->_init() if !%plugins; + + foreach my $plugin (values %plugins) { + next if $pluginName && $plugin->{name} ne $pluginName; + my $pluginAttrInfo = $plugin->getAttrInfo(); + foreach my $attr (keys %$pluginAttrInfo) { + next if !$testFunc->($pluginAttrInfo->{$attr}); + $attrInfo->{$attr} = clone($pluginAttrInfo->{$attr}); + } + } + return 1; +} + +sub _init +{ + my $class = shift; + + %plugins = (); + my $pluginPath = "$openslxConfig{'base-path'}/lib/plugins"; + foreach my $modulePath (glob("$pluginPath/*")) { + next if $modulePath !~ m{/([^/]+)$}; + my $pluginName = $1; + if (!-e "$modulePath/OpenSLX/OSPlugin/$pluginName.pm") { + vlog( + 1, + "skipped plugin-folder $modulePath as no corresponding perl " + . "module could be found." + ); + next; + } + my $class = "OpenSLX::OSPlugin::$pluginName"; + vlog(2, "loading plugin $class from path '$modulePath'"); + my $plugin = instantiateClass($class, { pathToClass => $modulePath }); + $plugins{$pluginName} = $plugin; + } + return; +} + +1; diff --git a/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm b/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm new file mode 100644 index 00000000..ef1db778 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm @@ -0,0 +1,253 @@ +# 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/ +# ----------------------------------------------------------------------------- +# bootsplash.pm +# - implementation of the 'bootsplash' plugin, which installs splashy +# into the ramfs, including changeing theme +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::bootsplash; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; +use OpenSLX::DistroUtils; + +sub new +{ + my $class = shift; + + my $self = { + name => 'bootsplash', + }; + + mkpath("$openslxConfig{'config-path'}/plugins/bootsplash/themes"); + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Installs Splashy as bootsplash into ramfs and sets a Theme. + End-of-Here + precedence => 30, + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + 'bootsplash::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'bootsplash'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + + 'bootsplash::theme' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + name of the theme to apply to bootsplash (unset for no theme) + End-of-Here + content_regex => undef, + content_descr => undef, + default => 'openslx', + }, + }; +} + +sub suggestAdditionalKernelParams +{ + my $self = shift; + my $makeInitRamFSEngine = shift; + + my @suggestedParams; + + # add vga=0x317 unless explicit vga-mode is already set + if (!$makeInitRamFSEngine->haveKernelParam(qr{\bvga=})) { + push @suggestedParams, 'vga=0x317'; + } + + # add quiet, if not already set + if (!$makeInitRamFSEngine->haveKernelParam('quiet')) { + push @suggestedParams, 'quiet'; + } + + return @suggestedParams; +} + +sub suggestAdditionalKernelModules +{ + my $self = shift; + my $makeInitRamFSEngine = shift; + + my @suggestedModules; + + # Ubuntu needs vesafb and fbcon (which drags along some others) + #if ($makeInitRamFSEngine->{'distro-name'} =~ m{^ubuntu}i) { + push @suggestedModules, qw( i810 i830 i915 mga nouveau r128 radeon savage sis tdfx ttm via drm fbcon vesafb ); + #} + + return @suggestedModules; +} + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'}; + $self->{openslxBasePath} = $info->{'openslx-base-path'}; + + my $splashyPath = + "$self->{openslxBasePath}/lib/plugins/bootsplash/files"; + my $pluginRepoPath = "$self->{pluginRepositoryPath}"; + + my $initFile = newInitFile(); + my $do_stop = unshiftHereDoc(<<' End-of-Here'); + /opt/openslx/plugin-repo/bootsplash/bin/splashy shutdown + sleep 1 + /opt/openslx/plugin-repo/bootsplash/bin/splashy_update \ + "progress 100" 2>/dev/null + End-of-Here + + # add helper functions to initfile + # first parameter name of the function + # second parameter content of the function + $initFile->addFunction('do_start', " : # do nothing here"); + $initFile->addFunction('do_stop', $do_stop); + $initFile->addFunction('do_restart', " : # do nothing here"); + + # 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 initfile to filesystem + spitFile( + "$pluginRepoPath/bootsplash.halt", + getInitFileForDistro($initFile, ucfirst($distro)) + ); + + # copy splashy(_update) into plugin-repo folder + mkpath("$pluginRepoPath/sbin"); + mkpath("$pluginRepoPath/lib"); + mkpath("$pluginRepoPath/usr/lib"); + slxsystem("cp -a $splashyPath/sbin/* $pluginRepoPath/sbin/; + cp -p $splashyPath/lib/* $pluginRepoPath/lib/; + cp -p $splashyPath/usr/lib/* $pluginRepoPath/usr/lib/") == 0 + or die _tr( + "unable to copy splashy to $pluginRepoPath" + ); + # create a proper (distro specific) runlevel script for halt + #my $initfile = newInitFile(); + #$initfile->addDaemon(""); + # + #my $runlevelscript = getInitFileForDistro($initfile, "ubuntu"); + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + + +sub copyRequiredFilesIntoInitramfs +{ + my $self = shift; + my $targetPath = shift; + my $attrs = shift; + my $makeInitRamFSEngine = shift; + + my $bootsplashDir = "$openslxConfig{'base-path'}/lib/plugins/bootsplash"; + my $bootsplashConfigDir + = "$openslxConfig{'config-path'}/plugins/bootsplash"; + my $bootsplashTheme = $attrs->{'bootsplash::theme'} || ''; + my $splashyThemeDir = ''; + + if ($bootsplashTheme) { + my $bootsplashThemeDir = "$bootsplashDir/files/themes/$bootsplashTheme"; + my $altThemeDir = "$bootsplashConfigDir/themes/$bootsplashTheme"; + if (-d $bootsplashThemeDir) { + $splashyThemeDir = "$bootsplashThemeDir"; + } + elsif (-d $altThemeDir) { + $splashyThemeDir = "$altThemeDir"; + } + if (-d $splashyThemeDir) { + my $splashyPath = "$bootsplashDir/files"; + $makeInitRamFSEngine->addCMD( + "cp -p $splashyPath/sbin/splashy* $targetPath/sbin/; + cp -p $splashyPath/lib/lib* $targetPath/lib/; + cp -p $splashyPath/usr/lib/lib* $targetPath/usr/lib/" + ); + $makeInitRamFSEngine->addCMD( + "mkdir -p $targetPath/etc/splashy/themes" + ); + $makeInitRamFSEngine->addCMD( + "cp -a $splashyThemeDir $targetPath/etc/splashy/themes/" + ); + my $defSplashyTheme = "/etc/splashy/themes/$bootsplashTheme"; + my $splashyConfig = unshiftHereDoc(<<" End-of-Here"); + + + + + /etc/splashy/themes + + $bootsplashTheme + + $defSplashyTheme + /etc/splashy/splashy.pid + /dev/.initramfs/splashy.fifo + + End-of-Here + $makeInitRamFSEngine->addCMD( { + file => "$targetPath/etc/splashy/config.xml", + content => $splashyConfig, + } ); + } + } + else { + $bootsplashTheme = ''; + } + + vlog(1, _tr("bootsplash-plugin: bootsplash=%s", $bootsplashTheme)); + + return; +} + +1; diff --git a/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh b/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh new file mode 100644 index 00000000..372e025d --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh @@ -0,0 +1,56 @@ +# Copyright (c) 2007..2008 - RZ Uni Freiburg +# Copyright (c) 2008 - 2009 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 +# +# stage3 part of 'bootsplash' plugin - the runlevel script +# +# script is included from init via the "." load function - thus it has all +# variables and functions available + +if [ -e /initramfs/plugin-conf/bootsplash.conf ]; then + . /initramfs/plugin-conf/bootsplash.conf + if [ $bootsplash_active -ne 0 ]; then + if [ ${no_bootsplash} -eq 0 ]; then + # create a runlevelscript that will stop splashy before the start of KDM + d_mkrlscript init splashy.boot "" + echo -e "\tLD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib/ \ + /opt/openslx/plugin-repo/bootsplash/sbin/splashy_update \ + exit 2>/dev/null \ + \n\ttype killall >/dev/null 2>&1 && killall -9 splashy" \ + >>/mnt/etc/init.d/splashy.boot + d_mkrlscript close splashy.boot "" + + cp /mnt/opt/openslx/plugin-repo/bootsplash/bootsplash.halt \ + /mnt/etc/init.d/bootsplash.halt + chmod 744 /mnt/etc/init.d/bootsplash.halt + cp -a /etc/splashy /mnt/etc/ + rllinker "bootsplash.halt" 1 1 + + # fix for ubuntu 1004+ + for i in init init.inactive; do + for j in kdm gdm xdm lxdm; do + dmfile=/mnt/etc/${i}/${j}.conf + if [ -f $dmfile ]; then + sed -e "s,^script.*,script\n\t#0x42#," \ + -e "s,#0x42#,# shutdown splashy - added by splashy plugin\n\t#0x42#," \ + -e "s,#0x42#,if [ ! \"x$(ps aux |grep splashy |grep -v grep | wc -l)\" -eq \"x0\" ]; then\n\t#0x42#, " \ + -e "s,#0x42#, LD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib/ \\\\\n\t#0x42#," \ + -e "s,#0x42#, /opt/openslx/plugin-repo/bootsplash/sbin/splashy_update exit \\\\\n\t#0x42#," \ + -e "s,#0x42#, 2>/dev/null \n\t#0x42#," \ + -e "s,#0x42#,fi \n\t#0x42#," \ + -e "s,#0x42#,#splashy-stop-done#," \ + -i $dmfile 2>/dev/null & + fi + done + done + fi + fi +fi + diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0 b/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0 new file mode 100644 index 00000000..e96b345b Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0 differ diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1 b/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1 new file mode 100644 index 00000000..817c6d2d Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1 differ diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1 b/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1 new file mode 100644 index 00000000..71c251d1 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1 differ diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy b/src/os-plugins/plugins/bootsplash/files/sbin/splashy new file mode 100755 index 00000000..fee26325 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/sbin/splashy differ diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config new file mode 100755 index 00000000..1e048366 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config differ diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update new file mode 100755 index 00000000..cb624fde Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update differ diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf b/src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf new file mode 100644 index 00000000..e69de29b diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png b/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png new file mode 100644 index 00000000..e7f996c6 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png differ diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml b/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml new file mode 100644 index 00000000..48854551 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml @@ -0,0 +1,138 @@ + + + + + + openslx + 0.2 + OpenSLX Splashy Theme + http://openslx.com + mj0@uni-freiburg.de + + + + + 0 + 42 + 100 + 16 + + + + 128 + 147 + 161 + 255 + + + + no + + 0 + 0 + 0 + 0 + + + + + + 240 + 240 + 240 + 255 + + + + forward + backward + forward + backward + + + yes + yes + yes + yes + + + + + openslx.png + openslx.png + openslx.png + openslx.png + openslx.png + + + + 0 + 0 + 0 + 0 + + + + + no + + + 1 + 61 + 98 + 38 + + + + 0 + 0 + 0 + 0 + + + + no + + 0 + 0 + 0 + 0 + + + + + + blank.ttf + 2 + + + + 62 + 93 + 114 + 0 + + + + no + no + no + diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9 new file mode 100644 index 00000000..fbe2d611 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9 differ diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9 new file mode 100644 index 00000000..76b77716 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9 differ diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1 new file mode 100644 index 00000000..513b3508 Binary files /dev/null and b/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1 differ diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh new file mode 100644 index 00000000..a54fde96 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh @@ -0,0 +1,18 @@ +# splashy depends on /proc/fb with VESA +# only activate with kernel option quiet and no debuglevel +if grep -q ".*" /proc/fb > /dev/null 2>&1 \ + && grep -qie " quiet " -qie "^quiet " -qie " quiet$" /proc/cmdline \ + > /dev/null 2>&1 \ + && [ $DEBUGLEVEL -eq 0 ] \ + && [ -e /bin/splashy ] ; then + export no_bootsplash=0 +else + export no_bootsplash=1 +fi + +if [ ${no_bootsplash} -eq 0 ]; then + /bin/splashy boot 2>/dev/null + # add splashy.boot runlevel script + export D_SPLASHY=splashy.boot +fi + diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh new file mode 100644 index 00000000..7f3d563e --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 10" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh new file mode 100644 index 00000000..d8155ff0 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 20" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh new file mode 100644 index 00000000..be6ac567 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 25" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh new file mode 100644 index 00000000..606eb694 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 35" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh new file mode 100644 index 00000000..d5fc62ec --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 40" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh new file mode 100644 index 00000000..4b7e9c78 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 50" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh new file mode 100644 index 00000000..9c3bd20f --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 60" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh new file mode 100644 index 00000000..fcd0c410 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 70" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh new file mode 100644 index 00000000..0abfa5b2 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 80" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh new file mode 100644 index 00000000..8738e454 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 85" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh new file mode 100644 index 00000000..2546d298 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 90" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh new file mode 100644 index 00000000..5ff86715 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 95" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh new file mode 100644 index 00000000..93673915 --- /dev/null +++ b/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh @@ -0,0 +1 @@ +[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 100" >/dev/null 2>&1 diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm new file mode 100644 index 00000000..316448bb --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm @@ -0,0 +1,432 @@ +# Copyright (c) 2008 - 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/Base.pm +# - provides base implementation of the Distro API for the desktop plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Base; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use File::Basename; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + $self->{engine} = shift; + weaken($self->{'engine'}); + # avoid circular reference between distro and its engine + + return 1; +} + +sub getDefaultDesktopManager +{ + my $self = shift; + + # the default implementation prefers KDM over GDM over XDM + return $self->isKDMInstalled() ? 'kdm' + : $self->isGDMInstalled() ? 'gdm' + : $self->isXDMInstalled() ? 'xdm' : undef; +} + +sub getDefaultDesktopKind +{ + my $self = shift; + + # the default implementation prefers GNOME over KDE over XFCE + return $self->isGNOMEInstalled() ? 'gnome' + : $self->isKDEInstalled() ? 'kde' + : $self->isXFCEInstalled() ? 'xfce' : undef; +} + +sub isGNOMEInstalled +{ + my $self = shift; + + return isInPath('gnome-session'); +} + +sub installGNOME +{ + my $self = shift; + + $self->{engine}->installPackages( + $self->{engine}->getInstallablePackagesForSelection('gnome') + ); + + return 1; +} + +sub isGDMInstalled +{ + my $self = shift; + + return isInPath('gdm'); +} + +sub installGDM +{ + my $self = shift; + + $self->{engine}->installPackages('gdm'); + + return 1; +} + +sub GDMPathInfo +{ + my $self = shift; + + my $pathInfo = { + config => '/etc/gdm/gdm.conf', + paths => [ + '/var/lib/gdm', + '/var/log/gdm', + ], + }; + + return $pathInfo; +} + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $pathInfo = $self->GDMPathInfo(); + my $configFile = $pathInfo->{config}; + + my $paths + = join( + ' ', + map { '/mnt' . $_ } ( dirname($configFile), @{$pathInfo->{paths}} ) + ); + my $script = unshiftHereDoc(<<" End-of-Here"); + # written by OpenSLX-plugin 'desktop' + + for i in $paths; do + testmkd \$i + done + + cp /mnt$repoPath/gdm/\$desktop_mode/gdm.conf /mnt$configFile + + # activate theme only if the corresponding xml file is found + # (otherwise fall back to default theme of vendor-OS) + if [ -n "\$desktop_theme" ]; then + thdir=/opt/openslx/plugin-repo/desktop/themes/gdm + theme=\$desktop_theme + if [ -e /mnt\$thdir/\$theme/*.xml ]; then + sed -i "s,\\[greeter\\],[greeter]\\nGraphicalThemedColor=," \\ + /mnt$configFile + sed -i "s,\\[greeter\\],[greeter]\\nGraphicalThemeDir=\$thdir," \\ + /mnt$configFile + sed -i "s,\\[greeter\\],[greeter]\\nGraphicalTheme=\$theme," \\ + /mnt$configFile + fi + fi + case "\${desktop_allowshutdown}" in + none) + ;; + root) + sed "s|AllowShutdown.*|AllowShutdown=true|;\\ + s|SecureShutdown.*|SecureShutdown=true|" \\ + -i /mnt$configFile + ;; + users) + sed "s|AllowShutdown.*|AllowShutdown=true|;\\ + s|SecureShutdown.*|SecureShutdown=false|" \\ + -i /mnt$configFile + ;; + esac + [ "\${desktop_rootlogin}" -ne 0 ] && \\ + sed "s|AllowRoot.*|AllowRoot=true|" -i /mnt$configFile + End-of-Here + + return $script; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + return { + 'chooser' => { + }, + 'daemon' => { + AutomaticLoginEnable => 'false', + Group => 'gdm', + User => 'gdm', + DefaultSession => 'default.desktop', + }, + 'debug' => { + Enable => 'false', + }, + 'greeter' => { + AllowShutdown => 'false', + Browser => 'false', + MinimalUID => '500', + SecureShutdown => 'false', + ShowDomain => 'false', + DefaultWelcome => 'false', + Welcome => 'OpenSLX Workstation (%n)', + }, + 'gui' => { + }, + 'security' => { + AllowRoot => 'false', + AllowRemoteRoot => 'false', + DisallowTCP => 'true', + SupportAutomount => 'true', + }, + 'server' => { + }, + 'xdmcp' => { + Enable => 'false', + }, + }; +} + +sub GDMConfigHashForKiosk +{ + my $self = shift; + + my $configHash = $self->GDMConfigHashForWorkstation(); + $configHash->{daemon}->{AutomaticLoginEnable} = 'true'; + $configHash->{daemon}->{AutomaticLogin} = 'nobody'; + + return $configHash; +} + +sub GDMConfigHashForChooser +{ + my $self = shift; + + my $configHash = $self->GDMConfigHashForWorkstation(); + $configHash->{xdmcp}->{Enable} = 'true'; + + return $configHash; +} + +sub isKDEInstalled +{ + my $self = shift; + + return isInPath('startkde'); +} + +sub installKDE +{ + my $self = shift; + + $self->{engine}->installPackages( + $self->{engine}->getInstallablePackagesForSelection('kde') + ); + + return 1; +} + +sub isKDMInstalled +{ + my $self = shift; + + return isInPath('kdm'); +} + +sub installKDM +{ + my $self = shift; + + $self->{engine}->installPackages('kdm'); + + return 1; +} + +sub KDMPathInfo +{ + my $self = shift; + + my $pathInfo = { + config => '/etc/opt/kdm/kdmrc', + paths => [ + '/var/lib/kdm', + ], + }; + + return $pathInfo; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $pathInfo = $self->KDMPathInfo(); + my $configFile = $pathInfo->{config}; + + my $paths + = join( + ' ', + map { '/mnt' . $_ } ( dirname($configFile), @{$pathInfo->{paths}} ) + ); + my $script = unshiftHereDoc(<<" End-of-Here"); + #!/bin/sh + # written by OpenSLX-plugin 'desktop' + + for i in $paths; do + testmkd \$i + done + + cp /mnt$repoPath/kdm/\$desktop_mode/kdmrc /mnt$configFile + + # activate theme only if the corresponding xml file is found + # (otherwise fall back to default theme of vendor-OS) + if [ -n "\$desktop_theme" ]; then + theme=\$desktop_theme + thdir=/opt/openslx/plugin-repo/desktop/themes/kdm/\$theme + if [ -e /mnt\$thdir/*.xml ]; then + sed -i "s,\\[X-\\*-Greeter\\],[X-*-Greeter]\\nUseBackground=false," \\ + /mnt$configFile + sed -i "s,\\[X-\\*-Greeter\\],[X-*-Greeter]\\nTheme=\$thdir," \\ + /mnt$configFile + sed -i "s,\\[X-\\*-Greeter\\],[X-*-Greeter]\\nUseTheme=true," \\ + /mnt$configFile + fi + fi + case "\${desktop_allowshutdown}" in + none) + sed "s|AllowShutdown.*|AllowShutdown=None|" \\ + -i /mnt$configFile + ;; + root) + sed "s|AllowShutdown.*|AllowShutdown=Root|" \\ + -i /mnt$configFile + ;; + users) + sed "s|AllowShutdown.*|AllowShutdown=All|" \\ + -i /mnt$configFile + ;; + esac + [ "\${desktop_rootlogin}" -ne 0 ] && \\ + sed "s|AllowRootLogin.*|AllowRootLogin=true|" -i /mnt$configFile + End-of-Here + + return $script; +} + +sub KDMConfigHashForWorkstation +{ + my $self = shift; + + return { +# 'General' => { +# StaticServers => ':0', +# ReserveServers => ':1,:2,:3', +# ServerVTs => '-7', +# ConsoleTTYs => 'tty1,tty2,tty3,tty4,tty5,tty6', +# }, + 'X-:0-Core' => { + AutoLoginEnable => 'false', + AllowRootLogin => 'false', + AllowShutdown => 'All', + }, + 'X-*-Greeter' => { + GreetString => 'OpenSLX Workstation (%h)', + SelectedUsers => '', + UserList => 'false', + }, + 'X-:*-Greeter' => { + AllowClose => 'false', + UseAdminSession => 'true', + }, + 'X-:0-Greeter' => { + LogSource => '/dev/xconsole', + UseAdminSession => 'false', + PreselectUser => 'None', + }, + 'xdmcp' => { + Enable => 'false', + }, + }; +} + +sub KDMConfigHashForKiosk +{ + my $self = shift; + + my $configHash = $self->KDMConfigHashForWorkstation(); + $configHash->{'X-:0-Core'}->{AutoLoginEnable} = 'true'; + $configHash->{'X-:0-Core'}->{AutoLoginUser} = 'nobody'; + + return $configHash; +} + +sub KDMConfigHashForChooser +{ + my $self = shift; + + my $configHash = $self->KDMConfigHashForWorkstation(); + $configHash->{xdmcp}->{Enable} = 'true'; + + return $configHash; +} + +sub isXFCEInstalled +{ + my $self = shift; + + return isInPath('startxfce4'); +} + +sub installXFCE +{ + my $self = shift; + + $self->{engine}->installPackages( + $self->{engine}->getInstallablePackagesForSelection('xfce') + ); + + return 1; +} + +sub isXDMInstalled +{ + my $self = shift; + + return isInPath('xdm'); +} + +sub installXDM +{ + my $self = shift; + + $self->{engine}->installPackages('xdm'); + + return 1; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Debian.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Debian.pm new file mode 100644 index 00000000..c212b3ef --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Debian.pm @@ -0,0 +1,63 @@ +# Copyright (c) 2006..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/ +# ----------------------------------------------------------------------------- +# desktop/OpenSLX/Distro/Debian.pm +# - provides Debian-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Debian; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupGDMScript($repoPath); + + $script .= unshiftHereDoc(<<' End-of-Here'); + rllinker gdm 1 1 + echo '/usr/bin/gdm' > /mnt/etc/X11/default-display-manager + # 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 + End-of-Here + + return $script; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupKDMScript($repoPath); + + $script .= unshiftHereDoc(<<' End-of-Here'); + rllinker kdm 1 1 + echo '/usr/bin/kdm' > /mnt/etc/X11/default-display-manager + End-of-Here + + return $script; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Fedora.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Fedora.pm new file mode 100644 index 00000000..f9428aab --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Fedora.pm @@ -0,0 +1,30 @@ +# Copyright (c) 2006, 2007 - 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/Fedora.pm +# - provides Fedora-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Fedora; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ + +# TODO: implement! + +1; \ No newline at end of file diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Gentoo.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Gentoo.pm new file mode 100644 index 00000000..129f4d08 --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Gentoo.pm @@ -0,0 +1,30 @@ +# Copyright (c) 2006, 2007 - 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/Gentoo.pm +# - provides Gentoo-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Gentoo; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ + +# TODO: implement! + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm new file mode 100644 index 00000000..1dc0482c --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Scilin.pm @@ -0,0 +1,132 @@ +# Copyright (c) 2006..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/ +# ----------------------------------------------------------------------------- +# desktop/OpenSLX/Distro/Scilin.pm +# - provides Scilin-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Scilin; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub GDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::GDMPathInfo(); + + # create gdm.conf-custom instead of gdm.conf + $pathInfo->{config} = '/etc/gdm/custom.conf'; + + return $pathInfo; +} + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupGDMScript($repoPath); + + my $configFile = $self->GDMPathInfo->{config}; + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + + $script .= unshiftHereDoc(<<' End-of-Here'); + echo "DISPLAYMANAGER=GNOME" \ + >/mnt/etc/sysconfig/desktop + # gdm does not like AUFS/UnionFS on its var directory + mkdir -m 1770 /mnt/var/lib/gdm + chown root:gdm /mnt/var/lib/gdm + End-of-Here + + return $script; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); + $configHash->{'daemon'}->{SessionDesktopDir} = + '/etc/X11/session/:/usr/share/xsessions/:/usr/share/gdm/BuiltInSessions'; + $configHash->{'daemon'}->{Greeter} = + '/usr/libexec/gdmgreeter'; + + return $configHash; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + # SUSE reads /var/adm/kdm/kdmrc.sysconfig, so we link that to + # our config file + my $pathInfo = $self->KDMPathInfo(); + my $configFile = $pathInfo->{config}; + mkpath("/etc/opt/kdm"); + mkpath("/var/adm/kdm"); + # maybe backup kdmrc.sysconfig sometimes + unlink("/var/adm/kdm/kdmrc.sysconfig"); + # the config file gets overwritten if this script is present + unlink("/opt/kde3/share/apps/kdm/read_sysconfig.sh"); + symlink("/etc/opt/kdm/kdmrc", "/var/adm/kdm/kdmrc.sysconfig"); + + my $script = $self->SUPER::setupKDMScript($repoPath); + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + + $script .= unshiftHereDoc(<<' End-of-Here'); + echo "DISPLAYMANAGER=KDE" \ + >/mnt/etc/sysconfig/desktop + End-of-Here + + return $script; +} + +sub _setupCommonDmScript +{ + my $script = shift; + + $script .= unshiftHereDoc(<<' End-of-Here'); + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/X11/xdm/Xreset \ + > /mnt/etc/X11/xdm/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 ) & + . /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," \ + # -i /mnt/etc/inittab + End-of-Here + + return $script; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm new file mode 100644 index 00000000..433ed7e1 --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm @@ -0,0 +1,162 @@ +# 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/Suse.pm +# - provides SUSE-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Suse; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub GDMPathInfo +{ + my $self = shift; + + my $pathInfo = $self->SUPER::GDMPathInfo(); + + # create gdm.conf-custom instead of gdm.conf + $pathInfo->{config} = '/etc/gdm/custom.conf'; + + return $pathInfo; +} + +sub setupGDMScript +{ + my $self = shift; + my $repoPath = shift; + + my $script = $self->SUPER::setupGDMScript($repoPath); + + my $configFile = $self->GDMPathInfo->{config}; + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + + $script .= unshiftHereDoc(<<' End-of-Here'); + echo -e '# changed by $0 during stage3 setup\nDISPLAYMANAGER="gdm"' \ + >/mnt/etc/sysconfig/displaymanager + sed -i "s/DEFAULT_WM=.*/DEFAULT_WM=\"$desktop_kind\"/" \ + /mnt/etc/sysconfig/windowmanager + #sed "s|XSESSION|/etc/xdm/Xsession|" -i /mnt$configFile + # 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 + # no use for this configuration info file + rm /mnt/etc/gdm/gdm_sysconfig.* 2>/dev/null + End-of-Here + + return $script; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); + $configHash->{'daemon'}->{SessionDesktopDir} = + '/etc/X11/session/:/usr/share/xsessions/'; + $configHash->{'daemon'}->{DefaultSession} = 'default.desktop'; + $configHash->{'daemon'}->{Greeter} = + '/usr/lib/gdm/gdmgreeter'; + + return $configHash; +} + +sub setupKDMScript +{ + my $self = shift; + my $repoPath = shift; + + # check for kdm version + my $kdmVer; + my $kdmPath; + if (-e "/usr/bin/kdm") { + $kdmVer = "4"; + $kdmPath = "/usr/share/kde4"; + } + else { + $kdmVer = ""; + $kdmPath = "/opt/kde3/share"; + # change default theme to openslx-legacy if kdm3 + print " * Please change to openslx-legacy theme when using kdm3\n"; + } + + # SUSE reads /var/adm/kdm/kdmrc.sysconfig, so we link that to + # our config file + my $pathInfo = $self->KDMPathInfo(); + my $configFile = $pathInfo->{config}; + mkpath("/etc/opt/kdm"); + mkpath("/var/adm/kdm"); + # maybe backup kdmrc.sysconfig sometimes + unlink("/var/adm/kdm/kdmrc.sysconfig"); + # the config file gets overwritten if this script is present + unlink("$kdmPath/apps/kdm/read_sysconfig.sh"); + symlink("/etc/opt/kdm/kdmrc", "/var/adm/kdm/kdmrc.sysconfig"); + + my $script = $self->SUPER::setupKDMScript($repoPath); + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + + $script .= "kdmver=$kdmVer\n"; + $script .= unshiftHereDoc(<<' End-of-Here'); + sed -i "s/DISPLAYMANAGER=.*/DISPLAYMANAGER=\"kdm$kdmver\"/" \ + /mnt/etc/sysconfig/displaymanager + [ $(grep -q DISPLAYMANAGER /mnt/etc/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; +} + +sub _setupCommonDmScript +{ + my $script = shift; + + $script .= unshiftHereDoc(<<' End-of-Here'); + rllinker xdm 1 10 + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/X11/xdm/Xreset \ + > /mnt/etc/X11/xdm/Xreset.system + echo -e '#!/bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # avoid annoying messages on removed sound devices + ( su -c "rm ~/.kde4/share/config/phonondevicesrc" - $USER ) & + + # 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/X11/xdm/Xreset.system' >/mnt/etc/X11/xdm/Xreset + chmod a+x /mnt/etc/X11/xdm/Xreset* + + End-of-Here + + return $script; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm new file mode 100644 index 00000000..ac14b2a5 --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm @@ -0,0 +1,54 @@ +# 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/Suse_10_2.pm +# - provides SUSE-10.2-specific overrides of the Distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Suse_10_2; + +use strict; +use warnings; + +use base qw(desktop::OpenSLX::Distro::Suse); + +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/opt/gnome/gdm/custom.conf'; + + return $pathInfo; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); + $configHash->{'daemon'}->{SessionDesktopDir} = + '/etc/X11/session/:/usr/share/xsessions/'; + $configHash->{'daemon'}->{Greeter} = + '/opt/gnome/lib/gdm/gdmgreeter'; + + return $configHash; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm new file mode 100644 index 00000000..d222c102 --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm @@ -0,0 +1,169 @@ +# 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.pm +# - provides Ubuntu-specific overrides of the distro API for the desktop +# plugin. +# ----------------------------------------------------------------------------- +package desktop::OpenSLX::Distro::Ubuntu; + +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/custom.conf'; + + 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 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 + # 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(); + + $pathInfo = { + config => "/etc/kde4/kdm/kdmrc", + paths => [ + '/var/lib/kdm', + '/var/run/kdm', + ], + }; + + return $pathInfo; +} + +sub GDMConfigHashForWorkstation +{ + my $self = shift; + + 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 = "4"; + my $configHash = $self->SUPER::KDMConfigHashForWorkstation(); + $configHash->{'General'}->{PidFile} = "/var/run/kdm.pid"; + $configHash->{'General'}->{ServerVTs} = "-7"; + $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); + + $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* + + 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 \ + /usr/bin/startkde + End-of-Here + + return $script; +} + +1; diff --git a/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_8.pm new file mode 100644 index 00000000..6f00f181 --- /dev/null +++ b/src/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/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm b/src/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu_9_04.pm new file mode 100644 index 00000000..1022d6e8 --- /dev/null +++ b/src/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/src/os-plugins/plugins/desktop/OpenSLX/OSPlugin/desktop.pm b/src/os-plugins/plugins/desktop/OpenSLX/OSPlugin/desktop.pm new file mode 100644 index 00000000..7d496483 --- /dev/null +++ b/src/os-plugins/plugins/desktop/OpenSLX/OSPlugin/desktop.pm @@ -0,0 +1,712 @@ +# 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/ +# ----------------------------------------------------------------------------- +# desktop.pm +# - implementation of the 'desktop' plugin, which installs +# all needed information for a displaymanager and for the desktop. +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::desktop; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use File::Basename; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub new +{ + my $class = shift; + + my $self = { + name => 'desktop', + }; + + my $localGDMThemesDir + = "$openslxConfig{'config-path'}/plugins/desktop/themes/gdm"; + mkpath($localGDMThemesDir) unless -e $localGDMThemesDir; + my $localKDMThemesDir + = "$openslxConfig{'config-path'}/plugins/desktop/themes/kdm"; + mkpath($localKDMThemesDir) unless -e $localKDMThemesDir; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Sets a desktop and creates needed configs, theme can be set as well. + End-of-Here + precedence => 40, + # not really required e.g. for modern autoconfiguring systems like Ubuntu + # 10.04 + # required => [ qw( xserver ) ], + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + # stage3 + 'desktop::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'desktop'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + 'desktop::kind' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + which desktop environment shall be used: gnome, kde, or xfce? + End-of-Here + content_regex => qr{^(gnome|kde|xfce)$}, + content_descr => '"gnome", "kde" or "xfce"', + default => undef, + }, + 'desktop::manager' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + which display manager to start: gdm, kdm or xdm? + End-of-Here + content_regex => qr{^(gdm|kdm|xdm)$}, + content_descr => '"gdm", "kdm" or "xdm"', + default => undef, + }, + 'desktop::mode' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + which type of operation mode shall be activated: + workstattion, kiosk or chooser? + End-of-Here + content_regex => qr{^(workstation|kiosk|chooser)$}, + content_descr => '"workstation", "kiosk" or "chooser"', + default => 'workstation', + }, + 'desktop::theme' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + name of the theme to apply to the desktop (unset for no theme) + End-of-Here + content_descr => 'one of the entries in "supported_themes"', + default => 'openslx', + }, + 'desktop::allowshutdown' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + allow shutdown of the SLX client via gdm/kdm. "none" disables + this functionality, "root" allows only the sysadmin and + "users" means free4all. + End-of-Here + content_regex => qr{^(none|root|users)$}, + content_descr => 'possible entries "none", "root" or "users"', + default => 'users', + }, + 'desktop::rootlogin' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + allow the system administrator to logon to the graphical + user interface (1 allow, 0 disallow). + End-of-Here + content_descr => '1 means allowed - 0 means forbidden', + content_regex => qr{^(0|1)$}, + default => '1', + }, + # kiosk mode just has the option to logon user nobody + #'desktop::auto-login' => { + # applies_to_systems => 1, + # applies_to_clients => 1, + # description => unshiftHereDoc(<<' End-of-Here'), + # set an arbitrary user which is logged in automatically into + # the graphical user interface (none disables, default). + # End-of-Here + # content_descr => 'none disables - logins in that userid', + # default => 'none', + #}, + + # stage1 + 'desktop::gdm' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should gdm be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'desktop::gnome' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should gnome be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'desktop::kde' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should kde be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'desktop::kdm' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should kdm be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'desktop::supported_themes' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + name of all themes that shall be installed in vendor-OS (such + that they can be selected via 'desktop::theme' in stage 3). + End-of-Here + content_descr => 'a comma-separated list of theme names', + default => undef, + }, + 'desktop::xdm' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should xdm be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + 'desktop::xfce' => { + applies_to_vendor_os => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should xfce be available (installed in vendor-OS)? + End-of-Here + content_regex => qr{^0|1$}, + content_descr => '"0", "1" or "-" (for unset)', + default => undef, + }, + }; +} + +sub getDefaultAttrsForVendorOS +{ + my $self = shift; + my $vendorOSName = shift; + + my $attrs = $self->getAttrInfo(); + + if ($vendorOSName =~ m{kde}) { + $attrs->{'desktop::manager'}->{default} = 'kdm'; + $attrs->{'desktop::kind'}->{default} = 'kde'; + } + elsif ($vendorOSName =~ m{gnome}) { + $attrs->{'desktop::manager'}->{default} = 'gdm'; + $attrs->{'desktop::kind'}->{default} = 'gnome'; + } + elsif ($vendorOSName =~ m{xfce}) { + $attrs->{'desktop::manager'}->{default} = 'xdm'; + $attrs->{'desktop::kind'}->{default} = 'xcfe'; + } + else { + $attrs->{'desktop::manager'}->{default} + = $self->{distro}->getDefaultDesktopManager(); + $attrs->{'desktop::kind'}->{default} + = $self->{distro}->getDefaultDesktopKind(); + } + return $attrs; +} + +sub checkStage3AttrValues +{ + my $self = shift; + my $stage3Attrs = shift; + my $vendorOSAttrs = shift; + + my @problems; + + my $manager = $stage3Attrs->{'desktop::manager'} || ''; + if ($manager eq 'kdm') { + if (!defined $vendorOSAttrs->{'desktop::kdm'} + || $vendorOSAttrs->{'desktop::kdm'} == 1) { + if (!$self->{distro}->isKDMInstalled()) { + push @problems, _tr( + "KDM is not installed in vendor-OS, so using it as desktop manager wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::kdm'} == 0) { + push @problems, _tr( + "desktop::kdm is 0, so using KDM as desktop manager is not allowed for this vendor-OS!" + ); + } + } + elsif ($manager eq 'gdm') { + if (!defined $vendorOSAttrs->{'desktop::gdm'} + || $vendorOSAttrs->{'desktop::gdm'} == 1) { + if (!$self->{distro}->isGDMInstalled()) { + push @problems, _tr( + "GDM is not installed in vendor-OS, so using it as desktop manager wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::gdm'} == 0) { + push @problems, _tr( + "desktop::gdm is 0, so using GDM as desktop manager is not allowed for this vendor-OS!" + ); + } + } + elsif ($manager eq 'xdm') { + if (!defined $vendorOSAttrs->{'desktop::xdm'} + || $vendorOSAttrs->{'desktop::xdm'} == 1) { + if (!$self->{distro}->isXDMInstalled()) { + push @problems, _tr( + "XDM is not installed in vendor-OS, so using it as desktop manager wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::xdm'} == 0) { + push @problems, _tr( + "desktop::xdm is 0, so using XDM as desktop manager is not allowed for this vendor-OS!" + ); + } + } + + my $kind = $stage3Attrs->{'desktop::kind'} || ''; + if ($kind eq 'kde') { + if (!defined $vendorOSAttrs->{'desktop::kde'} + || $vendorOSAttrs->{'desktop::kde'} == 1) { + if (!$self->{distro}->isKDEInstalled()) { + push @problems, _tr( + "KDE is not installed in vendor-OS, so using it as desktop kind wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::kde'} == 0) { + push @problems, _tr( + "desktop::kde is 0, so using KDE as desktop kind is not allowed for this vendor-OS!" + ); + } + } + elsif ($kind eq 'gnome') { + if (!defined $vendorOSAttrs->{'desktop::gnome'} + || $vendorOSAttrs->{'desktop::gnome'} == 1) { + if (!$self->{distro}->isGNOMEInstalled()) { + push @problems, _tr( + "GNOME is not installed in vendor-OS, so using it as desktop kind wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::gnome'} == 0) { + push @problems, _tr( + "desktop::gnome is 0, so using GNOME as desktop kind is not allowed for this vendor-OS!" + ); + } + } + elsif ($kind eq 'xfce') { + if (!defined $vendorOSAttrs->{'desktop::xfce'} + || $vendorOSAttrs->{'desktop::xfce'} == 1) { + if (!$self->{distro}->isXFCEInstalled()) { + push @problems, _tr( + "XFCE is not installed in vendor-OS, so using it as desktop kind wouldn't work!" + ); + } + } + elsif ($vendorOSAttrs->{'desktop::xfce'} == 0) { + push @problems, _tr( + "desktop::xfce is 0, so using XFCE as desktop kind is not allowed for this vendor-OS!" + ); + } + } + + my @supportedThemes + = split ',', $vendorOSAttrs->{'desktop::supported_themes'} || ''; + my $theme = $stage3Attrs->{'desktop::theme'}; + if (defined $theme && !grep { $_ eq $theme } @supportedThemes) { + push @problems, _tr( + "desktop::theme '%s' does not refer to a supported theme!\nSupported themes are: %s", + $theme, $vendorOSAttrs->{'desktop::supported_themes'} || '' + ); + } + + return if !@problems; + + return \@problems; +} + +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'}; + $self->{openslxConfigPath} = $info->{'openslx-config-path'}; + $self->{attrs} = $info->{'plugin-attrs'}; + + # We are going to change some of the stage1 attributes during installation + # (basically we are filling the ones that are not defined). Since the result + # of these changes might change between invocations, we do not want to store + # the resulting values, but we want to store the original (undef). + # In order to do so, we copy all stage1 attributes directly into the + # object hash and change them there. + $self->{gdm} = $self->{attrs}->{'desktop::gdm'}; + $self->{kdm} = $self->{attrs}->{'desktop::kdm'}; + $self->{xdm} = $self->{attrs}->{'desktop::xdm'}; + $self->{gnome} = $self->{attrs}->{'desktop::gnome'}; + $self->{kde} = $self->{attrs}->{'desktop::kde'}; + $self->{xcfe} = $self->{attrs}->{'desktop::xfce'}; + $self->{supported_themes} = $self->{attrs}->{'desktop::supported_themes'}; + + $self->_installRequiredPackages(); + $self->_fillUnsetStage1Attrs(); + $self->_ensureSensibleStage3Attrs(); + + # start to actually do something - according to current stage1 attributes + if ($self->{gdm}) { + $self->_setupGDM(); + } + if ($self->{kdm}) { + $self->_setupKDM(); + } + if ($self->{xdm}) { + $self->_setupXDM(); + } + $self->_setupSupportedThemes(); + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +sub copyRequiredFilesIntoInitramfs +{ + my $self = shift; + my $targetPath = shift; + my $attrs = shift; + my $makeInitRamFSEngine = shift; + + my $desktopTheme = $attrs->{'desktop::theme'} || ''; + + vlog(1, _tr("desktop-plugin: desktop=%s", $desktopTheme)); + + return; +} + +sub _installRequiredPackages +{ + my $self = shift; + + my $engine = $self->{'os-plugin-engine'}; + + if ($self->{'gnome'} && !$self->{distro}->isGNOMEInstalled()) { + $self->{distro}->installGNOME(); + } + if ($self->{'gdm'} && !$self->{distro}->isGDMInstalled()) { + $self->{distro}->installGDM(); + } + if ($self->{'kde'} && !$self->{distro}->isKDEInstalled()) { + $self->{distro}->installKDE(); + } + if ($self->{'kdm'} && !$self->{distro}->isKDMInstalled()) { + $self->{distro}->installKDM(); + } + if ($self->{'xfce'} && !$self->{distro}->isXFCEInstalled()) { + $self->{distro}->installXFCE(); + } + if ($self->{'xdm'} && !$self->{distro}->isXDMInstalled()) { + $self->{distro}->installXDM(); + } + + return 1; +} + +sub _fillUnsetStage1Attrs +{ + my $self = shift; + + if (!defined $self->{'gnome'}) { + $self->{'gnome'} = $self->{distro}->isGNOMEInstalled(); + } + if (!defined $self->{'gdm'}) { + $self->{'gdm'} = $self->{distro}->isGDMInstalled(); + } + if (!defined $self->{'kde'}) { + $self->{'kde'} = $self->{distro}->isKDEInstalled(); + } + if (!defined $self->{'kdm'}) { + $self->{'kdm'} = $self->{distro}->isKDMInstalled(); + } + if (!defined $self->{'xfce'}) { + $self->{'xfce'} = $self->{distro}->isXFCEInstalled(); + } + if (!defined $self->{'xdm'}) { + $self->{'xdm'} = $self->{distro}->isXDMInstalled(); + } + if (!defined $self->{'supported_themes'}) { + $self->{attrs}->{'desktop::supported_themes'} + = $self->{'supported_themes'} + = join ",", $self->_getAvailableThemes(); + } + + return 1; +} + +sub _ensureSensibleStage3Attrs +{ + my $self = shift; + + # check if current desktop kind is enabled at all and select another + # one, if it isn't + my $kind = $self->{attrs}->{'desktop::kind'} || ''; + if (!$self->{$kind}) { + my @desktops = map { $self->{$_} ? $_ : () } qw( gnome kde xfce ); + if (!@desktops) { + die _tr( + "no desktop kind is possible, plugin 'desktop' wouldn't work!" + ); + } + vlog(0, _tr("selecting %s as desktop kind\n", $desktops[0])); + $self->{attrs}->{'desktop::kind'} = $desktops[0]; + } + + # check if current desktop manager is enabled at all and select another + # one, if it isn't + my $manager = $self->{attrs}->{'desktop::manager'} || ''; + if (!$self->{$manager}) { + my @managers = map { $self->{$_} ? $_ : () } qw( kdm gdm xdm ); + if (!@managers) { + die _tr( + "no desktop manager is possible, plugin 'desktop' wouldn't work!" + ); + } + vlog(0, _tr("selecting %s as desktop manager\n", $managers[0])); + $self->{attrs}->{'desktop::manager'} = $managers[0]; + } + + # check if current theme is supported at all and select another one, if it + # isn't + my $theme = $self->{attrs}->{'desktop::theme'} || ''; + my @supportedThemes = split ",", $self->{'supported_themes'} || ''; + if (!grep { $_ eq $theme } @supportedThemes) { + if (!@supportedThemes) { + vlog( 0, _tr("no themes are supported, using no theme!")); + $self->{attrs}->{'desktop::theme'} = undef; + } + else { + vlog(0, _tr("selecting %s as theme\n", $supportedThemes[0])); + $self->{attrs}->{'desktop::theme'} = $supportedThemes[0]; + } + } + + return 1; +} + +sub _setupGDM +{ + my $self = shift; + + my $repoPath = $self->{pluginRepositoryPath}; + mkpath([ + "$repoPath/gdm/workstation", + "$repoPath/gdm/kiosk", + "$repoPath/gdm/chooser", + ]); + + $self->_setupGDMScript(); + + my $configHash = $self->{distro}->GDMConfigHashForWorkstation(); + $self->_writeConfigHash($configHash, "$repoPath/gdm/workstation/gdm.conf"); + + $configHash = $self->{distro}->GDMConfigHashForKiosk(); + $self->_writeConfigHash($configHash, "$repoPath/gdm/kiosk/gdm.conf"); + + $configHash = $self->{distro}->GDMConfigHashForChooser(); + $self->_writeConfigHash($configHash, "$repoPath/gdm/chooser/gdm.conf"); + + return; +} + +sub _setupGDMScript +{ + my $self = shift; + + my $repoPath = $self->{pluginRepositoryPath}; + my $script = $self->{distro}->setupGDMScript($repoPath); + + spitFile("$repoPath/gdm/desktop.sh", $script); + + return; +} + +sub _setupKDM +{ + my $self = shift; + + my $repoPath = $self->{pluginRepositoryPath}; + mkpath([ + "$repoPath/kdm/workstation", + "$repoPath/kdm/kiosk", + "$repoPath/kdm/chooser", + ]); + + $self->_setupKDMScript(); + + my $configHash = $self->{distro}->KDMConfigHashForWorkstation(); + $self->_writeConfigHash($configHash, "$repoPath/kdm/workstation/kdmrc"); + + $configHash = $self->{distro}->KDMConfigHashForKiosk(); + $self->_writeConfigHash($configHash, "$repoPath/kdm/kiosk/kdmrc"); + + $configHash = $self->{distro}->KDMConfigHashForChooser(); + $self->_writeConfigHash($configHash, "$repoPath/kdm/chooser/kdmrc"); + + return; +} + +sub _setupKDMScript +{ + my $self = shift; + + my $repoPath = $self->{pluginRepositoryPath}; + my $script = $self->{distro}->setupKDMScript($repoPath); + + spitFile("$repoPath/kdm/desktop.sh", $script); + + return; +} + +sub _setupXDM +{ + my $self = shift; +} + +sub _writeConfigHash +{ + my $self = shift; + my $hash = shift || {}; + my $file = shift; + + my $content = ''; + for my $domain (sort keys %$hash) { + $content .= "[$domain]\n"; + for my $key (sort keys %{$hash->{$domain}}) { + my $value + = defined $hash->{$domain}->{$key} + ? $hash->{$domain}->{$key} + : ''; + $content .= "$key=$value\n"; + } + $content .= "\n"; + } + spitFile($file, $content); + + return; +} + +sub _setupSupportedThemes +{ + my $self = shift; + + my $supportedThemes = $self->{attrs}->{'desktop::supported_themes'} || ''; + my @supportedThemes = split m{\s*,\s*}, $supportedThemes; + return if !@supportedThemes; + + # Every theme is copied from the folder where it is found first, such that + # themes in the config folder will be preferred to a theme with the same + # name living in the base folder + my @themeBaseDirs = ( + "$self->{openslxConfigPath}/plugins/desktop/themes", + "$self->{openslxBasePath}/lib/plugins/desktop/themes", + ); + THEME: + for my $theme (@supportedThemes) { + THEME_DIR: + foreach my $themeBaseDir (@themeBaseDirs) { + my $gdmThemeDir = "$themeBaseDir/gdm/$theme"; + my $kdmThemeDir = "$themeBaseDir/kdm/$theme"; + next THEME_DIR if !-d $gdmThemeDir && !-d $kdmThemeDir; + # any of both dirs is enough + + # copy theme into plugin-repo folder + vlog(1, "installing theme '$theme'..."); + my $gdmThemeTargetPath = "$self->{pluginRepositoryPath}/themes/gdm"; + mkpath($gdmThemeTargetPath); + slxsystem( + "cp -a $gdmThemeDir $gdmThemeTargetPath/$theme 2>/dev/null" + ) == 0 + or die _tr('unable to copy GDM-theme %s (%s)', $theme, $!); + my $kdmThemeTargetPath = "$self->{pluginRepositoryPath}/themes/kdm"; + mkpath($kdmThemeTargetPath); + slxsystem( + "cp -a $kdmThemeDir $kdmThemeTargetPath/$theme 2>/dev/null" + ) == 0 + or die _tr('unable to copy KDM-theme %s (%s)', $theme, $!); + next THEME; + } + warn _tr('theme "%s" not found - skipped!', $theme); + } + + return; +} + +sub _getAvailableThemes +{ + my $self = shift; + + my %availableThemes; + + # return all themes found in any of these two folders + my @themeBaseDirs = ( + "$self->{openslxConfigPath}/plugins/desktop/themes", + "$self->{openslxBasePath}/lib/plugins/desktop/themes", + ); + for my $themeBaseDir (@themeBaseDirs) { + my @foundGDMThemes + = map { basename $_ } grep { -d $_ } glob("$themeBaseDir/gdm/*"); + @availableThemes{@foundGDMThemes} = (); + my @foundKDMThemes + = map { basename $_ } grep { -d $_ } glob("$themeBaseDir/kdm/*"); + @availableThemes{@foundKDMThemes} = (); + } + + vlog(1, _tr("available themes: %s", join ",", keys %availableThemes)); + + return keys %availableThemes; +} + +1; diff --git a/src/os-plugins/plugins/desktop/XX_desktop.sh b/src/os-plugins/plugins/desktop/XX_desktop.sh new file mode 100644 index 00000000..a8cc71fc --- /dev/null +++ b/src/os-plugins/plugins/desktop/XX_desktop.sh @@ -0,0 +1,33 @@ +# Copyright (c) 2007..2008 - RZ Uni Freiburg +# Copyright (c) 2008 - 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 +# +# stage3 part of 'desktop' plugin - the runlevel script +# +# script is included from init via the "." load function - thus it has all +# variables and functions available + +if [ -e /initramfs/plugin-conf/desktop.conf ]; then + . /initramfs/plugin-conf/desktop.conf + if [ $desktop_active -ne 0 ]; then + [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'desktop' os-plugin ..."; + + # problem which occurs if exporting was forgotten (quick fix code) + if [ -e /mnt/opt/openslx/plugin-repo/desktop/${desktop_manager}/desktop.sh ] + then . /mnt/opt/openslx/plugin-repo/desktop/${desktop_manager}/desktop.sh + else + error "This shouldn't fail - you might have forgotten to export \ +your system." fatal + fi + + [ $DEBUGLEVEL -gt 0 ] && echo "done with 'desktop' os-plugin ..."; + + fi +fi diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx-legacy b/src/os-plugins/plugins/desktop/themes/gdm/openslx-legacy new file mode 120000 index 00000000..d97839a5 --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/gdm/openslx-legacy @@ -0,0 +1 @@ +openslx \ No newline at end of file diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/GdmGreeterTheme.desktop b/src/os-plugins/plugins/desktop/themes/gdm/openslx/GdmGreeterTheme.desktop new file mode 100755 index 00000000..08e5efce --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/gdm/openslx/GdmGreeterTheme.desktop @@ -0,0 +1,8 @@ +[GdmGreeterTheme] +Encoding=UTF-8 +Greeter=theme.xml +Name=OpenSLX GDM theme +Description=GDM Port of Daemonic KDM theme for FreeBSD +Author=MJanc / KDM by aceph +Copyright=Creative Commons +Screenshot=screenshot.png \ No newline at end of file diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/color.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/color.png new file mode 100644 index 00000000..7a0feb03 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/color.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/environment.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/environment.png new file mode 100644 index 00000000..7ad6783a Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/environment.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector.png new file mode 100644 index 00000000..da016473 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector_inactive.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector_inactive.png new file mode 100644 index 00000000..bb2c8f69 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/language-selector_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/main-runner.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/main-runner.png new file mode 100644 index 00000000..dde10cc8 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/main-runner.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo-main.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo-main.png new file mode 100644 index 00000000..f98e6517 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo-main.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo.png new file mode 100644 index 00000000..8cfaaf94 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/openslx-logo.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions.png new file mode 100644 index 00000000..00d05f29 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions_inactive.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions_inactive.png new file mode 100644 index 00000000..86bbe642 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/sessions_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/system.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/system.png new file mode 100644 index 00000000..f7b9e71f Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/system.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/system_inactive.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/system_inactive.png new file mode 100644 index 00000000..c3e1719b Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/system_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/theme.xml b/src/os-plugins/plugins/desktop/themes/gdm/openslx/theme.xml new file mode 100644 index 00000000..46ef334e --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/gdm/openslx/theme.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/os-plugins/plugins/desktop/themes/gdm/openslx/welcome-time-shadowed.png b/src/os-plugins/plugins/desktop/themes/gdm/openslx/welcome-time-shadowed.png new file mode 100644 index 00000000..79e872c3 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/gdm/openslx/welcome-time-shadowed.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/GdmGreeterTheme.desktop b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/GdmGreeterTheme.desktop new file mode 100755 index 00000000..da63ec08 --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/GdmGreeterTheme.desktop @@ -0,0 +1,8 @@ +[GdmGreeterTheme] +Encoding=UTF-8 +Greeter=theme.xml +Name=OpenSLX KDM theme +Description=KDM Port of Daemonic KDM theme for FreeBSD +Author=MJanc / KDM by aceph +Copyright=Creative Commons +Screenshot=screenshot.png diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/KdmGreeterTheme.desktop b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/KdmGreeterTheme.desktop new file mode 100755 index 00000000..3cb9069d --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/KdmGreeterTheme.desktop @@ -0,0 +1,8 @@ +[KdmGreeterTheme] +Encoding=UTF-8 +Greeter=theme.xml +Name=OpenSLX KDM theme +Description=KDM Port of Daemonic KDM theme for FreeBSD +Author=MJanc / KDM by aceph +Copyright=Creative Commons +Screenshot=screenshot.png diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/color.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/color.png new file mode 100644 index 00000000..7a0feb03 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/color.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter.png new file mode 100644 index 00000000..b646e851 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter_inactive.png new file mode 100644 index 00000000..e12cfb8e Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/enter_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/environment.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/environment.png new file mode 100644 index 00000000..b9682822 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/environment.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/main-runner.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/main-runner.png new file mode 100644 index 00000000..5b3cf656 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/main-runner.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo-main.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo-main.png new file mode 100644 index 00000000..f98e6517 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo-main.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo.png new file mode 100644 index 00000000..8cfaaf94 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/openslx-logo.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions.png new file mode 100644 index 00000000..00d05f29 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions_inactive.png new file mode 100644 index 00000000..86bbe642 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/sessions_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system.png new file mode 100644 index 00000000..f7b9e71f Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system_inactive.png new file mode 100644 index 00000000..c3e1719b Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/system_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/theme.xml b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/theme.xml new file mode 100644 index 00000000..61ae6644 --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/theme.xml @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + OpenSLX Workstation (%h) + + + + + + + %c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Login failed! + Login failed! + Login fehlgeschlagen! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Session + Session + Sitzung + + + + + + + + + + + + + + + + + + + + System Menu + System Menu + System Menü + + + + + + + + diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/welcome-time-shadowed.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/welcome-time-shadowed.png new file mode 100644 index 00000000..79e872c3 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx-legacy/welcome-time-shadowed.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/KdmGreeterTheme.desktop b/src/os-plugins/plugins/desktop/themes/kdm/openslx/KdmGreeterTheme.desktop new file mode 100755 index 00000000..3cb9069d --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/kdm/openslx/KdmGreeterTheme.desktop @@ -0,0 +1,8 @@ +[KdmGreeterTheme] +Encoding=UTF-8 +Greeter=theme.xml +Name=OpenSLX KDM theme +Description=KDM Port of Daemonic KDM theme for FreeBSD +Author=MJanc / KDM by aceph +Copyright=Creative Commons +Screenshot=screenshot.png diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/color.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/color.png new file mode 100644 index 00000000..7a0feb03 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/color.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter.png new file mode 100644 index 00000000..b646e851 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter_inactive.png new file mode 100644 index 00000000..e12cfb8e Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/enter_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/environment.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/environment.png new file mode 100644 index 00000000..b9682822 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/environment.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/main-runner.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/main-runner.png new file mode 100644 index 00000000..dde10cc8 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/main-runner.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo-main.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo-main.png new file mode 100644 index 00000000..f98e6517 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo-main.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo.png new file mode 100644 index 00000000..8cfaaf94 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/openslx-logo.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions.png new file mode 100644 index 00000000..00d05f29 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions_inactive.png new file mode 100644 index 00000000..86bbe642 Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/sessions_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/system.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/system.png new file mode 100644 index 00000000..f7b9e71f Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/system.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/system_inactive.png b/src/os-plugins/plugins/desktop/themes/kdm/openslx/system_inactive.png new file mode 100644 index 00000000..c3e1719b Binary files /dev/null and b/src/os-plugins/plugins/desktop/themes/kdm/openslx/system_inactive.png differ diff --git a/src/os-plugins/plugins/desktop/themes/kdm/openslx/theme.xml b/src/os-plugins/plugins/desktop/themes/kdm/openslx/theme.xml new file mode 100644 index 00000000..d748c776 --- /dev/null +++ b/src/os-plugins/plugins/desktop/themes/kdm/openslx/theme.xml @@ -0,0 +1,232 @@ + + + + +