From fca33554db8cdc9d49d226a5d3cb5ffe050ce00f Mon Sep 17 00:00:00 2001
From: root <root@KanotixBox.(none)>
Date: Sun, 6 Mar 2011 03:00:54 +0100
Subject: added burg support

- isohybrid-bg2
- burg PPA
- burg kanotix theme
---
 auto/config                                        |   4 +-
 config/binary_burg/burg.cfg                        |  56 +++
 .../boot/burg/fonts/Helvetica-Bold-12.pf2          | Bin 0 -> 24797 bytes
 .../binary_local-includes/boot/burg/fonts/font.lst |   2 +
 .../boot/burg/fonts/unifont.pf2                    | Bin 0 -> 2968057 bytes
 .../boot/burg/themes/kanotix/orb.png               | Bin 0 -> 289 bytes
 .../boot/burg/themes/kanotix/progressbg.png        | Bin 0 -> 1059 bytes
 .../boot/burg/themes/kanotix/small_kanotix.png     | Bin 0 -> 1662 bytes
 .../boot/burg/themes/kanotix/small_memtest.png     | Bin 0 -> 947 bytes
 .../boot/burg/themes/kanotix/small_unknown.png     | Bin 0 -> 4517 bytes
 .../boot/burg/themes/kanotix/theme                 | 391 +++++++++++++++++++++
 .../boot/burg/themes/kanotix/wallpaper.png         | Bin 0 -> 97592 bytes
 config/chroot_local-includes/usr/bin/isohybrid-bg2 | 164 +++++++++
 config/lists/base                                  |   9 +-
 config/lists/kanotix-base                          |   9 +-
 config/repositories/burg                           |   3 +
 config/repositories/burg.gpg                       |  13 +
 17 files changed, 647 insertions(+), 4 deletions(-)
 create mode 100644 config/binary_burg/burg.cfg
 create mode 100644 config/binary_local-includes/boot/burg/fonts/Helvetica-Bold-12.pf2
 create mode 100644 config/binary_local-includes/boot/burg/fonts/font.lst
 create mode 100644 config/binary_local-includes/boot/burg/fonts/unifont.pf2
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/orb.png
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/progressbg.png
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/small_kanotix.png
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/small_memtest.png
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/small_unknown.png
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/theme
 create mode 100644 config/binary_local-includes/boot/burg/themes/kanotix/wallpaper.png
 create mode 100755 config/chroot_local-includes/usr/bin/isohybrid-bg2
 create mode 100644 config/repositories/burg
 create mode 100644 config/repositories/burg.gpg

diff --git a/auto/config b/auto/config
index eb71a59..fc650a5 100755
--- a/auto/config
+++ b/auto/config
@@ -10,6 +10,7 @@ MIRROR_BOOTSTRAP="$MIRROR_CHROOT"
 
 # preset kanotix defaults
 export LB_PACKAGES_LISTS="kanotix-master"
+export LB_BOOTLOADER="syslinux"
 export LB_SYSLINUX_MENU_LIVE_ENTRY="Kanotix"
 
 lb config noauto \
@@ -23,10 +24,9 @@ lb config noauto \
 	--bootappend-live 'utc=no timezone=Europe/Berlin locales=de keyboard-layouts=de keyboard-variant=nodeadkeys splash' \
 	--distribution squeeze \
         --archive-areas "main contrib non-free" \
-	--repositories "live.debian.net acritox excalibur hellfire lo wine-ppa" \
+	--repositories "live.debian.net acritox excalibur hellfire lo wine-ppa burg" \
 	--security true \
 	--checksums md5 \
-	--bootloader syslinux \
 	--syslinux-timeout 5 \
 	--syslinux-menu true \
 	--syslinux-splash config/binary_syslinux/splash.png \
