313 Commits
Author SHA1 Message Date
Aster Boese 59beb3ba91 ci: shellcheck: update mkinitfs hook paths
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8413>
2026-04-23 19:04:55 +00:00
Stefan Hansson a184bf63e2 linux-postmarketos-allwinner: HACK: disable cross-native
To avoid issue described here:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295#note_5453

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:07 +00:00
Aelin 4e97050cf4 CI: build-jobs: Pull from Alpine's registry
Dockerhub does not support loongarch64, but Alpine's registry does. We
need to hardcode the latest stable release here until the latest tag is
made to point at a stable release rather than edge.

Fixes: a0bc3115a9 ("CI: build-jobs: use Alpine stable")
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8353>
2026-04-14 06:08:31 +00:00
Oliver Smith a0bc3115a9 CI: build-jobs: use Alpine stable
Fix that the build-jobs were using Alpine edge. This seems
unintentional, or at least inconsistent. Before this patch we had:

  $ git grep alpine:latest
  .ci/build-jobs.yaml.j2:image: registry.alpinelinux.org/img/alpine:latest
  .gitlab-ci.yml:image: alpine:latest

It turns out that "registry.alpinelinux.org/img/alpine:latest" is
actually alpine edge:

  $ docker run --rm registry.alpinelinux.org/img/alpine:latest cat /etc/os-release
  Unable to find image 'registry.alpinelinux.org/img/alpine:latest' locally
  latest: Pulling from img/alpine
  d4a983187cfd: Pull complete
  Digest: sha256:47b4a945203d4bad4e0c7840d64044da50a719d0cd0512a50e3ab473240635ea
  Status: Downloaded newer image for registry.alpinelinux.org/img/alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.21.0_alpha20240923
  PRETTY_NAME="Alpine Linux edge"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

And alpine:latest is stable (when fetched from docker hub, with podman
it could be configured to point at alpine's registry as well, which
means it is edge... but the OSUOSL CI runners use docker):

  $ docker run --rm alpine:latest cat /etc/os-release
  Unable to find image 'alpine:latest' locally
  latest: Pulling from library/alpine
  589002ba0eae: Already exists
  Digest: sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
  Status: Downloaded newer image for alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.23.3
  PRETTY_NAME="Alpine Linux v3.23"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

Using stable makes more sense here, so temporary bugs in edge don't
break our CI. It is currently somewhat broken because running
pmbootstrap with python 3.14 and musl results in crashes with "No file
descriptors available" errors in some situations.

Related: https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/work_items/141
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8340>
2026-04-12 19:29:04 +00:00
Clayton Craft 5d73bec629 ci/shellcheck: add duranium scripts
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Achill Gilgenast e38532b7f7 ci: relax pkgrel changes for packages that don’t have remote sources
Motivation is to avoid unnecessary overhead for MR authors & no reason to
actually use pkgrel for meta-packages.

So instead, recommend pkgver-bumps & pkgrel=0 for metapackages, but don't
block MRs when they bumped the "wrong" one. Just make everyone's life easier.

