Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

maybe fix chromebooks? #31

Draft
wants to merge 29 commits into
base: um41
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
3ac1d4a
maybe fix chromebooks?
nothingneko Aug 9, 2024
94a37b2
fix stoney imports
june-fish Aug 13, 2024
671b452
fix x86_64 chromebook paths
june-fish Aug 13, 2024
f1b088b
fix submarine install script
june-fish Aug 14, 2024
0766fb2
fix fstab path
june-fish Aug 14, 2024
a2f75b9
fix mt8183 kde paths
june-fish Aug 14, 2024
903b9b3
add nokernel base-disk
june-fish Aug 14, 2024
ebd0654
TODO: test these, apply same mt8183 fix to other boards
june-fish Aug 14, 2024
0444d45
do not conflict with ultramarine repos package
june-fish Aug 14, 2024
47d299b
install alsa cros config
june-fish Aug 14, 2024
bab110e
remove broken/currently unsupported DEs
june-fish Sep 1, 2024
04fc501
add rk3399 (draft)
june-fish Sep 1, 2024
efa8357
remove broken/currently unsupported DEs
june-fish Sep 1, 2024
a6f7221
rename rk3399 to aarch64
june-fish Sep 1, 2024
e8e762e
switch to btrfs
Owen-sz Sep 7, 2024
68e993f
Add: ultramarine-release-chromebook for systemd preset file
Owen-sz Oct 30, 2024
b18c466
Add: msm-cros-efs-loader to sc7180 to enable WiFi
Owen-sz Oct 30, 2024
a639108
Bump to 41
Owen-sz Nov 9, 2024
dec28c4
fix chromebook file names and add beta wallpapers package
Owen-sz Nov 9, 2024
85f3a68
sync changes from um41
madonuko Nov 9, 2024
21d446e
remove kde dir
madonuko Nov 9, 2024
abc3a40
why is CI not triggering
madonuko Nov 9, 2024
3c434dd
ci add chromebook stuff
madonuko Nov 9, 2024
fe2c37f
fix stuff
madonuko Nov 9, 2024
92c17df
bump chromebook images to 41
Owen-sz Nov 9, 2024
5ed6d87
Fix terra-msm-cros-efs-loader name
Owen-sz Dec 5, 2024
1c4f7c0
add missing repodir
june-fish Dec 10, 2024
5e3557b
fix up chromebook ports, add sc7180 linux-firmware-trogdr, add sc7180…
Owen-sz Dec 23, 2024
71ee1eb
bump chromebook aarch to 41
Owen-sz Dec 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 102 additions & 18 deletions .github/workflows/build-katsu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ env:
podman
buildah
katsu
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-40.noarch.rpm
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-40.noarch.rpm
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-41.noarch.rpm
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-41.noarch.rpm

on:
push:
branches: ["um40"]
branches: ["um41", "jade/chromebook-fixes"]
workflow_dispatch:
pull_request:
branches: ["um40"]
branches: ["um41"]

