Merge remote-tracking branch 'cs/c9s' into eln
This commit is contained in:
		
						commit
						feca642453
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | |||||||
| /lorax-templates-rhel-10.0-1.tar.gz | /lorax-templates-rhel-10.0-1.tar.gz | ||||||
| /lorax-templates-rhel-10.0-2.tar.gz | /lorax-templates-rhel-10.0-2.tar.gz | ||||||
| /lorax-templates-rhel-10.0-3.tar.gz | /lorax-templates-rhel-10.0-3.tar.gz | ||||||
|  | /lorax-templates-rhel-10.0-4.tar.gz | ||||||
|  | |||||||
| @ -6,17 +6,15 @@ KERNELDIR=PXEBOOTDIR | |||||||
| STAGE2IMG="images/install.img" | STAGE2IMG="images/install.img" | ||||||
| LORAXDIR="usr/share/lorax/" | LORAXDIR="usr/share/lorax/" | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | from os.path import basename | ||||||
| %> | from pylorax.sysutils import joinpaths | ||||||
| 
 | 
 | ||||||
| ## Test ${runtime_img} to see if udf is needed | # 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: | ||||||
|     import os |     isoargs = "-iso-level 3" | ||||||
|     from pylorax.sysutils import joinpaths | else: | ||||||
|     if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: |     isoargs = "" | ||||||
|         udfargs = "-allow-limited-size" |  | ||||||
|     else: |  | ||||||
|         udfargs = "" |  | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir images | mkdir images | ||||||
| @ -77,8 +75,8 @@ mkdir ${KERNELDIR} | |||||||
| 
 | 
 | ||||||