Discussed at <https://docs.postmarketos.org/policies-and-processes/governance/team-meetings/meeting-notes.html> (2026-03-16)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8302>
2026-04-10 12:08:26 +00:00
Luca Weiss 1ab8eefdd5 CI: Run dint job on all files on deviceinfo_schema.toml change
Similar to kconfigcheck.toml, let's run the dint job on all deviceinfo
files when the spec itself is changed. This allows to catch possible new
warnings and errors early and fix them.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8139>
2026-03-20 01:57:32 +00:00
Aster Boese 5da1b74db0 ci: replace master strings with main
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8183>
2026-03-15 17:47:40 +00:00
Aelin a3e0b0db8d ci: Require maintainers for new packages
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8171>
2026-03-14 11:23:21 +00:00
Pablo Correa Gómez cb182b59ca ci: don't set the CI_TRON_KERNEL_CMDLINE__DEVICEINFO globally
This breaks the oneplus-fajita, since its own console argument is not
picked. And the other options don't make sense there anyway.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:36 +00:00
Pablo Correa Gómez ee7c30c4f6 ci: skip "docs" folder as part of get_changed_packages test
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:36 +00:00
Pablo Correa Gómez ac541f7afb ci: small simplification in generate_build_jobs
We don't need to check against "is_present_in_ci", since we already
did not consider devices that did not have a gitlab_ci_fragment

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:12 +00:00
Pablo Correa Gómez a74918cca6 ci: define the kind of tests to run in each jinja template
This is the main entrypoint to understand what tests each device is
running. Therefore, it avoids one extra level of indirection, and
allows for different devices to run different kind of tests in the
future.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:08 +00:00
Stefan Hansson cfff222fb2 CI: Add mypy check
Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7960>
2026-03-12 18:53:15 +00:00
Stefan Hansson 38434fbed9 CI: lib/generate_build_jobs.py: Fix type error
Caught by mypy.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7960>
2026-03-12 18:53:15 +00:00
Luca Weiss eecf3e2080 ci: check_devices_in_wiki: Skip packages in 'archived' category
Per definition, those are not available anymore, so stop trying to
validate them.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8035>
2026-02-18 22:04:39 +01:00
Pablo Correa Gómez f31d40626a ci: update ci-common template
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7927>
2026-02-04 18:46:15 +01:00
Aelin 4b01acf1ec ci: Lint when LLVM is not used for a new or moved mainline kernel package
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7920>
2026-02-04 13:35:24 +00:00
Pablo Correa Gómez bad5420f36 ci: fix typo and more printing in generate_build_jobs
There is usually a benefit of having CI jobs print properly what is
going on.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:25 +00:00
Pablo Correa Gómez ddb822187a ci: make removed=False the default for get_changed_files
Eventually we probably want this everywhere.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:25 +00:00
Pablo Correa Gómez 67045e0cbd ci: use more removed=False for get_changed_files
Most of the things don't really need it.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:22 +00:00
Pablo Correa Gómez 6fb42ecb3f ci: enable unused-import in ruff
This was not possible to remove while add_pmbootstrap_to_import_path
was in use, since that module wasn't actually used, but just
imported. As the previous commit shows, this was important to have
enabled.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:18 +00:00
Pablo Correa Gómez fe7af59c58 ci: remove unused imports
As detected and fixed by ruff

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:18 +00:00
Pablo Correa Gómez 41e2d23210 ci: remove add_pmbootstrap_to_import_path
Unused since the previous commit

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:18 +00:00
Pablo Correa Gómez 69e772d561 ci: remove unnecessary add_pmbootstrap_to_import_path
Since the previous commit we just set the PYTHONPATH globally, which
is saner than include this everywhere.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:18 +00:00
Pablo Correa Gómez e01c66bb46 ci: set PYTHONPATH for the pmb module globally
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:14 +00:00
Pablo Correa Gómez c38534993e ci: rename script run by kconfig.sh to be consistent with its name
This makes it easier to navigate the CI code

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:14 +00:00
Pablo Correa Gómez 32e058f2ea ci: rename commits ci script to check-changed-versions
So it actually explains what it does. In the process, make the name of
the Python file it executes also consistent.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:14 +00:00
Pablo Correa Gómez ba2237700a ci: update reasons for using 'native'
Just requiring pmbootstrap installed is no reason to run 'native', as
other tests show. Now the messages are also consistent.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:11 +00:00
Pablo Correa Gómez 5d8c30c8e9 ci: enable a few ruff checks
These are all already functional. The only one missing is unused
imports due to "add_pmbootstrap_to_import_path"

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:07 +00:00
Stefan Hansson cc2725aa49 CI: remove pmb:gpu-accel from custom_valid_options
This is not used anywhere in pmaports any more and it has been
deprecated for a while, so let's finally get rid of it.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7847>
2026-01-28 13:21:45 +00:00
Clayton Craft f68c270d4d ci/deviceinfo_linting: only line deviceinfo files in the devices repo
If devicepkg-dev changes, we don't want to lint the test deviceinfo
files there...

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7830>
2026-01-27 12:33:06 -08:00
Aelin 933414e7d1 ci: Add pmb:generic-kernel to custom valid options
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7844>
2026-01-26 09:37:54 +00:00
Aelin 2056701d6c ci: Drop KERNEL_NAME
Only Alpine kernels use the vmlinuz-VARIANT naming scheme, postmarketOS
kernel images are always called vmlinuz.

Since we only use our own kernels now, we can completely get rid of the
variable and always look for vmlinuz.

[ci:skip-vercheck]: the checks can't handle bumping pkgver *and* pkgrel
[ci:skip-build]: takes a long time and already built successfully in CI

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7398>
2026-01-24 22:29:22 +00:00
Pablo Correa Gómez af81f21fba ci: simplify local usage of generate_build_jobs
There's no need why we can't have a default value

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7725>
2026-01-24 22:09:38 +00:00
Clayton Craft 2d9bbc368d ci: hardcode ci-tron DUT kernel cmdline
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7708>
2026-01-23 15:06:19 -08:00
Achill Gilgenast cb468c0b75 main/postmarketos-mvcfg: remove
Deprecated. See
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3580,
lets remove it.

