2022-02-20 20:21:23 +01:00
|
|
|
from typing_extensions import TypeAlias
|
|
|
|
from typing import TypedDict
|
2022-02-17 19:36:08 +01:00
|
|
|
|
2021-08-17 20:57:31 +02:00
|
|
|
FASTBOOT = 'fastboot'
|
2021-09-29 02:00:59 +02:00
|
|
|
FLASH_PARTS = {
|
|
|
|
'ROOTFS': 'rootfs',
|
2022-02-06 20:36:11 +01:00
|
|
|
'ABOOT': 'aboot',
|
2021-09-29 02:00:59 +02:00
|
|
|
'LK2ND': 'lk2nd',
|
|
|
|
'QHYPSTUB': 'qhypstub',
|
|
|
|
}
|
2021-08-17 20:57:31 +02:00
|
|
|
EMMC = 'emmc'
|
|
|
|
MICROSD = 'microsd'
|
2021-10-22 17:07:05 +02:00
|
|
|
LOCATIONS = [EMMC, MICROSD]
|
2021-08-17 20:57:31 +02:00
|
|
|
|
|
|
|
JUMPDRIVE = 'jumpdrive'
|
|
|
|
JUMPDRIVE_VERSION = '0.8'
|
|
|
|
|
2022-02-18 06:32:04 +01:00
|
|
|
BOOT_STRATEGIES: dict[str, str] = {
|
2021-08-17 20:57:31 +02:00
|
|
|
'oneplus-enchilada': FASTBOOT,
|
2022-07-04 21:37:12 +00:00
|
|
|
'oneplus-fajita': FASTBOOT,
|
2021-08-17 20:57:31 +02:00
|
|
|
'xiaomi-beryllium-ebbg': FASTBOOT,
|
|
|
|
'xiaomi-beryllium-tianma': FASTBOOT,
|
|
|
|
'bq-paella': FASTBOOT,
|
|
|
|
}
|
|
|
|
|
2022-02-18 06:32:04 +01:00
|
|
|
BASE_PACKAGES: list[str] = [
|
2021-10-13 20:47:19 +02:00
|
|
|
'base',
|
|
|
|
'base-kupfer',
|
|
|
|
'nano',
|
|
|
|
'vim',
|
|
|
|
]
|
|
|
|
|
2022-02-18 06:32:04 +01:00
|
|
|
|
|
|
|
class Flavour(TypedDict, total=False):
|
|
|
|
packages: list[str]
|
|
|
|
post_cmds: list[str]
|
|
|
|
size: int
|
|
|
|
|
|
|
|
|
|
|
|
FLAVOURS: dict[str, Flavour] = {
|
2021-09-29 02:00:59 +02:00
|
|
|
'barebone': {
|
2021-09-30 05:04:42 +02:00
|
|
|
'packages': [],
|
2021-09-29 02:00:59 +02:00
|
|
|
},
|
|
|
|
'debug-shell': {
|
2021-09-30 05:04:42 +02:00
|
|
|
'packages': ['hook-debug-shell'],
|
2021-09-29 02:00:59 +02:00
|
|
|
},
|
|
|
|
'gnome': {
|
|
|
|
'packages': ['gnome', 'archlinux-appstream-data', 'gnome-software-packagekit-plugin'],
|
2021-09-30 05:04:42 +02:00
|
|
|
'post_cmds': ['systemctl enable gdm'],
|
|
|
|
'size': 8,
|
2021-09-29 02:00:59 +02:00
|
|
|
},
|
2021-10-13 20:47:19 +02:00
|
|
|
'phosh': {
|
|
|
|
'packages': [
|
|
|
|
'phosh',
|
2022-05-10 06:47:47 +02:00
|
|
|
'phosh-osk-stub', # temporary replacement for 'squeekboard',
|
2021-10-13 20:47:19 +02:00
|
|
|
'gnome-control-center',
|
|
|
|
'gnome-software',
|
|
|
|
'gnome-software-packagekit-plugin',
|
|
|
|
'archlinux-appstream-data',
|
|
|
|
'gnome-initial-setup',
|
|
|
|
'kgx',
|
|
|
|
'iio-sensor-proxy',
|
|
|
|
],
|
|
|
|
'post_cmds': ['systemctl enable phosh'],
|
2022-02-14 18:33:10 +01:00
|
|
|
'size': 5,
|
2021-10-13 20:47:19 +02:00
|
|
|
}
|
2021-08-17 20:57:31 +02:00
|
|
|
}
|
2021-08-18 12:27:03 +02:00
|
|
|
|
|
|
|
REPOSITORIES = [
|
|
|
|
'boot',
|
2021-10-10 21:21:23 +02:00
|
|
|
'cross',
|
2021-08-18 12:27:03 +02:00
|
|
|
'device',
|
|
|
|
'firmware',
|
|
|
|
'linux',
|
|
|
|
'main',
|
2021-10-13 20:47:19 +02:00
|
|
|
'phosh',
|
2021-08-18 12:27:03 +02:00
|
|
|
]
|
2021-09-17 17:56:01 +02:00
|
|
|
|
2022-05-08 17:25:49 +02:00
|
|
|
DEFAULT_PACKAGE_BRANCH = 'dev'
|
|
|
|
KUPFER_HTTPS = 'https://gitlab.com/kupfer/packages/prebuilts/-/raw/%branch%/$arch/$repo'
|
2022-02-17 19:36:08 +01:00
|
|
|
|
|
|
|
Arch: TypeAlias = str
|
2021-09-17 17:56:01 +02:00
|
|
|
ARCHES = [
|
|
|
|
'x86_64',
|
|
|
|
'aarch64',
|
2022-08-26 19:20:12 +02:00
|
|
|
'armv7h',
|
2021-09-17 17:56:01 +02:00
|
|
|
]
|
|
|
|
|
2022-02-17 19:36:08 +01:00
|
|
|
DistroArch: TypeAlias = Arch
|
|
|
|
TargetArch: TypeAlias = Arch
|
|
|
|
|
2022-08-26 19:20:12 +02:00
|
|
|
ALARM_REPOS = {
|
|
|
|
'core': 'http://mirror.archlinuxarm.org/$arch/$repo',
|
|
|
|
'extra': 'http://mirror.archlinuxarm.org/$arch/$repo',
|
|
|
|
'community': 'http://mirror.archlinuxarm.org/$arch/$repo',
|
|
|
|
'alarm': 'http://mirror.archlinuxarm.org/$arch/$repo',
|
|
|
|
'aur': 'http://mirror.archlinuxarm.org/$arch/$repo',
|
|
|
|
}
|
|
|
|
|
2022-02-17 19:36:08 +01:00
|
|
|
BASE_DISTROS: dict[DistroArch, dict[str, dict[str, str]]] = {
|
2021-09-17 17:56:01 +02:00
|
|
|
'x86_64': {
|
2021-09-22 02:32:03 +02:00
|
|
|
'repos': {
|
|
|
|
'core': 'http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch',
|
|
|
|
'extra': 'http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch',
|
|
|
|
'community': 'http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'aarch64': {
|
2022-08-26 19:20:12 +02:00
|
|
|
'repos': ALARM_REPOS,
|
|
|
|
},
|
|
|
|
'armv7h': {
|
|
|
|
'repos': ALARM_REPOS,
|
2021-09-17 17:56:01 +02:00
|
|
|
},
|
|
|
|
}
|
2021-09-29 16:54:26 +02:00
|
|
|
|
2021-10-04 13:33:15 +02:00
|
|
|
COMPILE_ARCHES: dict[Arch, str] = {
|
|
|
|
'x86_64': 'amd64',
|
|
|
|
'aarch64': 'arm64',
|
2022-08-26 19:20:12 +02:00
|
|
|
'armv7h': 'arm',
|
2021-10-04 13:33:15 +02:00
|
|
|
}
|
|
|
|
|
2021-10-01 18:25:42 +02:00
|
|
|
GCC_HOSTSPECS: dict[DistroArch, dict[TargetArch, str]] = {
|
|
|
|
'x86_64': {
|
|
|
|
'x86_64': 'x86_64-pc-linux-gnu',
|
|
|
|
'aarch64': 'aarch64-linux-gnu',
|
2022-08-26 19:20:12 +02:00
|
|
|
'armv7h': 'arm-unknown-linux-gnueabihf'
|
2021-10-01 18:25:42 +02:00
|
|
|
},
|
|
|
|
'aarch64': {
|
|
|
|
'aarch64': 'aarch64-unknown-linux-gnu',
|
2022-08-26 19:20:12 +02:00
|
|
|
},
|
|
|
|
'armv7h': {
|
|
|
|
'armv7h': 'armv7l-unknown-linux-gnueabihf'
|
|
|
|
},
|
2021-10-01 18:25:42 +02:00
|
|
|
}
|
2021-10-02 06:35:51 +02:00
|
|
|
|
2021-10-04 13:33:15 +02:00
|
|
|
CFLAGS_GENERAL = ['-O2', '-pipe', '-fstack-protector-strong']
|
2022-08-26 19:20:12 +02:00
|
|
|
CFLAGS_ALARM = [
|
|
|
|
' -fno-plt',
|
|
|
|
'-fexceptions',
|
|
|
|
'-Wp,-D_FORTIFY_SOURCE=2',
|
|
|
|
'-Wformat',
|
|
|
|
'-Werror=format-security',
|
|
|
|
'-fstack-clash-protection',
|
|
|
|
]
|
2021-10-04 13:33:15 +02:00
|
|
|
CFLAGS_ARCHES: dict[Arch, list[str]] = {
|
|
|
|
'x86_64': ['-march=x86-64', '-mtune=generic'],
|
|
|
|
'aarch64': [
|
|
|
|
'-march=armv8-a',
|
2022-08-26 19:20:12 +02:00
|
|
|
] + CFLAGS_ALARM,
|
|
|
|
'armv7h': [
|
|
|
|
'-march=armv7-a',
|
|
|
|
'-mfloat-abi=hard',
|
|
|
|
'-mfpu=neon',
|
|
|
|
] + CFLAGS_ALARM,
|
2021-10-04 13:33:15 +02:00
|
|
|
}
|
|
|
|
|
2022-08-26 22:54:30 +02:00
|
|
|
QEMU_ARCHES: dict[Arch, str] = {
|
|
|
|
'x86_64': 'x86_64',
|
|
|
|
'aarch64': 'aarch64',
|
|
|
|
'armv7h': 'arm',
|
|
|
|
}
|
|
|
|
|
2021-10-23 21:01:46 +02:00
|
|
|
QEMU_BINFMT_PKGS = ['qemu-user-static-bin', 'binfmt-qemu-static']
|
|
|
|
CROSSDIRECT_PKGS = ['crossdirect'] + QEMU_BINFMT_PKGS
|
2021-10-15 22:52:13 +02:00
|
|
|
|
|
|
|
SSH_DEFAULT_HOST = '172.16.42.1'
|
|
|
|
SSH_DEFAULT_PORT = 22
|
|
|
|
SSH_COMMON_OPTIONS = [
|
|
|
|
'-o',
|
|
|
|
'GlobalKnownHostsFile=/dev/null',
|
|
|
|
'-o',
|
|
|
|
'UserKnownHostsFile=/dev/null',
|
|
|
|
'-o',
|
|
|
|
'StrictHostKeyChecking=no',
|
|
|
|
]
|
2022-01-26 15:50:41 +01:00
|
|
|
|
|
|
|
CHROOT_PATHS = {
|
2022-09-04 06:37:38 +02:00
|
|
|
'chroots': '/chroots',
|
2022-01-26 15:50:41 +01:00
|
|
|
'jumpdrive': '/var/cache/jumpdrive',
|
2022-09-04 06:37:38 +02:00
|
|
|
'pacman': '/pacman',
|
|
|
|
'packages': '/packages',
|
2022-01-26 15:50:41 +01:00
|
|
|
'pkgbuilds': '/pkgbuilds',
|
|
|
|
'images': '/images',
|
|
|
|
}
|
2022-02-16 20:44:42 +01:00
|
|
|
|
|
|
|
WRAPPER_TYPES = [
|
|
|
|
'none',
|
|
|
|
'docker',
|
|
|
|
]
|
2022-02-17 05:55:35 +01:00
|
|
|
|
|
|
|
MAKEPKG_CMD = [
|
|
|
|
'makepkg',
|
|
|
|
'--noconfirm',
|
|
|
|
'--ignorearch',
|
|
|
|
'--needed',
|
|
|
|
]
|