1
0
Fork 1
mirror of https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git synced 2025-07-14 20:09:49 +03:00

test: add dummy pmaports repo

Add a dummmy version of pmaports for testing. This gives us much better
control and simplifies a lot of the logic.

Signed-off-by: Casey Connolly <kcxt@postmarketos.org>
This commit is contained in:
Casey Connolly 2025-05-26 18:04:13 +02:00
parent 49a86cc303
commit 1bcc24f65a
14 changed files with 357 additions and 3 deletions

View file

@ -28,10 +28,13 @@ def config_file(tmp_path_factory, request):
flavour = request.param
out_file = tmp_path / "pmbootstrap_v3.cfg"
workdir = tmp_path / "work"
workdir.mkdir()
workdir = tmp_path / "cache"
if not (workdir / "git").exists():
(workdir / "git").mkdir(exist_ok=True, parents=True)
# Copy our test pmaports to the workdir
shutil.copytree(Path("./test/data/pmaports"), (workdir / "cache/git/pmaports"))
configs = {"default": f"aports = {workdir / 'cache_git' / 'pmaports'}", "no-repos": "aports = "}
configs = {"default": f"aports = {workdir / 'cache/git/pmaports'}", "no-repos": "aports = "}
file = _testdir / "pmbootstrap_v3.cfg"
print(f"CONFIG: {out_file}")

View file

