lorax/pseudo/sparc.pseudo.py

88 lines
2.4 KiB
Python

# sparc.pseudo.py
##### constants #####
ANABOOTDIR = "usr/share/anaconda/boot"
IMAGESDIR = "images"
SPARCDIR = "boot"
ISOPATHDIR = "isopath"
MKISOFS = "mkisofs"
IMPLANTISOMD5 = "implantisomd5"
##### main() #####
""" kernellist, installroot, outputroot, product, version, treeinfo, bootiso
"""
# create directories
makedirs(joinpaths(outputroot, IMAGESDIR))
makedirs(joinpaths(outputroot, SPARCDIR))
# copy silo.conf
siloconf = copy(joinpaths(installroot, ANABOOTDIR, "silo.conf"),
joinpaths(outputroot, SPARCDIR))
# copy boot.msg
bootmsg = copy(joinpaths(installroot, ANABOOTDIR, "boot.msg"),
joinpaths(outputroot, SPARCDIR))
replace(bootmsg, "%PRODUCT%", product)
replace(bootmsg, "%VERSION%", version)
# copy *.b to sparc dir
copy(joinpaths(installroot, ANABOOTDIR, "*.b"),
joinpaths(outputroot, SPARCDIR))
# create images
for kernel in kernellist:
# copy kernel
kernel.fname = "vmlinuz"
kernel.fpath = copy(kernel.fpath,
joinpaths(outputroot, SPARCDIR, kernel.fname))
# create and copy initrd
initrd_fname = "initrd.img"
initrd_fpath = copy(create_initrd(kernel),
joinpaths(outputroot, SPARCDIR, initrd_fname))
# add kernel and initrd to .treeinfo
with open(treeinfo, "a") as f:
f.write("[images-%s]\n" % kernel.arch)
f.write("kernel = %s\n" % joinpaths(SPARCDIR, kernel.fname))
f.write("initrd = %s\n" % joinpaths(SPARCDIR, initrd_fname))
if (bootiso):
# create isopath dir
isopathdir = joinpaths(outputroot, ISOPATHDIR)
makedirs(isopathdir)
# copy sparc dir to isopath dir
copytree(joinpaths(outputroot, SPARCDIR), isopathdir)
# create boot.iso
bootiso_fpath = joinpaths(outputroot, IMAGESDIR, bootiso)
# run mkisofs (XXX what's with the "Fedora" exclude?)
rc = exec([MKISOFS, "-R", "-J", "-T",
"-G", "/%s" % joinpaths(SPARCDIR, "isofs.b"),
"-B", "...",
"-s", "/%s" % joinpaths(SPARCDIR, "silo.conf"),
"-r", "-V", '"PBOOT"', "-A", '"%s %s"' % (product, version),
"-x", "Fedora", "-x", "repodata",
"-sparc-label", '"%s %s Boot Disc"' % (product, version),
"-o", bootiso_fpath, "-graft-points",
"boot=%s" % joinpaths(outputroot, SPARCDIR)])
# run implantisomd5
rc = exec([IMPLANTISOMD5, bootiso_fpath])
# remove isopath dir
remove(isopathdir)