| %if exists("boot/efi/EFI/*/gcdaa64.efi"): | %if exists("boot/efi/EFI/*/gcdaa64.efi"): | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|        ${efiargs} -R -J -V '${isolabel}' -T ${udfargs} \ |        ${efiargs} -R -J -V '${isolabel}' \ | ||||||
|        -graft-points \ |        -graft-points \ | ||||||
|        ${KERNELDIR}=${outroot}/${KERNELDIR} \ |        ${KERNELDIR}=${outroot}/${KERNELDIR} \ | ||||||
|        ${STAGE2IMG}=${outroot}/${STAGE2IMG} \ |        ${STAGE2IMG}=${outroot}/${STAGE2IMG} \ | ||||||
|  | |||||||
| @ -35,8 +35,8 @@ menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class red --class gn | |||||||
| 	initrd @INITRDPATH@ | 	initrd @INITRDPATH@ | ||||||
| } | } | ||||||
| submenu 'Troubleshooting -->' { | submenu 'Troubleshooting -->' { | ||||||
| 	menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os { | 	menuentry 'Install @PRODUCT@ @VERSION@ in text mode' --class red --class gnu-linux --class gnu --class os { | ||||||
| 		linux @KERNELPATH@ @ROOT@ nomodeset | 		linux @KERNELPATH@ @ROOT@ inst.text | ||||||
| 		initrd @INITRDPATH@ | 		initrd @INITRDPATH@ | ||||||
| 	} | 	} | ||||||
| 	menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { | 	menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { | ||||||
|  | |||||||
| @ -1,2 +0,0 @@ | |||||||
| [main] |  | ||||||
| no-auto-default=* |  | ||||||
| @ -1,14 +1,8 @@ | |||||||
| Port 22 |  | ||||||
| PermitRootLogin yes | PermitRootLogin yes | ||||||
| IgnoreRhosts yes |  | ||||||
| StrictModes yes |  | ||||||
| X11Forwarding yes | X11Forwarding yes | ||||||
| X11DisplayOffset 10 | X11DisplayOffset 10 | ||||||
| PrintMotd yes | PrintMotd no | ||||||
| XAuthLocation /bin/xauth |  | ||||||
| KeepAlive yes |  | ||||||
| SyslogFacility AUTHPRIV | SyslogFacility AUTHPRIV | ||||||
| RSAAuthentication yes |  | ||||||
| PasswordAuthentication yes | PasswordAuthentication yes | ||||||
| PermitEmptyPasswords yes | PermitEmptyPasswords yes | ||||||
| PermitUserEnvironment yes | PermitUserEnvironment yes | ||||||
|  | |||||||
| @ -29,8 +29,8 @@ menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class fedora --class | |||||||
| 	initrdefi @INITRDPATH@ | 	initrdefi @INITRDPATH@ | ||||||
| } | } | ||||||
| submenu 'Troubleshooting -->' { | submenu 'Troubleshooting -->' { | ||||||
| 	menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os { | 	menuentry 'Install @PRODUCT@ @VERSION@ in text mode' --class fedora --class gnu-linux --class gnu --class os { | ||||||
| 		linuxefi @KERNELPATH@ @ROOT@ nomodeset quiet | 		linuxefi @KERNELPATH@ @ROOT@ inst.text quiet | ||||||
| 		initrdefi @INITRDPATH@ | 		initrdefi @INITRDPATH@ | ||||||
| 	} | 	} | ||||||
| 	menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os { | 	menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os { | ||||||
|  | |||||||
| @ -75,15 +75,15 @@ menu separator # insert an empty line | |||||||
| menu begin ^Troubleshooting | menu begin ^Troubleshooting | ||||||
|   menu title Troubleshooting |   menu title Troubleshooting | ||||||
| 
 | 
 | ||||||
| label vesa | label text | ||||||
|   menu indent count 5 |   menu indent count 5 | ||||||
|   menu label Install @PRODUCT@ @VERSION@ in ^basic graphics mode |   menu label Install @PRODUCT@ @VERSION@ using ^text mode | ||||||
|   text help |   text help | ||||||
| 	Try this option out if you're having trouble installing | 	Try this option out if you're having trouble installing | ||||||
| 	@PRODUCT@ @VERSION@. | 	@PRODUCT@ @VERSION@. | ||||||
|   endtext |   endtext | ||||||
|   kernel vmlinuz |   kernel vmlinuz | ||||||
|   append initrd=initrd.img @ROOT@ nomodeset quiet |   append initrd=initrd.img @ROOT@ inst.text quiet | ||||||
| 
 | 
 | ||||||
| label rescue | label rescue | ||||||
|   menu indent count 5 |   menu indent count 5 | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32} | |||||||
| install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/ | install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/ | ||||||
| install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi | install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi | ||||||
| %endif | %endif | ||||||
| install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ | install boot/grub2/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ | ||||||
| 
 | 
 | ||||||
| ## actually make the EFI images | ## actually make the EFI images | ||||||
| ${make_efiboot("images/efiboot.img")} | ${make_efiboot("images/efiboot.img")} | ||||||
|  | |||||||
| @ -12,17 +12,15 @@ def valid_label(ch): | |||||||
| 
 | 
 | ||||||
| isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | from os.path import basename | ||||||
| %> | from pylorax.sysutils import joinpaths | ||||||
| 
 | 
 | ||||||
| ## Test ${runtime_img} to see if udf is needed | # 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: | ||||||
|     import os |     isoargs = "-iso-level 3" | ||||||
|     from pylorax.sysutils import joinpaths | else: | ||||||
|     if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: |     isoargs = "" | ||||||
|         udfargs = "-allow-limited-size" |  | ||||||
|     else: |  | ||||||
|         udfargs = "" |  | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir ${LIVEDIR} | mkdir ${LIVEDIR} | ||||||
| @ -76,8 +74,8 @@ mkdir ${KERNELDIR} | |||||||
| 
 | 
 | ||||||
| %if exists("boot/efi/EFI/*/gcdaa64.efi"): | %if exists("boot/efi/EFI/*/gcdaa64.efi"): | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|        ${efiargs} -R -J -V '${isolabel}' -T ${udfargs} \ |        ${efiargs} -R -J -V '${isolabel}' \ | ||||||
|        -graft-points \ |        -graft-points \ | ||||||
|        ${KERNELDIR}=${outroot}/${KERNELDIR} \ |        ${KERNELDIR}=${outroot}/${KERNELDIR} \ | ||||||
|        ${LIVEDIR}=${outroot}/${LIVEDIR} \ |        ${LIVEDIR}=${outroot}/${LIVEDIR} \ | ||||||
|  | |||||||
| @ -34,9 +34,3 @@ menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class red --class gnu- | |||||||
| 	linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet | 	linux @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet | ||||||
| 	initrd @INITRDPATH@ | 	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 |  | ||||||
| 		initrd @INITRDPATH@ |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | |||||||
| @ -3,19 +3,15 @@ set timeout=5 | |||||||
| 
 | 
 | ||||||
| echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n" | echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n" | ||||||
| 
 | 
 | ||||||
| for BITS in 32 64; do | menuentry "Start @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os { | ||||||
|   if [ -d "/ppc/ppc${BITS}" ]; then |   linux /ppc/ppc64/vmlinuz @ROOT@ @EXTRA@ ro rd.live.image quiet | ||||||
|     menuentry "Start @PRODUCT@ @VERSION@ (${BITS}-bit kernel)"  $BITS --class fedora --class gnu-linux --class gnu --class os { |   initrd /ppc/ppc64/initrd.img | ||||||
|       linux /ppc/ppc${2}/vmlinuz @ROOT@ @EXTRA@ ro rd.live.image quiet | } | ||||||
|       initrd /ppc/ppc${2}/initrd.img |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     menuentry "Test this media & start @PRODUCT@ @VERSION@  (${BITS}-bit kernel)" $BITS --class fedora --class gnu-linux --class  gnu --class os { | menuentry "Test this media & start @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class  gnu --class os { | ||||||
|       linux /ppc/ppc${2}/vmlinuz @ROOT@ @EXTRA@ rd.live.image rd.live.check ro quiet |   linux /ppc/ppc64/vmlinuz @ROOT@ @EXTRA@ rd.live.image rd.live.check ro quiet | ||||||
|       initrd /ppc/ppc${2}/initrd.img |   initrd /ppc/ppc64/initrd.img | ||||||
|       } | } | ||||||
|   fi |  | ||||||
| done |  | ||||||
| 
 | 
 | ||||||
| submenu 'Other options...' { | submenu 'Other options...' { | ||||||
|   menuentry 'Reboot' { |   menuentry 'Reboot' { | ||||||
| @ -26,4 +22,3 @@ submenu 'Other options...' { | |||||||
|     exit |     exit | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -28,9 +28,3 @@ menuentry 'Test this media & start @PRODUCT@ @VERSION@' --class fedora --class g | |||||||
| 	linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet | 	linuxefi @KERNELPATH@ @ROOT@ @EXTRA@ rd.live.image rd.live.check quiet | ||||||
| 	initrdefi @INITRDPATH@ | 	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 |  | ||||||
| 		initrdefi @INITRDPATH@ |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | |||||||
| @ -75,16 +75,6 @@ menu separator # insert an empty line | |||||||
| menu begin ^Troubleshooting | menu begin ^Troubleshooting | ||||||
|   menu title Troubleshooting |   menu title Troubleshooting | ||||||
| 
 | 
 | ||||||
| label vesa |  | ||||||
|   menu indent count 5 |  | ||||||
|   menu label Start @PRODUCT@ @VERSION@ in ^basic graphics mode |  | ||||||
|   text help |  | ||||||
| 	Try this option out if you're having trouble starting |  | ||||||
| 	@PRODUCT@ @VERSION@. |  | ||||||
|   endtext |  | ||||||
|   kernel vmlinuz |  | ||||||
|   append initrd=initrd.img @ROOT@ @EXTRA@ rd.live.image nomodeset quiet |  | ||||||
| 
 |  | ||||||
| label memtest | label memtest | ||||||
|   menu label Run a ^memory test |   menu label Run a ^memory test | ||||||
|   text help |   text help | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32} | |||||||
| install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/ | install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/ | ||||||
| install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi | install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi | ||||||
| %endif | %endif | ||||||
| install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ | install boot/grub2/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ | ||||||
| 
 | 
 | ||||||
| ## actually make the EFI images | ## actually make the EFI images | ||||||
| ${make_efiboot("images/efiboot.img")} | ${make_efiboot("images/efiboot.img")} | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| <%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/> | <%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel, extra_boot_args"/> | ||||||
| <% | <% | ||||||
| configdir="tmp/config_files/ppc" | configdir="tmp/config_files/ppc" | ||||||
| BOOTDIR="ppc" | BOOTDIR="ppc" | ||||||
| @ -12,17 +12,15 @@ LORAXDIR="usr/share/lorax/" | |||||||
| ## with '_', which means we won't need any udev escapes. | ## with '_', which means we won't need any udev escapes. | ||||||
| isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel) | isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel) | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | from os.path import basename | ||||||
| %> | from pylorax.sysutils import joinpaths | ||||||
| 
 | 
 | ||||||
| ## Test ${runtime_img} to see if udf is needed | # 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: | ||||||
|     import os |     isoargs = "-iso-level 3" | ||||||
|     from pylorax.sysutils import joinpaths | else: | ||||||
|     if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: |     isoargs = "" | ||||||
|         udfargs = "-allow-limited-size" |  | ||||||
|     else: |  | ||||||
|         udfargs = "" |  | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir ${LIVEDIR} | mkdir ${LIVEDIR} | ||||||
| @ -48,6 +46,7 @@ install ${configdir}/grub.cfg.in     ${GRUBDIR}/grub.cfg | |||||||
| replace @PRODUCT@ '${product.name}'  ${GRUBDIR}/grub.cfg | replace @PRODUCT@ '${product.name}'  ${GRUBDIR}/grub.cfg | ||||||
| replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg | replace @VERSION@ ${product.version} ${GRUBDIR}/grub.cfg | ||||||
| replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${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) | ## Install kernel and bootloader config (in separate places for each arch) | ||||||
| %for kernel in kernels: | %for kernel in kernels: | ||||||
| @ -81,14 +80,13 @@ replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${GRUBDIR}/grub.cfg | |||||||
| %endfor | %endfor | ||||||
| 
 | 
 | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -v -U -J -R -T \ | runcmd xorrisofs -v -U -J -R ${isoargs} \ | ||||||
|         -o ${outroot}/images/boot.iso \ |         -o ${outroot}/images/boot.iso \ | ||||||
|         -part -hfs -r -l -sysid PPC \ |         -r -l -sysid PPC \ | ||||||
|         -A "${product.name} ${product.version}" -V '${isolabel}' \ |         -A "${product.name} ${product.version}" -V '${isolabel}' \ | ||||||
|         -volset "${product.version}" -volset-size 1 -volset-seqno 1 \ |         -volset "${product.version}" -volset-size 1 -volset-seqno 1 \ | ||||||
|         -hfs-volid ${product.version} \ |         -chrp-boot \ | ||||||
|         -chrp-boot -map ${inroot}/${configdir}/mapping \ |         -graft-points \ | ||||||
|         -no-desktop -allow-multidot ${udfargs} -graft-points \ |  | ||||||
|         ${BOOTDIR}=${outroot}/${BOOTDIR} \ |         ${BOOTDIR}=${outroot}/${BOOTDIR} \ | ||||||
|         ${GRUBDIR}=${outroot}/${GRUBDIR} \ |         ${GRUBDIR}=${outroot}/${GRUBDIR} \ | ||||||
|         ${LIVEDIR}=${outroot}/${LIVEDIR} ${filegraft} |         ${LIVEDIR}=${outroot}/${LIVEDIR} ${filegraft} | ||||||
|  | |||||||
| @ -22,9 +22,9 @@ from pylorax.sysutils import joinpaths | |||||||
| 
 | 
 | ||||||
| # Test the runtime_img, if it is > 4GiB we need to set -iso-level to 3 | # 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: | if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: | ||||||
|     udfargs = "-allow-limited-size" |     isoargs = "-iso-level 3" | ||||||
| else: | else: | ||||||
|     udfargs = "" |     isoargs = "" | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir ${LIVEDIR} | mkdir ${LIVEDIR} | ||||||
| @ -81,10 +81,10 @@ runcmd ${MKS390IMAGE} ${outroot}/${KERNELDIR}/kernel.img \ | |||||||
|                       -p ${outroot}/${BOOTDIR}/cdboot.prm |                       -p ${outroot}/${BOOTDIR}/cdboot.prm | ||||||
| 
 | 
 | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|        -b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \ |        -b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \ | ||||||
|        -boot-load-size 4 -no-emul-boot \ |        -boot-load-size 4 -no-emul-boot \ | ||||||
|        -R -J -V '${isolabel}' ${udfargs} -graft-points \ |        -R -J -V '${isolabel}' -graft-points \ | ||||||
|        ${BOOTDIR}=${outroot}/${BOOTDIR} \ |        ${BOOTDIR}=${outroot}/${BOOTDIR} \ | ||||||
|        ${LIVEDIR}=${outroot}/${LIVEDIR} \ |        ${LIVEDIR}=${outroot}/${LIVEDIR} \ | ||||||
|        ${filegraft} |        ${filegraft} | ||||||
|  | |||||||
| @ -14,17 +14,15 @@ def valid_label(ch): | |||||||
| 
 | 
 | ||||||
| isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | from os.path import basename | ||||||
| %> | from pylorax.sysutils import joinpaths | ||||||
| 
 | 
 | ||||||
| ## Test ${runtime_img} to see if udf is needed | # 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: | ||||||
|     import os |     isoargs = "-iso-level 3" | ||||||
|     from pylorax.sysutils import joinpaths | else: | ||||||
|     if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: |     isoargs = "" | ||||||
|         udfargs = "-allow-limited-size" |  | ||||||
|     else: |  | ||||||
|         udfargs = "" |  | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir ${LIVEDIR} | mkdir ${LIVEDIR} | ||||||
| @ -70,7 +68,7 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| ## WHeeeeeeee, EFI. | ## WHeeeeeeee, EFI. | ||||||
| <% efiargs=""; efigraft=""; efihybrid=""; efiarch32=None; efiarch64=None %> | <% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %> | ||||||
| %if exists("boot/efi/EFI/*/gcdia32.efi"): | %if exists("boot/efi/EFI/*/gcdia32.efi"): | ||||||
|     <% efiarch32 = 'IA32' %> |     <% efiarch32 = 'IA32' %> | ||||||
| %endif | %endif | ||||||
| @ -80,18 +78,17 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
| %if (efiarch32 or efiarch64) and basearch != 'i386': | %if (efiarch32 or efiarch64) and basearch != 'i386': | ||||||
|     <% |     <% | ||||||
|     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) |     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) | ||||||
|     images = ["images/efiboot.img"] |     images = [("images/efiboot.img", "-isohybrid-gpt-basdat")] | ||||||
|     if domacboot: |     if domacboot: | ||||||
|         images.append("images/macboot.img") |         images.append(("images/macboot.img", "-isohybrid-gpt-hfsplus")) | ||||||
|     %> |     %> | ||||||
|     %for img in images: |     %for img, hybrid in images: | ||||||
|         <% |         <% | ||||||
|         efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img) |         efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot {1}".format(img, hybrid) | ||||||
|         efigraft += " {0}={1}/{0}".format(img,outroot) |         efigraft += " {0}={1}/{0}".format(img,outroot) | ||||||
|         %> |         %> | ||||||
|         treeinfo images-${basearch} ${img|basename} ${img} |         treeinfo images-${basearch} ${img|basename} ${img} | ||||||
|     %endfor |     %endfor | ||||||
|     <% efihybrid = "--uefi --mac" if domacboot else "--uefi" %> |  | ||||||
|     <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/> |     <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel, extra_boot_args=extra_boot_args"/> | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| @ -115,15 +112,21 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
|     <% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %> |     <% filegraft += " {0}={1}/{0}".format(basename(f), outroot) %> | ||||||
| %endfor | %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 boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|  |        -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \ | ||||||
|        -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ |        -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ | ||||||
|        -boot-load-size 4 -boot-info-table -no-emul-boot \ |        -boot-load-size 4 -boot-info-table -no-emul-boot \ | ||||||
|        ${efiargs} -R -J -V '${isolabel}' -T ${udfargs} \ |        ${efiargs} -R -J -V '${isolabel}' \ | ||||||
|        -graft-points \ |        -graft-points \ | ||||||
|        ${BOOTDIR}=${outroot}/${BOOTDIR} \ |        ${BOOTDIR}=${outroot}/${BOOTDIR} \ | ||||||
|        ${KERNELDIR}=${outroot}/${KERNELDIR} \ |        ${KERNELDIR}=${outroot}/${KERNELDIR} \ | ||||||
|        ${LIVEDIR}=${outroot}/${LIVEDIR} \ |        ${LIVEDIR}=${outroot}/${LIVEDIR} \ | ||||||
|        ${efigraft} ${filegraft} |        ${efigraft} ${filegraft} | ||||||
| runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso |  | ||||||
| treeinfo images-${basearch} boot.iso images/boot.iso | treeinfo images-${basearch} boot.iso images/boot.iso | ||||||
|  | |||||||
| @ -59,7 +59,7 @@ removefrom systemd /usr/bin/systemd-nspawn /usr/share/zsh | |||||||
| 
 | 
 | ||||||
| ## various other things we remove to save space | ## various other things we remove to save space | ||||||
| removepkg avahi-autoipd coreutils-libs dash db4-utils diffutils file | removepkg avahi-autoipd coreutils-libs dash db4-utils diffutils file | ||||||
| removepkg genisoimage info iptables | removepkg info iptables | ||||||
| removepkg jasper-libs libXxf86misc | removepkg jasper-libs libXxf86misc | ||||||
| removepkg libasyncns libhbaapi libhbalinux | removepkg libasyncns libhbaapi libhbalinux | ||||||
| removepkg libtiff linux-atm-libs | removepkg libtiff linux-atm-libs | ||||||
| @ -358,7 +358,7 @@ removefrom gstreamer1-plugins-base --allbut \ | |||||||
| removepkg geoclue2 | removepkg geoclue2 | ||||||
| 
 | 
 | ||||||
| ## And remove the packages that those extra libraries pulled in | ## And remove the packages that those extra libraries pulled in | ||||||
| removepkg cdparanoia-libs opus libtheora libvisual flac-libs gsm avahi-glib avahi-libs \ | removepkg opus libtheora libvisual flac-libs gsm avahi-glib avahi-libs \ | ||||||
|           ModemManager-glib |           ModemManager-glib | ||||||
| 
 | 
 | ||||||
| ## gnome-kiosk dependencies require libvorbis and libvorbisfile, but enc/dec are no longer needed | ## gnome-kiosk dependencies require libvorbis and libvorbisfile, but enc/dec are no longer needed | ||||||
|  | |||||||
| @ -85,9 +85,7 @@ installpkg systemd | |||||||
| installpkg rsyslog | installpkg rsyslog | ||||||
| 
 | 
 | ||||||
| ## xorg/GUI packages | ## xorg/GUI packages | ||||||
| %if basearch != "s390x": |  | ||||||
| installpkg xorg-x11-drivers xorg-x11-server-Xorg | installpkg xorg-x11-drivers xorg-x11-server-Xorg | ||||||
| %endif |  | ||||||
| installpkg xorg-x11-xauth | installpkg xorg-x11-xauth | ||||||
| installpkg dbus-x11 gsettings-desktop-schemas | installpkg dbus-x11 gsettings-desktop-schemas | ||||||
| installpkg nm-connection-editor | installpkg nm-connection-editor | ||||||
| @ -117,9 +115,7 @@ installpkg selinux-policy-targeted audit | |||||||
| ## network tools/servers | ## network tools/servers | ||||||
| installpkg ethtool openssh-server nfs-utils openssh-clients | installpkg ethtool openssh-server nfs-utils openssh-clients | ||||||
| installpkg tigervnc-server-minimal | installpkg tigervnc-server-minimal | ||||||
| %if basearch != "s390x": |  | ||||||
| installpkg tigervnc-server-module | installpkg tigervnc-server-module | ||||||
| %endif |  | ||||||
| installpkg net-tools | installpkg net-tools | ||||||
| # TODO: uncomment | # TODO: uncomment | ||||||
| # installpkg nmap-ncat | # installpkg nmap-ncat | ||||||
| @ -136,6 +132,7 @@ installpkg rng-tools | |||||||
| %if basearch in ("i386", "x86_64", "aarch64"): | %if basearch in ("i386", "x86_64", "aarch64"): | ||||||
| installpkg dmidecode | installpkg dmidecode | ||||||
| %endif | %endif | ||||||
|  | installpkg nvme-cli | ||||||
| 
 | 
 | ||||||
| ## fonts & themes | ## fonts & themes | ||||||
| installpkg bitmap-fangsongti-fonts | installpkg bitmap-fangsongti-fonts | ||||||
|  | |||||||
| @ -76,7 +76,6 @@ mkdir etc/NetworkManager/conf.d | |||||||
| install ${configdir}/91-anaconda-autoconnect-slaves.conf etc/NetworkManager/conf.d | install ${configdir}/91-anaconda-autoconnect-slaves.conf etc/NetworkManager/conf.d | ||||||
| install ${configdir}/vconsole.conf etc | install ${configdir}/vconsole.conf etc | ||||||
| install ${configdir}/92-anaconda-loglevel-debug.conf etc/NetworkManager/conf.d | install ${configdir}/92-anaconda-loglevel-debug.conf etc/NetworkManager/conf.d | ||||||
| install ${configdir}/90-anaconda-no-auto-default.conf etc/NetworkManager/conf.d |  | ||||||
| 
 | 
 | ||||||
| ## set up sshd | ## set up sshd | ||||||
| install ${configdir}/sshd_config.anaconda etc/ssh | install ${configdir}/sshd_config.anaconda etc/ssh | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| <%page args="kernels, runtime_img, runtime_base, basearch, outroot"/> | <%page args="kernels, runtime_img, runtime_base, basearch, inroot, outroot"/> | ||||||
| <% | <% | ||||||
| configdir="tmp/config_files/s390" | configdir="tmp/config_files/s390" | ||||||
| BOOTDIR="images" | BOOTDIR="images" | ||||||
| @ -9,7 +9,15 @@ MKS390IMAGE="/usr/bin/mk-s390image" | |||||||
| # The assumption seems to be that there is only one s390 kernel, ever | # The assumption seems to be that there is only one s390 kernel, ever | ||||||
| kernel = kernels[0] | kernel = kernels[0] | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | 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 | mkdir images | ||||||
| @ -39,6 +47,7 @@ treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize | |||||||
| treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm | treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm | ||||||
| treeinfo images-${basearch} genericdvd.prm ${BOOTDIR}/genericdvd.prm | treeinfo images-${basearch} genericdvd.prm ${BOOTDIR}/genericdvd.prm | ||||||
| treeinfo images-${basearch} generic.ins generic.ins | treeinfo images-${basearch} generic.ins generic.ins | ||||||
|  | treeinfo images-${basearch} redhat.exec ${BOOTDIR}/redhat.exec | ||||||
| 
 | 
 | ||||||
| # Create optional product.img and updates.img in /images/ | # Create optional product.img and updates.img in /images/ | ||||||
| <% filegraft=""; images=["product", "updates"] %> | <% filegraft=""; images=["product", "updates"] %> | ||||||
| @ -69,11 +78,11 @@ runcmd ${MKS390IMAGE} ${outroot}/${KERNELDIR}/kernel.img \ | |||||||
|                       -p ${outroot}/${BOOTDIR}/cdboot.prm |                       -p ${outroot}/${BOOTDIR}/cdboot.prm | ||||||
| 
 | 
 | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|        -b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \ |        -b ${BOOTDIR}/cdboot.img -c ${BOOTDIR}/boot.cat \ | ||||||
|        -boot-load-size 4 -no-emul-boot \ |        -boot-load-size 4 -no-emul-boot \ | ||||||
|        -R -J -V '${isolabel}' -T -graft-points \ |        -R -J -V '${isolabel}' -graft-points \ | ||||||
|        generic.ins=${outroot}/generic.ins \ |        .discinfo=${outroot}/.discinfo \ | ||||||
|        ${BOOTDIR}=${outroot}/${BOOTDIR} \ |        ${BOOTDIR}=${outroot}/${BOOTDIR} \ | ||||||
|        ${filegraft} |        ${filegraft} | ||||||
| treeinfo images-${basearch} boot.iso images/boot.iso | treeinfo images-${basearch} boot.iso images/boot.iso | ||||||
|  | |||||||
| @ -14,17 +14,15 @@ def valid_label(ch): | |||||||
| 
 | 
 | ||||||
| isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) | ||||||
| 
 | 
 | ||||||
|  | import os | ||||||
| from os.path import basename | from os.path import basename | ||||||
| %> | from pylorax.sysutils import joinpaths | ||||||
| 
 | 
 | ||||||
| ## Test ${runtime_img} to see if udf is needed | # 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: | ||||||
|     import os |     isoargs = "-iso-level 3" | ||||||
|     from pylorax.sysutils import joinpaths | else: | ||||||
|     if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3: |     isoargs = "" | ||||||
|         udfargs = "-allow-limited-size" |  | ||||||
|     else: |  | ||||||
|         udfargs = "" |  | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| mkdir images | mkdir images | ||||||
| @ -71,7 +69,7 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| ## WHeeeeeeee, EFI. | ## WHeeeeeeee, EFI. | ||||||
| <% efiargs=""; efigraft=""; efihybrid=""; efiarch32=None; efiarch64=None %> | <% efiargs=""; efigraft=""; efiarch32=None; efiarch64=None %> | ||||||
| %if exists("boot/efi/EFI/*/gcdia32.efi"): | %if exists("boot/efi/EFI/*/gcdia32.efi"): | ||||||
|     <% efiarch32 = 'IA32' %> |     <% efiarch32 = 'IA32' %> | ||||||
| %endif | %endif | ||||||
| @ -81,18 +79,17 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
| %if (efiarch32 or efiarch64) and basearch != 'i386': | %if (efiarch32 or efiarch64) and basearch != 'i386': | ||||||
|     <% |     <% | ||||||
|     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) |     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) | ||||||
|     images = ["images/efiboot.img"] |     images = [("images/efiboot.img", "-isohybrid-gpt-basdat")] | ||||||
|     if domacboot: |     if domacboot: | ||||||
|         images.append("images/macboot.img") |         images.append(("images/macboot.img", "-isohybrid-gpt-hfsplus")) | ||||||
|     %> |     %> | ||||||
|     %for img in images: |     %for img, hybrid in images: | ||||||
|         <% |         <% | ||||||
|         efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img) |         efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot {1}".format(img, hybrid) | ||||||
|         efigraft += " {0}={1}/{0}".format(img,outroot) |         efigraft += " {0}={1}/{0}".format(img,outroot) | ||||||
|         %> |         %> | ||||||
|         treeinfo images-${basearch} ${img|basename} ${img} |         treeinfo images-${basearch} ${img|basename} ${img} | ||||||
|     %endfor |     %endfor | ||||||
|     <% efihybrid = "--uefi --mac" if domacboot else "--uefi" %> |  | ||||||
|     <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> |     <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch32=efiarch32, efiarch64=efiarch64, isolabel=isolabel"/> | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| @ -124,14 +121,14 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} | |||||||
| %endfor | %endfor | ||||||
| 
 | 
 | ||||||
