#324 Sericea: initial implementation for Sway desktop variant
Merged a year ago by siosm. Opened 2 years ago by alebastr.
https://gitlab.com/fedora/sigs/sway/ostree-config.git sericea-pull-request  into  main

comps-sync f38 2023-01-14
Aleksei Bavshin • a year ago  
Sericea: initial implementation for Sway desktop variant
Anthony Rabbito • a year ago  
comps-sync.py: Support multiple comps groups for a desktop
Timothée Ravier • a year ago  
comps-sync-exclude-list.yml
file modified
+3
@@ -245,3 +245,6 @@

      - NetworkManager-wifi

      # Already in the common set

      - wireplumber

+   swaywm-extended:

+     # Non-critical apps -> Flatpak

+     - mpv

comps-sync.py
file modified
+24 -13
@@ -161,14 +161,24 @@

  if (n_manifest_new > 0 or n_comps_new > 0) and args.save:

      write_manifest(base_pkgs_path, manifest_packages)

  

+ # List of comps groups used for each desktop

+ desktops_comps_groups = {

+     "gnome": ["gnome-desktop"],

+     "kde": ["kde-desktop"],

+     "xfce": ["xfce-desktop"],

+     "lxqt": ["lxqt-desktop"],

+     "deepin": ["deepin-desktop"],

+     "mate": ["mate-desktop"],

+     "sway": ["swaywm", "swaywm-extended"],

+ }

+ 

  # Generate treefiles for all desktops

- for desktop in [ 'gnome-desktop', 'kde-desktop', 'xfce-desktop',

-         'lxqt-desktop', 'deepin-desktop', 'mate-desktop']:

+ for desktop, groups in desktops_comps_groups.items():

      print()

      print("Syncing packages for {}:".format(desktop))

  

-     manifest_path = '{}-pkgs.yaml'.format(desktop)

-     with open(manifest_path) as f:

+     manifest_path = '{}-desktop-pkgs.yaml'.format(desktop)

+     with open(manifest_path, encoding='UTF-8') as f:

          manifest = yaml.safe_load(f)

      manifest_packages = {}

      manifest_packages['all'] = set(manifest['packages'])
@@ -182,15 +192,16 @@

      comps_group_pkgs = {}

      for arch in ARCHES:

          filtered = comps.arch_filter([arch])

-         for pkg in filtered.groups_match(id=desktop)[0].packages:

-             pkgname = pkg.name

-             exclude_list = comps_desktop_exclude_list.get(desktop, set())

-             if pkgname in exclude_list or is_exclude_listed(pkgname):

-                 continue

-             if pkgname in comps_group_pkgs:

-                 comps_group_pkgs[pkgname].add(arch)

-             else:

-                 comps_group_pkgs[pkgname] = set([arch])

+         for group in groups:

+             for pkg in filtered.groups_match(id=group)[0].packages:

+                 pkgname = pkg.name

+                 exclude_list = comps_desktop_exclude_list.get(group, set())

+                 if pkgname in exclude_list or is_exclude_listed(pkgname):

+                     continue

+                 if pkgname in comps_group_pkgs:

+                     comps_group_pkgs[pkgname].add(arch)

+                 else:

+                     comps_group_pkgs[pkgname] = set([arch])

  

      comps_unknown = set()

      for arch in manifest_packages:

fedora-sericea.yaml
file added
+22
@@ -0,0 +1,22 @@

+ include:

+   - sway-desktop-pkgs.yaml

+ ref: fedora/rawhide/${basearch}/sericea

+ rojig:

+   name: fedora-sericea

+   summary: "Fedora Sericea (Sway) base image"

+   license: MIT

+ packages:

+   - fedora-release-sericea

+   # explicitly list some defaults

+   - firefox

+ exclude-packages:

+   # already excluded in comps-sync-exclude-list

+   - PackageKit-glib

+   - grubby

+   # nothing in the tree would use these

+   - tracker

+   - tracker-miners

+ repos:

+   - fedora-rawhide

+   # - fedora-38

+   # - fedora-38-updates

sway-desktop-pkgs.yaml
file added
+42
@@ -0,0 +1,42 @@

+ # DO NOT EDIT! This content is generated from comps-sync.py

+ include: fedora-common-ostree.yaml

+ packages:

+   - NetworkManager-l2tp-gnome

+   - NetworkManager-libreswan-gnome

+   - NetworkManager-openconnect-gnome

+   - NetworkManager-openvpn-gnome

+   - NetworkManager-pptp-gnome

+   - NetworkManager-sstp-gnome

+   - NetworkManager-vpnc-gnome

+   - Thunar

+   - blueman

+   - bolt

+   - dunst

+   - foot

+   - fprintd-pam

