regolith-linux / sway-regolith

i3-compatible Wayland compositor
https://swaywm.org
MIT License
6 stars 3 forks source link

Packaging/v1.9 regolith wip2 #17

Closed kgilmer closed 5 months ago

kgilmer commented 6 months ago

This is sway 1.9 with Regolith changes encapsulated within /debian (NOTE the diff against upstream).

Files:

$ dpkg -c sway-regolith_1.9-1_amd64.deb 
drwxr-xr-x root/root         0 2024-03-11 15:53 ./
drwxr-xr-x root/root         0 2024-03-11 15:53 ./etc/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./etc/sway/
-rw-r--r-- root/root      6930 2024-03-11 15:53 ./etc/sway/config
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/bin/
-rwxr-xr-x root/root    600352 2024-03-11 15:53 ./usr/bin/sway-regolith
-rwxr-xr-x root/root    134160 2024-03-11 15:53 ./usr/bin/swaybar
-rwxr-xr-x root/root     31152 2024-03-11 15:53 ./usr/bin/swaymsg
-rwxr-xr-x root/root     72720 2024-03-11 15:53 ./usr/bin/swaynag
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/bash-completion/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/bash-completion/completions/
-rw-r--r-- root/root       754 2024-02-18 17:19 ./usr/share/bash-completion/completions/sway
-rw-r--r-- root/root       693 2024-02-18 17:19 ./usr/share/bash-completion/completions/swaybar
-rw-r--r-- root/root       952 2024-02-18 17:19 ./usr/share/bash-completion/completions/swaymsg
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/doc/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/doc/sway-regolith/
-rw-r--r-- root/root      7712 2024-03-11 15:53 ./usr/share/doc/sway-regolith/changelog.Debian.gz
-rw-r--r-- root/root      3817 2024-03-11 15:53 ./usr/share/doc/sway-regolith/copyright
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/fish/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/fish/vendor_completions.d/
-rw-r--r-- root/root       656 2024-02-18 17:19 ./usr/share/fish/vendor_completions.d/sway.fish
-rw-r--r-- root/root      2494 2024-02-18 17:19 ./usr/share/fish/vendor_completions.d/swaymsg.fish
-rw-r--r-- root/root      2955 2024-02-18 17:19 ./usr/share/fish/vendor_completions.d/swaynag.fish
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/man/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/man/man1/
-rw-r--r-- root/root      1748 2024-03-11 15:53 ./usr/share/man/man1/sway.1.gz
-rw-r--r-- root/root      1915 2024-03-11 15:53 ./usr/share/man/man1/swaymsg.1.gz
-rw-r--r-- root/root      1514 2024-03-11 15:53 ./usr/share/man/man1/swaynag.1.gz
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/man/man5/
-rw-r--r-- root/root      3197 2024-03-11 15:53 ./usr/share/man/man5/sway-bar.5.gz
-rw-r--r-- root/root      5207 2024-03-11 15:53 ./usr/share/man/man5/sway-input.5.gz
-rw-r--r-- root/root      3499 2024-03-11 15:53 ./usr/share/man/man5/sway-output.5.gz
-rw-r--r-- root/root     13970 2024-03-11 15:53 ./usr/share/man/man5/sway.5.gz
-rw-r--r-- root/root      1043 2024-03-11 15:53 ./usr/share/man/man5/swaynag.5.gz
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/man/man7/
-rw-r--r-- root/root     10484 2024-03-11 15:53 ./usr/share/man/man7/sway-ipc.7.gz
-rw-r--r-- root/root      2501 2024-03-11 15:53 ./usr/share/man/man7/swaybar-protocol.7.gz
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/wayland-sessions/
-rw-r--r-- root/root       125 2024-03-11 15:53 ./usr/share/wayland-sessions/sway-regolith.desktop
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/zsh/
drwxr-xr-x root/root         0 2024-03-11 15:53 ./usr/share/zsh/site-functions/
-rw-r--r-- root/root       816 2024-02-18 17:19 ./usr/share/zsh/site-functions/_sway
-rw-r--r-- root/root      1072 2024-02-18 17:19 ./usr/share/zsh/site-functions/_swaymsg

sample build: https://github.com/regolith-linux/voulage/actions/runs/8290758402

sway-regolith is available for testing in unstable on noble.



