Page MenuHomeSolus

The inclusion of xpra fixes T9894
ClosedPublic

Authored by maikwoehl on Oct 27 2021, 8:29 PM.

Details

Summary

xpra is a xorg-capable variant of 'screen'.

Fixes T9894

Test Plan
  1. Install on two machines
  2. Start gedit on one machine xpra start :10000 --start-child=gedit --no-daemon
  3. Attach from another machine xpra attach ssh://dev-solus/10000

With xorg-server-xvfb testing succeeds.

Diff Detail

Repository
R5348 xpra
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

maikwoehl created this revision.Oct 27 2021, 8:29 PM
maikwoehl requested review of this revision.Oct 27 2021, 8:29 PM
maikwoehl edited the summary of this revision. (Show Details)Oct 27 2021, 8:30 PM
JoshStrobl requested changes to this revision.Oct 28 2021, 3:51 AM
JoshStrobl added a subscriber: JoshStrobl.
JoshStrobl added inline comments.
package.yml
8

Needs to be checked

14

docs get automatically patterned out when necessary.

17

Check reverse dependencies of various deps to know what pkgconfigs you can remove.

29

Most of these aren't necessary. Check what the package is already linking to, check eopkg info on the generated eopkg, and remove many of those deps that are already going to be installed, part of the base image, or reverse dependencies.

This revision now requires changes to proceed.Oct 28 2021, 3:51 AM
maikwoehl updated this revision to Diff 29519.Oct 30 2021, 11:25 AM
maikwoehl marked 3 inline comments as done.

Fixing dependencies

Thank you @JoshStrobl - I've updated the package.yml.

maikwoehl edited the summary of this revision. (Show Details)Oct 30 2021, 11:45 AM
maikwoehl edited the test plan for this revision. (Show Details)
algent added a subscriber: algent.EditedOct 30 2021, 11:47 AM

You can clean more deps, because they are dependency of pkgconfig(gdk-3.0)

- pkgconfig(xrandr)
- pkgconfig(xdamage)
- pkgconfig(xcomposite)

Also you have to move cython and pandoc after pkgconfig(xtst).
Not sure if libgtk-3 and libxtst should be explicitly added to rundeps, becuase there are libXtst.so.6 and libgdk-3.so.0 present in abi_used_libs that automatically links to these rundeps.

You can clean more deps, because they are dependency of pkgconfig(gdk-3.0)

- pkgconfig(xrandr)
- pkgconfig(xdamage)
- pkgconfig(xcomposite)

Also you have to move cython and pandoc after pkgconfig(xtst).
Not sure if libgtk-3 and libxtst should be explicitly added to rundeps, becuase there are libXtst.so.6 and libgdk-3.so.0 present in abi_used_libs that automatically links to these rundeps.

Thank you :) I'm still learning how the auto dependency recognition works.

maikwoehl edited the test plan for this revision. (Show Details)Oct 30 2021, 12:06 PM
maikwoehl updated this revision to Diff 29520.Oct 30 2021, 12:34 PM
maikwoehl edited the summary of this revision. (Show Details)
maikwoehl edited the test plan for this revision. (Show Details)

Use xvfb and patch config to do so, too.

Unfortunately the setup.py handles the install dir in a weird way, so some paths are not configured right now.

But it works now.

maikwoehl edited the summary of this revision. (Show Details)Oct 30 2021, 1:11 PM
maikwoehl added a task: T9894: xpra.
maikwoehl marked an inline comment as done.Oct 30 2021, 3:32 PM
JoshStrobl requested changes to this revision.Tue, Nov 9, 7:13 AM

Bunch of patching needing to be done to this to put it in the correct sysconfdir.

package.yml
14

Prefer to use gtk+-3.0 as the pkgconfig

17

Not needed. Dep of libgtk-3-devel.

18

Not needed. Dep of libgtk-3-devel.

20

Again another dep of libgtk-3-devel..

21

Dep of at-spi2-devel, which is a dep of at-spi2-atk-devel, which is a dep of libgtk-3-devel.

pspec_x86_64.xml
24

Not valid. Should be /usr/share/X11/xorg.conf.d/

25

Should be /usr/share/dbus-1/system.d

26

Needs to be patched to be /usr/share/defaults/xpra

52

/usr/lib64/[...]

53

/usr/lib64/[...]

This revision now requires changes to proceed.Tue, Nov 9, 7:13 AM
maikwoehl marked 5 inline comments as done.Wed, Nov 10, 11:15 PM

Dep of at-spi2-devel, which is a dep of at-spi2-atk-devel, which is a dep of libgtk-3-devel.

@JoshStrobl Uff, do you dig into all reverse dependencies through all levels or do you now this from your experience?

The first one were obvious and I have overlooked them.

Thank you @JoshStrobl, I will have a deeper look into the make process of xpra to fix the paths.

maikwoehl updated this revision to Diff 29794.Wed, Nov 10, 11:20 PM

Fix dependencies

maikwoehl updated this revision to Diff 29795.Wed, Nov 10, 11:57 PM

Rewire hardcoded paths

maikwoehl marked 5 inline comments as done.Wed, Nov 10, 11:58 PM

Paths are patched

maikwoehl updated this revision to Diff 29796.Thu, Nov 11, 12:00 AM

Fix typos in README.md

JoshStrobl accepted this revision.Tue, Nov 16, 6:39 AM

I'd say this is a good first start, much more of an improvement over the initial patch, so I'm going to be accepting it as-is. Thanks for the work you have put into this.

If you are interested in improving it even further in a subsequent patch to have it reach even higher standards and provide a learning opportunity for yourself, here are the things you can do:

  • Move the /etc/pam.d/ file to /usr/share/defaults/etc/pam.d
  • Implement a stateless patch that'll read contents in /etc/xpra first, then fallback to /usr/share/defaults/xpra if the etc path does not exist. We shouldn't create the /etc/xpra path, rather the user decides to do this in the event they want a system-wide configuration for the application that applies to all users. Follow this up with a move of /etc/xpra content to /usr/share/defaults/xpra

None of this is really your fault. Just a bunch of improvements that upstream could support (for example, stateless support would enable users to apply their own configuration files on a system-wide scope while still falling back to any defaults ourselves or upstream decides in a /usr/share/defaults/xpra stateless folder).

This revision is now accepted and ready to land.Tue, Nov 16, 6:39 AM
This revision was automatically updated to reflect the committed changes.