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

Implement support for running on Wayland through Weston #5401

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Conan-Kudo
Copy link
Contributor

This implements rudimentary support for running Anaconda on Wayland using the Weston compositor through XWayland. This support also includes simple auth-less VNC remote access, though authenticated VNC support requires extra effort since Weston's authenticated VNC support uses TLS certificates and we do not have a good way to plumb that through right now (more info in weston-vnc(7)).

@pep8speaks
Copy link

pep8speaks commented Jan 15, 2024

Hello @Conan-Kudo! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

Line 146:100: E501 line too long (107 > 99 characters)
Line 289:100: E501 line too long (104 > 99 characters)
Line 311:100: E501 line too long (115 > 99 characters)
Line 312:100: E501 line too long (110 > 99 characters)
Line 313:100: E501 line too long (107 > 99 characters)

Line 147:100: E501 line too long (107 > 99 characters)
Line 378:100: E501 line too long (115 > 99 characters)
Line 379:100: E501 line too long (103 > 99 characters)
Line 380:100: E501 line too long (107 > 99 characters)

Comment last updated at 2024-01-20 00:43:20 UTC

Copy link
Contributor

@VladimirSlavik VladimirSlavik left a comment

Choose a reason for hiding this comment

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

Without understanding the problem domain, LGTM so far.

Comment on lines 206 to 237
argv = ["weston", f"--config={weston_config_file}", "--log=/tmp/weston.log",
f"--socket={WAYLAND_SOCKET_NAME}"]
Copy link
Contributor

@VladimirSlavik VladimirSlavik Jan 17, 2024

Choose a reason for hiding this comment

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

We aren't using f-strings anywhere else. Not sure if it means they can't be used at all, though.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

f-strings were added in Python 3.6. I think it's pretty reasonable to state that we're probably not going to be running this Anaconda codebase on something older than that, since Python 3.6 is what RHEL 8 shipped with. I can certainly change it, but I liked how it make this easier to read.

Copy link
Contributor

Choose a reason for hiding this comment

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

Sure, it would be possible to use f-strings on the platforms we care about, it has been more a question of team policy or consistency so far not to use them in the Anaconda code.

sock.close()
wl_status.started = True
return wl_status.started
except Exception:
Copy link
Contributor

Choose a reason for hiding this comment

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

Can this be more specific than just Exception?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In theory, I could, but I have intentionally not done so because I want it to happen in any exception case. It's merely for shorting the loop to iterate on the timeout.

@Conan-Kudo
Copy link
Contributor Author

@VladimirSlavik, @jkonecny12, @M4rtinK: do any of you know what I'm doing wrong with the Autotools definition to add the PAM file? I'm not sure how to fix it...

@Conan-Kudo
Copy link
Contributor Author

Ah, I figured it out now, and it looks like the package builds are going now.

@M4rtinK
Copy link
Contributor

M4rtinK commented Jan 17, 2024

/build-image --boot.iso

Copy link

Images built based on commit c09c693:

  • boot.iso: failure

Download the images from the bottom of the job status page.

@M4rtinK
Copy link
Contributor

M4rtinK commented Jan 17, 2024

/build-image --boot.iso

Copy link

Images built based on commit 9f70bee:

  • boot.iso: failure

Download the images from the bottom of the job status page.

Copy link
Contributor

@KKoukiou KKoukiou left a comment

Choose a reason for hiding this comment

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

@Conan-Kudo Kudos on the awesome job, this contribution is in great state and I see it already uncovered some issues (Lorax templates)! 🌟

However, I've got a few thoughts about merging that I wanted to share.

Our team's got some recent "capacity challenges" post you might wanna check out: Check the post here. It paints a bit of the picture we're dealing with right now.

Here's the thing – about Weston, there's some uncertainty on downstream support (probably not at all), and keeping this as an upstream only change, means we are without the QE team on board, so this could create a headache for us maintenance-wise. Plus, we're in the trenches porting Anaconda to XWayland already, so probably there is some conflicting areas in your work with what @M4rtinK is currently working on.

I'm thinking it might be wise to keep this open and not merge it for now, aligning it with our current WIP changes towards xwayland but without introducing Fedora only solutions (Weston).

@Conan-Kudo
Copy link
Contributor Author

@KKoukiou In general, I think what I'm working on and what @M4rtinK is working on will not conflict. Changing Anaconda's behaviors as an XWayland application is complementary to this. All this does is make it so that we run Anaconda as an XWayland application and wires up both the default and VNC modes to Weston as a Wayland compositor.

There are separate work items that need to be done to further improve the experience, and @M4rtinK's work is positioned to help here.

M4rtinK added a commit to M4rtinK/anaconda that referenced this pull request May 15, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>
jexposit added a commit to jexposit/anaconda that referenced this pull request May 23, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Resolves: https://issues.redhat.com/browse/RHEL-38399
Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>
M4rtinK pushed a commit to jexposit/anaconda that referenced this pull request May 27, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
M4rtinK pushed a commit to jexposit/anaconda that referenced this pull request May 27, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
M4rtinK pushed a commit to jexposit/anaconda that referenced this pull request May 27, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
M4rtinK pushed a commit to jexposit/anaconda that referenced this pull request May 28, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
M4rtinK pushed a commit to jexposit/anaconda that referenced this pull request Jun 6, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Copy link

This PR is stale because it has been open 60 days with no activity.
Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label Jun 30, 2024
@Conan-Kudo
Copy link
Contributor Author

This will be rebased once #5498 is merged in the main branch.

@github-actions github-actions bot removed the stale label Jul 1, 2024
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Aug 14, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
(cherry picked from commit 8800331)
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Aug 14, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Aug 21, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Aug 28, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
Copy link

This PR is stale because it has been open 60 days with no activity.
Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label Aug 30, 2024
@Conan-Kudo
Copy link
Contributor Author

Waiting for #5829 to land before rebasing.

@github-actions github-actions bot removed the stale label Aug 31, 2024
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Sep 3, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
@jkonecny12 jkonecny12 added f42 Fedora 42 and removed f41 labels Sep 5, 2024
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Sep 25, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
jkonecny12 pushed a commit to jkonecny12/anaconda that referenced this pull request Oct 9, 2024
Start GNOME Kiosk as a Wayland compositor and run Anaconda as a native
Wayland client.

This commit is a follow up on the work done by Neal Gompa [1], Martin
Kolman and Ray Strode [2]. Credit goes to them for the code I copied
and pasted.

[1] rhinstaller#5401
[2] rhinstaller#5309

Co-authored-by: Neal Gompa <neal@gompa.dev>
Co-authored-by: Martin Kolman <mkolman@redhat.com>
Co-authored-by: Ray Strode <rstrode@redhat.com>

Resolves: RHEL-38399
Resolves: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
(cherry picked from commit 8800331)
Copy link

github-actions bot commented Nov 5, 2024

This PR is stale because it has been open 60 days with no activity.
Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label Nov 5, 2024
@Conan-Kudo
Copy link
Contributor Author

Now that everything has landed in the master branch, I can look at rebasing this...

@github-actions github-actions bot removed the stale label Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f42 Fedora 42
Development

Successfully merging this pull request may close these issues.

6 participants