Compare commits

..
Author SHA1 Message Date
Caleb Connolly 5cb1d710e1 DONTMERGE: boot-deploy: feat/multiple-kernels
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-17 05:11:14 +01:00
Caleb Connolly 7cda3728d8 WIP: linux-next: keep old versions on upgrade
Add pre and post-upgrade scripts which keep the old kernel, modules,
dtbs, and release file.

This allows for the kernel package to be upgraded while preserving the
old version, so if the upgrade causes a regression the user can switch
back.

This will need to be heavily refactored, documented and made generic.

Most likely the upgrade scripts will be moved to some -dev package and
the kernel package APKBUILD will simply source a script to create the
pre/post-upgrade scripts.

For this to work, the kernel release directory
(/usr/share/kernel/something/) has to follow the format
<flavour>-<pkgver>-r<pkgrel> since the scripts rely on this to map the
package version to the kernel suffix.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-17 05:07:11 +01:00
Caleb Connolly dd9811a545 postmarketos-mkinitfs: run for each kernel release
Rather than running mkinitfs once (and assume there is only one kernel
version installed) run it for each release.

This depends on https://gitlab.postmarketos.org/postmarketOS/postmarketos-mkinitfs/-/merge_requests/59
as well as
https://gitlab.postmarketos.org/postmarketOS/boot-deploy/-/merge_requests/74

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-17 04:59:40 +01:00
Caleb Connolly 505b29b104 linux-next: use _outdir
Recent changes to the kernels build infrastructure (currently just in
next?) break some unintentional assumptions in pmbootstrap build
--envkernel.

Specifically, that we used to mount the .output directory as the "src"
directory and rely on the fact that the kernel lets you run make from
here. But this doesn't work anymore because the Makefile points to an
absolute path on the host.

For now this is half fix half workaround.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-11-17 03:09:44 +01:00
1876 changed files with 35988 additions and 109040 deletions

No files matched your search

