Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[many ports] Feature 'Introspection' support #22200

Closed
wants to merge 1 commit into from
Closed

[many ports] Feature 'Introspection' support #22200

wants to merge 1 commit into from

Conversation

mkhon
Copy link
Contributor

@mkhon mkhon commented Dec 25, 2021

Add introspection feature (requires #22199)

  • What does your PR fix?

  • Which triplets are supported/not supported? Have you updated the CI baseline?

all

Yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

Yes

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

@JackBoosY JackBoosY added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Dec 26, 2021
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 772fe6cbce530cb3a5f0fee67b57e9861676e5d0 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/a-/atk.json b/versions/a-/atk.json
index 5ad310b..87a195d 100644
--- a/versions/a-/atk.json
+++ b/versions/a-/atk.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "f495950bdb8912facf6557bec384c48637a09ca1",
+      "git-tree": "71caa75389bf64c69ffef34c3b04b704dd80dee7",
       "version": "2.36.0",
       "port-version": 3
     },
diff --git a/versions/g-/gdk-pixbuf.json b/versions/g-/gdk-pixbuf.json
index 206dd0e..5510412 100644
--- a/versions/g-/gdk-pixbuf.json
+++ b/versions/g-/gdk-pixbuf.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "eee842df29e3955986f6febce333d6968da45b66",
+      "git-tree": "d808219b163b3157bae90200d80535299347161d",
       "version": "2.42.2",
       "port-version": 3
     },
diff --git a/versions/g-/graphene.json b/versions/g-/graphene.json
index 44f06a0..08e5225 100644
--- a/versions/g-/graphene.json
+++ b/versions/g-/graphene.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "c56ed685d18a66357b64430ba985db489d656aa8",
+      "git-tree": "41f0fa3e3ae7821b6d92ed88f16aa74dab9a6e14",
       "version": "1.10.2",
       "port-version": 3
     },
diff --git a/versions/g-/gtk.json b/versions/g-/gtk.json
index 8f1f40a..4809f31 100644
--- a/versions/g-/gtk.json
+++ b/versions/g-/gtk.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "eec8bf806f29d000f090982bbbfd0392d8166bb8",
+      "git-tree": "66f6b1bc59e866a3b8238df5a3f20a18b2cc3908",
       "version": "4.4.0",
       "port-version": 2
     },
diff --git a/versions/h-/harfbuzz.json b/versions/h-/harfbuzz.json
index a5366d7..8bf14dd 100644
--- a/versions/h-/harfbuzz.json
+++ b/versions/h-/harfbuzz.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "dc8f8ea64d714f3b175689297a9aa85e01bc90c2",
+      "git-tree": "47d677b1b5476d9b986db8eb7ceb4ae67a692502",
       "version-semver": "3.0.0",
       "port-version": 2
     },
diff --git a/versions/p-/pango.json b/versions/p-/pango.json
index f191a30..d609043 100644
--- a/versions/p-/pango.json
+++ b/versions/p-/pango.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "d90fba8f734e794580bcf215c11037acf13e20aa",
+      "git-tree": "845aba2ce1355860ef3e5e6dbdb19227af7c9985",
       "version": "1.48.10",
       "port-version": 2
     },

@PhoebeHui PhoebeHui changed the title Introspection support [many ports] Feature 'Introspection' support Dec 27, 2021
@PhoebeHui
Copy link
Contributor

PhoebeHui commented Dec 27, 2021

@mkhon, thanks for your PR! Could you please take a look at the failures in CI testing?

atk/gdk-pixbuf with x64-windows, x64-osx, x64-linux:

..\src\atk-2-09b87762bd.clean\atk\meson.build:138:2: ERROR: Dependency "gobject-introspection-1.0" not found, tried pkgconfig and cmake

pango with x64-windows, x64-osx, x64-linux:

Run-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency gobject-introspection-1.0

..\src\40a4d027da-8df6f72e5e.clean\pango\meson.build:148:2: ERROR: Automatic wrap-based subproject downloading is disabled

graphene with x64-windows:

..\src\atk-2-09b87762bd.clean\atk\meson.build:138:2: ERROR: Dependency "gobject-introspection-1.0" not found, tried pkgconfig and cmake

@mkhon
Copy link
Contributor Author

mkhon commented Dec 28, 2021

This PR depends on #22199 as mentioned in the description

@PhoebeHui PhoebeHui added the depends:different-pr This PR or Issue depends on a PR which has been filed label Dec 29, 2021
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 05c411da6619971fd033c8a9d20c8cce07d5e42a -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/p-/pango.json b/versions/p-/pango.json
index 0327972..3e39cc9 100644
--- a/versions/p-/pango.json
+++ b/versions/p-/pango.json
@@ -5,6 +5,11 @@
       "version": "1.50.3",
       "port-version": 1
     },
+    {
+      "git-tree": "024f716f80c8454769393287ef14a75de4785f32",
+      "version": "1.50.3",
+      "port-version": 0
+    },
     {
       "git-tree": "a9cc75941c3ff73920fb3900615d84bc6f1b423e",
       "version": "1.48.10",

@PhoebeHui
Copy link
Contributor

I see, thanks for your response!

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 05c411da6619971fd033c8a9d20c8cce07d5e42a -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/p-/pango.json b/versions/p-/pango.json
index 34874cb..c65c390 100644
--- a/versions/p-/pango.json
+++ b/versions/p-/pango.json
@@ -10,11 +10,6 @@
       "version": "1.50.3",
       "port-version": 0
     },
-    {
-      "git-tree": "024f716f80c8454769393287ef14a75de4785f32",
-      "version": "1.50.3",
-      "port-version": 0
-    },
     {
       "git-tree": "a9cc75941c3ff73920fb3900615d84bc6f1b423e",
       "version": "1.48.10",

@mkhon
Copy link
Contributor Author

mkhon commented Jan 25, 2022

Can we remove requires:author-response tag from this one?

@mkhon
Copy link
Contributor Author

mkhon commented Jan 26, 2022

@PhoebeHui #22199 has been merged so you can now test this PR (depends:different-pr tag can now be removed I guess)

@PhoebeHui PhoebeHui removed the depends:different-pr This PR or Issue depends on a PR which has been filed label Jan 27, 2022
@PhoebeHui
Copy link
Contributor

@mkhon, could you merge from master and resolve conflicts? I have no permission to push the changes to this PR.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 7baf7bc9f3390bab2f47e2bcbd35b065663bc80d -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/h-/harfbuzz.json b/versions/h-/harfbuzz.json
index eeb491a..17f1a5f 100644
--- a/versions/h-/harfbuzz.json
+++ b/versions/h-/harfbuzz.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "852d7b204335b195bf01c2b8bc41895fee3663aa",
+      "git-tree": "ccc65955dbcab3a0438f6027f050cd4acd57fc4a",
       "version-semver": "3.2.0",
       "port-version": 1
     },

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/gtk/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

@mkhon
Copy link
Contributor Author

mkhon commented Jan 27, 2022

@PhoebeHui I rebased to the latest master and resolved the conflicts

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/gtk/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

@mkhon
Copy link
Contributor Author

mkhon commented Jan 27, 2022

Looks like latest arm64_windows build failed because of vcpkg bug:

Error: vcpkg has crashed; no additional details are available.
The source line is D:\a\_work\1\s\src\vcpkg\binarycaching.cpp(554)

https://dev.azure.com/vcpkg/public/_build/results?buildId=66548&view=logs&j=84da4f4a-968a-5b5c-16e9-f444c845396d&t=80e5e0c8-bb3b-5216-9f3f-2618d4e9f3f4&l=62

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/gtk/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

@PhoebeHui
Copy link
Contributor