| ## make boot.iso | ## make boot.iso | ||||||
| runcmd mkisofs -o ${outroot}/images/boot.iso \ | runcmd xorrisofs ${isoargs} -o ${outroot}/images/boot.iso \ | ||||||
|  |        -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \ | ||||||
|        -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ |        -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ | ||||||
|        -boot-load-size 4 -boot-info-table -no-emul-boot \ |        -boot-load-size 4 -boot-info-table -no-emul-boot \ | ||||||
|        ${efiargs} -R -J -V '${isolabel}' -T ${udfargs} \ |        ${efiargs} -R -J -V '${isolabel}' \ | ||||||
|        -graft-points \ |        -graft-points \ | ||||||
|        ${STAGE2IMG}=${outroot}/${STAGE2IMG} \ |        ${STAGE2IMG}=${outroot}/${STAGE2IMG} \ | ||||||
|        ${BOOTDIR}=${outroot}/${BOOTDIR} \ |        ${BOOTDIR}=${outroot}/${BOOTDIR} \ | ||||||
|        ${KERNELDIR}=${outroot}/${KERNELDIR} \ |        ${KERNELDIR}=${outroot}/${KERNELDIR} \ | ||||||
|        ${efigraft} ${filegraft} |        ${efigraft} ${filegraft} | ||||||
| runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso |  | ||||||
| treeinfo images-${basearch} boot.iso images/boot.iso | treeinfo images-${basearch} boot.iso images/boot.iso | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| --- !Policy | --- !Policy | ||||||
| product_versions: | product_versions: | ||||||
|   - rhel-8 |   - rhel-8 | ||||||
|  |   - rhel-9 | ||||||
| decision_context: osci_compose_gate | decision_context: osci_compose_gate | ||||||
| rules: | rules: | ||||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} |   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| Name:           lorax-templates-rhel | Name:           lorax-templates-rhel | ||||||
| Version:        10.0 | Version:        10.0 | ||||||
| Release:        3%{?dist} | Release:        4%{?dist} | ||||||
| Summary:        RHEL build templates for lorax and livemedia-creator | Summary:        RHEL build templates for lorax and livemedia-creator | ||||||
| 
 | 
 | ||||||