+8
View File
@@ -11,4 +11,12 @@ if [ "$(id -u)" = 0 ]; then
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
# Wrap pmbootstrap to use this repository for --aports
pmaports="$(cd "$(dirname "$0")"/..; pwd -P)"
_pmbootstrap="$(command -v pmbootstrap)"
pmbootstrap() {
"$_pmbootstrap" --aports="$pmaports" "$@"
}
.ci/lib/apkbuild_linting.py
+3 -5
View File
@@ -10,9 +10,8 @@ fi
git config --global --add safe.directory "$CI_PROJECT_DIR"
git config --global user.name "postmarketOS CI"
# The username for the bot associated with the access token
# e.g. project_226_bot_bfa19b84bf7f559c8ff7438a01fd29b9
git config --global user.email "$PMAPORTS_TOKEN_BOT@noreply.gitlab.postmarketos.org"
# pmaports
git config --global user.email "project_226_bot_a365eaa0c380d1bee0af03adf42ebea3@noreply.gitlab.postmarketos.org"
# Configure SSH key for signing
mkdir -p ~/.ssh
@@ -43,7 +42,7 @@ update_linux_next() {
# shellcheck source=/dev/null
pkgver=$(. device/testing/linux-next/APKBUILD; echo "$pkgver")
curl -s https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/refs/tags/ | grep -oE "<a href='.*'>(.*)</a>.*\.tar\.gz</a>" | awk -F'[<>]' '{print $3}' > /tmp/tags
curl -s "https://gitlab.com/linux-kernel/linux-next/-/tags?format=atom" | grep -oP "(?<=<title>)[^<]+" | tail -n +2 > /tmp/tags
latest=$(grep -v "v" < /tmp/tags | head -n1)
if [ -z "$latest" ]; then
@@ -71,7 +70,6 @@ update_linux_next() {
echo "Updating linux-next from $pkgver to $new_pkgver..."
sed -i -e "s/pkgver=$pkgver/pkgver=$new_pkgver/" device/testing/linux-next/APKBUILD
sed -i -e "s/^pkgrel=.*/pkgrel=0/" device/testing/linux-next/APKBUILD
# Update the checksums
pmbootstrap checksum linux-next
-80
View File
@@ -1,80 +0,0 @@
image: alpine:latest
stages:
- build
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "parent_pipeline"
{% if archs|length == 0 %}
# Needed because gitlab fails if no jobs are created, e.g: nothing should be
# built: https://gitlab.com/gitlab-org/gitlab/-/issues/368248
placeholder:
stage: build
script:
- 'true'
{% endif %}
.build:
stage: build
interruptible: true
before_script:
# upgrade is mostly needed for "qemu" runners that run edge based on a VM
# The other build jobs run natively in docker on latest alpine stable and
# those should always have whatever we need
- apk upgrade -U
- .ci/lib/gitlab_prepare_ci.sh
after_script:
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
artifacts:
expire_in: 1 week
paths:
- packages/
timeout: 10 h
{% if ('x86_64' in archs) %}
build-x86_64:
extends: .build
script:
- .ci/build-x86_64.sh
{% endif %}
{% if ('x86' in archs) %}
build-x86:
extends: .build
script:
- .ci/build-x86.sh
{% endif %}
{% if ('aarch64' in archs) %}
build-aarch64:
extends: .build
tags: [arm64]
script:
- .ci/build-aarch64.sh
{% endif %}
{% if ('armv7' in archs) %}
build-armv7:
extends: .build
tags: [qemu]
script:
- .ci/build-armv7.sh
{% endif %}
{% if ('armhf' in archs) %}
build-armhf:
extends: .build
tags: [qemu]
script:
- .ci/build-armhf.sh
{% endif %}
{% if ('riscv64' in archs) %}
build-riscv64:
extends: .build
tags: [qemu]
script:
- .ci/build-riscv64.sh
{% endif %}
+43
View File
@@ -0,0 +1,43 @@
#!/bin/sh -e
# Description: verify CODEOWNERS file is sane
# https://postmarketos.org/pmb-ci
# TODO Future improvements:
# * Check that all devices in main/community have someone in CODEOWNERS
# * Check that GitLab user actually exists (e.g. deleted account, account with
# changed user name)
if grep -q " " CODEOWNERS; then
echo
echo "ERROR: Found space indentation in CODEOWNERS."
echo "ERROR: Please indent with tab characters."
grep " " CODEOWNERS
echo
exit 1
fi
fail=0
tmppipe=$(mktemp -u)
mkfifo "$tmppipe"
grep -v "^#" CODEOWNERS | cut -d' ' -f1 > "$tmppipe" &
while IFS= read -r line; do
[ -z "$line" ] && continue
# Check if entry generally exists
# shellcheck disable=SC2086
ls $line >/dev/null 2>&1 || { fail=1; echo "Non-existing: $line"; }
# Check that directories end with a slash
# shellcheck disable=SC2086
if test -d "$(ls -d $line)"; then
echo "$line" | grep -q '/$' || { fail=1; echo "Missing trailing slash: $line"; }
fi
done < "$tmppipe"
rm "$tmppipe"
if [ "$fail" = 1 ]; then
echo
echo "ERROR: Invalid CODEOWNERS entries, see above."
echo
exit 1
fi
+38 -21
View File
@@ -24,6 +24,23 @@ def build_strict(packages, arch):
"--arch", arch, ] + list(packages))
def verify_checksums(packages, arch):
# Only do this with one build-{arch} job
arch_verify = "x86_64"
if arch != arch_verify:
print(f"NOTE: doing checksum verification in build-{arch_verify} job,"
" not here.")
return
if len(packages) == 0:
print("no packages changed, not doing any checksums verification")
return
common.run_pmbootstrap(["build_init"])
common.run_pmbootstrap(["--details-to-stdout", "checksum", "--verify"] +
list(packages))
if __name__ == "__main__":
# Architecture to build for (as in build-{arch})
if len(sys.argv) != 2:
@@ -76,31 +93,31 @@ if __name__ == "__main__":
# No packages: skip build
if len(packages) == 0:
print(f"no packages changed, which can be built for {arch}")
sys.exit(0)
build_strict(packages, arch)
else:
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
# [ci:skip-build]: verify checksums and stop
print("WARNING: not building changed packages ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(packages))
verify_checksums(packages, arch)
else:
# Build packages
print(f"building in strict mode for {arch}: {', '.join(packages)}")
build_strict(packages, arch)
# Build packages in extra-repos/systemd
# FIXME: this should probably be more generic, if other repos are added later?
if systemd_pkgs:
common.run_pmbootstrap(["config", "systemd", "always"])
# To fix the ERROR: Chroot 'native' is for the 'edge' channel, but you are on the
# 'systemd-edge' channel. Run 'pmbootstrap zap' to delete your chroots and try again.
# To do this automatically, run 'pmbootstrap config auto_zap_misconfigured_chroots yes'.
common.run_pmbootstrap(["config", "auto_zap_misconfigured_chroots", "yes"])
# filter out packages that can't be built for arch
# (Iterate over copy of `systemd_pkgs`, because we modify it in this loop)
for package in systemd_pkgs.copy():
apkbuild_path = pmb.helpers.pmaports.find(package, True, True, with_extra_repos="enabled")
apkbuild = pmb.parse._apkbuild.apkbuild(pathlib.Path(apkbuild_path, "APKBUILD"))
if not pmb.helpers.pmaports.check_arches(apkbuild["arch"], arch):
print(f"(extra-repos/systemd) {package}: not enabled for {arch}, skipping")
systemd_pkgs.remove(package)
# No packages: skip build
if len(systemd_pkgs) == 0:
print(f"no packages changed, which can be built for {arch}")
sys.exit(0)
build_strict(systemd_pkgs, arch)
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
# [ci:skip-build]: verify checksums
print("WARNING: not building changed packages for extra-repos/systemd: ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(systemd_pkgs))
verify_checksums(systemd_pkgs, arch)
else:
# Build packages
print(f"building in strict mode for {arch}, from extra-repos/systemd: {', '.join(systemd_pkgs)}")
build_strict(systemd_pkgs, arch)
+7 -18
View File
@@ -41,9 +41,7 @@ def add_upstream_git_remote():
def commit_message_has_string(needle):
base_commit = get_base_commit()
return needle in run_git(["log", "--pretty=format:%B", f"{base_commit}..HEAD"])
return needle in run_git(["show", "-s", "--format=full", "HEAD"])
def run_pmbootstrap(parameters):
@@ -88,10 +86,12 @@ def get_upstream_branch():
return ret
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."""
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)
:returns: set of changed files
"""
branch_upstream = f"upstream/{get_upstream_branch()}"
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
commit_upstream = run_git(["rev-parse", branch_upstream])[:-1]
@@ -107,17 +107,6 @@ def get_base_commit() -> str:
commit = run_git(["merge-base", branch_upstream, "HEAD"])[:-1]
print("comparing HEAD with: " + commit)
return commit
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)
:returns: set of changed files
"""
commit = get_base_commit()
# Changed files
ret = set()
print("changed file(s):")
-56
View File
@@ -1,56 +0,0 @@
#!/usr/bin/env python3
# Copyright 2025 Pablo Correa Gomez
# SPDX-License-Identifier: GPL-3.0-or-later
from pathlib import Path
import shutil
import sys
from jinja2 import Template
import add_pmbootstrap_to_import_path
import pmb.parse
import pmb.helpers.logging
from pmb.core.arch import Arch
# Same dir
import common
if __name__ == "__main__":
# 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
# be changed to a file and added as a CI artifact if we need to debug
# something.
pmb.logging.init(Path("/dev/null"), False)
archs = set()
# Get and print modified packages
common.add_upstream_git_remote()
for file in common.get_changed_files():
path = Path(file)
if path.name != "APKBUILD":
continue
elif not path.exists():
continue # APKBUILD was deleted
apkbuild = pmb.parse.apkbuild(path)
archs.update(apkbuild["arch"])
if common.commit_message_has_string("[ci:skip-build]"):
print("User requested skipping build, not creating child pipeline file")
archs = set()
# This ignores things like !armv7, that could be a follow-up optimization
if 'noarch' in archs or 'all' in archs:
archs = set([str(arch) for arch in Arch.supported()])
print(archs)
with open(template) as f:
rendered = Template(f.read()).render(archs=archs)
with open(child_pipeline, "w") as fw:
fw.write(rendered)
-199
View File
@@ -1,199 +0,0 @@
#!/bin/sh
# Unit testing framework for shell scripts
# Invoke with the path to a tests/ subdir of a package and the
# package name as arguments. Or source it with the following
# variables set:
# * results_dir - second argument to the test script
set -e
# Colors :D
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
BLUE="\e[34m"
BOLDBLUE="\e[1;34m"
RESET="\e[0m"
testlib_path="$(realpath "$0")"
_test_assert_failed=""
_test_testn=1
_test_passedn=0
_test_failedn=0
_test_current_test=""
_test_statefile="$(mktemp)"
# Set by each test
results_dir="${results_dir:-}"
test_log() {
# ash supports echo -e
# shellcheck disable=SC3037
echo -e "$*" >&2
}
test_info() {
# shellcheck disable=SC3037
echo -e "${BLUE}$*${RESET}" >&2
}
test_debug() {
# shellcheck disable=SC3037
echo -e "${YELLOW}$*${RESET}" >&2
}
assert_strequal() {
# $1: first string
# $2: second string
if [ -z "$1" ] || [ -z "$2" ]; then
test_log "ERROR: assert_equal: not enough arguments given"
exit 1
fi
if [ "$1" != "$2" ]; then
_test_assert_failed="$1 != $2"
test_log " ❌ $_test_assert_failed"
return
fi
test_log " ✅ $1 == $2"
}
assert_equal() {
# $1: name of variable
# $2: value to compare
if [ -z "$1" ] || [ -z "$2" ]; then
test_log "ERROR: assert_equal: not enough arguments given"
exit 1
fi
val="$(eval echo "\$$1")"
if [ "$val" != "$2" ]; then
_test_assert_failed="\$$1 != $2 (got $val)"
test_log " ❌ $_test_assert_failed"
return
fi
test_log " ✅ \$$1 == $2"
}
assert_unset() {
if [ -z "$1" ]; then
test_log "ERROR: assert_unset: not enough arguments given"
exit 1
fi
val="$(eval echo \$"$1")"
if [ -n "$val" ]; then
_test_assert_failed="\$$1 should be unset (has value '$val')"
test_log " ❌ $_test_assert_failed"
return
fi
test_log " ✅ \$$1 is unset"
}
# Log some expression and evaluate it
logeval() {
eval "$*"
test_log "${YELLOW}+ $*${RESET}"
}
# Start a test. Shell scripts involved in the test should be sourced AFTER calling this function!
start_test() {
if [ -n "$_test_current_test" ]; then
test_log "ERROR: multiple calls to start_test without calling end_test first!"
test_log "Current test: $_test_current_test"
exit 1
fi
test_log "==> Test $_test_testn: $1"
_test_current_test="$1"
set > "$_test_statefile"
}
# End a test and reset the environment.
end_test() {
local msg
local save_assert_failed
# Restore environment
save_assert_failed="$_test_assert_failed"
# Splitting is intentional
# shellcheck disable=SC2046
unset $(set | grep "='" | cut -d= -f1 | grep -vE "(PATH|IFS|TERM|LANG|HOME|PWD|SHELL|USER|save_assert_failed|_test_statefile)" )
# shellcheck disable=SC1090
. "$_test_statefile"
_test_assert_failed="$save_assert_failed"
if [ -n "$_test_assert_failed" ]; then
msg="${RED}Failed! ❌ ${_test_assert_failed}${RESET}"
echo "Test $_test_testn: $_test_assert_failed" >> "$results_dir/failed"
_test_failedn=$((_test_failedn+1))
echo "$_test_failedn" > "$results_dir/failedn"
unset _test_assert_failed
else
msg="${GREEN}Passed!${RESET}"
_test_passedn=$((_test_passedn+1))
echo "$_test_passedn" > "$results_dir/passedn"
fi
test_log "<== Test $_test_testn: $msg $_test_current_test\n"
_test_testn=$((_test_testn+1))
_test_current_test=""
}
# Call at the end of each testsuite shell script
end_testsuite() {
if [ -n "$_test_current_test" ]; then
test_log "${RED}ERROR: end_testsuite called without calling end_test first!${RESET}"
test_log "${RED}Current test: $_test_current_test${RESET}"
exit 1
fi
if [ -f "$results_dir/failed" ]; then
exit 1
fi
exit 0
}
run_tests() {
local failed test_results_base
local test name total passedn failedn t_passed t_failed
test_results_base="$(mktemp -d)"
test_log "Running tests for $2"
# FIXME: yeah this isn't quite the best way to iterate the files
# shellcheck disable=SC2010
for name in $(ls "$1" | grep "\.sh$"); do
test="$1/$name"
mkdir "$test_results_base/$name"
echo 0 > "$test_results_base/$name/passedn"
echo 0 > "$test_results_base/$name/failedn"
test_log
test_log "${BOLDBLUE}# Test suite ${name}${RESET}"
$test "$testlib_path" "$test_results_base/$name" || failed="$failed $name"
t_passed=$(cat "$test_results_base/$name/passedn")
t_failed=$(cat "$test_results_base/$name/failedn")
passedn=$((passedn+t_passed))
failedn=$((failedn+t_failed))
total=$((total+t_passed+t_failed))
done
if [ -n "$failed" ]; then
test_log
test_log "Some tests failed:"
for test in $failed; do
test_log "❌ $test"
test_log " ${RED}$(cat "$test_results_base/$test/failed")${RESET}"
done
fi
if [ $passedn -lt $total ]; then
test_log "[${RED}$passedn/$total tests passed${RESET}]"
else
test_log "[${GREEN}$passedn/$total tests passed!${RESET}]"
fi
test_log
if [ -n "$failed" ]; then exit 1; else exit 0; fi
}
# FIXME: probably not the best way to determine if this was sourced
if [ $# -gt 0 ]; then
run_tests "$1" "$2"
fi
-82
View File
@@ -1,82 +0,0 @@
#!/usr/bin/env python3
# Copyright 2025 Pablo Correa Gomez
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import sys
# Same dir
import common
# pmbootstrap
import add_pmbootstrap_to_import_path
import pmb.core
from pmb.core.context import get_context
def verify_checksums(packages):
if len(packages) == 0:
print("no packages changed, not doing any checksums verification")
return
print("verifying checksums: " + ", ".join(packages))
common.run_pmbootstrap(["build_init"])
common.run_pmbootstrap(["--details-to-stdout", "checksum", "--verify"] +
list(packages))
if __name__ == "__main__":
# Get and print modified packages
common.add_upstream_git_remote()
packages = common.get_changed_packages()
# Load context
sys.argv = ["pmbootstrap.py", "chroot"]
args = pmb.parse.arguments()
context = get_context()
# Get set of all buildable packages for the enabled repos, for skipping unbuildable
# aports later. We might be given a changed aport from e.g. extra-repos/systemd when
# that repo is not enabled
buildable_pkgs = set()
for path in pmb.core.pkgrepo.pkgrepo_iter_package_dirs():
buildable_pkgs.add(os.path.basename(path))
# To store a list of packages from extra-repos/systemd for special handling
# later:
systemd_pkgs = list()
# Filter out packages are not found in enabled repos
# (Iterate over copy of packages, because we modify it in this loop)
for package in packages.copy():
if package not in buildable_pkgs:
print(f"{package}: not in current repo, skipping")
packages.remove(package)
# FIXME: this should probably be more generic, if other repos are added
# later?
# This just tosses the package into the list of packages to try
# building later w/ systemd enabled, and assumes it'll be found
# there.
print(f"{package}: adding to list of packages to check in systemd repo")
systemd_pkgs.append(package)
continue
# No packages: skip build
if len(packages) == 0:
print("no packages to check for the current repo")
else:
verify_checksums(packages)
# FIXME: this should probably be more generic, if other repos are added later?
if systemd_pkgs:
common.run_pmbootstrap(["config", "systemd", "always"])
# To fix the ERROR: Chroot 'native' is for the 'edge' channel, but you are on the
# 'systemd-edge' channel. Run 'pmbootstrap zap' to delete your chroots and try again.
# To do this automatically, run 'pmbootstrap config auto_zap_misconfigured_chroots yes'.
common.run_pmbootstrap(["config", "auto_zap_misconfigured_chroots", "yes"])
# No packages: skip build
if len(systemd_pkgs) == 0:
print("no packages to check for the systemd repo")
else:
verify_checksums(systemd_pkgs)
+5 -3
View File
@@ -15,15 +15,18 @@ fi
# Shell: shellcheck
sh_files="
./main/mdss-fb-init-hack/mdss-fb-init-hack.sh
./main/postmarketos-base/rootfs-usr-lib-firmwareload.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-debug-shell/setup_usb_storage.sh
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
./main/ttyescape/*.post-install
./main/unl0kr/unlock.sh
./device/community/soc-qcom/call_audio_idle_suspend_workaround.sh
./main/msm-firmware-loader/*.post-install
./device/community/soc-qcom-sdm845/call_audio_idle_suspend_workaround.sh
$(find . -path './main/postmarketos-ui-*/*.sh')
$(find . -path './main/postmarketos-ui-*/*.pre-install')
@@ -38,11 +41,10 @@ sh_files="
$(find . -path './main/postmarketos-mvcfg/*.sh')
$(find . -path './.ci/**.sh')
$(find . -path '**/tests/*.sh')
"
for file in $sh_files; do
echo "Test with shellcheck: $file"
cd "$DIR/$(dirname "$file")"
shellcheck -S warning -e SC1008 -e SC3043 -x "$(basename "$file")"
shellcheck -e SC1008 -e SC3043 -x "$(basename "$file")"
done
+76 -10
View File
@@ -14,6 +14,9 @@ import pmb.parse._apkbuild
from pmb.core.pkgrepo import pkgrepo_default_path, pkgrepo_iglob, pkgrepo_relative_path
from pmb.core.arch import Arch
# Cache for codeowners_parse
codeowners_parsed = {}
# Don't complain if these nicknames are the only maintainers of an APKBUILD,
# because they are actually a group of people
gitlab_groups = [
@@ -44,7 +47,8 @@ def test_aports_device():
if "postmarketos-base" == dependency or "postmarketos-base>" in dependency:
depend_flag = True
if not depend_flag:
raise RuntimeError(f"Missing 'postmarketos-base' in depends of {path}")
raise RuntimeError("Missing 'postmarketos-base' in depends of " +
path)
# Depends: Must not have specific packages
for depend in apkbuild["depends"]:
@@ -57,7 +61,7 @@ def test_aports_device():
raise RuntimeError("wrong architecture, please change to arch=\""
f"{deviceinfo.arch}\": {path}")
if "!archcheck" not in apkbuild["options"]:
raise RuntimeError(f"!archcheck missing in options= line: {path}")
raise RuntimeError("!archcheck missing in options= line: " + path)
def test_aports_device_kernel():
@@ -99,12 +103,72 @@ def test_aports_device_kernel():
f" <https://postmarketos.org/devicepkg>): {path}")
def codeowners_parse():
global codeowners_parsed
pattern_prev = None
aports = pkgrepo_default_path()
with open(aports / "CODEOWNERS") as h:
for line in h:
line = line.rstrip()
if not line or line.startswith("#"):
continue
pattern_nicks = line.split()
assert len(pattern_nicks) > 1, f"CODEOWNERS line without nicks: {line}"
pattern = pattern_nicks[0]
if pattern.endswith("/"):
pattern += "*"
nicks = []
for word in pattern_nicks[1:]:
if word.startswith("@"):
nicks += [word]
codeowners_parsed[pattern] = nicks
if pattern_prev:
assert pattern_prev <= pattern, "CODEOWNERS: please order entries alphabetically"
pattern_prev = pattern
def require_enough_codeowners_entries(path, maintainers):
"""
:param path: full path to an APKBUILD (e.g. /home/user/…/APKBUILD)
:param maintainers: list of one or more maintainers
"""
_, path = pkgrepo_relative_path(path)
nicks = set()
for pattern, pattern_nicks in codeowners_parsed.items():
if fnmatch.fnmatch(path, pattern):
for nick in pattern_nicks:
nicks.add(nick)
print(f"{path}:")
print(f" APKBUILD: {maintainers}")
print(f" CODEOWNERS: {nicks}")
if len(nicks) < len(maintainers):
for nick in nicks:
if nick in gitlab_groups:
print(f" -> {nick} is a group")
return
assert len(nicks) >= len(maintainers), \
f"{path}: make sure that each maintainer is listed in CODEOWNERS!"
# @pytest.mark.xfail # Not all aports have been updated yet
def test_aports_maintained():
"""
Ensure that aports in /device/{main,community} have "Maintainer:" and
"Co-Maintainer:" (only required for main) listed in their APKBUILDs.
"Co-Maintainer:" (only required for main) listed in their APKBUILDs. Also
check that at least as many are listed in CODEOWNERS.
"""
codeowners_parse()
for path in pkgrepo_iglob("device/main/*/APKBUILD"):
if 'firmware-' in path.parent.name:
@@ -112,21 +176,23 @@ def test_aports_maintained():
maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers and len(maintainers) >= 2, \
f"{path} in main needs at least 1 Maintainer and 1 Co-Maintainer"
require_enough_codeowners_entries(path, maintainers)
for path in pkgrepo_iglob("device/community/*/APKBUILD"):
if 'firmware-' in path.parent.name:
continue
maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers, f"{path} in community needs at least 1 Maintainer"
require_enough_codeowners_entries(path, maintainers)
def test_aports_archived():
def test_aports_unmaintained():
"""
Ensure that aports in /device/archived have an "Archived:" comment
that describes why the aport is archived.
Ensure that aports in /device/unmaintained have an "Unmaintained:" comment
that describes why the aport is unmaintained.
"""
for path in pkgrepo_iglob("device/archived/*/APKBUILD"):
archived = pmb.parse._apkbuild.archived(path)
assert archived, f"{path} should have an Archived: " +\
"comment that describes why the package is archived"
for path in pkgrepo_iglob("device/unmaintained/*/APKBUILD"):
unmaintained = pmb.parse._apkbuild.unmaintained(path)
assert unmaintained, f"{path} should have an Unmaintained: " +\
"comment that describes why the package is unmaintained"
+4 -5
View File
@@ -36,7 +36,7 @@ def test_deviceinfo():
# Iterate over all devices
last_exception = None
count = 0
pattern = re.compile("^deviceinfo_[a-zA-Z0-9_]*=\".*\"(\\s*# .*)?$")
pattern = re.compile("^deviceinfo_[a-zA-Z0-9_]*=\".*\"$")
for folder in pkgrepo_iglob("device/*/device-*"):
device = folder.name.split("-", 1)[1]
@@ -63,8 +63,8 @@ def test_deviceinfo():
# Check line against regex (can't use multiple lines etc.)
if not pattern.match(line) or line.endswith("\\\""):
raise RuntimeError("Line looks invalid, maybe missing"
" quotes/multi-line string/malformed"
f" inline comment? {line}")
" quotes/multi-line string/comment next"
f" to line instead of above? {line}")
# Successful deviceinfo parsing / obsolete options
info = pmb.parse.deviceinfo(device)
@@ -74,8 +74,7 @@ def test_deviceinfo():
name = info.name
manufacturer = info.manufacturer
if not name.startswith(manufacturer) and \
not name.startswith("Google") and \
not name.startswith("Jolla"):
not name.startswith("Google"):
raise RuntimeError("Please add the manufacturer in front of"
" the deviceinfo_name, e.g.: '" +
manufacturer + " " + name + "'")
@@ -10,7 +10,6 @@ expected_directories = [
"device/community",
"device/main",
"device/testing",
"extra-repos/systemd",
"main",
"modem",
"non-free",
-1
View File
@@ -25,7 +25,6 @@ def test_aports_firmware():
"firmware-samsung-maguro", # Depends on firmware-aosp-broadcom-wlan
"firmware-xiaomi-ferrari", # Depends on soc-qcom-msm8916
"firmware-xiaomi-willow", # Doesn't build, source link is dead (pma#1212)
"firmware-samsung-i9105p", # Depends on firmware-aosp-broadcom-wlan
]
for path in pkgrepo_iglob("**/firmware-*/APKBUILD", recursive=True):
-3
View File
@@ -23,9 +23,6 @@ def test_aports_kernel():
apkbuild = pmb.parse.apkbuild(path)
aport_name = os.path.basename(os.path.dirname(path))
if aport_name == "linux-pam-pmos":
continue # This package isn't a linux kernel!
if "pmb:cross-native" not in apkbuild["options"]:
raise RuntimeError(f"{aport_name}: \"pmb:cross-native\" missing in"
" options= line")
+1 -2
View File
@@ -105,8 +105,7 @@ def test_aports_unreferenced_files():
if os.path.basename(rel_file_path) not in sources_chk \
and rel_file_path not in apkbuild["install"] \
and rel_file_path not in subpackage_installs \
and rel_file_path not in trigger_sources \
and not rel_file_path.startswith("tests/"):
and rel_file_path not in trigger_sources:
raise RuntimeError(f"{apkbuild_path}: found unreferenced file: {rel_file_path}")
-19
View File
@@ -1,19 +0,0 @@
#!/bin/sh -e
# Description: run unit-tests for packages
# https://postmarketos.org/pmb-ci
#
# This script only exists to allow running unit-tests locally.
# In actual CI the package tests/ subdir has it's own YAML
# fine defining a job which calls testlib for that package.
# This way we can run all the package unit-tests locally but
# have them be individual jobs in GitLab.
if [ "$(id -u)" = 0 ]; then
set -x
exec su "${TESTUSER:-build}" -c "sh -e $0"
fi
find . -type d -name "tests" | while read -r testdir; do
pkg="$(basename "$(dirname "$testdir")")"
.ci/lib/testlib.sh "$testdir" "$pkg"
done
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh -e
# Description: verify checksums of modified packages
# Options: native
# 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/master/install_pmbootstrap.sh"
sh ./install_pmbootstrap.sh
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
fi
export PYTHONUNBUFFERED=1
.ci/lib/verify_checksums.py
-5
View File
@@ -12,8 +12,3 @@ indent_style = tab
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
# Forked from Alpine
[extra-repos/systemd/networkmanager/networkmanager.rules]
indent_style = space
indent_size = 4
+2 -12
View File
@@ -65,7 +65,7 @@ is_symlink() {
# available in git tree and checksums are correct.
check_local_sources() {
local apkbuild="$1"
local startdir="$2"
local startdir="${apkbuild%/*}"
local status=0
local checksum_act checksum_exp content filename line sources
@@ -109,21 +109,11 @@ check_file_size() {
fi
}
cleanup() {
[ -f "$_staged" ] && rm "$_staged"
}
trap cleanup EXIT
for apkbuild in $(changed_files '**/APKBUILD'); do
_staged="$(mktemp)"
git show ":$apkbuild" >"$_staged"
check_local_sources "$_staged" "${apkbuild%/*}"
cleanup
check_local_sources "$apkbuild"
done
for path in $(changed_files); do
check_file_size "$path"
done
trap - EXIT
+5 -22
View File
@@ -37,30 +37,13 @@ prepend_msg() {
[ -z "$SOURCE" ] || exit 0
lcp=$(git diff-index --name-only --cached HEAD | longest_common_prefix)
prefix=""
case "$lcp" in
extra-repos/systemd/systemd/*)
prefix="systemd"
;;
extra-repos/systemd/*)
prefix="systemd/$(echo "$lcp" | cut -d/ -f3)"
;;
device/*/*)
prefix="$(echo "$lcp" | cut -d/ -f3)"
;;
device/*)
# Multiple packages touched for same device category. More
# logic could be added to detect if they all belong to same
# device.
;;
[^.]*/*)
prefix="$(echo "$lcp" | cut -d/ -f1-2)"
;;
device/*/*) prepend_msg "$(echo "$lcp" | cut -d/ -f3): ";;
# Multiple packages touched for same device category
# More logic could be added to detect if they all belong to same device
device/*) ;;
[^.]*/*) prepend_msg "$(echo "$lcp" | cut -d/ -f1-2): ";;
esac
if [ -n "$prefix" ]; then
prepend_msg "$prefix: "
fi
exit 0
-3
View File
@@ -118,6 +118,3 @@ ENV/
# Allow having untracked packages in aports using a custom-something directory
/custom-*/
# child pipeline
.ci/build-jobs.yaml
+53 -70
View File
@@ -8,16 +8,14 @@ after_script:
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
stages:
- lint
- prepare
- build
- autoupdate
- test
variables:
# Default of 20 is pretty small, sometimes MRs have >20 commits in them. 100
# seems like a reasonable balance. If this is too low, git merge-base (from ci/
# common.py) can fail
GIT_DEPTH: 100
# This defines the rules for when a pipeline should run.
workflow:
rules:
@@ -29,15 +27,11 @@ workflow:
# Run scheduled pipeline for autoupdate or manually triggered pipeline
- if: $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"
# Some packages have their own yaml files defining tests. All of these should contain
# only jobs which extend the .package-test job!
include: "**/.gitlab-ci.yml"
# device documentation
wiki:
stage: lint
rules:
- if: &mr_rule $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
changes:
- .ci/**/*
- .gitlab-ci.yml
@@ -50,7 +44,7 @@ wiki:
ruff:
stage: lint
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
changes:
- .ci/*
- .ci/*/*
@@ -64,17 +58,18 @@ shellcheck-grep:
stage: lint
image: alpine:edge
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/shellcheck.sh
- .ci/grep.sh
- .ci/codeowners.sh
editor-config:
stage: lint
image: alpine:edge
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/ec.sh
@@ -83,7 +78,7 @@ editor-config:
pytest-commits:
stage: lint
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/pytest.sh
@@ -100,7 +95,7 @@ pytest-commits:
aport-lint:
stage: lint
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/apkbuild-lint.sh
@@ -110,26 +105,15 @@ aport-lint:
kernel-kconfig:
stage: lint
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
changes:
- kconfigcheck.toml
allow_failure: true
- if: *mr_rule
changes:
- device/*/linux-*/config-*
- main/linux-*/config-*
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/kconfig.sh
# Verify checksums
verify-checksums:
stage: lint
rules:
- if: *mr_rule
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/verify-checksums.sh
# MR settings
# (Checks for "Allow commits from members who can merge to the target branch")
mr-settings:
@@ -143,44 +127,51 @@ mr-settings:
- 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:
# https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#dynamic-child-pipelines
# For those to work, we need two jobs:
# * First one (this one) that generates a valid yaml file with the job yaml as
# an artifact
# * Second one (build-jobs) that has a "trigger" key with the yaml file from
# which to trigger pipelines
# To avoid reworking the whole CI file, for now we are re-using this same file
# to trigger the downstream pipeline. In that case, $CI_PIPELINE_SOURCE will
# be set to "parent_pipeline", and only the jobs that extend .build will run
generate-build-jobs:
stage: prepare
before_script:
- .ci/lib/gitlab_prepare_ci.sh
needs: []
script:
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
- sh ./install_pmbootstrap.sh py3-jinja2
- .ci/lib/generate_build_jobs.py .ci/build-jobs.yaml.j2 .ci/build-jobs.yaml
artifacts:
paths:
- .ci/build-jobs.yaml
rules:
- if: *mr_rule
build-jobs:
# build changed aports
.build:
stage: build
trigger:
include:
- artifact: .ci/build-jobs.yaml
job: generate-build-jobs
strategy: depend
forward:
# So that we don't have to duplicate GIT_DEPTH
pipeline_variables: true
rules:
- if: *mr_rule
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
before_script:
- *global_before_scripts
- .ci/lib/gitlab_prepare_ci.sh
after_script:
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
artifacts:
expire_in: 1 week
paths:
- packages/
timeout: 10 h
build-x86_64:
extends: .build
script:
- .ci/build-x86_64.sh
build-x86:
extends: .build
script:
- .ci/build-x86.sh
build-aarch64:
extends: .build
script:
- .ci/build-aarch64.sh
build-armv7:
extends: .build
script:
- .ci/build-armv7.sh
build-armhf:
extends: .build
script:
- .ci/build-armhf.sh
build-riscv64:
extends: .build
script:
- .ci/build-riscv64.sh
auto-update:
stage: autoupdate
@@ -200,11 +191,3 @@ auto-update:
- log.txt
- log_testsuite_pmaports.txt
- pmbootstrap.cfg
# Template for package test jobs defined per-package
.package-test:
stage: test
rules:
- if: *mr_rule
before_script:
- .ci/lib/gitlab_prepare_ci.sh
+1 -6
View File
@@ -27,22 +27,17 @@
Replace space inside `[ ]` with `x` to fill the checkbox
-->
* [ ] edge (`master` branch)
* [ ] `v24.12`
* [ ] `v24.06` (supported until 2025-01-23)
* [ ] `v24.06`
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
### On what environment did you encounter the issue?
#### Environments
* [ ] COSMIC
* [ ] GNOME Shell on Mobile
* [ ] Phosh
* [ ] Plasma Mobile
* [ ] Sxmo (Wayland/Sway) **Please post the output of `sxmo_version.sh`**
* [ ] Other: **Please fill out**
### Which init system are you using?
* [ ] OpenRC
* [ ] systemd
### How did you get postmarketOS image?
* [ ] from https://images.postmarketos.org
* [ ] I built it using pmbootstrap
+14
View File
@@ -0,0 +1,14 @@
{
"subject_format": {
"pass": [
"^(([a-z]+\\/[a-z\\-0-9*{}]+),?)+: [A-Za-z\\/\\-0-9*{}\\(\\)\\.,_&:=' ]+( \\(MR \\d+\\)|)$",
"^CI: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$",
"^mrhlpr.json: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$",
"^pmaports.cfg: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$"
],
"unknown": [
"^[a-z-0-9_.*{}\\/]+: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\(\\)\\.,_ ]+( \\(MR \\d+\\)|)$"
]
}
}
-1
View File
@@ -1 +0,0 @@
https://postmarketos.org/funding.json
+143
View File
@@ -0,0 +1,143 @@
# https://docs.gitlab.com/ee/user/project/code_owners.html
# Put groups like @sdm845-mainline into test_device.py:gitlab_groups.
# Order lines alphabetically!
device/*/*-amlogic-s905*/ @funderscore
device/*/*-arrow-db410c/ @Minecrell
device/*/*-asus-me176c/ @Minecrell
device/*/*-ayn-odin/ @jenneron
device/*/*-bq-paella/ @Minecrell
device/*/*-bq-tenshi/ @fossdd
device/*/*-google-gru/ @jenneron
device/*/*-google-kukui/ @jenneron @binarycraft
device/*/*-google-oak/ @jenneron @adamthiede
device/*/*-google-trogdor/ @jenneron
device/*/*-google-veyron/ @jenneron
device/*/*-google-x64cros/ @jenneron @JustSoup321 @alpernebbi
device/*/*-htc-golfu/ @Newbyte
device/*/*-htc-m8qlul/ @Newbyte
device/*/*-kobo-clara/ @akemnade
device/*/*-lenovo-21bx/ @craftyguy @jane400
device/*/*-lenovo-a6000/ @jenneron @Minecrell
device/*/*-lenovo-a6010/ @jenneron @Minecrell
device/*/*-librecomputer-lafrite/ @funderscore
device/*/*-librecomputer-lepotato/ @funderscore
device/*/*-librecomputer-solitude/ @Newbyte @funderscore
device/*/*-motorola-harpia/ @Minecrell
device/*/*-nokia-n900/ @sicelo @Danct12
device/*/*-pine64-pinebookpro/ @QC8086
device/*/*-pine64-pinephone/ @craftyguy @milesalan @proycon @anjandev @StacyHarper @Arnavion @PsychoGame
device/*/*-pine64-pinephonepro/ @PsychoGame
device/*/*-pine64-rockpro64/ @PureTryOut
device/*/*-purism-librem5/ @craftyguy @alistair23 @Newbyte
device/*/*-qcom-msm8916/ @Minecrell @TravMurav
device/*/*-qcom-sdm670/ @flamingradian
device/*/*-qcom-sdm845/ @sdm845-mainline
device/*/*-qcom-sm6350/ @z3ntu
device/*/*-samsung-a3/ @Mis012 @TravMurav @Minecrell
device/*/*-samsung-a5/ @Minecrell @minlexx
device/*/*-samsung-e7/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-espresso10/ @MightyM17
device/*/*-samsung-espresso7/ @MightyM17 @antoni.aloytorrens
device/*/*-samsung-grandmax/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-gt510/ @TravMurav
device/*/*-samsung-gt58/ @TravMurav
device/*/*-samsung-j5/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-j5x/ @wonderfulShrineMaidenOfParadise
device/*/*-samsung-serranove/ @Minecrell
device/*/*-tolino-shine2hd/ @akemnade
device/*/*-videostrong-kii-pro/ @funderscore
device/*/*-wileyfox-crackling/ @TravMurav @Minecrell
device/*/*-xiaomi-beryllium/ @joelselvaraj
device/*/*-xiaomi-daisy/ @joelselvaraj @alikates
device/*/*-xiaomi-markw/ @vipaoL
device/*/*-xiaomi-mido/ @barni2000
device/*/*-xiaomi-scorpio/ @Tooniis
device/*/*-xiaomi-tissot/ @jiaxyga @barni2000
device/*/*-xiaomi-vince/ @M0Rf30
device/*/*-xiaomi-wt88047/ @Minecrell
device/*/*-xiaomi-ysl/ @barni2000
device/*/alsa-ucm-conf-cros/ @WeirdTreeThing
device/*/alsa-ucm-conf-qcom-sdm670/ @flamingradian
device/*/device-fairphone-*/ @z3ntu
device/*/device-generic-x86_64/ @craftyguy @ollieparanoid
device/*/device-google-nyan-big/ @jenneron
device/*/device-google-nyan-blaze/ @jenneron
device/*/device-google-peach-pi/ @jenneron
device/*/device-google-peach-pit/ @jenneron
device/*/device-google-sargo/ @flamingradian
device/*/device-google-snow/ @jenneron
device/*/device-huawei-plank/ @gtrxAC
device/*/device-lg-judyln/ @Newbyte
device/*/device-lg-judyp/ @jenneron
device/*/device-microsoft-surface-rt/ @jenneron @jethrob
device/*/device-nvidia-tegra-armv7/ @clamor-s @okias @mschwalm @nokun
device/*/device-odroid-xu4/ @Grimler
device/*/device-oneplus-enchilada/ @calebccff
device/*/device-oneplus-fajita/ @calebccff
device/*/device-postmarketos-trailblazer/ @calebccff
device/*/device-qcom-msm8909/ @wonderfulShrineMaidenOfParadise
device/*/device-qemu-aarch64/ @Minecrell @ollieparanoid
device/*/device-qemu-amd64/ @Minecrell @ollieparanoid
device/*/device-qemu-riscv64/ @Minecrell @z3ntu
device/*/device-qualcomm-sdm845/ @calebccff
device/*/device-raspberry-pi3/ @fossdd
device/*/device-samsung-chagallwifi/ @Grimler
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk
device/*/device-samsung-j5y17lte/ @andrisas
device/*/device-samsung-klimtlte/ @Grimler
device/*/device-samsung-lt01/ @knuxify
device/*/device-samsung-m0/ @Newbyte
device/*/device-samsung-manta/ @jenneron @alexmrqt
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche
device/*/device-solidrun-cubox/ @longnoserob
device/*/firmware-google-sargo/ @flamingradian
device/*/firmware-google-veyron-brcm/ @jenneron
device/*/firmware-odroid-xu4/ @Grimler
device/*/firmware-oneplus-sdm845/ @calebccff
device/*/firmware-powervr-gx6250/ @jenneron
device/*/kobo-epdc-extractor/ @akemnade
device/*/linux-google-nyan/ @jenneron
device/*/linux-google-veyron/ @jenneron
device/*/linux-huawei-plank/ @gtrxAC
device/*/linux-next/ @calebccff
device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame
device/*/linux-postmarketos-amlogic/ @funderscore @exkc
device/*/linux-postmarketos-exynos4/ @Newbyte @Grimler @knuxify
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
device/*/linux-postmarketos-grate/ @clamor-s @jenneron @jethrob
device/*/linux-postmarketos-imx-ereader/ @akemnade
device/*/linux-postmarketos-marvell-dove/ @longnoserob
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron @adamthiede
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
device/*/linux-postmarketos-omap/ @MightyM17 @Sicelo
device/*/linux-postmarketos-qcom-msm8939/ @Newbyte
device/*/linux-postmarketos-qcom-msm8953/ @M0Rf30 @Ultra-azu @barni2000
device/*/linux-postmarketos-qcom-msm8996/ @Tooniis
device/*/linux-postmarketos-qcom-sc7180/ @jenneron
device/*/linux-postmarketos-rockchip/ @QC8086
device/*/linux-postmarketos-stericsson/ @Newbyte
device/*/linux-samsung-chagallwifi/ @Grimler
device/*/linux-samsung-coreprimevelte/ @legolivesmatter @balejk
device/*/linux-samsung-j5y17lte/ @andrisas
device/*/linux-samsung-klimtlte/ @Grimler
device/*/oem-amd/ @craftyguy
device/*/oem-intel/ @craftyguy
device/*/oem-nvidia/ @craftyguy
device/*/soc-mediatek-mt8183/ @jenneron
device/*/soc-qcom-msm8953/ @barni2000
device/*/soc-qcom-msm8996/ @Tooniis
device/*/soc-qcom-sc7180/ @jenneron
device/*/soc-rockchip-rk3399/ @jenneron
device/*/soc-samsung-exynos4412/ @Newbyte
device/*/u-boot-librem5/ @craftyguy @alistair23 @Newbyte
device/*/u-boot-pinebookpro/ @QC8086
device/*/u-boot-pinephone/ @Arnavion @PsychoGame
device/*/wl1251-cal/ @Danct12
main/postmarketos*gnome*/ @pabloyoyoista @Newbyte
main/postmarketos-initramfs/ @calebccff @craftyguy
main/postmarketos-ui-i3wm/ @fossdd
main/postmarketos-ui-phosh/ @pabloyoyoista @Newbyte
main/postmarketos-ui-plasma-mobile/ @PureTryOut
main/shutdown-clear-rtc-wakealarm/ @Arnavion
main/ttyescape/ @calebccff
-13
View File
@@ -42,19 +42,6 @@ commit title can opt to use the following format:
manufacturer-codename: description of change
### Changes to packages inside of the systemd directory
We also shorten the prefixes for packages in `extra-repos/systemd`.
When the `systemd` package itself gets changed, use `systemd: ` as
prefix. For example:
systemd: add triggers for reloading/restarting services
When another package inside the systemd directory gets changed, use
`systemd/$pkgname: ` as prefix. For example:
systemd/cups: restart on upgrade
### Moving devices between categories
As we do not include directory prefixes in device-related commits,
+1 -5
View File
@@ -1,8 +1,4 @@
# postmarketOS aports repository
This repository contains the APKBUILD files for postmarketOS-specific packages, along with the required patches and scripts, if any.
There are many more packages defined in the [Alpine Linux aports](https://gitlab.alpinelinux.org/alpine/aports/) on which these packages depend.
# postmarketOS aports
Helpful resources:
* [How to create a package](https://wiki.postmarketos.org/wiki/Create_a_package)
+1 -7
View File
@@ -8,14 +8,8 @@ branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge
[v24.12]
description=Latest release / Recommended for best stability
branch_pmaports=v24.12
branch_aports=3.21-stable
mirrordir_alpine=v3.21
[v24.06]
description=Old release (unsupported)
description=Latest release / Recommended for best stability
branch_pmaports=v24.06
branch_aports=3.20-stable
mirrordir_alpine=v3.20
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-aarch64
pkgver=1.37.0
pkgrel=16
pkgrel=7
_arch="aarch64"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
6ff297733e1c89429cb0b667a5cda1cad1e2085b4ea071d6247034313c2e0a0963d44158ef5b651f212ea3fa99e16fdc7901152317cd5a07b1e76c2ed5aa47b2 busybox-static-1.37.0-r16-aarch64-edge.apk
9d0fd2ad11f7b2f9fbb3d5e71a2a7f113187648f61c269bee7b6b7ef0976d181d6a7588638382415b7eb2cc3934d0ef62080d4462acfc97c4c7b056003d333d4 busybox-static-1.37.0-r7-aarch64-edge.apk
"
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armhf
pkgver=1.37.0
pkgrel=16
pkgrel=7
_arch="armhf"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
ea3b5afb3b1d73835fec42960fca06c144e84d926beec7774fcd873a701fca22f31fc03417ac0cdef0533f8948cbf971484bbd9a5d00f4dae0ade386a7027739 busybox-static-1.37.0-r16-armhf-edge.apk
c89807c048cd58a5994c8162685669d0e49752f7284adc427d017355bbfd43f5a686617be42abd2b470c15869225a03f31a6231ee4dbb03fc6b27d6c920b5208 busybox-static-1.37.0-r7-armhf-edge.apk
"
+2 -2
View File
@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armv7
pkgver=1.37.0
pkgrel=16
pkgrel=7
_arch="armv7"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
f3c12760357b4a702a97393ba54a22b34eeb874d7442c6ef1f45eeb954786daefcfc8565992f30f4d417203e2aa9a4df6d7862ccccef1101064ce23e6fef7366 busybox-static-1.37.0-r16-armv7-edge.apk
56e0b396ced0a0afab2f5b50156b87707e3511a2e24c52c9688a20791fad20f11869b5b06bb6c7d407ffec3e4e06ea3100876e3d32efae678fc5a0fe6b57715a busybox-static-1.37.0-r7-armv7-edge.apk
"
+2 -2
View File
@@ -5,7 +5,7 @@
pkgname=ccache-cross-symlinks
pkgver=3
pkgrel=1
pkgrel=0
pkgdesc="Enable ccache for cross-compilers with symlinks"
url="https://ccache.samba.org/"
arch="noarch"
@@ -15,7 +15,7 @@ options="!check"
package() {
# Keep in sync with pmb.config.build_device_architectures
local _archs="armhf armv7 aarch64 x86_64 x86 riscv64"
local _archs="armhf armv7 aarch64 x86_64 x86"
local _bins="c++ cc cpp g++ gcc clang clang++"
mkdir -p "$pkgdir/usr/lib/ccache/bin"
+3 -3
View File
@@ -20,7 +20,7 @@
pkgname=crossdirect
pkgver=5.2.0
pkgrel=1
pkgrel=0
pkgdesc="Wrappers to launch native cross compilers in foreign chroots"
url="https://postmarketOS.org"
arch="all"
@@ -31,7 +31,7 @@ source="cargo.sh crossdirect.c rustc.sh rust-qemu-linker.sh"
build() {
cd "$srcdir"
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64 riscv64"
_archs="x86_64 armhf armv7 aarch64"
for _arch in $_archs; do
[ "$_arch" == "$CARCH" ] && continue
_hostspec="$(arch_to_hostspec $_arch)"
@@ -48,7 +48,7 @@ build() {
package() {
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64 riscv64"
_archs="x86_64 armhf armv7 aarch64"
_bins="c++ cc cpp g++ gcc clang clang++"
# Rust wrappers
+9 -8
View File
@@ -34,19 +34,20 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-aarch64
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for aarch64"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-aarch64 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-aarch64 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
subpackages="g++-aarch64:gpp libstdc++-dev-aarch64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +320,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +473,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +486,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,9 +570,8 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
+9 -8
View File
@@ -34,19 +34,20 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armhf
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for armhf"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armhf mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-armhf mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
subpackages="g++-armhf:gpp libstdc++-dev-armhf:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +320,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +473,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +486,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,9 +570,8 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
+9 -8
View File
@@ -34,19 +34,20 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-armv7
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for armv7"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-armv7 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-armv7 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
subpackages="g++-armv7:gpp libstdc++-dev-armv7:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +320,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +473,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +486,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,9 +570,8 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
+9 -8
View File
@@ -34,19 +34,20 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-riscv64
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for riscv64"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-riscv64 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-riscv64 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-riscv64 binutils-riscv64"
subpackages="g++-riscv64:gpp libstdc++-dev-riscv64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +320,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +473,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +486,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,9 +570,8 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
+9 -8
View File
@@ -34,19 +34,20 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for x86"
url="https://gcc.gnu.org"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-x86 mpc1 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-x86 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-x86 binutils-x86"
subpackages="g++-x86:gpp libstdc++-dev-x86:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +320,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +473,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +486,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,9 +570,8 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-x86_64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
+11 -8
View File
@@ -34,19 +34,21 @@ _pkgsnap="${pkgver##*_git}"
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname=gcc-x86_64
pkgrel=5
pkgrel=4
pkgdesc="Stage2 cross-compiler for x86_64"
url="https://gcc.gnu.org"
arch="aarch64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils-x86_64 mpc1 so:libc.musl-aarch64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
depends="binutils-x86_64 mpc1"
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-x86_64 binutils-x86_64"
subpackages="g++-x86_64:gpp libstdc++-dev-x86_64:libcxx_dev"
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc"
replaces="libstdc++ binutils"
options="!strip !tracedeps"
depends="$depends so:libc.musl-aarch64.so.1 so:libgcc_s.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libstdc++.so.6 so:libz.so.1"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -319,7 +321,7 @@ build() {
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -472,9 +474,7 @@ package() {
# move ada runtime libs
if $LANG_ADA; then
local libgnat_static=
[ "$CHOST" = "$CTARGET" ] && libgnat_static="libgna*.a"
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "$libgnat_static" \) ); do
for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 \( -name "libgna*.so" -o -name "libgna*.a" \) ); do
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
@@ -487,6 +487,9 @@ package() {
# libcc1 does not depend on target, don't ship it
rm -rf "$pkgdir"/usr/lib/libcc1.so*
# These are moved into packages with arch=$CTARGET_ARCH so remove
# cross prefix
#mv "$pkgdir"/usr/$CTARGET/lib/*.so.* "$pkgdir"/usr/lib/ # FIXME
# fixup gcc library symlinks to be linker scripts so
# linker finds the libs from relocated sysroot
@@ -568,10 +571,10 @@ libcxx_dev() {
gpp() {
pkgdesc="GNU C++ standard library and compiler"
depends="libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel musl-dev"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
depends="$depends so:libc.musl-aarch64.so.1 so:libgmp.so.10 so:libisl.so.23 so:libmpc.so.3 so:libmpfr.so.6 so:libz.so.1"
[ "$CHOST" = "$CTARGET" ] && depends="$depends libstdc++=$_gccrel"
amove $_gcclibexec/cc1plus
amove usr/bin/*++
}
+2 -2
View File
@@ -3,7 +3,7 @@
pkgname=grub-efi-x86
pkgver=2.12
pkgrel=7
pkgrel=6
_arch="x86"
_mirror="http://dl-4.alpinelinux.org/alpine/"
@@ -22,5 +22,5 @@ package() {
}
sha512sums="
8a44b4d48c804fb2c62c3d75c85f86a108f1446d3b1f194cde3c1b3ce7653825379d5733fdf8e08013afcea0d9c879438556d8cbbfb7d5cd6c41b98ab7216492 grub-efi-2.12-r7-x86-edge.apk
bad54187b4fbb9f78f2d619ff9a652a4927c557070c2c39334fd9900ae5aeb956144055602ca56295d7966c2d10090ef142a073dd67eb14f7b41ba0d54c78d4d grub-efi-2.12-r6-x86-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-aarch64
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="x86_64"
subpackages="musl-dev-aarch64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
8276aa0ce7368b87bf97f37d600639d475c059b984061125c6b648d2fecb838d87c8de9f19af32bad5862845c05368ccec0b328af3beb0fedc89a7ec0fb3babb musl-1.2.5-r10-aarch64-edge.apk
2da7a285fee8a1f2386d4a75cbf3c75cfbbaf88c617d50af0e0440fcd5d9825183772bb13f55f885137d6519c606791d3a8c576c5202818b2289f0db4c98720d musl-dev-1.2.5-r10-aarch64-edge.apk
5b3c6f1f1d87164a8a72c9d90b6e35ccc256bb2f6e1a12e4a3ff04b6309fff6c438eef60b824e4993958c4348c122fb96ef8f59dc468e10ee5be69aa81e6f4bc musl-1.2.5-r5-aarch64-edge.apk
ebbd7300b2102f322633dbc01449b5d4f25374609193359bf5da97e3a6cf34f1288a69ed0638bd5505b4548fdeb1efa481c9cd3a031ae3a98759b36cbf2db46e musl-dev-1.2.5-r5-aarch64-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-armhf
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="x86_64"
subpackages="musl-dev-armhf:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
18e90cbe16c8084cbf8d91b36decde0d520778946258d4c84908e639741843d21b7e9e610f007e5126dcc6a3ba2289a862bc18cfd9b21d3bc64161483a5704cf musl-1.2.5-r10-armhf-edge.apk
7b46a6eb791beb511d9d40c5de3fc08d9b2fbf82b0538dfb171cdafd16d719687d3bb55e718a0f1eefcd0a8342d81fcb258928a3209ab1a874015054f5ffe501 musl-dev-1.2.5-r10-armhf-edge.apk
302f14e5dc60b4c55f5f299be6cd158fe0955549e8b559afb5985c29a5c98432f82586732954c0dc3776104efc072b11ad9e4818842e6592df2e1931ba3590de musl-1.2.5-r5-armhf-edge.apk
71fc34ce05c5ed73136e77baa478986ec205f882f02602f54f772498451c70a254c89301e932c1e9d3b48a4b4513ca99f64b54de38bdd95966421c297e81ac5b musl-dev-1.2.5-r5-armhf-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-armv7
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="x86_64"
subpackages="musl-dev-armv7:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
cfd51c4655b612815af1e888228244640a4516dd8edd7a75131d6634c96d8ea6028e780b3c3e870dd22c4f89788f9f12594b4900a8df287161059687f1630857 musl-1.2.5-r10-armv7-edge.apk
88f482c389479817700a5b2c8609bae9d152303b92b1a9c7bd464aa990975b7bd0990c7b185d6c66ecd0c3c0c5f7579fc52a618d4393e511e112c8992d682693 musl-dev-1.2.5-r10-armv7-edge.apk
9e2af487860c1a232941a8c5e9833457af1f8c1bd45ce2105dcffcd39879363d4a14928c8670b6e5b8295c97a9fd121d880f8eee2f301df243e1e12dcae1cb69 musl-1.2.5-r5-armv7-edge.apk
8de555df4077de3f12bb5a113d2baaa93f403bd829058dd94093e58a0a7cd7b868d76bdc3f5bc0e5953f2bffdac4360cdbbada3be72578a17c7b1118cb2330a0 musl-dev-1.2.5-r5-armv7-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-riscv64
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="x86_64"
subpackages="musl-dev-riscv64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
4c76e3c4e94ab96d49c51ad01205e846280f851cff06b8c6ab8269d2ac99bbede29da9600fa60130c266d95da21bccdb00ad4b18123964774835e8014611e53e musl-1.2.5-r10-riscv64-edge.apk
27e6923fb43b1cd87b15e42edec6c658b7983b4e8c001bb67f5fc79cb124a46af92440e75676460eb3bed3a7acdd5ad142f03ba7dd040aae056431b8cc56818d musl-dev-1.2.5-r10-riscv64-edge.apk
4234a6980ea7bae2d275537f2c55e6ff1c480fc1ff838341d252ca71f6d098e1e91b60a8341744c91721d0850886f9155de330de7a71b037b9b87ac514582587 musl-1.2.5-r5-riscv64-edge.apk
6d10394c2e778699645ed3a65a52bd1fead39aeea13371a83cacae4b301fd577b2cb8cd9779c285d1dafeebef99cbd09807b86013468fe74f45cac1498c400ff musl-dev-1.2.5-r5-riscv64-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-x86
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="x86_64"
subpackages="musl-dev-x86:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
7d53c9b8d328860e09e5e5835be9632e9ee6effb6ce4203817b12139a1c4c69ac71495bb575e696b16e9a1dde830729af1b5b4d9308bf2e4be0995f2d7e2843b musl-1.2.5-r10-x86-edge.apk
5d048109d3360c526216a6f47446c5e9315fed76ae24bc8238d08dcac80edd22ac3de9ae4fda8fc42fd2c70c676e8673811eddb991bf08ea500bf4ccd10e2a3e musl-dev-1.2.5-r10-x86-edge.apk
5a556b306c4fe7969318c3af456dfa3b91f4a8563cf21d95154b27864d74baa68e99fc78302ac1b19f7aa3f72febb647959ef6c1c664798bbc8d411f8fe950f3 musl-1.2.5-r5-x86-edge.apk
52b49e9789176f47d6c00e0cf5e4ec66a70f1977ae86d4f8cbc33631e0f5586c8d745536aa04fcd612ec4aee9bfca2cc2e5beea0e5108d81a6a8e015a58d1666 musl-dev-1.2.5-r5-x86-edge.apk
"
+3 -3
View File
@@ -8,7 +8,7 @@ fi
pkgname=musl-x86_64
pkgver=1.2.5
pkgrel=10
pkgrel=5
arch="aarch64"
subpackages="musl-dev-x86_64:package_dev"
@@ -57,6 +57,6 @@ package_dev() {
}
sha512sums="
5d8ee4ca49019bf728f855cd296e36ac8ba9c16dc85f56c7b8bb6804788656584464ed9828f1eb5a14c1da1ca77906fae9d93174c44d03e003b6e1c2d1f445a6 musl-1.2.5-r10-x86_64-edge.apk
788290a474910e15611f8a9165470fd5a633a579ca3a6f89f5f550864303949dedb286c6f0108db5490e8e05d0ce0dcfd749555b63b624ea8fcaffd9a0b201b9 musl-dev-1.2.5-r10-x86_64-edge.apk
73c14308a84b80ffefa83e48322869a99c9adede367155493bee7f19e2be0846908cf52f0068748d641df9e19566c2fd49feda56e7848432054674a81c10f85e musl-1.2.5-r5-x86_64-edge.apk
8521be7365f75c68752c1527d32bc7c83a9f6670f5aff97752d9708607aaca04bf6afbed437192736f9e1baa85c1ff8f40dc75ce010554ac5ffbc777b9f0a6ac musl-dev-1.2.5-r5-x86_64-edge.apk
"
@@ -1,51 +0,0 @@
From 4cbffcd4f146ccceafccd9fa9d522640d1f0f519 Mon Sep 17 00:00:00 2001
From: Oliver Smith <ollieparanoid@postmarketos.org>
Date: Tue, 10 Dec 2024 08:33:54 +0100
Subject: [PATCH] libfdt.i_shipped: use SWIG_AppendOutput
Fix this build error with modern SWIG:
scripts/dtc/pylibfdt/libfdt_wrap.c: In function '_wrap_fdt_next_node':
scripts/dtc/pylibfdt/libfdt_wrap.c:5578:17: error: too few arguments to function 'SWIG_Python_AppendOutput'
5578 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
Patch is based on:
https://github.com/dgibson/dtc/pull/154
---
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
index 27c29ea260..3bbbfb3c9f 100644
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -1033,7 +1033,7 @@ typedef uint32_t fdt32_t;
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
buff = PyByteArray_FromStringAndSize(
(const char *)($1 + 1), fdt32_to_cpu($1->len));
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
+ resultobj = SWIG_AppendOutput(resultobj, buff);
}
}
@@ -1072,7 +1072,7 @@ typedef uint32_t fdt32_t;
%typemap(argout) int *depth {
PyObject *val = Py_BuildValue("i", *arg$argnum);
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
%apply int *depth { int *depth };
@@ -1088,7 +1088,7 @@ typedef uint32_t fdt32_t;
if (PyTuple_GET_SIZE(resultobj) == 0)
resultobj = val;
else
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
+ resultobj = SWIG_AppendOutput(resultobj, val);
}
}
--
2.47.1
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-alcatel-idol347-downstream
pkgdesc="Alcatel OneTouch Idol 3 (4.7) (Downstream)"
pkgver=2
pkgrel=0
pkgver=1
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -21,5 +21,5 @@ package() {
}
sha512sums="
131bddf782050fd8301ebd242a5b19cd70c520f03fe2e8a2f0b7afba60cc3dc0330f3765395de70553fc172a116a02a9512c3fc189303cb09609e4adac76a799 deviceinfo
2b6ba0e6e6d8f90d907a7a8089718c8a1ff8ee3ad0ea17f204e2e9fa2a514a06af9c2b91b7bfb0b8b8362ba2d44b53aad52fd88d506682f1f61b9fe6c19d206e deviceinfo
"
@@ -20,6 +20,7 @@ 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_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x80000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,26 +0,0 @@
# Archived: Downstream port, only for testing. Use mainline port (asus-x00td)!
# This kernel is mostly used for bringing up new features on mainline, thus unmaintained
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-asus-x00td-downstream
pkgdesc="Asus Zenfone Max Pro M1 downstream"
pkgver=0.1
pkgrel=0
url="postmarketos.org"
arch="aarch64"
license="MIT"
options="!check !archcheck"
depends="linux-asus-x00td-downstream mkbootimg msm-fb-refresher postmarketos-base"
makedepends="devicepkg-dev"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
sha512sums="
dee8129a078693d5c5b13da6247615f1b9720d7268e16280ef5d5111b07cd96f534eee91893a20935d182cf6205598d283308f91bc1d7cc7b701907b33090ae8 deviceinfo
"
@@ -1,32 +0,0 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
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"
# 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"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="4096"
deviceinfo_flash_sparse="true"
deviceinfo_usb_network_function="rndis_bam.rndis"
@@ -3,7 +3,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-coreprimevelte-downstream
pkgdesc="Samsung Galaxy Core Prime VE LTE downstream"
pkgver=3
pkgver=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -24,6 +24,6 @@ package() {
}
sha512sums="
00c8780dbc77e62e7d57a2b3e879881076204f3e58d50555778aa68feb0157f5b4207fdabbb4627888eeeda6a35182e8e199e49e4050244a60ce4e9e2d84bd99 deviceinfo
ec654952ea328489ced4268a78272977cca1a9356d86ea9794f5a0aa9387d7daeb1125419388a4ade0ea86cc6893178601eb7aa18a5886970a775e5ad78a59ba deviceinfo
4854cc57b86e1199dbc165110514e672dabf45044fe9f7ebbde5b2b24768fb5497273b5f38612cf2dfeffc9bf0648c725114b4fa01165bf7fb02f7d741ee5806 90-coreprimevelte.conf
"
@@ -20,6 +20,7 @@ deviceinfo_create_initfs_extra="true"
deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_bootimg_pxa="true"
deviceinfo_flash_offset_base="0x10000000"
@@ -1,5 +1,4 @@
# Reference: <https://postmarketos.org/devicepkg>
# Archived: Downstream port, only for testing. Use mainline port (samsung-j6lte)!
pkgname=device-samsung-j6lte-downstream
pkgdesc="Samsung Galaxy J6 (2018)"
pkgver=1
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-m0-downstream
pkgdesc="Samsung Galaxy S III"
pkgver=5
pkgver=4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -39,6 +39,6 @@ nonfree_firmware() {
}
sha512sums="
e43ad5a25aa5b0c499a8f7001feb236e428a185df0e51bf0b72f82550965e3050d10f8a4e6b0f92b11feec6f4bee734fac78bcbe8f55d8290d2544bd7ec3e811 deviceinfo
8e72ed82c9cfa5e1a95aa480392264a69a9fe5a6e0b3e40dde4fdd7ca157b20ea673d2183fc02d0e98d4971a94fc625c0df6a8065527173d1653b1c90d1ed232 deviceinfo
1376f0eb7c6ba459ca5c44b3eb7e9919d9c5f48d71ec30c006d1b4843e31cdade9f980415a166e977b2567b26f4e87d4554ee1143fdc62453d60a93bed129d06 90-android-touch-dev.rules
"
@@ -21,6 +21,7 @@ deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline="console=ttySAC2,115200 buildvariant=userdebug"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-on7xelte-downstream
pkgdesc="Samsung Galaxy J7 Prime"
pkgver=2
pkgrel=0
pkgver=1
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -52,7 +52,7 @@ lightdm() {
}
sha512sums="
eb8a2cfc57044f901b3ce75eda0001b58d5132ea52155d5e4bfa7361c1a19021759c0182c5ac01100145902dbebaaaf7965ded45487c6b4d0860a7d799d4cf94 deviceinfo
d342e7d79922d2e4a313e6c0ad20172e841886aa9517522460699da0dc66cd83cfeab986e468b0427ebcd64d54ffbc39cf3ba56c5d839b560e34cbe6e36526f1 deviceinfo
baee319b6d2f49a15680b0f322ec3e398a071d73fbf7713d14f26a1d027f8950457a482ac3f019605af3dfcf25bbb33ebaa0ffde181f7f96d911d56251c81eef lightdm.conf
efbe3d6217854c0131e61f9f3722100d349cb0673f4923bc3d56dae30a6346b0c33e676a39fc4c080150f6ea9457bf268abf870eea916a7d5daae1a22642a2b8 mount-efs.rc-init
3e5bb764529010d2b6b1f2759a7799f665d140aebcee2dd63433e68cd4282e09b5d3b34fb7c21e737595b406501e7f02ece4592651c60e4c2b9419de4aedb438 samsungipcd.rc-conf
@@ -21,6 +21,7 @@ deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline="androidboot.selinux=permissive androidboot.selinux=permissive"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_offset_base="0x10000000"
@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-xiaomi-cepheus-downstream
pkgdesc="Xiaomi Mi 9"
pkgver=2
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -25,5 +25,5 @@ package() {
}
sha512sums="
f71fef16c5a10a49b5ff56971a50224bc4a3c59075276ce2c4fc4f94307d3e39e006942d9f5fe4711058b0ce83b1df44e491efb9b67781662e042878556fe03d deviceinfo
ee52ac16542a599f397fba5ddbb82028d666dec7f509a4b9298df248ac98a129c7f2eb4452282c5de38f7f97516da6ba70ea027a0fea075881f6a7f5d2ca10c7 deviceinfo
"
@@ -22,6 +22,7 @@ deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xa90000 androidboot.hardware=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 swiotlb=2048 loop.max_part=7 androidboot.usbcontroller=a600000.dwc3 buildvariant=user"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="4096"
deviceinfo_flash_offset_base="0x00000000"
@@ -2,8 +2,8 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-xiaomi-wt88047-downstream
pkgdesc="Xiaomi Redmi 2 (Downstream)"
pkgver=2
pkgrel=0
pkgver=1
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@@ -21,5 +21,5 @@ package() {
}
sha512sums="
2b101a3143cf3201bb20e8896ecf432bb4b7e6127eb82dd598f9e225338f7b510fe6658701656a5eed5969d691ff699424bda5f27b8a112115f3ab7e33439a68 deviceinfo
30d1e79a3cafe22a307ace6a4897077e21e93a3433a8c2c636368fb037328d82a22009f6631c8c74481fe030fff9fef846b90a93ecadbc44484558ceb1a4b78f deviceinfo
"
@@ -21,6 +21,7 @@ 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 loop.max_part=7 phy-msm-usb.floated_charger_enable=1 buildvariant=userdebug"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x80000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,4 +1,3 @@
# Archived: Downstream port, only for testing. Use mainline port (samsung-j6lte)!
pkgname=firmware-samsung-j6lte-downstream
pkgver=1
pkgrel=0
@@ -1,5 +1,4 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Archived: Downstream port, only for testing. Use mainline port (linux-postmarketos-exynos7870)!
# Kernel config based on: arch/arm64/configs/j5y17lte_defconfig
# Maintainer: andrisas <sebokandris2009@gmail.com>
@@ -1,5 +1,4 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Archived: Downstream port, only for testing. Use mainline port (linux-postmarketos-exynos7870)!
pkgname=linux-samsung-j6lte-downstream
pkgver=3.18.14
@@ -1,6 +1,6 @@
# Maintainer: Richard Acayan <mailingradian@gmail.com>
pkgname=alsa-ucm-conf-qcom-sdm670
pkgver=1.2.9_git20241211
pkgver=1.2.9_git20241012
pkgrel=0
pkgdesc="ALSA UCM configuration for SDM670 devices"
url="https://gitlab.com/sdm670-mainline/alsa-ucm-conf"
@@ -8,7 +8,7 @@ arch="aarch64"
license="BSD-3-Clause"
provides="alsa-ucm-conf"
provider_priority=1
_commit="80bbe11220dcb5db4f2b3e65f1e1783d4935f902"
_commit="437f49545593a3e285feff1820bc1a282213af45"
source="https://gitlab.com/sdm670-mainline/alsa-ucm-conf/-/archive/$_commit/alsa-ucm-conf-$_commit.tar.gz"
options="!check"
@@ -19,5 +19,5 @@ package() {
}
sha512sums="
489c9807e7667e2246426970009d2dbed0267d797764a8766f37375e6bf2d4d0035ab46d205acb9e96748d2257083ae816639cd559b292e2551ab7481a9040f9 alsa-ucm-conf-80bbe11220dcb5db4f2b3e65f1e1783d4935f902.tar.gz
4e0edfaf6451bc0177e2115f21ef00504abf2b974e7f8eb8e5f4089f11ff6d2692ff07965946eb9086b1dce7016ab14bdc998bbf6f72ae9da00d83678ed5c956 alsa-ucm-conf-437f49545593a3e285feff1820bc1a282213af45.tar.gz
"
@@ -1,26 +0,0 @@
# Maintainer: Danila Tikhonov <danila@jiaxyga.com>
# Co-Maintainer: Jens Reidel <adrian@travitia.xyz>
# Co-Maintainer: David Wronek <david@mainlining.org>
pkgname=alsa-ucm-conf-qcom-sm7150
pkgver=1.2.11_git20240810
pkgrel=1
pkgdesc="ALSA UCM configuration for SM7150 devices"
url="https://github.com/sm7150-mainline/alsa-ucm-conf"
arch="aarch64"
license="BSD-3-Clause"
provides="alsa-ucm-conf"
provider_priority=1
_commit="30ff4bed580e0c24f235409069c5f798866897e0"
source="$pkgname-$_commit.tar.gz::https://github.com/sm7150-mainline/alsa-ucm-conf/archive/$_commit.tar.gz"
options="!check"
builddir="$srcdir/alsa-ucm-conf-$_commit"
package() {
# install audio config files
mkdir -p "$pkgdir"/usr/share/alsa
cp -r ucm2 "$pkgdir"/usr/share/alsa/
}
sha512sums="
9a722c6c8090242ac3914e270931a27f241bb616d25b0964e9402805577362939c4dfd973da20df8d9fab75ae9e77656987c6c9b3cd9e59a74d5cb10b1eae052 alsa-ucm-conf-qcom-sm7150-30ff4bed580e0c24f235409069c5f798866897e0.tar.gz
"
@@ -1,27 +0,0 @@
# Maintainer: Caleb Connolly (kalube) <caleb@connolly.tech>
# Co-Maintainer: Joel Selvaraj <joelselvaraj.oss@gmail.com>
pkgname=alsa-ucm-conf-sdm845
pkgver=1
pkgrel=0
pkgdesc="ALSA UCM configuration for Qualcomm SDM845 devices"
url="https://postmarketos.org"
arch="aarch64"
license="BSD-3-Clause"
provides="alsa-ucm-conf"
provider_priority=1
replaces="soc-qcom-sdm845-ucm"
_commit="70d89261a7d30273fba9c6e67a072699f9f88151"
source="$pkgname-$_commit.tar.gz::https://gitlab.com/sdm845-mainline/alsa-ucm-conf/-/archive/$_commit/alsa-ucm-conf-$_commit.tar.gz"
options="!check"
builddir="$srcdir/$pkgname-$_commit"
package() {
# install audio config files
mkdir -p "$pkgdir"/usr/share/alsa
cp -r "$srcdir/alsa-ucm-conf-$_commit"/ucm2 \
"$pkgdir"/usr/share/alsa/
}
sha512sums="
f6d03f3b03f944b29b588464e2e26f4f4cc185368714f9e623c1211174ea172efb81a765980c9a289112f5bf8c5c4aafdfd87c0094890069fc3d7c73b29456bc alsa-ucm-conf-sdm845-70d89261a7d30273fba9c6e67a072699f9f88151.tar.gz
"
@@ -2,8 +2,8 @@
# Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=device-arrow-db410c
pkgdesc="Arrow DragonBoard 410c"
pkgver=5
pkgrel=0
pkgver=4
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -32,6 +32,6 @@ nonfree_firmware() {
}
sha512sums="
748f5953d059f6765b041910bc8d7654a9e92d54d1646d8b90a4cdf5a66087f9a1917c7d1bddba994d2cc65d5b2ce422d6fb4650f771819b9f3f9ff33342be99 deviceinfo
b7431dcf918509458637442814d6f91f1532c75cd483be65d14dedd7af81f2f565187a190b3e3537474d00eec71cdb4ef6eb7fe3246ecde5a6c7b92593e71207 deviceinfo
ccd6758cb4954eb0a96c7fb15e732e8147414f8edc498d9faf7d04ddef85d817733669ec1a6003e623e8392f3f6bb85f71160efe4e82f27e300d58aa6f5c8549 modules-initfs
"
@@ -33,6 +33,3 @@ deviceinfo_flash_offset_tags="0x01e00000"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_sparse="true"
deviceinfo_flash_fastboot_partition_rootfs="rootfs"
# lk2nd does not support GPT for subpartitions/SD cards yet
deviceinfo_partition_type="msdos"
+3 -3
View File
@@ -2,8 +2,8 @@
# Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=device-bq-paella
pkgdesc="BQ Aquaris X5"
pkgver=9
pkgrel=0
pkgver=8
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -38,6 +38,6 @@ nonfree_firmware() {
}
sha512sums="
ec9416137ac7e49f564428bd92811ecc557567d3ee9b73061bab6da4d818fbecbbe70d179b91ef98576244bb6793e64b8add8d82a3a0398c5f542ba18978b58f deviceinfo
75e857f36f627d1ef209bfc79bac574b432ecb93a0e0de131675de43c43cef15e455284bab7b635376d21fd908e8cd21e6e918c6bd03c6e711179489f56e39a5 deviceinfo
ebf6a40372329116a25df1407e671365bb2bf0613f61f0a572fc77890fb0a1760259ab35ed9f002ef2a5c6ee8836bc7bbeb50bf5ac3de14c11e6d96872ad3644 modules-initfs
"
@@ -31,6 +31,3 @@ deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x01e00000"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_sparse="true"
# lk2nd does not support GPT for subpartitions/SD cards yet
deviceinfo_partition_type="msdos"
@@ -2,7 +2,7 @@
# Maintainer: Luca Weiss <luca@lucaweiss.eu>
pkgname=device-fairphone-fp4
pkgdesc="Fairphone 4"
pkgver=4
pkgver=3
pkgrel=1
url="https://postmarketos.org"
license="MIT"
@@ -19,7 +19,7 @@ depends="
firmware-fairphone-fp4-modem
firmware-fairphone-fp4-wlan
firmware-qcom-adreno-a630
hexagonrpcd>=0.3.2-r3
hexagonrpcd
hexagonrpcd-openrc
linux-firmware-ath10k
linux-postmarketos-qcom-sm6350
@@ -38,6 +38,7 @@ depends="
tqftpserv-openrc
"
makedepends="devicepkg-dev"
replaces="hexagonrpcd-openrc"
subpackages="$pkgname-openrc"
source="
81-libssc-fairphone-fp4.rules
@@ -59,13 +60,12 @@ package() {
install -Dm644 "$srcdir"/90-feedbackd-aw8695.rules \
"$pkgdir"/usr/lib/udev/rules.d/90-feedbackd-aw8695.rules
install -Dm644 "$srcdir"/hexagonrpcd.confd \
"$pkgdir"/usr/share/hexagonrpcd/hexagonrpcd-adsp-sensorspd.conf
"$pkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
depends="hexagonrpcd-openrc"
mkdir -p "$subpkgdir"
}
@@ -73,7 +73,7 @@ openrc() {
sha512sums="
2c16ba75e0077b2b1eaefa4c73b287475505a1aeb291ec29316d41cc094277320f9d2aaabfd91eb1dc0f488ab2d61a94faef16e7afe0f1e226779113761b9a37 81-libssc-fairphone-fp4.rules
2974ccc172bf1299daeb0bc746879b3a1db1fbc3a2b163a02a6554fed6ed9f733144bcf976cd2441c5664d496dcce3ae943f4314c653470dc07dda0de5ad632b 90-feedbackd-aw8695.rules
97629090e9d08391ec9ee9f84cf40b9710c9dffc09609f056a27869acc8f87e176765f6e8f9800ef29872df8f48a2e085eeaaaf69f38f8a97ecb1d19ac9c79eb deviceinfo
9549f105f865d230e7b67819c96b7e06a5ed4d5808f083099a408934ffbacdb412984b861f6756fa4fde94b51e6a268b8d2ce9fed6f13ee3e8041bb96492310a deviceinfo
6a3d620f2cc60308a62ff651ffb00a5ee1f092131cca9d33b6afd61c8a372a3fd7d46540162213593107e0943b33f3f0119d003d43dcd06dbde757390a6c1729 hexagonrpcd.confd
52bb7ed829caa4dcff9728bd6e3cdf118b3c7ee7dfe90df0d4e6422dd67bf3258ae2a4d2dc7599da4182fbd8eb47a0e1d20c58198dc17f2bf178b8f01a8887f7 modules-initfs
"
@@ -26,6 +26,7 @@ deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="4096"
deviceinfo_flash_offset_base="0x00000000"
@@ -2,7 +2,7 @@
# Co-Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
pkgname=device-generic-x86_64
pkgdesc="Generic x86_64 system, with EFI"
pkgver=18
pkgver=16
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -12,7 +12,6 @@ depends="
alsa-ucm-conf
postmarketos-base
systemd-boot
unl0kr-fbforcerefresh
"
makedepends="devicepkg-dev"
source="
@@ -70,7 +69,7 @@ kernel_lts() {
}
sha512sums="
c8a4b2dc32aa43e574e9fdb2d95ac50ee00e26703ae00f6f57cd8ab43cc16999d0da064d2af4c07f5f37a9d01691835a79a12a70cb4c09455ba276ffbbd14310 deviceinfo
7f0e1dab2eaf0616220a06a658245a297f2627f1b6a492ccf3bb9922c5b40aa6fd320c4ec5f909557bfc9b38985ef6bc58a67dd87fc46e0d9d35addbcfb2683d modules-initfs
e9dfcd70ccfb9a0fdaa0cdc52faf3be96d6de8af8c60a758bb703c515b0648cec4552e0eaf56e5168b0004cd3fc4b28118abb05dad2c581d3579a2e9134862cb deviceinfo
e464ef0ad4a4c34d2d53f69c4612b612ea878a77c9efdef69b0f842edf701036c8218809fd63aac286d6a08ae07f39e568199fc3e38d145e716c1723e7215019 modules-initfs
9599a10679a43929e4ed2ea22269a0716219163817574d48db4dc1cb21a0fcf17ea54d77d5fd8efd034905c421ecb3eaa600a72927d683983ce48d1159329881 30-gpu-i915-firmware.files
"
@@ -18,7 +18,7 @@ deviceinfo_gpu_accelerated="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="PMOS_FORCE_PARTITION_RESIZE psi=1 quiet"
deviceinfo_kernel_cmdline="PMOS_FORCE_PARTITION_RESIZE quiet"
deviceinfo_partition_type="gpt"
deviceinfo_boot_filesystem="fat32"
deviceinfo_generate_systemd_boot="true"
@@ -12,7 +12,6 @@ mbcache
mmc_block
mmc_core
nvme
psmouse
scsi_mod
sd
sd_mod
+3 -7
View File
@@ -3,7 +3,7 @@
pkgname=device-google-gru
pkgdesc="Google Gru Chromebooks"
pkgver=8
pkgrel=2
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -11,13 +11,14 @@ options="!check !archcheck"
depends="
alsa-ucm-conf-google-gru
depthcharge-tools
eudev-hwids>=3.2.12-r0
linux-postmarketos-rockchip
postmarketos-base
postmarketos-cros-common
soc-rockchip-rk3399
"
makedepends="devicepkg-dev"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware $pkgname-openrc"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
source="deviceinfo modules-initfs"
# provides and replaces to switch old installations to this package
@@ -50,11 +51,6 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
depends="eudev-hwids>=3.2.12-r0"
mkdir "$subpkgdir"
}
sha512sums="
d0d5e47e7bc6f63f92669a315611c36972e2f06a32c1339ac551f23db023331fb6e1cdbbe4dc2022596aaf8083967951c43585a3aa32c4fddc8d8987bc20c092 deviceinfo
+42 -30
View File
@@ -2,79 +2,91 @@
# Maintainer: Richard Acayan <mailingradian@gmail.com>
pkgname=device-google-sargo
pkgdesc="Google Pixel 3a"
pkgver=10
pkgrel=0
pkgver=6
pkgrel=5
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
alsa-ucm-conf-qcom-sdm670
firmware-google-sargo
hexagonrpcd
linux-firmware-ath10k
linux-firmware-qca
linux-firmware-qcom
linux-postmarketos-qcom-sdm670
make-dynpart-mappings
mkbootimg
postmarketos-base
soc-qcom
soc-qcom-modem
soc-qcom-qbootctl
unl0kr-fbforcerefresh
soc-qcom-sdm845
soc-qcom-sdm845-qbootctl
"
makedepends="devicepkg-dev"
source="
10-unl0kr-msm.conf
81-libssc-google-sargo.rules
90-feedbackd-drv2624.rules
deviceinfo
hexagonrpcd.confd
hexagonrpcd-adsp-sensorspd.confd
modules-initfs
no-hexagonrpcd-on-suspend.sh
q6voiced.conf
"
subpackages="$pkgname-openrc"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
"
build() {
devicepkg_build $startdir $pkgname
}
package() {
replaces="$pkgname-nonfree-firmware"
devicepkg_package $startdir $pkgname
install -Dm644 "$srcdir"/90-feedbackd-drv2624.rules \
-t "$pkgdir"/usr/lib/udev/rules.d
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/hexagonrpcd.confd \
"$pkgdir"/usr/share/hexagonrpcd/hexagonrpcd-adsp-sensorspd.conf
install -Dm644 "$srcdir"/81-libssc-google-sargo.rules \
"$pkgdir"/usr/lib/udev/rules.d/81-libssc-google-sargo.rules
# The q6voiced configuration can only be used if the ADSP is brought up
# via non-free firmware.
install -Dm644 "$srcdir"/q6voiced.conf "$pkgdir"/etc/conf.d/q6voiced
install -Dm644 "$srcdir"/10-unl0kr-msm.conf \
"$pkgdir"/etc/unl0kr.conf.d/10-unl0kr-msm.conf
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
nonfree_firmware() {
pkgdesc="Proprietary firmware blobs for the Google Pixel 3a"
depends="
firmware-google-sargo
hexagonrpcd
linux-firmware-ath10k
linux-firmware-qca
linux-firmware-qcom
soc-qcom-sdm845-modem
soc-qcom-sdm845-nonfree-firmware
"
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/81-libssc-google-sargo.rules \
"$subpkgdir"/usr/lib/udev/rules.d/81-libssc-google-sargo.rules
}
nonfree_firmware_openrc() {
replaces="hexagonrpcd-openrc"
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
# Enable HexagonRPCD by default, but not if the user installed this
# package then disabled it.
install="$subpkgname.post-install"
depends="hexagonrpcd-openrc"
replaces="hexagonrpcd-openrc"
# The FastRPC service is only enabled when non-free firmware is installed.
install -Dm755 "$srcdir"/no-hexagonrpcd-on-suspend.sh \
"$subpkgdir"/etc/elogind/system-sleep/no-hexagonrpcd-on-suspend.sh
# The q6voiced configuration can only be used if the ADSP is brought up
# via non-free firmware.
install -Dm644 "$srcdir"/q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.confd \
"$subpkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
}
sha512sums="
f700af3145b79d1ef9edfb22982899b25cabfb212f9620dcbd3a2e6f44b5ad591e0a66056c6fcd66c3fde89a2b5f551e8a8fe2e65cf0e2a48adec57c027d7825 10-unl0kr-msm.conf
089ce0acba4e1d789e337bedfca7570796a6416e7230ae9b8fc6b625747a40dbb064b1a707877cd6b7bdc73844c6571316e2ec0746a77060f13d98c52fdbfc00 81-libssc-google-sargo.rules
016d398155f2344417f5e5649a361719ba6e53e593c501b5df39114cdd284302b9bf8686a39817aee0c08fec95b3ab613c181d6cc9596299aaf7fd05dbe0c3dd 90-feedbackd-drv2624.rules
ad032b1a35cfcd4fc0c8df988430ee97b711e785b86cca68b7552b23a9a2e2b6b97c327e3415a575db47ad6c1f86ded18df5553acaae63010057d89b8c16135e deviceinfo
b6208c254b6e44ac4f6d748a38cc6b05da0db2c90235ada2011b138b82ccc3372687df2f5ad97e885e9eea135216a3c52266a08a7f4eb323e62e799f6f82ec7b hexagonrpcd.confd
925d8b176a8f1b47a86a1026cc920ffae99ceb35c3e52c222654c15078907579d23c4d68ed65a98ab937f59aaba2bbdd74da8d273e8b9c1ac87a52f718d383d6 modules-initfs
8af19da4e4a4a59c49263722065229fae849c3273af313300b7ea1b8fe008c6e55cfd060b91909306dd600134e2494f740adda245707dbcff84b1ab2f37dbde7 deviceinfo
b6208c254b6e44ac4f6d748a38cc6b05da0db2c90235ada2011b138b82ccc3372687df2f5ad97e885e9eea135216a3c52266a08a7f4eb323e62e799f6f82ec7b hexagonrpcd-adsp-sensorspd.confd
3213a3586c25cef843a47e2446179ff73acad6421826a64bedb6b9800d30673503d0ea6b3fcc8cfbdcdcaf0926755a489323fce9d14d4411799e6988144b3518 modules-initfs
2972005a9cf6ca57061965075593dddfa8ee479bc6c21cd41851b1a14768cb1cddbd31a17975ae17adc36d40d294ccbc6bf83defbd69fc7b363f638d8564fbbc no-hexagonrpcd-on-suspend.sh
3a4a9322839d4b3ef9d79668a37840a9f444954759ae3c512e694051d2f9a2573db42ad6c4c1a5c75eeb861232a27ba1a8cef9b503decd54ead25a96e3dd6f98 q6voiced.conf
"
@@ -22,6 +22,7 @@ deviceinfo_screen_height="2220"
deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="4096"
deviceinfo_flash_offset_base="0x00000000"
@@ -1,4 +1,10 @@
dispcc_sdm845
drm_exec
gpu_sched
i2c_qcom_geni
mdt_loader
msm
panel_samsung_s6e3fa7
rmi_core
rmi_i2c
gpi
@@ -3,7 +3,7 @@
pkgname=device-google-trogdor
pkgdesc="Google Trogdor Chromebooks"
pkgver=4
pkgrel=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -11,6 +11,7 @@ options="!check !archcheck"
depends="
alsa-ucm-conf
depthcharge-tools
eudev-hwids
linux-postmarketos-qcom-sc7180
postmarketos-base
postmarketos-cros-common
@@ -41,11 +42,6 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
depends="eudev-hwids"
mkdir "$subpkgdir"
}
sha512sums="
f94dcb175e49cbaadce524586ed1c3e3b0182e414c84c495a5585b49ed40ca6f7fa9c73544d19cbad236333f9fd997f150f836452b47a271f99b7b059972c4bc deviceinfo
@@ -2,7 +2,7 @@
# Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-veyron
pkgdesc="Google Veyron Chromebooks"
pkgver=8
pkgver=7
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -53,6 +53,6 @@ nonfree_firmware() {
sha512sums="
d6a214d98ef6502ebed97dd2b774d9d7de1ac969d6d17513f413234e9698bd860248345520eb15f6b54fb0e06a793ba974f8548d397c9a72db31ecd506038008 deviceinfo
abeebda841ae33d50008b891b4a29ccf4a7cf7be240b5913b701409e8621aa7210f685543b8ab7a9778b311359a197b4429af2b559716fa130d3af8447bef61d deviceinfo
be3e804fa538d9d377c637094dcf95e503e8a156fa71676a9e78abc0e290595dfdaa70b5642df721ebcdd3daa04d14e0c61d9bab6f78cb1dbd669404abc3a56d modules-initfs
"
@@ -27,4 +27,3 @@ deviceinfo_cgpt_kpart_size="32768"
deviceinfo_depthcharge_board="veyron"
deviceinfo_generate_depthcharge_image="true"
deviceinfo_generate_extlinux_config="true"
deviceinfo_create_initfs_extra="true"
@@ -4,7 +4,7 @@
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-x64cros
pkgdesc="Google Chromebooks with x64 CPU"
pkgver=13
pkgver=11
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -80,6 +80,6 @@ firmware_intel() {
sha512sums="
38c53d91a60d0402d4cc5428d65e1e8c26360c481c70b34593b1812c87241c32e91904a3bd31fbfe507f7fdb8b50c909eaad8c4c3a37ca962760567329f7f6ee 00-amdgpu-firmware.files
c17f5c505e0e280a9e51ac1b4264e7703b744fd3831d75ce95f41be4755ae4ccd24b7ca09ba1e236df499a5e748c64a0d2054c9d55d8c8c713fa8c5646ed9a3c 00-i915-firmware.files
d14992ad384d762452b28a8c5b93be67fb6bc03d0dd3e68d24c3373d466260a5e1a07338eb8fc5090edc735fd70b43017128c27962ebf4b7a5e3fa2fba66c18f deviceinfo
a6e5a9de9fe010966523606f2fcab1c44004228b4e050f777dcb1160fb3e32cda8096925543522216c2eb354f8ce2f8d4e206d98b077fbd6fb840de94e84c706 modules-initfs
514ff5c946633dccaa569fed51743c669ea9942af4dd891ad001ba08bba07fca92503e29304f3eb71c16bc2f2436e1879ff0bf56d99666e4dcf9635c8605da2e deviceinfo
1b3bbfcdc6642488304653aef996dddf7a354e7279f2c735ac7aec404e598948423630fcaa2cac87e2c0aef033ecfc57a7a91154f9dac9a85411db7bad62e677 modules-initfs
"
@@ -18,7 +18,6 @@ deviceinfo_create_initfs_extra="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="psi=1"
deviceinfo_boot_filesystem="fat32"
deviceinfo_cgpt_kpart="/boot/vmlinuz.kpart"
deviceinfo_cgpt_kpart_start="8192"
@@ -16,5 +16,3 @@ xhci_pci
ehci_pci
sdhci_pci
mmc_block
nvme
nvme_core
+4 -4
View File
@@ -4,7 +4,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-lenovo-21bx
pkgdesc="Lenovo ThinkPad X13s"
pkgver=13
pkgver=11
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -18,7 +18,7 @@ depends="
linux-firmware-ath11k
linux-firmware-qca
linux-firmware-qcom
linux-postmarketos-qcom-laptop
linux-lenovo-21bx
postmarketos-base
qmi-utils
systemd-boot
@@ -63,8 +63,8 @@ usbguard() {
}
sha512sums="
d2c2266c7db3b018cb1324ad4259fec664fa9d500f701795c6198b2318cec6466a9ad908c7217bb43c03d236dfdf3fb84280faf0cfa484bbdf90bda680822309 deviceinfo
5f4e6a80455c8a2ed879bfd457a89f81790824657ed4101e03b7ec288a274e63340f48e2ad5028cf83744263a4529584b1e94c36d10b98912e5b31804fa98ff0 firmware.files
9cb08de5748b0339005a910cc0475ad344dc6e912e477c5bd6b370784af6309719524f8fa7a39e7565586e47968a35c344ea853cddd716cc3e1e483efaae7ff0 deviceinfo
82f7719285434d8c7a5268ddc21d513bb3f3788eb3dd2df099e1c245add9d19719047b003a47edb077e095ebe09d9601b1312c001578e7dfa4ed61d72098ef74 firmware.files
27705e998db262602b50004083fe160dbcde88e9fdcaeb43e3d1d79be0b7af371f84855bb93ba16ada3cf5fa8ff8da6ca159cda4b1de08fb54ac451c57169c57 modules-initfs
52bbb9564ec713db5d46937701b121afe0c6c644fffe189a05766f491b4997b1bbc4c1f90229efb5764d795df8d40a57d4c840ee4b32d426e7a84520364b8bf5 pipewire.conf
0d0412eb1f01af39000c39391f622640461305d83dae1a53aa7eef640cc17fd265cabca4e4e57dea053c47a4e50f9feb90f12ee5310d5b6425783e83efc5f9d8 usbguard.conf
@@ -15,7 +15,7 @@ deviceinfo_gpu_accelerated="true"
deviceinfo_chassis="laptop"
deviceinfo_keyboard="true"
deviceinfo_external_storage="true"
deviceinfo_kernel_cmdline="quiet loglevel=2 quiet clk_ignore_unused pd_ignore_unused arm64.nopauth pmos.force-partition-resize"
deviceinfo_kernel_cmdline="quiet loglevel=2 quiet clk_ignore_unused pd_ignore_unused arm64.nopauth"
# Bootloader related
deviceinfo_flash_method="none"
@@ -4,7 +4,9 @@
# Bluetooth
/lib/firmware/qca/hpbtfw21.tlv
/lib/firmware/qca/hpnv21.b8c
# TODO: replace this if/when the fixed fw makes its way into linux-firmware-qca
#/lib/firmware/qca/hpnv21.bin
/lib/firmware/postmarketos/qca/hpnv21.bin
# GPU
/lib/firmware/qcom/a660_gmu.bin
@@ -3,8 +3,8 @@
# Co-Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=device-lenovo-a6000
pkgdesc="Lenovo A6000"
pkgver=9
pkgrel=0
pkgver=8
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -46,7 +46,7 @@ phosh() {
}
sha512sums="
4d09fab52932eec68e861ece0e1b6be8091b4834d765e533c8af9eaa0598838d11c3297fd501717af2124739c17a91be923fbefb59459e9f8f2ecbf767421069 deviceinfo
4939c4931addcfc05dbd5ede8083385e554c51c90ce5b375291fc57f245bfccc71054c9ae66c421bd5a39fe8f4449b58450246b667af0cda84399b5d65dc2173 deviceinfo
d433b8376b6e89daf4eac2073cb33627bdcacdcd48b6d4990cc698627dcf3c951bb1874951bc4631ea6b89d22c6002b9d02b77ff24992106061fcecc22fa5f25 modules-initfs
10d4ee62e5f7a9e4c368c460dd4c3ef282476e47d8cc40e4e3b83e971d04c493b801e5628ebdfe721f869e2fd68c521cf192cba1a973c8e03a61445534a28811 phoc.ini
"
@@ -31,6 +31,3 @@ deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x01e00000"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_sparse="true"
# lk2nd does not support GPT for subpartitions/SD cards yet
deviceinfo_partition_type="msdos"
@@ -3,8 +3,8 @@
# Co-Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=device-lenovo-a6010
pkgdesc="Lenovo A6010"
pkgver=9
pkgrel=0
pkgver=8
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -46,7 +46,7 @@ phosh() {
}
sha512sums="
0b50a8f01bf0014f905e212ab8677a34c1b538b6ef3205895f16a7b40fa0c20b5db966f9358ffe25f1bf06283eac4ee166ee8d1e68aafe12069d22c9f87376b8 deviceinfo
f367b90ebbf89896884d3cc34c559cc3d36b6e4187aeb52497c23b0cb133c25163751d0013aa37109a441c76339f13de829fc01ff9537dc9fcdf53ae0066bd24 deviceinfo
258464e46872cf221f7ac367766f9b8ead5d5dccbd71f3df5a5555127a42448906247ff2519d1750eec53b3ed37ae96c2409369d7cb8e2fffeb202a8f69bba53 modules-initfs
10d4ee62e5f7a9e4c368c460dd4c3ef282476e47d8cc40e4e3b83e971d04c493b801e5628ebdfe721f869e2fd68c521cf192cba1a973c8e03a61445534a28811 phoc.ini
"
@@ -31,6 +31,3 @@ deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x01e00000"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_sparse="true"
# lk2nd does not support GPT for subpartitions/SD cards yet
deviceinfo_partition_type="msdos"
@@ -2,8 +2,8 @@
# Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=device-motorola-harpia
pkgdesc="Motorola Moto G4 Play"
pkgver=10
pkgrel=0
pkgver=9
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -41,6 +41,6 @@ nonfree_firmware() {
}
sha512sums="
001c54115e5a4d0444c098f009bfc40a756b4044a9c1026fad0f5b0316e9540cc35ccd517689fcd298cb6481c0697e3127d46c618093a644a915ea8eb68bac27 deviceinfo
31eba51ab586af61d0ea0efb2e0f0a8533524254e864d59bc2142ba30c6b5745a46a00314fbf86a8b5bcfeee2d42b218c27d2e8aa5ed19f24e50468860999e56 deviceinfo
525a3e20672a7dff26b885b99ee157e0ece33efa10db34c90aed45dc47d7f1c2e90d7082dc84f2724892f199b5adaca04d5864f0aa1d1e4b8ea695f840346d60 modules-initfs
"
Loaded 100 of 1876 files, more files were not shown because too many files have changed in this diff. Show more