Removed the last users in the last commits.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7750>
2026-01-23 21:04:56 +00:00
Stefan Hansson 45c750a9fd CI: check for maintainer comments
We don't want to accidentally introduce these again since we
deliberately switched all packages to maintainer variables. While this
probably could be made part of apkbuild-lint eventually, the Alpine TSC
hasn't yet made a decision about whether to switch to maintainer
variables or not to the best of my knowledge so I don't think it can be
made upstream policy yet. Make it a clear downstream policy via this
check for now as such.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7824>
2026-01-23 15:47:49 +00:00
Stefan Hansson e331eb74f8 CI: remove package count check
Closes https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4278

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7822>
2026-01-23 13:47:00 +00:00
Aster Boese d1dc06cd1f ci: pytest: test_provides: ignore kernel fragments
Kernel fragments are not packaged nor used for building the kernels, since only the full
config is used at build-time. As such, they shouldn't be included in the checksums.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7798>
2026-01-22 23:41:00 +00:00
Pablo Correa Gómez 55a97f8085 ci: fix generation of build-jobs.yaml on devices without kernel variants
The check in Python did not work with devices without kernel variants
due to it returning None and that breaking the has_kernel_variants
check. Fix that, and also adding the kernel variant to install
packages, which was missed. In the process, rename kernels to
kernel_variants. All devices have at least one kernel, but not all
have "variants" :)

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7489>
2026-01-15 07:48:41 +00:00
Pablo Correa Gómez b7de1b3108 ci: enable support for fastboot devices in ci-tron
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7489>
2026-01-15 07:48:41 +00:00
Pablo Correa Gómez 37ec13a7ee ci: update ci-tron vendored dependencies
This should fix missing logs on error like in
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/jobs/1465845

[ci:skip-vercheck]

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7761>
2026-01-14 15:26:51 -08:00
Pablo Correa Gómez 11e8136f44 ci: fetch ci-common files from "main" branch
Relates https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/issues/122

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7726>
2026-01-14 16:48:52 +00:00
Aelin 38acf0cfdd Build loongarch64 in CI and mark it as supported
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7738>
2026-01-13 14:31:30 +00:00
Aelin 47f342bfcb ci: Use base image from Alpine container registry
Docker does not support loongarch64 for official images yet. Alpine
publishes images for all architectures on their registry, so just use
that instead.

See also https://gitlab.alpinelinux.org/alpine/docker-abuild/-/merge_requests/71

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7738>
2026-01-13 14:31:30 +00:00
Clayton CraftandDylan Van Assche 5971d0f226 main/postmarketos-usb-moded: use a generator to configure UID/GID for umtprd
MTP transfers write files to the home folder of the user.
If no GID and UID are specified, uMTP-responder will use the GID/UID
under which it is running at the time of the file transfer.
This causes users to not be able to access the files on the device after transfering.

This patch adds a systemd generator that:

1) reads /etc/default_user, and appends config to
   /etc/umtprd/umtprd.conf to set the MTP default user/group. If this
   file doesn't exist, 10000:10000 is the fallback uid:gid.
2) installs this config to /run/umtprd/umptrd.conf
3) adds a unit override to /run for umtprd.service that runs the daemon
   with this modified config

The generator is used instead of hardcoding a uid and gid in umtprd.conf
so that this can support immutable installs or situations where the
default UID/GID is not 10000.

Co-authored-by: Dylan Van Assche <dylan@postmarketos.org>
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7658>
2026-01-05 10:15:18 +00:00
Stefan Hansson a652a6f334 CI: Set args.ccache in conftest.py
Fixes CI being broken everywhere:

      File "/builds/postmarketOS/pmaports/.ci/testcases/conftest.py", line 32, in args
        init_args(args)
      File "/tmp/pmbootstrap/pmb/helpers/args.py", line 94, in init
        context.ccache = args.ccache
                     ^^^^^^^^^^^
    AttributeError: 'PmbArgs' object has no attribute 'ccache'

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7670>
2025-12-29 23:37:03 +01:00
Dylan Van Assche c5a8b1b6cd CI: tethering script is removed
usb-moded takes over tethering from NM

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6531>
2025-12-27 22:44:27 -08:00
Pablo Correa Gómez cd5aaf8e9f ci: cache get_base_commit function calls
The commit shall not be updated during a CI run, and this calls git
fetch, which is considerably slow at times. This reduces the git fetch
calls down to 1 from 3 in the generate-build-jobs step.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7649>
2025-12-27 01:19:44 +00:00