kupferbootstrap/constants.py

175 lines
3.8 KiB
Python
Raw Normal View History

from typehelpers import TypeAlias
FASTBOOT = 'fastboot'
FLASH_PARTS = {
'FULL': 'full',
'ABOOT': 'abootimg',
'LK2ND': 'lk2nd',
'QHYPSTUB': 'qhypstub',
}
EMMC = 'emmc'
MICROSD = 'microsd'
2021-10-22 17:07:05 +02:00
LOCATIONS = [EMMC, MICROSD]
JUMPDRIVE = 'jumpdrive'
JUMPDRIVE_VERSION = '0.8'
BASE_LOCAL_PACKAGES: list[str] = [
2021-10-13 20:47:19 +02:00
'base-kupfer',
]
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',
]
REPOS_CONFIG_FILE = "repos.yml"
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
]
DEFAULT_PACKAGE_BRANCH = 'dev'
KUPFER_BRANCH_MARKER = '%kupfer_branch%'
KUPFER_HTTPS_BASE = f'https://gitlab.com/kupfer/packages/prebuilts/-/raw/{KUPFER_BRANCH_MARKER}'
KUPFER_HTTPS = KUPFER_HTTPS_BASE + '/$arch/$repo'
Arch: TypeAlias = str
ARCHES = [
'x86_64',
'aarch64',
2022-08-26 19:20:12 +02:00
'armv7h',
]
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',
}
BASE_DISTROS: dict[DistroArch, dict[str, dict[str, str]]] = {
'x86_64': {
2021-09-22 02:32:03 +02:00
'repos': {
'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,
},
}
COMPILE_ARCHES: dict[Arch, str] = {
'x86_64': 'amd64',
'aarch64': 'arm64',
2022-08-26 19:20:12 +02:00
'armv7h': 'arm',
}
GCC_HOSTSPECS: dict[DistroArch, dict[TargetArch, str]] = {
'x86_64': {
'x86_64': 'x86_64-pc-linux-gnu',
'aarch64': 'aarch64-unknown-linux-gnu',
2022-08-26 19:20:12 +02:00
'armv7h': 'arm-unknown-linux-gnueabihf'
},
'aarch64': {
'aarch64': 'aarch64-unknown-linux-gnu',
2022-08-26 19:20:12 +02:00
},
'armv7h': {
'armv7h': 'armv7l-unknown-linux-gnueabihf'
},
}
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',
]
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,
}
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',
]
CHROOT_PATHS = {
2022-09-04 06:37:38 +02:00
'chroots': '/chroots',
'jumpdrive': '/var/cache/jumpdrive',
2022-09-04 06:37:38 +02:00
'pacman': '/pacman',
'packages': '/packages',
'pkgbuilds': '/pkgbuilds',
'images': '/images',
}
WRAPPER_TYPES = [
'none',
'docker',
]
WRAPPER_ENV_VAR = 'KUPFERBOOTSTRAP_WRAPPED'
MAKEPKG_CMD = [
'makepkg',
'--noconfirm',
'--ignorearch',
'--needed',
]
2022-10-06 23:30:16 +02:00
SRCINFO_FILE = '.SRCINFO'
SRCINFO_METADATA_FILE = '.srcinfo_meta.json'
SRCINFO_INITIALISED_FILE = ".srcinfo_initialised.json"
SRCINFO_TARBALL_FILE = "srcinfos.tar.gz"
SRCINFO_TARBALL_URL = f'{KUPFER_HTTPS_BASE}/{SRCINFO_TARBALL_FILE}'
FLAVOUR_INFO_FILE = 'flavourinfo.json'
FLAVOUR_DESCRIPTION_PREFIX = 'kupfer flavour:'