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

[new port] at-spi2-atk 2.38.0 port #24934

Closed
wants to merge 1 commit into from
Closed

[new port] at-spi2-atk 2.38.0 port #24934

wants to merge 1 commit into from

Conversation

mkhon
Copy link
Contributor

@mkhon mkhon commented May 26, 2022

at-spi2-atk 2.38.0 port
at-spi2-core 2.44.1 port

Describe the pull request

  • What does your PR fix?

The port provides at-spi2-atk dependency needed by gtk3

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

linux

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/

@mkhon
Copy link
Contributor Author

mkhon commented May 26, 2022

@talregev

@talregev
Copy link
Contributor

@JackBoosY @dg0yt
Can you help?

@JackBoosY JackBoosY self-assigned this May 26, 2022
@JackBoosY JackBoosY changed the title at-spi2-atk 2.38.0 port [new port] at-spi2-atk 2.38.0 port May 26, 2022
@JackBoosY JackBoosY added the category:new-port The issue is requesting a new library to be added; consider making a PR! label May 26, 2022
@mkhon
Copy link
Contributor Author

mkhon commented May 26, 2022

This port requires dbus (native dependency) to build.
I am not sure we should have dbus vcpkg port (like we don't have X11 ports).

Comment on lines +9 to +13
"glib",
{
"name": "glib",
"host": true
},
Copy link
Contributor

Choose a reason for hiding this comment

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

Duplicated?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No

Copy link
Contributor

Choose a reason for hiding this comment

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

@mkhon Can you elaborate?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Second instance has host="true"

Copy link
Contributor

Choose a reason for hiding this comment

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

Second instance has host="true"

Why? it not enough with one? why we need 2?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The same as other gnome ports:

  • it uses glib tools (host)
  • It uses glib libs (target)

Copy link
Contributor

Choose a reason for hiding this comment

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

The same as other gnome ports:

  • it uses glib tools (host)
  • It uses glib libs (target)

Thank you for explaining! :)

Copy link
Contributor

Choose a reason for hiding this comment

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

Please resolve this thread.

@talregev
Copy link
Contributor

talregev commented May 26, 2022

