Page MenuHomeSolus

The inclusion of xpra fixes T9894
ClosedPublic

Authored by maikwoehl on Oct 27 2021, 8:29 PM.
Tags
None
Referenced Files
F10784811: D12133.id.diff
Fri, May 26, 2:05 AM
F10783440: D12133.id29910.diff
Thu, May 25, 8:14 PM
F10782983: D12133.id29519.diff
Thu, May 25, 6:02 PM
F10782776: D12133.id29795.diff
Thu, May 25, 4:48 PM
F10782770: D12133.id29794.diff
Thu, May 25, 4:48 PM
F10779183: D12133.id29520.diff
Wed, May 24, 3:02 PM
F10779169: D12133.id29910.diff
Wed, May 24, 2:57 PM
F10779153: D12133.id29795.diff
Wed, May 24, 2:49 PM
Subscribers

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

Branch
main
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 2389
Build 2389: arc lint + arc unit

Event Timeline

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 marked 3 inline comments as done.

Fixing dependencies

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

maikwoehl edited the test plan for this revision. (Show Details)

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 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.

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.Nov 9 2021, 7:13 AM

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.

Paths are patched

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.Nov 16 2021, 6:39 AM
This revision was automatically updated to reflect the committed changes.