Looks like latest arm64_windows build failed because of vcpkg bug:

Yes, it has been fixed in vcpkg-tool repo, and waiting for a new release, please ignore it now.

PhoebeHui
PhoebeHui previously approved these changes Jan 29, 2022
@PhoebeHui PhoebeHui added the info:reviewed Pull Request changes follow basic guidelines label Jan 29, 2022
@ras0219-msft
Copy link
Contributor

This seems like a maintenance nightmare if it affects every port that touches gobject.

A few questions to help us understand what the problem space is here:

  1. Is introspection only supported for meson consumers?
  2. Will every consumer of gobject potentially need a flag for this?
  3. Does this make sense as a "global" setting? Does it make sense to only enable introspection for some libraries but not others?
  4. Is this required to happen as part of the library's build or can it be done separately? For example, could gtk generate the introspection data for all of its dependencies?

ports/atk/portfile.cmake Outdated Show resolved Hide resolved
@BillyONeal BillyONeal removed the info:reviewed Pull Request changes follow basic guidelines label Feb 3, 2022
@mkhon
Copy link
Contributor Author

mkhon commented Feb 4, 2022

This seems like a maintenance nightmare if it affects every port that touches gobject.

A few questions to help us understand what the problem space is here:

  1. Is introspection only supported for meson consumers?

I think not

  1. Will every consumer of gobject potentially need a flag for this?

Linux packages are usually built with introspection enabled by default. I can modify the PR if the common sense is to do the same

  1. Does this make sense as a "global" setting? Does it make sense to only enable introspection for some libraries but not others?

I think it makes sense to always build with introspection enabled

  1. Is this required to happen as part of the library's build or can it be done separately? For example, could gtk generate the introspection data for all of its dependencies?

Yes and no.

If introspection data is built only when gtk is built, how gtk will know the introspection of a dependency (e.g. atk or pango) needs to be rebuilt when the dependency is upgraded (e.g. when atk is upgraded how do we know we need to rebuild its introspection data). I think this is the main reason interospection data is built along with the appropriate software package that owns the data structures.

Think of introspection as a kind of additional library that is shipped with every package that supports introspection

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/gtk/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/gtk/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

@PhoebeHui PhoebeHui added requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. and removed requires:author-response labels Feb 14, 2022
@JackBoosY
Copy link
Contributor

Can you please resolve the file conflicts?

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where a "license" field is missing.

If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json
  • ports/harfbuzz/vcpkg.json
  • ports/pango/vcpkg.json

Valid values for the license field can be found in the documentation

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json

Valid values for the license field can be found in the documentation

@mkhon
Copy link
Contributor Author

mkhon commented May 4, 2022

@JackBoosY I rebased to latest master. Can we get this merged?

@JackBoosY
Copy link
Contributor

Seems there are some file conflicts, can you please resolve that first?

Thanks.

@mkhon
Copy link
Contributor Author

mkhon commented May 5, 2022

Seems there are some file conflicts, can you please resolve that first?

Done

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/atk/vcpkg.json
  • ports/gdk-pixbuf/vcpkg.json
  • ports/graphene/vcpkg.json

Valid values for the license field can be found in the documentation

@JackBoosY
Copy link
Contributor

@ras0219-msft ping for reply.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/graphene/vcpkg.json

Valid values for the license field can be found in the documentation

@JackBoosY
Copy link
Contributor

Can you please merge to master first?

@JackBoosY
Copy link
Contributor

Convert this PR to draft since there is no progress.

@JackBoosY JackBoosY marked this pull request as draft July 15, 2022 05:39
@JackBoosY JackBoosY removed the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Jul 15, 2022
@JackBoosY
Copy link
Contributor

Closing this PR since it seems that no progress is being made. Please reopen if work is still being done.

@JackBoosY JackBoosY closed this Aug 19, 2022
@mkhon mkhon deleted the feature/gtk-introspection branch September 28, 2022 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants