#78 backport comps-sync script changes & do comps sync
Merged 6 years ago by walters. Opened 6 years ago by dustymabe.
dustymabe/workstation-ostree-config dusty-f28  into  f28

@@ -0,0 +1,89 @@ 

+ # 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:

+   - libreoffice

+ 

+ blacklist:

+   core:

+     # We use rpm-ostree for the host

+     - dnf

+     - dnf-yum

+     - dnf-plugins-core

+     # Not sure why this is there at all

+     - dracut-config-rescue

+     # Eh...you can install this in a priv container

+     - parted

+     # https://bugzilla.redhat.com/show_bug.cgi?id=1452348

+     - grubby

+     # Why?

+     - ncurses

+     # Needs to be arch specific

+     - ppc64-utils

+   base-x:

+     # These are for arm...need to handle arch-specific bits

+     - xorg-x11-drv-armsoc

+     - xorg-x11-drv-omap

+   gnome-desktop:

+     # We use rpm-ostree for the host

+     - PackageKit-command-not-found

+     - PackageKit-gtk3-module

+     # Apps

+     - evince

+     - evince-djvu

+     - evince-nautilus

+     - file-roller-nautilus

+     - gnome-calendar

+     - gnome-documents

+     - gnome-photos

+   workstation-product:

+     # We use rpm-ostree for the host

+     - dnf

+     - dnf-plugins-core

+     - deltarpm

+     # Really not worth listing explicitly

+     - filesystem

+     # Why?

+     - ncurses

+     - mailcap

+     # Really?

+     - tcp_wrappers

+     # This probably doesn't need to be default

+     - ppp

+     # 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

+     # filesystem tools, agian priv container

+     - dosfstools

+     - ntfs-3g

+   networkmanager-submodules:

+     # Let's use the builtin one by default

+     - dhcp-client

+   printing:

+     # We don't use PackageKit

+     - cups-pk-helper

+     # For now...

+     - ghostscript

file modified
+31 -11
@@ -1,9 +1,11 @@ 

  #!/usr/bin/python3

  # Usage: ./comps-sync.py /path/to/comps-f28.xml.in

- # Currently just *removes* packages from the manifest

- # which are not mentioned in comps.

+ #

+ # Can both remove packages from the manifest

+ # which are not mentioned in comps, and add packages from

+ # comps.

  

- import os, sys, subprocess, argparse, shlex, json

+ import os, sys, subprocess, argparse, shlex, json, yaml

  import libcomps

  

  def fatal(msg):
@@ -20,6 +22,12 @@ 

  with open(base_pkgs_path) as f:

      manifest = json.load(f)

  

+ 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'])

  

  comps_unknown = set()
@@ -31,24 +39,25 @@ 

  # 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]

+     if gid.name in comps_blacklist_groups:

+         continue

+     blacklist = comps_blacklist.get(gid.name, set())

      for pkg in group.packages:

          pkgname = pkg.name

          if pkg.type not in (libcomps.PACKAGE_TYPE_DEFAULT,

                              libcomps.PACKAGE_TYPE_MANDATORY):

              continue

+         if pkgname in blacklist:

+             continue

          pkgdata = ws_pkgs.get(pkgname)

          if pkgdata is None:

              ws_pkgs[pkgname] = pkgdata = (pkg.type, set([gid.name]))
@@ -57,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)
@@ -72,6 +91,7 @@ 

  for (pkg,data) in ws_pkgs.items():

      if pkg not in manifest_packages:

          ws_added[pkg] = data

+         manifest_packages.add(pkg)

  

  def format_pkgtype(n):

      if n == libcomps.PACKAGE_TYPE_DEFAULT:

@@ -5,21 +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",

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

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

+         "abattis-cantarell-fonts",

+         "acl",

          "adwaita-qt4",

          "adwaita-qt5",

          "alsa-plugins-pulseaudio",

+         "alsa-ucm",

          "alsa-utils",

          "at-spi2-atk",

          "at-spi2-core",
@@ -40,35 +40,35 @@ 

          "bridge-utils",

          "btrfs-progs",

          "bzip2",

-         "caribou",

-         "caribou-gtk2-module",

-         "caribou-gtk3-module",

          "cheese",

          "chrony",

          "cifs-utils",

+         "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",

-         "dmraid",

+         "desktop-backgrounds-gnome",

+         "dhcp-client",

+         "dnsmasq",

          "dos2unix",