| License:        GPLv2+ | License:        GPLv2+ | ||||||
| @ -10,7 +10,7 @@ BuildArch:      noarch | |||||||
| # This tarball is generated from the contents of this dist-git repository | # This tarball is generated from the contents of this dist-git repository | ||||||
| # by running the command `make tar`. | # by running the command `make tar`. | ||||||
| # See README for full details of how to update this package | # See README for full details of how to update this package | ||||||
| Source0:        lorax-templates-rhel-10.0-3.tar.gz | Source0:        lorax-templates-rhel-10.0-4.tar.gz | ||||||
| 
 | 
 | ||||||
| # Required for the template branding support | # Required for the template branding support | ||||||
| Requires:       lorax >= 34.9.1 | Requires:       lorax >= 34.9.1 | ||||||
| @ -38,6 +38,9 @@ cp -a 80-rhel/* $RPM_BUILD_ROOT/%{templatedir} | |||||||
| %{templatedir}/* | %{templatedir}/* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Nov 29 2021 Stephen Gallagher <sgallagh@redhat.com> - 10.0-4 | ||||||
|  | - Re-sync from CentOS Stream 9 | ||||||
|  | 
 | ||||||
| * Thu Jul 15 2021 Stephen Gallagher <sgallagh@redhat.com> - 10.0-3 | * Thu Jul 15 2021 Stephen Gallagher <sgallagh@redhat.com> - 10.0-3 | ||||||
| - Drop prefixdevname | - Drop prefixdevname | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1 +1 @@ | |||||||
| SHA512 (lorax-templates-rhel-10.0-3.tar.gz) = 96321ab35b998863ed3cb15c9feecdc6f2310d22ed32cd131945c8928dc26cd7fb16023a1664a77e4ade8b0a2d7f118ad34bf7f8d3ef928f406a877642e5d103 | SHA512 (lorax-templates-rhel-10.0-4.tar.gz) = 75f34fe7571806d8aad22df7c86d89eef080c5f1e22bfbc7f71a13074fef25beded17a8b8cca4172ee5a14bc44f7f4911380e399b2580a01cfc29f3b47b05d9a | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user