Some ideas, wonder if there are thoughts..
1. Only ship what varies in this package, and depend on the upstream package for everything else (`sway-regolith`)
2. rename all colliding files such that sway and sway-regolith can be cohosted on a system
3. add a feature to the build system that allows for specifying some git repo, and a url to a tarball expected to be a series of patches to be applied.  I believe if we had this mechanism we would only need to maintain the patches themselves.  Not sure if this is better or worth it though.
kgilmer commented 6 months ago

I'm going to rename the branch once everything's kosher

kgilmer commented 6 months ago

Screenshot_ubuntu24 04_2024-03-15_19:47:40

Tested in VM

SoumyaRanjanPatnaik commented 6 months ago

We'd need to apply a patch to make context menu's work as well. I'll take that up.

kgilmer commented 6 months ago

We'd need to apply a patch to make context menu's work as well. I'll take that up.

Nice! Just curious, is this something I missed in the porting from 1.8 or new functionality?

SoumyaRanjanPatnaik commented 6 months ago

This was present in 1.8๐Ÿ˜…

SoumyaRanjanPatnaik commented 6 months ago

I tried to test build this but was unsuccessful in my mantic system. Can you run a build on noble if possible?

kgilmer commented 6 months ago

This was present in 1.8๐Ÿ˜…

Oh, I think I was looking through the 1.8 diffs and assumed it was upstream stuff that got refactored. Nice catch :)

kgilmer commented 6 months ago

I tried to test build this but was unsuccessful in my mantic system. Can you run a build on noble if possible?

Sure! build attempt: https://github.com/regolith-linux/voulage/actions/runs/8412133671

kgilmer commented 6 months ago

Assuming by "context menu" we're talking about the app indicator thing and that if I see network-manager applet's menu that means we're GTG. LMK if I'm off @SoumyaRanjanPatnaik

kgilmer commented 6 months ago

Hmm, there seems to be a problem with the patch. dbusmenu no longer seems to be in the source tree from upstream for upstream/v1.9 branch. There are types in the patch that reference symbols there. Not sure how it's compling for you @SoumyaRanjanPatnaik but for me this produces the problem

$ git clone https://github.com/regolith-linux/sway-regolith.git
$ git checkout packaging/v1.9-regolith-wip2
$ debuild -sa -b
SoumyaRanjanPatnaik commented 6 months ago

Actually, I was unable to build it as the version of wlroots required for 1.9 is not available on mantic. I rebased the patch on v1.9 and thought it would work out of the box.

kgilmer commented 6 months ago

I was able to get it building locally on my noble env by adding dbusheader from the 1.8 branch. Build attempt: https://github.com/regolith-linux/voulage/actions/runs/8445622385

SoumyaRanjanPatnaik commented 6 months ago

Great. Might have missed adding that file๐Ÿ˜….

kgilmer commented 6 months ago

regarding that last commit, is it still WIP or should I add it to series and release the change for testing @SoumyaRanjanPatnaik ?

SoumyaRanjanPatnaik commented 6 months ago

You can add that. This should make it so the config file and session files don't get installed into the package.

SoumyaRanjanPatnaik commented 6 months ago

Btw, can you describe how you test? Do you set up a vm for testing?

kgilmer commented 6 months ago

Btw, can you describe how you test? Do you set up a vm for testing?

The sane way of testing is to, yeah, run the target environment in a VM and apply the Regolith update on top. I have used several VM managers in the past with mixed results. I've found "Virtual Machine Manager" to be the least bad, but it certainly has some problems.

In addition to VM testing, once things are somewhat stable on the new release, but before we release, I typically upgrade one of my home machines to the target OS/version and run it for a few days as a sort of "ambient smoke test".

I have been thinking recently about building more infra for better e2e testing for Regolith. I've found it's possible to specify a virtual framebuffer device to a desktop session running in a container, and there is a python library that allows for "remote control" of that container, such that clicks, key presses, and screenshots can be used to instrument tests. I have not begun implementation yet.

kgilmer commented 6 months ago

Build attempt into unstable: https://github.com/regolith-linux/voulage/actions/runs/8548106813

SoumyaRanjanPatnaik commented 6 months ago

Did this work?? Or we still get conflicts and sway session files?

kgilmer commented 5 months ago

Looking through branches tags in the unstable package model, came upon this PR :grinning: Yes, I believe it worked. Merging for beta release.

kgilmer commented 5 months ago

(I mistakenly merged this into upstream-1.9. Renamed that branch to packaging/v1.9-regolith)