-         "dracut-config-generic",

-         "dracut-network",

-         "ebtables",

-         "efibootmgr",

+         "e2fsprogs",

          "eog",

          "ethtool",

-         "fcoe-utils",

          "fedora-bookmarks",

          "fedora-release-workstation",

          "fedora-user-agent-chrome",

+         "file",

          "file-roller",

+         "filesystem",

          "firefox",

          "firewalld",

          "foomatic",
@@ -81,6 +81,7 @@ 

          "glib-networking",

          "glibc",

          "glibc-all-langpacks",

+         "glx-utils",

          "gnome-backgrounds",

          "gnome-bluetooth",

          "gnome-boxes",
@@ -113,13 +114,29 @@ 

          "gnu-free-sans-fonts",

          "gnu-free-serif-fonts",

          "gnupg2",

+         "google-noto-emoji-color-fonts",

          "google-noto-emoji-fonts",

+         "google-noto-sans-jp-fonts",

+         "google-noto-sans-kr-fonts",

          "google-noto-sans-lisu-fonts",

          "google-noto-sans-mandaic-fonts",

          "google-noto-sans-meetei-mayek-fonts",

+         "google-noto-sans-mono-cjk-jp-fonts",

+         "google-noto-sans-mono-cjk-kr-fonts",

+         "google-noto-sans-mono-cjk-sc-fonts",

+         "google-noto-sans-mono-cjk-tc-fonts",

+         "google-noto-sans-sc-fonts",

          "google-noto-sans-tagalog-fonts",

          "google-noto-sans-tai-tham-fonts",

          "google-noto-sans-tai-viet-fonts",

+         "google-noto-sans-tc-fonts",

+         "google-noto-serif-jp-fonts",

+         "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",
@@ -130,11 +147,9 @@ 

          "gvfs-gphoto2",

          "gvfs-mtp",

          "gvfs-smb",

-         "gzip",

-         "hfsplus-tools",

-         "highlight",

          "hostname",

          "hplip",

+         "hunspell",

          "hyperv-daemons",

          "ibus-gtk2",

          "ibus-gtk3",
@@ -148,6 +163,7 @@ 

          "ibus-typing-booster",

          "initscripts",

          "iproute",

+         "iptables",

          "iptstate",

          "iputils",

          "ipw2100-firmware",
@@ -169,6 +185,7 @@ 

          "iwl6050-firmware",

          "iwl7260-firmware",

          "jomolhari-fonts",

+         "julietaula-montserrat-fonts",

          "jwhois",

          "kbd",

          "kernel",
@@ -177,10 +194,14 @@ 

          "less",

          "libcanberra-gtk2",

          "libcanberra-gtk3",

+         "liberation-mono-fonts",

+         "liberation-sans-fonts",

+         "liberation-serif-fonts",

          "libertas-usb8388-firmware",

          "libproxy-mozjs",

-         "libvirt-client",

-         "libvirt-daemon-kvm",

+         "librsvg2",

+         "libsane-hpaio",

+         "lklug-fonts",

          "logrotate",

          "lohit-assamese-fonts",

          "lohit-bengali-fonts",
@@ -193,13 +214,10 @@ 

          "lohit-telugu-fonts",

          "lrzsz",

          "lsof",

-         "lvm2",

-         "lzop",

-         "m17n-db",

-         "mactel-boot",

          "man-db",

          "man-pages",

          "mcelog",

+         "mdadm",

          "mesa-dri-drivers",

          "microcode_ctl",

          "mlocate",
@@ -208,10 +226,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",
@@ -222,22 +241,33 @@ 

          "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",

+         "rpm",

          "rsync",

          "rygel",

          "samba-client",
@@ -247,11 +277,11 @@ 

          "setup",

          "setuptool",

          "shadow-utils",

-         "sheepdog",

          "sil-abyssinica-fonts",

          "sil-mingzat-fonts",

          "sil-nuosu-fonts",

          "sil-padauk-fonts",

+         "simple-scan",

          "smc-meera-fonts",

          "sos",

          "spice-vdagent",
@@ -263,30 +293,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",
@@ -302,7 +336,6 @@ 

          "xorg-x11-utils",

          "xorg-x11-xauth",

          "xorg-x11-xinit",

-         "xz",

          "yelp",

          "zd1211-firmware",

          "zip"

This backports the comps-sync changes from master and then performs a comps sync like #77.

Pull-Request has been merged by walters

6 years ago