#65 Introduce non-cloud disk images and KDE Desktop profile to use it
Merged 9 months ago by ngompa. Opened 9 months ago by ngompa.

file modified
+2 -1
@@ -12,5 +12,6 @@ 

  |                                |            | `Container-Base-Generic-Minimal` |

  |                                |            | `Container-Base-Generic`         |

  | Toolbox Container              | `oci`      | `Container-Toolbox`              |

- | KDE Spin                       | `iso`      | `KDE-Live`                       |

+ | KDE Spin                       | `iso`      | `KDE-Desktop-Live`               |

+ |                                | `oem`      | `KDE-Desktop-Disk`               |

  | Workstation Edition            | `iso`      | `Workstation-Live`               |

file modified
+63
@@ -2,7 +2,65 @@ 

  	<profiles>

  		<profile name="BootCore" description="Boot core packages"/>

  		<profile name="BootCoreUKI" description="Boot core packages for UKI"/>

+ 		<profile name="BootDiskCore" description="Boot disk core configuration">

+ 			<requires profile="BootCore"/>

+ 		</profile>

  	</profiles>

+ 	<preferences profiles="BootDiskCore" arch="x86_64,aarch64">

+ 		<type image="oem"

+ 		      filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"

+ 		      kernelcmdline="rhgb quiet" devicepersistency="by-uuid" target_blocksize="4096"

+ 		      bootpartition="true" bootpartsize="1024" bootfilesystem="ext4" efipartsize="500" firmware="uefi"

+ 		      rootfs_label="fedora"

+ 		      >

+ 			<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>

+ 			<systemdisk name="fedora">

+ 				<volume name="@root=root"/>

+ 				<volume name="home" parent="/"/>

+ 				<volume name="var" parent="/"/>

+ 			</systemdisk>

+ 			<oemconfig>

+ 				<oem-resize>false</oem-resize>

+ 			</oemconfig>

+ 		</type>

+ 	</preferences>

+ 	<preferences profiles="BootDiskCore" arch="ppc64le">

+ 		<type image="oem"

+ 		      filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"

+ 		      kernelcmdline="rhgb quiet" devicepersistency="by-uuid"

+ 		      bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" firmware="ofw"

+ 		      rootfs_label="fedora"

+ 		      >

+ 			<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>

+ 			<systemdisk>

+ 				<volume name="@root=root"/>

+ 				<volume name="home" parent="/"/>

+ 				<volume name="var" parent="/"/>

+ 			</systemdisk>

+ 			<oemconfig>

+ 				<oem-resize>false</oem-resize>

+ 			</oemconfig>

+ 		</type>

+ 	</preferences>

+ 	<preferences profiles="BootDiskCore" arch="s390x">

+ 		<type image="oem"

+ 		      filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"

+ 		      kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"

+ 		      devicepersistency="by-uuid"

+ 		      bootpartition="true" bootpartsize="1000" bootfilesystem="ext4"

+ 		      rootfs_label="fedora"

+ 		      >

+ 			<bootloader name="zipl" timeout="1"/>

+ 			<systemdisk>

+ 				<volume name="@root=root"/>

+ 				<volume name="home" parent="/"/>

+ 				<volume name="var" parent="/"/>

+ 			</systemdisk>

+ 			<oemconfig>

+ 				<oem-resize>false</oem-resize>

+ 			</oemconfig>

+ 		</type>

+ 	</preferences>

  	<packages type="bootstrap" patternType="plusRecommended" profiles="BootCore,BootCoreUKI">

  		<package name="grubby"/>

  	</packages>
@@ -34,4 +92,9 @@ 

  		<package name="grub2-efi-aa64-cdboot" arch="aarch64"/>

  		<package name="grub2-efi-x64-cdboot" arch="x86_64"/>

  	</packages>

+ 	<packages type="image" patternType="plusRecommended" profiles="BootDiskCore">

+ 		<package name="arm-image-installer" arch="aarch64"/>

+ 		<package name="bcm283x-firmware" arch="aarch64"/>

+ 		<package name="uboot-images-armv8" arch="aarch64"/>

+ 	</packages>

  </image>

@@ -17,7 +17,6 @@ 

  		<package name="libreoffice-math"/>

  		<package name="fuse"/>

  		<package name="kde-l10n"/>

- 		<package name="plasma-welcome-fedora"/>

  		<ignore name="@admin-tools"/>

  		<ignore name="gnome-disk-utility"/>

  		<ignore name="system-config-printer"/>

file modified
+22 -3
@@ -4,9 +4,28 @@ 

  			<requires profile="BootCore"/>

  		</profile>

  	</profiles>

- 	<preferences profiles="LiveInstall">

- 		<type image="iso" publisher="Fedora Project" volid="Fedora_Linux" primary="true" flags="dmsquash" firmware="uefi" kernelcmdline="quiet rhgb" mediacheck="false">

- 			<bootloader name="grub2" grub_template="grub.cfg.iso-template" console="console" timeout="10"/>

+ 	<preferences profiles="LiveInstall" arch="x86_64">

+ 		<type image="iso"

+ 			publisher="Fedora Project" volid="Fedora_Linux" primary="true" flags="dmsquash" mediacheck="false"

+ 			firmware="uefi" efifatimagesize="30" kernelcmdline="quiet rhgb"

+ 			>

+ 			<bootloader name="grub2" grub_template="grub-x86.cfg.iso-template" console="console" timeout="10"/>

+ 		</type>

+ 	</preferences>

+ 	<preferences profiles="LiveInstall" arch="aarch64">

+ 		<type image="iso"

+ 			publisher="Fedora Project" volid="Fedora_Linux" primary="true" flags="dmsquash" mediacheck="false"

+ 			firmware="uefi" efifatimagesize="30" kernelcmdline="quiet rhgb"

+ 			>

+ 			<bootloader name="grub2" grub_template="grub-arm.cfg.iso-template" console="console" timeout="10"/>

+ 		</type>

+ 	</preferences>

+ 	<preferences profiles="LiveInstall" arch="ppc64le">

+ 		<type image="iso"

+ 			publisher="Fedora Project" volid="Fedora_Linux" primary="true" flags="dmsquash" mediacheck="false"

+ 			firmware="ofw" kernelcmdline="quiet rhgb"

+ 			>

+ 			<bootloader name="grub2" grub_template="grub-ppc.cfg.iso-template" console="console" timeout="10"/>

  		</type>

  	</preferences>

  	<packages type="iso" patternType="plusRecommended" profiles="LiveInstall">

file modified
+23 -1
@@ -46,7 +46,7 @@ 

  #======================================

  # Delete & lock the root user password

  #--------------------------------------

- if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then

+ if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Disk"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then

  	passwd -d root

  	passwd -l root

  fi
@@ -93,6 +93,19 @@ 

  fi

  

  #======================================

+ # Setup firstboot initial setup

+ #--------------------------------------

+ 

+ if [[ "$kiwi_profiles" == *"Disk"* ]]; then

+ 	if [[ "$kiwi_profiles" != *"GNOME"* ]]; then

+ 		## Enable initial-setup

+ 		systemctl enable initial-setup.service

+ 		## Enable reconfig mode

+ 		touch /etc/reconfigSys

+ 	fi

+ fi

+ 

+ #======================================

  # Setup default target

  #--------------------------------------

  if [[ "$kiwi_profiles" != *"Container"* ]]; then
@@ -107,6 +120,15 @@ 

  # Setup default customizations

  #--------------------------------------

  

+ if [[ "$kiwi_profiles" == *"Disk"* ]]; then

+ 	# Find the architecture we are on

+ 	installarch=$(uname -m)

+ 	# Setup Raspberry Pi firmware

+ 	if [[ $installarch == "aarch64" ]]; then

+ 		cp -a /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin

+ 	fi

+ fi

+ 

  if [[ "$kiwi_profiles" == *"Azure"* ]]; then

  cat > /etc/ssh/sshd_config.d/50-client-alive-interval.conf << EOF

  ClientAliveInterval 120

@@ -0,0 +1,37 @@ 

+ # Inspired by the config used for lorax-built live media

+ 

+ set default=${default_boot}

+ 

+ function load_video {

+ 	insmod efi_gop

+ 	insmod efi_uga

+ 	insmod video_bochs

+ 	insmod video_cirrus

+ 	insmod all_video

+ }

+ set basicgfx="nomodeset"

+ 

+ load_video

+ set gfxpayload=keep

+ insmod gzio

+ insmod part_gpt

+ insmod ext2

+ 

+ terminal_input console

+ terminal_output ${terminal_output}

+ 

+ set timeout=${boot_timeout}

+ set timeout_style=${boot_timeout_style}

+ 

+ search ${search_params}

+ 

+ menuentry "Start ${title}" --class fedora --class gnu-linux --class gnu --class os {

+ 	linux ($$root)${bootpath}/${kernel_file} ${boot_options}

+ 	initrd ($$root)${bootpath}/${initrd_file}

+ }

+ submenu "Troubleshooting -->" {

+ 	menuentry "Start ${title} in basic graphics mode" --class fedora --class gnu-linux --class gnu --class os {

+ 		linux ($$root)${bootpath}/${kernel_file} ${boot_options} $${basicgfx}

+ 		initrd ($$root)${bootpath}/${initrd_file}

+ 	}

+ }