jobs:
#### BASE IMAGES ####
Expand All @@ -61,25 +61,36 @@ jobs:
- base/base-disk
- flagship/base-disk
- gnome/base-disk
- kde/base-disk
- plasma/base-disk
- xfce/base-disk
#- ports/chromebook/flagship
#- ports/chromebook/gnome
#- ports/chromebook/kde
#- ports/chromebook/xfce
- ports/chromebook/sc7180/sc7180
- ports/chromebook/flagship
- ports/chromebook/gnome
- ports/chromebook/plasma
- ports/chromebook/xfce
# TODO: figure out how to get loop devices to work on our ARM runners
exclude:
- arch: aarch64
variant: flagship/flagship-chromebook
- arch: aarch64
variant: gnome/gnome-chromebook
- arch: aarch64
variant: kde/kde-chromebook
variant: plasma/plasma-chromebook
- arch: aarch64
variant: xfce/xfce-chromebook
- arch: aarch64
variant: ports/chromebook/flagship
- arch: aarch64
variant: ports/chromebook/plasma
- arch: aarch64
variant: ports/chromebook/gnome
- arch: aarch64
variant: ports/chromebook/xfce
- arch: x86_64
variant: ports/chromebook/sc7180/sc7180
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-latest' || 'arm64' }}
container:
image: ghcr.io/terrapkg/builder:f40
image: ghcr.io/terrapkg/builder:f41
# Pass /dev from host to container
# Very hacky, but it works
# Microsoft/Github, if you're reading this,
Expand All @@ -89,6 +100,7 @@ jobs:
steps:
- name: Install dependencies
run: |
dnf up -y
dnf install -y $DNF_PKGS
dnf clean all
- name: Checkout
Expand Down Expand Up @@ -120,6 +132,7 @@ jobs:
with:
name: ${{ env.artifact }}-image
path: katsu/katsu-work/image/*.img.zst
compression-level: 0

live-iso:
strategy:
Expand All @@ -131,12 +144,11 @@ jobs:
variant:
- flagship/flagship-live
- gnome/gnome-live
- kde/kde-live
#- pantheon/pantheon-live
- plasma/plasma-live
- xfce/xfce-live
runs-on: ${{ matrix.arch == 'x86_64' && matrix.variant == 'kde/kde-live' && 'x86-64-lg' || matrix.arch == 'x86_64' && 'ubuntu-latest' || 'arm64' }}
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-latest' || 'arm64' }}
container:
image: ghcr.io/terrapkg/builder:f40
image: ghcr.io/terrapkg/builder:f41
# Pass /dev from host to container
# Very hacky, but it works
# Microsoft/Github, if you're reading this,
Expand All @@ -146,6 +158,7 @@ jobs:
steps:
- name: Install dependencies
run: |
dnf up -y
dnf install -y $DNF_PKGS
dnf clean all
- name: sanitize artifact name
Expand All @@ -169,7 +182,7 @@ jobs:
rm -rf /etc/rpm/macros.image-language-conf
chcon system_u:object_r:install_exec_t:s0 "$(which katsu)"
pushd katsu
KATSU_LOG=trace katsu -v --output=iso "modules/${{ matrix.variant }}.yaml"
KATSU_KEEP_CHROOT=1 KATSU_LOG=trace katsu -v --output=iso "modules/${{ matrix.variant }}.yaml"
# get the ISO name, and then append the arch
# e.g. flagship-live.iso -> flagship-live-x86_64.iso

Expand All @@ -186,17 +199,81 @@ jobs:
with:
name: ${{ env.artifact }}-iso
path: katsu/*.iso
compression-level: 0

tar:
strategy:
fail-fast: false
matrix:
arch:
- x86_64
- aarch64
variant:
- wsl/wsl
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-latest' || 'arm64' }}
container:
image: ghcr.io/terrapkg/builder:f41
# Pass /dev from host to container
# Very hacky, but it works
# Microsoft/Github, if you're reading this,
# I'm sorry.
options: --privileged -v /dev:/dev
steps:
- name: Install dependencies
run: |
dnf up -y
dnf install -y $DNF_PKGS
dnf clean all
- name: Checkout
uses: actions/checkout@v4
- name: sanitize artifact name
run: |
name=$(echo ${{ matrix.variant }} | sed 's/\//-/g')
name=$name-${{ matrix.arch }}

# set github variable
echo artifact=$name >> $GITHUB_ENV
# Get architecture
# e.g. base/base-disk-x86_64 -> x86_64
echo arch=$(echo ${{ matrix.variant }} | cut -d'-' -f3) >> $GITHUB_ENV

- name: ${{ env.KATSU_BUILD_TASK_NAME }}
run: |
rm -rf /etc/rpm/macros.image-language-conf
chcon system_u:object_r:install_exec_t:s0 "$(which katsu)"
pushd katsu
KATSU_LOG=trace katsu -v --output=fs "modules/${{ matrix.variant }}.yaml"
tar -cJf katsu-work/chroot.tar katsu-work/chroot
mv katsu-work/chroot.tar katsu-work/${{ env.artifact }}.tar
# compress tar as zst, output as .tar.zst
# have an exception for WSL, as it doesn't support zstd
if [ "${{ matrix.variant }}" = "wsl/wsl" ]; then
gzip -9 -c katsu-work/${{ env.artifact }}.tar > katsu-work/${{ env.artifact }}.tar.gz
else
zstd -T0 -19 katsu-work/${{ env.artifact }}.tar -o katsu-work/${{ env.artifact }}.tar.zst
fi
popd

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact }}-tar
path: |
katsu/katsu-work/*.tar.zst
katsu/katsu-work/*.tar.gz
compression-level: 0

#### LIVE ISO PUSH ####

push-image:
runs-on: arm64
container:
image: ghcr.io/terrapkg/builder:f40
image: ghcr.io/terrapkg/builder:f41
environment: production
needs:
- live-iso
- image
- tar
if: github.event_name != 'pull_request'

steps:
Expand Down Expand Up @@ -224,7 +301,7 @@ jobs:
type=$2


IMAGEDIR=images/$type/ultramarine/40/
IMAGEDIR=images/$type/ultramarine/41/
mkdir -p $IMAGEDIR

filename=$(basename -- "$file")
Expand All @@ -247,6 +324,13 @@ jobs:
fi
done

for file in artifacts/*-tar/*; do
# if is file
if [ -f "$file" ]; then
pack_image $file images
fi
done

- name: Upload to R2
run: |
wget https://dl.min.io/client/mc/release/linux-arm64/mc
Expand Down
5 changes: 3 additions & 2 deletions katsu/modules/base/base-disk-aarch64.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
builder: dnf
distro: Ultramarine Linux 40
distro: Ultramarine Linux 41

# users:
# - username: ultramarine
Expand All @@ -13,7 +13,8 @@ import:
- base-disk.yaml

dnf:
releasever: 40
releasever: 41
exec: dnf4
arch: aarch64
packages:
- ultramarine-release-identity-basic
Expand Down
68 changes: 68 additions & 0 deletions katsu/modules/base/base-disk-nokernel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
scripts:
post:
- id: initial-setup
name: Enable Initial Setup
file: initial-setup.sh
- id: disk-setup
name: Extra configuration for disk images
file: disk-setup.sh
dnf:
releasever: 40
options:
- --setopt=cachedir=/var/cache/dnf
- --setopt=keepcache=True
- --setopt=tsflags=
- --setopt=max_parallel_downloads=20
exclude:
- fedora-release*
- generic-release*
- kernel
- kernel-core
- kernel-devel
packages:
- initial-setup-gui
- filesystem
- setup
- lvm2
- btrfs-progs
- dmraid
- nvme-cli
- glibc
- glibc-common
- dracut-config-generic
- dracut-tools
- dnf
- dracut
# - mkpasswd # maybe not needed soon
- "@core"
- "@standard"
- grub2-tools
- "@hardware-support"
- NetworkManager
- rpm
- libgomp
- fedora-repos
- efibootmgr
- ultramarine-raw-filesystem
- plymouth
- plymouth-system-theme
- plymouth-theme-spinner

arch_packages:
aarch64:
- grub2-efi-aa64
- grub2-efi-aa64-modules
- grub2-efi-aa64-cdboot
- shim-aa64
- shim-unsigned-aarch64
- bcm283x-firmware
- bcm283x-overlays
- "@arm-tools"
x86_64:
- grub2-efi-x64
- grub2-efi-x64-modules
- grub2-efi-x64-cdboot
- grub2-pc
- grub2-pc-modules
- shim-x64
- shim-unsigned-x64
5 changes: 3 additions & 2 deletions katsu/modules/base/base-disk-x86_64.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
builder: dnf
distro: Ultramarine Linux 40
distro: Ultramarine Linux 41

# users:
# - username: ultramarine
Expand All @@ -13,7 +13,8 @@ import:
- base-disk.yaml

dnf:
releasever: 40
releasever: 41
exec: dnf4
packages:
- ultramarine-release-identity-basic
- ultramarine-release-basic
Expand Down
3 changes: 2 additions & 1 deletion katsu/modules/base/base-disk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ scripts:
name: Extra configuration for disk images
file: disk-setup.sh
dnf:
releasever: 40
releasever: 41
exec: dnf4
options:
- --setopt=cachedir=/var/cache/dnf
- --setopt=keepcache=True
Expand Down
5 changes: 3 additions & 2 deletions katsu/modules/base/base-docker-aarch64.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
builder: dnf
distro: Ultramarine Linux 40 Container
distro: Ultramarine Linux 41 Container

import:
- base-docker.yaml

dnf:
releasever: 40
releasever: 41
exec: dnf4
arch: aarch64
5 changes: 3 additions & 2 deletions katsu/modules/base/base-docker-x86_64.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
builder: dnf
distro: Ultramarine Linux 40 Container
distro: Ultramarine Linux 41 Container

import:
- base-docker.yaml

dnf:
releasever: 40
releasever: 41
exec: dnf4
arch: x86_64
3 changes: 2 additions & 1 deletion katsu/modules/base/base-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ builder: dnf

dnf:
repodir: repodir/
releasever: 40
releasever: 41
exec: dnf4
options:
- --setopt=cachedir=/var/cache/dnf
- --setopt=keepcache=True
Expand Down
4 changes: 2 additions & 2 deletions katsu/modules/base/base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ scripts:
file: buildstamp.sh

dnf:
releasever: 40
releasever: 41
exec: dnf4
repodir: repodir
options:
- --setopt=cachedir=/var/cache/dnf
Expand Down Expand Up @@ -76,4 +77,3 @@ dnf:
# - ultramarine-release
# - ultramarine-repos
# - "ultramarine-logos*"

Loading
Loading