def get_base_media_packages(): """Return a list of binary base media packages. These packages can be assumed to be available, and should not be packed onto CDs.""" log = picax.log.get_logger() base_media_pkgs = [] conf = picax.config.get_config() if len(conf["base_media"]) > 0: log.info("Reading base media packages") for base_media_path in conf["base_media"]: base_media_dists_path = base_media_path + "/dists" if not os.path.isdir(base_media_dists_path) or \ os.path.islink(base_media_dists_path): continue for dist in os.listdir(base_media_dists_path): for comp in os.listdir("%s/dists/%s" % (base_media_path, dist)): try: factory = picax.package.get_package_factory( dist, comp, base_path=base_media_path) except IOError: continue base_media_pkgs.extend([pkg for pkg in factory]) return base_media_pkgs
def _install_common(cd_path): log.info("Installing debian-installer common files") inst_conf = conf["installer_options"] component = conf["repository_list"][0][1] for isodir in (".disk",): if not os.path.isdir(cd_path + "/" + isodir): os.mkdir(cd_path + "/" + isodir) compfile = open(cd_path + "/.disk/base_components", "w") compfile.write(component + "\n") compfile.close() compfile = open(cd_path + "/.disk/base_installable", "w") compfile.close() for (key, fn) in (("base_include_list", "base_include"), ("base_exclude_list", "base_exclude"), ("udeb_include_list", "udeb_include"), ("udeb_include_list", "udeb_include")): if inst_conf.has_key(key): diskfile = open("%s/.disk/%s" % (cd_path, fn), "w") diskfile.write('\n'.join(inst_conf[key].split(' ')) + "\n") diskfile.close() if inst_conf.has_key("preseed_file"): _download_preseed(inst_conf["preseed_file"], cd_path)
def get_base_media_packages(): """Return a list of binary base media packages. These packages can be assumed to be available, and should not be packed onto CDs.""" log = picax.log.get_logger() base_media_pkgs = [] conf = picax.config.get_config() if len(conf["base_media"]) > 0: log.info("Reading base media packages") for base_media_path in conf["base_media"]: base_media_dists_path = base_media_path + "/dists" if not os.path.isdir(base_media_dists_path) or \ os.path.islink(base_media_dists_path): continue for dist in os.listdir(base_media_dists_path): for comp in os.listdir("%s/dists/%s" % (base_media_path, dist)): try: factory = picax.package.get_package_factory( dist, comp, base_path = base_media_path) except IOError: continue base_media_pkgs.extend([pkg for pkg in factory]) return base_media_pkgs
def _install_common(cd_path): log.info("Installing debian-installer common files") inst_conf = conf["installer_options"] component = conf["repository_list"][0][1] for isodir in (".disk", ): if not os.path.isdir(cd_path + "/" + isodir): os.mkdir(cd_path + "/" + isodir) compfile = open(cd_path + "/.disk/base_components", "w") compfile.write(component + "\n") compfile.close() compfile = open(cd_path + "/.disk/base_installable", "w") compfile.close() for (key, fn) in (("base_include_list", "base_include"), ("base_exclude_list", "base_exclude"), ("udeb_include_list", "udeb_include"), ("udeb_include_list", "udeb_include")): if inst_conf.has_key(key): diskfile = open("%s/.disk/%s" % (cd_path, fn), "w") diskfile.write('\n'.join(inst_conf[key].split(' ')) + "\n") diskfile.close() if inst_conf.has_key("preseed_file"): _download_preseed(inst_conf["preseed_file"], cd_path)
def _install_i386(cd_path): boot_image_list = ["initrd.gz", "vmlinuz", "debian-cd_info.tar.gz"] inst_conf = conf["installer_options"] base_url = inst_conf["base-url"] log.info("Installing debian-installer for %s" % (conf["arch"],)) for isodir in ("isolinux", "install"): if not os.path.isdir(cd_path + "/" + isodir): os.mkdir(cd_path + "/" + isodir) dl_path = conf["temp_dir"] + "/di-download" os.mkdir(dl_path) image_path = dl_path + "/" + inst_conf["cdrom_path"] try: _download_di_base("%s/%s" % (base_url, inst_conf["cdrom_path"]), image_path, boot_image_list) isolinux_bin = "/usr/lib/pdk/isolinux.bin" if not os.path.exists(isolinux_bin): raise RuntimeError, "you must have isolinux installed" shutil.copyfile(isolinux_bin, cd_path + "/isolinux/isolinux.bin") shutil.copyfile(image_path + "/vmlinuz", cd_path + "/install/vmlinuz") shutil.copyfile(image_path + "/initrd.gz", cd_path + "/install/initrd.gz") isohelp = tarfile.open(image_path + "/debian-cd_info.tar.gz") for tarmember in isohelp.getmembers(): if not os.path.exists("%s/isolinux/%s" % (cd_path, tarmember.name)): isohelp.extract(tarmember, cd_path + "/isolinux") isohelp.close() extra_append = '' timeout = '0' if inst_conf.has_key("preseed_file"): extra_append += 'preseed/file=/cdrom/.disk/preseed ' if inst_conf.has_key("debconf_priority"): extra_append += 'debconf/priority=%s ' % inst_conf["debconf_priority"] if inst_conf.has_key("suite"): extra_append += 'mirror/suite=%s ' % inst_conf["suite"] extra_append += 'cdrom/codename=%s ' % inst_conf["suite"] if inst_conf.has_key("locale"): extra_append += 'debian-installer/locale=%s ' % inst_conf["locale"] if inst_conf.has_key("boot-options"): extra_append += inst_conf["boot-options"] if inst_conf.has_key("keymap"): extra_append += 'console-keymaps-at/keymap=%s ' % inst_conf["keymap"] if inst_conf.has_key("timeout"): timeout = inst_conf["timeout"] isocfg = open(cd_path + "/isolinux/isolinux.cfg", "w") isocfg.write(""" DISPLAY boot.txt F1 f1.txt F2 f2.txt F3 f3.txt F4 f4.txt F5 f5.txt F6 f6.txt F7 f7.txt F8 f8.txt F9 f9.txt F0 f10.txt DEFAULT install LABEL install kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL linux kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL expert kernel /install/vmlinuz append DEBCONF_PRIORITY=low vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL rescue kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw rescue/enable=true -- PROMPT 1 TIMEOUT %s """ % (extra_append, extra_append, extra_append, timeout)) isocfg.close() finally: shutil.rmtree(dl_path)
def _install_i386(cd_path): boot_image_list = ["initrd.gz", "vmlinuz", "debian-cd_info.tar.gz"] inst_conf = conf["installer_options"] base_url = inst_conf["base-url"] log.info("Installing debian-installer for %s" % (conf["arch"], )) for isodir in ("isolinux", "install"): if not os.path.isdir(cd_path + "/" + isodir): os.mkdir(cd_path + "/" + isodir) dl_path = conf["temp_dir"] + "/di-download" os.mkdir(dl_path) image_path = dl_path + "/" + inst_conf["cdrom_path"] try: _download_di_base("%s/%s" % (base_url, inst_conf["cdrom_path"]), image_path, boot_image_list) isolinux_bin = "/usr/lib/pdk/isolinux.bin" if not os.path.exists(isolinux_bin): raise RuntimeError, "you must have isolinux installed" shutil.copyfile(isolinux_bin, cd_path + "/isolinux/isolinux.bin") shutil.copyfile(image_path + "/vmlinuz", cd_path + "/install/vmlinuz") shutil.copyfile(image_path + "/initrd.gz", cd_path + "/install/initrd.gz") isohelp = tarfile.open(image_path + "/debian-cd_info.tar.gz") for tarmember in isohelp.getmembers(): if not os.path.exists("%s/isolinux/%s" % (cd_path, tarmember.name)): isohelp.extract(tarmember, cd_path + "/isolinux") isohelp.close() extra_append = '' timeout = '0' if inst_conf.has_key("preseed_file"): extra_append += 'preseed/file=/cdrom/.disk/preseed ' if inst_conf.has_key("debconf_priority"): extra_append += 'debconf/priority=%s ' % inst_conf[ "debconf_priority"] if inst_conf.has_key("suite"): extra_append += 'mirror/suite=%s ' % inst_conf["suite"] extra_append += 'cdrom/codename=%s ' % inst_conf["suite"] if inst_conf.has_key("locale"): extra_append += 'debian-installer/locale=%s ' % inst_conf["locale"] if inst_conf.has_key("boot-options"): extra_append += inst_conf["boot-options"] if inst_conf.has_key("keymap"): extra_append += 'console-keymaps-at/keymap=%s ' % inst_conf[ "keymap"] if inst_conf.has_key("timeout"): timeout = inst_conf["timeout"] isocfg = open(cd_path + "/isolinux/isolinux.cfg", "w") isocfg.write(""" DISPLAY boot.txt F1 f1.txt F2 f2.txt F3 f3.txt F4 f4.txt F5 f5.txt F6 f6.txt F7 f7.txt F8 f8.txt F9 f9.txt F0 f10.txt DEFAULT install LABEL install kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL linux kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL expert kernel /install/vmlinuz append DEBCONF_PRIORITY=low vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw %s -- LABEL rescue kernel /install/vmlinuz append vga=normal initrd=/install/initrd.gz ramdisk_size=16000 root=/dev/ram rw rescue/enable=true -- PROMPT 1 TIMEOUT %s """ % (extra_append, extra_append, extra_append, timeout)) isocfg.close() finally: shutil.rmtree(dl_path)