Compare commits
No commits in common. "a8" and "a10s" have entirely different histories.
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/lorax-templates-rhel-9.0-33.tar.gz
|
||||||
|
lorax-templates-rhel-10.0-52.tar.gz
|
@ -1 +0,0 @@
|
|||||||
4d3de7379549c8d56b66e654c5141f913f480c9f SOURCES/lorax-templates-rhel-8.4-3.tar.gz
|
|
92
80-rhel/aarch64.tmpl
Normal file
92
80-rhel/aarch64.tmpl
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/aarch64"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
STAGE2IMG="images/install.img"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir images
|
||||||
|
install ${runtime_img} ${STAGE2IMG}
|
||||||
|
treeinfo stage2 mainimage ${STAGE2IMG}
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
## normal aarch64
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
#FIXME: this will need adjusted when we have a real bootloader.
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
## We could remove the basearch restriction someday..
|
||||||
|
<% efiargs=""; efigraft="" %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
||||||
|
<%
|
||||||
|
efiarch32 = None
|
||||||
|
efiarch64 = 'AA64'
|
||||||
|
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
|
||||||
|
images = ["images/efiboot.img"]
|
||||||
|
%>
|
||||||
|
%for img in images:
|
||||||
|
<%
|
||||||
|
efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img)
|
||||||
|
efigraft += " {0}={1}/{0}".format(img,outroot)
|
||||||
|
%>
|
||||||
|
treeinfo images-${basearch} ${img|basename} ${img}
|
||||||
|
%endfor
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Inherit iso-graft/ if it exists from external templates
|
||||||
|
<%
|
||||||
|
import os
|
||||||
|
if os.path.exists(workdir + "/iso-graft"):
|
||||||
|
filegraft += " " + workdir + "/iso-graft"
|
||||||
|
%>
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
${efiargs} -R -J -V '${isolabel}' \
|
||||||
|
-graft-points \
|
||||||
|
.discinfo=${outroot}/.discinfo \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} \
|
||||||
|
${efigraft} ${filegraft}
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
|
%endif
|
35
80-rhel/appliance/libvirt.tmpl
Normal file
35
80-rhel/appliance/libvirt.tmpl
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<image>
|
||||||
|
<name>${name}</name>
|
||||||
|
<domain>
|
||||||
|
<boot type='hvm'>
|
||||||
|
<guest>
|
||||||
|
<arch>${arch}</arch>
|
||||||
|
</guest>
|
||||||
|
<os>
|
||||||
|
<loader dev='hd'/>
|
||||||
|
</os>
|
||||||
|
%for disk, letter in zip(disks, range(97, 123)):
|
||||||
|
<drive disk='${disk.name}' target='hd${chr(letter)}'/>
|
||||||
|
%endfor
|
||||||
|
</boot>
|
||||||
|
<devices>
|
||||||
|
<vcpu>${vcpus}</vcpu>
|
||||||
|
<memory>${memory}</memory>
|
||||||
|
%for net in networks:
|
||||||
|
<interface/>
|
||||||
|
%endfor
|
||||||
|
<graphics/>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
||||||
|
<storage>
|
||||||
|
%for disk in disks:
|
||||||
|
<disk file='${disk.name}' use='system' format='${disk.format}'>
|
||||||
|
%if disk.checksum:
|
||||||
|
<checksum type='${disk.checksum_type}'>${disk.checksum}</checksum>
|
||||||
|
%endif
|
||||||
|
</disk>
|
||||||
|
%endfor
|
||||||
|
</storage>
|
||||||
|
</image>
|
||||||
|
|
5
80-rhel/config_files/aarch64/boot.msg
Normal file
5
80-rhel/config_files/aarch64/boot.msg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
splash.lss
|
||||||
|
|
||||||
|
- Press the 01<ENTER>07 key to begin the installation process.
|
||||||
|
|
46
80-rhel/config_files/aarch64/grub2-efi.cfg
Normal file
46
80-rhel/config_files/aarch64/grub2-efi.cfg
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
if [ x$feature_all_video_module = xy ]; then
|
||||||
|
insmod all_video
|
||||||
|
else
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod ieee1275_fb
|
||||||
|
insmod vbe
|
||||||
|
insmod vga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ ro
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ rd.live.check
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ nomodeset
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ inst.rescue
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
[connection]
|
||||||
|
connection.autoconnect-slaves=1
|
@ -0,0 +1,2 @@
|
|||||||
|
[logging]
|
||||||
|
level=DEBUG
|
11
80-rhel/config_files/common/bash_history
Normal file
11
80-rhel/config_files/common/bash_history
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
kill -USR1 `cat /var/run/anaconda.pid`
|
||||||
|
kill -USR2 `cat /var/run/anaconda.pid`
|
||||||
|
kill -HUP `cat /var/run/anaconda.pid`
|
||||||
|
udevadm info --export-db | less
|
||||||
|
tail -f /tmp/storage.log
|
||||||
|
echo b > /proc/sysrq-trigger
|
||||||
|
dmsetup table
|
||||||
|
multipath -d
|
||||||
|
HOME=/root chroot /mnt/sysimage bash -l -i
|
||||||
|
less /tmp/anaconda.log
|
||||||
|
grep -v _yum_lock /tmp/packaging.log
|
1
80-rhel/config_files/common/i18n
Normal file
1
80-rhel/config_files/common/i18n
Normal file
@ -0,0 +1 @@
|
|||||||
|
SYSFONT="eurlatgr"
|
11
80-rhel/config_files/common/inst.rngd.service
Normal file
11
80-rhel/config_files/common/inst.rngd.service
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Hardware RNG Entropy Gatherer Daemon
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
ConditionKernelCommandLine=|inst.rngd
|
||||||
|
ConditionKernelCommandLine=!inst.rngd=0
|
||||||
|
|
||||||
|
# The "-f" option is required for the systemd service rngd to work with Type=simple
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
EnvironmentFile=/etc/sysconfig/rngd
|
||||||
|
ExecStart=/usr/sbin/rngd -f $RNGD_ARGS
|
10
80-rhel/config_files/common/libuser.conf
Normal file
10
80-rhel/config_files/common/libuser.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[defaults]
|
||||||
|
skeleton = /mnt/sysimage/etc/skel
|
||||||
|
mailspooldir = /mnt/sysimage/var/mail
|
||||||
|
crypt_style = md5
|
||||||
|
modules = files shadow
|
||||||
|
create_modules = files shadow
|
||||||
|
[files]
|
||||||
|
directory = /mnt/sysimage/etc
|
||||||
|
[shadow]
|
||||||
|
directory = /mnt/sysimage/etc
|
@ -0,0 +1,2 @@
|
|||||||
|
[org.gtk.Settings.Debug]
|
||||||
|
enable-inspector-keybinding=true
|
9
80-rhel/config_files/common/pam.sshd
Normal file
9
80-rhel/config_files/common/pam.sshd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#%PAM-1.0
|
||||||
|
auth required pam_env.so
|
||||||
|
auth sufficient pam_unix.so likeauth nullok
|
||||||
|
auth required pam_deny.so
|
||||||
|
account required pam_unix.so
|
||||||
|
password sufficient pam_unix.so nullok use_authtok md5 shadow
|
||||||
|
password required pam_deny.so
|
||||||
|
session required pam_limits.so
|
||||||
|
session required pam_unix.so
|
3
80-rhel/config_files/common/profile
Normal file
3
80-rhel/config_files/common/profile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PS1="[anaconda \u@\h \W]\\$ "
|
||||||
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin
|
||||||
|
export PATH PS1
|
0
80-rhel/config_files/common/resolv.conf
Normal file
0
80-rhel/config_files/common/resolv.conf
Normal file
77
80-rhel/config_files/common/rsyslog.conf
Normal file
77
80-rhel/config_files/common/rsyslog.conf
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# minimal rsyslog configuration file for the installer boot.iso
|
||||||
|
|
||||||
|
# provides support for local system logging (e.g. via logger command)
|
||||||
|
# disables message dropping, we need all of them
|
||||||
|
# Turn off message reception via local log socket;
|
||||||
|
# local messages are retrieved through imjournal now.
|
||||||
|
module(load="imuxsock"
|
||||||
|
SysSock.RateLimit.Interval="0"
|
||||||
|
SysSock.Use="off")
|
||||||
|
|
||||||
|
# provides access to the systemd journal
|
||||||
|
# Disable rate limiting to the journal, we need all the messages for debugging
|
||||||
|
module(load="imjournal"
|
||||||
|
Ratelimit.Interval="0"
|
||||||
|
Ratelimit.Burst="0"
|
||||||
|
StateFile="imjournal.state")
|
||||||
|
|
||||||
|
module(load="imfile" mode="inotify")
|
||||||
|
input(type="imfile"
|
||||||
|
File="/tmp/X.log"
|
||||||
|
Tag="xserver:"
|
||||||
|
Facility="local1")
|
||||||
|
|
||||||
|
input(type="imfile"
|
||||||
|
File="/tmp/anaconda-tb-all.log"
|
||||||
|
Tag="anaconda-tb:"
|
||||||
|
Facility="local1")
|
||||||
|
|
||||||
|
module(load="builtin:omfile"
|
||||||
|
Template="RSYSLOG_TraditionalFileFormat"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
#### GLOBAL DIRECTIVES ####
|
||||||
|
|
||||||
|
# Where to place auxiliary files
|
||||||
|
global(workDirectory="/var/lib/rsyslog")
|
||||||
|
|
||||||
|
# Include all config files in /etc/rsyslog.d/
|
||||||
|
include(file="/etc/rsyslog.d/*.conf")
|
||||||
|
|
||||||
|
#### TEMPLATES ####
|
||||||
|
|
||||||
|
$template anaconda_tty4, "%syslogseverity-text:::uppercase% %programname%:%msg%\n"
|
||||||
|
$template anaconda_syslog, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n"
|
||||||
|
$template virtio_ForwardFormat, "<%PRI%>%TIMESTAMP:::date-rfc3339% localhost %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\n"
|
||||||
|
|
||||||
|
#### RULES ####
|
||||||
|
|
||||||
|
# log everything except anaconda-specific records from local1 (those are stored
|
||||||
|
# directly into files via python logging)
|
||||||
|
|
||||||
|
# discard messages from dracut regenerating initrd
|
||||||
|
:programname,isequal,"dracut" stop
|
||||||
|
|
||||||
|
*.*;\
|
||||||
|
authpriv.none;\
|
||||||
|
local1.none /tmp/syslog;anaconda_syslog
|
||||||
|
& /dev/tty4;anaconda_tty4
|
||||||
|
|
||||||
|
|
||||||
|
# ### begin forwarding rule ###
|
||||||
|
# The statement between the begin ... end define a SINGLE forwarding
|
||||||
|
# rule. They belong together, do NOT split them. If you create multiple
|
||||||
|
# forwarding rules, duplicate the whole block!
|
||||||
|
# Remote Logging (we use TCP for reliable delivery)
|
||||||
|
#
|
||||||
|
# An on-disk queue is created for this action. If the remote host is
|
||||||
|
# down, messages are spooled to disk and sent when it is up again.
|
||||||
|
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
|
||||||
|
$ActionQueueMaxDiskSpace 1m # space limit (use as much as possible)
|
||||||
|
$ActionQueueSaveOnShutdown off # do not save messages to disk on shutdown
|
||||||
|
#$ActionQueueType LinkedList # run asynchronously
|
||||||
|
#$ActionResumeRetryCount -1 # infinite retries if host is down
|
||||||
|
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
|
||||||
|
#*.* @@remote-host:514
|
||||||
|
# ### end of the forwarding rule ###
|
2
80-rhel/config_files/common/selinux.config
Normal file
2
80-rhel/config_files/common/selinux.config
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SELINUX=permissive
|
||||||
|
SELINUXTYPE=targeted
|
1
80-rhel/config_files/common/spice-vdagentd
Normal file
1
80-rhel/config_files/common/spice-vdagentd
Normal file
@ -0,0 +1 @@
|
|||||||
|
SPICE_VDAGENTD_EXTRA_ARGS=-X
|
7
80-rhel/config_files/common/sshd_config.anaconda
Normal file
7
80-rhel/config_files/common/sshd_config.anaconda
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
PermitRootLogin yes
|
||||||
|
PrintMotd yes
|
||||||
|
SyslogFacility AUTHPRIV
|
||||||
|
PasswordAuthentication yes
|
||||||
|
PermitEmptyPasswords yes
|
||||||
|
PermitUserEnvironment yes
|
||||||
|
Subsystem sftp internal-sftp
|
1
80-rhel/config_files/common/sysctl.conf
Normal file
1
80-rhel/config_files/common/sysctl.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
kernel.printk=1
|
2
80-rhel/config_files/common/vconsole.conf
Normal file
2
80-rhel/config_files/common/vconsole.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
KEYMAP=us
|
||||||
|
FONT=eurlatgr
|
170
80-rhel/config_files/ppc/bootinfo.txt
Normal file
170
80-rhel/config_files/ppc/bootinfo.txt
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
<chrp-boot>
|
||||||
|
<description>grub 2.00</description>
|
||||||
|
<os-name>grub 2.00</os-name>
|
||||||
|
<boot-script>boot &device;:\boot\grub\powerpc-ieee1275\core.elf</boot-script>
|
||||||
|
<icon size=64,64 color-space=3,3,2>
|
||||||
|
<bitmap> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 </bitmap> </icon> </chrp-boot>
|
30
80-rhel/config_files/ppc/grub.cfg.in
Normal file
30
80-rhel/config_files/ppc/grub.cfg.in
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
set default=0
|
||||||
|
set timeout=60
|
||||||
|
|
||||||
|
echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n"
|
||||||
|
|
||||||
|
menuentry "Install @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux /ppc/ppc64/vmlinuz @ROOT@ ro
|
||||||
|
initrd /ppc/ppc64/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Test this media & install @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux /ppc/ppc64/vmlinuz @ROOT@ rd.live.check ro
|
||||||
|
initrd /ppc/ppc64/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Rescue a @PRODUCT@ system (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux /ppc/ppc64/vmlinuz @ROOT@ inst.rescue ro
|
||||||
|
initrd /ppc/ppc64/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu 'Other options...' {
|
||||||
|
menuentry 'Reboot' {
|
||||||
|
reboot
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Exit to Open Firmware' {
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
80-rhel/config_files/s390/cdboot.prm
Normal file
1
80-rhel/config_files/s390/cdboot.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro @ROOT@
|
5
80-rhel/config_files/s390/generic.ins
Normal file
5
80-rhel/config_files/s390/generic.ins
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
* minimal lpar ins file
|
||||||
|
images/kernel.img 0x00000000
|
||||||
|
images/initrd.img @INITRD_LOAD_ADDRESS@
|
||||||
|
images/genericdvd.prm 0x00010480
|
||||||
|
images/initrd.addrsize 0x00010408
|
1
80-rhel/config_files/s390/generic.prm
Normal file
1
80-rhel/config_files/s390/generic.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro ramdisk_size=40000 cio_ignore=all,!condev
|
1
80-rhel/config_files/s390/genericdvd.prm
Normal file
1
80-rhel/config_files/s390/genericdvd.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro ramdisk_size=40000 cio_ignore=all,!condev rd.cmdline=ask
|
9
80-rhel/config_files/s390/redhat.exec
Normal file
9
80-rhel/config_files/s390/redhat.exec
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/* */
|
||||||
|
'CL RDR'
|
||||||
|
'PURGE RDR ALL'
|
||||||
|
'SPOOL PUNCH * RDR'
|
||||||
|
'PUNCH KERNEL IMG A (NOH'
|
||||||
|
'PUNCH GENERIC PRM A (NOH'
|
||||||
|
'PUNCH INITRD IMG A (NOH'
|
||||||
|
'CH RDR ALL KEEP NOHOLD'
|
||||||
|
'I 00C'
|
9
80-rhel/config_files/sparc/boot.msg
Normal file
9
80-rhel/config_files/sparc/boot.msg
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[H[J
|
||||||
|
Welcome to @PRODUCT@ @VERSION@!
|
||||||
|
|
||||||
|
- To install in graphical mode, press the [7m<ENTER>[m key.
|
||||||
|
|
||||||
|
- To install in text mode, type: [7mlinux text <ENTER>[m.
|
||||||
|
|
||||||
|
- To enter rescue mode type: [7mlinux inst.rescue <ENTER>[m.
|
||||||
|
|
18
80-rhel/config_files/sparc/silo.conf
Normal file
18
80-rhel/config_files/sparc/silo.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
partition=1
|
||||||
|
default=linux
|
||||||
|
read-write
|
||||||
|
timeout=600
|
||||||
|
message=/boot/boot.msg
|
||||||
|
image[sun4u]=/boot/vmlinuz
|
||||||
|
label=linux
|
||||||
|
alias=install
|
||||||
|
append="@ROOT@"
|
||||||
|
initrd=/boot/initrd.img
|
||||||
|
image[sun4u]=/boot/vmlinuz
|
||||||
|
label=text
|
||||||
|
append="@ROOT@ text"
|
||||||
|
initrd=/boot/initrd.img
|
||||||
|
image[sun4u]=/boot/vmlinuz
|
||||||
|
label=ks
|
||||||
|
append="@ROOT@ ks"
|
||||||
|
initrd=/boot/initrd.img
|
5
80-rhel/config_files/x86/boot.msg
Normal file
5
80-rhel/config_files/x86/boot.msg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
splash.lss
|
||||||
|
|
||||||
|
- Press the 01<ENTER>07 key to begin the installation process.
|
||||||
|
|
43
80-rhel/config_files/x86/grub2-bios.cfg
Normal file
43
80-rhel/config_files/x86/grub2-bios.cfg
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
insmod chain
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ rd.live.check quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ nomodeset quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ inst.rescue quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Boot first drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd0)+1
|
||||||
|
}
|
||||||
|
menuentry 'Boot second drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd1)+1
|
||||||
|
}
|
||||||
|
}
|
40
80-rhel/config_files/x86/grub2-efi.cfg
Normal file
40
80-rhel/config_files/x86/grub2-efi.cfg
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ rd.live.check quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ nomodeset quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ inst.rescue quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
111
80-rhel/config_files/x86/isolinux.cfg
Normal file
111
80-rhel/config_files/x86/isolinux.cfg
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
default vesamenu.c32
|
||||||
|
timeout 600
|
||||||
|
|
||||||
|
display boot.msg
|
||||||
|
|
||||||
|
# Clear the screen when exiting the menu, instead of leaving the menu displayed.
|
||||||
|
# For vesamenu, this means the graphical background is still displayed without
|
||||||
|
# the menu itself for as long as the screen remains in graphics mode.
|
||||||
|
menu clear
|
||||||
|
menu background splash.png
|
||||||
|
menu title @PRODUCT@ @VERSION@
|
||||||
|
menu vshift 8
|
||||||
|
menu rows 18
|
||||||
|
menu margin 8
|
||||||
|
#menu hidden
|
||||||
|
menu helpmsgrow 15
|
||||||
|
menu tabmsgrow 13
|
||||||
|
|
||||||
|
# Border Area
|
||||||
|
menu color border * #00000000 #00000000 none
|
||||||
|
|
||||||
|
# Selected item
|
||||||
|
menu color sel 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
# Title bar
|
||||||
|
menu color title 0 #ff7ba3d0 #00000000 none
|
||||||
|
|
||||||
|
# Press [Tab] message
|
||||||
|
menu color tabmsg 0 #ff3a6496 #00000000 none
|
||||||
|
|
||||||
|
# Unselected menu item
|
||||||
|
menu color unsel 0 #84b8ffff #00000000 none
|
||||||
|
|
||||||
|
# Selected hotkey
|
||||||
|
menu color hotsel 0 #84b8ffff #00000000 none
|
||||||
|
|
||||||
|
# Unselected hotkey
|
||||||
|
menu color hotkey 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
# Help text
|
||||||
|
menu color help 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
# A scrollbar of some type? Not sure.
|
||||||
|
menu color scrollbar 0 #ffffffff #ff355594 none
|
||||||
|
|
||||||
|
# Timeout msg
|
||||||
|
menu color timeout 0 #ffffffff #00000000 none
|
||||||
|
menu color timeout_msg 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
# Command prompt text
|
||||||
|
menu color cmdmark 0 #84b8ffff #00000000 none
|
||||||
|
menu color cmdline 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
|
||||||
|
|
||||||
|
menu tabmsg Press Tab for full configuration options on menu items.
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
menu separator # insert an empty line
|
||||||
|
|
||||||
|
label linux
|
||||||
|
menu label ^Install @PRODUCT@ @VERSION@
|
||||||
|
kernel vmlinuz
|
||||||
|
append initrd=initrd.img @ROOT@ quiet
|
||||||
|
|
||||||
|
label check
|
||||||
|
menu label Test this ^media & install @PRODUCT@ @VERSION@
|
||||||
|
menu default
|
||||||
|
kernel vmlinuz
|
||||||
|
append initrd=initrd.img @ROOT@ rd.live.check quiet
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
|
||||||
|
# utilities submenu
|
||||||
|
menu begin ^Troubleshooting
|
||||||
|
menu title Troubleshooting @PRODUCT@ @VERSION@
|
||||||
|
|
||||||
|
label basic
|
||||||
|
menu indent count 5
|
||||||
|
menu label Install using ^basic graphics mode
|
||||||
|
text help
|
||||||
|
Try this option out if you're having trouble installing
|
||||||
|
@PRODUCT@ @VERSION@.
|
||||||
|
endtext
|
||||||
|
kernel vmlinuz
|
||||||
|
append initrd=initrd.img @ROOT@ nomodeset quiet
|
||||||
|
|
||||||
|
label rescue
|
||||||
|
menu indent count 5
|
||||||
|
menu label ^Rescue a @PRODUCT@ system
|
||||||
|
text help
|
||||||
|
If the system will not boot, this lets you access files
|
||||||
|
and edit config files to try to get it booting again.
|
||||||
|
endtext
|
||||||
|
kernel vmlinuz
|
||||||
|
append initrd=initrd.img @ROOT@ inst.rescue quiet
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
|
||||||
|
label local
|
||||||
|
menu label Boot from ^local drive
|
||||||
|
localboot 0xffff
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
menu separator # insert an empty line
|
||||||
|
|
||||||
|
label returntomain
|
||||||
|
menu label Return to ^main menu
|
||||||
|
menu exit
|
||||||
|
|
||||||
|
menu end
|
57
80-rhel/efi.tmpl
Normal file
57
80-rhel/efi.tmpl
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<%page args="configdir, KERNELDIR, efiarch32, efiarch64, isolabel"/>
|
||||||
|
<%
|
||||||
|
EFIBOOTDIR="EFI/BOOT"
|
||||||
|
APPLE_EFI_ICON=inroot+"/usr/share/pixmaps/bootloader/fedora.icns"
|
||||||
|
APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol"
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${EFIBOOTDIR}
|
||||||
|
mkdir ${EFIBOOTDIR}/fonts/
|
||||||
|
%if efiarch64:
|
||||||
|
install boot/efi/EFI/*/shim${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI
|
||||||
|
install boot/efi/EFI/*/mm${efiarch64|lower}.efi ${EFIBOOTDIR}/
|
||||||
|
install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi
|
||||||
|
%endif
|
||||||
|
%if efiarch32:
|
||||||
|
install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32}.EFI
|
||||||
|
install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/
|
||||||
|
install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi
|
||||||
|
%endif
|
||||||
|
install usr/share/grub/unicode.pf2 ${EFIBOOTDIR}/fonts/
|
||||||
|
|
||||||
|
## actually make the EFI images
|
||||||
|
${make_efiboot("images/efiboot.img")}
|
||||||
|
|
||||||
|
## This is kinda gross, but then... so's EFI.
|
||||||
|
<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')">
|
||||||
|
<%
|
||||||
|
kdir = EFIBOOTDIR if include_kernel else KERNELDIR
|
||||||
|
eficonf = "%s/grub.cfg" % (EFIBOOTDIR, )
|
||||||
|
args = "--label=ANACONDA --debug"
|
||||||
|
if disk: args += " --disk"
|
||||||
|
%>
|
||||||
|
%if include_kernel:
|
||||||
|
copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR}
|
||||||
|
copy ${KERNELDIR}/initrd.img ${EFIBOOTDIR}
|
||||||
|
%endif
|
||||||
|
install ${configdir}/grub2-efi.cfg ${eficonf}
|
||||||
|
replace @PRODUCT@ '${product.name}' ${eficonf}
|
||||||
|
replace @VERSION@ ${product.version} ${eficonf}
|
||||||
|
replace @KERNELNAME@ vmlinuz ${eficonf}
|
||||||
|
replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf}
|
||||||
|
replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf}
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${eficonf}
|
||||||
|
%if disk:
|
||||||
|
replace @ROOT@ inst.stage2=hd:LABEL=ANACONDA ${eficonf}
|
||||||
|
%else:
|
||||||
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${eficonf}
|
||||||
|
%endif
|
||||||
|
%if efiarch32 == 'IA32':
|
||||||
|
copy ${eficonf} ${EFIBOOTDIR}/BOOT.conf
|
||||||
|
%endif
|
||||||
|
runcmd mkefiboot ${args} ${outroot}/${EFIBOOTDIR} ${outroot}/${img}
|
||||||
|
%if include_kernel:
|
||||||
|
remove ${EFIBOOTDIR}/vmlinuz
|
||||||
|
remove ${EFIBOOTDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
</%def>
|
84
80-rhel/live/aarch64.tmpl
Normal file
84
80-rhel/live/aarch64.tmpl
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/aarch64"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${LIVEDIR}
|
||||||
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
||||||
|
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
## normal aarch64
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
#FIXME: this will need adjusted when we have a real bootloader.
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
## We could remove the basearch restriction someday..
|
||||||
|
<% efiargs=""; efigraft="" %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
||||||
|
<%
|
||||||
|
efiarch32 = None
|
||||||
|
efiarch64 = 'AA64'
|
||||||
|
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
|
||||||
|
images = ["images/efiboot.img"]
|
||||||
|
%>
|
||||||
|
%for img in images:
|
||||||
|
<%
|
||||||
|
efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img)
|
||||||
|
efigraft += " {0}={1}/{0}".format(img,outroot)
|
||||||
|
%>
|
||||||
|
treeinfo images-${basearch} ${img|basename} ${img}
|
||||||
|
%endfor
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
${efiargs} -R -J -V '${isolabel}' \
|
||||||
|
-graft-points \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
|
${efigraft} ${filegraft}
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
||||||
|
%endif
|
42
80-rhel/live/config_files/aarch64/grub2-efi.cfg
Normal file
42
80-rhel/live/config_files/aarch64/grub2-efi.cfg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
if [ x$feature_all_video_module = xy ]; then
|
||||||
|
insmod all_video
|
||||||
|
else
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod ieee1275_fb
|
||||||
|
insmod vbe
|
||||||
|
insmod vga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
170
80-rhel/live/config_files/ppc/bootinfo.txt
Normal file
170
80-rhel/live/config_files/ppc/bootinfo.txt
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
<chrp-boot>
|
||||||
|
<description>grub 2.00</description>
|
||||||
|
<os-name>grub 2.00</os-name>
|
||||||
|
<boot-script>boot &device;:\boot\grub\powerpc-ieee1275\core.elf</boot-script>
|
||||||
|
<icon size=64,64 color-space=3,3,2>
|
||||||
|
<bitmap> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 </bitmap> </icon> </chrp-boot>
|
24
80-rhel/live/config_files/ppc/grub.cfg.in
Normal file
24
80-rhel/live/config_files/ppc/grub.cfg.in
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
set default=0
|
||||||
|
set timeout=5
|
||||||
|
|
||||||
|
echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n"
|
||||||
|
|
||||||
|
menuentry "Start @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux /ppc/ppc64/vmlinuz @ROOT@ @EXTRA@ ro rd.live.image quiet rhgb
|
||||||
|
initrd /ppc/ppc64/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry "Test this media & start @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux /ppc/ppc64/vmlinuz @ROOT@ @EXTRA@ rd.live.image rd.live.check ro quiet
|
||||||
|
initrd /ppc/ppc64/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
submenu 'Other options...' {
|
||||||
|
menuentry 'Reboot' {
|
||||||
|
reboot
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Exit to Open Firmware' {
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
1
80-rhel/live/config_files/s390/cdboot.prm
Normal file
1
80-rhel/live/config_files/s390/cdboot.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro @ROOT@ rd.live.image @EXTRA@
|
5
80-rhel/live/config_files/s390/generic.ins
Normal file
5
80-rhel/live/config_files/s390/generic.ins
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
* minimal lpar ins file
|
||||||
|
images/kernel.img 0x00000000
|
||||||
|
images/initrd.img @INITRD_LOAD_ADDRESS@
|
||||||
|
images/genericdvd.prm 0x00010480
|
||||||
|
images/initrd.addrsize 0x00010408
|
1
80-rhel/live/config_files/s390/generic.prm
Normal file
1
80-rhel/live/config_files/s390/generic.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro ramdisk_size=40000 cio_ignore=all,!condev @EXTRA@
|
1
80-rhel/live/config_files/s390/genericdvd.prm
Normal file
1
80-rhel/live/config_files/s390/genericdvd.prm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ro ramdisk_size=40000 cio_ignore=all,!condev rd.cmdline=ask
|
9
80-rhel/live/config_files/s390/redhat.exec
Normal file
9
80-rhel/live/config_files/s390/redhat.exec
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/* */
|
||||||
|
'CL RDR'
|
||||||
|
'PURGE RDR ALL'
|
||||||
|
'SPOOL PUNCH * RDR'
|
||||||
|
'PUNCH KERNEL IMG A (NOH'
|
||||||
|
'PUNCH GENERIC PRM A (NOH'
|
||||||
|
'PUNCH INITRD IMG A (NOH'
|
||||||
|
'CH RDR ALL KEEP NOHOLD'
|
||||||
|
'I 00C'
|
39
80-rhel/live/config_files/x86/grub2-bios.cfg
Normal file
39
80-rhel/live/config_files/x86/grub2-bios.cfg
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
insmod chain
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset vga=791 quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Boot first drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd0)+1
|
||||||
|
}
|
||||||
|
menuentry 'Boot second drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd1)+1
|
||||||
|
}
|
||||||
|
}
|
36
80-rhel/live/config_files/x86/grub2-efi.cfg
Normal file
36
80-rhel/live/config_files/x86/grub2-efi.cfg
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset quiet rhgb
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
39
80-rhel/live/config_files/x86_v2/grub2-bios.cfg
Normal file
39
80-rhel/live/config_files/x86_v2/grub2-bios.cfg
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
insmod chain
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset vga=791 quiet rhgb
|
||||||
|
initrd @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Boot first drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd0)+1
|
||||||
|
}
|
||||||
|
menuentry 'Boot second drive' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
chainloader (hd1)+1
|
||||||
|
}
|
||||||
|
}
|
36
80-rhel/live/config_files/x86_v2/grub2-efi.cfg
Normal file
36
80-rhel/live/config_files/x86_v2/grub2-efi.cfg
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
set default="1"
|
||||||
|
|
||||||
|
function load_video {
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
insmod video_bochs
|
||||||
|
insmod video_cirrus
|
||||||
|
insmod all_video
|
||||||
|
}
|
||||||
|
|
||||||
|
load_video
|
||||||
|
set gfxpayload=keep
|
||||||
|
insmod gzio
|
||||||
|
insmod part_gpt
|
||||||
|
insmod ext2
|
||||||
|
|
||||||
|
set timeout=60
|
||||||
|
### END /etc/grub.d/00_header ###
|
||||||
|
|
||||||
|
search --no-floppy --set=root -l '@ISOLABEL@'
|
||||||
|
|
||||||
|
### BEGIN /etc/grub.d/10_linux ###
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image quiet rhgb
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
submenu 'Troubleshooting -->' {
|
||||||
|
menuentry 'Start @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
|
||||||
|
linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image nomodeset quiet rhgb
|
||||||
|
initrdefi @INITRDPATH@
|
||||||
|
}
|
||||||
|
}
|
58
80-rhel/live/efi.tmpl
Normal file
58
80-rhel/live/efi.tmpl
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<%page args="configdir, KERNELDIR, efiarch32, efiarch64, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
EFIBOOTDIR="EFI/BOOT"
|
||||||
|
APPLE_EFI_ICON=inroot+"/usr/share/pixmaps/bootloader/fedora.icns"
|
||||||
|
APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol"
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${EFIBOOTDIR}
|
||||||
|
mkdir ${EFIBOOTDIR}/fonts/
|
||||||
|
%if efiarch64:
|
||||||
|
install boot/efi/EFI/*/shim${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI
|
||||||
|
install boot/efi/EFI/*/mm${efiarch64|lower}.efi ${EFIBOOTDIR}/
|
||||||
|
install boot/efi/EFI/*/gcd${efiarch64|lower}.efi ${EFIBOOTDIR}/grub${efiarch64|lower}.efi
|
||||||
|
%endif
|
||||||
|
%if efiarch32:
|
||||||
|
install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32}.EFI
|
||||||
|
install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/
|
||||||
|
install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi
|
||||||
|
%endif
|
||||||
|
install usr/share/grub/unicode.pf2 ${EFIBOOTDIR}/fonts/
|
||||||
|
|
||||||
|
## actually make the EFI images
|
||||||
|
${make_efiboot("images/efiboot.img")}
|
||||||
|
|
||||||
|
## This is kinda gross, but then... so's EFI.
|
||||||
|
<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')">
|
||||||
|
<%
|
||||||
|
kdir = EFIBOOTDIR if include_kernel else KERNELDIR
|
||||||
|
eficonf = "%s/grub.cfg" % (EFIBOOTDIR, )
|
||||||
|
args = "--label=ANACONDA"
|
||||||
|
if disk: args += " --disk"
|
||||||
|
%>
|
||||||
|
%if include_kernel:
|
||||||
|
copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR}
|
||||||
|
copy ${KERNELDIR}/initrd.img ${EFIBOOTDIR}
|
||||||
|
%endif
|
||||||
|
install ${configdir}/grub2-efi.cfg ${eficonf}
|
||||||
|
replace @PRODUCT@ '${product.name}' ${eficonf}
|
||||||
|
replace @VERSION@ ${product.version} ${eficonf}
|
||||||
|
replace @KERNELNAME@ vmlinuz ${eficonf}
|
||||||
|
replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf}
|
||||||
|
replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf}
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${eficonf}
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${eficonf}
|
||||||
|
%if disk:
|
||||||
|
replace @ROOT@ root=live:LABEL=ANACONDA ${eficonf}
|
||||||
|
%else:
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${eficonf}
|
||||||
|
%endif
|
||||||
|
%if efiarch32 == 'IA32':
|
||||||
|
copy ${eficonf} ${EFIBOOTDIR}/BOOT.conf
|
||||||
|
%endif
|
||||||
|
runcmd mkefiboot ${args} ${outroot}/${EFIBOOTDIR} ${outroot}/${img}
|
||||||
|
%if include_kernel:
|
||||||
|
remove ${EFIBOOTDIR}/vmlinuz
|
||||||
|
remove ${EFIBOOTDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
</%def>
|
25
80-rhel/live/live-install.tmpl
Normal file
25
80-rhel/live/live-install.tmpl
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
## livemedia-creator: Install packages needed for iso creation using per-arch templates
|
||||||
|
<%page args="basearch"/>
|
||||||
|
|
||||||
|
## arch-specific bootloader packages
|
||||||
|
%if basearch == "aarch64":
|
||||||
|
installpkg efibootmgr
|
||||||
|
installpkg grub2-efi-aa64-cdboot shim-aa64
|
||||||
|
%endif
|
||||||
|
%if basearch in ("x86_64", "x86_64_v2"):
|
||||||
|
installpkg grub2-tools-efi
|
||||||
|
installpkg efibootmgr
|
||||||
|
installpkg shim-x64 grub2-efi-x64-cdboot
|
||||||
|
installpkg shim-ia32 grub2-efi-ia32-cdboot
|
||||||
|
installpkg biosdevname
|
||||||
|
installpkg grub2-tools grub2-tools-minimal grub2-tools-extra
|
||||||
|
installpkg grub2-pc-modules
|
||||||
|
%endif
|
||||||
|
%if basearch == "ppc64le":
|
||||||
|
installpkg powerpc-utils
|
||||||
|
installpkg grub2-tools grub2-tools-minimal grub2-tools-extra
|
||||||
|
installpkg grub2-${basearch}
|
||||||
|
%endif
|
||||||
|
%if basearch == "s390x":
|
||||||
|
installpkg s390utils-base
|
||||||
|
%endif
|
94
80-rhel/live/ppc64le.tmpl
Normal file
94
80-rhel/live/ppc64le.tmpl
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/ppc"
|
||||||
|
BOOTDIR="ppc"
|
||||||
|
GRUBDIR="boot/grub"
|
||||||
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## NOTE: yaboot freaks out and stops parsing its config if it sees a '\',
|
||||||
|
## so we can't use the udev escape sequences in the root arg.
|
||||||
|
## Instead we'll just replace any non-ASCII characters in the isolabel
|
||||||
|
## with '_', which means we won't need any udev escapes.
|
||||||
|
isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${LIVEDIR}
|
||||||
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
||||||
|
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
|
||||||
|
|
||||||
|
## install the bootloaders
|
||||||
|
## ppc/chrp: for normal PPC systems.
|
||||||
|
## uses /ppc/bootinfo.txt in the iso root
|
||||||
|
## uses /boot/grub/grub.cfg in the iso root
|
||||||
|
mkdir ${BOOTDIR}
|
||||||
|
## boot stuff for normal (CHRP/PREP) PPC systems
|
||||||
|
install ${configdir}/bootinfo.txt ${BOOTDIR}
|
||||||
|
|
||||||
|
mkdir ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/core.elf ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/*.mod ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/*.lst ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
|
||||||
|
install ${configdir}/grub.cfg.in ${GRUBDIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUBDIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${GRUBDIR}/grub.cfg
|
||||||
|
|
||||||
|
## Install kernel and bootloader config (in separate places for each arch)
|
||||||
|
%for kernel in kernels:
|
||||||
|
<%
|
||||||
|
bits = 64
|
||||||
|
## separate dirs/images for each arch
|
||||||
|
KERNELDIR=BOOTDIR+"/ppc%s" % bits
|
||||||
|
%>
|
||||||
|
## install kernel
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
|
||||||
|
treeinfo images-${kernel.arch} zimage
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs -v -U -J -R ${isoargs} \
|
||||||
|
-o ${outroot}/images/boot.iso \
|
||||||
|
-r -l -sysid PPC \
|
||||||
|
-A "${product.name} ${product.version}" -V '${isolabel}' \
|
||||||
|
-volset "${product.version}" -volset-size 1 -volset-seqno 1 \
|
||||||
|
-chrp-boot \
|
||||||
|
-graft-points \
|
||||||
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
|
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
||||||
|
${LIVEDIR}=${outroot}/${LIVEDIR} ${filegraft}
|
||||||
|
|
||||||
|
%for kernel in kernels:
|
||||||
|
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
||||||
|
%endfor
|
91
80-rhel/live/s390.tmpl
Normal file
91
80-rhel/live/s390.tmpl
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<%page args="kernels, runtime_img, runtime_base, basearch, outroot, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/s390"
|
||||||
|
BOOTDIR="images"
|
||||||
|
KERNELDIR=BOOTDIR
|
||||||
|
INITRD_ADDRESS="0x02000000"
|
||||||
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
MKS390IMAGE="/usr/bin/mk-s390image"
|
||||||
|
# The assumption seems to be that there is only one s390 kernel, ever
|
||||||
|
kernel = kernels[0]
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
from os.path import basename
|
||||||
|
import os
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${LIVEDIR}
|
||||||
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
||||||
|
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
|
||||||
|
|
||||||
|
mkdir ${BOOTDIR}
|
||||||
|
## install bootloader (such as it is) and bootloader config
|
||||||
|
install ${configdir}/redhat.exec ${BOOTDIR}
|
||||||
|
install ${configdir}/generic.prm ${BOOTDIR}
|
||||||
|
install ${configdir}/cdboot.prm ${BOOTDIR}
|
||||||
|
install ${configdir}/generic.ins .
|
||||||
|
|
||||||
|
## configure bootloader
|
||||||
|
replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${BOOTDIR}/generic.prm
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/cdboot.prm
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${BOOTDIR}/cdboot.prm
|
||||||
|
|
||||||
|
## install kernel
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
|
||||||
|
## s390 needs some extra boot config
|
||||||
|
createaddrsize ${INITRD_ADDRESS} ${outroot}/${BOOTDIR}/initrd.img ${outroot}/${BOOTDIR}/initrd.addrsize
|
||||||
|
|
||||||
|
## s390 also has some special treeinfo data
|
||||||
|
treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize
|
||||||
|
treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm
|
||||||
|
treeinfo images-${basearch} generic.ins generic.ins
|
||||||
|
treeinfo images-${basearch} redhat.exec ${BOOTDIR}/redhat.exec
|
||||||
|
treeinfo images-${basearch} cdboot.prm ${BOOTDIR}/cdboot.prm
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## Make a combined kernel+initrd image for the iso
|
||||||
|
runcmd ${MKS390IMAGE} ${outroot}/${KERNELDIR}/kernel.img \
|
||||||
|
${outroot}/${BOOTDIR}/cdboot.img \
|
||||||
|
-r ${outroot}/${KERNELDIR}/initrd.img \
|
||||||
|
-p ${outroot}/${BOOTDIR}/cdboot.prm
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \
|
||||||
|
-boot-load-size 4 -no-emul-boot \
|
||||||
|
-R -J -V '${isolabel}' -graft-points \
|
||||||
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
|
${filegraft}
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
122
80-rhel/live/x86.tmpl
Normal file
122
80-rhel/live/x86.tmpl
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/x86"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
GRUB2DIR="boot/grub2"
|
||||||
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${LIVEDIR}
|
||||||
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
||||||
|
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
%if kernel.flavor:
|
||||||
|
installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor}
|
||||||
|
installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img
|
||||||
|
%else:
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if basearch == 'x86_64':
|
||||||
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
||||||
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## configure grub2 config file
|
||||||
|
mkdir ${GRUB2DIR}
|
||||||
|
install ${configdir}/grub2-bios.cfg ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @KERNELPATH@ /${KERNELDIR}/vmlinuz ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @INITRDPATH@ /${KERNELDIR}/initrd.img ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${GRUB2DIR}/grub.cfg
|
||||||
|
|
||||||
|
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
<% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
||||||
|
<% efiarch32 = 'IA32' %>
|
||||||
|
%endif
|
||||||
|
%if exists("boot/efi/EFI/*/gcdx64.efi"):
|
||||||
|
<% efiarch64 = 'X64' %>
|
||||||
|
%endif
|
||||||
|
%if (efiarch32 or efiarch64):
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"]; compressargs=""; %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${compressargs} ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the livecd-iso-to-disk script if installed
|
||||||
|
<% f = "usr/bin/livecd-iso-to-disk" %>
|
||||||
|
%if exists(f):
|
||||||
|
install ${f} ${LIVEDIR}/${f|basename}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## Make images/eltoritio.img
|
||||||
|
runcmd grub2-mkimage -O i386-pc-eltorito -d ${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
-o ${outroot}/images/eltorito.img \
|
||||||
|
-p /${GRUB2DIR} \
|
||||||
|
iso9660 biosdisk
|
||||||
|
treeinfo images-${basearch} eltorito.img images/eltorito.img
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-R -J -V '${isolabel}' \
|
||||||
|
--grub2-mbr ${inroot}/usr/lib/grub/i386-pc/boot_hybrid.img \
|
||||||
|
-partition_offset 16 \
|
||||||
|
-appended_part_as_gpt \
|
||||||
|
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B ${outroot}/images/efiboot.img \
|
||||||
|
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
|
||||||
|
-c boot.cat --boot-catalog-hide \
|
||||||
|
-b images/eltorito.img \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
|
-eltorito-alt-boot \
|
||||||
|
-e '--interval:appended_partition_2:all::' -no-emul-boot \
|
||||||
|
-graft-points \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
|
${filegraft} \
|
||||||
|
${GRUB2DIR}=${outroot}/${GRUB2DIR} \
|
||||||
|
${GRUB2DIR}/i386-pc=${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
images/eltorito.img=${outroot}/images/eltorito.img \
|
||||||
|
EFI/BOOT=${outroot}/EFI/BOOT
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
122
80-rhel/live/x86_v2.tmpl
Normal file
122
80-rhel/live/x86_v2.tmpl
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, inroot, outroot, product, isolabel, extra_boot_args"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/x86"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
GRUB2DIR="boot/grub2"
|
||||||
|
LIVEDIR="LiveOS"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir ${LIVEDIR}
|
||||||
|
install ${runtime_img} ${LIVEDIR}/squashfs.img
|
||||||
|
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
%if kernel.flavor:
|
||||||
|
installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor}
|
||||||
|
installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img
|
||||||
|
%else:
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if basearch == 'x86_64_v2':
|
||||||
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
||||||
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## configure grub2 config file
|
||||||
|
mkdir ${GRUB2DIR}
|
||||||
|
install ${configdir}/grub2-bios.cfg ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @KERNELPATH@ /${KERNELDIR}/vmlinuz ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @INITRDPATH@ /${KERNELDIR}/initrd.img ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @EXTRA@ '${extra_boot_args}' ${GRUB2DIR}/grub.cfg
|
||||||
|
|
||||||
|
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
<% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
||||||
|
<% efiarch32 = 'IA32' %>
|
||||||
|
%endif
|
||||||
|
%if exists("boot/efi/EFI/*/gcdx64.efi"):
|
||||||
|
<% efiarch64 = 'X64' %>
|
||||||
|
%endif
|
||||||
|
%if (efiarch32 or efiarch64):
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"]; compressargs=""; %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${compressargs} ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Add the livecd-iso-to-disk script if installed
|
||||||
|
<% f = "usr/bin/livecd-iso-to-disk" %>
|
||||||
|
%if exists(f):
|
||||||
|
install ${f} ${LIVEDIR}/${f|basename}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## Make images/eltoritio.img
|
||||||
|
runcmd grub2-mkimage -O i386-pc-eltorito -d ${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
-o ${outroot}/images/eltorito.img \
|
||||||
|
-p /${GRUB2DIR} \
|
||||||
|
iso9660 biosdisk
|
||||||
|
treeinfo images-${basearch} eltorito.img images/eltorito.img
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-R -J -V '${isolabel}' \
|
||||||
|
--grub2-mbr ${inroot}/usr/lib/grub/i386-pc/boot_hybrid.img \
|
||||||
|
-partition_offset 16 \
|
||||||
|
-appended_part_as_gpt \
|
||||||
|
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B ${outroot}/images/efiboot.img \
|
||||||
|
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
|
||||||
|
-c boot.cat --boot-catalog-hide \
|
||||||
|
-b images/eltorito.img \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
|
-eltorito-alt-boot \
|
||||||
|
-e '--interval:appended_partition_2:all::' -no-emul-boot \
|
||||||
|
-graft-points \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${LIVEDIR}=${outroot}/${LIVEDIR} \
|
||||||
|
${filegraft} \
|
||||||
|
${GRUB2DIR}=${outroot}/${GRUB2DIR} \
|
||||||
|
${GRUB2DIR}/i386-pc=${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
images/eltorito.img=${outroot}/images/eltorito.img \
|
||||||
|
EFI/BOOT=${outroot}/EFI/BOOT
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
101
80-rhel/ppc64le.tmpl
Normal file
101
80-rhel/ppc64le.tmpl
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/ppc"
|
||||||
|
BOOTDIR="ppc"
|
||||||
|
GRUBDIR="boot/grub"
|
||||||
|
STAGE2IMG="images/install.img"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir images
|
||||||
|
install ${runtime_img} ${STAGE2IMG}
|
||||||
|
treeinfo stage2 mainimage ${STAGE2IMG}
|
||||||
|
|
||||||
|
## install the bootloaders
|
||||||
|
## ppc/chrp: for normal PPC systems.
|
||||||
|
## uses /ppc/bootinfo.txt in the iso root
|
||||||
|
## uses /boot/grub/grub.cfg in the iso root
|
||||||
|
mkdir ${BOOTDIR}
|
||||||
|
## boot stuff for normal (CHRP/PREP) PPC systems
|
||||||
|
install ${configdir}/bootinfo.txt ${BOOTDIR}
|
||||||
|
|
||||||
|
mkdir ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/core.elf ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/*.mod ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
install /usr/lib/grub/powerpc-ieee1275/*.lst ${GRUBDIR}/powerpc-ieee1275
|
||||||
|
|
||||||
|
install ${configdir}/grub.cfg.in ${GRUBDIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUBDIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg
|
||||||
|
|
||||||
|
## Install kernel and bootloader config (in separate places for each arch)
|
||||||
|
%for kernel in kernels:
|
||||||
|
<%
|
||||||
|
bits = 64
|
||||||
|
## separate dirs/images for each arch
|
||||||
|
KERNELDIR=BOOTDIR+"/ppc%s" % bits
|
||||||
|
%>
|
||||||
|
## install kernel
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
|
||||||
|
treeinfo images-${kernel.arch} zimage
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Inherit iso-graft/ if it exists from external templates
|
||||||
|
<%
|
||||||
|
import os
|
||||||
|
if os.path.exists(workdir + "/iso-graft"):
|
||||||
|
filegraft += " " + workdir + "/iso-graft"
|
||||||
|
%>
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs -v -U -J -R ${isoargs} \
|
||||||
|
-o ${outroot}/images/boot.iso \
|
||||||
|
-r -l -sysid PPC \
|
||||||
|
-A "${product.name} ${product.version}" -V '${isolabel}' \
|
||||||
|
-volset "${product.version}" -volset-size 1 -volset-seqno 1 \
|
||||||
|
-chrp-boot \
|
||||||
|
-graft-points \
|
||||||
|
.discinfo=${outroot}/.discinfo \
|
||||||
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
|
${GRUBDIR}=${outroot}/${GRUBDIR} \
|
||||||
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} ${filegraft}
|
||||||
|
|
||||||
|
%for kernel in kernels:
|
||||||
|
treeinfo images-${kernel.arch} boot.iso images/boot.iso
|
||||||
|
%endfor
|
3
80-rhel/pxe-live/pxe-config.tmpl
Normal file
3
80-rhel/pxe-live/pxe-config.tmpl
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# PXE configuration template generated by livemedia-creator
|
||||||
|
kernel <PXE_DIR>${kernel}
|
||||||
|
append initrd=<PXE_DIR>${initrd} root=live:<URL>/${liveimg} ${addargs}
|
370
80-rhel/runtime-cleanup.tmpl
Normal file
370
80-rhel/runtime-cleanup.tmpl
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
## lorax template file: cleanup for the ramdisk (runtime image)
|
||||||
|
<%page args="libdir, branding, root"/>
|
||||||
|
|
||||||
|
## remove the sources
|
||||||
|
remove usr/share/i18n
|
||||||
|
|
||||||
|
## not required packages installed as dependencies
|
||||||
|
## perl is needed on s390x
|
||||||
|
## perl needed for powerpc-utils
|
||||||
|
## perl is needed by /usr/bin/rxe_cfg from libibverbs
|
||||||
|
|
||||||
|
## we don't create new initramfs/bootloader conf inside anaconda
|
||||||
|
## (that happens inside the target system after we install dracut/grubby)
|
||||||
|
removepkg dracut-network grubby anaconda-dracut
|
||||||
|
## In order to execute the /usr move on upgrades we need convertfs from dracut
|
||||||
|
## We also need dracut-shutdown.service and dracut-initramfs-restore to reboot
|
||||||
|
removefrom dracut --allbut /usr/lib/dracut/modules.d/30convertfs/convertfs.sh \
|
||||||
|
/usr/lib/dracut/modules.d/99base/dracut-lib.sh \
|
||||||
|
/usr/lib/systemd/* /usr/lib/dracut/modules.d/98dracut-systemd/*.service \
|
||||||
|
/usr/lib/dracut/dracut-initramfs-restore
|
||||||
|
## we don't run SELinux (not in enforcing, anyway)
|
||||||
|
removepkg selinux-policy libselinux-utils
|
||||||
|
|
||||||
|
## selinux checks for the /etc/selinux/config file's existance
|
||||||
|
## The removepkg above removes it, create an empty one. See rhbz#1243168
|
||||||
|
append etc/selinux/config ""
|
||||||
|
|
||||||
|
## keep enough of shadow-utils to create accounts
|
||||||
|
removefrom shadow-utils --allbut /usr/bin/chage /usr/sbin/chpasswd \
|
||||||
|
/usr/sbin/groupadd /usr/sbin/useradd
|
||||||
|
|
||||||
|
## no services to turn on/off (keep the /etc/init.d link though)
|
||||||
|
removefrom initscripts /usr/sbin/* /usr/share/locale/* /usr/share/doc/* /usr/share/man/*
|
||||||
|
|
||||||
|
## no storage device monitoring
|
||||||
|
removepkg device-mapper-event
|
||||||
|
## logrotate isn't useful in anaconda
|
||||||
|
remove /etc/logrotate.d
|
||||||
|
## anaconda needs this to do media check
|
||||||
|
removefrom isomd5sum --allbut /usr/bin/checkisomd5
|
||||||
|
|
||||||
|
## there's no need for a bunch of zsh files without zsh,
|
||||||
|
## systemd-analyze is quite large and not essential
|
||||||
|
removefrom systemd /usr/bin/systemd-analyze /usr/share/zsh/site-functions/*
|
||||||
|
|
||||||
|
## we only need syslinux to make the installer image bootable, we don't
|
||||||
|
## run anything from it that uses mtools, and that's the only thing
|
||||||
|
## that pulls in glibc-gconv-extra
|
||||||
|
removepkg mtools glibc-gconv-extra
|
||||||
|
|
||||||
|
## various other things we remove to save space
|
||||||
|
removepkg diffutils file
|
||||||
|
removepkg lvm2-libs
|
||||||
|
removepkg mobile-broadband-provider-info
|
||||||
|
removepkg rmt rpcbind squashfs-tools
|
||||||
|
removepkg xml-common
|
||||||
|
removepkg mkfontscale fonttosfnt
|
||||||
|
# do not remove this, required for ppc64le and s390x !!!
|
||||||
|
removepkg ncurses
|
||||||
|
|
||||||
|
## other removals
|
||||||
|
remove /home /media /opt /srv /tmp/*
|
||||||
|
remove /usr/etc /usr/games /usr/local /usr/tmp
|
||||||
|
remove /usr/share/doc /usr/share/info /usr/share/man /usr/share/gnome
|
||||||
|
remove /usr/share/mime/application /usr/share/mime/audio /usr/share/mime/image
|
||||||
|
remove /usr/share/mime/inode /usr/share/mime/message /usr/share/mime/model
|
||||||
|
remove /usr/share/mime/multipart /usr/share/mime/packages /usr/share/mime/text
|
||||||
|
remove /usr/share/mime/video /usr/share/mime/x-content /usr/share/mime/x-epoc
|
||||||
|
remove /var/db /var/games /var/tmp /var/yp /var/nis /var/opt /var/local
|
||||||
|
remove /var/mail /var/spool /var/preserve /var/report
|
||||||
|
remove /usr/lib/sysimage/rpm/* /var/lib/rpm/* /var/lib/yum /var/lib/dnf
|
||||||
|
## clean up the files created by various '> /dev/null's
|
||||||
|
remove /dev/*
|
||||||
|
|
||||||
|
## icons cache
|
||||||
|
remove /usr/share/icons/*/icon-theme.cache
|
||||||
|
|
||||||
|
## clean up kernel modules
|
||||||
|
removekmod sound drivers/media drivers/hwmon drivers/iio \
|
||||||
|
net/atm net/bluetooth net/sched net/sctp \
|
||||||
|
net/rds net/l2tp net/decnet net/netfilter net/ipv4 net/ipv6 \
|
||||||
|
drivers/watchdog drivers/rtc drivers/input/joystick \
|
||||||
|
drivers/bluetooth drivers/edac drivers/staging \
|
||||||
|
drivers/usb/serial drivers/usb/host drivers/usb/misc \
|
||||||
|
fs/ocfs2 fs/ceph fs/nfsd fs/ubifs fs/nilfs2 \
|
||||||
|
arch/x86/kvm
|
||||||
|
## Need to keep virtio_console.ko and ipmi stuff in drivers/char
|
||||||
|
## Also keep virtio-rng so that the installer can get sufficient randomness for
|
||||||
|
## LUKS setup. As of 2020-09 this is not built as a module, but keep it in here
|
||||||
|
## in case that changes again
|
||||||
|
removekmod drivers/char --allbut virtio_console hw_random \
|
||||||
|
virtio-rng ipmi hmcdrv nvram
|
||||||
|
removekmod drivers/hid --allbut hid-logitech-dj hid-logitech-hidpp hid-multitouch
|
||||||
|
|
||||||
|
## As of 2020-09 most of this are built-in too, but again, keep them listed
|
||||||
|
removekmod drivers/video --allbut hyperv_fb syscopyarea sysfillrect sysimgblt fb_sys_fops
|
||||||
|
remove lib/modules/*/{build,source,*.map}
|
||||||
|
## NOTE: depmod gets re-run after cleanup finishes
|
||||||
|
|
||||||
|
## remove unused themes, theme engines, icons, etc.
|
||||||
|
removefrom gtk3 /usr/${libdir}/gtk-3.0/*/printbackends/*
|
||||||
|
removefrom gtk3 /usr/share/themes/*
|
||||||
|
|
||||||
|
## filesystem tools
|
||||||
|
removefrom e2fsprogs /usr/share/locale/*
|
||||||
|
removefrom xfsprogs /usr/share/locale/* /usr/share/doc/* /usr/share/man/*
|
||||||
|
removefrom xfsdump --allbut /usr/sbin/*
|
||||||
|
|
||||||
|
## other package specific removals
|
||||||
|
removefrom gsettings-desktop-schemas /usr/share/locale/*
|
||||||
|
removefrom NetworkManager-libnm /usr/share/locale/*/NetworkManager.mo
|
||||||
|
removefrom nm-connection-editor /usr/share/applications/*
|
||||||
|
removefrom atk /usr/share/locale/*
|
||||||
|
removefrom bash /etc/* /usr/bin/bashbug* /usr/share/*
|
||||||
|
removefrom bind-utils /usr/bin/host /usr/bin/nsupdate
|
||||||
|
removefrom ca-certificates /etc/pki/java/*
|
||||||
|
removefrom ca-certificates /etc/pki/tls/certs/ca-bundle.trust.crt
|
||||||
|
removefrom coreutils /usr/bin/link /usr/bin/nice /usr/bin/stty /usr/bin/unlink
|
||||||
|
removefrom coreutils /usr/bin/[ /usr/bin/base64 /usr/bin/chcon
|
||||||
|
removefrom coreutils /usr/bin/cksum /usr/bin/csplit
|
||||||
|
removefrom coreutils /usr/bin/dir /usr/bin/dircolors
|
||||||
|
removefrom coreutils /usr/bin/expand /usr/bin/factor
|
||||||
|
removefrom coreutils /usr/bin/fold /usr/bin/groups /usr/bin/hostid
|
||||||
|
removefrom coreutils /usr/bin/install /usr/bin/join /usr/bin/logname
|
||||||
|
removefrom coreutils /usr/bin/mkfifo /usr/bin/nl /usr/bin/nohup /usr/bin/nproc
|
||||||
|
removefrom coreutils /usr/bin/pathchk
|
||||||
|
removefrom coreutils /usr/bin/pinky /usr/bin/pr /usr/bin/printenv
|
||||||
|
removefrom coreutils /usr/bin/printf /usr/bin/ptx /usr/bin/runcon
|
||||||
|
removefrom coreutils /usr/bin/sha224sum /usr/bin/sha384sum
|
||||||
|
removefrom coreutils /usr/bin/sha512sum /usr/bin/shuf /usr/bin/stat
|
||||||
|
removefrom coreutils /usr/bin/stdbuf /usr/bin/sum /usr/bin/test
|
||||||
|
removefrom coreutils /usr/bin/timeout /usr/bin/truncate /usr/bin/tsort
|
||||||
|
removefrom coreutils /usr/bin/unexpand /usr/bin/users /usr/bin/vdir
|
||||||
|
removefrom coreutils /usr/bin/who /usr/bin/whoami /usr/bin/yes
|
||||||
|
removefrom coreutils-common /etc/* /usr/share/*
|
||||||
|
removefrom cpio /usr/share/*
|
||||||
|
removefrom cracklib /usr/sbin/*
|
||||||
|
removefrom cracklib-dicts /usr/${libdir}/* /usr/sbin/*
|
||||||
|
removefrom cryptsetup /usr/share/*
|
||||||
|
removefrom cryptsetup-libs /usr/share/locale/*
|
||||||
|
removefrom cyrus-sasl-lib /usr/sbin/* /usr/bin/*
|
||||||
|
removefrom dbus-x11 /etc/X11/*
|
||||||
|
removefrom dnf /usr/share/locale/*
|
||||||
|
removefrom dump /etc/*
|
||||||
|
removefrom elfutils-libelf /usr/share/locale/*
|
||||||
|
removefrom expat /usr/bin/*
|
||||||
|
removefrom fcoe-utils /usr/libexec/fcoe/dcbcheck.sh
|
||||||
|
removefrom fcoe-utils /usr/libexec/fcoe/fcc.sh /usr/libexec/fcoe/fcoe-setup.sh
|
||||||
|
removefrom fcoe-utils /usr/libexec/fcoe/fcoedump.sh /usr/sbin/fcnsq
|
||||||
|
removefrom fcoe-utils /usr/sbin/fcoeadm /usr/sbin/fcping /usr/sbin/fcrls
|
||||||
|
removefrom file-libs /usr/share/*
|
||||||
|
removefrom findutils /usr/share/*
|
||||||
|
removefrom fontconfig /usr/bin/*
|
||||||
|
removefrom gawk /usr/libexec/* /usr/share/*
|
||||||
|
removefrom gdb /usr/share/* /usr/include/*
|
||||||
|
removefrom gdb-headless /usr/share/* /etc/gdbinit*
|
||||||
|
removefrom gdk-pixbuf2 /usr/share/locale*
|
||||||
|
removefrom glib2 /usr/bin/* /usr/share/locale/*
|
||||||
|
removefrom glibc /etc/gai.conf /etc/rpc
|
||||||
|
removefrom glibc /${libdir}/libBrokenLocale*
|
||||||
|
removefrom glibc /${libdir}/libanl*
|
||||||
|
removefrom glibc /${libdir}/libnss_compat*
|
||||||
|
# python-pyudev uses ctypes.util.find_library, which uses /sbin/ldconfig
|
||||||
|
removefrom glibc /usr/libexec/* /usr/sbin/*
|
||||||
|
removefrom glibc-common /usr/bin/gencat
|
||||||
|
removefrom glibc-common /usr/bin/getent
|
||||||
|
removefrom glibc-common /usr/bin/locale /usr/bin/sprof
|
||||||
|
# NB: we keep /usr/bin/localedef so anaconda can inspect payload locale info
|
||||||
|
removefrom glibc-common /usr/bin/tzselect
|
||||||
|
removefrom glibc-common /usr/sbin/*
|
||||||
|
removefrom gnutls /usr/share/locale/*
|
||||||
|
removefrom google-noto-sans-cjk-fonts /usr/share/fonts/google-noto-sans-cjk-fonts/NotoSansCJK-{Black,Bold,*Light,Medium,Thin}.ttc
|
||||||
|
removefrom google-noto-sans-vf-fonts /usr/share/fonts/google-noto-vf/NotoSans-Italic-VF.ttf
|
||||||
|
removefrom google-noto-serif-vf-fonts /usr/share/fonts/google-noto-vf/NotoSerif*
|
||||||
|
removefrom grep /etc/* /usr/share/locale/*
|
||||||
|
removefrom gtk3 /usr/${libdir}/gtk-3.0/*
|
||||||
|
removefrom gtk4 /usr/${libdir}/gtk-4.0/*
|
||||||
|
removefrom guile22 /usr/${libdir}/guile/2.2/ccache*
|
||||||
|
removefrom gzip /usr/bin/{gzexe,zcmp,zdiff,zegrep,zfgrep,zforce,zgrep,zless,zmore,znew}
|
||||||
|
removefrom hwdata /usr/share/hwdata/oui.txt /usr/share/hwdata/pnp.ids
|
||||||
|
removefrom iproute --allbut /usr/sbin/{ip,routef,routel,rtpr}
|
||||||
|
removefrom kbd --allbut */bin/{dumpkeys,kbd_mode,loadkeys,setfont,unicode_*,chvt}
|
||||||
|
removefrom less /etc/*
|
||||||
|
removefrom libX11-common /usr/share/X11/XErrorDB
|
||||||
|
removefrom libcanberra /usr/${libdir}/libcanberra-*
|
||||||
|
removefrom libcanberra-gtk3 /usr/bin/*
|
||||||
|
removefrom libcap /usr/sbin/*
|
||||||
|
removefrom libconfig /usr/${libdir}/libconfig++*
|
||||||
|
removefrom liberation-sans-fonts /usr/share/fonts/liberation-sans/LiberationSans-{Bold*,Italic}.ttf
|
||||||
|
removefrom liberation-serif-fonts /usr/share/fonts/liberation-serif/*
|
||||||
|
removefrom liberation-mono-fonts /usr/share/fonts/liberation-mono/LiberationMono-{Bold*,Italic}.ttf
|
||||||
|
removefrom libgpg-error /usr/bin/* /usr/share/locale/*
|
||||||
|
removefrom libibverbs /usr/${libdir}/libmlx4*
|
||||||
|
removefrom libidn2 /usr/share/locale/*
|
||||||
|
removefrom libnotify /usr/bin/*
|
||||||
|
removefrom libsemanage /etc/selinux/*
|
||||||
|
removefrom libstdc++ /usr/share/*
|
||||||
|
removefrom libxml2 /usr/bin/*
|
||||||
|
removefrom brcmfmac-firmware /usr/lib/firmware/brcm/BCM-*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/ttusb-budget/dspbootcode.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/emi26/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/emi62/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/cpia2/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/dabusb/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/vicam/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/dsp56k/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/sun/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/usbdux*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/f2255usb.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/TDA7706*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/tlg2300_firmware.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/s5p-mfc*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/go7007/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/intel/IntcSST2.bin*
|
||||||
|
removefrom qcom-firmware /usr/lib/firmware/qcom/apq8096/*
|
||||||
|
removefrom qcom-firmware /usr/lib/firmware/qcom/sdm845/*
|
||||||
|
removefrom qcom-firmware /usr/lib/firmware/qcom/sm8250/*
|
||||||
|
removefrom qcom-firmware /usr/lib/firmware/qcom/venus*/*
|
||||||
|
removefrom qcom-firmware /usr/lib/firmware/qcom/vpu*/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/meson/vdec/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/phanfw.bin*
|
||||||
|
## these are for SoCs used in Chromebooks, our kernel does not build the drivers
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/mediatek/mt81*/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/mediatek/sof/*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/mediatek/sof-tplg/*
|
||||||
|
## these are old versions that current qed driver will never load
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.10.9.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.10.9.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.14.6.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.18.9.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.20.0.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.30.12.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.33.12.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.37.7.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values-8.40.33.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.10.10.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.10.5.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.15.3.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.20.0.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.33.1.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.33.11.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.37.2.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.37.7.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.4.2.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.42.2.0.bin*
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/qed/qed_init_values_zipped-8.7.3.0.bin*
|
||||||
|
%if basearch != "aarch64":
|
||||||
|
removefrom linux-firmware /usr/lib/firmware/dpaa2/*
|
||||||
|
%endif
|
||||||
|
removefrom lldpad /etc/*
|
||||||
|
removefrom mdadm /etc/* /usr/lib/systemd/system/mdmonitor*
|
||||||
|
## gallium-pipe stuff is for compute (opencl), not needed for video
|
||||||
|
removefrom mesa-dri-drivers /usr/${libdir}/dri/*_video.so /usr/lib64/gallium-pipe/*
|
||||||
|
removefrom mt-st /usr/sbin/*
|
||||||
|
removefrom mtools /etc/*
|
||||||
|
removefrom ncurses-libs /usr/${libdir}/libform*
|
||||||
|
## libmenu.so is needed by lp_diag binary from ppc64-diag which is a PowerPC specific package
|
||||||
|
%if basearch != "ppc64le":
|
||||||
|
removefrom ncurses-libs /usr/${libdir}/libmenu*
|
||||||
|
%endif
|
||||||
|
removefrom ncurses-libs /usr/${libdir}/libpanel.* /usr/${libdir}/libtic*
|
||||||
|
removefrom net-tools */bin/netstat */sbin/ether-wake */sbin/ipmaddr
|
||||||
|
removefrom net-tools */sbin/iptunnel */sbin/mii-diag */sbin/mii-tool
|
||||||
|
removefrom net-tools */sbin/nameif */sbin/plipconfig */sbin/slattach
|
||||||
|
removefrom net-tools /usr/share/locale/*
|
||||||
|
removefrom nfs-utils /etc/nfsmount.conf
|
||||||
|
removefrom nfs-utils /usr/lib/systemd/system/*
|
||||||
|
removefrom nfs-utils /sbin/rpc.statd /usr/sbin/exportfs
|
||||||
|
removefrom nfs-utils /usr/sbin/mountstats /usr/sbin/nfsiostat
|
||||||
|
removefrom nfs-utils /usr/sbin/nfsstat /usr/sbin/rpc.gssd /usr/sbin/rpc.idmapd
|
||||||
|
removefrom nfs-utils /usr/sbin/rpc.mountd /usr/sbin/rpc.nfsd
|
||||||
|
removefrom nfs-utils /usr/sbin/rpcdebug
|
||||||
|
removefrom nfs-utils /usr/sbin/showmount /usr/sbin/sm-notify
|
||||||
|
removefrom nfs-utils /usr/sbin/start-statd /var/lib/nfs/etab
|
||||||
|
removefrom nfs-utils /var/lib/nfs/rmtab /var/lib/nfs/statd/state
|
||||||
|
removefrom nss-softokn /usr/${libdir}/nss/*
|
||||||
|
removefrom openldap /etc/openldap/*
|
||||||
|
removefrom openssh /usr/libexec/*
|
||||||
|
removefrom openssh-clients /etc/ssh/* /usr/bin/ssh-*
|
||||||
|
removefrom openssh-clients /usr/libexec/*
|
||||||
|
removefrom openssh-server /etc/ssh/* /usr/libexec/openssh/sftp-server
|
||||||
|
removefrom pam /usr/share/locale/*
|
||||||
|
removefrom policycoreutils /etc/* /usr/bin/* /usr/share/locale/*
|
||||||
|
removefrom polkit /usr/bin/*
|
||||||
|
removefrom popt /usr/share/locale/*
|
||||||
|
removefrom procps-ng /usr/bin/free /usr/bin/pgrep /usr/bin/pkill
|
||||||
|
removefrom procps-ng /usr/bin/pmap /usr/bin/pwdx /usr/bin/skill /usr/bin/slabtop
|
||||||
|
removefrom procps-ng /usr/bin/snice /usr/bin/tload /usr/bin/uptime
|
||||||
|
removefrom procps-ng /usr/bin/vmstat /usr/bin/w /usr/bin/watch
|
||||||
|
removefrom psmisc /usr/share/locale/*
|
||||||
|
removefrom python3-kickstart /usr/lib/python*/site-packages/pykickstart/locale/*
|
||||||
|
removefrom readline /usr/${libdir}/libhistory*
|
||||||
|
removefrom rdma-core /etc/rdma/mlx4.conf
|
||||||
|
removefrom rpm /usr/bin/* /usr/share/locale/*
|
||||||
|
removefrom rsync /etc/*
|
||||||
|
removefrom sed /usr/share/locale/*
|
||||||
|
removefrom sil-padauk-fonts /usr/share/fonts/sil-padauk-fonts/Padauk-Bold.ttf
|
||||||
|
removefrom smartmontools /etc/* /usr/sbin/smartd
|
||||||
|
removefrom smartmontools /usr/sbin/update-smart-drivedb
|
||||||
|
removefrom smartmontools /usr/share/smartmontools/*
|
||||||
|
removefrom tar /usr/share/locale/*
|
||||||
|
removefrom usbutils /usr/bin/*
|
||||||
|
removefrom util-linux --allbut \
|
||||||
|
/usr/bin/{chmem,eject,getopt,hexdump,login,lscpu,lsmem,lsblk,setpriv} \
|
||||||
|
/etc/pam.d/login /etc/pam.d/remote \
|
||||||
|
/usr/sbin/{clock,fdisk,fsfreeze,fstrim,hwclock,nologin,sfdisk,swaplabel,wipefs,zramctl}
|
||||||
|
removefrom util-linux-core --allbut \
|
||||||
|
/usr/bin/{dmesg,findmnt,flock,kill,logger,more,mount,mountpoint,umount,unshare} \
|
||||||
|
/etc/mtab \
|
||||||
|
/usr/sbin/{agetty,blkid,blockdev,fsck,losetup,mkswap,partx,swapoff,swapon}
|
||||||
|
removefrom volume_key-libs /usr/share/locale/*
|
||||||
|
removefrom wget /etc/* /usr/share/locale/*
|
||||||
|
removefrom wpa_supplicant /usr/sbin/eapol_test
|
||||||
|
removefrom yelp /usr/share/yelp/mathjax*
|
||||||
|
|
||||||
|
%if branding.release:
|
||||||
|
removefrom ${branding.logos} /usr/share/plymouth/*
|
||||||
|
removefrom ${branding.logos} /etc/*
|
||||||
|
removefrom ${branding.logos} /usr/share/icons/{Bluecurve,oxygen}/*
|
||||||
|
removefrom ${branding.logos} /usr/share/{kde4,pixmaps}/*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## cleanup /boot/ leaving vmlinuz, and .*hmac files
|
||||||
|
runcmd chroot ${root} find /boot \! -name "vmlinuz*" \
|
||||||
|
-and \! -name ".vmlinuz*" \
|
||||||
|
-and \! -name boot -delete
|
||||||
|
|
||||||
|
## remove any broken links in /etc or /usr
|
||||||
|
## (broken systemd service links lead to confusing noise at boot)
|
||||||
|
## NOTE: not checking /var because we want to keep /var/run
|
||||||
|
## NOTE: Excluding /etc/mtab which links to /proc/self/mounts for systemd
|
||||||
|
runcmd chroot ${root} find -L /etc /usr -xdev -type l -and \! -name "mtab" \
|
||||||
|
-printf "removing broken symbolic link %p -> %l\n" -delete
|
||||||
|
|
||||||
|
## Remove compiled python files, they are recreated as needed anyway
|
||||||
|
runcmd find ${root} -name "*.pyo" -type f -delete
|
||||||
|
runcmd find ${root} -name "*.pyc" -type f -delete
|
||||||
|
|
||||||
|
## Clean up some of the mess pulled in by webkitgtk via yelp
|
||||||
|
## libwebkit2gtk links to a handful of libraries in gstreamer and
|
||||||
|
## gstreamer-plugins-base. Remove the rest of them.
|
||||||
|
removefrom gstreamer1 --allbut /usr/${libdir}/libgstbase-1.0.* \
|
||||||
|
/usr/${libdir}/libgstreamer-1.0.*
|
||||||
|
removefrom gstreamer1-plugins-base --allbut \
|
||||||
|
/usr/${libdir}/libgst{allocators,app,audio,fft,gl,pbutils,tag,video}-1.0.*
|
||||||
|
|
||||||
|
## We have enough geoip libraries, thanks
|
||||||
|
removepkg geoclue2
|
||||||
|
|
||||||
|
## And remove the packages that those extra libraries pulled in
|
||||||
|
removepkg cdparanoia-libs avahi-glib avahi-libs ModemManager-glib
|
||||||
|
|
||||||
|
## Remove build-id links, they are used with debuginfo
|
||||||
|
remove /usr/lib/.build-id
|
||||||
|
|
||||||
|
## make the image more reproducible
|
||||||
|
|
||||||
|
## make machine-id empty but present to avoid systemd populating /etc with
|
||||||
|
## preset settings
|
||||||
|
remove /etc/machine-id
|
||||||
|
append /etc/machine-id ""
|
||||||
|
## journalctl message catalog, non-deterministic
|
||||||
|
remove /var/lib/systemd/catalog/database
|
||||||
|
## non-reproducible caches
|
||||||
|
remove /var/cache/ldconfig/aux-cache
|
||||||
|
remove /etc/pki/ca-trust/extracted/java/cacerts
|
||||||
|
|
||||||
|
## sort groups
|
||||||
|
runcmd chroot ${root} /bin/sh -c "LC_ALL=C sort /etc/group > /etc/group- && mv /etc/group- /etc/group"
|
||||||
|
runcmd chroot ${root} /bin/sh -c "LC_ALL=C sort /etc/gshadow > /etc/gshadow- && mv /etc/gshadow- /etc/gshadow"
|
170
80-rhel/runtime-install.tmpl
Normal file
170
80-rhel/runtime-install.tmpl
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
## lorax template file: populate the ramdisk (runtime image)
|
||||||
|
<%page args="basearch, product"/>
|
||||||
|
<%
|
||||||
|
# Version 1:2.06-3 of grub2 moves the font directory and is needed to keep the efi template from failing.
|
||||||
|
# Version 1:2.06-67 of grub2 includes all needed modules in the signed core.elf for ppc64le
|
||||||
|
GRUB2VER="1:2.06-67"
|
||||||
|
%>
|
||||||
|
|
||||||
|
## anaconda package
|
||||||
|
installpkg anaconda anaconda-widgets kdump-anaconda-addon anaconda-install-img-deps
|
||||||
|
installpkg redhat-release-eula
|
||||||
|
|
||||||
|
## FIXME Pull in device-mapper-multipath
|
||||||
|
## This *should* be pulled in by libblockdev-plugins-all and libblockdev-mpath but it is not
|
||||||
|
installpkg device-mapper-multipath
|
||||||
|
|
||||||
|
## Other available payloads
|
||||||
|
installpkg dnf
|
||||||
|
installpkg rpm-ostree ostree
|
||||||
|
## speed up compression on multicore systems
|
||||||
|
installpkg pigz
|
||||||
|
|
||||||
|
## kernel and firmware
|
||||||
|
## NOTE: Without explicitly including kernel-modules-extra dnf will choose kernel-debuginfo-*
|
||||||
|
## to satify a gfs2-utils kmod requirement
|
||||||
|
installpkg kernel kernel-modules kernel-modules-extra
|
||||||
|
installpkg grubby
|
||||||
|
%if basearch != "s390x":
|
||||||
|
## skip the firmware for sound, video, and scanners, none of which will
|
||||||
|
## do much good for the installer. Also skip uhd-firmware which is not
|
||||||
|
## even a kernel firmware package. liquidio and netronome firmwares are
|
||||||
|
## for enterprise switch devices, netinst deployment does not work on
|
||||||
|
## these so there is no point shipping them - see
|
||||||
|
## https://bugzilla.redhat.com/show_bug.cgi?id=2011615
|
||||||
|
## bfa-firmware contains only obsolete files - see
|
||||||
|
## https://bugzilla.redhat.com/show_bug.cgi?id=2152202
|
||||||
|
## Only install qcom-firmware on aarch64
|
||||||
|
## Exclude the audio firmware which is unused on the boot.iso
|
||||||
|
installpkg --optional *-firmware --except alsa* --except midisport-firmware \
|
||||||
|
--except crystalhd-firmware --except ivtv-firmware \
|
||||||
|
--except cx18-firmware --except iscan-firmware \
|
||||||
|
--except uhd-firmware --except lulzbot-marlin-firmware \
|
||||||
|
--except gnome-firmware --except sigrok-firmware \
|
||||||
|
--except liquidio-firmware --except netronome-firmware \
|
||||||
|
--except mrvlprestera-firmware --except mlxsw_spectrum-firmware \
|
||||||
|
--except hackrf-firmware --except python-virt-firmware \
|
||||||
|
--except python3-virt-firmware --except qcom-firmware \
|
||||||
|
--except dvb-firmware --except intel-vsc-firmware \
|
||||||
|
--except cirrus-audio-firmware --except intel-audio-firmware
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## install all of the glibc langpacks since otherwise we get no locales
|
||||||
|
installpkg glibc-all-langpacks
|
||||||
|
|
||||||
|
## arch-specific packages (bootloaders etc.)
|
||||||
|
%if basearch == "aarch64":
|
||||||
|
installpkg efibootmgr
|
||||||
|
installpkg grub2-efi-aa64-cdboot>=${GRUB2VER}
|
||||||
|
installpkg grub2-tools>=${GRUB2VER}
|
||||||
|
installpkg shim-aa64
|
||||||
|
installpkg qcom-firmware
|
||||||
|
%endif
|
||||||
|
%if basearch in ("x86_64", "x86_64_v2"):
|
||||||
|
installpkg grub2-tools-efi>=${GRUB2VER}
|
||||||
|
installpkg efibootmgr
|
||||||
|
installpkg shim-x64
|
||||||
|
installpkg grub2-efi-x64-cdboot>=${GRUB2VER}
|
||||||
|
installpkg biosdevname
|
||||||
|
installpkg grub2-tools>=${GRUB2VER} grub2-tools-minimal>=${GRUB2VER}
|
||||||
|
installpkg grub2-tools-extra>=${GRUB2VER}
|
||||||
|
installpkg grub2-pc-modules>=${GRUB2VER}
|
||||||
|
%endif
|
||||||
|
%if basearch == "ppc64le":
|
||||||
|
installpkg powerpc-utils lsvpd ppc64-diag
|
||||||
|
installpkg grub2-tools>=${GRUB2VER} grub2-tools-minimal>=${GRUB2VER}
|
||||||
|
installpkg grub2-tools-extra>=${GRUB2VER} grub2-${basearch}>=${GRUB2VER}
|
||||||
|
%endif
|
||||||
|
%if basearch == "s390x":
|
||||||
|
installpkg lsscsi s390utils-base s390utils-cmsfs-fuse s390utils-hmcdrvfs
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## yay, plymouth
|
||||||
|
installpkg plymouth
|
||||||
|
|
||||||
|
## extra dracut modules
|
||||||
|
installpkg anaconda-dracut dracut-network dracut-config-generic
|
||||||
|
|
||||||
|
## import-state.service for switchroot
|
||||||
|
installpkg initscripts
|
||||||
|
|
||||||
|
## rescue needs this
|
||||||
|
installpkg cryptsetup
|
||||||
|
|
||||||
|
## rpcbind or portmap needed by dracut nfs module
|
||||||
|
installpkg rpcbind
|
||||||
|
|
||||||
|
## required for dracut
|
||||||
|
installpkg kbd kbd-misc
|
||||||
|
## required for anaconda-dracut (img-lib etc.)
|
||||||
|
installpkg tar xz curl bzip2
|
||||||
|
|
||||||
|
## this is only recommended by librsvg2 since 2023-07, but in the
|
||||||
|
## installer environment many icons used are only present as SVGs,
|
||||||
|
## so we really need it
|
||||||
|
installpkg rsvg-pixbuf-loader
|
||||||
|
|
||||||
|
## basic system stuff
|
||||||
|
installpkg rsyslog
|
||||||
|
|
||||||
|
## filesystem tools
|
||||||
|
installpkg xfsprogs dosfstools
|
||||||
|
installpkg device-mapper-persistent-data
|
||||||
|
installpkg xfsdump
|
||||||
|
|
||||||
|
## extra storage packages
|
||||||
|
# hostname is needed for iscsi to work, see RHBZ#1593917
|
||||||
|
installpkg udisks2 udisks2-iscsi hostname
|
||||||
|
|
||||||
|
## extra libblockdev plugins
|
||||||
|
installpkg libblockdev-lvm-dbus
|
||||||
|
|
||||||
|
## needed for LUKS escrow
|
||||||
|
installpkg volume_key
|
||||||
|
installpkg nss-tools
|
||||||
|
|
||||||
|
## SELinux support
|
||||||
|
installpkg selinux-policy-targeted audit
|
||||||
|
|
||||||
|
## network tools/servers
|
||||||
|
installpkg ethtool openssh-server nfs-utils openssh-clients
|
||||||
|
installpkg net-tools
|
||||||
|
installpkg ipcalc
|
||||||
|
installpkg nmap-ncat
|
||||||
|
installpkg prefixdevname
|
||||||
|
|
||||||
|
## hardware utilities/libraries
|
||||||
|
installpkg pciutils usbutils ipmitool
|
||||||
|
installpkg mt-st smartmontools
|
||||||
|
installpkg hdparm
|
||||||
|
installpkg rdma-core
|
||||||
|
installpkg rng-tools
|
||||||
|
%if basearch in ("x86_64", "x86_64_v2", "aarch64"):
|
||||||
|
installpkg dmidecode
|
||||||
|
%endif
|
||||||
|
installpkg nvme-cli
|
||||||
|
|
||||||
|
|
||||||
|
## fonts & themes
|
||||||
|
installpkg default-fonts-core-sans
|
||||||
|
installpkg default-fonts-other-sans
|
||||||
|
## We can't go with this because google-noto-sans-cjk-vf-fonts is too big.
|
||||||
|
# installpkg default-fonts-cjk-sans
|
||||||
|
installpkg google-noto-sans-cjk-fonts
|
||||||
|
|
||||||
|
## debugging/bug reporting tools
|
||||||
|
installpkg gdb-gdbserver
|
||||||
|
installpkg python3-pyatspi
|
||||||
|
|
||||||
|
## extra tools not required by anaconda
|
||||||
|
installpkg nano
|
||||||
|
installpkg vim-minimal strace lsof xz less
|
||||||
|
installpkg wget rsync bind-utils ftp mtr
|
||||||
|
installpkg spice-vdagent
|
||||||
|
installpkg hexedit sg3_utils
|
||||||
|
installpkg perl-interpreter
|
||||||
|
installpkg restore
|
||||||
|
|
||||||
|
## actually install all the requested packages
|
||||||
|
run_pkg_transaction
|
133
80-rhel/runtime-postinstall.tmpl
Normal file
133
80-rhel/runtime-postinstall.tmpl
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
## runtime-postinstall.tmpl
|
||||||
|
## post-install setup required to make the system work.
|
||||||
|
|
||||||
|
<%page args="root, basearch, libdir, configdir"/>
|
||||||
|
<%
|
||||||
|
configdir = configdir + "/common"
|
||||||
|
import os, time
|
||||||
|
SOURCE_DATE_EPOCH = os.environ.get('SOURCE_DATE_EPOCH', str(int(time.time())))
|
||||||
|
%>
|
||||||
|
|
||||||
|
## move_stubs()
|
||||||
|
move usr/share/anaconda/list-harddrives-stub usr/bin/list-harddrives
|
||||||
|
|
||||||
|
## move_repos()
|
||||||
|
move etc/yum.repos.d etc/anaconda.repos.d
|
||||||
|
|
||||||
|
## Setup mdadm config to turn off homehost
|
||||||
|
remove etc/mdadm.conf
|
||||||
|
append etc/mdadm.conf "HOMEHOST <ignore>\n"
|
||||||
|
|
||||||
|
## Configure systemd to start anaconda
|
||||||
|
remove etc/systemd/system/default.target
|
||||||
|
symlink /lib/systemd/system/anaconda.target etc/systemd/system/default.target
|
||||||
|
|
||||||
|
## Make sure tmpfs is enabled
|
||||||
|
mkdir etc/systemd/system/local-fs.target.wants/
|
||||||
|
symlink /lib/systemd/system/tmp.mount etc/systemd/system/local-fs.target.wants/tmp.mount
|
||||||
|
|
||||||
|
## Disable unwanted systemd services
|
||||||
|
systemctl disable systemd-readahead-collect.service \
|
||||||
|
systemd-readahead-replay.service \
|
||||||
|
lvm2-monitor.service \
|
||||||
|
dnf-makecache.timer \
|
||||||
|
sshd.socket
|
||||||
|
## These services can't be disabled normally (they're linked into place in
|
||||||
|
## /usr/lib/systemd rather than /etc/systemd), so we have to mask them.
|
||||||
|
systemctl mask fedora-configure.service fedora-loadmodules.service \
|
||||||
|
fedora-autorelabel.service fedora-autorelabel-mark.service \
|
||||||
|
fedora-wait-storage.service media.mount \
|
||||||
|
systemd-tmpfiles-clean.service systemd-tmpfiles-clean.timer \
|
||||||
|
ldconfig.service
|
||||||
|
remove usr/lib/systemd/system/rngd.service
|
||||||
|
|
||||||
|
## remove because it cannot be disabled
|
||||||
|
remove usr/lib/systemd/system-generators/lvm2-activation-generator
|
||||||
|
|
||||||
|
## Remove the more terrible parts of systemd-tmpfiles.
|
||||||
|
## etc.conf is written with the assumption that /etc/ is empty, which is
|
||||||
|
## ridiculous, and it also creates a broken /etc/resolv.conf, which breaks
|
||||||
|
## networking.
|
||||||
|
remove usr/lib/tmpfiles.d/etc.conf
|
||||||
|
|
||||||
|
## Make logind activate anaconda-shell@.service on switch to empty VT
|
||||||
|
symlink anaconda-shell@.service lib/systemd/system/autovt@.service
|
||||||
|
mkdir usr/lib/systemd/logind.conf.d
|
||||||
|
append usr/lib/systemd/logind.conf.d/anaconda-shell.conf "[Login]\nReserveVT=2"
|
||||||
|
|
||||||
|
## Don't write the journal to the overlay, just keep it in RAM
|
||||||
|
remove var/log/journal
|
||||||
|
|
||||||
|
## install some basic configuration files
|
||||||
|
append etc/fstab ""
|
||||||
|
install ${configdir}/i18n etc/sysconfig
|
||||||
|
install ${configdir}/rsyslog.conf etc
|
||||||
|
install ${configdir}/bash_history root/.bash_history
|
||||||
|
install ${configdir}/profile root/.profile
|
||||||
|
install ${configdir}/libuser.conf etc
|
||||||
|
install ${configdir}/sysctl.conf etc/sysctl.d/anaconda.conf
|
||||||
|
install ${configdir}/spice-vdagentd etc/sysconfig
|
||||||
|
mkdir etc/NetworkManager/conf.d
|
||||||
|
install ${configdir}/91-anaconda-autoconnect-slaves.conf etc/NetworkManager/conf.d
|
||||||
|
install ${configdir}/vconsole.conf etc
|
||||||
|
install ${configdir}/92-anaconda-loglevel-debug.conf etc/NetworkManager/conf.d
|
||||||
|
|
||||||
|
## set up sshd
|
||||||
|
install ${configdir}/sshd_config.anaconda etc/ssh
|
||||||
|
install ${configdir}/pam.sshd etc/pam.d/sshd
|
||||||
|
install ${configdir}/pam.sshd etc/pam.d/login
|
||||||
|
install ${configdir}/pam.sshd etc/pam.d/remote
|
||||||
|
|
||||||
|
## set up inst.rngd support
|
||||||
|
install ${configdir}/inst.rngd.service etc/systemd/system/inst.rngd.service
|
||||||
|
mkdir etc/systemd/system/basic.target.wants/
|
||||||
|
symlink /etc/systemd/system/inst.rngd.service etc/systemd/system/basic.target.wants/inst.rngd.service
|
||||||
|
|
||||||
|
## set up "install" user account
|
||||||
|
append etc/passwd "install:x:0:0:root:/root:/usr/libexec/anaconda/run-anaconda"
|
||||||
|
append etc/shadow "install::14438:0:99999:7:::"
|
||||||
|
## remove root password
|
||||||
|
replace "root:\*:" "root::" etc/shadow
|
||||||
|
|
||||||
|
## gsettings settings
|
||||||
|
install ${configdir}/org.gtk.Settings.Debug.gschema.override usr/share/glib-2.0/schemas
|
||||||
|
runcmd chroot ${root} glib-compile-schemas /usr/share/glib-2.0/schemas
|
||||||
|
|
||||||
|
|
||||||
|
## for compatibility with Ancient Anaconda Traditions
|
||||||
|
symlink lib/modules /modules
|
||||||
|
symlink lib/firmware /firmware
|
||||||
|
symlink ../run/install mnt/install
|
||||||
|
|
||||||
|
## create_depmod_conf()
|
||||||
|
append etc/depmod.d/dd.conf "search updates built-in"
|
||||||
|
|
||||||
|
## create multipath.conf so multipath gets auto-started
|
||||||
|
append etc/multipath.conf "defaults {\n\tfind_multipaths smart\n\tuser_friendly_names yes\n}\n"
|
||||||
|
|
||||||
|
## make lvm auto-activate
|
||||||
|
remove etc/lvm/archive/*
|
||||||
|
remove etc/lvm/archive
|
||||||
|
remove etc/lvm/backup/*
|
||||||
|
remove etc/lvm/backup
|
||||||
|
remove etc/lvm/cache/*
|
||||||
|
remove etc/lvm/cache
|
||||||
|
remove etc/lvm/lvm.conf
|
||||||
|
append etc/lvm/lvm.conf "global {\n\tuse_lvmetad = 1\n}\n"
|
||||||
|
|
||||||
|
## Remove machine specific nvme-cli files
|
||||||
|
remove etc/nvme/hostid
|
||||||
|
remove etc/nvme/hostnqn
|
||||||
|
|
||||||
|
## Record the package versions used to create the image
|
||||||
|
## rpm initializes nss, which requires /dev/urandom to be present, hence the mknod
|
||||||
|
runcmd chroot ${root} /usr/bin/mknod -m 666 /dev/random c 1 8
|
||||||
|
runcmd chroot ${root} /usr/bin/mknod -m 666 /dev/urandom c 1 9
|
||||||
|
runcmd chroot ${root} /usr/bin/rpm -qa --pipe "tee /root/lorax-packages.log"
|
||||||
|
|
||||||
|
## TODO: we could run prelink here if we wanted?
|
||||||
|
|
||||||
|
## fix fonconfig cache containing timestamps
|
||||||
|
runcmd chroot ${root} /usr/bin/find /usr/share/fonts -newermt "@${SOURCE_DATE_EPOCH}" -exec \
|
||||||
|
touch --no-dereference --date="@${SOURCE_DATE_EPOCH}" {} +
|
||||||
|
runcmd chroot ${root} /usr/bin/fc-cache -f
|
95
80-rhel/s390.tmpl
Normal file
95
80-rhel/s390.tmpl
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
<%page args="kernels, runtime_img, runtime_base, basearch, inroot, outroot, product, isolabel"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/s390"
|
||||||
|
BOOTDIR="images"
|
||||||
|
KERNELDIR=BOOTDIR
|
||||||
|
INITRD_ADDRESS="0x02000000"
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
MKS390IMAGE="/usr/bin/mk-s390image"
|
||||||
|
# The assumption seems to be that there is only one s390 kernel, ever
|
||||||
|
kernel = kernels[0]
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir images
|
||||||
|
install ${runtime_img} images
|
||||||
|
treeinfo stage2 mainimage images/${runtime_base}
|
||||||
|
|
||||||
|
## install bootloader (such as it is) and bootloader config
|
||||||
|
install ${configdir}/redhat.exec ${BOOTDIR}
|
||||||
|
install ${configdir}/generic.prm ${BOOTDIR}
|
||||||
|
install ${configdir}/genericdvd.prm ${BOOTDIR}
|
||||||
|
install ${configdir}/cdboot.prm ${BOOTDIR}
|
||||||
|
install ${configdir}/generic.ins .
|
||||||
|
|
||||||
|
## configure bootloader
|
||||||
|
replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins
|
||||||
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/cdboot.prm
|
||||||
|
|
||||||
|
## install kernel
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
|
||||||
|
## s390 needs some extra boot config
|
||||||
|
createaddrsize ${INITRD_ADDRESS} ${outroot}/${BOOTDIR}/initrd.img ${outroot}/${BOOTDIR}/initrd.addrsize
|
||||||
|
|
||||||
|
## s390 also has some special treeinfo data
|
||||||
|
treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize
|
||||||
|
treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm
|
||||||
|
treeinfo images-${basearch} genericdvd.prm ${BOOTDIR}/genericdvd.prm
|
||||||
|
treeinfo images-${basearch} generic.ins generic.ins
|
||||||
|
treeinfo images-${basearch} redhat.exec ${BOOTDIR}/redhat.exec
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img in /images/
|
||||||
|
<% filegraft=""; images=["product", "updates"] %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Inherit iso-graft/ if it exists from external templates
|
||||||
|
<%
|
||||||
|
import os
|
||||||
|
if os.path.exists(workdir + "/iso-graft"):
|
||||||
|
filegraft += " " + workdir + "/iso-graft"
|
||||||
|
%>
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## Make a combined kernel+initrd image for the iso
|
||||||
|
runcmd ${MKS390IMAGE} ${outroot}/${KERNELDIR}/kernel.img \
|
||||||
|
${outroot}/${BOOTDIR}/cdboot.img \
|
||||||
|
-r ${outroot}/${KERNELDIR}/initrd.img \
|
||||||
|
-p ${outroot}/${BOOTDIR}/cdboot.prm
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \
|
||||||
|
-boot-load-size 4 -no-emul-boot \
|
||||||
|
-R -J -V '${isolabel}' -graft-points \
|
||||||
|
.discinfo=${outroot}/.discinfo \
|
||||||
|
generic.ins=${outroot}/generic.ins \
|
||||||
|
${BOOTDIR}=${outroot}/${BOOTDIR} \
|
||||||
|
${filegraft}
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
118
80-rhel/x86.tmpl
Normal file
118
80-rhel/x86.tmpl
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<%page args="kernels, runtime_img, runtime_base, basearch, inroot, outroot, product, isolabel"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/x86"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
STAGE2IMG="images/install.img"
|
||||||
|
GRUB2DIR="boot/grub2"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir images
|
||||||
|
install ${runtime_img} ${STAGE2IMG}
|
||||||
|
treeinfo stage2 mainimage images/${runtime_base}
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if basearch == 'x86_64':
|
||||||
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
||||||
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## configure grub2 config file
|
||||||
|
mkdir ${GRUB2DIR}
|
||||||
|
install ${configdir}/grub2-bios.cfg ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @KERNELPATH@ /${KERNELDIR}/vmlinuz ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @INITRDPATH@ /${KERNELDIR}/initrd.img ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${GRUB2DIR}/grub.cfg
|
||||||
|
|
||||||
|
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
<% efiarch32=None; efiarch64=None %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
||||||
|
<% efiarch32 = 'IA32' %>
|
||||||
|
%endif
|
||||||
|
%if exists("boot/efi/EFI/*/gcdx64.efi"):
|
||||||
|
<% efiarch64 = 'X64' %>
|
||||||
|
%endif
|
||||||
|
%if (efiarch32 or efiarch64):
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"]; compressargs=""; %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${compressargs} ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Inherit iso-graft/ if it exists from external templates
|
||||||
|
<%
|
||||||
|
import os
|
||||||
|
if os.path.exists(workdir + "/iso-graft"):
|
||||||
|
filegraft += " " + workdir + "/iso-graft"
|
||||||
|
%>
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## Make images/eltoritio.img
|
||||||
|
runcmd grub2-mkimage -O i386-pc-eltorito -d ${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
-o ${outroot}/images/eltorito.img \
|
||||||
|
-p /${GRUB2DIR} \
|
||||||
|
iso9660 biosdisk
|
||||||
|
treeinfo images-${basearch} eltorito.img images/eltorito.img
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-R -J -V '${isolabel}' \
|
||||||
|
--grub2-mbr ${inroot}/usr/lib/grub/i386-pc/boot_hybrid.img \
|
||||||
|
-partition_offset 16 \
|
||||||
|
-appended_part_as_gpt \
|
||||||
|
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B ${outroot}/images/efiboot.img \
|
||||||
|
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
|
||||||
|
-c boot.cat --boot-catalog-hide \
|
||||||
|
-b images/eltorito.img \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
|
-eltorito-alt-boot \
|
||||||
|
-e '--interval:appended_partition_2:all::' -no-emul-boot \
|
||||||
|
-graft-points \
|
||||||
|
.discinfo=${outroot}/.discinfo \
|
||||||
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${filegraft} \
|
||||||
|
${GRUB2DIR}=${outroot}/${GRUB2DIR} \
|
||||||
|
${GRUB2DIR}/i386-pc=${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
images/eltorito.img=${outroot}/images/eltorito.img \
|
||||||
|
EFI/BOOT=${outroot}/EFI/BOOT
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
118
80-rhel/x86_v2.tmpl
Normal file
118
80-rhel/x86_v2.tmpl
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<%page args="kernels, runtime_img, runtime_base, basearch, inroot, outroot, product, isolabel"/>
|
||||||
|
<%
|
||||||
|
configdir="tmp/config_files/x86"
|
||||||
|
PXEBOOTDIR="images/pxeboot"
|
||||||
|
STAGE2IMG="images/install.img"
|
||||||
|
GRUB2DIR="boot/grub2"
|
||||||
|
KERNELDIR=PXEBOOTDIR
|
||||||
|
LORAXDIR="usr/share/lorax/"
|
||||||
|
|
||||||
|
## Don't allow spaces or escape characters in the iso label
|
||||||
|
def valid_label(ch):
|
||||||
|
return ch.isalnum() or ch == '_'
|
||||||
|
|
||||||
|
isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel)
|
||||||
|
|
||||||
|
import os
|
||||||
|
from os.path import basename
|
||||||
|
from pylorax.sysutils import joinpaths
|
||||||
|
|
||||||
|
# Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3
|
||||||
|
if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
|
||||||
|
isoargs = "-iso-level 3"
|
||||||
|
else:
|
||||||
|
isoargs = ""
|
||||||
|
%>
|
||||||
|
|
||||||
|
mkdir images
|
||||||
|
install ${runtime_img} ${STAGE2IMG}
|
||||||
|
treeinfo stage2 mainimage images/${runtime_base}
|
||||||
|
|
||||||
|
## install kernels
|
||||||
|
mkdir ${KERNELDIR}
|
||||||
|
%for kernel in kernels:
|
||||||
|
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
|
||||||
|
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
%if basearch == 'x86_64_v2':
|
||||||
|
treeinfo images-xen kernel ${KERNELDIR}/vmlinuz
|
||||||
|
treeinfo images-xen initrd ${KERNELDIR}/initrd.img
|
||||||
|
%endif
|
||||||
|
|
||||||
|
## configure grub2 config file
|
||||||
|
mkdir ${GRUB2DIR}
|
||||||
|
install ${configdir}/grub2-bios.cfg ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @VERSION@ ${product.version} ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @PRODUCT@ '${product.name}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @KERNELPATH@ /${KERNELDIR}/vmlinuz ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @INITRDPATH@ /${KERNELDIR}/initrd.img ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ISOLABEL@ '${isolabel}' ${GRUB2DIR}/grub.cfg
|
||||||
|
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${GRUB2DIR}/grub.cfg
|
||||||
|
|
||||||
|
|
||||||
|
## WHeeeeeeee, EFI.
|
||||||
|
<% efiarch32=None; efiarch64=None %>
|
||||||
|
%if exists("boot/efi/EFI/*/gcdia32.efi"):
|
||||||
|
<% efiarch32 = 'IA32' %>
|
||||||
|
%endif
|
||||||
|
%if exists("boot/efi/EFI/*/gcdx64.efi"):
|
||||||
|
<% efiarch64 = 'X64' %>
|
||||||
|
%endif
|
||||||
|
%if (efiarch32 or efiarch64):
|
||||||
|
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/>
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create optional product.img and updates.img
|
||||||
|
<% filegraft=""; images=["product", "updates"]; compressargs=""; %>
|
||||||
|
%for img in images:
|
||||||
|
%if exists("%s/%s/" % (LORAXDIR, img)):
|
||||||
|
installimg ${compressargs} ${LORAXDIR}/${img}/ images/${img}.img
|
||||||
|
treeinfo images-${basearch} ${img}.img images/${img}.img
|
||||||
|
<% filegraft += " images/{0}.img={1}/images/{0}.img".format(img, outroot) %>
|
||||||
|
%endif
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
# Inherit iso-graft/ if it exists from external templates
|
||||||
|
<%
|
||||||
|
import os
|
||||||
|
if os.path.exists(workdir + "/iso-graft"):
|
||||||
|
filegraft += " " + workdir + "/iso-graft"
|
||||||
|
%>
|
||||||
|
|
||||||
|
# Add the license files
|
||||||
|
%for f in glob("usr/share/licenses/*-release-common/*"):
|
||||||
|
install ${f} ${f|basename}
|
||||||
|
<% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %>
|
||||||
|
%endfor
|
||||||
|
|
||||||
|
## Make images/eltoritio.img
|
||||||
|
runcmd grub2-mkimage -O i386-pc-eltorito -d ${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
-o ${outroot}/images/eltorito.img \
|
||||||
|
-p /${GRUB2DIR} \
|
||||||
|
iso9660 biosdisk
|
||||||
|
treeinfo images-${basearch} eltorito.img images/eltorito.img
|
||||||
|
|
||||||
|
## make boot.iso
|
||||||
|
runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \
|
||||||
|
-R -J -V '${isolabel}' \
|
||||||
|
--grub2-mbr ${inroot}/usr/lib/grub/i386-pc/boot_hybrid.img \
|
||||||
|
-partition_offset 16 \
|
||||||
|
-appended_part_as_gpt \
|
||||||
|
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B ${outroot}/images/efiboot.img \
|
||||||
|
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
|
||||||
|
-c boot.cat --boot-catalog-hide \
|
||||||
|
-b images/eltorito.img \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
|
-eltorito-alt-boot \
|
||||||
|
-e '--interval:appended_partition_2:all::' -no-emul-boot \
|
||||||
|
-graft-points \
|
||||||
|
.discinfo=${outroot}/.discinfo \
|
||||||
|
${STAGE2IMG}=${outroot}/${STAGE2IMG} \
|
||||||
|
${KERNELDIR}=${outroot}/${KERNELDIR} \
|
||||||
|
${filegraft} \
|
||||||
|
${GRUB2DIR}=${outroot}/${GRUB2DIR} \
|
||||||
|
${GRUB2DIR}/i386-pc=${inroot}/usr/lib/grub/i386-pc \
|
||||||
|
images/eltorito.img=${outroot}/images/eltorito.img \
|
||||||
|
EFI/BOOT=${outroot}/EFI/BOOT
|
||||||
|
treeinfo images-${basearch} boot.iso images/boot.iso
|
62
Makefile
Normal file
62
Makefile
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
NAME=lorax-templates-rhel
|
||||||
|
# RHEL version these templates are designed for
|
||||||
|
RHELVER=10.0
|
||||||
|
RHPKG=centpkg --release=c10s
|
||||||
|
|
||||||
|
# Previous release, override this when new commits are already on c10s
|
||||||
|
PREV ?= origin/c10s
|
||||||
|
|
||||||
|
# git user.email and user.name must be setup
|
||||||
|
GITEMAIL := $(shell git config user.email)
|
||||||
|
GITNAME := $(shell git config user.name)
|
||||||
|
|
||||||
|
# Serial number for this release
|
||||||
|
SERIAL=$(shell [ -f SERIAL ] && cat SERIAL || echo 0)
|
||||||
|
|
||||||
|
SPEC=${NAME}.spec
|
||||||
|
TARBALL=${NAME}-${RHELVER}-${SERIAL}.tar.gz
|
||||||
|
|
||||||
|
tar: ${TARBALL}
|
||||||
|
|
||||||
|
${TARBALL}: 80-rhel
|
||||||
|
git archive --prefix='${NAME}-${RHELVER}/' HEAD $</ | gzip -c9 > $@
|
||||||
|
|
||||||
|
bump: bump-serial
|
||||||
|
|
||||||
|
bump-serial:
|
||||||
|
echo $$((${SERIAL}+1)) > SERIAL
|
||||||
|
git add SERIAL
|
||||||
|
|
||||||
|
update-spec: clog
|
||||||
|
sed -r -i \
|
||||||
|
-e 's/^(Release:\s+)[^%]+(%.*)$$/\1${SERIAL}\2/' \
|
||||||
|
-e 's/^(Version:\s+).*$$/\1${RHELVER}/' \
|
||||||
|
-e 's/^(Source0:\s+).*$$/\1${TARBALL}/' \
|
||||||
|
-e '/%changelog/ r clog-spec' \
|
||||||
|
${SPEC}
|
||||||
|
|
||||||
|
clog:
|
||||||
|
@echo "* $(shell date '+%a %b %d %Y') ${GITNAME} <${GITEMAIL}> - ${RHELVER}-${SERIAL}" > clog-spec
|
||||||
|
./tools/git-changelog -t ${PREV} > clog
|
||||||
|
cat clog >> clog-spec
|
||||||
|
|
||||||
|
# These need to rerun make to pick up the bumped serial number
|
||||||
|
release:
|
||||||
|
$(MAKE) bump-serial && $(MAKE) tar && $(MAKE) update-spec && $(MAKE) commit
|
||||||
|
|
||||||
|
release-merge:
|
||||||
|
$(MAKE) bump-serial && $(MAKE) tar && $(MAKE) update-spec && $(MAKE) amend
|
||||||
|
|
||||||
|
|
||||||
|
commit:
|
||||||
|
$(RHPKG) new-sources ${TARBALL}
|
||||||
|
git add -u
|
||||||
|
git commit -F clog
|
||||||
|
|
||||||
|
amend:
|
||||||
|
$(RHPKG) new-sources ${TARBALL}
|
||||||
|
git add -u
|
||||||
|
git commit --amend
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: tar ${TARBALL} bump-serial update-spec release clog commit
|
22
README
Normal file
22
README
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Hi there! If you're trying to fix something here, do the following:
|
||||||
|
|
||||||
|
1. Make whatever edits you need to in 80-rhel/
|
||||||
|
2. `git commit` the changes with the relevant 'Resolves/Related' bug reference
|
||||||
|
3. `make release`
|
||||||
|
This will bump the release, update the spec with changes in this branch,
|
||||||
|
create a new tarball, upload it, and commit the changes.
|
||||||
|
NOTE: If there are commits on c10s since the last build you need to set PREV=<HASH>
|
||||||
|
so that the changelog will be correct. eg. PREV=ACTUALHASH make release
|
||||||
|
4. Examine the changes with 'git show' and make sure they look ok.
|
||||||
|
5. Push the changes to your fork of the project with:
|
||||||
|
'git push REMOTE BRANCHNAME' and follow the instructions to
|
||||||
|
create a merge request in gitlab.
|
||||||
|
|
||||||
|
# To rebase from RHEL:
|
||||||
|
1. Add "cs" remote: `git remote add cs https://gitlab.com/redhat/centos-stream/rpms/lorax-templates-rhel.git`
|
||||||
|
2. `git merge [-X ours] cs/c10s`
|
||||||
|
3. `make release-merge`
|
||||||
|
4. Edit the %changelog section of lorax-templates-rhel.spec appropriately
|
||||||
|
5. `git add lorax-templates-rhel.spec`
|
||||||
|
6. `git commit --amend`
|
||||||
|
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# lorax-templates-rhel
|
||||||
|
|
||||||
|
The lorax-templates-rhel package
|
@ -1,174 +0,0 @@
|
|||||||
Name: lorax-templates-almalinux
|
|
||||||
Version: 8.4
|
|
||||||
Release: 3%{?dist}.alma
|
|
||||||
Summary: RHEL8 build templates for lorax and livemedia-creator
|
|
||||||
|
|
||||||
License: GPLv2+
|
|
||||||
URL: https://github.com/weldr/lorax
|
|
||||||
BuildArch: noarch
|
|
||||||
Source0: lorax-templates-rhel-8.4-3.tar.gz
|
|
||||||
|
|
||||||
# Where are these supposed to end up?
|
|
||||||
%define templatedir %{_datadir}/lorax/templates.d/70-almalinux
|
|
||||||
|
|
||||||
%description
|
|
||||||
RHEL-specific Lorax templates for creating the boot.iso and live isos are
|
|
||||||
placed in %{templatedir}
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -n lorax-templates-rhel-%{version}
|
|
||||||
|
|
||||||
%build
|
|
||||||
# nothing to build
|
|
||||||
|
|
||||||
%install
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{templatedir}
|
|
||||||
cp -a 80-rhel/* $RPM_BUILD_ROOT/%{templatedir}
|
|
||||||
sed -i '/libreport-rhel-anaconda-bugzilla/d' $RPM_BUILD_ROOT/%{templatedir}/runtime-install.tmpl
|
|
||||||
sed -i '/redhat-release-eula/d' $RPM_BUILD_ROOT/%{templatedir}/runtime-install.tmpl
|
|
||||||
|
|
||||||
%files
|
|
||||||
%dir %{templatedir}
|
|
||||||
%{templatedir}/*
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Tue Jul 07 2020 Brian C. Lane <bcl@redhat.com> - 8.3-4
|
|
||||||
- rsyslog: Disable journal ratelimits during install
|
|
||||||
Related: rhbz#1752754
|
|
||||||
|
|
||||||
* Thu Jun 25 2020 Brian C. Lane <bcl@redhat.com> - 8.3-3
|
|
||||||
- include generic.ins for s390 boot iso (dan)
|
|
||||||
Resolves: rhbz#1844517
|
|
||||||
|
|
||||||
* Wed Jun 03 2020 Brian C. Lane <bcl@redhat.com> - 8.3-2
|
|
||||||
- Keep /etc/default/useradd in install.img
|
|
||||||
Resolves: rhbz#1843609
|
|
||||||
|
|
||||||
* Wed May 13 2020 Brian C. Lane <bcl@redhat.com> - 8.3-1
|
|
||||||
- Use smarter multipath detection logic
|
|
||||||
Resolves: rhbz#1763906
|
|
||||||
|
|
||||||
* Thu Feb 27 2020 Brian C. Lane <bcl@redhat.com> - 8.2-6
|
|
||||||
- Restore the 98dracut-systemd service files to the install.img (bcl)
|
|
||||||
Related: rhbz#1805405
|
|
||||||
- Add eject back into the boot.iso (bcl)
|
|
||||||
Resolves: rhbz#1805405
|
|
||||||
|
|
||||||
* Fri Jan 10 2020 Brian C. Lane <bcl@redhat.com> - 8.2-5
|
|
||||||
- Install rdma-core and libmlx4 packages
|
|
||||||
Resolves: rhbz#1762662
|
|
||||||
|
|
||||||
* Wed Dec 11 2019 Brian C. Lane <bcl@redhat.com> - 8.2-4
|
|
||||||
- Use mkisofs for the s390 live-iso template
|
|
||||||
Resolves: rhbz#1746424
|
|
||||||
|
|
||||||
* Tue Nov 12 2019 Brian C. Lane <bcl@redhat.com> - 8.2-3
|
|
||||||
- Add dmidecode on supported architectures
|
|
||||||
Resolves: rhbz#1714793
|
|
||||||
|
|
||||||
* Fri Nov 08 2019 Brian C. Lane <bcl@redhat.com> - 8.2-2
|
|
||||||
- Update ppc64le isolabel to match x86_64 logic (bcl)
|
|
||||||
Resolves: rhbz#1757338
|
|
||||||
- set inst.stage2 for ppc64le image (bcl)
|
|
||||||
Resolves: rhbz#1757338
|
|
||||||
|
|
||||||
* Thu Oct 31 2019 Brian C. Lane <bcl@redhat.com> - 8.2-1
|
|
||||||
- Update package version for 8.2 release
|
|
||||||
- Drop unneeded uboot-tools, and remove iso-graft from the aarch64.tmpl
|
|
||||||
Resolves: rhbz#1763922
|
|
||||||
- Add live iso support to s390
|
|
||||||
Resolves: rhbz#1746424
|
|
||||||
|
|
||||||
* Tue Sep 03 2019 Brian C. Lane <bcl@redhat.com> - 8.1-3
|
|
||||||
- Fix path to generic.prm (bcl)
|
|
||||||
Resolves: rhbz#1746424
|
|
||||||
|
|
||||||
* Wed May 15 2019 Brian C. Lane <bcl@redhat.com> - 8.1-2
|
|
||||||
- Install redhat-release-eula package (bcl)
|
|
||||||
Related: rhbz#1700465
|
|
||||||
- Don't remove chmem and lsmem from install.img (bcl)
|
|
||||||
Resolves: rhbz#1691472
|
|
||||||
- Include the hid-multitouch kernel module (bcl)
|
|
||||||
Resolves: rhbz#1670182
|
|
||||||
- Add extra boot args to the livemedia-creator iso templates (bcl)
|
|
||||||
Resolves: rhbz#1694180
|
|
||||||
- Add a ppc64le template for live iso creation (bcl)
|
|
||||||
Related: rhbz#1694180
|
|
||||||
- Add live-install.tmpl (bcl)
|
|
||||||
Related: rhbz#1694180
|
|
||||||
|
|
||||||
* Wed Mar 27 2019 Brian C. Lane <bcl@redhat.com> - 8.1-1
|
|
||||||
- Update package version for 8.1 release
|
|
||||||
- Make sure lscpu is installed
|
|
||||||
Resolves: rhbz#1684735
|
|
||||||
|
|
||||||
* Wed Sep 19 2018 Brian C. Lane <bcl@redhat.com> - 8.0-19
|
|
||||||
- Include python3-pyatspi on boot.iso (bcl)
|
|
||||||
Resolves: rhbz#1543290
|
|
||||||
|
|
||||||
* Wed Sep 12 2018 Brian C. Lane <bcl@redhat.com> - 8.0-18
|
|
||||||
- re-add temporarily removed packages (bcl)
|
|
||||||
Related: rhbz#1622395
|
|
||||||
- Use google-noto-sans-cjk-ttc-fonts (bcl)
|
|
||||||
Resolves: rhbz#1626368
|
|
||||||
|
|
||||||
* Fri Sep 07 2018 Brian C. Lane <bcl@redhat.com> - 8.0-17
|
|
||||||
- Install the oscap-anaconda-addon
|
|
||||||
Resolves: rhbz#1626459
|
|
||||||
|
|
||||||
* Wed Aug 22 2018 Brian C. Lane <bcl@redhat.com> - 8.0-16
|
|
||||||
- Install libreport-rhel-anaconda-bugzilla
|
|
||||||
Related: rhbz#1593734
|
|
||||||
|
|
||||||
* Mon Aug 20 2018 Brian C. Lane <bcl@redhat.com> - 8.0-15
|
|
||||||
- import-state.service from initscripts is needed by Anaconda
|
|
||||||
Resolves: rhbz#1618668
|
|
||||||
|
|
||||||
* Mon Aug 20 2018 Josh Boyer <jwboyer@redhat.com> - 8.0-14
|
|
||||||
- Remove fbset from runtime-install
|
|
||||||
Resolves: rhbz#1615430
|
|
||||||
|
|
||||||
* Wed Aug 15 2018 Brian C. Lane <bcl@redhat.com> - 8.0-13
|
|
||||||
- Add prefixdevname package
|
|
||||||
Resolves: rhbz#1615991
|
|
||||||
|
|
||||||
* Thu Aug 02 2018 Troy Dawson <tdawson@redhat.com> - 8.0-12
|
|
||||||
- Drop dependency on bridge-utils Resolves: #1588705
|
|
||||||
|
|
||||||
* Thu Jul 26 2018 Troy Dawson <tdawson@redhat.com> - 8.0-11
|
|
||||||
- Expand variables and wildcards in runtime-install.tmpl
|
|
||||||
- Cleanup the sections and packages not in RHEL8.
|
|
||||||
|
|
||||||
* Wed Jul 25 2018 Andrew Hills <ahills@redhat.com> - 8.0-10
|
|
||||||
- Drop btrfs-progs from installpkgs (RCM-38058)
|
|
||||||
|
|
||||||
* Fri Jul 20 2018 Brian C. Lane <bcl@redhat.com> - 8.0-8
|
|
||||||
- Don't activate default auto connections after switchroot
|
|
||||||
Resolves: rhbz#1555934
|
|
||||||
|
|
||||||
* Mon Jul 09 2018 Brian C. Lane <bcl@redhat.com> - 8.0-7
|
|
||||||
- Add hostname to the rootfs for iscsi
|
|
||||||
Resolves: rhbz#1599183
|
|
||||||
|
|
||||||
* Thu Jun 21 2018 Ian McLeod <imcleod@redhat.com> - 8.0-6
|
|
||||||
- Temporarily disable dracut-fips to allow building images in VMs
|
|
||||||
|
|
||||||
* Wed Jun 20 2018 David Cantrell <dcantrell@redhat.com> - 8.0-5
|
|
||||||
- Make sure perl-interpreter is installed
|
|
||||||
|
|
||||||
* Tue Jun 19 2018 Ian McLeod <imcleod@redhat.com> - 8.0-4
|
|
||||||
- Comment where RHEL8 removals have taken place
|
|
||||||
- Temporarily remove X server and drivers from all architectures
|
|
||||||
|
|
||||||
* Tue Jun 19 2018 Ian McLeod <imcleod@redhat.com> - 8.0-3
|
|
||||||
- Properly update build environment to pull these changes in
|
|
||||||
|
|
||||||
* Tue Jun 19 2018 Ian McLeod <imcleod@redhat.com> - 8.0-2
|
|
||||||
- Remove several _more_ packages from installer - same reason as below
|
|
||||||
|
|
||||||
* Tue Jun 19 2018 Ian McLeod <imcleod@redhat.com> - 8.0-1
|
|
||||||
- Remove several packages from installer based on current state of BaseOS/AppStream
|
|
||||||
|
|
||||||
* Mon Jun 18 2018 Will Woods <wwoods@redhat.com> - 8.0-0
|
|
||||||
- Initial creation of lorax-templates-rhel package
|
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-8
|
||||||
|
- rhel-9
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
51
lorax-templates-almalinux.spec
Normal file
51
lorax-templates-almalinux.spec
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Name: lorax-templates-almalinux
|
||||||
|
Version: 10.0
|
||||||
|
Release: 52%{?dist}.alma.1
|
||||||
|
Summary: AlmaLinux 10 build templates for lorax and livemedia-creator
|
||||||
|
|
||||||
|
License: GPLv2+
|
||||||
|
URL: https://github.com/weldr/lorax
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
# This tarball is generated from the contents of this dist-git repository
|
||||||
|
# by running the command `make tar`.
|
||||||
|
# See README for full details of how to update this package
|
||||||
|
Source0: lorax-templates-rhel-10.0-52.tar.gz
|
||||||
|
|
||||||
|
# Required for the template branding support
|
||||||
|
Requires: lorax >= 34.9.1
|
||||||
|
|
||||||
|
Provides: lorax-templates = %{version}-%{release}
|
||||||
|
|
||||||
|
# Where are these supposed to end up?
|
||||||
|
%define templatedir %{_datadir}/lorax/templates.d/70-almalinux
|
||||||
|
|
||||||
|
%description
|
||||||
|
RHEL-specific Lorax templates for creating the boot.iso and live isos are
|
||||||
|
placed in %{templatedir}
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -n lorax-templates-rhel-%{version}
|
||||||
|
|
||||||
|
# Do not try to install packages not available in AlmaLinux
|
||||||
|
sed -i '/libreport-rhel-anaconda-bugzilla/d' 80-rhel/runtime-install.tmpl
|
||||||
|
sed -i '/redhat-release-eula/d' 80-rhel/runtime-install.tmpl
|
||||||
|
|
||||||
|
%build
|
||||||
|
# nothing to build
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/%{templatedir}
|
||||||
|
cp -a 80-rhel/* $RPM_BUILD_ROOT/%{templatedir}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%dir %{templatedir}
|
||||||
|
%{templatedir}/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Sep 13 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0-52.alma.1
|
||||||
|
- Add configuration for AlmaLinux 10 x86_64_v2
|
||||||
|
|
||||||
|
* Wed Aug 21 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0-52
|
||||||
|
- Initial build for AlmaLinux 10
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (lorax-templates-rhel-10.0-52.tar.gz) = ee4c5f6d4750b5ac4fb9c1e99f32aac4c7b7e85c4735551c4ce3309a8c4c2f0d72b8054a085518f514c0cd7b92ed8d3601738ac54e7fbcb1c689f0a7ac9fc275
|
1
tests/.fmf/version
Normal file
1
tests/.fmf/version
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
5
tests/provision.fmf
Normal file
5
tests/provision.fmf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
standard-inventory-qcow2:
|
||||||
|
qemu:
|
||||||
|
m: 4G
|
23
tests/scripts/run_tests.sh
Executable file
23
tests/scripts/run_tests.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
if [ ! -e /usr/share/lorax/templates.d/80-rhel/ ]; then
|
||||||
|
echo "Failed to find lorax-templates-rhel templates in /usr/share/lorax/templates.d/"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Gather up the list of system repo files and use them for lorax
|
||||||
|
# Skip fedora.repo
|
||||||
|
REPOS=$(find /etc/yum.repos.d/ -maxdepth 1 -type f -name '*\.repo' ! -name 'fedora.repo' -exec echo -n "--repo {} " \;)
|
||||||
|
if [ -z "$REPOS" ]; then
|
||||||
|
echo "No system repos found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The c10s tmt systems have started using $stream in the repo urls as of 6/2024, substitute
|
||||||
|
# 10-stream for this variable so that they can be passed to lorax
|
||||||
|
sed -i 's/$stream/10-stream/g' /etc/yum.repos.d/*.repo
|
||||||
|
|
||||||
|
# Run lorax using the host's repository configuration file
|
||||||
|
lorax --product="Red Hat Enterprise Linux" --version=10 --release=10 --volid="RHEL-10-test" \
|
||||||
|
$REPOS --isfinal --nomacboot /var/tmp/lorax-rhel10-iso/
|
15
tests/tests.yml
Normal file
15
tests/tests.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
# Run lorax with the new templates
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
|
||||||
|
required_packages:
|
||||||
|
- lorax
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- simple:
|
||||||
|
dir: scripts
|
||||||
|
run: ./run_tests.sh
|
130
tools/git-changelog
Executable file
130
tools/git-changelog
Executable file
@ -0,0 +1,130 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# git-changelog - Output a rpm changelog
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
|
# by the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Author: David Cantrell <dcantrell@redhat.com>
|
||||||
|
# Author: Brian C. Lane <bcl@redhat.com>
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import textwrap
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ChangeLog:
|
||||||
|
def __init__(self, tag):
|
||||||
|
self.tag = tag
|
||||||
|
self.ignore = None
|
||||||
|
|
||||||
|
def _getCommitDetail(self, commit, field, long=False):
|
||||||
|
proc = subprocess.Popen(['git', 'log', '-1',
|
||||||
|
"--pretty=format:%s" % field, commit],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE).communicate()
|
||||||
|
|
||||||
|
ret = proc[0].decode("utf8").strip("\n").split('\n')
|
||||||
|
|
||||||
|
if long:
|
||||||
|
return ret
|
||||||
|
|
||||||
|
if len(ret) == 1 and ret[0].find('@') != -1:
|
||||||
|
ret = ret[0].split('@')[0]
|
||||||
|
elif len(ret) == 1:
|
||||||
|
ret = ret[0]
|
||||||
|
else:
|
||||||
|
ret = filter(lambda x: x != '', ret)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def getBugs(self, msg):
|
||||||
|
"""Get the Resolves/Related bugs from the commit.
|
||||||
|
Bug in first line is considered Resolves
|
||||||
|
"""
|
||||||
|
bugs = []
|
||||||
|
if not msg:
|
||||||
|
return []
|
||||||
|
|
||||||
|
# summary line format is ^.*#([0-9]+).*
|
||||||
|
# Make sure the bz# isn't likely to be a github issue
|
||||||
|
for line in msg:
|
||||||
|
m = re.match(r"^(Resolves|Related|Conflicts):\ +(rhbz#|RHEL-)(\d+)", line)
|
||||||
|
if m and m.group(1) and m.group(2) and m.group(3):
|
||||||
|
bugs.append((m.group(1), m.group(2), m.group(3)))
|
||||||
|
else:
|
||||||
|
# Assume summary line references are still rhbz# only
|
||||||
|
m = re.match(r"^.*#(\d+).*", line)
|
||||||
|
if m and m.group(1) and int(m.group(1)) > 100000:
|
||||||
|
bugs.append(("Resolves", "rhbz#", m.group(1)))
|
||||||
|
|
||||||
|
return bugs
|
||||||
|
|
||||||
|
def getLog(self):
|
||||||
|
rev_range = "%s.." % (self.tag)
|
||||||
|
proc = subprocess.Popen(['git', 'log', '--pretty=oneline', rev_range],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE).communicate()
|
||||||
|
lines = filter(lambda x: x.find('l10n: ') != 41 and \
|
||||||
|
x.find('Merge commit') != 41 and \
|
||||||
|
x.find('Merge branch') != 41,
|
||||||
|
proc[0].decode("utf8").strip('\n').split('\n'))
|
||||||
|
|
||||||
|
if self.ignore and self.ignore != '':
|
||||||
|
for commit in self.ignore.split(','):
|
||||||
|
lines = filter(lambda x: not x.startswith(commit), lines)
|
||||||
|
|
||||||
|
log = []
|
||||||
|
for line in lines:
|
||||||
|
fields = line.split(' ')
|
||||||
|
commit = fields[0]
|
||||||
|
|
||||||
|
summary = self._getCommitDetail(commit, "%s")
|
||||||
|
long = self._getCommitDetail(commit, "%b", True)
|
||||||
|
author = self._getCommitDetail(commit, "%aE")
|
||||||
|
|
||||||
|
msg = ["%s (%s)" % (summary.strip(), author)]
|
||||||
|
for r, kind, bz in self.getBugs(long):
|
||||||
|
msg.append("%s: %s%s" % (r, kind, bz))
|
||||||
|
log.append(msg)
|
||||||
|
|
||||||
|
return log
|
||||||
|
|
||||||
|
def formatLog(self):
|
||||||
|
s = ""
|
||||||
|
for msg in self.getLog():
|
||||||
|
sublines = textwrap.wrap(msg[0], 120)
|
||||||
|
|
||||||
|
s = s + "- %s\n" % sublines[0]
|
||||||
|
for line in sublines[1:] + msg[1:]:
|
||||||
|
s = s + " %s\n" % line
|
||||||
|
|
||||||
|
return s
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = ArgumentParser(description="Generate changelog entries from git commits")
|
||||||
|
parser.add_argument("-t", "--tag", dest="tag",
|
||||||
|
help="Last tag, changelog is commits after this tag")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
cl = ChangeLog(args.tag)
|
||||||
|
print(cl.formatLog())
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user