This port requires dbus (native dependency) to build. I am not sure we should have dbus vcpkg port (like we don't have X11 ports).

@JackBoosY Is it possible to install dsub on the ci?
@mkhon this PR should search for dsub before and tell the user to install it if not exist. (or similar msgs we have).

@mkhon
Copy link
Contributor Author

mkhon commented May 26, 2022

@talregev do we have similar examples (e.g. for searching X11 dependencies)?

@talregev
Copy link
Contributor

talregev commented May 26, 2022

@mkhon I write updated example for x11 msgs install msgs.
If not search, but only tell the user to install it also ok.

"glib",
{
"name": "glib",
"host": true
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
"host": true
"default-features": false,
"host": true

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't understand why this change is required. I do not see this pattern to be used in the other ports (ports/gtk for example)

Copy link
Contributor

Choose a reason for hiding this comment

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

@JackBoosY Do you insist on this change?

@JackBoosY
Copy link
Contributor

../src/ORE_2_44_1-fa40e2a5ad.clean/meson.build:52:0: ERROR: Dependency "dbus-1" not found, tried pkgconfig and cmake

Needs dbus-1?

@talregev
Copy link
Contributor

../src/ORE_2_44_1-fa40e2a5ad.clean/meson.build:52:0: ERROR: Dependency "dbus-1" not found, tried pkgconfig and cmake

Needs dbus-1?

Yes. it need dbus. Can it install on the ci?

@mkhon
Copy link
Contributor Author

mkhon commented May 31, 2022

I added a warning message that libdbus-1 is required and also disabled the build on CI because of this

@dg0yt
Copy link
Contributor

dg0yt commented Jun 1, 2022

I added a warning message that libdbus-1 is required and also disabled the build on CI because of this

This means that this port doesn't contribute to building wxwidgets:x64-linux in CI because it is going to block gtk3:x64-linux in CI.

FTR, port dbus may come with #22642.

@talregev
Copy link
Contributor

talregev commented Jun 1, 2022

also disabled the build on CI because of this

We need gtk linux so we also need at-spi2-atk port in Linux. please change that.

@mkhon
Copy link
Contributor Author

mkhon commented Jun 1, 2022

@talregev

  1. you still can build on Linux - it is just CI build that is currently disabled

  2. the build will be enabled once all the dependencies are in the tree or dbus-1 dependency is added to CI

@JackBoosY JackBoosY added depends:vm-update PR contains changes to the VM provisioning scripts and removed requires:author-response labels Jun 1, 2022
@JackBoosY
Copy link
Contributor

Request install libdbus-1-dev on Linux.
cc @BillyONeal

@talregev
Copy link
Contributor

talregev commented Jun 3, 2022

I try to build at-spi-atk on my virtual linux machine. I install dbus lib.
There is an errors:

Installing 14/43 at-spi2-atk:x64-linux...
Building at-spi2-atk[core]:x64-linux...
-- at-spi2-atk currently requires the following libraries from the system package manager:
    libdbus-1

These can be installed on Ubuntu systems via apt-get install libdbus-1-dev
-- Downloading https://gitlab.gnome.org/GNOME/at-spi2-atk/-/archive/AT_SPI2_ATK_2_38_0/at-spi2-atk-AT_SPI2_ATK_2_38_0.tar.gz -> GNOME-at-spi2-atk-AT_SPI2_ATK_2_38_0.tar.gz...
-- Extracting source /home/ubuntu/vcpkg/downloads/GNOME-at-spi2-atk-AT_SPI2_ATK_2_38_0.tar.gz
-- Using source at /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/src/ATK_2_38_0-a131295237.clean
-- Getting CMake variables for x64-linux-dbg
-- Getting CMake variables for x64-linux-rel
-- Configuring x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:128 (message):
    Command failed: /usr/bin/python3 /home/ubuntu/vcpkg/installed/x64-linux/tools/meson/meson.py -Dtests=false --buildtype plain --backend ninja --wrap-mode nodownload --native /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/meson-native-x64-linux.log --default-library static --libdir lib --native /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/meson-native-x64-linux-debug.log -Ddebug=true --prefix /home/ubuntu/vcpkg/packages/at-spi2-atk_x64-linux/debug --includedir ../include -Dcmake_prefix_path=['/home/ubuntu/vcpkg/installed/x64-linux/debug','/home/ubuntu/vcpkg/installed/x64-linux'] /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/src/ATK_2_38_0-a131295237.clean
    Working Directory: /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/x64-linux-dbg
    Error code: 1
    See logs for more information:
      /home/ubuntu/vcpkg/buildtrees/at-spi2-atk/config-x64-linux-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_meson.cmake:470 (vcpkg_execute_required_process)
  ports/at-spi2-atk/portfile.cmake:13 (vcpkg_configure_meson)
  scripts/ports.cmake:146 (include)

config-x64-linux-dbg-out.log
@mkhon Can you fix it?

@talregev
Copy link
Contributor

talregev commented Aug 11, 2022

The current image don't contain libxtst-dev. (or any of the changes for linux).

This is not correct:

@BillyONeal This is correct. I just remain you our conversation here:
#25785 (comment)

The vm image is not correlated anymore to vcpkg/scripts/azure-pipelines/linux/provision-image.sh.
They are different. In the current vm there is the old script before the merge.
This is your a screenshot from current vm:
image

@@ -0,0 +1,48 @@
if(VCPKG_TARGET_IS_LINUX)
message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libdbus-1\n libxi-dev\n libxtst-dev\n\nThese can be installed on Ubuntu systems via apt-get install libdbus-1-dev libxi-dev libxtst-dev")
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libdbus-1\n libxi-dev\n libxtst-dev\n\nThese can be installed on Ubuntu systems via apt-get install libdbus-1-dev libxi-dev libxtst-dev")
message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libdbus-1-dev\n libxi-dev\n libxtst-dev\n\nThese can be installed on Ubuntu systems via apt-get install libdbus-1-dev libxi-dev libxtst-dev")

@JackBoosY
Copy link
Contributor

I don't have access to merge master branch to this branch, please merge it first. Then I will check the logs.

@BillyONeal
Copy link
Member

This is your a screenshot from current vm:

The line that installs the package in question is off the bottom of the screenshot. It's theoretically possible that I accidentally created the new VMSS pointing to the old image or something like that but it would be very surprising to me.

Notably, that screenshot was not from the VM itself (they are headless, no GUI)

@talregev
Copy link
Contributor

talregev commented Aug 11, 2022

This is your a screenshot from current vm:

The line that installs the package in question is off the bottom of the screenshot. It's theoretically possible that I accidentally created the new VMSS pointing to the old image or something like that but it would be very surprising to me.

Notably, that screenshot was not from the VM itself (they are headless, no GUI)

How you can verify what is actually found on the vm?
Is it possible that is your vscode connect with ssh remote to the vm?

@talregev
Copy link
Contributor

This is your a screenshot from current vm:

The line that installs the package in question is off the bottom of the screenshot. It's theoretically possible that I accidentally created the new VMSS pointing to the old image or something like that but it would be very surprising to me.

Notably, that screenshot was not from the VM itself (they are headless, no GUI)

@BillyONeal
This is the old version of the script. This is the version before the merge. If you can take a look closely just from the missing line here:
https://github.com/microsoft/vcpkg/pull/25785/files#diff-e297fefc9e4af531208557e0f979ee877017c49c901bb418ac4672f50c074319R12
That we are looking on the old version of the script before the merge. So I know for sure from the screenshot that there isn't the libxtst in the file, more as you can see you already search for it inside the vscode, and it didn't find it.

@talregev
Copy link
Contributor

This is your a screenshot from current vm:

The line that installs the package in question is off the bottom of the screenshot. It's theoretically possible that I accidentally created the new VMSS pointing to the old image or something like that but it would be very surprising to me.

Notably, that screenshot was not from the VM itself (they are headless, no GUI)

@BillyONeal Can you update the vm with the current vcpkg/scripts/azure-pipelines/linux/provision-image.sh file?

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!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for at-spi2-atk have changed but the version was not updated
version: 2.38.0
old SHA: ebb28a9cdbd06d3185ba2e0cfc1945be23a0a608
new SHA: d3bad232e464a2089180b36b06b118aa46bf2e92
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***
error: checked-in files for at-spi2-core have changed but the version was not updated
version: 2.44.1
old SHA: dd1e736f89692df6c27db81eed2269458666841b
new SHA: b845424faf2dfa477546f9c23a900f789f506eb2
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

at-spi2-core 2.44.1 port
@JackBoosY
Copy link
Contributor

Can you enable editing by other contributors?

@mkhon
Copy link
Contributor Author

mkhon commented Aug 12, 2022 via email

@talregev
Copy link
Contributor

github does not allow that for organizations

@mkhon Can I copy your PR and let @JackBoosY to edit this PR?

@JackBoosY
Copy link
Contributor

JackBoosY commented Aug 12, 2022

Port libxtst and its dependency xorg-macros:

ports.zip

Current situation:
libxtst couldn't find xorg-macros's macro:

autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force 
configure.ac:37: error: must install xorg-macros 1.12 or later before running autoconf/autogen
configure.ac:37: the top level
autom4te: error: /usr/bin/m4 failed with exit status: 1
aclocal-1.16: error: /usr/bin/autom4te failed with exit status: 1
autoreconf: error: aclocal failed with exit status: 1

Another way: install xutils-dev with apt or other package manager instead of adding xorg-macros.

@BillyONeal
Copy link
Member

Wow, I can't believe I messed up the Linux deployment like that. Clearly it didn't work because the Pipelines Agent hates Ubuntu 22.04, so the attempted update there to get more modern compilers didn't actually land. (That is, we fail due to microsoft/azure-pipelines-agent#3834 )

Putting the tag back....

@BillyONeal BillyONeal added depends:vm-update PR contains changes to the VM provisioning scripts and removed requires:author-response labels Aug 12, 2022
@japm48
Copy link
Contributor

japm48 commented Aug 13, 2022

@BillyONeal So, apparently according to microsoft/azure-pipelines-agent#3834 we have to wait for the port to .Net 6.

Would it be possible to make use of the OpenSSL downgrade workaround in the meantime?

@JackBoosY
Copy link
Contributor

@BillyONeal So, apparently according to microsoft/azure-pipelines-agent#3834 we have to wait for the port to .Net 6.

Would it be possible to make use of the OpenSSL downgrade workaround in the meantime?

No, we shouldn't downgrade the version unless the port is seriously buggy.

@japm48
Copy link
Contributor

japm48 commented Aug 15, 2022

@JackBoosY @BillyONeal

In that case I would suggest another workaround: create a file /etc/ssh/ssh_config.d/enable_rsa_sha.conf with the contents:

KexAlgorithms +diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
MACs +hmac-sha1
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa

Source: https://rwmj.wordpress.com/2022/08/08/ssh-from-rhel-9-to-rhel-5-or-rhel-6/
(I also added diffie-hellman-group1-sha1 as that looks like it is also needed according to my other search results)

If the server (sshd) also needs to be configured, create the file /etc/ssh/sshd_config.d/enable_rsa_sha.conf with the same contents.

@BillyONeal
Copy link
Member

Would it be possible to make use of the OpenSSL downgrade workaround in the meantime?

I'm a bit nervous doing that. The purpose of our CI testing is to replicate something one of our users is actually likely to do, and by and large they aren't going to have applied changes like that.

Would it be possible to make use of the OpenSSL downgrade workaround in the meantime?

No, we shouldn't downgrade the version unless the port is seriously buggy.

@japm48 is talking about the version installed by apt on our Linux CI fleet, not the one installed by any of our ports.

@talregev
Copy link
Contributor

@BillyONeal
Can you switch to 20.04 with all the new apt packages install, and when you solve the 22.04 bug you can switch it?

@mkhon
Copy link
Contributor Author

mkhon commented Sep 9, 2022

@BillyONeal @talregev what is the current status of this?

Can we push gtk3 without Linux build for now? This is long overdue

@talregev
Copy link
Contributor

talregev commented Sep 9, 2022

github does not allow that for organizations

@mkhon Can I copy your PR and let @JackBoosY to edit this PR?

@mkhon Please respond to this comment.

@mkhon
Copy link
Contributor Author

mkhon commented Sep 12, 2022

I created #26766 which is made from the non-org-owned fork so that edits should be allowed

@mkhon mkhon closed this Sep 12, 2022
@mkhon mkhon deleted the feature/at-spi2-atk branch September 28, 2022 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! depends:vm-update PR contains changes to the VM provisioning scripts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants