示例#1
0
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
示例#2
0
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)    
示例#3
0
文件: package.py 项目: lucciano/pdk
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
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)