Extend comps-sync more, add font packages
`comps-sync.py` now has support for explicitly syncing *from* the workstation comps. In order to do this sanely though, we need a "blacklist" of things we don't want to sync. There are a few issues here: - desktop applications - dubious CLI apps - dnf - dubious misc things: e.g. `tcp_wrappers`, `crontabs` - arch-specific bits (not handled right now)
This commit is contained in:
parent
934f667b6c
commit
d0b52b1f19
3 changed files with 118 additions and 3 deletions
75
comps-sync-blacklist.yml
Normal file
75
comps-sync-blacklist.yml
Normal file
|
@ -0,0 +1,75 @@
|
|||
# This file has a list of packages to skip from comps that we don't want.
|
||||
|
||||
# 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
|
||||
# Requires libreoffice
|
||||
- unoconv
|
||||
# Will change to git-core
|
||||
- git
|
||||
# Apps
|
||||
- rhythmbox
|
||||
# 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
|
|
@ -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,11 @@ base_pkgs_path = 'fedora-workstation-base-pkgs.json'
|
|||
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_blacklist_groups = doc['blacklist_groups']
|
||||
|
||||
manifest_packages = set(manifest['packages'])
|
||||
|
||||
comps_unknown = set()
|
||||
|
@ -44,11 +51,16 @@ ws_environ = comps.environments['workstation-product-environment']
|
|||
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]))
|
||||
|
@ -72,6 +84,7 @@ ws_added = {}
|
|||
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:
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"NetworkManager-wwan",
|
||||
"PackageKit-gstreamer-plugin",
|
||||
"aajohan-comfortaa-fonts",
|
||||
"abattis-cantarell-fonts",
|
||||
"adobe-source-han-sans-cn-fonts",
|
||||
"adobe-source-han-sans-tw-fonts",
|
||||
"adwaita-qt4",
|
||||
|
@ -46,6 +47,7 @@
|
|||
"cheese",
|
||||
"chrony",
|
||||
"cifs-utils",
|
||||
"colord",
|
||||
"control-center",
|
||||
"coreutils",
|
||||
"cryptsetup",
|
||||
|
@ -56,10 +58,13 @@
|
|||
"dejavu-sans-mono-fonts",
|
||||
"dejavu-serif-fonts",
|
||||
"device-mapper-multipath",
|
||||
"dhcp-client",
|
||||
"dmraid",
|
||||
"dnsmasq",
|
||||
"dos2unix",
|
||||
"dracut-config-generic",
|
||||
"dracut-network",
|
||||
"e2fsprogs",
|
||||
"ebtables",
|
||||
"efibootmgr",
|
||||
"eog",
|
||||
|
@ -70,6 +75,7 @@
|
|||
"fedora-release-workstation",
|
||||
"fedora-user-agent-chrome",
|
||||
"file-roller",
|
||||
"filesystem",
|
||||
"firefox",
|
||||
"firewalld",
|
||||
"foomatic",
|
||||
|
@ -82,6 +88,7 @@
|
|||
"glib-networking",
|
||||
"glibc",
|
||||
"glibc-all-langpacks",
|
||||
"glx-utils",
|
||||
"gnome-backgrounds",
|
||||
"gnome-bluetooth",
|
||||
"gnome-boxes",
|
||||
|
@ -114,13 +121,26 @@
|
|||
"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",
|
||||
"gutenprint",
|
||||
"gutenprint-cups",
|
||||
"gvfs-afc",
|
||||
|
@ -149,6 +169,7 @@
|
|||
"ibus-typing-booster",
|
||||
"initscripts",
|
||||
"iproute",
|
||||
"iptables",
|
||||
"iptstate",
|
||||
"iputils",
|
||||
"ipw2100-firmware",
|
||||
|
@ -170,6 +191,7 @@
|
|||
"iwl6050-firmware",
|
||||
"iwl7260-firmware",
|
||||
"jomolhari-fonts",
|
||||
"julietaula-montserrat-fonts",
|
||||
"jwhois",
|
||||
"kbd",
|
||||
"kernel",
|
||||
|
@ -178,10 +200,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",
|
||||
"lklug-fonts",
|
||||
"logrotate",
|
||||
"lohit-assamese-fonts",
|
||||
"lohit-bengali-fonts",
|
||||
|
@ -239,6 +265,7 @@
|
|||
"rng-tools",
|
||||
"rootfiles",
|
||||
"rp-pppoe",
|
||||
"rpm",
|
||||
"rsync",
|
||||
"rygel",
|
||||
"samba-client",
|
||||
|
|
Loading…
Reference in a new issue