Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edc10f244f |
No files matched your search
+1
-1
@@ -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
|
||||
|
||||
@@ -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
@@ -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 +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
@@ -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
@@ -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
@@ -0,0 +1 @@
|
||||
../testcases/add_pmbootstrap_to_import_path
|
||||
@@ -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")
|
||||
|
||||
@@ -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,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
|
||||
@@ -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
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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
@@ -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 .
|
||||
@@ -1,2 +0,0 @@
|
||||
[tool.mypy]
|
||||
disable_error_code = ["import-not-found"]
|
||||
+4
-4
@@ -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
@@ -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
@@ -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')
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"] \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -67,7 +67,6 @@ instance/
|
||||
|
||||
# Documentation
|
||||
public
|
||||
docs/deviceinfo-reference.md
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
+4
-24
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
"
|
||||
-34
@@ -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
-5
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,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,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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
Reference in new issue
Block a user