diff --git a/config/binary_burg/burg.cfg b/config/binary_burg/burg.cfg
new file mode 100644
index 0000000..b98b71e
--- /dev/null
+++ b/config/binary_burg/burg.cfg
@@ -0,0 +1,56 @@
+set theme_name=kanotix
+set gfxmode=640x480
+set default="0"
+set timeout=5
+
+function lang_en {
+  set lang_opt='utc=yes locales=us'
+}
+function lang_de {
+  set lang_opt='utc=no timezone=Europe/Berlin locales=de keyboard-layouts=de keyboard-variant=nodeadkeys'
+}
+lang_de # default language
+
+function select_language {
+  menu_popup -t template_popup lang_menu
+}
+function select_resolution {
+  if menu_popup -t template_popup resolution_menu ; then
+    menu_reload_mode
+    save_env gfxmode
+  fi
+}
+if test -f ${prefix}/themes/${theme_name}/theme ; then
+  insmod coreui
+  menu_region.text
+  load_string '+lang_menu { -English { command="lang_en" }}'
+  load_string '+lang_menu { -German { command="lang_de" }}'
+  load_config ${prefix}/themes/${theme_name}/theme
+  insmod vbe
+  insmod png
+  insmod jpeg
+  set gfxfont="Unifont Regular 16"
+  menu_region.gfx
+  vmenu resolution_menu
+  controller.ext
+fi
+insmod gettext
+
+menuentry 'Start Kanotix' --class kanotix --group main {
+	echo	'Loading Linux ...'
+	linux	/live/vmlinuz-2.6.38-5-generic boot=live config ${lang_opt} quiet splash
+	echo	'Loading initial ramdisk ...'
+	initrd	/live/initrd.img-2.6.38-5-generic
+}
+
+menuentry 'Start Kanotix (failsafe)' --class kanotix --group main {
+	echo	'Loading Linux ...'
+	linux	/live/vmlinuz-2.6.38-5-generic boot=live config ${lang_opt} quiet splash noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal
+	echo	'Loading initial ramdisk ...'
+	initrd	/live/initrd.img-2.6.38-5-generic
+}
+
+menuentry 'Memtest86+' --class memtest --group main {
+	linux16 live/memtest
+}
+
diff --git a/config/binary_local-includes/boot/burg/fonts/Helvetica-Bold-12.pf2 b/config/binary_local-includes/boot/burg/fonts/Helvetica-Bold-12.pf2
new file mode 100644
index 0000000..cd5627a
Binary files /dev/null and b/config/binary_local-includes/boot/burg/fonts/Helvetica-Bold-12.pf2 differ
diff --git a/config/binary_local-includes/boot/burg/fonts/font.lst b/config/binary_local-includes/boot/burg/fonts/font.lst
new file mode 100644
index 0000000..a48b4f3
--- /dev/null
+++ b/config/binary_local-includes/boot/burg/fonts/font.lst
@@ -0,0 +1,2 @@
+Helvetica Bold 27: Helvetica-Bold-12.pf2
+Unifont Regular 16: unifont.pf2
diff --git a/config/binary_local-includes/boot/burg/fonts/unifont.pf2 b/config/binary_local-includes/boot/burg/fonts/unifont.pf2
new file mode 100644
index 0000000..ca7be67
Binary files /dev/null and b/config/binary_local-includes/boot/burg/fonts/unifont.pf2 differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/orb.png b/config/binary_local-includes/boot/burg/themes/kanotix/orb.png
new file mode 100644
index 0000000..2bf5a86
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/orb.png differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/progressbg.png b/config/binary_local-includes/boot/burg/themes/kanotix/progressbg.png
new file mode 100644
index 0000000..89e6e7c
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/progressbg.png differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/small_kanotix.png b/config/binary_local-includes/boot/burg/themes/kanotix/small_kanotix.png
new file mode 100644
index 0000000..06ca2f6
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/small_kanotix.png differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/small_memtest.png b/config/binary_local-includes/boot/burg/themes/kanotix/small_memtest.png
new file mode 100644
index 0000000..06eb2e6
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/small_memtest.png differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/small_unknown.png b/config/binary_local-includes/boot/burg/themes/kanotix/small_unknown.png
new file mode 100644
index 0000000..5138e2e
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/small_unknown.png differ
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/theme b/config/binary_local-includes/boot/burg/themes/kanotix/theme
new file mode 100644
index 0000000..e67ceae
--- /dev/null
+++ b/config/binary_local-includes/boot/burg/themes/kanotix/theme
@@ -0,0 +1,391 @@
+template_submenu {
+  panel {
+    attach_hcenter = 0
+    attach_vcenter = 0
+    class = frame
+  }
+}
+
+dialog_line {
+  panel {
+    parameters = "text=edit.text"
+    class = frame
+    width = 80%
+    attach_hcenter = 0
+    attach_vcenter = 0
+
+    edit {
+      lines = 1
+      max_lines = 1
+    }
+  }
+}
+
+dialog_edit {
+  panel {
+    parameters = "text=edit.text"
+    class = frame
+    width = 80%
+    attach_hcenter = 0
+    attach_vcenter = 0
+
+    edit {
+      lines = 10
+    }
+  }
+}
+
+dialog_message {
+  panel {
+    parameters = "text=text.text"
+    class = frame
+    margin_size = 1
+    margin_bottom = 0
+    space = 1
+    attach_hcenter = 0
+    attach_vcenter = 0
+    text {}
+    panel {
+      class = frame
+      command = true
+      halign = center
+      margin_left = 1
+      margin_right = 1
+      text { text = OK }
+    }
+  }
+}
+
+dialog_password {
+  panel {
+    parameters = "username=__user__.text:password=__pass__.text"
+    class = frame
+    margin_size = 1
+    margin_bottom = 0
+    attach_hcenter = 0
+    attach_vcenter = 0
+
+    panel {
+      direction = left_to_right
+      space = 1
+      text {
+        extend = 1
+        valign = center
+        text = Username
+      }
+      panel {
+        class = frame
+        margin_left = 1
+        margin_right = 1
+        edit {
+          id = __user__
+          max_lines = 1
+        }
+      }
+    }
+
+    panel {
+      direction = left_to_right
+      space = 1
+      text {
+        extend = 1
+        valign = center
+        text = Password
+      }
+      panel {
+        class = frame
+        margin_left = 1
+        margin_right = 1
+        password {
+          id = __pass__
+        }
+      }
+    }
+
+    panel {
+      class = frame
+      command = true
+      halign = center
+      margin_left = 1
+      margin_right = 1
+      text {
+        text = OK
+      }
+    }
+  }
+}
+
+term_window {
+  panel {
+    class = frame
+    width = 100%
+    height = 100%
+    term {
+      width=100%
+      height=100%
+    }
+  }
+}
+
+two_term {
+  panel {
+    width = 100%
+    height = 100%
+    direction = left_to_right
+
+    panel {
+      class = frame
+      extend = 1
+
+      term {
+        width=100%
+        height=100%
+      }
+    }
+
+    panel {
+      class = frame
+      extend = 1
+
+      term {
+        width=100%
+        height=100%
+      }
+    }
+  }
+}
+
+about {
+  panel {
+    class = frame
+    margin_size = 1
+    margin_bottom = 0
+    space = 1
+    attach_hcenter = 0
+    attach_vcenter = 0
+    text { text = "This is BURG loader" }
+    panel {
+      class = frame
+      command = true
+      halign = center
+      margin_left = 1
+      margin_right = 1
+      text { text = OK }
+    }
+  }
+}
+
+help {
+  panel {
+    class = frame
+    attach_hcenter = 0
+    attach_vcenter = 0
+    margin_left = 1
+    margin_right = 1
+    text { text = "F1/h - Help" }
+    text { text = "F2/t - Change language" }
+    text { text = "F3/r - Change resolution" }
+    text { text = "F5/ctrl-x - Finish edit" }
+    text { text = "F6 - Next window" }
+    text { text = "F7 - Show folded items" }
+    text { text = "F8 - Toggle between text and graphic mode" }
+    text { text = "F9 - Shutdown" }
+    text { text = "F10 - Reboot" }
+    text { text = "f - Toggle between folded and unfolded mode" }
+    text { text = "c - Open terminal" }
+    text { text = "2 - Open two terminals" }
+    text { text = "e - Edit current command" }
+    text { text = "q - Quit graphic mode" }
+    text { text = "i - Show theme information" }
+    text { text = "n - Next item with the same class" }
+    text { text = "w - Next windows item" }
+    text { text = "u - Next ubuntu item" }
+    text { text = "ESC - Exit from window or menu" }
+    panel {
+      class = frame
+      command = true
+      halign = center
+      margin_left = 1
+      margin_right = 1
+      text { text = OK }
+    }
+  }
+}
+
+onkey {
+  e = "*menu_edit dialog_edit text=command"
+  c = "*menu_popup term_window"
+  2 = "*menu_popup two_term"
+  f1 = "menu_popup help"
+  h = "menu_popup help"
+  f2 = "select_language"
+  t = "select_language"
+  f3 = "select_resolution"
+  r = "select_resolution"
+  i = "menu_popup about"
+  f = "toggle_fold"
+  n = "ui_next_class"
+  w = "ui_next_class windows"
+  u = "ui_next_class ubuntu"
+  q = "ui_quit"
+  f6 = ui_next_anchor
+  f7 = "menu_popup -r :group"
+  f8 = menu_toggle_mode
+  f9 = halt
+  f10 = reboot
+}
+
+mapkey {
+  f5 = ctrl-x
+}
+
+screen {
+  background = "$$/wallpaper.png,minfit,#000000/light-gray/black"
+
+  panel {
+    width = 100%
+    height = 45%/3
+  }
+
+  panel {
+    id = __menu__
+    popup = abs
+    extend = 1
+    halign = center
+    valign = top
+    max_items = 8
+  }
+
+  circular_progress {
+    id = __timeout__
+    background="$$/progressbg.png"
+    tick="$$/orb.png"
+    attach_left = 6%
+    valign = center
+    start_angle = 90
+  }
+
+   panel {
+    halign = center
+    margin_size = 6/0
+    direction = left_to_right
+    space = 3
+
+    panel {
+      direction = left_to_right
+      space = 1
+
+      text {
+        text = "F1"
+        class = hotkey_title
+      }
+
+      text {
+        text = "Help"
+        class = hotkey_name
+      }
+    }
+
+    panel {
+      direction = left_to_right
+      space = 1
+
+      text {
+        text = "F2"
+        class = hotkey_title
+      }
+
+      text {
+        text = "Change language"
+        class = hotkey_name
+      }
+    }
+
+    panel {
+      direction = left_to_right
+      space = 1
+
+      text {
+        text = "F3"
+        class = hotkey_title
+      }
+
+      text {
+        text = "Change resolution"
+        class = hotkey_name
+      }
+    }
+  }
+}
+
+template_menuitem {
+  panel {
+    parameters = "class=image.class:title=text.text"
+    direction = left_to_right
+    margin_size = 3/0
+    space = 1
+    image {}
+    text {
+      valign = center
+      font = "Helvetica Bold 27"
+    }
+  }
+}
+
+class {
+  frame {
+    top_left = ",,#B08458/brown/black,#0x250F:,,#FFFFFF/light-gray/black,#0x2554"
+    top = ",tiling,#B08458/brown/black,#0x2501:,,#FFFFFF/light-gray/black,#0x2550"
+    top_right = ",,#B08458/brown/black,#0x2513:,,#FFFFFF/light-gray/black,#0x2557"
+    left = ",tiling,#B08458/brown/black,#0x2503:,,#FFFFFF/light-gray/black,#0x2551"
+    right = ",tiling,#B08458/brown/black,#0x2503:,,#FFFFFF/light-gray/black,#0x2551"
+    bottom_left = ",,#B08458/brown/black,#0x2517:,,#FFFFFF/light-gray/black,#0x255A"
+    bottom = ",tiling,#B08458/brown/black,#0x2501:,,#FFFFFF/light-gray/black,#0x2550"
+    bottom_right = ",tiling,#B08458/brown/black,#0x251B:,,#FFFFFF/light-gray/black,#0x255D"
+  }
+
+  hotkey_title {
+    color = "#ffbb00/blue:dark-gray/blue"
+    font = "Helvetica Bold 27"
+  }
+
+  hotkey_name {
+    color = "#FFFFFF/light-gray"
+    font = "Helvetica Bold 27"
+  }
+
+  text {
+    color = "light-grey/black:#FFFFFF/light-gray/black"
+  }
+
+  term {
+    color = "light-grey/black:#FFFFFF/light-gray/black"
+  }
+
+  edit {
+    color = "light-grey/black:#FFFFFF/light-gray/black"
+  }
+
+  password {
+    color = "light-grey/black:#FFFFFF/light-gray/black"
+  }
+}
+
+menu {
+
+  Shutdown {
+    command = "halt"
+  }
+
+  Restart {
+    command = "reboot"
+  }
+}
+
++class
+{
+  -kanotix { image = "$$/small_kanotix.png" }
+  -memtest { image = "$$/small_memtest.png" }
+  -image { image = "$$/small_unknown.png" }
+}
+
diff --git a/config/binary_local-includes/boot/burg/themes/kanotix/wallpaper.png b/config/binary_local-includes/boot/burg/themes/kanotix/wallpaper.png
new file mode 100644
index 0000000..8584c17
Binary files /dev/null and b/config/binary_local-includes/boot/burg/themes/kanotix/wallpaper.png differ
diff --git a/config/chroot_local-includes/usr/bin/isohybrid-bg2 b/config/chroot_local-includes/usr/bin/isohybrid-bg2
new file mode 100755
index 0000000..79eb28c
--- /dev/null
+++ b/config/chroot_local-includes/usr/bin/isohybrid-bg2
@@ -0,0 +1,164 @@
+#!/usr/bin/perl
+# Post-process an ISO 9660 image generated with mkisofs/genisoimage
+# to allow "hybrid booting" as a CD-ROM or as a hard disk.
+#
+# This is isohybrid-bg2 - written by Andreas Loibl <andreas@andreas-loibl.de>
+#
+# It works for ISO images with BURG or GRUB2. For ISO images with
+# syslinux/isolinux use isohybrid (written by H. Peter Anvin)
+#
+# isohybrid-bg2 is based on isohybrid:
+## -----------------------------------------------------------------------
+##
+##   Copyright 2002-2008 H. Peter Anvin - All Rights Reserved
+##
+##   This program is free software; you can redistribute it and/or modify
+##   it under the terms of the GNU General Public License as published by
+##   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
+##   Boston MA 02111-1307, USA; either version 2 of the License, or
+##   (at your option) any later version; incorporated herein by reference.
+##
+## -----------------------------------------------------------------------
+
+# 512byte boot.img
+$mbr='eb639000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800100000000000000fffaeb07f6c2807502b280ea747c000031c08ed88ed0bc0020fba0647c3cff740288c252be807de81c01be057cf6c2807448b441bbaa55cd135a52723d81fb55aa753783e101743231c0894404408844ff894402c7041000668b1e5c7c66895c08668b1e607c66895c0cc744060070b442cd137205bb0070eb76b408cd13730df6c2800f84d800be8b7de98200660fb6c68864ff40668944040fb6d1c1e20288e888f4408944080fb6c2c0e80266890466a1607c6609c0754e66a15c7c6631d266f73488d131d266f774043b44087d37fec188c530c0c1e80208c188d05a88c6bb00708ec331dbb80102cd13721e8cc3601eb900018edb31f6bf00808ec6fcf3a51f61ff265a7cbe867deb03be957de83400be9a7de82e00cd18ebfe47525542200047656f6d0048617264204469736b005265616400204572726f720d0a00bb0100b40ecd10ac3c0075f4c3000000000000000000000000000024120f0900bebd7d31c0cd13468a0c80f900750fbeda7de8d2ffeb9c466c6f70707900bb0070b80102b500b600cd1372d7b601b54fe9fbfe000000000000000055aa';
+
+($file) = @ARGV;
+open(FILE, "+< $file\0") or die "$0: cannot open $file: $!\n";
+binmode FILE;
+
+# search pattern to find location of boot.isohybrid on ISO image
+$pattern="ACRITOX!"x64;
+$p=0;
+while($p++ < 0xffff)
+{
+	seek(FILE, $p*512, SEEK_SET) or die "$0: $file: $!\n";
+	read(FILE, $sector, 512) == 512 or die "$0: $file: read error\n";
+	if($sector eq $pattern)
+	{
+		seek(FILE, 0, SEEK_SET) or die "$0: $file: $!\n";
+		print FILE pack('H*',$mbr);
+		$boot_offset = hex(substr($mbr,2,2));
+		seek(FILE, $boot_offset - 0x7, SEEK_SET) or die "$0: $file: $!\n";
+		print FILE pack("V", $p+1);
+		seek(FILE, $p*512 + 0x3f4, SEEK_SET) or die "$0: $file: $!\n";
+		print FILE pack("V", $p+2);
+		last;
+	}
+}
+if($p>0xffff) {
+	die "$0: error: $file does not contain boot.isohybrid in its first 32MB!\n";
+}
+
+# Use this fake geometry (zipdrive-style...)
+$h = 64; $s = 32;
+
+sub get_random() {
+    # Get a 32-bit random number
+    my $rfd, $rnd;
+    my $rid;
+
+    if (open($rfd, "< /dev/urandom\0") && read($rfd, $rnd, 4) == 4) {
+	$rid = unpack("V", $rnd);
+    }
+
+    close($rfd) if (defined($rfd));
+    return $rid if (defined($rid));
+
+    # This sucks but is better than nothing...
+    return ($$+time()) & 0xffffffff;
+}
+
+#
+# First, actually figure out where mkisofs hid isolinux.bin
+#
+seek(FILE, 17*2048, SEEK_SET) or die "$0: $file: $!\n";
+read(FILE, $boot_record, 2048) == 2048 or die "$0: $file: read error\n";
+($br_sign, $br_cat_offset) = unpack("a71V", $boot_record);
+if ($br_sign ne ("\0CD001\1EL TORITO SPECIFICATION" . ("\0" x 41))) {
+    die "$0: $file: no boot record found\n";
+}
+seek(FILE, $br_cat_offset*2048, SEEK_SET) or die "$0: $file: $!\n";
+read(FILE, $boot_cat, 2048) == 2048 or die "$0: $file: read error\n";
+
+# We must have a Validation Entry followed by a Default Entry...
+# no fanciness allowed for the Hybrid mode [XXX: might relax this later]
+@ve = unpack("v16", $boot_cat);
+$cs = 0;
+for ($i = 0; $i < 16; $i++) {
+    $cs += $ve[$i];
+}
+if ($ve[0] != 0x0001 || $ve[15] != 0xaa55 || $cs & 0xffff) {
+    die "$0: $file: invalid boot catalog\n";
+}
+($de_boot, $de_media, $de_seg, $de_sys, $de_mbz1, $de_count,
+ $de_lba, $de_mbz2) = unpack("CCvCCvVv", substr($boot_cat, 32, 32));
+if ($de_boot != 0x88 || $de_media != 0 ||
+    ($de_segment != 0 && $de_segment != 0x7c0) || $de_count != 4) {
+    die "$0: $file: unexpected boot catalog parameters\n";
+}
+# Get the total size of the image
+(@imgstat = stat(FILE)) or die "$0: $file: $!\n";
+$imgsize = $imgstat[7];
+if (!$imgsize) {
+    die "$0: $file: cannot determine length of file\n";
+}
+# Target image size: round up to a multiple of $h*$s*512
+$cylsize = $h*$s*512;
+$frac = $imgsize % $cylsize;
+$padding = ($frac > 0) ? $cylsize - $frac : 0;
+$imgsize += $padding;
+$c = $imgsize/$cylsize;
+if ($c > 1024) {
+    print STDERR "Warning: more than 1024 cylinders ($c).\n";
+    print STDERR "Not all BIOSes will be able to boot this device.\n";
+    $cc = 1024;
+} else {
+    $cc = $c;
+}
+
+
+$mbr = pack("VV", $de_lba*4, 0);
+if (defined($id)) {
+    $id = to_int($id);
+} else {
+    $id = get_random();
+}
+$mbr .= pack("V", $id);		# Offset 440: MBR ID
+$mbr .= "\0\0";			# Offset 446: actual partition table
+
+# Print partition table
+$psize   = $c*$h*$s;
+$bhead   = 0;
+$bsect   = 1;
+$bcyl    = 0;
+$ehead   = $h-1;
+$esect   = $s + ((($cc-1) & 0x300) >> 2);
+$ecyl    = ($cc-1) & 0xff;
+$fstype  = 0x83;		# Linux (any better ideas?)
+$pentry  = 1;			# First partition slot
+
+for ( $i = 1 ; $i <= 4 ; $i++ ) {
+    if ( $i == $pentry ) {
+	$mbr .= pack("CCCCCCCCVV", 0x80, $bhead, $bsect, $bcyl, $fstype,
+		     $ehead, $esect, $ecyl, 0, $psize);
+    } else {
+	$mbr .= "\0" x 16;
+    }
+}
+$mbr .= "\x55\xaa";
+
+# Print the partition table
+seek(FILE, 432, SEEK_SET) or die "$0: $file: $!\n";
+print FILE $mbr;
+
+# Pad the image to a fake cylinder boundary
+seek(FILE, $imgstat[7], SEEK_SET) or die "$0: $file: $!\n";
+if ($padding) {
+    print FILE "\0" x $padding;
+}
+
+# Done...
+close(FILE);
+
+exit 0;
diff --git a/config/lists/base b/config/lists/base
index ede4a8d..6589486 100644
--- a/config/lists/base
+++ b/config/lists/base
@@ -14,6 +14,14 @@
 #include <kanotix-base>
 #include <kanotix-extra>
 