@ -0,0 +1,69 @@
# Reference: https://postmarketos.org/channels.cfg
[channels.cfg]
recommended=edge
[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge
[v24.12]
description=Latest release / Recommended for best stability
branch_pmaports=v24.12
branch_aports=3.21-stable
mirrordir_alpine=v3.21
[v24.06]
description=Old release (unsupported)
branch_pmaports=v24.06
branch_aports=3.20-stable
mirrordir_alpine=v3.20
[v23.12]
description=Old release (unsupported)
branch_pmaports=v23.12
branch_aports=3.19-stable
mirrordir_alpine=v3.19
[v23.06]
description=Old release (unsupported)
branch_pmaports=v23.06
branch_aports=3.18-stable
mirrordir_alpine=v3.18
[v22.12]
description=Old release (unsupported)
branch_pmaports=v22.12
branch_aports=3.17-stable
mirrordir_alpine=v3.17
[v22.06]
description=Old release (unsupported)
branch_pmaports=v22.06
branch_aports=3.16-stable
mirrordir_alpine=v3.16
[v21.12]
description=Old release (unsupported)
branch_pmaports=v21.12
branch_aports=3.15-stable
mirrordir_alpine=v3.15
[v21.06]
description=Old release (unsupported)
branch_pmaports=v21.06
branch_aports=3.14-stable
mirrordir_alpine=v3.14
[v21.03]
description=Old release (unsupported)
branch_pmaports=v21.03
branch_aports=3.13-stable
mirrordir_alpine=v3.13
[v20.05]
description=Old release (unsupported)
branch_pmaports=v20.05
branch_aports=3.12-stable
mirrordir_alpine=v3.12

View file

@ -0,0 +1,79 @@
# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Minecrell <minecrell@minecrell.net>
# Co-Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
pkgname=device-qemu-amd64
pkgver=7
pkgrel=1
pkgdesc="Simulated device in QEMU (x86_64)"
url="https://postmarketos.org"
arch="x86_64"
license="MIT"
depends="postmarketos-base systemd-boot"
makedepends="devicepkg-dev"
# First kernel subpackage is default in pmbootstrap init!
subpackages="
$pkgname-kernel-lts:kernel_lts
$pkgname-kernel-virt:kernel_virt
$pkgname-kernel-none:kernel_none
$pkgname-mce
$pkgname-sway
$pkgname-x11
"
source="
deviceinfo
modules-initfs
mce-display-blanking.conf
resolution-qemu-X11.conf
"
options="!check !archcheck"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
mce() {
pkgdesc="Prevents screen blanking for UI's using mce (Glacier, Asteroid)"
install_if="$pkgname=$pkgver-r$pkgrel mce"
install -Dm644 "$srcdir"/mce-display-blanking.conf \
"$subpkgdir"/etc/mce/50display-blanking.conf
}
sway() {
install_if="$pkgname=$pkgver-r$pkgrel postmarketos-ui-sway"
depends="postmarketos-ui-sway-logo-key-alt"
mkdir "$subpkgdir"
}
x11() {
install_if="$pkgname=$pkgver-r$pkgrel xorg-server"
install -Dm644 "$srcdir"/resolution-qemu-X11.conf \
"$subpkgdir"/usr/share/X11/xorg.conf.d/10-resolution-qemu-X11.conf
}
kernel_none() {
pkgdesc="No kernel (does not boot! can be used during pmbootstrap testing to save time)"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
kernel_virt() {
pkgdesc="Alpine Virt kernel (minimal, no audio/mouse/network)"
depends="linux-virt"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
kernel_lts() {
pkgdesc="Alpine LTS kernel (recommended)"
depends="linux-lts linux-firmware-none"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
sha512sums="
74dd746b16f17ce67f6d58b6b86878b6eebaaa473fa36f475074c2c14ed738386c1b5cfcf15ad07b58f94d303799e8a9ed356143061e7854cf38170bef999a0b deviceinfo
29766094e64a7ce881c8e96433203ea538057b8fd1d577fc69b9add6bc1217af04ddf60cbcf82333811c627897eda7537b0b1f862899e1fdfd93403b3f6425d7 modules-initfs
99d32eed6c5cda59e91516e982c5bd5165ff718133e2411a0dbba04e2057d1dfad49a75e5cc67140d0e0adcbe1383671bd2892335929b782a5b19f5472e635ad mce-display-blanking.conf
bfff3ebf11abb43d8ea45e778c19554b1bc8ef9e694d8160daaac0ef906b4d8eda772e5f984033cce52ebddfbbe76e5340c6805e68f967994a3240c1e10c8b5b resolution-qemu-X11.conf
"

View file

@ -0,0 +1,27 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="QEMU amd64"
deviceinfo_manufacturer="QEMU"
deviceinfo_codename="qemu-amd64"
deviceinfo_arch="x86_64"
# Device related
deviceinfo_gpu_accelerated="true"
deviceinfo_chassis="vm"
deviceinfo_keyboard="true"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1024"
deviceinfo_screen_height="768"
deviceinfo_getty="ttyS0;115200"
deviceinfo_dev_internal_storage="/dev/vdb"
deviceinfo_dev_internal_storage_repartition="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=tty1 console=ttyS0 PMOS_FORCE_PARTITION_RESIZE"
deviceinfo_disable_dhcpd="true"
deviceinfo_partition_type="gpt"
deviceinfo_boot_filesystem="fat32"
deviceinfo_generate_systemd_boot="true"

View file

@ -0,0 +1 @@
/system/osso/dsm/display/display_never_blank=1

View file

@ -0,0 +1,6 @@
virtio_pci
virtio_blk
virtio-gpu
virtio_input
evdev
vfat

View file

@ -0,0 +1,6 @@
Section "Screen"
Identifier "Virtual-1"
SubSection "Display"
Modes "800x600"
EndSubSection
EndSection

View file

@ -0,0 +1,23 @@
pkgname=dbus
pkgver=3.1
pkgrel=0
pkgdesc="FAKE dbus package (SYSTEMD override)"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname systemd repo" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,23 @@
pkgname=dbus
pkgver=3.1
pkgrel=0
pkgdesc="FAKE dbus package"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,23 @@
pkgname=linux-lts
pkgver=6.12.4
pkgrel=0
pkgdesc="FAKE linux-lts package"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,23 @@
pkgname=linux-virt
pkgver=6.12.4
pkgrel=0
pkgdesc="FAKE linux-virt package"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,23 @@
pkgname=postmarketos-base
pkgver=44
pkgrel=3
pkgdesc="FAKE postmarketos-base package"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,23 @@
pkgname=systemd-boot
pkgver=257.3
pkgrel=0
pkgdesc="FAKE systemd-boot package"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends=""
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
"
prepare() {
default_prepare
}
package() {
echo "$pkgname" > $pkgdir/fake-$pkgname
}
sha512sums=""

View file

@ -0,0 +1,25 @@
# Reference: https://postmarketos.org/pmaports.cfg
[pmaports]
version=7
pmbootstrap_min_version=2.3.3
channel=edge
supported_root_filesystems=btrfs,ext4,f2fs
supported_firewall=nftables
supported_base_nofde=True
supported_install_boot_label=pmOS_i_boot
supported_mkinitfs_without_flavors=True
supported_arches=x86_64,x86,aarch64,armv7,armhf
supported_fastboot_depends=android-tools
supported_heimdall_depends=heimdall,android-tools
[repo:systemd]
pmaports_dir=systemd
# Build forks of Alpine packages that support usr_merge
bootstrap_1=abuild
bootstrap_2=systemd
# Build systemd related pkgs without deps on each other
bootstrap_3=dbus linux-pam-pmos
# Build systemd related pkgs *with* deps on each other
bootstrap_4=systemd dbus linux-pam-pmos
# Marker that bootstrap is done, only needs to be built once
bootstrap_5=postmarketos-base-systemd