@@ -0,0 +1,26 @@ 

+ # Inspired by the config used for lorax-built live media

+ 

+ set default=${default_boot}

+ 

+ insmod gzio

+ insmod part_gpt

+ insmod ext2

+ 

+ terminal_input console

+ terminal_output ${terminal_output}

+ 

+ set timeout=${boot_timeout}

+ set timeout_style=${boot_timeout_style}

+ 

+ search ${search_params}

+ 

+ menuentry "Start ${title}" --class fedora --class gnu-linux --class gnu --class os {

+ 	linux ($$root)${bootpath}/${kernel_file} ${boot_options}

+ 	initrd ($$root)${bootpath}/${initrd_file}

+ }

+ submenu "Troubleshooting -->" {

+ 	menuentry "Start ${title} in basic graphics mode" --class fedora --class gnu-linux --class gnu --class os {

+ 		linux ($$root)${bootpath}/${kernel_file} ${boot_options} $${basicgfx}

+ 		initrd ($$root)${bootpath}/${initrd_file}

+ 	}

+ }

grub-x86.cfg.iso-template grub.cfg.iso-template
file renamed
+1 -1
@@ -25,7 +25,7 @@ 

  insmod ext2

  

  terminal_input console

- terminal_output ${terminal_setup}

+ terminal_output ${terminal_output}

  

  set timeout=${boot_timeout}

  set timeout_style=${boot_timeout_style}

file modified
+9 -2
@@ -1,11 +1,18 @@ 

  <image>

  	<profiles>

- 		<profile name="KDE-Live" description="KDE Plasma Spin Live DVD">

+ 		<profile name="KDE-Desktop-Live" description="KDE Plasma Desktop Spin Live DVD">

  			<requires profile="KDE-Desktop"/>

  			<requires profile="LiveInstall"/>

  		</profile>

+ 		<profile name="KDE-Desktop-Disk" description="KDE Plasma Desktop Spin Install Disk">

+ 			<requires profile="BootDiskCore"/>

+ 			<requires profile="KDE-Desktop"/>

+ 		</profile>

  	</profiles>

- 	<packages type="bootstrap" patternType="plusRecommended" profiles="KDE-Live">

+ 	<packages type="bootstrap" patternType="plusRecommended" profiles="KDE-Desktop-Disk,KDE-Desktop-Live">

  		<package name="fedora-release-kde"/>

  	</packages>

+ 	<packages type="image" patternType="plusRecommended" profiles="KDE-Desktop-Disk,KDE-Desktop-Live">

+ 		<package name="plasma-welcome-fedora"/>

+ 	</packages>

  </image>

@@ -0,0 +1,8 @@ 

+ summary: Build KDE Desktop disk image

+ discover:

+     how: fmf

+ environment:

+     image_type: oem

+     image_profile: KDE-Desktop-Disk

+ execute:

+     how: tmt

@@ -0,0 +1,8 @@ 

+ summary: Build KDE Desktop live image

+ discover:

+     how: fmf

+ environment:

+     image_type: iso

+     image_profile: KDE-Desktop-Live

+ execute:

+     how: tmt

This pull request introduces the KDE Desktop disk image profile and reworks the profiles to make it easy for other teams to add disk images.

2 new commits added

  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
9 months ago

rebased onto 72e7153

9 months ago

rebased onto 72e7153

9 months ago

2 new commits added

  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
9 months ago

1 new commit added

  • teams/kde: Temporarily disable plasma-welcome-fedora
9 months ago

rebased onto 72e7153

9 months ago

3 new commits added

  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
  • Use ${terminal_output} instead of ${terminal_setup}
9 months ago

2 new commits added

  • teams/kde: Temporarily disable plasma-welcome-fedora
  • components/liveinstall: Support all expected architectures properly
9 months ago

4 new commits added

  • components/liveinstall: Support all expected architectures properly
  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
  • Use ${terminal_output} instead of ${terminal_setup}
9 months ago

4 new commits added

  • components/liveinstall: Support all expected architectures properly
  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
  • Use ${terminal_output} instead of ${terminal_setup}
9 months ago

4 new commits added

  • components/liveinstall: Support all expected architectures properly
  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
  • Use ${terminal_output} instead of ${terminal_setup}
9 months ago

4 new commits added

  • components/liveinstall: Support all expected architectures properly
  • teams/kde: Rework to add disk image build
  • components/boot: Add common configuration for disk images
  • Use ${terminal_output} instead of ${terminal_setup}
9 months ago

Pull-Request has been merged by ngompa

9 months ago