#72 comps-sync pass 3: Subset of workstation
Merged 6 years ago by dustymabe. Opened 6 years ago by walters.
walters/workstation-ostree-config comps-sync-2  into  master

file modified
+15 -1
@@ -1,4 +1,11 @@ 

- # This file has a list of packages to skip from comps that we don't want.

+ # This file has a list of packages to skip from comps that we don't want, plus

+ # a few whitelisted things.

+ 

+ # For some reason today these are just in livecd-tools...

+ whitelist:

+   - kernel

+   - kernel-modules

+   - kernel-modules-extra

  

  # Entirely skip all packages in libreoffice

  blacklist_groups:
@@ -53,12 +60,19 @@ 

      # We removed cronie a while ago, should nuke these too

      - crontabs

      - at

+     # This drags in a huge dependency set of dnf bits

+     - abrt-cli

+     - abrt-desktop

+     - abrt-java-connector

      # Requires libreoffice

      - unoconv

      # Will change to git-core

      - git

      # Apps

      - rhythmbox

+     - evolution

+     - evolution-ews

+     - evolution-help

      # Random tools: container

      - net-tools

      - nmap-ncat

file modified
+15 -8
@@ -25,6 +25,7 @@ 

  with open('comps-sync-blacklist.yml') as f:

      doc = yaml.load(f)

      comps_blacklist = doc['blacklist']

+     comps_whitelist = doc['whitelist']

      comps_blacklist_groups = doc['blacklist_groups']

  

  manifest_packages = set(manifest['packages'])
@@ -38,16 +39,12 @@ 

  # just the workstation environment.

  comps = libcomps.Comps()

  comps.fromxml_f(args.src)

- for group in comps.groups:

-     for pkg in group.packages:

-         comps_packages.add(pkg.name)

- for pkg in manifest_packages:

-     if pkg not in comps_packages:

-         comps_unknown.add(pkg)

  

  # Parse the workstation-product environment, gathering

  # default or mandatory packages.

- ws_environ = comps.environments['workstation-product-environment']

+ ws_env_name = 'workstation-product-environment'

+ ws_ostree_name = 'workstation-ostree-support'

+ ws_environ = comps.environments[ws_env_name]

  ws_pkgs = {}

  for gid in ws_environ.group_ids:

      group = comps.groups_match(id=gid.name)[0]
@@ -69,12 +66,22 @@ 

              ws_pkgs[pkgname] = pkgdata = (pkg.type, pkgdata[1])

          pkgdata[1].add(gid.name)

  

+ ws_ostree_pkgs = set()

+ for pkg in comps.groups_match(id=ws_ostree_name)[0].packages:

+     ws_ostree_pkgs.add(pkg.name)

+ 

+ for pkg in manifest_packages:

+     if (pkg not in comps_whitelist and

+         pkg not in ws_pkgs and

+         pkg not in ws_ostree_pkgs):

+         comps_unknown.add(pkg)

+ 

  # Look for packages in the manifest but not in comps at all

  n_manifest_new = len(comps_unknown)

  if n_manifest_new == 0:

      print("All manifest packages are already listed in comps.")

  else:

-     print("{} packages not in comps:".format(n_manifest_new))

+     print("{} packages not in {}:".format(n_manifest_new, ws_env_name))

      for pkg in sorted(comps_unknown):

          print('  ' + pkg)

          manifest_packages.remove(pkg)

@@ -5,22 +5,21 @@ 

          "NetworkManager",

          "NetworkManager-adsl",

          "NetworkManager-bluetooth",

-         "NetworkManager-config-connectivity-fedora",

-         "NetworkManager-openconnect",

+         "NetworkManager-openconnect-gnome",

          "NetworkManager-openvpn-gnome",

          "NetworkManager-pptp-gnome",

-         "NetworkManager-team",

+         "NetworkManager-ssh-gnome",

          "NetworkManager-vpnc-gnome",

          "NetworkManager-wifi",

          "NetworkManager-wwan",

          "PackageKit-gstreamer-plugin",

          "aajohan-comfortaa-fonts",

          "abattis-cantarell-fonts",

-         "adobe-source-han-sans-cn-fonts",

-         "adobe-source-han-sans-tw-fonts",

+         "acl",

          "adwaita-qt4",

          "adwaita-qt5",

          "alsa-plugins-pulseaudio",

+         "alsa-ucm",

          "alsa-utils",

          "at-spi2-atk",

          "at-spi2-core",
@@ -50,30 +49,27 @@ 

          "colord",

          "control-center",

          "coreutils",

+         "cpio",

          "cryptsetup",

          "cups",

          "cups-filters",

          "curl",

+         "cyrus-sasl-plain",

+         "dconf",

          "dejavu-sans-fonts",

          "dejavu-sans-mono-fonts",

          "dejavu-serif-fonts",

-         "device-mapper-multipath",

+         "desktop-backgrounds-gnome",

          "dhcp-client",

-         "dmraid",

          "dnsmasq",

          "dos2unix",

-         "dracut-config-generic",

-         "dracut-network",

          "e2fsprogs",

-         "ebtables",

-         "efibootmgr",

          "eog",

          "ethtool",

-         "fcoe-utils",

          "fedora-bookmarks",

-         "fedora-productimg-workstation",

          "fedora-release-workstation",

          "fedora-user-agent-chrome",

+         "file",

          "file-roller",

          "filesystem",

          "firefox",
@@ -141,6 +137,9 @@ 

          "google-noto-serif-kr-fonts",

          "google-noto-serif-sc-fonts",

          "google-noto-serif-tc-fonts",

+         "gstreamer1-plugin-mpg123",

+         "gstreamer1-plugins-bad-free",

+         "gstreamer1-plugins-good",

          "gutenprint",

          "gutenprint-cups",

          "gvfs-afc",
@@ -151,11 +150,9 @@ 

          "gvfs-gphoto2",

          "gvfs-mtp",

          "gvfs-smb",

-         "gzip",

-         "hfsplus-tools",

-         "highlight",

          "hostname",

          "hplip",

+         "hunspell",

          "hyperv-daemons",

          "ibus-gtk2",

          "ibus-gtk3",
@@ -205,8 +202,8 @@ 

          "liberation-serif-fonts",

          "libertas-usb8388-firmware",

          "libproxy-mozjs",

-         "libvirt-client",

-         "libvirt-daemon-kvm",

+         "librsvg2",

+         "libsane-hpaio",

          "lklug-fonts",

          "logrotate",

          "lohit-assamese-fonts",
@@ -220,13 +217,10 @@ 

          "lohit-telugu-fonts",

          "lrzsz",

          "lsof",

-         "lvm2",

-         "lzop",

-         "m17n-db",

-         "mactel-boot",

          "man-db",

          "man-pages",

          "mcelog",

+         "mdadm",

          "mesa-dri-drivers",

          "microcode_ctl",

          "mlocate",
@@ -235,10 +229,11 @@ 

          "mtr",

          "nautilus",

          "nautilus-sendto",

-         "naver-nanum-gothic-fonts",

          "nfs-utils",

          "nss-altfiles",

          "nss-mdns",

+         "ntfsprogs",

+         "open-vm-tools-desktop",

          "openssh-clients",

          "openssh-server",

          "orca",
@@ -249,19 +244,29 @@ 

          "passwd",

          "passwdqc",

          "pciutils",

+         "pinentry-gnome3",

          "pinfo",

          "plymouth",

          "plymouth-system-theme",

          "policycoreutils",

          "polkit",

-         "poppler-utils",

          "procps-ng",

          "psacct",

+         "pulseaudio",

+         "pulseaudio-module-x11",

+         "pulseaudio-utils",

          "qemu-guest-agent",

-         "qemu-kvm",

          "qgnomeplatform",

-         "radvd",

+         "qt",

+         "qt-settings",

+         "qt-x11",

+         "qt5-qtbase",

+         "qt5-qtbase-gui",

+         "qt5-qtdeclarative",

+         "qt5-qtxmlpatterns",

+         "quota",

          "rdist",

+         "realmd",

          "rng-tools",

          "rootfiles",

          "rp-pppoe",
@@ -275,7 +280,6 @@ 

          "setup",

          "setuptool",

          "shadow-utils",

-         "sheepdog",

          "sil-abyssinica-fonts",

          "sil-mingzat-fonts",

          "sil-nuosu-fonts",
@@ -291,30 +295,34 @@ 

          "symlinks",

          "system-config-printer-udev",

          "systemd",

+         "systemd-udev",

          "tabish-eeyek-fonts",

          "tar",

          "tcpdump",

-         "teamd",

          "telnet",

          "thai-scalable-waree-fonts",

          "time",

          "totem",

          "totem-nautilus",

          "traceroute",

+         "tracker",

+         "tracker-miners",

          "tree",

+         "unzip",

          "usb_modeswitch",

          "usbutils",

          "util-linux",

          "vconfig",

          "vim-minimal",

-         "vlgothic-fonts",

+         "virtualbox-guest-additions",

          "wget",

          "which",

          "wireless-tools",

          "words",

          "wvdial",

+         "xdg-desktop-portal",

+         "xdg-desktop-portal-gtk",

          "xdg-user-dirs-gtk",

-         "xfsprogs",

          "xorg-x11-drv-ati",

          "xorg-x11-drv-evdev",

          "xorg-x11-drv-fbdev",
@@ -330,7 +338,6 @@ 

          "xorg-x11-utils",

          "xorg-x11-xauth",

          "xorg-x11-xinit",

-         "xz",

          "yelp",

          "zd1211-firmware",

          "zip"

The mental model here is simpler if our base package set is truly a subset of
Workstation.

Extend comps-sync to also support deleting packages not in the Workstation
set. The only exception here is that we still want kernel-modules-extra
which for some reason is only in livecd-tools...I don't understand that.
For now I added a whitelist.

The set of resulting changes here generally makes sense. We lose some
random unnecessary stuff like teamd and dracut-network, and mactel-boot.
We gain things like the desktop background packages, sshpass, and some qt
bits.

