Skip to content
Snippets Groups Projects
  1. Apr 15, 2025
    • Oliver Smith's avatar
      lint: adjust comment for empty apkbuild_paths · 9e8c4b28
      Oliver Smith authored
      Part-of: !2584
      Unverified
      9e8c4b28
    • Clayton Craft's avatar
      pmb.lint: Don't try to lint apkbuild paths that are empty · 7ab40a43
      Clayton Craft authored and Casey's avatar Casey committed
      This fixes an issue where pmb lint tries to lint an apkbuild using a repo path that the apkbuild doesn't exist in.
      For example, it fixes this:
      
      ```
      [22:13:26] (native) linting postmarketos-ui-cosmic with apkbuild-lint
      [22:13:26] *** apkbuild-lint output ***
      Error: File APKBUILD does not exist
      [22:13:26] *** apkbuild-lint output ***
      [22:13:26] ERROR: Linter failed!
      Traceback (most recent call last):
        File "/builds/postmarketOS/pmaports/.ci/lib/apkbuild_linting.py", line 26, in <module>
          common.run_pmbootstrap(["-q", "lint"] + packages)
        File "/builds/postmarketOS/pmaports/.ci/lib/common.py", line 52, in run_pmbootstrap
          subprocess.run(cmd, universal_newlines=True, check=True)
        File "/usr/lib/python3.12/subprocess.py", line 571, in run
          raise CalledProcessError(retcode, process.args,
      subprocess.CalledProcessError: Command '['pmbootstrap', '--aports', '/builds/postmarketOS/pmaports', '-q', 'lint', 'postmarketos-ui-cosmic']' returned non-zero exit status 2.
      ```
      
      Part-of: !2584
      Unverified
      7ab40a43
  2. Apr 11, 2025
  3. Apr 08, 2025
  4. Mar 17, 2025
    • Oliver Smith's avatar
      pmb.helpers.apk: support PMB_APK_NO_CACHE · 4bf3f11b
      Oliver Smith authored
      Add a new environment variable that disables apk's caching feature for
      space constrained environments such as the bpo image build jobs.
      
      Currently we have a workaround in place in bpo: the apk cache is moved
      to a tmpfs. But this is fragile and just disabling the apk cache is a
      more elegant solution.
      
      I've decided to make this an env var instead of a full pmbootstrap
      option since this option is not relevant for normal users, only for CI
      jobs in space constrained environments. Also we already have another
      `PMB_APK_` env var.
      
      Related: bpo issue 136
      Part-of: !2553
      Unverified
      4bf3f11b
  5. Feb 27, 2025
    • Casey's avatar
      core: Arch: add .supported_binary() (MR 2474) · 801437e6
      Casey authored and Oliver Smith's avatar Oliver Smith committed
      
      The .supported() method errs on the side of exposing too many
      architectures to make porting for new or less-common platforms easier.
      
      It therefore isn't suitable for using as a list of supported
      architectures we can probe the binary repository for.
      
      Introduce a .supported_binary() method to export only the architectures
      where we have a binary repository.
      
      Signed-off-by: default avatarCaleb Connolly <caleb@postmarketos.org>
      Unverified
      801437e6
  6. Feb 26, 2025
  7. Feb 16, 2025
  8. Feb 13, 2025
  9. Feb 02, 2025
  10. Jan 16, 2025
  11. Jan 15, 2025
  12. Jan 10, 2025
    • Oliver Smith's avatar
      repo_missing: ensure pkgs don't depend on themselves · 35d1a7b1
      Oliver Smith authored
      For some reason, gnome-shell-mobile depends on itself with current
      resolving code. Ensure this does not happen.
      Unverified
      35d1a7b1
    • Oliver Smith's avatar
      repo_missing: fix picking wrong package info · 6da1b6d6
      Oliver Smith authored
      Fix that repo_missing would pick the wrong package information if a
      package is in both the normal repository and the split repository.
      
      This would lead to having the wrong version and depends:
      
              "pkgname": "gnome-shell-mobile",
              "repo": null,  # not in the systemd repo
              "version": "99946.1-r1",
              "depends": [
      
      Instead of the correct version:
      
              "pkgname": "gnome-shell-mobile",
              "repo": null,  # not in the systemd repo
              "version": "46.1-r1",
              "depends": [
      
      Fix this by calling pmb.parse.apkbuild() directly with the APKBUILD path
      when iterating over the APKBUILDs, instead of pmb.helpers.package.get().
      Unverified
      6da1b6d6
    • Oliver Smith's avatar
      repo_missing: ensure abuild is not twice in deps · 3ddb725e
      Oliver Smith authored
      Fix that abuild gets added twice in packages that exist in both the main
      and split systemd repository:
      
              "pkgname": "gnome-settings-daemon-mobile",
              "repo": null,
              "version": "99946.0-r0",
              "depends": [
                  "abuild",
                  "abuild",
                  "alsa-lib-dev",
                  "colord-dev",
      
      This fixes the following error in bpo when it tries to use the output of
      "pmbootstrap repo_missing":
      
        UNIQUE constraint failed: package_dependency.package_id, package_dependency.dependency_id
      
      Related: https://postmarketos.org/edge/2025/01/09/systemd-soon/
      Unverified
      3ddb725e
    • Oliver Smith's avatar
      repo_missing: if abuild is forked, add it as dep (MR 2410) · 02591cfd
      Oliver Smith authored
      In the systemd repository, we currently have a forked version of
      abuild, which needs to be used to build all other packages. Check if we
      have a forked abuild, and if it is the case, add it to the dependencies
      of all other packages.
      
      Closes: issue 2401
      Unverified
      02591cfd
    • Oliver Smith's avatar
      Rewrite repo_missing for bpo + systemd split repo (MR 2410) · 8d446c2a
      Oliver Smith authored
      The "pmbootstrap repo_missing" action is used exclusively by bpo. It
      calls it only with these arguments:
      
        pmbootstrap repo_missing --built --arch "$ARCH"
      
      A blocker for merging systemd into pmaports master is, that the
      current repo_missing code cannot display packages that are both in
      extra-repos/systemd and in another path. I have considered just not
      supporting this and discussed doing that with Caleb and Clayton, but we
      figured it would be a major obstacle in the future to not be able to
      easily override packages with systemd specific versions (currently we
      need this for 3 packages).
      
      Integrating this into the existing repo_missing code would be hacks upon
      hacks. Also the scope of the current repo_missing code has many extra
      features that are not used and would be extra effort to carry along:
      * Allow specifying a pkgname
      * Running without --built
      * --overview
      
      So I decided to replace the repo_missing code with a much simpler, more
      modern implementation, that does exactly what is needed:
      * Duplicate packages in systemd and non-systemd dirs are displayed
      * The output always include all packages, no matter if they are already
        built or not (same behavior as with --built)
      * Removed --overview and selecting specific packages too
      * The code for filling "repo" (either "systemd" or None) is more
        resilient now, as it can use proper relative paths to the root of
        pmaports. Unlike the previous implementation, it will not fail if
        subdirs are added to the systemd dir.
      
      I have made sure that the output is exactly the same as before on
      current pmaports master.
      
      Related: bpo issue 144
      Related: bpo issue 140
      Unverified
      8d446c2a
  13. Jan 02, 2025
  14. Dec 20, 2024
  15. Dec 19, 2024
  16. Dec 10, 2024
  17. Dec 03, 2024
  18. Nov 25, 2024
    • Jens Reidel's avatar
      helpers: pmaports: Always fall back to parsing all APKBUILDS (MR 2476) · 822e89ed
      Jens Reidel authored
      
      Previously, it would only fall back to parsing all APKBUILDs if a main
      package was guessed for this potential subpackage. We do however want to
      scan all APKBUILDs in case the package is provided by one of the
      packages in pmaports.
      
      Signed-off-by: default avatarJens Reidel <adrian@travitia.xyz>
      Unverified
      822e89ed
    • Jens Reidel's avatar
      helpers: pmaports: Fix package detection for cross g++ and musl-dev (MR 2476) · e2354ec2
      Jens Reidel authored
      
      g++ is a subpackage of gcc, but cannot be detected as such easily by
      pmbootstrap. This is because g++ is not gcc-g++ or any other variant of
      such package names. Similarly, the detection for musl-dev-ppc64le and
      other architectures is broken, since the -dev suffix detection does not
      work if there is an architecture suffix.
      
      To fix it, add special case handling for cross toolchain and packages
      and have that fixup the -dev cases and hardcode g++ as a subpackage of
      gcc.
      
      To reproduce:
      - Generate ppc64le cross packages:
        pmbootstrap aportgen gcc-ppc64le musl-ppc64le
      - Build a package (to trigger building cross compilers):
        pmbootstrap build hello-world --arch=ppc64le
      
      Signed-off-by: default avatarJens Reidel <adrian@travitia.xyz>
      Unverified
      e2354ec2
  19. Nov 18, 2024
Loading