+# bootloader
+#if BOOTLOADER burg
+burg-pc
+#endif
+#if BOOTLOADER grub grub2 syslinux
+grub-pc
+#endif
+
 # java, plugins
 sun-java6-plugin
 
@@ -72,7 +80,6 @@ sux
 htop
 time
 bash-completion
-grub-pc
 di
 cfv
 whois
diff --git a/config/lists/kanotix-base b/config/lists/kanotix-base
index d74f84b..36f3d25 100644
--- a/config/lists/kanotix-base
+++ b/config/lists/kanotix-base
@@ -4,7 +4,6 @@ user-profile-kanotix
 kanotix-plasma-script
 badge-icon-kanotix
 
-grub2-splashimage-kanotix-logo
 kdm-theme-kanotix-starrise
 kmenu-icon-kanotix
 ksplash-theme-kanotix-starrise
@@ -13,3 +12,11 @@ plymouth-theme-kanotix-logo
 kanotix-menu
 
 acritoxinstaller-kanotix
+
+#if BOOTLOADER burg
+burg-themes
+#endif
+#if BOOTLOADER grub grub2 syslinux
+grub2-splashimage-kanotix-logo
+#endif
+
diff --git a/config/repositories/burg b/config/repositories/burg
new file mode 100644
index 0000000..1780fab
--- /dev/null
+++ b/config/repositories/burg
@@ -0,0 +1,3 @@
+# PPA for Burg Bootloader
+deb http://ppa.launchpad.net/bean123ch/burg/ubuntu lucid main
+deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu lucid main
diff --git a/config/repositories/burg.gpg b/config/repositories/burg.gpg
new file mode 100644
index 0000000..9c41328
--- /dev/null
+++ b/config/repositories/burg.gpg
@@ -0,0 +1,13 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+mI0ESvnLcgEEAM30KkS4KpnPsraBcgds2W0RSXw61nA4c+JloNSYPsMdflt6Ye0+
+2gF7kWulgKpUVIegGdG12zcN+PbAsmPDAd2yX1zsGyq3LFyZR0mx4SwNHab3esFk
+Gsh1e+oGijPG9HPWgMgx1uitcj8/2As98ACsIcNsneNocyx5Fhrgz+yPABEBAAG0
+DkxhdW5jaHBhZCBidXJniLYEEwECACAFAkr5y3ICGwMGCwkIBwMCBBUCCAMEFgID
+AQIeAQIXgAAKCRBVcI8e4GgDxX/NA/48+7xpVb7AnNp798+OGZjkEVHF4IVxBmnj
+HqZgb7jOy5llHCCZi530yks9wFg7DzdVYVm7zFNHvCoCSCjK0IWmoJ3NGrTcgzs3
+GqY9FQMBElyzkE98g2IyJl6r7+jGV1WoiXhI5p4P9rRLG9/gPXL0VSRGADPYhq44
+p1JGFDa5gQ==
+=BJxF
+-----END PGP PUBLIC KEY BLOCK-----
-- 
cgit v1.0