Compare commits

..
Author SHA1 Message Date
Stefan Hansson edc10f244f systemd/systemd-services: restore flatpak services
See https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4111

This partially reverts commit 93840bab2c.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
2025-11-23 09:12:29 +01:00
3264 changed files with 32547 additions and 313753 deletions

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
apk add git openssh-keygen grep curl
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0 $*"
fi
-1
View File
@@ -11,7 +11,6 @@
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add py3-pip make git
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/master
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
+21 -20
View File
@@ -1,4 +1,4 @@
image: registry.alpinelinux.org/img/alpine:latest
image: alpine:latest
stages:
- build
- hardware tests
@@ -6,7 +6,7 @@ stages:
variables:
CI_TRON_TEMPLATE_PROJECT: &ci-tron-template-project postmarketOS/ci-common
CI_TRON_JOB_TEMPLATE_PROJECT_URL: $CI_SERVER_URL/$CI_TRON_TEMPLATE_PROJECT
CI_TRON_JOB_TEMPLATE_COMMIT: &ci-tron-template-commit 1c70e34b7a610cda1d7f048f6b50ca9c10f52995
CI_TRON_JOB_TEMPLATE_COMMIT: &ci-tron-template-commit 7c95b5f2d53533e8722abf57c73e558168e811f3
include:
- project: *ci-tron-template-project
@@ -68,33 +68,34 @@ build:
# Define here all the gitlab-ci snippets that could be common between the
# different packages
# Extends from this job if the target device needs a kernel and initramfs to
# boot. This will not work if your device uses boot images.
# Extends from this job if the the build job generates a kernel and initramfs
# artifact for your target device. This will not work if your device generates
# boot images.
.device-boot-flow-separate-artifacts:
variables:
CI_TRON_KERNEL__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/vmlinuz"
CI_TRON_KERNEL__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/${KERNEL_NAME}"
CI_TRON_INITRAMFS__INITRAMFS__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/initramfs"
# Extends from this job if the target device boots using fastboot and boot images
.device-boot-flow-fastboot-image:
variables:
CI_TRON_FASTBOOT__BOOT_IMAGE__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/boot.img"
# NOTE: For fastboot devices, we will need to use something like this
# .ci-tron-device-boot-flow-fastboot-image:
# variables:
# CI_TRON_FASTBOOT__BOOT_IMAGE: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/bootimg"
# Include all the devices that need and can to be tested
{% for device in devices_under_test %}
{% for device in devices_under_test if device.is_present_in_ci %}
prepare-{{ device.name }}:
stage: hardware tests
extends:
.pmos-ci-tron-build-boot-artifacts
{%- if device.has_kernel_variants %}
# Build all the boot artifacts for all the supported kernel variants in
# Let's build all the boot artifacts for all the supported kernels in
# different jobs, but hide them behind a single job name so as not to pollute
# the pipeline.
parallel:
matrix:
- KERNEL_VARIANT:
{%- for kernel in device.kernel_variants %}
{%- for kernel in device.kernels %}
- {{ kernel }}
{%- endfor %}
{%- endif %}
@@ -108,17 +109,19 @@ prepare-{{ device.name }}:
DEVICE_NAME: {{ device.name }}
# NOTE: All the packages that may influence testing should have an
# `install-if postmarketos-mkinitfs-hook-ci`, so no need to add them here
INSTALL_PACKAGES: {{ device.pkgname }} {% if device.has_kernel_variants %}{{ device.pkgname }}-kernel-${KERNEL_VARIANT} {% endif %}postmarketos-mkinitfs-hook-ci
INSTALL_PACKAGES: {{ device.pkgname }} {{ device.pkgname }}-kernel-${KERNEL_VARIANT} postmarketos-mkinitfs-hook-ci
.test-{{ device.name }}:
stage: hardware tests
extends:
- .pmos-ci-tron-initramfs-test
{%- if device.has_kernel_variants %}
# Test all the kernels in different jobs, but hide them behind a single
# Let's test all the kernels in different jobs, but hide them behind a single
# job name so as not to pollute the pipeline.
parallel:
matrix:
- KERNEL_VARIANT:
{%- for kernel in device.kernel_variants %}
{%- for kernel in device.kernels %}
- {{ kernel }}
{%- endfor %}
{%- endif %}
@@ -126,13 +129,11 @@ prepare-{{ device.name }}:
needs:
- job: 'prepare-{{ device.name }}'
artifacts: false
{%- if device.has_kernel_variants %}
parallel:
matrix:
- KERNEL_VARIANT: $[[ matrix.KERNEL_VARIANT ]]
{%- endif %}
# NOTE: We can't wait for a particular job in the matrix until GitLab implements support for it:
# https://gitlab.com/gitlab-org/gitlab/-/issues/423553
variables:
CI_TRON__PMB_BUILD_JOB: "prepare-{{ device.name }}{% if device.has_kernel_variants %}: [$KERNEL_VARIANT]{% endif %}"
CI_TRON_KERNEL_CMDLINE__DEVICEINFO: '{{ device.deviceinfo.kernel_cmdline }}'
# Include the gitlab ci yml fragment, as found in
# `device/$category/device-$devicename/gitlab-ci.yml.j2` which defines the jobs
-1
View File
@@ -1 +0,0 @@
lib/build_changed_aports.sh
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# Description: check pkgver/pkgrel bumps, amount of changed pkgs etc
# Options: native
# Use 'native' because it requires running pmbootstrap.
# Use 'native' because it requires git commit history.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
@@ -11,10 +11,10 @@ if [ "$(id -u)" = 0 ]; then
# In .gitlab-ci.yml currently .ci/pytest.sh runs before this and
# already downloads and runs install_pmbootstrap.sh.
if ! [ -e install_pmbootstrap.sh ]; then
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
fi
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
.ci/lib/check_changed_versions.py
.ci/lib/check_changed_aports_versions.py
+1 -49
View File
@@ -6,7 +6,7 @@ exit_code=0
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add git grep
apk -q add grep
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
@@ -94,52 +94,4 @@ if grep -qEr '^deviceinfo_kernel_cmdline.*[\"\s]console=null' -- device/; then
exit_code=1
fi
# Disallow installation of files to /etc/modules-load.d and /etc/modprobe.d
if grep -qr '/etc/modules-load.d' --exclude-dir='device-samsung-golden-downstream' -- *; then
echo "ERROR: Please replace '/etc/modules-load.d' with '/usr/lib/modules-load.d' in the following files:"
grep --color=always -r '/etc/modules-load.d' --exclude-dir='device-samsung-golden-downstream' -- *
exit_code=1
fi
# n900 is excluded because the string is in a comment linking to a repo.
# No other non-archived devices should be excluded.
if grep -qr '/etc/modprobe.d' --exclude-dir='archived' \
--exclude-dir='device-nokia-n900' -- *; then
echo "ERROR: Please replace '/etc/modprobe.d' with '/usr/lib/modprobe.d' in the following files:"
grep --color=always -r '/etc/modprobe.d' --exclude-dir='device-nokia-n900' \
--exclude-dir='archived' -- *
exit_code=1
fi
# Disallow maintainer comments.
if grep -qr '# Maintainer:' -- *; then
echo 'ERROR: Please use maintainer variables of the form maintainer="..." instead of maintainer comments of the form # Maintainer: ...'
grep --color=always -r '# Maintainer:' -- *
exit_code=1
fi
if [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
# Find all moved or new kernel APKBUILDs in main, community or testing
MOVED_OR_NEW_MAINLINE_KERNEL_PACKAGES=$(git show --pretty="" --name-only --diff-filter=AR "$CI_MERGE_REQUEST_DIFF_BASE_SHA"..HEAD | grep "device/\(main\|community\|testing\)/linux-.*/APKBUILD" || true)
if [ -n "$MOVED_OR_NEW_MAINLINE_KERNEL_PACKAGES" ]; then
if [ -n "$(grep -L LLVM=1 $MOVED_OR_NEW_MAINLINE_KERNEL_PACKAGES || true)" ]; then
echo "ERROR: An added or moved close-to-mainline kernel package is not being built with LLVM."
echo "See https://postmarketos.org/edge/2025/11/11/kernels-llvm/ for more details"
grep --color=always -L LLVM=1 $MOVED_OR_NEW_MAINLINE_KERNEL_PACKAGES
exit_code=1
fi
fi
# Disallow adding packages without a maintainer set
NEW_APKBUILDS=$(git show --pretty="" --name-only --diff-filter=A "$CI_MERGE_REQUEST_DIFF_BASE_SHA"..HEAD | grep APKBUILD || true)
if [ -n "$NEW_APKBUILDS" ]; then
if [ -n "$(grep -L '^maintainer="[^"]\+"$' $NEW_APKBUILDS || true)" ]; then
echo "ERROR: A new package does not have a maintainer set."
grep --color=always -L '^maintainer="[^"]\+"$' $NEW_APKBUILDS
exit_code=1
fi
fi
fi
exit "$exit_code"
+2 -2
View File
@@ -6,11 +6,11 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
export PYTHONUNBUFFERED=1
.ci/lib/kconfig.py
.ci/lib/check_changed_kernels.py
+1
View File
@@ -0,0 +1 @@
../testcases/add_pmbootstrap_to_import_path
+2 -2
View File
@@ -14,7 +14,7 @@ custom_valid_options = [
"pmb:cross-native",
"pmb:cross-native2",
"pmb:drm",
"pmb:generic-kernel",
"pmb:gpu-accel", # deprecated
"pmb:strict",
"pmb:systemd",
"pmb:systemd-never",
@@ -42,7 +42,7 @@ if __name__ == "__main__":
custom_valid_options += kconfigcheck_categories
os.environ["CUSTOM_VALID_OPTIONS"] = " ".join(custom_valid_options)
apkbuilds = {file for file in common.get_changed_files()
apkbuilds = {file for file in common.get_changed_files(removed=False)
if os.path.basename(file) == "APKBUILD"}
if len(apkbuilds) < 1:
print("No APKBUILDs to lint")
+3 -6
View File
@@ -9,6 +9,7 @@ import pathlib
import common
# pmbootstrap
import add_pmbootstrap_to_import_path
import pmb.core
import pmb.parse
import pmb.parse._apkbuild
@@ -18,11 +19,7 @@ from pmb.core.context import get_context
def build_strict(packages, arch):
common.run_pmbootstrap(["build_init"])
# We set the timeout to 1 hour because linking the Linux kernel with
# ThinLTO on our aarch64 runners takes slightly over 30 minutes
common.run_pmbootstrap(["--details-to-stdout", "--no-ccache",
"--timeout", "3600",
"build",
common.run_pmbootstrap(["--details-to-stdout", "--no-ccache", "build",
"--strict", "--force",
"--arch", arch, ] + list(packages))
@@ -35,7 +32,7 @@ if __name__ == "__main__":
arch = sys.argv[1]
# Get and print modified packages
packages = common.get_changed_packages(skip_archived=True)
packages = common.get_changed_packages()
# Load context
sys.argv = ["pmbootstrap.py", "chroot"]
+1 -2
View File
@@ -1,12 +1,11 @@
#!/bin/sh -e
# Description: build modified packages for this architecture
# Options: native slow
# Use 'native' because it requires running pmbootstrap.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
@@ -12,6 +12,7 @@ import subprocess
import common
# pmbootstrap
import add_pmbootstrap_to_import_path # noqa
import pmb.parse
import pmb.parse.version
import pmb.helpers.logging
@@ -182,6 +183,39 @@ def check_versions(packages):
if error:
exit_with_error_message()
def check_package_count(count):
for mark in ["[ci:ignore-count]", "[ci:skip-build]"]:
if common.commit_message_has_string(mark):
print("NOTE: package count sanity check skipped (" + mark + ").")
return
if count <= 10:
return
branch = common.get_upstream_branch()
print(f"""
ERROR: Too many packages have changed!
This is a sanity check, so we don't end up building packages that
have not been modified. CI won't run for more than three hours
anyway.
Your options:
a) If you *did not* modify everything listed above, then rebase
your branch on the official postmarketOS/pmaports.git {branch}
branch. Feel free to ask in the chat for help if you need any.
b) If you *did* modify all these packages, and you assume that
they will build within one hour: skip this sanity check by
adding '[ci:ignore-count]' to the commit message of the last
commit in the merge request (then force push).
c) If you *did* modify all these packages, and you are sure that
they won't build in time, please add '[ci:skip-build]' to the
commit message (then force push). Make sure that all packages
build with 'pmbootstrap build --strict'!
Thank you and sorry for the inconvenience.
""")
exit(1)
if __name__ == "__main__":
# Get and print modified packages
@@ -191,6 +225,7 @@ if __name__ == "__main__":
exit(0)
print(f"Changed packages: {packages}")
check_package_count(len(packages))
# Potentially skip this check
if common.commit_message_has_string("[ci:skip-vercheck]"):
@@ -2,6 +2,9 @@
# Copyright 2024 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import tempfile
import sys
import subprocess
# Same dir
+1 -1
View File
@@ -108,7 +108,7 @@ def main() -> int:
if args.all:
devices = get_devices()
else:
devices = common.get_changed_devices(skip_archived=True)
devices = common.get_changed_devices()
# remove 'device-' prefix
devices = [d[7:] for d in devices]
devices = [d.removesuffix("-downstream") for d in devices]
+21 -18
View File
@@ -7,12 +7,18 @@
import configparser
import os
import subprocess
from functools import cache
@cache
cache = {}
def get_pmaports_dir():
return os.path.realpath(os.path.join(os.path.dirname(__file__) + "/../.."))
global cache
if "pmaports_dir" in cache:
return cache["pmaports_dir"]
ret = os.path.realpath(os.path.join(os.path.dirname(__file__) + "/../.."))
cache["pmaports_dir"] = ret
return ret
def run_git(parameters, check=True, stderr=None):
@@ -45,7 +51,6 @@ def run_pmbootstrap(parameters):
subprocess.run(cmd, universal_newlines=True, check=True)
@cache
def get_upstream_branch():
""" Use pmaports.cfg from current branch (e.g. "v20.05_fix-ci") and
channels.cfg from master to retrieve the upstream branch.
@@ -56,6 +61,10 @@ def get_upstream_branch():
if target_branch := os.environ.get("CI_MERGE_REQUEST_TARGET_BRANCH_NAME"):
return target_branch
global cache
if "upstream_branch" in cache:
return cache["upstream_branch"]
# Get channel (e.g. "stable") from pmaports.cfg
# https://postmarketos.org/pmaports.cfg
pmaports_dir = get_pmaports_dir()
@@ -73,10 +82,11 @@ def get_upstream_branch():
" This appears to be an old branch, consider recreating your change" \
" on top of master."
return channels_cfg[channel]["branch_pmaports"]
ret = channels_cfg[channel]["branch_pmaports"]
cache["upstream_branch"] = ret
return ret
@cache
def get_base_commit() -> str:
"""Get the base commit that can be compared with HEAD to get all commits in the
given branch/merge request."""
@@ -108,7 +118,7 @@ def get_base_commit() -> str:
return commit
def get_changed_files(removed=False):
def get_changed_files(removed=True):
""" Get all changed files and print them, as well as the branch and the
commit that was used for the diff.
:param removed: also return removed files (default: True)
@@ -133,20 +143,13 @@ def get_changed_files(removed=False):
def get_changed_packages(skip_archived: bool = False):
ret = set()
for file in get_changed_files(removed=True):
for file in get_changed_files():
dirname, filename = os.path.split(file)
# Skip files:
# * in the root dir of pmaports (e.g. README.md)
# * path with a dot (e.g. .ci/, device/.shared-patches/)
# * documentation
if (
not dirname
or file.startswith(".")
or "/." in file
or skip_archived and dirname.startswith("device/archived")
or dirname == "docs"
):
if not dirname or file.startswith(".") or "/." in file or skip_archived and dirname.startswith("device/archived"):
continue
if filename != "APKBUILD":
@@ -182,9 +185,9 @@ def get_changed_kernels(skip_archived: bool = False):
ret += [pkgname]
return ret
def get_changed_devices(skip_archived: bool = False):
def get_changed_devices():
ret = []
for pkgname in get_changed_packages(skip_archived):
for pkgname in get_changed_packages():
if pkgname.startswith("device-"):
ret += [pkgname]
return ret
+2 -3
View File
@@ -11,9 +11,8 @@ if __name__ == "__main__":
if common.commit_message_has_string("[ci:skip-dint]"):
print("WARNING: not linting deviceinfo files ([ci:skip-dint])")
exit(0)
# only lint deviceinfo files in the devices repo
deviceinfo_files = {file for file in common.get_changed_files()
if os.path.basename(file) == "deviceinfo" and file.startswith("device/")}
deviceinfo_files = {file for file in common.get_changed_files(removed=False)
if os.path.basename(file) == "deviceinfo"}
try:
subprocess.run(["dint", "check", *deviceinfo_files], text=True, check=True)
+37 -21
View File
@@ -2,7 +2,6 @@
# Copyright 2025 Pablo Correa Gomez
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
from functools import cached_property
from pathlib import Path
from typing import Self
@@ -44,6 +43,10 @@ class Device:
return Template(fragment_tmpl).render(device=self)
@property
def is_present_in_ci(self):
return bool(self.gitlab_ci_fragment)
@cached_property
def pmaports_path(self) -> Path:
# Find the root of pmaports
@@ -69,11 +72,11 @@ class Device:
@property
def testing_dependencies(self) -> set[str]:
# TODO: Source this from the APKBUILD
# TODO: Source this from the APKGBUILD
return {"postmarketos-mkinitfs-hook-ci"}
@cached_property
def package_dependencies(self) -> set[str]:
def package_dependencies(self) -> list[str]:
# HACK: Work around a bug in depends_recurse which prevents listing all the dependencies
# Bug: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/issues/2623
return {"postmarketos-initramfs"}
@@ -85,7 +88,7 @@ class Device:
return self.package_dependencies | self.testing_dependencies
@cached_property
def kernel_variants(self) -> list[str]:
def kernels(self) -> list[str] | None:
kernels = []
subpackage_prefix = f"device-{self.codename}-kernel-"
@@ -98,7 +101,10 @@ class Device:
if kernel_name != "none":
kernels.append(kernel_name)
return kernels
if kernels:
return kernels
else:
return None
@cached_property
def deviceinfo(self) -> dict[str, Deviceinfo] | Deviceinfo:
@@ -111,7 +117,7 @@ class Device:
@property
def has_kernel_variants(self):
return len(self.kernel_variants) > 0
return len(self.kernels) > 0
@classmethod
def supported_devices(cls) -> dict[Path, Self]:
@@ -125,7 +131,7 @@ class Device:
dev = cls(device.codename)
# Ignore devices that do not have a gitlab ci fragment,
# since adding that fragment is how we mark them as DUTs
# since we won't be able to make use of them
if not dev.gitlab_ci_fragment:
continue
@@ -136,21 +142,31 @@ class Device:
class ArchTagSet(set):
supported_arches = [
Arch.x86_64,
Arch.x86,
Arch.aarch64,
Arch.armv7,
Arch.armhf,
Arch.riscv64,
Arch.ppc64le,
]
def update(self, iterable):
supported_arches = Arch.supported_binary()
# This ignores things like !armv7, that could be a follow-up optimization
if 'noarch' in iterable or 'all' in iterable:
iterable = [arch for arch in supported_arches]
super().update([Arch(arch) for arch in iterable if Arch(arch) in supported_arches])
iterable = [arch for arch in self.supported_arches]
super().update([Arch(arch) for arch in iterable if Arch(arch) in self.supported_arches])
if __name__ == "__main__":
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument("--template", default=".ci/build-jobs.yaml.j2", help="Jinja2 input template")
parser.add_argument("--output", default=".ci/build-jobs.yaml", help="output pipeline")
args = parser.parse_args()
# Needs input to output if we should create the jobs
if len(sys.argv) != 3:
print("usage: generate_build_jobs.py TEMPLATE CHILD_PIPELINE")
print(sys.argv)
sys.exit(1)
template = sys.argv[1]
child_pipeline = sys.argv[2]
# pmb logging has to be initialized for later pmb commands to work, setting
# to /dev/null since we don't care about the output. Later this could
@@ -160,11 +176,10 @@ if __name__ == "__main__":
# Load context
sys.argv = ["pmbootstrap.py", "chroot"]
_ = pmb.parse.arguments()
args = pmb.parse.arguments()
# Get the list of supported devices
supported_devices = Device.supported_devices()
print(f"Supported devices: {[d for d in supported_devices.values()]}")
archs = ArchTagSet()
devices_under_test = set()
@@ -179,6 +194,8 @@ if __name__ == "__main__":
if path.name != "APKBUILD":
continue
elif not path.exists():
continue # APKBUILD was deleted
apkbuild = pmb.parse.apkbuild(path)
packages_modified.add(apkbuild['pkgname'])
archs.update(apkbuild["arch"])
@@ -203,7 +220,7 @@ if __name__ == "__main__":
print(f"Architectures to build: {archs}")
print(f"Devices under test: {devices_under_test}")
with open(args.template) as f:
with open(template) as f:
rendered = Template(f.read()).render(
archs=archs,
devices_under_test=devices_under_test,
@@ -216,8 +233,7 @@ if __name__ == "__main__":
Arch.armhf: "qemu",
Arch.riscv64: "qemu",
Arch.ppc64le: "ppc64le",
Arch.loongarch64: "loongarch64",
},
)
with open(args.output, "w") as fw:
with open(child_pipeline, "w") as fw:
fw.write(rendered)
+1
View File
@@ -8,6 +8,7 @@ import sys
import common
# pmbootstrap
import add_pmbootstrap_to_import_path
import pmb.core
from pmb.core.context import get_context
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh -e
# Description: static type checking for python scripts
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
apk -q add py3-argcomplete py3-pip py3-pytest
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
set -x
pip install --break-system-packages --no-warn-script-location mypy
# Need to change directory for pyproject.toml to be picked up.
cd .ci
python -m mypy .
-2
View File
@@ -1,2 +0,0 @@
[tool.mypy]
disable_error_code = ["import-not-found"]
+4 -4
View File
@@ -3,12 +3,12 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# Description: lint with various python tests
# Options: native
# Use 'native' because it requires running pmbootstrap.
# Use 'native' because it requires pmbootstrap.
# https://postmarketos.org/pmb-ci
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh pytest
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
@@ -27,6 +27,6 @@ pmbootstrap config aports "$pmaports"
pmbootstrap -q shutdown
# Needed to import "common"
export PYTHONPATH="$PYTHONPATH:.ci/lib"
export PYTHONPATH=".ci/lib"
# Run testcases
pytest -vv --tb=native "$pmaports/.ci/testcases" "$@"
pytest -vv -x --tb=native "$pmaports/.ci/testcases" "$@"
+1 -1
View File
@@ -11,4 +11,4 @@ fi
set -x
# shellcheck disable=SC2046
ruff check $(find .ci -name '*.py')
ruff check --ignore E501,F401,E722,W605 $(find .ci -name '*.py')
+2 -1
View File
@@ -16,12 +16,12 @@ fi
sh_files="
./main/mdss-fb-init-hack/mdss-fb-init-hack.sh
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-dns-filter.sh
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-tethering.sh
./main/postmarketos-installkernel/installkernel-pmos
./main/postmarketos-initramfs/init.sh
./main/postmarketos-initramfs/init_functions.sh
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
./main/postmarketos-ui-os-installer/rootfs-usr-bin-pmos_setup.sh
./main/postmarketos-usb-moded/rootfs-usr-lib-systemd-system-generators-umtprd-config-generator
./main/ttyescape/*.post-install
./main/unl0kr/unlock.sh
./device/community/soc-qcom/call_audio_idle_suspend_workaround.sh
@@ -38,6 +38,7 @@ sh_files="
$(find . -name '*.trigger')
$(find . -path './main/devicepkg-dev/*.sh')
$(find . -path './main/postmarketos-mvcfg/*.sh')
$(find . -path './.ci/**.sh')
$(find . -path '**/tests/*.sh')
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env python3
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import shutil
import sys
import os
import importlib
import importlib.util
from site import getsitepackages
def path_pmbootstrap():
""" Find the pmbootstrap installation folder, so we can import the Python
code from there.
returns: pmbootstrap installation folder
"""
# This variable is set by pmbootstrap 1.52 and later
# If it's undefined, try to find 'pmbootstrap' in path
bin = os.environ.get("PMBOOTSTRAP_CMD") or shutil.which("pmbootstrap")
if not bin:
print("ERROR: 'pmbootstrap' not found in $PATH")
sys.exit(1)
# Resolve the symlink and verify the folder
directory = os.path.dirname(os.path.realpath(bin))
if os.path.exists(directory + "/pmb/__init__.py"):
return directory
directories = getsitepackages()
for directory in directories:
if os.path.exists(directory + "/pmb/__init__.py"):
return directory
# Symlink not set up properly
print("ERROR: unable to find path to pmbootstrap.py. Try setting 'PMBOOTSTRAP_CMD'.")
sys.exit(1)
# Check if pmb module can be imported
if importlib.util.find_spec("pmb") is None:
# Add pmbootstrap dir to import path
sys.path.append(os.path.realpath(path_pmbootstrap()))
+3 -1
View File
@@ -3,11 +3,14 @@
# SPDX-License-Identifier: GPL-3.0-or-later
from pathlib import Path
import add_pmbootstrap_to_import_path
import pmb.parse
from pmb.helpers.args import init as init_args
from pmb.types import PmbArgs
import pmb.config
from pmb.core.pkgrepo import pkgrepo_default_path
import pytest
import sys
import os
@pytest.fixture(scope="session", autouse=True)
@@ -24,7 +27,6 @@ def args(request):
args.offline = False
args.action = "init"
args.cross = False
args.ccache = False
args.log = None
init_args(args)
+7 -1
View File
@@ -2,10 +2,16 @@
# Copyright 2024 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import fnmatch
import glob
import os
import pytest
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
from pmb.core.pkgrepo import pkgrepo_default_path, pkgrepo_iglob
from pmb.core.pkgrepo import pkgrepo_default_path, pkgrepo_iglob, pkgrepo_relative_path
from pmb.core.arch import Arch
# Don't complain if these nicknames are the only maintainers of an APKBUILD,
+5
View File
@@ -2,8 +2,13 @@
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import os
import pytest
import re
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
from pmb.core.pkgrepo import pkgrepo_iglob
+3 -1
View File
@@ -2,10 +2,12 @@
# Copyright 2021 Johannes Marbach
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import os
import add_pmbootstrap_to_import_path
import pmb.parse
from pmb.core.pkgrepo import pkgrepo_iglob
from pmb.core.pkgrepo import pkgrepo_default_path, pkgrepo_iglob
def test_aports_firmware():
+5
View File
@@ -6,8 +6,13 @@
version in all packages. We scan all packages, categorize them by URL
and then compare the versions of all packages in each category. """
import glob
import logging
import os
import pytest
import sys
import add_pmbootstrap_to_import_path
import pmb.config
import pmb.parse
from pmb.core.pkgrepo import pkgrepo_iter_package_dirs
+5
View File
@@ -2,9 +2,14 @@
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import pytest
import sys
import os
import re
from pathlib import Path
import add_pmbootstrap_to_import_path
import pmb.parse
from pmb.core.pkgrepo import pkgrepo_iglob, pkgrepo_relative_path
+5
View File
@@ -1,9 +1,14 @@
#!/usr/bin/env python3
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import logging
import os
import pytest
import sys
import re
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
from pmb.core.pkgrepo import pkgrepo_iter_package_dirs, pkgrepo_relative_path
+3 -3
View File
@@ -6,7 +6,10 @@
import glob
import logging
import os
import pytest
import sys
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.parse._apkbuild
import pmb.parse.apkindex
@@ -98,9 +101,6 @@ def test_aports_unreferenced_files():
# Skip APKBUILDs and directories
if rel_file_path in ["APKBUILD", "gitlab-ci.yml.j2"] or os.path.isdir(file):
continue
# Skip kernel fragments in linux-* packages
if os.path.basename(rel_file_path).endswith(".config") and apkbuild["pkgname"].startswith("linux-"):
continue
if os.path.basename(rel_file_path) not in sources_chk \
and rel_file_path not in apkbuild["install"] \
+1 -1
View File
@@ -6,7 +6,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
+22
View File
@@ -5,6 +5,10 @@
#
set -eu
# Maximal allowed size (in bytes) of a file.
FILE_SIZE_LIMIT=262144 # 256 kiB
if ! command -v sha512sum >/dev/null; then
# macOS / BSDs (?) don't have sha512sum, but shasum.
alias sha512sum='shasum -a 512'
@@ -91,6 +95,20 @@ check_local_sources() {
return $status
}
# Checks if the file ($1) being committed is not bigger than FILE_SIZE_LIMIT.
check_file_size() {
local path="$1"
local size
size=$(git cat-file -s ":$path")
if [ $size -gt $FILE_SIZE_LIMIT ]; then
local size_kb=$(( size / 1024 ))
error "file \"$path\" is quite big ($(( size / 1024 )) kiB), better put a remote url in source="
return 1
fi
}
cleanup() {
[ -f "$_staged" ] && rm "$_staged"
}
@@ -104,4 +122,8 @@ for apkbuild in $(changed_files '**/APKBUILD'); do
cleanup
done
for path in $(changed_files); do
check_file_size "$path"
done
trap - EXIT
-1
View File
@@ -67,7 +67,6 @@ instance/
# Documentation
public
docs/deviceinfo-reference.md
# PyBuilder
target/
+4 -24
View File
@@ -16,9 +16,6 @@ variables:
# seems like a reasonable balance. If this is too low, git merge-base (from ci/
# common.py) can fail
GIT_DEPTH: 100
# So that anything that runs install_pmbootstrap and tries to import pmb module
# can find it.
PYTHONPATH: "/tmp/pmbootstrap"
# This defines the rules for when a pipeline should run.
workflow:
@@ -62,18 +59,6 @@ ruff:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/ruff.sh
# testcases typechecking
mypy:
stage: lint
rules:
- if: *mr_rule
changes:
- .ci/**/*
- .gitlab-ci.yml
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/mypy.sh
# shellcheck and various grep checks
shellcheck-grep:
stage: lint
@@ -100,7 +85,7 @@ pytest-commits:
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/pytest.sh
- .ci/check-changed-versions.sh
- .ci/commits.sh
artifacts:
when: on_failure
paths:
@@ -168,7 +153,7 @@ mr-settings:
before_script:
- apk -q add python3
script:
- wget -q "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/check_mr_settings.py"
- wget -q "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
- python3 ./check_mr_settings.py
# Calculate build of changed aports using a dynamic downstream pipelines:
@@ -187,13 +172,13 @@ generate-build-jobs:
- .ci/lib/gitlab_prepare_ci.sh
needs: []
script:
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh py3-jinja2
# HACK: Make the pmb library happy to use the currently-cloned pmaports repo
- mkdir -p /root/.local/var/pmbootstrap/cache_git/ && ln -s $PWD /root/.local/var/pmbootstrap/cache_git/pmaports
- .ci/lib/generate_build_jobs.py
- PYTHONPATH=/tmp/pmbootstrap/ .ci/lib/generate_build_jobs.py .ci/build-jobs.yaml.j2 .ci/build-jobs.yaml
artifacts:
paths:
@@ -223,8 +208,6 @@ build-docs:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- .ci/build-docs.sh
- deviceinfo_schema.toml
- docs/**
deploy-docs:
@@ -235,10 +218,7 @@ deploy-docs:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "postmarketOS"
changes:
- deviceinfo_schema.toml
- docs/**
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
auto-update:
stage: autoupdate
+1 -1
View File
@@ -27,7 +27,7 @@
Replace space inside `[ ]` with `x` to fill the checkbox
-->
* [ ] edge (`master` branch)
* [ ] `v25.12`
* [ ] `v25.06`
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
@@ -1,11 +0,0 @@
<!-- Use this template to kick off the discussion for a package with (presumably)
inactive maintainers and the future for the maintainership of the package.
-->
### Information
* Package name:
* Maintainers of the package:
* MR that had no maintainer response, if applicable:
/label ~maintainership-status
-2
View File
@@ -1,5 +1,3 @@
Casey Connolly <casey.connolly@linaro.org> <caleb.connolly@linaro.org>
Casey Connolly <kcxt@postmarketos.org> <caleb@postmarketos.org>
Achill Gilgenast <achill@achill.org> <fossdd@pwned.life>
Aelin <aelin@postmarketos.org> <adrian@postmarketos.org>
Aelin <aelin@postmarketos.org> <adrian@travitia.xyz>
+2 -8
View File
@@ -4,18 +4,12 @@ recommended=edge
[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=main
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge
[v25.12]
description=Latest release / Recommended for best stability
branch_pmaports=v25.12
branch_aports=3.23-stable
mirrordir_alpine=v3.23
[v25.06]
description=Old release (unsupported)
description=Latest release / Recommended for best stability
branch_pmaports=v25.06
branch_aports=3.22-stable
mirrordir_alpine=v3.22
+1 -1
View File
@@ -2,7 +2,7 @@ cross-gcc-tests:
extends: .package-test
tags: [qemu]
before_script:
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/main/install_pmbootstrap.sh"
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh
script:
- su pmos -c "pmbootstrap build gcc-aarch64"
+1 -1
View File
@@ -4,7 +4,7 @@
# armhf chroot to /usr/bin/gcc. That way compilation works fine, even
# when distcc gets the absolute path to the compiler passed (ccache does
# that).
maintainer=""
pkgname=arch-bin-masquerade
pkgver=2
pkgrel=0
+1 -1
View File
@@ -2,7 +2,7 @@
# compiling packages in the native chroot (e.g. kernel packages), the
# cross-compiler does not get called directly, but wrapped through
# ccache, which can then cache the results.
maintainer=""
pkgname=ccache-cross-symlinks
pkgver=3
pkgrel=3
+2 -1
View File
@@ -1,3 +1,4 @@
# Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
# https://docs.postmarketos.org/pmbootstrap/cross_compiling.html
#
# Wrapper for the "crossdirect" compilation method.
@@ -17,7 +18,7 @@
# chroot. See crossdirect.c for implementation details of the C version (llvm,
# fakeroot, rpath). The rust version and redirect for archivers are implemented
# as simple shell wrappers.
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=crossdirect
pkgver=5.3.1
pkgrel=1
+2 -3
View File
@@ -1,10 +1,9 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen grub-efi-x86
maintainer=""
pkgname=grub-efi-x86
pkgver=2.12
pkgrel=9
pkgrel=8
_arch="x86"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -23,5 +22,5 @@ package() {
}
sha512sums="
ef8dd1fde9db54c71dd5024be62d09bf4f19dbdd2faf9772780373816050f23c594c6eefdc367f5b8cd93e97ae2f10dbd73cf7979377b72deb77acf8a3e37f71 grub-efi-2.12-r9-x86-edge.apk
cca57dbed340ff4f9cc0f12c509c8213e8c83edbf80c8ace9ab5a46e7d48c19a7c8cb57a1c86bab3324dcfc071e289045e13ddf3b5011923e1a1a27713e86e0f grub-efi-2.12-r8-x86-edge.apk
"
-1
View File
@@ -1,4 +1,3 @@
maintainer=""
pkgname=grub-x86
pkgver=1
pkgrel=2
@@ -1,33 +0,0 @@
From abcc28985f5ab3b50c3ed85abee5e7f8bbd0889e Mon Sep 17 00:00:00 2001
From: Oliver Smith <ollieparanoid@postmarketos.org>
Date: Sun, 21 Dec 2025 17:04:26 +0100
Subject: [PATCH] meson: disable libintl check if pam is disabled
Disable the libintl check when building without the pam feature, so e.g.
systemd-boot can be (cross) compiled without having the foreign arch
libintl installed on a musl platform.
---
meson.build | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index bcf1ff2df5..c7088f3d9c 100644
--- a/meson.build
+++ b/meson.build
@@ -1021,11 +1021,10 @@ libdl = cc.find_library('dl')
# On some distributions that use musl (e.g. Alpine), libintl.h may be provided by gettext rather than musl.
# In that case, we need to explicitly link with libintl.so.
-if cc.has_function('dgettext',
+libintl = []
+if get_option('pam').enabled() and not cc.has_function('dgettext',
prefix : '''#include <libintl.h>''',
args : '-D_GNU_SOURCE')
- libintl = []
-else
libintl = cc.find_library('intl')
if not cc.has_function('dgettext',
prefix : '''#include <libintl.h>''',
--
2.52.0
@@ -0,0 +1,149 @@
From 01ce16f1299237946cf07f54952b72e533e5c59b Mon Sep 17 00:00:00 2001
From: Struan Robertson <contact@struan.tech>
Date: Thu, 18 Sep 2025 15:32:35 +0100
Subject: [PATCH] patch wchar_t for musl
---
src/basic/stdio-util.h | 2 +-
src/boot/efi-string.c | 10 +++++-----
src/boot/efi.h | 6 +++---
src/boot/fuzz-efi-printf.c | 2 +-
src/boot/test-efi-string.c | 2 +-
src/test/test-format-util.c | 4 ++--
6 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
index 052087ce15..f9412e8be2 100644
--- a/src/basic/stdio-util.h
+++ b/src/basic/stdio-util.h
@@ -49,7 +49,7 @@ do { \
(void) va_arg(ap, long long int); \
break; \
case PA_WCHAR: \
- (void) va_arg(ap, wchar_t); \
+ (void) va_arg(ap, uint16_t); \
break; \
case PA_WSTRING: \
case PA_STRING: \
diff --git a/src/boot/efi-string.c b/src/boot/efi-string.c
index 8e2c73d84d..08003fac5a 100644
--- a/src/boot/efi-string.c
+++ b/src/boot/efi-string.c
@@ -597,7 +597,7 @@ typedef struct {
bool have_field_width;
const char *str;
- const wchar_t *wstr;
+ const uint16_t *wstr;
/* For numbers. */
bool is_signed;
@@ -658,7 +658,7 @@ static bool push_str(FormatContext *ctx, SpecifierContext *sp) {
push_padding(ctx, ' ', sp->padded_len);
/* In userspace unit tests we cannot just memcpy() the wide string. */
- if (sp->wstr && sizeof(wchar_t) == sizeof(char16_t)) {
+ if (sp->wstr && sizeof(uint16_t) == sizeof(char16_t)) {
memcpy(ctx->buf + ctx->n, sp->wstr, sp->len * sizeof(*sp->wstr));
ctx->n += sp->len;
} else {
@@ -752,7 +752,7 @@ static bool handle_format_specifier(FormatContext *ctx, SpecifierContext *sp) {
* int in vararg functions, which is why we fetch only ints for any such types. The compiler would
* otherwise warn about fetching smaller types. */
assert_cc(sizeof(int) == 4);
- assert_cc(sizeof(wchar_t) <= sizeof(int));
+ assert_cc(sizeof(uint16_t) <= sizeof(int));
assert_cc(sizeof(long long) == sizeof(intmax_t));
assert(ctx);
@@ -847,13 +847,13 @@ static bool handle_format_specifier(FormatContext *ctx, SpecifierContext *sp) {
return push_str(ctx, sp);
case 'c':
- sp->wstr = &(wchar_t){ va_arg(ctx->ap, int) };
+ sp->wstr = &(uint16_t){ va_arg(ctx->ap, int) };
sp->len = 1;
return push_str(ctx, sp);
case 's':
if (sp->long_arg) {
- sp->wstr = va_arg(ctx->ap, const wchar_t *) ?: L"(null)";
+ sp->wstr = va_arg(ctx->ap, const uint16_t *) ?: L"(null)";
sp->len = wcsnlen(sp->wstr, sp->len);
} else {
sp->str = va_arg(ctx->ap, const char *) ?: "(null)";
diff --git a/src/boot/efi.h b/src/boot/efi.h
index 1832df980c..4e6a2f7288 100644
--- a/src/boot/efi.h
+++ b/src/boot/efi.h
@@ -16,7 +16,7 @@
#if SD_BOOT
/* uchar.h/wchar.h are not suitable for freestanding environments. */
-typedef __WCHAR_TYPE__ wchar_t;
+typedef __WCHAR_TYPE__ uint16_t;
typedef __CHAR16_TYPE__ char16_t;
typedef __CHAR32_TYPE__ char32_t;
@@ -28,7 +28,7 @@ assert_cc(sizeof(uint8_t) == 1);
assert_cc(sizeof(uint16_t) == 2);
assert_cc(sizeof(uint32_t) == 4);
assert_cc(sizeof(uint64_t) == 8);
-assert_cc(sizeof(wchar_t) == 2);
+assert_cc(sizeof(uint16_t) == 2);
assert_cc(sizeof(char16_t) == 2);
assert_cc(sizeof(char32_t) == 4);
assert_cc(sizeof(size_t) == sizeof(void *));
@@ -38,7 +38,7 @@ assert_cc(alignof(uint8_t) == 1);
assert_cc(alignof(uint16_t) == 2);
assert_cc(alignof(uint32_t) == 4);
assert_cc(alignof(uint64_t) == 8);
-assert_cc(alignof(wchar_t) == 2);
+assert_cc(alignof(uint16_t) == 2);
assert_cc(alignof(char16_t) == 2);
assert_cc(alignof(char32_t) == 4);
diff --git a/src/boot/fuzz-efi-printf.c b/src/boot/fuzz-efi-printf.c
index 2857b389a2..ec2a45568f 100644
--- a/src/boot/fuzz-efi-printf.c
+++ b/src/boot/fuzz-efi-printf.c
@@ -44,7 +44,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
fuzz_setup_logging();
PRINTF_ONE(i->status, "%*.*s", i->field_width, (int) len, i->str);
- PRINTF_ONE(i->status, "%*.*ls", i->field_width, (int) (len / sizeof(wchar_t)), (const wchar_t *) i->str);
+ PRINTF_ONE(i->status, "%*.*ls", i->field_width, (int) (len / sizeof(uint16_t)), (const uint16_t *) i->str);
PRINTF_ONE(i->status, "%% %*.*m", i->field_width, i->precision);
PRINTF_ONE(i->status, "%*p", i->field_width, i->ptr);
diff --git a/src/boot/test-efi-string.c b/src/boot/test-efi-string.c
index e0d3bd9b71..52c65d753d 100644
--- a/src/boot/test-efi-string.c
+++ b/src/boot/test-efi-string.c
@@ -705,7 +705,7 @@ TEST(xvasprintf_status) {
test_printf_one("%-14ls %-10.0ls %-10.3ls", L"left", L"", L"chopped");
test_printf_one("%.6s", (char[]){ 'n', 'o', ' ', 'n', 'u', 'l' });
- test_printf_one("%.6ls", (wchar_t[]){ 'n', 'o', ' ', 'n', 'u', 'l' });
+ test_printf_one("%.6ls", (uint16_t[]){ 'n', 'o', ' ', 'n', 'u', 'l' });
test_printf_one("%u %u %u", 0U, 42U, 1234567890U);
test_printf_one("%i %i %i", 0, -42, -1234567890);
diff --git a/src/test/test-format-util.c b/src/test/test-format-util.c
index 0a95837dbe..d07333a5d1 100644
--- a/src/test/test-format-util.c
+++ b/src/test/test-format-util.c
@@ -18,8 +18,8 @@ assert_cc(STRLEN(U"") == 0);
assert_cc(STRLEN(U"a") == sizeof(char32_t));
assert_cc(STRLEN(U"123") == 3 * sizeof(char32_t));
assert_cc(STRLEN(L"") == 0);
-assert_cc(STRLEN(L"a") == sizeof(wchar_t));
-assert_cc(STRLEN(L"123") == 3 * sizeof(wchar_t));
+assert_cc(STRLEN(L"a") == sizeof(uint16_t));
+assert_cc(STRLEN(L"123") == 3 * sizeof(uint16_t));
assert_cc(DECIMAL_STR_MAX(uint8_t) == STRLEN("255")+1);
assert_cc(DECIMAL_STR_MAX(int8_t) == STRLEN("-127")+1);
assert_cc(DECIMAL_STR_MAX(uint64_t) == STRLEN("18446744073709551615")+1);
--
2.51.0
@@ -0,0 +1,61 @@
From 9047f8b2a7374d95e8261f15941d07b6e4def3fe Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Tue, 7 Jan 2025 20:19:51 -0800
Subject: [PATCH] (pmOS cross/systemd-boot-x86 specific): meson: minimal
configure for building systemd-boot
Notes:
- toggling all ENABLED_* things off saves a ton of configure
time
- Removing capability.h, so that cross compiling doesn't fail
because that header isn't installed
- Set libcap to required=false, they aren't needed for building the
bootloader, and they complicate cross compilation
IMPORTANT: some of these dependencies don't exist for the target arch
(x86) and since they aren't actually required by sd-boot it's easier
to just disable/remove them from meson.build!!!
---
meson.build | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 238b935372..8449eb8ecd 100644
--- a/meson.build
+++ b/meson.build
@@ -688,7 +688,6 @@ conf.set('GPERF_LEN_TYPE', gperf_len_type,
foreach header : [
'crypt.h',
- 'sys/capability.h',
]
if not cc.has_header(header)
@@ -997,7 +996,7 @@ threads = dependency('threads')
librt = cc.find_library('rt')
libm = cc.find_library('m')
libdl = cc.find_library('dl')
-libcap = dependency('libcap')
+libcap = dependency('libcap', required : false)
# On some architectures, libatomic is required. But on some installations,
# it is found, but actual linking fails. So let's try to use it opportunistically.
@@ -1886,6 +1885,15 @@ pefile = pymod.find_installation('python3', required: false, modules : ['pefile'
want_ukify = get_option('ukify').require(python_39 and (want_tests != 'true' or pefile.found()), error_message : 'Python >= 3.9 and pefile required').allowed()
conf.set10('ENABLE_UKIFY', want_ukify)
+foreach key : conf.keys()
+ if key.startswith('ENABLE_')
+ conf.set10(key, false)
+ endif
+endforeach
+
+conf.set10('ENABLE_EFI', true)
+conf.set10('ENABLE_BOOTLOADER', true)
+
#####################################################################
check_efi_alignment_py = files('tools/check-efi-alignment.py')
--
2.51.0
+9 -7
View File
@@ -1,12 +1,13 @@
# Forked from Alpine to cross compile for x86_64 systems that have x86 EFI
maintainer=""
pkgname=systemd-boot-x86
_pkgname=systemd-boot # for monitoring
pkgver=259.5
pkgver=258.2
pkgrel=0
pkgdesc="systemd's EFI boot manager for x86 EFI on x86_64."
url="https://systemd.io/"
arch="x86_64" # x86 32-bit only makes sense on x86 64-bit
# riscv64: I have no way to test this currently
arch="x86_64"
license="LGPL-2.1-or-later"
makedepends="
bash
@@ -22,7 +23,8 @@ makedepends="
"
source="
systemd-$pkgver.tar.gz::https://github.com/systemd/systemd/archive/refs/tags/v$pkgver.tar.gz
0001-meson-disable-libintl-check-if-pam-is-disabled.patch
0001-patch-wchar_t-for-musl.patch
0002-meson-minimal-configure-for-building-systemd-boot.patch
cross-x86.meson
"
# check: no tests
@@ -35,7 +37,6 @@ builddir="$srcdir/systemd-$pkgver"
build() {
abuild-meson \
-Dlibc="musl" \
-Dsbat-distro="alpine" \
-Dsbat-distro-summary="Alpine Linux" \
-Dsbat-distro-pkgname="$pkgname" \
@@ -118,7 +119,8 @@ efistub() {
}
sha512sums="
cb76b3a11b400fea94de2be74bcd9178b2e986c1965cbc19824114fe14fdd9b6aed43ae325cf5bc505efa1333adc71e131e0a8b54519e6741baa090392bf0a98 systemd-259.5.tar.gz
8ecb5e25c0d8b01c406fa3084b0910d517cabbf12894958b4d3d77462cb0924f0a52fe2bf1aa39af29b16fd78fe080a6a99daa18015c6059fb2e52c971d83ba9 0001-meson-disable-libintl-check-if-pam-is-disabled.patch
1dc016a5a037aec2682e08d2add0dcf8d03db15b45ce8c6b677898f734aefd4694ce18e588d579e42514071fc4c167b2bf53808478b2bd3856b257c9fbcde45d systemd-258.2.tar.gz
9ff8da74fa51b0ededaf6cf7b80b03f433c8617db39eb5cde01477031fa00724b8b7bdf68c945c277510f81e7fbbf3b2732f2c781b0f6ce67569b2737581595b 0001-patch-wchar_t-for-musl.patch
5cffc18f3eaaab1b6cc8f7191afed628036b9e794ca7f9fe0a7eb4653862f8cd2b43f18483916b52cdca4ddb17b8baae5baa212aa152b1ae8f2b31d57d6e1f45 0002-meson-minimal-configure-for-building-systemd-boot.patch
ad54e2c7e7a21bfa9b5f9e8db1b6af6a6d78a3e5dfe2dafcec77488f6224865ab4d4c8a8c8ee1c54c99d1741361e9fb3a51e5d36bcbc7a1c3fdcc4d0c1672132 cross-x86.meson
"
@@ -1,34 +0,0 @@
# Use this gitlab-ci snippet if your package:
#
# * is a Qualcomm device
# * has its runner tags definition found in ci-common's ci-tron/common.yml
# * uses U-boot as bootloader
# * The devicepackage does not support U-boot and UEFI, but still uses the stock
# bootloader
test-{{ device.name }}:
extends:
# Extended from jobs defined in ci-common/ci-tron/common.yml
- .pmos-ci-tron-runner-{{ device.name }}
- .pmos-ci-tron-initramfs-test
# Extended from build-jobs.yaml.j2
- .device-boot-flow-separate-artifacts
- .test-{{ device.name }}
# NOTE: set the job to manually started and allow failure until HW CI is
# stable
allow_failure: true
when: manual
variables:
# Let CI-tron construct the bootimg accepted by U-boot in a standard
# Qualcomm way
CI_TRON_FASTBOOT__HEADER_VERSION: 2
CI_TRON_FASTBOOT__BASE: 0x00000000
CI_TRON_FASTBOOT__KERNEL_OFFSET: 0x00008000
CI_TRON_FASTBOOT__RAMDISK_OFFSET: 0x01000000
CI_TRON_FASTBOOT__TAGS_OFFSET: 0x00000100
CI_TRON_FASTBOOT__PAGESIZE: 4096
# Devices should not have the serial console enabled, but we want it
# to be able to get logs. And all qcom devices use the same one!
CI_TRON_KERNEL_CMDLINE__CONSOLE: "console=ttyMSM0,115200"
@@ -3,6 +3,7 @@
# * only requires a single runner
# * has its runner tags definition found in ci-common's ci-tron/common.yml
# * uses CI-tron as a bootloader
# * has kernel variants following the naming scheme `vmlinuz-$KERNEL_VARIANT`
#
# If this is not the case, feel free to copy the content of this file into
# your package's folder
@@ -10,13 +11,10 @@ test-{{ device.name }}:
extends:
# Extended from jobs defined in ci-common's ci-tron/common.yml
- .pmos-ci-tron-runner-{{ device.name }}
- .pmos-ci-tron-initramfs-test
# Extended from build-jobs.yaml.j2
- .device-boot-flow-separate-artifacts
- .test-{{ device.name }}
variables:
# FIXME: cmdline is hardcoded here, but ideally would be built from
# fragments using generate-kernel-cmdline...
# See: https://gitlab.freedesktop.org/gfx-ci/ci-tron/-/issues/317
CI_TRON_KERNEL_CMDLINE__DEVICEINFO: 'console=tty1 console=ttyS0,115200 pmos.force-partition-resize psi=1'
KERNEL_NAME: vmlinuz-$KERNEL_VARIANT
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-alcatel-idol347-downstream
pkgdesc="Alcatel OneTouch Idol 3 (4.7) (Downstream)"
pkgver=5
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -10,7 +10,7 @@ arch="armv7"
options="!check !archcheck"
depends="postmarketos-base linux-alcatel-idol347-downstream mkbootimg msm-fb-refresher"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -21,6 +21,5 @@ package() {
}
sha512sums="
18ab6d8db91b707eea65784699164b9da3130553119d6e1da955b87c34ae28facb56d6b97cd6eb57588284c9acc4ea4e983e7093d8267f743edbf77808193135 deviceinfo
928047af135afd6a3e76791628148eb7e5c8fe55465786655e47662b6baf07d251940357e278614b05de58898c03632dfcc7761f62c39765206b0cb70d054e9d kernel-cmdline.conf
131bddf782050fd8301ebd242a5b19cd70c520f03fe2e8a2f0b7afba60cc3dc0330f3765395de70553fc172a116a02a9512c3fc189303cb09609e4adac76a799 deviceinfo
"
@@ -10,13 +10,17 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk androidboot.bootloader=L1BGC0C0BG00"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x80000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
@@ -1,9 +0,0 @@
console=ttyHSL0,115200,n8
androidboot.console=ttyHSL0
androidboot.hardware=qcom
msm_rtb.filter=0x237
ehci-hcd.park=3
androidboot.bootdevice=7824900.sdhci
lpm_levels.sleep_disabled=1
earlyprintk
androidboot.bootloader=L1BGC0C0BG00
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-amazon-mantis
pkgdesc="Amazon Fire TV Stick 4K"
pkgver=4
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -25,5 +25,5 @@ package() {
}
sha512sums="
4ce458d7aa08ed2b1fc6a11fb39e38e9a323232be9f8f220c31912650297141ed4997f0115b5a3e290e1f57ada5a1e706b8c623b0e48a1f596bed2d5ebd871ba deviceinfo
56da9bba99d1c16a18ae1dbabdf7a38b9d6f28f12fd3c2c9a938abf11cdd1fcc281c0a735144e93d79288574eff1ac5f6ec51907dc3625b99697ea435d920bd8 deviceinfo
"
@@ -11,12 +11,16 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="embedded"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="1920"
deviceinfo_screen_height="1080"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_offset_base="0x40000000"
deviceinfo_flash_offset_kernel="0x00008000"
+4 -5
View File
@@ -1,9 +1,9 @@
# Archived: Kernel sources have disappeared, does not build anymore
# Maintainer: Hadi Charara <hadicharara@ymail.com>
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Hadi Charara <hadicharara@ymail.com>"
pkgname=device-amazon-suez
pkgdesc="Amazon Fire HD 10"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -11,7 +11,7 @@ arch="aarch64"
options="!check !archcheck"
depends="postmarketos-base linux-amazon-suez mkbootimg"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -23,6 +23,5 @@ package() {
sha512sums="
7b822b61e88d98d848914692f432bcfbd69ad9a3c1a0a125e6b8257a0b1ac2db590e41df9cf9e8f0ddd5a9e3bc39870ec635e8f0d5ba9fd0e1235b184bd001a1 deviceinfo
d89b08ef9888faae6cb96a378421669e6119023307a3b5a109e18b7f9e2c70e1f8b240ba8f9b9d22d319fa28e416565d06074d34382f482c9b037b7ab3f4861c kernel-cmdline.conf
7fabe51a6cc1b013ce9d6c8875f2c127dfd7dad827312aba2564af02fd321d5174d5fd7f7a0c92853e5b95e4cee88fff2a06bb2590de81c0424156baf9b9fcb8 deviceinfo
"
@@ -10,13 +10,17 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1200"
deviceinfo_screen_height="1920"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="bootopt=64S3,32N2,64N2"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x40078000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x03f88000"
@@ -1 +0,0 @@
bootopt=64S3,32N2,64N2
+2 -2
View File
@@ -3,7 +3,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-apple-d22
pkgdesc="Apple iPhone X (Global)"
pkgver=3
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -27,5 +27,5 @@ package() {
}
sha512sums="
ad10b6703985c160486d9f3159f77c0f4d1e1d14d2534b2f90934ac3a06affb7839b0f64c6030c4d2d54fb24ec2c8ec88e516d530e8d8e1230ffe0c1992a020f deviceinfo
77576a8cfeffae46fa9ba47ca050355a844e3648f2c1fd36f8de27d996e721b1e840adecb418f9260ae5781229dc3e3bbadbc793df7b30e8f58949b86dd4352d deviceinfo
"
@@ -11,6 +11,7 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_external_storage="false"
deviceinfo_getty="ttySAC0;115200"
deviceinfo_rootfs_image_sector_size="4096"
deviceinfo_screen_width="1125"
@@ -20,3 +21,4 @@ deviceinfo_screen_height="2346"
deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
@@ -1,10 +1,10 @@
# Archived: Replaced by apple-idevice
# Maintainer: Jonas Heinrich <onny@project-insanity.org>
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Jonas Heinrich <onny@project-insanity.org>"
pkgname=device-apple-iphone7
pkgdesc="Apple iPhone 7"
pkgver=3
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -23,5 +23,5 @@ package() {
}
sha512sums="
1c91367a815f8d9c3cc295af21928175d792607a37704bf99b7af8e73a00a9a91842cb2c98e16b9216962bf946f1947469d7432bac04710cf2397225ead68741 deviceinfo
89e982924d3fbf7e95144e85565597a1dda57394505e5381737b4026e05160986c51c69c007f37e5f48b4aa4e321c498345b4b14d10b18db25b86f3f26c41e2f deviceinfo
"
@@ -10,8 +10,11 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="750"
deviceinfo_screen_height="1334"
# Bootloader related
deviceinfo_flash_method="none"
+3 -3
View File
@@ -1,10 +1,10 @@
# Archived: Replaced by apple-idevice
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Aster Boese <asterboese@mailbox.org>"
# Maintainer: Aster Boese <asterboese@mailbox.org>
pkgname=device-apple-n61
pkgdesc="Apple iPhone 6"
pkgver=4
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -28,6 +28,6 @@ package() {
}
sha512sums="
205d8c2f9b5c9a1378e9fbfa1cf0ba7506c5ff8ba98fb690649f85d9d6ca89f40b474c92091847bf13185750a20cda9092d128010c0d521e88c8bccc13cdb51f deviceinfo
7500439e30455b5116d6f8cfb3b50abc51947c358e0ff506ca457c6eccc70abd0d3c48355e82d2e97ead2971403cc861722b5f13d72baf7398bc3d878ef306bf deviceinfo
f4df83d543efb5748743f56fbfeddc6734ad341fb623f796faa74b4f42cadfd9a7b1aea2bd3a6f7aa3f284bcb34c05b2ec2a1704ad6e88b043f92dc0de14a573 modules-initfs
"
@@ -11,7 +11,10 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="750"
deviceinfo_screen_height="1334"
# Bootloader related
deviceinfo_flash_method="none"
@@ -1,9 +1,9 @@
# Archived: Downstream port, only for testing. Use mainline port!
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Luca Weiss <luca@lucaweiss.eu>"
# Maintainer: Luca Weiss <luca@lucaweiss.eu>
pkgname=device-asus-sparrow-downstream
pkgdesc="ASUS ZenWatch 2 (Downstream)"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -15,7 +15,7 @@ depends="
postmarketos-base
"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -26,6 +26,5 @@ package() {
}
sha512sums="
4945852133fff539967551344ddb80839a6369ef857c332fe444fc7b485eb09a4f3d089752267062b25683478a614cea046250a56f77b14317c83123c5b5dbb0 deviceinfo
4b7f1842dbbd6ec2990d7ea259de3f801a33e38a82f747549249cedcb64aa37935e9452a5f50f6d0cc6ce38a1db8e9d6f77440a7c52f61cd353ea75b7f3e395a kernel-cmdline.conf
9e623485ede2810071135a324360860ca7b2b43a696b5b7a8525f334018aa13f130fdd3b729ffd1b2b8541949fb781b426613a9968daa983d9affff407ed55b1 deviceinfo
"
@@ -11,13 +11,18 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="watch"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="320"
deviceinfo_screen_height="320"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=sparrow user_debug=31 maxcpus=4 msm_rtb.filter=0x3F"
deviceinfo_generate_bootimg="true"
deviceinfo_generate_extlinux_config="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,6 +0,0 @@
console=ttyHSL0,115200,n8
androidboot.console=ttyHSL0
androidboot.hardware=sparrow
user_debug=31
maxcpus=4
msm_rtb.filter=0x3F
@@ -3,7 +3,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-asus-x00td-downstream
pkgdesc="Asus Zenfone Max Pro M1 downstream"
pkgver=4
pkgver=0.1
pkgrel=0
url="postmarketos.org"
arch="aarch64"
@@ -11,7 +11,7 @@ license="MIT"
options="!check !archcheck"
depends="linux-asus-x00td-downstream mkbootimg msm-fb-refresher postmarketos-base"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -22,6 +22,5 @@ package() {
}
sha512sums="
dba81cd79eb19593fb886918cb2f9595e2b7b656eba4569e646f443c010671d5b48343cc203173036879a6c81c95eb90e02d20f8795c9b5d5f5dfe08740978d9 deviceinfo
4b2ea9d473de336b68db736b2b2ae44e8f952a948c016fbbceb205512f73548b85cb00a488f600f1346e92dc839d2ee2419fbd5bf56f9cba9df843419b69ec74 kernel-cmdline.conf
dee8129a078693d5c5b13da6247615f1b9720d7268e16280ef5d5111b07cd96f534eee91893a20935d182cf6205598d283308f91bc1d7cc7b701907b33090ae8 deviceinfo
"
@@ -6,10 +6,12 @@ deviceinfo_name="Asus ZenFone Max Pro M1"
deviceinfo_manufacturer="Asus"
deviceinfo_codename="asus-x00td-downstream"
deviceinfo_year="2018"
deviceinfo_append_dtb="false"
deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1080"
deviceinfo_screen_height="2160"
@@ -17,7 +19,9 @@ deviceinfo_screen_height="2160"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_flash_fastboot_partition_vbmeta="vbmeta"
deviceinfo_kernel_cmdline="console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc170000 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=1 firmware_class.path=/vendor/firmware_mnt/image loop.max_part=7 buildvariant=userdebug"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
@@ -1,15 +0,0 @@
console=ttyMSM0,115200,n8
androidboot.console=ttyMSM0
earlycon=msm_serial_dm,0xc170000
androidboot.hardware=qcom
user_debug=31
msm_rtb.filter=0x37
ehci-hcd.park=3
lpm_levels.sleep_disabled=1
sched_enable_hmp=1
sched_enable_power_aware=1
service_locator.enable=1
swiotlb=1
firmware_class.path=/vendor/firmware_mnt/image
loop.max_part=7
buildvariant=userdebug
@@ -2,15 +2,15 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-bq-paella-downstream
pkgdesc="BQ Aquaris X5 (Downstream)"
pkgver=4
pkgrel=0
pkgver=2
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="armv7"
options="!check !archcheck"
depends="postmarketos-base linux-bq-paella-downstream mkbootimg msm-fb-refresher"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
build() {
@@ -28,7 +28,4 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="
b27ff683c57ee055aa076defb268dc2a49f186dbaa2f5c023803402a9e5a2d82a8c8e2c83dbdd63f990cac2b01a146ef07491d050772bfef9d3ec0e37fed8f80 deviceinfo
7d218a308a421869faf6017a09cb9ed0a5fa56fb813c8ce582b6b85f4aaf5e1104761c86fdd7afa4ef0717c17bd18e2f9037661887bcac069af4d43431d8d129 kernel-cmdline.conf
"
sha512sums="e872f7f78d9add160fc962dc6053a490edce1cda8c306e47b9e90098640af5e83556e138242abfc76757cd913bf4c56d9c3857533fcdb780a1578e641ecf015e deviceinfo"
@@ -10,6 +10,7 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
@@ -17,6 +18,7 @@ deviceinfo_dev_touchscreen="/dev/input/event9"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk androidboot.bqdevice=picmt buildvariant=user"
deviceinfo_generate_bootimg="true"
deviceinfo_flash_offset_base="0x80000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,10 +0,0 @@
console=ttyHSL0,115200,n8
androidboot.console=ttyHSL0
androidboot.hardware=qcom
msm_rtb.filter=0x237
ehci-hcd.park=3
androidboot.bootdevice=7824900.sdhci
lpm_levels.sleep_disabled=1
earlyprintk
androidboot.bqdevice=picmt
buildvariant=user
+3 -4
View File
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-bq-piccolo
pkgdesc="BQ Aquaris M5"
pkgver=10
pkgver=9
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -11,7 +11,7 @@ options="!check !archcheck"
depends="postmarketos-base mkbootimg linux-postmarketos-qcom-msm8916
soc-qcom-msm8939 soc-qcom-msm8916-rproc"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf modules-initfs"
source="deviceinfo modules-initfs"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
build() {
@@ -30,7 +30,6 @@ nonfree_firmware() {
}
sha512sums="
3a04cb52841a214d58bba6cc639de636bfbad3c376608e94063e45cf6659031ef3e1f303e5553ea19d2062de41eea91240ece462f662ee8b31534ba4ac80a95a deviceinfo
37e1e5f8839b624ab3eb850a24ed4daeb61a651257a1fb593f49cb869323e5d1b339c831a18eb26a9d7bd0a618ea9eb2bb9bf3882133af5f2606a878e6d39c67 kernel-cmdline.conf
c5a40a6e8ccc6f079b558b47943454f1b8dacc71e32e027f3e32b6d8576a55a23586aecd90e33dc05799030a6a4be2b7e3ec79c7e14d6ea78432c5cc885df904 deviceinfo
d7ba0b86dc573d0d57591399ec71c76169730b169546d1692910c3e04913100f8bfa534100dab8d5ad302d2a539fb64b040a6fb26979f41c8e7b76b596427afd modules-initfs
"
@@ -20,6 +20,7 @@ deviceinfo_getty="ttyMSM0;115200"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="earlycon console=ttyMSM0,115200"
deviceinfo_generate_bootimg="true"
deviceinfo_generate_extlinux_config="true"
deviceinfo_flash_offset_base="0x80000000"
@@ -1,2 +0,0 @@
earlycon
console=ttyMSM0,115200
+3 -5
View File
@@ -1,10 +1,10 @@
# Archived: Kernel doesn't build anymore
#
# Maintainer: Achill Gilgenast <achill@achill.org>
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Achill Gilgenast <achill@achill.org>"
pkgname=device-bq-tenshi
pkgdesc="BQ Aquaris U Plus"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -18,7 +18,6 @@ depends="
makedepends="devicepkg-dev"
source="
deviceinfo
kernel-cmdline.conf
"
build() {
@@ -30,6 +29,5 @@ package() {
}
sha512sums="
0b163bb1df42ddc914a36512aeb44ad7cb0bad6933a27ca801c501bfedef9773d4175ab443bb632e787d6658032f82e039e82b5b609e9eed4125afd21a31ee83 deviceinfo
cb07af75b15e2394d94df459d26b399371f18d24489763855388b1155dce4f6d17070716d8581fec178cd7848a7caea3431aad56e83b70e9f27287c4bccda2f2 kernel-cmdline.conf
f6132a554b5aa0d6191ecd32e8eb61abc6473a6281b1fedb42c8f6668a9893b1cdbbc2e410cfdac9b629f70c082e6d65d1e99f11a95b35e4889d00f4fb4b1ad2 deviceinfo
"
@@ -11,11 +11,15 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=30 msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlycon=msm_hsl_uart,0x78B0000 buildvariant=user buildvariant=eng"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
deviceinfo_header_version="0"
deviceinfo_flash_offset_base="0x80000000"
@@ -1,11 +0,0 @@
console=ttyHSL0,115200,n8
androidboot.console=ttyHSL0
androidboot.hardware=qcom
user_debug=30
msm_rtb.filter=0x237
ehci-hcd.park=3
androidboot.bootdevice=7824900.sdhci
lpm_levels.sleep_disabled=1
earlycon=msm_hsl_uart,0x78B0000
buildvariant=user
buildvariant=eng
+2 -2
View File
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-bq-vegetahd
pkgdesc="BQ Aquaris E5 HD"
pkgver=4
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -30,5 +30,5 @@ package() {
}
sha512sums="
9f4b5430cc9c92e23531777f64e087a9d7025ed8973b3a001cf5d1adabaacef4481b2978c1cee5acb17528b688bc6da4891c8dc1cf039724d321125cf6b00f57 deviceinfo
c746b4547c89e1359c5c4da933db049e9ec766081f08b73f6ef4b1942ae670ee4ae8abf38c15756ade22602575543a73738a780fcfb0e178cf7dba5ba4e08896 deviceinfo
"
@@ -11,6 +11,7 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1280"
deviceinfo_screen_height="720"
@@ -18,8 +19,10 @@ deviceinfo_screen_height="720"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_label_kernel="KERNEL"
deviceinfo_bootimg_mtk_label_ramdisk="ROOTFS"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
deviceinfo_header_version="0"
deviceinfo_flash_offset_base="0x80000000"
@@ -1,9 +1,9 @@
# Archived: Downstream port, only for testing. Use mainline port!
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Luca Weiss <luca@lucaweiss.eu>"
# Maintainer: Luca Weiss <luca@lucaweiss.eu>
pkgname=device-fairphone-fp2-downstream
pkgdesc="Fairphone 2 (Downstream)"
pkgver=3
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -25,7 +25,6 @@ depends="
makedepends="devicepkg-dev"
source="
deviceinfo
kernel-cmdline.conf
FP2.conf
hifi
"
@@ -43,8 +42,7 @@ package() {
}
sha512sums="
45103f8387940b8703c7fa2a2f340718aed9cd32335a13ef4fbae45ba5c357ab76ea9c15ea0d9000dc8bd83997588b93c128c8f2f2ddd712f786253a12ded271 deviceinfo
09008fec33cc8c692d4e5fca1f2f4635985ad9b1d92085df3e15f2ee2555c8f7b78615298f9935cee03e3ba598a5326baf890333fa661f5b1833b4fb2d1a4328 kernel-cmdline.conf
4607ef7ae4ec302a4ac231fc13e230b976b649506d7bdfd642a5f60f6a4ee5510b7cfdacbaa1ba1c51cc0b2a272d6811e6e23e95fbc4ceba24bc1907a75f24fd deviceinfo
55360b1ba4ddadea341c9edb13c32ba5f19aabf75ab28602f30cfb79b9df8834f115ef979c70569f23ec1293b1fcd408baf320d87803293ce7106bdc73a26c9f FP2.conf
b834461c6866bb0c473dd089dd5da641dd42a00f610aad6503117aa50fe6e200db9ad0a264bb609f12350d59faee1f772907bacd75439f702ea7d52f6f85e2b1 hifi
"
@@ -10,6 +10,7 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1080"
deviceinfo_screen_height="1920"
@@ -17,6 +18,7 @@ deviceinfo_getty="ttyHSL0;115200"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3b7 ehci-hcd.park=3 androidboot.bootdevice=msm_sdcc.1"
deviceinfo_generate_bootimg="true"
deviceinfo_generate_extlinux_config="true"
deviceinfo_bootimg_qcdt="true"
@@ -1,6 +0,0 @@
console=ttyHSL0,115200,n8
androidboot.hardware=qcom
user_debug=31
msm_rtb.filter=0x3b7
ehci-hcd.park=3
androidboot.bootdevice=msm_sdcc.1
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-google-crosshatch-downstream
pkgdesc="Google Pixel 3 XL (Downstream)"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -14,7 +14,7 @@ depends="
postmarketos-base
"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -25,6 +25,5 @@ package() {
}
sha512sums="
b14243e03fb9fef39d937e5a39e91ab3bdc4feac8eaf37478cd070a046d3da006d4b8c3e4c609af6650efb25a050f45d389b9aed877ce7df43526808a13093c2 deviceinfo
c2762af3b8268599d2edf37f1dca6284e85e7fd6222a701c7699b9baedb3312bad766100a6bafcd2b2660f04241429b19d5f641f2b0a3915dd4cb079d52b0680 kernel-cmdline.conf
3f0f9410733e7646aec1efb19afd4240139feb19091977bb80d3d98c72747e067557e82475f6697bf324cb87aba543b4a54beb1375e5899055dd1a0f9f664e3e deviceinfo
"
@@ -10,11 +10,14 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="1440"
deviceinfo_screen_height="2960"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 printk.devkmsg=on msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 cgroup.memory=nokmem lpm_levels.sleep_disabled=1 usbcore.autosuspend=7 buildvariant=user"
deviceinfo_generate_bootimg="true"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,9 +0,0 @@
console=ttyMSM0,115200n8
printk.devkmsg=on
msm_rtb.filter=0x237
ehci-hcd.park=3
service_locator.enable=1
cgroup.memory=nokmem
lpm_levels.sleep_disabled=1
usbcore.autosuspend=7
buildvariant=user
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-hisense-m470bsa
pkgdesc="Hisense Sero 7 Pro"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -10,7 +10,7 @@ arch="armv7"
options="!check !archcheck"
depends="postmarketos-base linux-hisense-m470bsa mkbootimg"
makedepends="devicepkg-dev"
source="deviceinfo kernel-cmdline.conf modules-load.conf pointercal"
source="deviceinfo modules-load.conf pointercal"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
@@ -31,8 +31,7 @@ nonfree_firmware() {
}
sha512sums="
184e54982c641f3454a575b6ec37ac2388fffec93c69b8e8fbc4e43c221927b7c80521dbfad83c4740916c83c8d7e3f37c60de5164a869bd03c9f43d4ebc058f deviceinfo
c2ddf5b681d5f26cf9887f83d2202ff1f1ab415479d5d627966759ba19376a6d368e3fce2ebae02d2cbcf7abf06155ce774643cb0c6dd3b7af3a5748ea36ae8f kernel-cmdline.conf
c876dc3a98fb8d837237e6a171679a8c6925ec612bb92bd682a61505a2860a75c7efc051221724349dee4f906d14a7dd6ce64f0ad3a81bc1c68b5f9c22c6a37c deviceinfo
6a53747e22b530dcd52ca523017edf422b36bcd6616d7b0df0ba23f50de0f91dff63913ec6aab5051eebc131879c235cfb724aacefc90a10b94a1790985144ec modules-load.conf
8fcb7330a660995bb1aabf3fd2f3a3536fed79e9369bda115874151e84651839c59d134ac3ca0919eff0770ac51c934b252e7d544a26c076614f7f1d10bfd016 pointercal
"
@@ -10,15 +10,20 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="800"
deviceinfo_screen_height="1280"
deviceinfo_framebuffer_landscape="false"
deviceinfo_dev_touchscreen="/dev/input/event0"
deviceinfo_dev_touchscreen_calibration="/etc/pointercal"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="androidboot.selinux=enforcing"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
@@ -1 +0,0 @@
androidboot.selinux=enforcing
+2 -2
View File
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-htc-a5ul
pkgdesc="HTC Desire 816"
pkgver=2
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -20,6 +20,6 @@ package() {
devicepkg_package $startdir $pkgname
}
sha512sums="
6c65eed2a3679a1d016b3ed452c499efc53294fb3b7cc67755849bf31467154ba4e8d453281daac3ea09b54324f91e8379d57a6b138114a7e6e6c03b98903a08 deviceinfo
fbd5b895aada671e8c83a2578e16523e60f8697bfd82411b86886035f53d077ba73bc516503e56a3a2f529462f36e40f4d8355a711d8f311e11d1ba4781fa1e3 deviceinfo
765abaad5fda0dfda5e62e1e48414d3eea822198f39d0792171a04d73f86f6273a6e562afab430cbfcdd084412568a0ad03d012e9c40c5564f5cd1b9c0f181eb initfs-hook.sh
"
@@ -10,6 +10,7 @@ deviceinfo_arch="armhf"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
+3 -3
View File
@@ -1,8 +1,8 @@
# Archived: Kernel does not build anymore
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-htc-bravo
pkgver=2
pkgrel=0
pkgver=1
pkgrel=25
pkgdesc="HTC Desire"
url="https://postmarketos.org"
arch="armhf"
@@ -30,7 +30,7 @@ package() {
}
sha512sums="
f0cb0ced4d76dbe3a60e9062cf0e78cb5b936287c4078869c47fcfcc2980e7449e07c3c23e25fd6d7b992adec5bf57c1e46e02f0a48740a9aba814b50e784528 deviceinfo
310f4dfcc04c240d99f8ec39ba2d37a7dcc64e2c7354dac506519de7e8a58efc549d017027a301f272e6b24cb05be983bee4a6eb17f3524da829f6120fca1da3 deviceinfo
3ce2d134aa59677e25a160b5985c552fbf048b237169bbeb85e2b8824f734627064b51c097036db10eee0254064d45d804d17372dffcd1ba246938968fe1e225 initfs-hook.sh
f0f69ab3b5b3fed11ec5049f37c71c4e9dcf87dc1f238199a3917dd61957d46783a8798d63d400cc5d3983987e750e3fec6d7117561ad5005f28131ae4821d66 90-android-touch-dev.rules
d3de411b31de4bf4336dfac530e6af3392620ef6276ad143ebe0e417d543bfc7f5c9fcab8dab9342798e2c03281275c97e25bd01e97c350a2596f52795a37cef pointercal
@@ -12,6 +12,7 @@ deviceinfo_arch="armhf"
# Device related
deviceinfo_chassis="handset"
deviceinfo_keyboard="false"
deviceinfo_screen_width="480"
deviceinfo_screen_height="800"
deviceinfo_dev_touchscreen="/dev/input/event2"
+3 -3
View File
@@ -1,9 +1,9 @@
# Archived: Kernel does not build anymore
# Maintainer: Max Buchholz <2maxax2@gmx.de>
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Max Buchholz <2maxax2@gmx.de>"
pkgname=device-htc-enrc2b
pkgdesc="HTC One X+"
pkgver=3
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -23,5 +23,5 @@ package() {
sha512sums="
01a9257c552cd6dfd49e3e05fa2e09529e0a0b3ba0d73583e7d4778ac71768bbbcdd1e8f843b08889aa3a4488141ad5219fe3df14f81a2c68110902aac0be147 deviceinfo
1b407793e79ead46239e1396a8702230bfc296c6811171f8924caa2009e82096e241c1413e4690a78c83c26fabb792615a6d3b473725dd896a558d3294725bc8 deviceinfo
"
@@ -10,12 +10,17 @@ deviceinfo_chassis="handset"
deviceinfo_arch="armv7"
# Device related
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1280"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-htc-flounder-downstream
pkgdesc="Google Nexus 9"
pkgver=4
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="gpl-v3"
@@ -11,7 +11,7 @@ options="!check !archcheck"
depends="postmarketos-base linux-htc-flounder-downstream mkbootimg"
makedepends="devicepkg-dev"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
source="deviceinfo kernel-cmdline.conf"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
@@ -26,6 +26,5 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="
fc86b19b073ddd6c24c24f45a87a1cef653db4f30eb03e13505b299ef55ae379572f68849fcab84b0eed9a060f4c1d8cab6056ac5fe0aaad697d505dc4226017 deviceinfo
1cf6aa0cadb5032ed15ae0f0bbf4ff5d8848e01e10b87e803db82efa3a86edf0a97e01bef376178fc3414791a88a8a0dbde823aa515937edfe762ad375266eea kernel-cmdline.conf
a1912ffe196fd8677366ac9e891a06dab2deb324dc33c6b588c32565e90b6463c01b021fa8de3704668860c5b2b224e00552e443becf3b8e3efda230cccc9688 deviceinfo
"
@@ -10,13 +10,18 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="false"
deviceinfo_screen_width="2048"
deviceinfo_screen_height="1536"
deviceinfo_dev_touchscreen="/dev/input/event2"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="no_console_suspend=1 tegra_wdt.enable_on_probe=1 tegra_wdt.heartbeat=120 androidboot.hardware=flounder androidboot.selinux=permissive selinux=0"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
Loaded 100 of 3264 files, more files were not shown because too many files have changed in this diff. Show more