Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • alistair23/pmaports
  • exkc/pmaports
  • fossdd/pmaports
  • JustSoup321/pmaports
  • Eisenbahnfan/pmaports
  • raihan2000/pmaports
  • sleirsgoevy/pmaports
  • Adrian/pmaports
  • adamthiede/pmaports
  • jianhua/pmaports
  • knuxify/pmaports
  • Arnavion/pmaports
  • barni2000/pmaports
  • longnoserob/pmaports
  • smankusors/pmaports
  • Aren/pmaports
  • langfingaz/pmaports
  • sicelo/pmaports
  • kouta-kun/pmaports
  • craftyguy/pmaports
  • rdacayan/pmaports
  • rmader/pmaports
  • Haui111/pmaports
  • jakko/pmaports
  • dujem/pmaports
  • methanal/pmaports
  • WeirdTreeThing/pmaports
  • MightyM17/pmaports
  • sertonix/pmaports
  • amessier/pmaports
  • akemnade/pmaports
  • setotau/pmaports
  • kevinwidjaja21/pmaports
  • NekoCWD/pmaports
  • ollieparanoid/pmaports
  • manoedinata/pmaports
  • Drakulix/pmaports
  • grimler/pmaports
  • benpicco/pmaports
  • Frieder.Hannenheim/pmaports
  • andrisas/pmaports
  • EspiDev/pmaports
  • maze42/pmaports
  • anjandev/pmaports
  • danct12/pmaports
  • ijiki16/pmaports
  • jja2000/pmaports
  • fancsali/pmaports
  • bolilingmeng89006/pmaports
  • Minecrell/pmaports
  • chipiguay/pmaports
  • cherrypicker/pmaports
  • fortuna-mainline/pmaports
  • pevik/pmaports
  • Patriot-06/pmaports
  • JoseskVolpe/pmaports
  • verdre/pmaports
  • proycon/pmaports
  • AutumnSpark1226/pmaports
  • PsychoGame/pmaports
  • fraolt/pmaports
  • VaporGame/pmaports
  • pugzarecute/pmaports
  • CalcProgrammer1/pmaports
  • hexaheximal/pmaports
  • dabao1955/pmaports
  • HenriDellal/pmaports
  • semfault/pmaports
  • strobo5/pmaports
  • andrewgigena/pmaports
  • Athozus/pmaports
  • 1peter10/pmaports
  • vixalien/pmaports
  • Tooniis/pmaports
  • adomerle/pmaports
  • bjorn3/pmaports
  • StacyHarper/pmaports
  • Jack_Kekzoz/pmaports
  • Ceddicedced/pmaports
  • Justin_Zobel/pmaports
  • airtower-luna/pmaports
  • f-izzo/pmaports
  • cosmo/pmaports
  • 9lore/pmaports
  • postmarketOS/pmaports
  • Johnnynator/pmaports
  • iAboothahir/pmaports
  • N1kroks/pmaports
  • neuschaefer/pmaports
  • DylanVanAssche/pmaports
  • yehiashamaa987/pmaports
  • Operachi/pmaports
  • faveoled/pmaports
  • ilpianista/pmaports
  • johkra/pmaports
  • HDDTHR/pmaports
  • zsoltiv/pmaports
  • Justin/pmaports
  • Kaloyan501/pmaports_huawei_p8_lite_2015_fix
  • joelselvaraj/pmaports
  • rontti/pmaports
  • dsankouski/pmaports
  • StandaSK/pmaports
  • paricbat/pmaports
  • asdfugil/pmaports
  • komaru-yml/pmaports
  • MasterPlexus/pmaports
  • Felix/pmaports
  • ayakael/pmaports
  • feisuzhu/pmaports
  • AJ-RR/pmaports
  • SzczurekYT/pmaports
  • mediaberry/pmaports
  • justsomeguy/pmaports
  • Augis154/pmaports
  • hrdl/pmaports
  • sib0ndt/pmaports
  • 19atlas/pmaports
  • vipaoL/pmaports
  • wannjanjic/pmaports
  • dh/pmaports
  • LogicalErzor/pmaports
  • halamix2/pmaports
  • Shamilkv34/pmaports
  • Cogitri/pmaports
  • fallenritemonk/pmaports
  • user0-07161/pmaports
  • rock3tsprocket/pmaports
  • ellyq/pmaports
  • rodent/pmaports
  • mkorpershoek/pmaports
  • candrew/pmaports
  • fallaciousreasoning/pmaports
  • chalkin/pmaports
  • ungeskriptet/pmaports
  • r00t/pmaports
  • panpanpanpan/pmaports
  • celiffe/pmaports
  • davidfurey/pmaports
  • kidd/pmaports
  • tpikonen/pmaports
  • camelCaseNick/pmaports
  • ermine/pmaports
  • lgh/pmaports
  • sajattack/pmaports
  • StephanieBread/pmaports
  • M0Rf30/pmaports
  • notfound405/pmaports
  • samueldr/pmaports
  • r10nw7fd3/pmaports
  • treid998/pmaports-merge
  • denysvitali/pmaports
  • rodriguezst/pmaports
  • puppiestdoggo1/pmaports
  • donihalim/pmaports
  • EDKPiepaint/pmaports-apple-tonga-test
  • SanyaPilot/pmaports
  • spyraks/pmaports
  • HAKANKOKCU/pmaports
159 results
Show changes
Commits on Source (343)
Showing
with 434 additions and 139 deletions
...@@ -16,8 +16,7 @@ import pmb.parse ...@@ -16,8 +16,7 @@ import pmb.parse
import pmb.parse.version import pmb.parse.version
import pmb.helpers.logging import pmb.helpers.logging
def get_package_contents(args, package, revision, check=True):
def get_package_version(args, package, revision, check=True):
# Redirect stderr to /dev/null, so git doesn't complain about files not # Redirect stderr to /dev/null, so git doesn't complain about files not
# existing in upstream branch for new packages # existing in upstream branch for new packages
stderr = None stderr = None
...@@ -40,6 +39,15 @@ def get_package_version(args, package, revision, check=True): ...@@ -40,6 +39,15 @@ def get_package_version(args, package, revision, check=True):
handle.write(apkbuild_content) handle.write(apkbuild_content)
parsed = pmb.parse.apkbuild(tempdir + "/APKBUILD", False, False) parsed = pmb.parse.apkbuild(tempdir + "/APKBUILD", False, False)
return parsed
def get_package_version(args, package, revision, check=True):
""" returns version in the format "{pkgver}-r{pkgrel}", or None if no
matching package is found """
parsed = get_package_contents(args, package, revision, check)
if parsed is None:
return None
return parsed["pkgver"] + "-r" + parsed["pkgrel"] return parsed["pkgver"] + "-r" + parsed["pkgrel"]
...@@ -112,6 +120,40 @@ def check_versions(args, packages): ...@@ -112,6 +120,40 @@ def check_versions(args, packages):
print(f"- {package}: {head} (HEAD) (new package)") print(f"- {package}: {head} (HEAD) (new package)")
continue continue
# Check pkgver follows expected format for device packages
pkgver = head.rpartition('-r')[0]
if package.startswith('device-') and not pkgver.isdigit():
print(f" - {package}: invalid pkgver \"{pkgver}\""
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Additional checks for device packages
if package.startswith('device-'):
head_parsed = get_package_contents(args, package, "HEAD", False)
upstream_parsed = get_package_contents(args, package, commit, False)
# checksums did not change
if head_parsed["sha512sums"] == upstream_parsed["sha512sums"]:
# Check that pkgver did not change
if head_parsed["pkgver"] != upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should not change when package source checksums did not change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# We do not check for a bumped pkgrel, because not everything
# needs it, e.g: pmb_recommends
# checksums changed
else:
# Check that pkgrel was reset to 0
if head_parsed["pkgrel"] != "0":
print(f" - {package}: pkgrel should be 0 when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Check that pkgver was changed
if head_parsed["pkgver"] == upstream_parsed["pkgver"]:
print(f" - {package}: pkgver should change when package source checksums change."
"See: https://wiki.postmarketos.org/wiki/Packaging#device_packages_and_other_packages_without_sources")
error = True
# Compare head and upstream versions # Compare head and upstream versions
result = pmb.parse.version.compare(head, upstream) result = pmb.parse.version.compare(head, upstream)
if result != 1: if result != 1:
......
...@@ -106,7 +106,7 @@ def main(): ...@@ -106,7 +106,7 @@ def main():
# Ask to adjust the wiki # Ask to adjust the wiki
if error: if error:
print("*** Wiki check failed!") print("*** Wiki check failed!")
print("Thank you for porting postmarketOS to a new device! \o/") print("Thank you for porting postmarketOS to a new device! \\o/")
print("") print("")
print("Now it's time to add some documentation:") print("Now it's time to add some documentation:")
print("1) Create a device specific wiki page as described here:") print("1) Create a device specific wiki page as described here:")
......
...@@ -59,6 +59,11 @@ def get_upstream_branch(): ...@@ -59,6 +59,11 @@ def get_upstream_branch():
channels.cfg from master to retrieve the upstream branch. channels.cfg from master to retrieve the upstream branch.
:returns: branch name, e.g. "v20.05" """ :returns: branch name, e.g. "v20.05" """
# Prefer gitlab CI target branch name if it's set (i.e. running in gitlab CI)
if target_branch := os.environ.get("CI_MERGE_REQUEST_TARGET_BRANCH_NAME"):
return target_branch
global cache global cache
if "upstream_branch" in cache: if "upstream_branch" in cache:
return cache["upstream_branch"] return cache["upstream_branch"]
...@@ -130,27 +135,28 @@ def get_changed_packages_sanity_check(count): ...@@ -130,27 +135,28 @@ def get_changed_packages_sanity_check(count):
return return
branch = get_upstream_branch() branch = get_upstream_branch()
print() print(f"""
print("ERROR: Too many packages have changed!") ERROR: Too many packages have changed!
print()
print("This is a sanity check, so we don't end up building packages that") This is a sanity check, so we don't end up building packages that
print("have not been modified. CI won't run for more than three hours") have not been modified. CI won't run for more than three hours
print("anyway.") anyway.
print()
print("Your options:") Your options:
print("a) If you *did not* modify everything listed above, then rebase") a) If you *did not* modify everything listed above, then rebase
print(f" your branch on the official postmarketOS/pmaports.git {branch}") your branch on the official postmarketOS/pmaports.git {branch}
print(" branch. Feel free to ask in the chat for help if you need any.") branch. Feel free to ask in the chat for help if you need any.
print("b) If you *did* modify all these packages, and you assume that") b) If you *did* modify all these packages, and you assume that
print(" they will build within one hour: skip this sanity check by") they will build within one hour: skip this sanity check by
print(" adding '[ci:ignore-count]' to the commit message (then force") adding '[ci:ignore-count]' to the commit message of the last
print(" push).") commit in the merge request (then force push).
print("c) If you *did* modify all these packages, and you are sure that") c) If you *did* modify all these packages, and you are sure that
print(" they won't build in time, please add '[ci:skip-build]' to the") they won't build in time, please add '[ci:skip-build]' to the
print(" commit message (then force push). Make sure that all packages") commit message (then force push). Make sure that all packages
print(" build with 'pmbootstrap build --strict'!") build with 'pmbootstrap build --strict'!
print()
print("Thank you and sorry for the inconvenience.") Thank you and sorry for the inconvenience.
""")
sys.exit(1) sys.exit(1)
......
...@@ -11,4 +11,4 @@ fi ...@@ -11,4 +11,4 @@ fi
set -x set -x
# shellcheck disable=SC2046 # shellcheck disable=SC2046
ruff --ignore E501,F401,E722,W605 $(find .ci -name '*.py') ruff check --ignore E501,F401,E722,W605 $(find .ci -name '*.py')
...@@ -23,7 +23,6 @@ sh_files=" ...@@ -23,7 +23,6 @@ sh_files="
./main/postmarketos-mkinitfs-hook-debug-shell/20-debug-shell.sh ./main/postmarketos-mkinitfs-hook-debug-shell/20-debug-shell.sh
./main/postmarketos-mkinitfs-hook-debug-shell/setup_usb_storage.sh ./main/postmarketos-mkinitfs-hook-debug-shell/setup_usb_storage.sh
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh ./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
./main/postmarketos-update-kernel/update-kernel.sh
./main/ttyescape/*.post-install ./main/ttyescape/*.post-install
./main/unl0kr/unlock.sh ./main/unl0kr/unlock.sh
./main/msm-firmware-loader/*.post-install ./main/msm-firmware-loader/*.post-install
......
...@@ -34,7 +34,7 @@ def path_pmbootstrap(): ...@@ -34,7 +34,7 @@ def path_pmbootstrap():
return directory return directory
# Symlink not set up properly # Symlink not set up properly
print("ERROR: 'pmbootstrap' is not a symlink to pmbootstrap.py") print("ERROR: unable to find path to pmbootstrap.py. Try setting 'PMBOOTSTRAP_CMD'.")
sys.exit(1) sys.exit(1)
......
#!/usr/bin/env python3 #!/usr/bin/env python3
# Copyright 2021 Oliver Smith # Copyright 2024 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
import fnmatch
import glob import glob
import os
import pytest import pytest
import sys import sys
import os
import add_pmbootstrap_to_import_path import add_pmbootstrap_to_import_path
import pmb.parse import pmb.parse
import pmb.parse._apkbuild import pmb.parse._apkbuild
# 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 = [
"@sdm845-mainline",
]
def device_dependency_check(apkbuild, path): def device_dependency_check(apkbuild, path):
""" Raise an error if a device package has a dependency that is not allowed """ Raise an error if a device package has a dependency that is not allowed
...@@ -51,14 +61,6 @@ def test_aports_device(args): ...@@ -51,14 +61,6 @@ def test_aports_device(args):
if "!archcheck" not in apkbuild["options"]: if "!archcheck" not in apkbuild["options"]:
raise RuntimeError("!archcheck missing in options= line: " + path) raise RuntimeError("!archcheck missing in options= line: " + path)
if deviceinfo["flash_kernel_on_update"] == "true" \
and "postmarketos-update-kernel" not in apkbuild["depends"]:
raise RuntimeError(
"Deviceinfo indicates this device supports automatic kernel"
" flashing on update, but doesn't depend on"
" 'postmarketos-update-kernel'. Please add the missing"
" dependency.")
def test_aports_device_kernel(args): def test_aports_device_kernel(args):
""" """
...@@ -100,23 +102,84 @@ def test_aports_device_kernel(args): ...@@ -100,23 +102,84 @@ def test_aports_device_kernel(args):
path) path)
def codeowners_parse(args):
global codeowners_parsed
pattern_prev = None
with open(f"{args.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(args, path, maintainers):
"""
:param path: full path to an APKBUILD (e.g. /home/user/…/APKBUILD)
:param maintainers: list of one or more maintainers
"""
path = os.path.relpath(path, args.aports)
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!"
def test_aports_maintained(args): def test_aports_maintained(args):
""" """
Ensure that aports in /device/{main,community} have "Maintainer:" and 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(args)
for path in glob.iglob(f"{args.aports}/device/main/*/APKBUILD"): for path in glob.iglob(f"{args.aports}/device/main/*/APKBUILD"):
if '/firmware-' in path: if '/firmware-' in path:
continue continue
maintainers = pmb.parse._apkbuild.maintainers(path) maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers and len(maintainers) >= 2, \ assert maintainers and len(maintainers) >= 2, \
f"{path} in main needs at least 1 Maintainer and 1 Co-Maintainer" f"{path} in main needs at least 1 Maintainer and 1 Co-Maintainer"
require_enough_codeowners_entries(args, path, maintainers)
for path in glob.iglob(f"{args.aports}/device/community/*/APKBUILD"): for path in glob.iglob(f"{args.aports}/device/community/*/APKBUILD"):
if '/firmware-' in path: if '/firmware-' in path:
continue continue
maintainers = pmb.parse._apkbuild.maintainers(path) maintainers = pmb.parse._apkbuild.maintainers(path)
assert maintainers, f"{path} in community needs at least 1 Maintainer" assert maintainers, f"{path} in community needs at least 1 Maintainer"
require_enough_codeowners_entries(args, path, maintainers)
def test_aports_unmaintained(args): def test_aports_unmaintained(args):
......
...@@ -6,10 +6,10 @@ import stat ...@@ -6,10 +6,10 @@ import stat
expected_directories = [ expected_directories = [
"cross", "cross",
"device/archived",
"device/community", "device/community",
"device/main", "device/main",
"device/testing", "device/testing",
"device/unmaintained",
"main", "main",
"modem", "modem",
"non-free", "non-free",
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
# Top-most EditorConfig file. # Top-most EditorConfig file.
root = true root = true
[{**.{md,ini,sh,rules,nft},**/APKBUILD}] [{**.{md,ini,sh,rules,nft},**/APKBUILD,CODEOWNERS}]
indent_style = tab indent_style = tab
end_of_line = lf end_of_line = lf
trim_trailing_whitespace = true trim_trailing_whitespace = true
......
...@@ -2,35 +2,34 @@ ...@@ -2,35 +2,34 @@
# global settings # global settings
image: alpine:edge image: alpine:edge
before_script: &global_before_scripts
- apk upgrade -U
after_script: after_script:
- .ci/lib/move_logs.sh $CI_PROJECT_DIR - .ci/lib/move_logs.sh $CI_PROJECT_DIR
stages: stages:
- lint - lint
- build - build
# defaults for "only" # This defines the rules for when a pipeline should run.
# We need to run the CI jobs in a "merge request specific context", if CI is workflow:
# running in a merge request. Otherwise the environment variable that holds the rules:
# merge request ID is not available. This means, we must set the "only" # Don't run branch pipeline if an MR is open (only the MR pipeline will run)
# variable accordingly - and if we only do it for one job, all other jobs will - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
# not get executed. So have the defaults here, and use them in all jobs that when: never
# should run on both the master branch, and in merge requests. # Run for merge requests
# https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#excluding-certain-jobs - if: $CI_PIPELINE_SOURCE == "merge_request_event"
.only-default: &only-default # Run scheduled pipeline for autoupdate
only: - if: $CI_PIPELINE_SOURCE == "schedule"
- master
- merge_requests
- tags
# device documentation # device documentation
wiki: wiki:
stage: lint stage: lint
<<: *only-default rules:
only: - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
refs: changes:
- merge_requests - .ci/**/*
changes: - .gitlab-ci.yml
- device/*/device-*/* - device/*/device-*/*
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/wiki.sh - .ci/wiki.sh
...@@ -38,16 +37,12 @@ wiki: ...@@ -38,16 +37,12 @@ wiki:
# testcases linting # testcases linting
ruff: ruff:
stage: lint stage: lint
<<: *only-default rules:
only: - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
refs: changes:
- merge_requests - .ci/*
changes: - .ci/*/*
- .ci/* - .gitlab-ci.yml
- .ci/*/*
- .gitlab-ci.yml
before_script:
- "echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories"
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/ruff.sh - .ci/ruff.sh
...@@ -55,8 +50,9 @@ ruff: ...@@ -55,8 +50,9 @@ ruff:
# shellcheck and various grep checks # shellcheck and various grep checks
shellcheck-grep: shellcheck-grep:
stage: lint stage: lint
<<: *only-default
image: alpine:edge image: alpine:edge
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/shellcheck.sh - .ci/shellcheck.sh
...@@ -65,8 +61,9 @@ shellcheck-grep: ...@@ -65,8 +61,9 @@ shellcheck-grep:
editor-config: editor-config:
stage: lint stage: lint
<<: *only-default
image: alpine:edge image: alpine:edge
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/ec.sh - .ci/ec.sh
...@@ -74,7 +71,8 @@ editor-config: ...@@ -74,7 +71,8 @@ editor-config:
# aports checks (generic) # aports checks (generic)
pytest-commits: pytest-commits:
stage: lint stage: lint
<<: *only-default rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/pytest.sh - .ci/pytest.sh
...@@ -90,23 +88,21 @@ pytest-commits: ...@@ -90,23 +88,21 @@ pytest-commits:
# APKBUILD linting # APKBUILD linting
aport-lint: aport-lint:
stage: lint stage: lint
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/apkbuild-lint.sh - .ci/apkbuild-lint.sh
only:
- merge_requests
allow_failure: true allow_failure: true
# kernel kconfig check # kernel kconfig check
kernel-kconfig: kernel-kconfig:
stage: lint stage: lint
only: rules:
refs: - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
- master changes:
- merge_requests - device/*/linux-*/config-*
changes: - main/linux-*/config-*
- device/*/linux-*/config-*
- main/linux-*/config-*
script: script:
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
- .ci/kconfig.sh - .ci/kconfig.sh
...@@ -115,9 +111,10 @@ kernel-kconfig: ...@@ -115,9 +111,10 @@ kernel-kconfig:
# (Checks for "Allow commits from members who can merge to the target branch") # (Checks for "Allow commits from members who can merge to the target branch")
mr-settings: mr-settings:
stage: lint stage: lint
only: rules:
- merge_requests - if: $CI_PIPELINE_SOURCE == "merge_request_event"
before_script: before_script:
- *global_before_scripts
- apk -q add python3 - apk -q add python3
script: script:
- wget -q "https://gitlab.com/postmarketOS/ci-common/-/raw/master/check_mr_settings.py" - wget -q "https://gitlab.com/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
...@@ -126,8 +123,10 @@ mr-settings: ...@@ -126,8 +123,10 @@ mr-settings:
# build changed aports # build changed aports
.build: .build:
stage: build stage: build
<<: *only-default rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
before_script: before_script:
- *global_before_scripts
- .ci/lib/gitlab_prepare_ci.sh - .ci/lib/gitlab_prepare_ci.sh
after_script: after_script:
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true - cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
......
<!-- <!--
Thank you for using postmarketOS! In order to speed up process of resolving your issue, Thank you for using postmarketOS! In order to speed up process of resolving your issue,
we would like you to fill in the following : we would like you to fill in the following form.
*** NOTE FOR CONFIDENTIAL ISSUES: ***
A lot of people can read confidential pmaports issues! If you want to
submit something that only the postmarketOS Core Team can see, write to
team@postmarketos.org
instead of opening an issue here!
--> -->
### Describe your issue ### Describe your issue
#### What's the expected behaviour? #### What's the expected behaviour?
...@@ -22,7 +28,6 @@ ...@@ -22,7 +28,6 @@
--> -->
* [ ] edge (`master` branch) * [ ] edge (`master` branch)
* [ ] `v23.12` * [ ] `v23.12`
* [ ] `v23.06` (supported until 2024-01-18)
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a` * [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
......
# https://docs.gitlab.com/ee/user/project/code_owners.html # 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-golfu/ @Newbyte
device/*/*-pine64-pinephone/ @craftyguy @milesalan @bshah @proycon @anjandev @StacyHarper @Arnavion
device/*/*-htc-m8qlul/ @Newbyte device/*/*-htc-m8qlul/ @Newbyte
device/*/*-purism-librem5/ @craftyguy @bshah device/*/*-lenovo-21bx/ @craftyguy
device/*/device-lg-judyln/ @Newbyte device/*/*-lenovo-a6000/ @jenneron @Minecrell
device/*/device-samsung-m0/ @Newbyte device/*/*-lenovo-a6010/ @jenneron @Minecrell
device/*/linux-postmarketos-exynos4/ @Newbyte device/*/*-librecomputer-lafrite/ @funderscore
device/*/linux-postmarketos-qcom-msm8939/ @Newbyte device/*/*-librecomputer-lepotato/ @funderscore
device/*/linux-postmarketos-stericsson/ @Newbyte 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-sdm845/ @sdm845-mainline 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/*/*-videostrong-kii-pro/ @funderscore
device/*/*-wileyfox-crackling/ @TravMurav @Minecrell
device/*/*-xiaomi-beryllium/ @joelselvaraj device/*/*-xiaomi-beryllium/ @joelselvaraj
device/*/device-oneplus-enchilada/ @calebccff device/*/*-xiaomi-daisy/ @joelselvaraj @alikates
device/*/device-oneplus-fajita/ @calebccff device/*/*-xiaomi-markw/ @vipaoL
device/*/firmware-oneplus-sdm845/ @calebccff device/*/*-xiaomi-mido/ @barni2000
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche device/*/*-xiaomi-scorpio/ @Tooniis
device/*/*-lenovo-21bx/ @craftyguy device/*/*-xiaomi-tissot/ @jiaxyga @barni2000
device/*/*-lenovo-a6010/ @jenneron device/*/*-xiaomi-vince/ @M0Rf30
device/*/*-lenovo-a6000/ @jenneron device/*/*-xiaomi-wt88047/ @Minecrell
device/*/device-microsoft-surface-rt/ @jenneron device/*/*-xiaomi-ysl/ @barni2000
device/*/alsa-ucm-conf-cros/ @WeirdTreeThing
device/*/device-fairphone-*/ @z3ntu
device/*/device-generic-x86_64/ @craftyguy @ollieparanoid
device/*/device-google-nyan-big/ @jenneron device/*/device-google-nyan-big/ @jenneron
device/*/device-google-peach-pi/ @jenneron
device/*/linux-google-veyron/ @jenneron
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
device/*/soc-mediatek-mt8183/ @jenneron
device/*/linux-google-nyan/ @jenneron
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
device/*/device-google-nyan-blaze/ @jenneron device/*/device-google-nyan-blaze/ @jenneron
device/*/firmware-powervr-gx6250/ @jenneron device/*/device-google-peach-pi/ @jenneron
device/*/device-google-snow/ @jenneron
device/*/firmware-google-veyron-brcm/ @jenneron
device/*/device-google-peach-pit/ @jenneron device/*/device-google-peach-pit/ @jenneron
device/*/device-google-snow/ @jenneron
device/*/device-huawei-plank/ @gtrxAC
device/*/device-lg-judyln/ @Newbyte
device/*/device-lg-judyp/ @jenneron device/*/device-lg-judyp/ @jenneron
device/*/linux-postmarketos-grate/ @clamor95 @jenneron device/*/device-microsoft-surface-rt/ @jenneron @jethrob
device/*/device-samsung-chagallwifi/ @Grimler device/*/device-nvidia-tegra-armv7/ @clamor95 @okias @mschwalm @nokun
device/*/device-odroid-xu4/ @Grimler device/*/device-odroid-xu4/ @Grimler
device/*/device-oneplus-enchilada/ @calebccff
device/*/device-oneplus-fajita/ @calebccff
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-samsung-chagallwifi/ @Grimler
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk
device/*/device-samsung-j5y17lte/ @andrisas
device/*/device-samsung-klimtlte/ @Grimler device/*/device-samsung-klimtlte/ @Grimler
device/*/linux-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/*/firmware-google-veyron-brcm/ @jenneron
device/*/firmware-odroid-xu4/ @Grimler device/*/firmware-odroid-xu4/ @Grimler
device/*/linux-samsung-chagallwifi/ @Grimler device/*/firmware-oneplus-sdm845/ @calebccff
device/*/device-huawei-plank/ @gtrxAC device/*/firmware-powervr-gx6250/ @jenneron
device/*/linux-google-nyan/ @jenneron
device/*/linux-google-veyron/ @jenneron
device/*/linux-huawei-plank/ @gtrxAC device/*/linux-huawei-plank/ @gtrxAC
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame
device/*/linux-postmarketos-amlogic/ @funderscore @exkc
device/*/linux-postmarketos-exynos4/ @Newbyte @ThiagaoPlusPlus
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
device/*/linux-postmarketos-grate/ @clamor95 @jenneron @jethrob
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-coreprimevelte/ @legolivesmatter @balejk
device/*/linux-postmarketos-allwinner/ @Arnavion
device/*/u-boot-pinephone/ @Arnavion
device/*/device-samsung-j5y17lte/ @andrisas
device/*/linux-samsung-j5y17lte/ @andrisas device/*/linux-samsung-j5y17lte/ @andrisas
device/*/linux-samsung-klimtlte/ @Grimler
main/postmarketos-update-depthcharge-kernel/ @jenneron device/*/oem-amd/ @craftyguy
device/*/oem-intel/ @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-ui-plasma-mobile/ @bshah main/postmarketos-ui-plasma-mobile/ @bshah
main/ttyescape/ @calebccff
main/shutdown-clear-rtc-wakealarm/ @Arnavion main/shutdown-clear-rtc-wakealarm/ @Arnavion
device/*/u-boot-librem5/ @craftyguy @bshah main/ttyescape/ @calebccff
device/*/alsa-ucm-conf-google-kukui/ @jenneron @binarycraft
device/*/alsa-ucm-conf-google-gru/ @jenneron
device/*/*-videostrong-kii-pro/ @vitali64yt
device/*/*-amlogic-s905*/ @vitali64yt
device/*/linux-postmarketos-amlogic/ @vitali64yt @exkc
# vim: ts=8 sw=4 et
...@@ -8,6 +8,12 @@ branch_pmaports=master ...@@ -8,6 +8,12 @@ branch_pmaports=master
branch_aports=master branch_aports=master
mirrordir_alpine=edge mirrordir_alpine=edge
[v24.06]
description=Upcoming stable release (DO NOT USE)
branch_pmaports=v24.06
branch_aports=3.20-stable
mirrordir_alpine=v3.20
[v23.12] [v23.12]
description=Latest release / Recommended for best stability description=Latest release / Recommended for best stability
branch_pmaports=v23.12 branch_pmaports=v23.12
......
...@@ -8,7 +8,7 @@ fi ...@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-aarch64 pkgname=busybox-static-aarch64
pkgver=1.36.1 pkgver=1.36.1
pkgrel=20 pkgrel=26
_arch="aarch64" _arch="aarch64"
_mirror="http://dl-4.alpinelinux.org/alpine/" _mirror="http://dl-4.alpinelinux.org/alpine/"
...@@ -32,5 +32,5 @@ package() { ...@@ -32,5 +32,5 @@ package() {
} }
sha512sums=" sha512sums="
6ef7c101558c9fb545091df7641ad3c189e08d1f3aeac8aa06f7b26fe22a71e26532a44e1ec6497f11e610ad0924fcc7d26d301d8579fb38ff5ba7f68452cc95 busybox-static-1.36.1-r20-aarch64-edge.apk 0f5f1eb32691016183d9a3011c5643f70a1cdc9f49b1ffefce732cff960cfea4d0db1670564fff5504654bb2f07857e62e5dd076fb40d2c361c441854e5d5e5c busybox-static-1.36.1-r26-aarch64-edge.apk
" "
...@@ -8,7 +8,7 @@ fi ...@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armhf pkgname=busybox-static-armhf
pkgver=1.36.1 pkgver=1.36.1
pkgrel=20 pkgrel=26
_arch="armhf" _arch="armhf"
_mirror="http://dl-4.alpinelinux.org/alpine/" _mirror="http://dl-4.alpinelinux.org/alpine/"
...@@ -32,5 +32,5 @@ package() { ...@@ -32,5 +32,5 @@ package() {
} }
sha512sums=" sha512sums="
36d07706cda44704c2e78d6bfcf9c1b6091640c57606a3af470edfe6781d0331008f05f05b32e96e81075d6cf00b465fdbf1a30d0a72a00a19d9be190c18ce7b busybox-static-1.36.1-r20-armhf-edge.apk ad4db0c989c1a4773f75411c2749bcc8d25756d20396cdb6bfa59bd5ed14164928c602e9833101e584b28490971f6d43973a9c7de9c544693aef40dbe183cabc busybox-static-1.36.1-r26-armhf-edge.apk
" "
...@@ -8,7 +8,7 @@ fi ...@@ -8,7 +8,7 @@ fi
pkgname=busybox-static-armv7 pkgname=busybox-static-armv7
pkgver=1.36.1 pkgver=1.36.1
pkgrel=20 pkgrel=26
_arch="armv7" _arch="armv7"
_mirror="http://dl-4.alpinelinux.org/alpine/" _mirror="http://dl-4.alpinelinux.org/alpine/"
...@@ -32,5 +32,5 @@ package() { ...@@ -32,5 +32,5 @@ package() {
} }
sha512sums=" sha512sums="
5a97bcfe60e963197d27cce967d24226e1b677158d9119ff48cfe3ac0b2208bcf00dd2e95abb8176b4a35d279204240020427ce5acf3b8193268d75b827be971 busybox-static-1.36.1-r20-armv7-edge.apk f6664d29ecb22e396133116210d792e101fa552b4f4d2295de19af460830bbb151a2d3c4a7b7bbe1596d7b3ed85042f10dae49d78ae4e6ac053ed565f9043c01 busybox-static-1.36.1-r26-armv7-edge.apk
" "
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
pkgname=grub-efi-x86 pkgname=grub-efi-x86
pkgver=2.12 pkgver=2.12
pkgrel=2 pkgrel=3
_arch="x86" _arch="x86"
_mirror="http://dl-4.alpinelinux.org/alpine/" _mirror="http://dl-4.alpinelinux.org/alpine/"
...@@ -22,5 +22,5 @@ package() { ...@@ -22,5 +22,5 @@ package() {
} }
sha512sums=" sha512sums="
2337e5db9d3502b56f1166f0648a15f2264d207e717dfbd0c8bbb9de4546dee069dbc2b55f2c7c48bfee062d7ca17b56e97b6eaa725af0479ab49e2cb5f178a3 grub-efi-2.12-r2-x86-edge.apk 4bd0750236a556ad833c27892a55624a324e8ec7cadb0b7287cabd3a9cdded836357ae959aea7ba828be8727b86c6ed4844a1572b68ad3ce3f3e6f913e43ae72 grub-efi-2.12-r3-x86-edge.apk
" "
From 3810f128e9ecf04cf07d243cd377fcb6046cfd73 Mon Sep 17 00:00:00 2001
From: Newbyte <newbyte@postmarketos.org>
Date: Tue, 30 Apr 2024 17:57:20 +0200
Subject: [PATCH] ARM: 8933/1: replace Sun/Solaris style flag on section
Taken from
linux3.4-ARM-8933-1-replace-Sun-Solaris-style-flag-on-section.patch
and adapted for the Exynos 4412 vendor sources.
---
arch/arm/boot/bootp/init.S | 2 +-
arch/arm/boot/compressed/big-endian.S | 2 +-
arch/arm/boot/compressed/head.S | 2 +-
arch/arm/mm/proc-v7.S | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/bootp/init.S b/arch/arm/boot/bootp/init.S
index 78b50807516..868eeeaaa46 100644
--- a/arch/arm/boot/bootp/init.S
+++ b/arch/arm/boot/bootp/init.S
@@ -16,7 +16,7 @@
* size immediately following the kernel, we could build this into
* a binary blob, and concatenate the zImage using the cat command.
*/
- .section .start,#alloc,#execinstr
+ .section .start, "ax"
.type _start, #function
.globl _start
diff --git a/arch/arm/boot/compressed/big-endian.S b/arch/arm/boot/compressed/big-endian.S
index 25ab26f1c6f..f22428e275f 100644
--- a/arch/arm/boot/compressed/big-endian.S
+++ b/arch/arm/boot/compressed/big-endian.S
@@ -5,7 +5,7 @@
* Author: Nicolas Pitre
*/
- .section ".start", #alloc, #execinstr
+ .section ".start", "ax"
mrc p15, 0, r0, c1, c0, 0 @ read control reg
orr r0, r0, #(1 << 7) @ enable big endian mode
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 63cfa2e9236..3cd67aa3855 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -112,7 +112,7 @@
#endif
.endm
- .section ".start", #alloc, #execinstr
+ .section ".start", "ax"
/*
* sort out different calling conventions
*/
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index e1687990af9..a479702f198 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -519,7 +519,7 @@ __v7_setup_stack:
string cpu_elf_name, "v7"
.align
- .section ".proc.info.init", #alloc, #execinstr
+ .section ".proc.info.init", "ax"
/*
* Standard v7 proc info content
--
2.44.0
From c6b821b1281f7ce2b54aad3b0b2acd0e29039c8f Mon Sep 17 00:00:00 2001
From: Stefan Hansson <newbyte@postmarketos.org>
Date: Mon, 6 May 2024 10:59:58 +0200
Subject: [PATCH] Fix lzma piggy
---
arch/arm/boot/compressed/piggy.lzma.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/compressed/piggy.lzma.S b/arch/arm/boot/compressed/piggy.lzma.S
index d7e69cffbc0..cfea81ae8f4 100644
--- a/arch/arm/boot/compressed/piggy.lzma.S
+++ b/arch/arm/boot/compressed/piggy.lzma.S
@@ -1,4 +1,4 @@
- .section .piggydata,#alloc
+ .section .piggydata, "a"
.globl input_data
input_data:
.incbin "arch/arm/boot/compressed/piggy.lzma"
--
2.45.0
From 6083916292864215fe4af6c0829186d5cc520f7f Mon Sep 17 00:00:00 2001
From: Stefan Hansson <newbyte@postmarketos.org>
Date: Mon, 6 May 2024 19:08:35 +0200
Subject: [PATCH] Fix lzo piggy
---
arch/arm/boot/compressed/piggy.lzo.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/compressed/piggy.lzo.S b/arch/arm/boot/compressed/piggy.lzo.S
index a425ad95..236976d8 100644
--- a/arch/arm/boot/compressed/piggy.lzo.S
+++ b/arch/arm/boot/compressed/piggy.lzo.S
@@ -1,4 +1,4 @@
- .section .piggydata,#alloc
+ .section .piggydata, "a"
.globl input_data
input_data:
.incbin "arch/arm/boot/compressed/piggy.lzo"
--
2.45.0