Compare commits

..
3 Commits
2586 changed files with 29303 additions and 291223 deletions

No files matched your search

+1 -1
View File
@@ -11,7 +11,7 @@
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/main
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/master
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
+9 -6
View File
@@ -1,4 +1,4 @@
image: registry.alpinelinux.org/img/alpine:3.23
image: registry.alpinelinux.org/img/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 08c304c8655e98d3e1219f193fbec223e58747a1
include:
- project: *ci-tron-template-project
@@ -72,7 +72,7 @@ build:
# boot. This will not work if your device uses 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
@@ -82,13 +82,13 @@ build:
# 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 kernel variants in
# different jobs, but hide them behind a single job name so as not to pollute
# the pipeline.
parallel:
@@ -112,8 +112,10 @@ prepare-{{ device.name }}:
.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:
@@ -133,6 +135,7 @@ prepare-{{ device.name }}:
{%- endif %}
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
@@ -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
@@ -17,4 +17,4 @@ if [ "$(id -u)" = 0 ]; then
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
.ci/lib/check_changed_versions.py
.ci/lib/check_changed_aports_versions.py
+1 -1
View File
@@ -6,7 +6,7 @@
if [ "$(id -u)" = 0 ]; then
set -x
apk add git python3
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/main
apk add dint --allow-untrusted --repository=https://mirror.postmarketos.org/postmarketos/master
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
+1 -33
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
@@ -110,36 +110,4 @@ if grep -qr '/etc/modprobe.d' --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"
+1 -1
View File
@@ -13,4 +13,4 @@ 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")
+1
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
-1
View File
@@ -1,7 +1,6 @@
#!/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
@@ -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
@@ -24,7 +25,7 @@ def get_package_contents(package, revision, check=True):
if not check:
stderr = subprocess.DEVNULL
# Run something like "git show upstream/main:main/hello-world/APKBUILD"
# Run something like "git show upstream/master:main/hello-world/APKBUILD"
pmaports_dir = common.get_pmaports_dir()
pattern = pmaports_dir + "/**/" + package + "/APKBUILD"
path = glob.glob(pattern, recursive=True)[0][len(pmaports_dir + "/"):]
@@ -137,7 +138,7 @@ def check_versions(packages):
pkgver = head.rpartition('-r')[0]
if package.startswith('device-') and not pkgver.isdigit():
print(f" - {package}: invalid pkgver \"{pkgver}\""
"See: https://docs.postmarketos.org/pmaports/main/packaging-guidelines.html#package-versioning-pkgver-pkgrel")
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Additional checks for device packages
@@ -145,11 +146,27 @@ def check_versions(packages):
head_parsed = get_package_contents(package, "HEAD", False)
upstream_parsed = get_package_contents(package, commit, False)
# Check that pkgrel was reset to 0 when pkgver was changed
if head_parsed["pkgver"] != upstream_parsed["pkgver"] and head_parsed["pkgrel"] != "0":
print(f" - {package}: pkgrel should be 0 when pkgver changes."
"See: https://docs.postmarketos.org/pmaports/main/packaging-guidelines.html#package-versioning-pkgver-pkgrel")
error = True
# checksums did not change
if head_parsed["sha512sums"] == upstream_parsed["sha512sums"]:
# Check that pkgver did not change
if head_parsed["pkgver"] != upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should not change when package source checksums did not change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# We do not check for a bumped pkgrel, because not everything
# needs it, e.g: pmb_recommends
# checksums changed
else:
# Check that pkgrel was reset to 0
if head_parsed["pkgrel"] != "0":
print(f" - {package}: pkgrel should be 0 when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Check that pkgver was changed
if head_parsed["pkgver"] == upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should change when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Compare head and upstream versions
result = pmb.parse.version.compare(head, upstream)
@@ -166,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
@@ -175,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]"):
File renamed without changes.
+2 -2
View File
@@ -90,7 +90,7 @@ def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--booting", help="devices must be in the upper table,"
" being in the 'not booting' table below is not"
" enough (all devices in pmaports main and stable"
" enough (all devices in pmaports master and stable"
" branches and should be in the upper table)",
action="store_true")
parser.add_argument("--path", help="instead of downloading the devices"
@@ -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]
+7 -14
View File
@@ -48,7 +48,7 @@ def run_pmbootstrap(parameters):
@cache
def get_upstream_branch():
""" Use pmaports.cfg from current branch (e.g. "v20.05_fix-ci") and
channels.cfg from main to retrieve the upstream branch.
channels.cfg from master to retrieve the upstream branch.
:returns: branch name, e.g. "v20.05" """
@@ -65,7 +65,7 @@ def get_upstream_branch():
# Get branch_pmaports (e.g. "v20.05") from channels.cfg
# https://postmarketos.org/channels.cfg
channels_cfg_str = run_git(["show", "upstream/main:channels.cfg"])
channels_cfg_str = run_git(["show", "upstream/master:channels.cfg"])
channels_cfg = configparser.ConfigParser()
channels_cfg.read_string(channels_cfg_str)
assert channel in channels_cfg, \
@@ -108,7 +108,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 +133,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 +175,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 -10
View File
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import common
import glob
import os.path
import subprocess
import sys
@@ -12,15 +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)
if "deviceinfo_schema.toml" in common.get_changed_files():
print("deviceinfo_schema.toml changed -> checking all deviceinfo files")
pmaports_dir = common.get_pmaports_dir()
deviceinfo_files = set(glob.glob(pmaports_dir + "/device/*/*/deviceinfo"))
else:
# 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)
+19 -14
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"}
@@ -125,7 +128,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
@@ -145,12 +148,13 @@ class ArchTagSet(set):
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 +164,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 +182,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 +208,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,
@@ -219,5 +224,5 @@ if __name__ == "__main__":
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"]
+2 -2
View File
@@ -3,7 +3,7 @@
# 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
@@ -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" "$@"
+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')
+1 -4
View File
@@ -16,10 +16,6 @@ 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-duranium/rootfs-usr-bin-duranium-set-channel
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-first-boot
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-mount-subpartitions
./main/postmarketos-duranium/rootfs-usr-libexec-duranium-usb-gadget-setup
./main/postmarketos-installkernel/installkernel-pmos
./main/postmarketos-initramfs/init.sh
./main/postmarketos-initramfs/init_functions.sh
@@ -42,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
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)
+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
@@ -14,7 +14,7 @@ def test_aports_ui():
"""
pmaports_cfg = pmb.config.pmaports.read_config()
for arch in pmaports_cfg["supported_arches"].split(","):
for path in common.get_changed_files():
for path in common.get_changed_files(removed=False):
path = Path(path)
if path.name != "APKBUILD":
+2 -21
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:
@@ -128,7 +113,6 @@ dint:
- .ci/**/*
- .gitlab-ci.yml
- device/*/device-*/deviceinfo
- deviceinfo_schema.toml
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/dint.sh
@@ -194,7 +178,7 @@ generate-build-jobs:
# 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:
@@ -224,8 +208,6 @@ build-docs:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- .ci/build-docs.sh
- deviceinfo_schema.toml
- docs/**
deploy-docs:
@@ -236,7 +218,6 @@ 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
+2 -1
View File
@@ -26,8 +26,9 @@
<!--
Replace space inside `[ ]` with `x` to fill the checkbox
-->
* [ ] edge (`main` branch)
* [ ] edge (`master` branch)
* [ ] `v25.12`
* [ ] `v25.06` (supported until 2026-01-23)
* [ ] 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
+1 -3
View File
@@ -5,12 +5,10 @@ This repository contains the APKBUILD files for postmarketOS-specific packages,
There are many more packages defined in the [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/) on which these packages depend.
Helpful resources:
* [Issues](https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items)
* [How to create a package](https://wiki.postmarketos.org/wiki/Create_a_package)
* [APKBUILD reference](https://wiki.alpinelinux.org/wiki/APKBUILD_Reference)
* [pmaports commit style](./COMMITSTYLE.md)
* [Approval rules](docs/approval-rules.md)
* [Review and merging guidelines](./docs/modules/ROOT/pages/merging-rules.adoc)
* [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/)
* [Alpine Linux package search](https://pkgs.alpinelinux.org/packages)
* [postmarketOS package search](https://pkgs.postmarketos.org/packages)
+2 -2
View File
@@ -4,7 +4,7 @@ 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
@@ -15,7 +15,7 @@ branch_aports=3.23-stable
mirrordir_alpine=v3.23
[v25.06]
description=Old release (unsupported)
description=Old release (supported until 2026-01-23)
branch_pmaports=v25.06
branch_aports=3.22-stable
mirrordir_alpine=v3.22
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-aarch64
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=aarch64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-aarch64
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armhf
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armhf
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-armhf
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armv7
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armv7
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-armv7
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armv7
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for armv7"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-loongarch64
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=loongarch64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-loongarch64
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-loongarch64
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for loongarch64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-ppc64le
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=ppc64le
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-ppc64le
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-ppc64le
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for ppc64le"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-riscv64
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=riscv64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-riscv64
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-riscv64
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for riscv64"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-x86
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=x86
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-x86
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for x86"
url="https://gcc.gnu.org"
arch="x86_64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
@@ -1,31 +0,0 @@
Provide struct_sock_fprog_sz on Linux, rather than on Linux+glibc.
With `#include <linux/filter.h>` `struct sock_fprog` is available when
linux headers are available. It seems that glibc is just including that header
as an implementation detail, while musl does not.
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2025-08-08 08:51:45.621434001 +0200
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2026-02-25 20:29:28.519492722 +0100
@@ -74,6 +74,7 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
+#include <linux/filter.h>
#if SANITIZER_ANDROID
#include <linux/fs.h>
#endif
@@ -507,6 +508,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
unsigned struct_synth_info_sz = sizeof(struct synth_info);
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
#endif // SANITIZER_LINUX
#if SANITIZER_GLIBC
@@ -534,7 +536,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
- unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
# endif // SANITIZER_GLIBC
# if !SANITIZER_ANDROID && !SANITIZER_APPLE
+2 -4
View File
@@ -1,6 +1,7 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-x86_64
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=x86_64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
LANG_D=false
@@ -22,7 +23,6 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
maintainer="Oliver Smith <ollieparanoid@postmarketos.org>"
pkgname=gcc-x86_64
pkgver=15.2.0
# i.e. 13.2.1, must match gcc/BASE-VER
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86_64
pkgrel=3
pkgrel=2
pkgdesc="Stage2 cross-compiler for x86_64"
url="https://gcc.gnu.org"
arch="aarch64"
@@ -279,7 +279,6 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
0042-libsanitizer-struct_sock_fprog_sz.patch
0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
@@ -797,7 +796,6 @@ eecc77e2a9cf956fd752693ad7f8ff8253a7bb557e00564bb488bbc1deac895e63104cc1182a0bdd
9f4c3fa0d17cfcd72626bdbaf51992ff3018f878d673ab19b9056047ee2630b581e5a5a4d4857444f08ba9bcdb0fc94f90dcda6180816e39690d1652843f0d8a 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
d166475e340c91bbb24cf257240aab37129b04f2609e5ce323b530ab83853a4c34c525e0072c15732717f1681db07e6b3b0a4d268720c31f460435ccf4c99b7f 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
c717764ef52c0226a23cbf434654cdefa6cbf38ec625648575d9143c5513b16d8914c25015db743033b8a46ac5b2c33ab75e1b67076128d67bb1319e5a83dd85 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
5dd452a80c496a587a8826b04a4917045e4028631606e85cabd8e87e0460642d188a2156c4e0cf37a5d88e66ebd08a08393d48a6065045178c69eaba2edd063e 0042-libsanitizer-struct_sock_fprog_sz.patch
c3b64b05332bd4dd7fad3fff3cacd4f9de0512943f1548c6f1205fab1a74c83622024f30471805f57d625198cc32f647b32172914528fd5605d0bf61cb0c3ff1 0001-tree-object-size.cc-Fix-assert-constant-offset-in-ch.patch
e91873055550eba051d9297bec5c6acd27abb9ee6ce8911cdd04b5faf37d77b6b2a7607ec588d2863f13f14b48af9398cb4ac42443d8567bfa5037dc6bd50404 0001-LoongArch-Only-allow-valid-binary-op-when-optimize-c.patch
"
+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
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-aarch64
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-aarch64:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
03134d5e7b840db09a10f1f34254840dd86d69f960f3eb38a0944df06d897cc603a1a82af380f0ee975a10708c51430d77618debc8ae500d1bbef705fd77681b musl-1.2.6-r2-aarch64-edge.apk
d95f9907bd7c0e818ffde40481bf0a8c23ca038e83f260f4ecb583fe164a581c978f76df3623be312400d75e23e2ca4b0742d59855cd908a9d411829ac017de7 musl-dev-1.2.6-r2-aarch64-edge.apk
dce3b131910f7596f8f1d7c2662805b619a151313c7822cf56a7529b6a8b3baf708bfab649be42d920b173dbd7caf33c667ab120779728b9c271439e1190d4ce musl-1.2.5-r21-aarch64-edge.apk
e635424ca037e3d949f793de68218e43fc25f0633aa27d1c330d96d97a8473643683f37bd545022bcb25c8298b8ed54288cf48ccc9633b6dda849cfa187d1019 musl-dev-1.2.5-r21-aarch64-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-armhf
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-armhf:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
0f2a24ee0f23612adfb578ccda1b9dccd24a37f78c90d1ba655cdcf0e094dd95f4ec34288c87f98804714cb8fc0865bf0fe079c7a1902b39c4d992bb46e10e64 musl-1.2.6-r2-armhf-edge.apk
8b5175848776267bee95be058595e538eaa06cb63522d519b6760920faac40c16fa59a57a6be545c121f1e4d1c7cd2e4b2b8fdded57cbdb7e8585b08ca349d86 musl-dev-1.2.6-r2-armhf-edge.apk
b5411d6b4e03c1c8767906733d091e3438b5ca61959395e5de969a311c131d460052d6ad0c776740bce51a57ea7956ceb11e76355ddc9cc7b045804dfea9927e musl-1.2.5-r21-armhf-edge.apk
cb52d3a273cfe102f1c782412d0fa5cb24d735527c99e6702aa456d04655bb09f2939c8c64db86c7e256579cc4179c5fbf1f56b6461596a5e298494c4464c35d musl-dev-1.2.5-r21-armhf-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-armv7
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-armv7:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
a5847eb6b71a52d8b348e8ef09953bf9df858f3d3a141a75bba8db7525a83b3143e7ead4b00bdddffad0a21af6a9c01e4d4c8bb27aa8d69ce13dceb58eb43309 musl-1.2.6-r2-armv7-edge.apk
01ed9d094bee237e8794678572769ec456709e9f58511be2e301f495518ab82f86ceedc2ad03727fe43925c5e3a5a0f18a1d7b244f57107c3f7593edd14e84c4 musl-dev-1.2.6-r2-armv7-edge.apk
440fa575b03ca4253d9d25fbe5a59ae3164ba945c012d12224ef829786afa14c654a2ff3868fedbd200bbbadd5789539f6d88def7831ca207e63a1d753021e5e musl-1.2.5-r21-armv7-edge.apk
3b7ce82a7ab3c02cb302614898ca68356ed18512f37f3632b1ef8df44b242b40b528c60c42cc19cb6b31c1e197019bf712713eb3b7998b4efbf96dc2aac29723 musl-dev-1.2.5-r21-armv7-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-loongarch64
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-loongarch64:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
112265a3a4c20cbc03a67fe23c69338332e127d51d3a4ad137547fcc8554a8878425f74f46765a032ba1c36c2782a1f3dcf3102e7bbb3c93a671fb85eba4e000 musl-1.2.6-r2-loongarch64-edge.apk
45a0953693e6eaa3434e799bc79608dccedfb711cf816ac7dc1bb7ab15ed4a934dfbd0b2ad0b286ac8b8b00f901b99c8e4b06b9f7e50fb69e2d96cc83bbc0304 musl-dev-1.2.6-r2-loongarch64-edge.apk
ec3cafd077ad5d07aadd75fdefadb6bcb625979eec47f2ac4ac675471c4d57c956c563bbcb1a455fe30b72212047cff8a1d7f4e4d143ad681a1f3c71c98614fd musl-1.2.5-r21-loongarch64-edge.apk
6bfff1beebaa45f409e414e3213c1260a98fc6a1345e11f41d23dcc1a7d37380ae21c538e28e72ab1c4ce5370f3e776dad6e827f741358ce85888bf5ab4e027c musl-dev-1.2.5-r21-loongarch64-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-ppc64le
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-ppc64le:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
fa1484bf04b70b27bf6540d8b3f506a334623a160c7d86dd5c58f418dd751eb641c35a0166b485c8ba1bba57f4e929b277352eae5e55cd740a0b73e741f72cc7 musl-1.2.6-r2-ppc64le-edge.apk
4ea8db19500bcc05e31c1e9c37e43742b150e9218ba585f98b4cde918abd1896431797921f19ff6a82f42d2db245ccfe368ab552c01637d17f19a8ff33db0396 musl-dev-1.2.6-r2-ppc64le-edge.apk
0e2720a11cd9c4417c96301d71f97dcc65ebe990e0115628aa30fe95debce12db75a716def86b4326074110c5e515f5f6876691c693c72ae211d641a43ba73cf musl-1.2.5-r21-ppc64le-edge.apk
fcea40a1616b49350f90fb1f0ba99ea8e7cf40544044133553ef4d70f24376d489fa5ff85c15aa4550e4283915eb172c14429ef439a51cd1ec7e08f3a231ce04 musl-dev-1.2.5-r21-ppc64le-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-riscv64
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-riscv64:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
3113c288563199b52e9fbb93a34e16eb87bfe4b7e0872ba0349eec1fc532ea8583565f862b82130fcf416fc006ff661afad1bf549e25d688aa6b055287089c39 musl-1.2.6-r2-riscv64-edge.apk
8bf4503998a50581af7965407bd25aa41c2716526e6db7683dfb9cce134d9cf401bdeeafd060fd6e5d83ac52852e745c6eafdd406dd59d8f5eea256445f21a3d musl-dev-1.2.6-r2-riscv64-edge.apk
c3f9b76c99bd9c1426f4f87b1d60405e3b4fc6c93451d08b72338496b4cefae6692ef0b0ab9f09b78317d944289060b38c0a7072737d92b3f75fbb0fd8e81132 musl-1.2.5-r21-riscv64-edge.apk
2b28646a759b54c3b2846499c04df7d9b8195da8892a004cbefb69625bbbb874bbc1748ce3d49738931e1e321ab5d90482b08783d07efe28f55d8d1657d451dd musl-dev-1.2.5-r21-riscv64-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-x86
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="x86_64"
subpackages="musl-dev-x86:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
f731bafa153e7b3ea212cc4e13d5c843227374a13530188131184c32f13907057f66af65ff7889a01f7c2b46bae7087f712b09e97ff879e2ed263ebec37432bf musl-1.2.6-r2-x86-edge.apk
afc7894a31de08bcfa6b28604625ad7e6cf8cd61394d34bd2ed50ea07c9d4e7ad212cb668439f51599ce2c946a326e196ee01503fe196a4a8dce973ae51d57ef musl-dev-1.2.6-r2-x86-edge.apk
6b0da8df450dc4f9b15851a0cdcfc8249f5cc6bedf91ce0d04d6b810b6d2970337345bb8ea83d6b66927be24b88395779b0f660c3511ac2adedbbae76e5c2dc2 musl-1.2.5-r21-x86-edge.apk
771c4002ede113c134bc00586dcafba4004c3860ca715723d680c5d8916d42a0a888094276d24405a8e6a39ff79e4690f0021fff075909398ae3f7379cdb6c25 musl-dev-1.2.5-r21-x86-edge.apk
"
+4 -5
View File
@@ -6,10 +6,9 @@ if [ -z "$(type -t arch_to_hostspec)" ]; then
arch_to_hostspec() { :; }
fi
maintainer=""
pkgname=musl-x86_64
pkgver=1.2.6
pkgrel=2
pkgver=1.2.5
pkgrel=21
arch="aarch64"
subpackages="musl-dev-x86_64:package_dev"
@@ -58,6 +57,6 @@ package_dev() {
}
sha512sums="
5a10449984203c8f1c3f243310cec43aad11023bf83f5e08f9a15771a6c3545e678ab98a57f9f9b9528f4096d2efa1cda5620006eacef3feb459156588f5b44a musl-1.2.6-r2-x86_64-edge.apk
2454ee23df3c3b93aaa366554692a0ab7258b7c9865247c0acde3903ebbe796e4dda982d11f7556b635b3b9cf7cf238628b276f95eabc426d5045c24830c3b2d musl-dev-1.2.6-r2-x86_64-edge.apk
a378f3015c9222161aaa8ffd34038880f923e7a86cb400dac886d1c1adcf691e55798844f8fa6a4ee3ca9ee4d1a1a5d5ea616a550ac0d99933e64a68c2d65332 musl-1.2.5-r21-x86_64-edge.apk
87296e7eb778ba4153c6fb27f596561ea7997ee5aa67346aeee9b42687ccb6a5d45e1c1faa2f13d1742e45f47898d78629db3320f640ef8700b55f710584662a musl-dev-1.2.5-r21-x86_64-edge.apk
"
+2 -2
View File
@@ -2,7 +2,7 @@
maintainer=""
pkgname=systemd-boot-x86
_pkgname=systemd-boot # for monitoring
pkgver=260.1
pkgver=259
pkgrel=0
pkgdesc="systemd's EFI boot manager for x86 EFI on x86_64."
url="https://systemd.io/"
@@ -118,7 +118,7 @@ efistub() {
}
sha512sums="
9f975dce6861853a817a7ceab18a24449a85d1bda6939b3a5173430c02a4d8a9a2b34ebb8cce1c51db9b0ff9078fcc65da7b0f44e3bdcbbe013b9e04bb6f0ff9 systemd-260.1.tar.gz
ef46b13661df43e3cfbeee1bc22f0b1eb902e8ebe39c19868c465efd08b35a199c2a2cd9d8021a6bc4d692fa0c6e0eab3f13eecd6ce24dde81d3945464a25b50 systemd-259.tar.gz
8ecb5e25c0d8b01c406fa3084b0910d517cabbf12894958b4d3d77462cb0924f0a52fe2bf1aa39af29b16fd78fe080a6a99daa18015c6059fb2e52c971d83ba9 0001-meson-disable-libintl-check-if-pam-is-disabled.patch
ad54e2c7e7a21bfa9b5f9e8db1b6af6a6d78a3e5dfe2dafcec77488f6224865ab4d4c8a8c8ee1c54c99d1741361e9fb3a51e5d36bcbc7a1c3fdcc4d0c1672132 cross-x86.meson
"
@@ -9,17 +9,11 @@ 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
@@ -29,6 +23,5 @@ test-{{ device.name }}:
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"
KERNEL_NAME: "vmlinuz"
@@ -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=3
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
118b62d7ad6d9b62f0d63a1749005321fdf73417f95e8d70e761b6755f7c4e0164b2b476c8e1aad93dc42cd4df24384f660e21af6c62a9f8eda4d3e3bd8298e6 deviceinfo
"
@@ -16,7 +16,9 @@ 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_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=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -25,5 +25,5 @@ package() {
}
sha512sums="
4ce458d7aa08ed2b1fc6a11fb39e38e9a323232be9f8f220c31912650297141ed4997f0115b5a3e290e1f57ada5a1e706b8c623b0e48a1f596bed2d5ebd871ba deviceinfo
1b59ddbb22701e1921c58bc8cc1cd6832becd5e37ccac2d0cca08e002e7fdd8921a8cc500e1c9bfdf2b17e7890fd88073f533b41d2b0a4904041277fb5a4197a deviceinfo
"
@@ -11,12 +11,14 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="embedded"
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_flash_pagesize="2048"
deviceinfo_flash_offset_base="0x40000000"
deviceinfo_flash_offset_kernel="0x00008000"
+3 -4
View File
@@ -3,7 +3,7 @@
maintainer="Hadi Charara <hadicharara@ymail.com>"
pkgname=device-amazon-suez
pkgdesc="Amazon Fire HD 10"
pkgver=4
pkgver=2
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
91b9a695bbf1bf322a072041bf02adc5b9d182fd381b27b5847f82d6b55189abec68281952072b7368491fc549e4f557a82db96942fc1d4b7977e256e0f38f83 deviceinfo
"
@@ -16,7 +16,9 @@ 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_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=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -27,5 +27,5 @@ package() {
}
sha512sums="
ad10b6703985c160486d9f3159f77c0f4d1e1d14d2534b2f90934ac3a06affb7839b0f64c6030c4d2d54fb24ec2c8ec88e516d530e8d8e1230ffe0c1992a020f deviceinfo
ff755a83597c073aafbd1c6d0d0671129dd5a14c3133df0c53562e7322c904a3c228f863ddc33da0085b7a786b1d3af9430f2a03b7b38f5275ba3357c2351e8b 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"
@@ -4,7 +4,7 @@
maintainer="Jonas Heinrich <onny@project-insanity.org>"
pkgname=device-apple-iphone7
pkgdesc="Apple iPhone 7"
pkgver=3
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -23,5 +23,5 @@ package() {
}
sha512sums="
1c91367a815f8d9c3cc295af21928175d792607a37704bf99b7af8e73a00a9a91842cb2c98e16b9216962bf946f1947469d7432bac04710cf2397225ead68741 deviceinfo
3c204cecf7a9c6d05eeee38e4be563877affdd957cb7952639747e457206fffb6b3d1637550558a9215c4384ed6e23b1b1649d4e03fc7596b96a0b92a87bdda4 deviceinfo
"
@@ -10,6 +10,7 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_external_storage="false"
deviceinfo_screen_width="750"
deviceinfo_screen_height="1334"
+2 -2
View File
@@ -4,7 +4,7 @@
maintainer="Aster Boese <asterboese@mailbox.org>"
pkgname=device-apple-n61
pkgdesc="Apple iPhone 6"
pkgver=4
pkgver=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -28,6 +28,6 @@ package() {
}
sha512sums="
205d8c2f9b5c9a1378e9fbfa1cf0ba7506c5ff8ba98fb690649f85d9d6ca89f40b474c92091847bf13185750a20cda9092d128010c0d521e88c8bccc13cdb51f deviceinfo
8ea21948631e391c48e0589dbf14c776eb24102771cc7eea994c2bf618ed71f5ef303c29f59be3cd8983b76b392967403435f6c6984ef3f0b5bfc69e5ca0aceb deviceinfo
f4df83d543efb5748743f56fbfeddc6734ad341fb623f796faa74b4f42cadfd9a7b1aea2bd3a6f7aa3f284bcb34c05b2ec2a1704ad6e88b043f92dc0de14a573 modules-initfs
"
@@ -11,6 +11,7 @@ deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_external_storage="false"
deviceinfo_screen_width="750"
deviceinfo_screen_height="1334"
@@ -3,7 +3,7 @@
maintainer="Luca Weiss <luca@lucaweiss.eu>"
pkgname=device-asus-sparrow-downstream
pkgdesc="ASUS ZenWatch 2 (Downstream)"
pkgver=4
pkgver=2
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
64ad025793dbaca01bde6eefc446ab4f1f5a21b300cce8daba1851926c08f1bbac668fffebe8e5c492499205bae15b410bdc2741f366039bf20054f12c98f0bb deviceinfo
"
@@ -11,13 +11,16 @@ deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="watch"
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_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=2
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
aacace112d10033fc2a0e1fa5705e2734961a6282833da0277e2fec6662eb4142eb797979b648466d5f1fa31c4d296c3b7f74df473dfbb9927cd3fb34b2491dd deviceinfo
"
@@ -6,6 +6,7 @@ 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
@@ -17,7 +18,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,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-bq-paella-downstream
pkgdesc="BQ Aquaris X5 (Downstream)"
pkgver=4
pkgver=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -10,7 +10,7 @@ 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() {
@@ -29,6 +29,5 @@ nonfree_firmware() {
}
sha512sums="
b27ff683c57ee055aa076defb268dc2a49f186dbaa2f5c023803402a9e5a2d82a8c8e2c83dbdd63f990cac2b01a146ef07491d050772bfef9d3ec0e37fed8f80 deviceinfo
7d218a308a421869faf6017a09cb9ed0a5fa56fb813c8ce582b6b85f4aaf5e1104761c86fdd7afa4ef0717c17bd18e2f9037661887bcac069af4d43431d8d129 kernel-cmdline.conf
2759dceedaca6672489410f092db2b47d451cab7cb7706e942412eb957a1c2861d723a3938c79e1543be01e3d584c62408be9675b9533f5cc49ce50287b2d16f deviceinfo
"
@@ -17,6 +17,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
+2 -4
View File
@@ -4,7 +4,7 @@
maintainer="Achill Gilgenast <achill@achill.org>"
pkgname=device-bq-tenshi
pkgdesc="BQ Aquaris U Plus"
pkgver=4
pkgver=2
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
7e41e1c6de6c8a11b872b393c638b6c0253d7a1ac4dabef551ff8453228b1166bb1c29447a568b0f31ff347e252c17aa6c696bf01b74a0e931e0e81950090e83 deviceinfo
"
@@ -15,7 +15,9 @@ 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_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=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -30,5 +30,5 @@ package() {
}
sha512sums="
9f4b5430cc9c92e23531777f64e087a9d7025ed8973b3a001cf5d1adabaacef4481b2978c1cee5acb17528b688bc6da4891c8dc1cf039724d321125cf6b00f57 deviceinfo
c6eb6140cbfbedfe9cde731329502db7c17366664dbc7813c5e7fc46a5914118d1dfec750ea27e435946d056077f2caf586a77798951caec565af8cd29edc6c6 deviceinfo
"
@@ -18,6 +18,7 @@ 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_flash_pagesize="2048"
@@ -0,0 +1,145 @@
# Archived: linux-radxa-dev packages x86_64 binaries in aarch64 package which makes akms part of this device fail when built on aarch64
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Antoine Martin (ayakael) <dev@ayakael.net>"
pkgname=device-clockworkpi-uconsole-radxa-cm5
pkgdesc="Clockwork Tech ClockworkPi uConsole Radxa CM5"
pkgver=5
_commit=2e8040ec92f85e3d43caf3e44557cb0659db4531
_dtso_commit=c2204834e1d7d0acfd64e1b7874d432bc142f1a4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!archcheck"
depends="
linux-radxa
postmarketos-base
u-boot-radxa-cm5
"
makedepends="
devicepkg-dev
clang
dtc
linux-radxa
linux-radxa-dev
"
subpackages="
$pkgname-openrc
$pkgname-x11
$pkgname-akms
"
source="
clockworkradxa-linux-$_commit.tar.gz::https://github.com/ak-rex/ClockworkRadxa-linux/archive/$_commit.tar.gz
radxa-cm5-uconsole-$_dtso_commit.tar.gz::https://github.com/dev-null2019/radxa-cm5-uconsole/archive/$_dtso_commit.tar.gz
deviceinfo
modules-initfs
modules-load.conf
modprobe.conf
xorg.conf
driver-makefile.in
driver-akmbuild.in
"
builddir="$srcdir"/ClockworkRadxa-linux-$_commit
# Location of out-of-tree drivers to be built using AKMS
_drivers="
drivers/pinctrl/pinctrl-axp209.c
drivers/power/supply/axp20x_usb_power.c
drivers/iio/adc/axp20x_adc.c
drivers/iio/adc/ti-adc081c.c
drivers/mfd/axp20x-i2c.c
drivers/mfd/axp20x.c
drivers/regulator/axp20x-regulator.c
drivers/input/misc/axp20x-pek.c
drivers/power/supply/axp20x_ac_power.c
drivers/power/supply/axp20x_battery.c
drivers/video/backlight/ocp8178_bl.c
drivers/gpu/drm/panel/panel-cwu50.c
"
build() {
devicepkg_build $startdir $pkgname
local _modules=
local _objects=
local _file=
# setup akms folder
# this also generates information to complete AKMBUILD and Makefile
mkdir -p "$builddir"/akms
for driver in $_drivers; do
_file=${driver##*\/}
cp "$builddir"/$driver "$builddir"/akms/$_file
_modules="$_modules ${_file/.c/.ko}"
_objects="$_objects ${_file/.c/.o}"
done
sed -e "s/%%MODVER%%/$pkgver/" -e "s/%%DRIVER_MOD%%/$_modules/" "$srcdir"/driver-akmbuild.in > "$builddir"/akms/AKMBUILD
sed "s/%%DRIVER_OBJ%%/$_objects/" "$srcdir"/driver-makefile.in > "$builddir"/akms/Makefile
# generate dtbo for uconsole
_kernel_ver=$(find /lib/modules -maxdepth 1 -mindepth 1 | sed 's|.*/||g')
cp -r "$srcdir"/radxa-cm5-uconsole-$_dtso_commit/devicetree_overlays "$builddir"/dtso
echo ">>> Generating dtbo against $_kernel_ver"
for dts in "$builddir"/dtso/*.dts; do
cpp -nostdinc -I "/usr/src/linux-headers-$_kernel_ver/include" -I arch -undef -x assembler-with-cpp $dts $dts.preprocessed
dtc -O dtb -o ${dts/.dts/.dtbo} $dts.preprocessed
done
}
x11() {
install_if="$pkgname xorg-server"
install -Dm644 "$srcdir"/xorg.conf \
"$subpkgdir"/etc/X11/xorg.conf.d/10-monitor.conf
}
package() {
devicepkg_package $startdir $pkgname
# merge dtbos with soc dtb for uconsole
mkdir -p "$pkgdir"/boot/dtbs/rockchip
fdtoverlay -i /boot/dtbs/rockchip/rk3588s-radxa-cm5-rpi-cm4-io.dtb "$builddir"/dtso/*.dtbo -o "$pkgdir"/boot/dtbs/rockchip/rk3588s-radxa-cm5-uconsole.dtb
}
# Test build of drivers against kernel
check() {
_kernel_ver=$(find /lib/modules -maxdepth 1 -mindepth 1 | sed 's|.*/||g')
for ver in $_kernel_ver; do
echo ">>> Testing module build against $ver"
cp -R "$builddir"/akms "$builddir"/akms-$ver
(
cd "$builddir"/akms-$ver
make KVER=$ver
)
done
}
akms() {
pkgdesc="uConsole kernel module (AKMS)"
depends="akms linux-radxa-dev build-base"
install_if="$pkgname=$pkgver-r$pkgrel"
mkdir -p "$subpkgdir"/usr/src
cp -R "$builddir"/akms "$subpkgdir"/usr/src/clockworkpi-radxa
chmod -R u=rwX,go=rX-w "$subpkgdir"/usr/src/clockworkpi-radxa
}
openrc() {
depends=openrc
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir -p "$subpkgdir"
}
sha512sums="
a9c48c3470d5641113e351456d6cfa1e2283e6577cf54eea9a2d49ba4f6269e46cba16039584b34e07c7d8006f6dec112e970148f155f2c3ff0670521568a5a7 clockworkradxa-linux-2e8040ec92f85e3d43caf3e44557cb0659db4531.tar.gz
a15eb74d9db9114022e96ba04542d18350cf6d637c5efa49f4a5a65c33c5fd20a7997095a049a561fb7aac767a299f367489c5a342138a5259cc32ebb6152384 radxa-cm5-uconsole-c2204834e1d7d0acfd64e1b7874d432bc142f1a4.tar.gz
8552698a2bfbfab71e2b00be9397ab2117aba646a5d4afd5a7e8f53a93bb1736ed81c260a6c863130c7f4cd8eb9a56518885ac4de01a6f67afa1b42d501a91a3 deviceinfo
85d573bfd51ac4aa502336452b0384af77b6ec095f5c4760e8f287b8452b3ccb4521051bc01c53fa0856440d52231f535f3f0258d62ad578161ad464344413e9 modules-initfs
642cdb1b4ac02b8c3ab7b72f4eeef615ac4911b42bcd845b54305f0ff64c07b86f4a807a97d395cb6c0cd0a5f5eed15e68d9e4ccb69db8e38fb65c8be4acaeeb modules-load.conf
a5324ed5118168b846d359dc2c8e76ccdc624003d157a28e4c9728ddedd9b52c6deb95af9c3a9d94faf52413f2f830dc45ec6c0093458d27149ef17de5dceef5 modprobe.conf
939cb4ca50e0f54258dd92bdfbf91e6fa7b33b386022d058ba0d4b4e4f6d855cba9f5fffda0652f18c8b9b95d5dbbfc766e0931f0de53841f96d9d8975bf27e7 xorg.conf
51a1fc5ba9336e784fe8dfb97eed8d3f51fd181a9a76c5266e227e1670aa423fdaec04b869795a2abd5afca6d472a1f107f30a0f0efd242ee16c8910773ddcc2 driver-makefile.in
576346f3e5611dcba4fd3a5f5bf97e51febb844ff8006b5e4e8aba429df0c1835f702548d61120439cf0279b56d337f4ab9e2389ae8fa0c024b0a3afd4422b2f driver-akmbuild.in
"
@@ -0,0 +1,27 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="Clockwork Tech ClockworkPi uConsole Radxa CM5"
deviceinfo_manufacturer="Clockwork Tech"
deviceinfo_codename="clockworkpi-uconsole-radxa-cm5"
deviceinfo_year="2023"
deviceinfo_arch="aarch64"
deviceinfo_disable_dhcpd="true"
# Device related
deviceinfo_drm="true"
deviceinfo_chassis="embedded"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1280"
deviceinfo_screen_height="720"
deviceinfo_getty="ttyFIQ0;1500000"
# Bootloader related
deviceinfo_boot_filesystem="fat32"
deviceinfo_dtb="rockchip/rk3588s-radxa-cm5-uconsole"
deviceinfo_kernel_cmdline="console=tty1 console=ttyFIQ0,1500000n8 PMOS_FORCE_PARTITION_RESIZE earlycon consoleblank=0 coherent_pool=2M irqchip.gicv3_pseudo_nmi=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"
deviceinfo_sd_embed_firmware="u-boot/radxa-cm5/rpi-cm4-io/idbloader.img:64,u-boot/radxa-cm5/rpi-cm4-io/u-boot.itb:16384"
deviceinfo_sd_embed_firmware_step_size="512"
deviceinfo_boot_part_start="32768"
deviceinfo_generate_extlinux_config="true"
Loaded 100 of 2586 files, more files were not shown because too many files have changed in this diff. Show more