+   - gnome-keyring-pam

+   - grim

+   - imv

+   - kanshi

+   - lxqt-policykit

+   - network-manager-applet

+   - pavucontrol-qt

+   - pinentry-gnome3

+   - playerctl

+   - polkit

+   - pulseaudio-utils

+   - sddm

+   - sddm-x11

+   - slurp

+   - sway

+   - sway-config-fedora

+   - swaybg

+   - swayidle

+   - swaylock

+   - system-config-printer

+   - thunar-archive-plugin

+   - waybar

+   - wl-clipboard

+   - xdg-desktop-portal-gtk

+   - xdg-desktop-portal-wlr

+   - xorg-x11-server-Xwayland

no initial comment

Build succeeded.

You should complete your change request before we merge this.

You will also need fedora-release changes

You also probably want a default terminal app and a browser included by default.

The change is submitted for review; Neal told us to send PRs early to get feedback.

You will also need fedora-release changes

fedora-release changes are done here, just waiting for https://src.fedoraproject.org/rpms/fedora-release/pull-request/237. Once it is merged I'll resolve the conflicts and send a PR. The necessary anaconda configuration changes are also planned.

You also probably want a default terminal app and a browser included by default.

The terminal app is included, foot.
firefox is already in fedora-common-ostree-pkgs.yaml, but if you want us to include it explicitly, I'll do that.

The change is submitted for review; Neal told us to send PRs early to get feedback.

Great. Change LGTM overall. We should plan some time to meet to discuss future work and CI (see https://github.com/fedora-silverblue/issue-tracker/issues/334).

fedora-release changes are done here, just waiting for https://src.fedoraproject.org/rpms/fedora-release/pull-request/237. Once it is merged I'll resolve the conflicts and send a PR. The necessary anaconda configuration changes are also planned.

Great.

The terminal app is included, foot.

Great. Missed it as I had never heard of it :).

firefox is already in fedora-common-ostree-pkgs.yaml, but if you want us to include it explicitly, I'll do that.

No need to explicitly mention Firefox if it's already there. Was not sure if it came from the common one or the desktop specific ones.

Do you need some config to setup foot as the default terminal app in Sway?

Great. Change LGTM overall. We should plan some time to meet to discuss future work and CI (see https://github.com/fedora-silverblue/issue-tracker/issues/334).

I'm happy to talk this over and help. I'm usually active in #fedora-sway and #fedora-coreos. Are you thinking of enabling builds for Sway in https://gitlab.com/fedora/ostree/ci-test once this is merged?

I'll reach out to find some good time to meet.

Yes, I think we should start doing unofficial builds as soon as possible once the change is accepted by Fesco (or maybe before once you think things are ready?) to unify the CI as much as possible.

3 new commits added

  • initial comps sync for Sericea (2022-11-27)
  • Sericea: initial implementation for Sway desktop variant
  • comps-sync.py: Support multiple comps groups for a desktop
2 years ago

Build succeeded.

rebased onto a63876a0cb801061ee24db41356a80a9fdd2ea21

a year ago

Build succeeded.

rebased onto c80c85e

a year ago

Build succeeded.

@siosm ping? I believe we've got all dependencies for this PR sorted out, so it's ready for review.

By the way, what's your plans for https://gitlab.com/fedora/ostree/ci-test? Do I need to send a pull-request with justfile changes to the gitlab fork or it'll be merged here?

Also, do you know how Kinoite and Silverblue handle scanners? I left sane-backends in the tree for now, but if we have a flatpak app for these tasks and it works, I'd like to drop that as well.

@siosm ping? I believe we've got all dependencies for this PR sorted out, so it's ready for review.

Thanks for the ping. Will take a look.

By the way, what's your plans for https://gitlab.com/fedora/ostree/ci-test? Do I need to send a pull-request with justfile changes to the gitlab fork or it'll be merged here?

For now the plan for this repo in GitLab is to act as a playground / side CI to be able to test changes in advance, etc. until we figure out the story for the release cadence. The CI in thus repo here is very basic.

If you can make a PR with the changes that would be great but otherwise I'll just update it once it's merged here.

Can you also open an issue there with the GitLab usernames of the people working this so that I can add them as maintainers for those projects?

Also, do you know how Kinoite and Silverblue handle scanners? I left sane-backends in the tree for now, but if we have a flatpak app for these tasks and it works, I'd like to drop that as well.

We currently only have partial support for scanners in Flatpak from memory but neither Silverblue nor Kinoite have scanners installed by default for now.

Pull-Request has been merged by siosm

a year ago

I directly made the change to enable Sericea in the repo on GitLab. We'll have container images soon.

I've just rebased to a container image from quay.io and can confirm it works.
Thanks a lot!