Skip to content

"--show-manifest" and "--show-deps" don't canonicalize path written in manifests inside submodules #698

@ryonakano

Description

@ryonakano

Checklist

  • I agree to follow the Code of Conduct that this project adheres to.
  • I have searched the issue tracker for a bug that matches the one I want to file, without success.

flatpak-builder version

1.4.2

Flatpak version

1.14.6

How to reproduce

  1. Run git clone --recurse-submodules https://github.com/flathub/io.github.ellie_commons.sequeler.git
  2. Run cd io.github.ellie_commons.sequeler
  3. Run flatpak-builder --show-deps io.github.ellie_commons.sequeler.yml
  4. Run flatpak-builder --show-manifest io.github.ellie_commons.sequeler.yml | jq '.modules[] | select(.name == "libgda") | .modules[] | select(.name == "intltool")'

Expected Behavior

  • In the above step 3, intltool-perl5.26-regex-fixes.patch is canonicalized, i.e. the path is converted to the absolute or relative path to the patch file in the submodule
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$ flatpak-builder --show-deps io.github.ellie_commons.sequeler.yml
/home/user/work/ellie-commons/io.github.ellie_commons.sequeler/shared-modules/intltool/intltool-0.51.json
/home/user/work/ellie-commons/io.github.ellie_commons.sequeler/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch
0001-Explicit-parameters-in-function-declaration.patch
0002-Application-Force-elementary-stylesheet-to-prevent-b.patch
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$
  • In the above step 4, intltool-perl5.26-regex-fixes.patch is canonicalized, i.e. the path is converted to the absolute or relative path to the patch file in the submodule
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$ flatpak-builder --show-manifest io.github.ellie_commons.sequeler.yml | jq '.modules[] | select(.name == "libgda") | .modules[] | select(.name == "intltool")'
{
  "name": "intltool",
  "sources": [
    {
      "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz",
      "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd",
      "type": "archive"
    },
    {
      "path": "/home/user/work/ellie-commons/io.github.ellie_commons.sequeler/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch",
      "type": "patch"
    }
  ],
  "cleanup": [
    "*"
  ]
}
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$

Actual Behavior

  • In the above step 3, intltool-perl5.26-regex-fixes.patch is not canonicalized, i.e. the path remains the relative path inside the submodule
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$ flatpak-builder --show-deps io.github.ellie_commons.sequeler.yml
/home/user/work/ellie-commons/io.github.ellie_commons.sequeler/shared-modules/intltool/intltool-0.51.json
intltool-perl5.26-regex-fixes.patch
0001-Explicit-parameters-in-function-declaration.patch
0002-Application-Force-elementary-stylesheet-to-prevent-b.patch
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$
  • In the above step 4, intltool-perl5.26-regex-fixes.patch is not canonicalized, i.e. the path remains the relative path inside the submodule
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$ flatpak-builder --show-manifest io.github.ellie_commons.sequeler.yml | jq '.modules[] | select(.name == "libgda") | .modules[] | select(.name == "intltool")'
{
  "name": "intltool",
  "sources": [
    {
      "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz",
      "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd",
      "type": "archive"
    },
    {
      "path": "intltool-perl5.26-regex-fixes.patch",
      "type": "patch"
    }
  ],
  "cleanup": [
    "*"
  ]
}
user@elementary:~/work/ellie-commons/io.github.ellie_commons.sequeler (master =)$

Additional Information

The repository I used in the reproduce steps uses intltool in the shared-modules.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions