Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Ubuntu Education (http://www.linux-archive.org/ubuntu-education/)
-   -   Add .treeinfo to boot.iso (http://www.linux-archive.org/ubuntu-education/632505-add-treeinfo-boot-iso.html)

"Brian C. Lane" 02-13-2012 07:07 PM

Add .treeinfo to boot.iso
 
From: "Brian C. Lane" <bcl@redhat.com>

Adds writetreeinfo DEST command to template parser and uses it in
the x86, ppc and sparc templates to write .treeinfo to the boot.iso
to make it easier to find the stage2 root filesystem image.
---
share/ppc.tmpl | 7 ++++++-
share/sparc.tmpl | 8 +++++++-
share/x86.tmpl | 8 +++++++-
src/pylorax/__init__.py | 2 +-
src/pylorax/ltmpl.py | 14 ++++++++++++++
5 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/share/ppc.tmpl b/share/ppc.tmpl
index 7433afd..3c48b22 100644
--- a/share/ppc.tmpl
+++ b/share/ppc.tmpl
@@ -95,6 +95,9 @@ mkdir etc
copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf
%endif

+## Write a .treeinfo for the boot.iso
+writetreeinfo .treeinfo
+
## make boot.iso
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U
${prepboot} -part -hfs -T -r -l -J
@@ -106,8 +109,10 @@ runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U
etc=${outroot}/etc
${BOOTDIR}=${outroot}/${BOOTDIR}
${NETBOOTDIR}=${outroot}/${NETBOOTDIR}
- ${LIVEDIR}=${outroot}/${LIVEDIR}
+ ${LIVEDIR}=${outroot}/${LIVEDIR}
+ .treeinfo=${outroot}/.treeinfo

+## This will be written to .treeinfo by Lorax
%for kernel in kernels:
treeinfo images-${kernel.arch} boot.iso images/boot.iso
%endfor
diff --git a/share/sparc.tmpl b/share/sparc.tmpl
index cfdb04e..b3d6486 100644
--- a/share/sparc.tmpl
+++ b/share/sparc.tmpl
@@ -26,6 +26,9 @@ replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/silo.conf
installinitrd images-${basearch} ${kernel.initrd.path} ${BOOTDIR}/initrd.img
%endfor

+## Write a .treeinfo for the boot.iso
+writetreeinfo .treeinfo
+
## make boot.iso
runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B ...
-s /${BOOTDIR}/silo.conf -r -V '${isolabel}'
@@ -34,5 +37,8 @@ runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B ...
-sparc-label "${product.name} ${product.version} Boot Disc"
-o ${outroot}/images/boot.iso
-graft-points ${BOOTDIR}=${outroot}/${BOOTDIR}
- ${LIVEDIR}=${outroot}/${LIVEDIR}
+ ${LIVEDIR}=${outroot}/${LIVEDIR}
+ .treeinfo=${outroot}/.treeinfo
+
+## This will be written to .treeinfo by Lorax
treeinfo images-${basearch} boot.iso images/boot.iso
diff --git a/share/x86.tmpl b/share/x86.tmpl
index 2dd74ad..0769300 100644
--- a/share/x86.tmpl
+++ b/share/x86.tmpl
@@ -61,6 +61,9 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch"/>
%endif

+## Write a .treeinfo for the boot.iso
+writetreeinfo .treeinfo
+
## make boot.iso
runcmd mkisofs -o ${outroot}/images/boot.iso
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat
@@ -69,6 +72,9 @@ runcmd mkisofs -o ${outroot}/images/boot.iso
${BOOTDIR}=${outroot}/${BOOTDIR}
${KERNELDIR}=${outroot}/${KERNELDIR}
${LIVEDIR}=${outroot}/${LIVEDIR}
- ${efigraft}
+ ${efigraft}
+ .treeinfo=${outroot}/.treeinfo
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
+
+## This will be written to .treeinfo by Lorax
treeinfo images-${basearch} boot.iso images/boot.iso
diff --git a/src/pylorax/__init__.py b/src/pylorax/__init__.py
index 8ae3077..242a7b2 100644
--- a/src/pylorax/__init__.py
+++ b/src/pylorax/__init__.py
@@ -240,7 +240,7 @@ class Lorax(BaseLoraxClass):
logger.info("populating output tree and building boot images")
treebuilder.build()

- # write .treeinfo file and we're done
+ # write new .treeinfo file with updated info about boot.iso
treeinfo = TreeInfo(self.product.name, self.product.version,
self.product.variant, self.arch.basearch)
for section, data in treebuilder.treeinfo_data.items():
diff --git a/src/pylorax/ltmpl.py b/src/pylorax/ltmpl.py
index 92eac34..cce7c04 100644
--- a/src/pylorax/ltmpl.py
+++ b/src/pylorax/ltmpl.py
@@ -35,6 +35,7 @@ from mako.lookup import TemplateLookup
from mako.exceptions import text_error_template
import sys, traceback
import struct
+from treeinfo import TreeInfo

class LoraxTemplate(object):
def __init__(self, directories=["/usr/share/lorax"]):
@@ -243,6 +244,19 @@ class LoraxTemplateRunner(object):
self.results.treeinfo[section] = dict()
self.results.treeinfo[section][key] = " ".join(valuetoks)

+ def writetreeinfo(self, dest):
+ '
+ writetreeinfo DEST
+ Write the .treeinfo file to DEST
+ '
+ treeinfo = TreeInfo(self.defaults.product.name,
+ self.defaults.product.version,
+ self.defaults.product.variant,
+ self.defaults.arch.basearch)
+ for section, data in self.results.treeinfo.items():
+ treeinfo.add_section(section, data)
+ treeinfo.write(self._out(dest))
+
def installkernel(self, section, src, dest):
'
installkernel SECTION SRC DEST
--
1.7.7.6

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

Martin Gracik 02-14-2012 08:54 AM

Add .treeinfo to boot.iso
 
ack to both

----- Original Message -----
> From: "Brian C. Lane" <bcl@redhat.com>
>
> Adds writetreeinfo DEST command to template parser and uses it in
> the x86, ppc and sparc templates to write .treeinfo to the boot.iso
> to make it easier to find the stage2 root filesystem image.
> ---
> share/ppc.tmpl | 7 ++++++-
> share/sparc.tmpl | 8 +++++++-
> share/x86.tmpl | 8 +++++++-
> src/pylorax/__init__.py | 2 +-
> src/pylorax/ltmpl.py | 14 ++++++++++++++
> 5 files changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/share/ppc.tmpl b/share/ppc.tmpl
> index 7433afd..3c48b22 100644
> --- a/share/ppc.tmpl
> +++ b/share/ppc.tmpl
> @@ -95,6 +95,9 @@ mkdir etc
> copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf
> %endif
>
> +## Write a .treeinfo for the boot.iso
> +writetreeinfo .treeinfo
> +
> ## make boot.iso
> runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U
> ${prepboot} -part -hfs -T -r -l -J
> @@ -106,8 +109,10 @@ runcmd mkisofs -o ${outroot}/images/boot.iso
> -chrp-boot -U
> etc=${outroot}/etc
> ${BOOTDIR}=${outroot}/${BOOTDIR}
> ${NETBOOTDIR}=${outroot}/${NETBOOTDIR}
> - ${LIVEDIR}=${outroot}/${LIVEDIR}
> + ${LIVEDIR}=${outroot}/${LIVEDIR}
> + .treeinfo=${outroot}/.treeinfo
>
> +## This will be written to .treeinfo by Lorax
> %for kernel in kernels:
> treeinfo images-${kernel.arch} boot.iso images/boot.iso
> %endfor
> diff --git a/share/sparc.tmpl b/share/sparc.tmpl
> index cfdb04e..b3d6486 100644
> --- a/share/sparc.tmpl
> +++ b/share/sparc.tmpl
> @@ -26,6 +26,9 @@ replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}'
> ${BOOTDIR}/silo.conf
> installinitrd images-${basearch} ${kernel.initrd.path}
> ${BOOTDIR}/initrd.img
> %endfor
>
> +## Write a .treeinfo for the boot.iso
> +writetreeinfo .treeinfo
> +
> ## make boot.iso
> runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B ...
> -s /${BOOTDIR}/silo.conf -r -V '${isolabel}'
> @@ -34,5 +37,8 @@ runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B
> ...
> -sparc-label "${product.name} ${product.version} Boot Disc"
> -o ${outroot}/images/boot.iso
> -graft-points ${BOOTDIR}=${outroot}/${BOOTDIR}
> - ${LIVEDIR}=${outroot}/${LIVEDIR}
> + ${LIVEDIR}=${outroot}/${LIVEDIR}
> + .treeinfo=${outroot}/.treeinfo
> +
> +## This will be written to .treeinfo by Lorax
> treeinfo images-${basearch} boot.iso images/boot.iso
> diff --git a/share/x86.tmpl b/share/x86.tmpl
> index 2dd74ad..0769300 100644
> --- a/share/x86.tmpl
> +++ b/share/x86.tmpl
> @@ -61,6 +61,9 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
> <%include file="efi.tmpl" args="configdir=configdir,
> KERNELDIR=KERNELDIR, efiarch=efiarch"/>
> %endif
>
> +## Write a .treeinfo for the boot.iso
> +writetreeinfo .treeinfo
> +
> ## make boot.iso
> runcmd mkisofs -o ${outroot}/images/boot.iso
> -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat
> @@ -69,6 +72,9 @@ runcmd mkisofs -o ${outroot}/images/boot.iso
> ${BOOTDIR}=${outroot}/${BOOTDIR}
> ${KERNELDIR}=${outroot}/${KERNELDIR}
> ${LIVEDIR}=${outroot}/${LIVEDIR}
> - ${efigraft}
> + ${efigraft}
> + .treeinfo=${outroot}/.treeinfo
> runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
> +
> +## This will be written to .treeinfo by Lorax
> treeinfo images-${basearch} boot.iso images/boot.iso
> diff --git a/src/pylorax/__init__.py b/src/pylorax/__init__.py
> index 8ae3077..242a7b2 100644
> --- a/src/pylorax/__init__.py
> +++ b/src/pylorax/__init__.py
> @@ -240,7 +240,7 @@ class Lorax(BaseLoraxClass):
> logger.info("populating output tree and building boot
> images")
> treebuilder.build()
>
> - # write .treeinfo file and we're done
> + # write new .treeinfo file with updated info about boot.iso
> treeinfo = TreeInfo(self.product.name, self.product.version,
> self.product.variant,
> self.arch.basearch)
> for section, data in treebuilder.treeinfo_data.items():
> diff --git a/src/pylorax/ltmpl.py b/src/pylorax/ltmpl.py
> index 92eac34..cce7c04 100644
> --- a/src/pylorax/ltmpl.py
> +++ b/src/pylorax/ltmpl.py
> @@ -35,6 +35,7 @@ from mako.lookup import TemplateLookup
> from mako.exceptions import text_error_template
> import sys, traceback
> import struct
> +from treeinfo import TreeInfo
>
> class LoraxTemplate(object):
> def __init__(self, directories=["/usr/share/lorax"]):
> @@ -243,6 +244,19 @@ class LoraxTemplateRunner(object):
> self.results.treeinfo[section] = dict()
> self.results.treeinfo[section][key] = " ".join(valuetoks)
>
> + def writetreeinfo(self, dest):
> + '
> + writetreeinfo DEST
> + Write the .treeinfo file to DEST
> + '
> + treeinfo = TreeInfo(self.defaults.product.name,
> + self.defaults.product.version,
> + self.defaults.product.variant,
> + self.defaults.arch.basearch)
> + for section, data in self.results.treeinfo.items():
> + treeinfo.add_section(section, data)
> + treeinfo.write(self._out(dest))
> +
> def installkernel(self, section, src, dest):
> '
> installkernel SECTION SRC DEST
> --
> 1.7.7.6
>
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list@redhat.com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list
>

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

Chris Lumens 02-14-2012 02:20 PM

Add .treeinfo to boot.iso
 
> Adds writetreeinfo DEST command to template parser and uses it in
> the x86, ppc and sparc templates to write .treeinfo to the boot.iso
> to make it easier to find the stage2 root filesystem image.

In the past, we have used the presence of .treeinfo to indicate that a
tree contains installable media. That should be less of a problem in a
new loader-less world, but there's still some checks in yuminstall.py.

- Chris

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


All times are GMT. The time now is 02:12 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.