2023-04-16 20:48:48 +00:00
|
|
|
from typehelpers import TypeAlias
|
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 = {
|
2023-06-12 01:10:54 +02:00
|
|
|
'FULL': 'full',
|
|
|
|
'ABOOT': 'abootimg',
|
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-09-21 13:01:39 +02:00
|
|
|
BASE_LOCAL_PACKAGES: list[str] = [
|
2021-10-13 20:47:19 +02:00
|
|
|
'base-kupfer',
|
2022-09-21 13:01:39 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
BASE_PACKAGES: list[str] = BASE_LOCAL_PACKAGES + [
|
|
|
|
'base',
|
2021-10-13 20:47:19 +02:00
|
|
|
'nano',
|
|
|
|
'vim',
|
|
|
|
]
|
|
|
|
|
2023-03-14 19:44:15 +01:00
|
|
|
POST_INSTALL_CMDS = [
|
|
|
|
'kupfer-config apply',
|
|
|
|
'kupfer-config --user apply',
|
|
|
|
]
|
2022-09-19 05:40:17 +02:00
|
|
|
|
2023-03-27 18:59:55 +02:00
|
|
|
REPOS_CONFIG_FILE = "repos.yml"
|
2023-03-27 09:05:30 +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'
|
2023-03-27 18:46:50 +02:00
|
|
|
KUPFER_BRANCH_MARKER = '%kupfer_branch%'
|
|
|
|
KUPFER_HTTPS_BASE = f'https://gitlab.com/kupfer/packages/prebuilts/-/raw/{KUPFER_BRANCH_MARKER}'
|
2022-12-08 17:20:16 +01:00
|
|
|
KUPFER_HTTPS = KUPFER_HTTPS_BASE + '/$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': {
|
2022-11-09 15:11:28 +01:00
|
|
|
'core': 'https://geo.mirror.pkgbuild.com/$repo/os/$arch',
|
|
|
|
'extra': 'https://geo.mirror.pkgbuild.com/$repo/os/$arch',
|
|
|
|
'community': 'https://geo.mirror.pkgbuild.com/$repo/os/$arch',
|
2021-09-22 02:32:03 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
'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',
|
2023-12-20 00:28:26 +01:00
|
|
|
'aarch64': 'aarch64-unknown-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-09-24 05:22:27 +02:00
|
|
|
WRAPPER_ENV_VAR = 'KUPFERBOOTSTRAP_WRAPPED'
|
2022-02-17 05:55:35 +01:00
|
|
|
|
|
|
|
MAKEPKG_CMD = [
|
|
|
|
'makepkg',
|
|
|
|
'--noconfirm',
|
|
|
|
'--ignorearch',
|
|
|
|
'--needed',
|
|
|
|
]
|
2022-09-09 20:50:27 +02:00
|
|
|
|
2022-10-06 23:30:16 +02:00
|
|
|
SRCINFO_FILE = '.SRCINFO'
|
|
|
|
SRCINFO_METADATA_FILE = '.srcinfo_meta.json'
|
2022-11-01 23:09:46 +01:00
|
|
|
SRCINFO_INITIALISED_FILE = ".srcinfo_initialised.json"
|
2022-09-20 16:36:58 +02:00
|
|
|
|
2022-12-08 17:20:16 +01:00
|
|
|
SRCINFO_TARBALL_FILE = "srcinfos.tar.gz"
|
|
|
|
SRCINFO_TARBALL_URL = f'{KUPFER_HTTPS_BASE}/{SRCINFO_TARBALL_FILE}'
|
|
|
|
|
2022-09-20 16:36:58 +02:00
|
|
|
FLAVOUR_INFO_FILE = 'flavourinfo.json'
|
2022-09-21 14:09:56 +02:00
|
|
|
FLAVOUR_DESCRIPTION_PREFIX = 'kupfer flavour:'
|