+  NetworkManager-openconnect-gnome-1.2.4-9.fc28.x86_64 (fedora-rawhide)
-  NetworkManager-team-1:1.10.2-1.fc28.x86_64 (fedora-rawhide)
+  NetworkManager-ssh-1.2.7-1.fc28.x86_64 (fedora-rawhide)
+  NetworkManager-ssh-gnome-1.2.7-1.fc28.x86_64 (fedora-rawhide)
-  adobe-source-han-sans-cn-fonts-1.004-6.fc28.noarch (fedora-rawhide)
-  adobe-source-han-sans-tw-fonts-1.004-7.fc28.noarch (fedora-rawhide)
+  alsa-ucm-1.1.5-2.fc28.x86_64 (fedora-rawhide)
-  autogen-libopts-5.18.12-6.fc28.x86_64 (fedora-rawhide)
+  cyrus-sasl-plain-2.1.26-37.fc28.x86_64 (fedora-rawhide)
+  desktop-backgrounds-gnome-27.0.0-2.fc28.noarch (fedora-rawhide)
-  dmraid-1.0.0.rc16-37.fc28.x86_64 (fedora-rawhide)
-  dmraid-events-1.0.0.rc16-37.fc28.x86_64 (fedora-rawhide)
-  dracut-config-generic-046-92.git20180118.fc28.1.x86_64 (fedora-rawhide)
-  dracut-network-046-92.git20180118.fc28.1.x86_64 (fedora-rawhide)
-  fcoe-utils-1.0.32-3.fc27.x86_64 (fedora-rawhide)
+  f27-backgrounds-base-27.0.1-3.fc28.noarch (fedora-rawhide)
+  f27-backgrounds-gnome-27.0.1-3.fc28.noarch (fedora-rawhide)
-  fedora-productimg-workstation-27-2.fc28.x86_64 (fedora-rawhide)
-  gnutls-dane-3.6.2-1.fc28.x86_64 (fedora-rawhide)
-  gnutls-utils-3.6.2-1.fc28.x86_64 (fedora-rawhide)
-  hfsplus-tools-540.1.linux3-15.fc28.x86_64 (fedora-rawhide)
-  highlight-3.39-3.fc27.x86_64 (fedora-rawhide)
-  libconfig-1.5-9.fc28.x86_64 (fedora-rawhide)
+  libdnet-1.12-25.fc28.x86_64 (fedora-rawhide)
+  libmspack-0.6-0.2.alpha.fc28.x86_64 (fedora-rawhide)
-  libnl3-cli-3.4.0-3.fc28.x86_64 (fedora-rawhide)
+  libsane-hpaio-3.17.11-8.fc28.x86_64 (fedora-rawhide)
-  libteam-1.27-6.fc28.x86_64 (fedora-rawhide)
-  libvirt-client-4.0.0-1.fc28.x86_64 (fedora-rawhide)
-  lldpad-1.0.1-9.git036e314.fc28.x86_64 (fedora-rawhide)
-  mactel-boot-0.9-16.fc27.x86_64 (fedora-rawhide)
-  naver-nanum-fonts-common-3.020-20.20140930.fc28.noarch (fedora-rawhide)
-  naver-nanum-gothic-fonts-3.020-20.20140930.fc28.noarch (fedora-rawhide)
+  open-vm-tools-10.2.0-3.fc28.x86_64 (fedora-rawhide)
+  open-vm-tools-desktop-10.2.0-3.fc28.x86_64 (fedora-rawhide)
+  pinentry-gnome3-1.1.0-2.fc28.x86_64 (fedora-rawhide)
+  pulseaudio-module-x11-11.1-11.fc28.x86_64 (fedora-rawhide)
+  pulseaudio-utils-11.1-11.fc28.x86_64 (fedora-rawhide)
+  qt5-qtdeclarative-5.10.1-1.fc28.x86_64 (fedora-rawhide)
+  qt5-qtxmlpatterns-5.10.1-1.fc28.x86_64 (fedora-rawhide)
+  realmd-0.16.3-9.fc28.x86_64 (fedora-rawhide)
-  sgpio-1.2.0.10-20.fc28.x86_64 (fedora-rawhide)
+  sshpass-1.06-5.fc28.x86_64 (fedora-rawhide)
-  teamd-1.27-6.fc28.x86_64 (fedora-rawhide)
-  unbound-libs-1.6.8-3.fc28.x86_64 (fedora-rawhide)
-  vlgothic-fonts-20141206-10.fc28.noarch (fedora-rawhide)
+  virtualbox-guest-additions-5.2.6-4.fc28.x86_64 (fedora-rawhide)
+  xmlsec1-openssl-1.2.25-3.fc28.x86_64 (fedora-rawhide)

Looks sane to me.

-  libvirt-client-4.0.0-1.fc28.x86_64 (fedora-rawhide)

:( but understandable.

we shouldn't need this anymore right?

+ open-vm-tools-desktop-10.2.0-3.fc28.x86_64 (fedora-rawhide)

+ virtualbox-guest-additions-5.2.6-4.fc28.x86_64 (fedora-rawhide)

So these are already part of the Workstation set? They kind of stick out like a sore thumb for me.

But otherwise, this looks good.

So these are already part of the Workstation set? They kind of stick out like a sore thumb for me.

Yep, although I think FAW is at its best on bare metal...we want to support being a virt guest too for the same reasons as traditional, right?

  • libvirt-client-4.0.0-1.fc28.x86_64 (fedora-rawhide)

Well we can add it to Workstation, I assume it's an oversight there? That said there's a whole big picture question around whether we should ship the virt stack by default.

we shouldn't need this anymore right?

Yeah I'll delete it.

That said there's a whole big picture question around whether we should ship the virt stack by default.

Right exactly. It seems odd to me that we ship libvirt without libvirt-client. I mean, yeah, you have vagrant-libvirt and GNOME Boxes which use the libvirt API directly, but from a mgmt perspective, libvirt-client is the canonical way to manage libvirt resources, right?

Though I don't mind too much, it's just one rpm-ostree install away. :)

With this PR as is it's only gnome-boxes pulling it in. I was thinking of removing that in a phase 3 after doing some testing.

rebased onto 369c6d4

6 years ago

LGTM, merging this so I can add some comments and open a new PR

Pull-Request has been merged by dustymabe

6 years ago