mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-22 05:05:43 -05:00
174 lines
3.8 KiB
Python
174 lines
3.8 KiB
Python
from typehelpers import TypeAlias
|
|
|
|
FASTBOOT = 'fastboot'
|
|
FLASH_PARTS = {
|
|
'FULL': 'full',
|
|
'ABOOT': 'abootimg',
|
|
'LK2ND': 'lk2nd',
|
|
'QHYPSTUB': 'qhypstub',
|
|
}
|
|
EMMC = 'emmc'
|
|
MICROSD = 'microsd'
|
|
LOCATIONS = [EMMC, MICROSD]
|
|
|
|
JUMPDRIVE = 'jumpdrive'
|
|
JUMPDRIVE_VERSION = '0.8'
|
|
|
|
BASE_LOCAL_PACKAGES: list[str] = [
|
|
'base-kupfer',
|
|
]
|
|
|
|
BASE_PACKAGES: list[str] = BASE_LOCAL_PACKAGES + [
|
|
'base',
|
|
'nano',
|
|
'vim',
|
|
]
|
|
|
|
POST_INSTALL_CMDS = [
|
|
'kupfer-config apply',
|
|
'kupfer-config --user apply',
|
|
]
|
|
|
|
REPOS_CONFIG_FILE = "repos.yml"
|
|
|
|
REPOSITORIES = [
|
|
'boot',
|
|
'cross',
|
|
'device',
|
|
'firmware',
|
|
'linux',
|
|
'main',
|
|
'phosh',
|
|
]
|
|
|
|
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',
|
|
'armv7h',
|
|
]
|
|
|
|
DistroArch: TypeAlias = Arch
|
|
TargetArch: TypeAlias = Arch
|
|
|
|
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': {
|
|
'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',
|
|
},
|
|
},
|
|
'aarch64': {
|
|
'repos': ALARM_REPOS,
|
|
},
|
|
'armv7h': {
|
|
'repos': ALARM_REPOS,
|
|
},
|
|
}
|
|
|
|
COMPILE_ARCHES: dict[Arch, str] = {
|
|
'x86_64': 'amd64',
|
|
'aarch64': 'arm64',
|
|
'armv7h': 'arm',
|
|
}
|
|
|
|
GCC_HOSTSPECS: dict[DistroArch, dict[TargetArch, str]] = {
|
|
'x86_64': {
|
|
'x86_64': 'x86_64-pc-linux-gnu',
|
|
'aarch64': 'aarch64-unknown-linux-gnu',
|
|
'armv7h': 'arm-unknown-linux-gnueabihf'
|
|
},
|
|
'aarch64': {
|
|
'aarch64': 'aarch64-unknown-linux-gnu',
|
|
},
|
|
'armv7h': {
|
|
'armv7h': 'armv7l-unknown-linux-gnueabihf'
|
|
},
|
|
}
|
|
|
|
CFLAGS_GENERAL = ['-O2', '-pipe', '-fstack-protector-strong']
|
|
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',
|
|
] + CFLAGS_ALARM,
|
|
'armv7h': [
|
|
'-march=armv7-a',
|
|
'-mfloat-abi=hard',
|
|
'-mfpu=neon',
|
|
] + CFLAGS_ALARM,
|
|
}
|
|
|
|
QEMU_ARCHES: dict[Arch, str] = {
|
|
'x86_64': 'x86_64',
|
|
'aarch64': 'aarch64',
|
|
'armv7h': 'arm',
|
|
}
|
|
|
|
QEMU_BINFMT_PKGS = ['qemu-user-static-bin', 'binfmt-qemu-static']
|
|
CROSSDIRECT_PKGS = ['crossdirect'] + QEMU_BINFMT_PKGS
|
|
|
|
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 = {
|
|
'chroots': '/chroots',
|
|
'jumpdrive': '/var/cache/jumpdrive',
|
|
'pacman': '/pacman',
|
|
'packages': '/packages',
|
|
'pkgbuilds': '/pkgbuilds',
|
|
'images': '/images',
|
|
}
|
|
|
|
WRAPPER_TYPES = [
|
|
'none',
|
|
'docker',
|
|
]
|
|
WRAPPER_ENV_VAR = 'KUPFERBOOTSTRAP_WRAPPED'
|
|
|
|
MAKEPKG_CMD = [
|
|
'makepkg',
|
|
'--noconfirm',
|
|
'--ignorearch',
|
|
'--needed',
|
|
]
|
|
|
|
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:'
|