Update templates to use installimg for product and updates
With these templates if a package has installed files in /usr/share/lorax/product or /usr/share/lorax/updates/ they will be used to create product.img and/or updates.img which will be included in the images/ directory of the iso and of the final output tree. These can be used to customize the installation environment or provide updates. See README.product for current documentation. Related: rhbz#1202278
This commit is contained in:
parent
5e1a7e4e3c
commit
b3dabdd2e0
18
README.product
Normal file
18
README.product
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Lorax now supports creation of product.img and updates.img as part of the build
|
||||||
|
process. This is implemented using the installimg command which will take the
|
||||||
|
contents of a directory and create a compressed archive from it. The x86, ppc,
|
||||||
|
ppc64le and aarch64 templates all look for /usr/share/lorax/product/ and
|
||||||
|
/usr/share/lorax/updates/ directories while creating the final install tree. If
|
||||||
|
there are files in those directories lorax will create images/product.img
|
||||||
|
and/or images/updates.img
|
||||||
|
|
||||||
|
These archives are just like an anaconda updates image -- they are copied over
|
||||||
|
the top of the filesystem at boot time so that you can drop in files to add to
|
||||||
|
or replace anything on the filesystem.
|
||||||
|
|
||||||
|
Anaconda has several places that it looks for updates, the one for product.img
|
||||||
|
is in /run/install/product. For example, to add an installclass to Anaconda
|
||||||
|
you would put your custom class here:
|
||||||
|
|
||||||
|
/usr/share/lorax/product/run/install/product/pyanaconda/installclasses/custom.py
|
||||||
|
|
@ -84,7 +84,7 @@ make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc COPYING AUTHORS README.livemedia-creator
|
%doc COPYING AUTHORS README.livemedia-creator README.product
|
||||||
%doc docs/*ks
|
%doc docs/*ks
|
||||||
%{python_sitelib}/pylorax
|
%{python_sitelib}/pylorax
|
||||||
%{python_sitelib}/*.egg-info
|
%{python_sitelib}/*.egg-info
|
||||||
|
@ -4,6 +4,7 @@ configdir="tmp/config_files/aarch64"
|
|||||||
PXEBOOTDIR="images/pxeboot"
|
PXEBOOTDIR="images/pxeboot"
|
||||||
KERNELDIR=PXEBOOTDIR
|
KERNELDIR=PXEBOOTDIR
|
||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
%>
|
%>
|
||||||
|
|
||||||
mkdir ${LIVEDIR}
|
mkdir ${LIVEDIR}
|
||||||
@ -36,11 +37,20 @@ mkdir ${KERNELDIR}
|
|||||||
%>
|
%>
|
||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% imggraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
<% imggraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
||||||
${efiargs} -R -J -V '${isolabel}' -T -graft-points \
|
${efiargs} -R -J -V '${isolabel}' -T -graft-points \
|
||||||
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
${efigraft}
|
${efigraft} ${imggraft}
|
||||||
treeinfo images-${basearch} boot.iso images/boot.iso
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
%endif
|
%endif
|
||||||
|
@ -6,6 +6,7 @@ GRUBDIR="boot/grub"
|
|||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
MACDIR=BOOTDIR+"/mac"
|
MACDIR=BOOTDIR+"/mac"
|
||||||
NETBOOTDIR="images/netboot"
|
NETBOOTDIR="images/netboot"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
WRAPPER="usr/sbin/wrapper"
|
WRAPPER="usr/sbin/wrapper"
|
||||||
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
|
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
|
||||||
@ -80,6 +81,15 @@ install ${configdir}/magic ${BOOTDIR}
|
|||||||
%endif
|
%endif
|
||||||
%endfor
|
%endfor
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% imggraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
<% imggraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
||||||
${prepboot} -part -hfs -T -r -l -J \
|
${prepboot} -part -hfs -T -r -l -J \
|
||||||
@ -91,7 +101,7 @@ runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
|||||||
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
||||||
${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
|
${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR}
|
${LIVEDIR}=${outroot}/${LIVEDIR} ${imggraft}
|
||||||
|
|
||||||
%for kernel in kernels:
|
%for kernel in kernels:
|
||||||
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
||||||
|
@ -6,6 +6,7 @@ PXEBOOTDIR="images/pxeboot"
|
|||||||
BOOTDIR="isolinux"
|
BOOTDIR="isolinux"
|
||||||
KERNELDIR=PXEBOOTDIR
|
KERNELDIR=PXEBOOTDIR
|
||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
%>
|
%>
|
||||||
|
|
||||||
mkdir ${LIVEDIR}
|
mkdir ${LIVEDIR}
|
||||||
@ -64,6 +65,15 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
|
|||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% imggraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
<% imggraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
||||||
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
||||||
@ -72,6 +82,6 @@ runcmd mkisofs -o ${outroot}/images/boot.iso \
|
|||||||
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
${efigraft}
|
${efigraft} ${imggraft}
|
||||||
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
||||||
treeinfo images-${basearch} boot.iso images/boot.iso
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
|
@ -6,6 +6,7 @@ GRUBDIR="boot/grub"
|
|||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
MACDIR=BOOTDIR+"/mac"
|
MACDIR=BOOTDIR+"/mac"
|
||||||
NETBOOTDIR="images/netboot"
|
NETBOOTDIR="images/netboot"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
WRAPPER="usr/sbin/wrapper"
|
WRAPPER="usr/sbin/wrapper"
|
||||||
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
|
WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper"
|
||||||
@ -88,6 +89,15 @@ install ${configdir}/magic ${BOOTDIR}
|
|||||||
%endif
|
%endif
|
||||||
%endfor
|
%endfor
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% imggraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
<% imggraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
||||||
${prepboot} -part -hfs -T -r -l -J \
|
${prepboot} -part -hfs -T -r -l -J \
|
||||||
@ -99,7 +109,8 @@ runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \
|
|||||||
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
||||||
${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
|
${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR}
|
${LIVEDIR}=${outroot}/${LIVEDIR} ${imggraft}
|
||||||
|
|
||||||
|
|
||||||
%for kernel in kernels:
|
%for kernel in kernels:
|
||||||
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
||||||
|
@ -6,6 +6,7 @@ PXEBOOTDIR="images/pxeboot"
|
|||||||
BOOTDIR="isolinux"
|
BOOTDIR="isolinux"
|
||||||
KERNELDIR=PXEBOOTDIR
|
KERNELDIR=PXEBOOTDIR
|
||||||
LIVEDIR="LiveOS"
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
%>
|
%>
|
||||||
|
|
||||||
mkdir ${LIVEDIR}
|
mkdir ${LIVEDIR}
|
||||||
@ -78,6 +79,15 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
|
|||||||
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% imggraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
<% imggraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
## make boot.iso
|
## make boot.iso
|
||||||
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
runcmd mkisofs -o ${outroot}/images/boot.iso \
|
||||||
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
-b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \
|
||||||
@ -86,6 +96,6 @@ runcmd mkisofs -o ${outroot}/images/boot.iso \
|
|||||||
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
${efigraft}
|
${efigraft} ${imggraft}
|
||||||
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso
|
||||||
treeinfo images-${basearch} boot.iso images/boot.iso
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
|
Loading…
Reference in New Issue
Block a user