From 7e7cef09ac4b001a82741336ce5e3b7390d1e12f Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Jan 04 2021 10:20:45 +0000 Subject: Replace black/white list with exclude/include list --- diff --git a/comps-sync-blacklist.yml b/comps-sync-blacklist.yml deleted file mode 100644 index 1586f48..0000000 --- a/comps-sync-blacklist.yml +++ /dev/null @@ -1,263 +0,0 @@ -# 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 - - gnome-desktop - - container-management - -# PackageKit is spread across various groups -blacklist_all_regexp: - - "PackageKit.*" - -# Common blacklist for all ostree desktop versions -blacklist: - core: - # We use rpm-ostree for the host - - dnf - - dnf-plugins-core - - yum - # 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 - # Colin says we also don't need grubby-deprecated - - grubby-deprecated - # Why? - - ncurses - # Architecture specific packages - - powerpc-utils - - lsvpd - base-x: - # x86 specific packages. Added back by fedora-common-ostree.yaml - - xorg-x11-drv-intel - - xorg-x11-drv-openchrome - - xorg-x11-drv-vesa - - xorg-x11-drv-vmware - # ARM specific packages - - xorg-x11-drv-armada - - xorg-x11-drv-armsoc - - xorg-x11-drv-omap - guest-desktop-agents: - # x86 specific packages. Added back by fedora-common-ostree.yaml - - hyperv-daemons - - open-vm-tools-desktop - - virtualbox-guest-additions - workstation-product: - # We use rpm-ostree for the host - - dnf - - dnf-plugins-core - - deltarpm - # We use fedora-release-silverblue instead - - fedora-release-workstation - # Really not worth listing explicitly - - filesystem - # Why? - - ncurses - - mailcap - # This seems like some weird legacy thing, it also - # drags in usermode, which should also be deprecated - # and blocks a /usr/sbin + /usr/bin unification. - - setuptool - # 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 - # This is ancient now, and IMO has been superceded by cgroups - # Also it breaks with --unified-core. - - psacct - # Random tools: container - - rdist - - jwhois - - tcpdump - - telnet - - traceroute - - net-tools - - nmap-ncat - # filesystem tools, again priv container - - symlinks - - dosfstools - - ntfs-3g - # Misc - - dos2unix - # Gnome specific - - desktop-backgrounds-gnome - - gnome-shell-extension-background-logo - - pinentry-gnome3 - - qgnomeplatform - # x86 specific packages. Added back by fedora-common-ostree.yaml - - mcelog - - microcode_ctl - - thermald - networkmanager-submodules: - # Let's use the builtin one by default - - dhcp-client - printing: - # We don't use PackageKit - - cups-pk-helper - # For now... - - ghostscript - -# Desktop environment specific blacklists -desktop_blacklist: - gnome-desktop: - # Non-critical apps -> Flatpak - - baobab - - cheese - - eog - - evince - - evince-djvu - - evince-nautilus - - file-roller - - file-roller-nautilus - - gedit - - gnome-boxes - - gnome-calculator - - gnome-calendar - - gnome-characters - - gnome-clocks - - gnome-contacts - - gnome-documents - - gnome-font-viewer - - gnome-logs - - gnome-maps - - gnome-photos - - gnome-screenshot - - gnome-weather - - jwhois - - rdist - - sane-backends-drivers-scanners - - symlinks - - simple-scan - - sushi - - tcpdump - - telnet - - totem - - totem-nautilus - - traceroute - kde-desktop: - # Incompatible with ostree for various reasons - - abrt-desktop - - cups-pk-helper - - dnfdragora - - plasma-pk-updates - # Non-critical apps -> Flatpak - - akregator - - cagibi - - gwenview - - kaddressbook - - kamera - - kcalc - - kcharselect - - kcolorchooser - - kde-partitionmanager - - kdnssd - - kf5-kipi-plugins - - kfind - - kget - - kgpg - - kmail - - kmouth - - knode - - konqueror - - kontact - - korganizer - - kruler - - ksshaskpass - - kwrite - - libreoffice-kde - - spectacle - # Misc - - adwaita-gtk2-theme - - colord-kde - - keditbookmarks - - kwebkitpart - - plasma-nm-l2tp - - plasma-nm-openconnect - - plasma-nm-openswan - - plasma-nm-openvpn - - plasma-nm-pptp - - plasma-nm-vpnc - xfce-desktop: - # Incompatible with ostree for various reasons - - abrt-desktop - - dnfdragora-updater - # Non-critical apps -> Flatpak - - fros-recordmydesktop - - tumbler - # Misc - - alsa-utils - - firewall-config - - openssh-askpass - - vim-enhanced - # Remove uncommon NetworkManager plugins - - NetworkManager-fortisslvpn-gnome - - NetworkManager-iodine-gnome - - NetworkManager-l2tp-gnome - - NetworkManager-libreswan-gnome - - NetworkManager-sstp-gnome - - NetworkManager-strongswan-gnome - lxqt-desktop: - # Incompatible with ostree for various reasons - - dnfdragora-updater - deepin-desktop: - # Incompatible with ostree for various reasons - - dnfdragora-updater - mate-desktop: - # Incompatible with ostree for various reasons - - abrt-desktop - - abrt-java-connector - - dnfdragora-updater - # Non-critical apps -> Flatpak - - blivet-gui - - filezilla - - gnome-disk-utility - - gnome-logs - - gnote - - gparted - - hexchat - - p7zip - - p7zip-plugins - - simple-scan - - thunderbird - - transmission-gtk - - vim-enhanced - - xfburn - - yelp - # Non critical NetworkManager plugins - - NetworkManager-bluetooth - - NetworkManager-iodine-gnome - - NetworkManager-l2tp-gnome - - NetworkManager-libreswan-gnome - - NetworkManager-ovs - - NetworkManager-sstp-gnome - - NetworkManager-strongswan-gnome - - NetworkManager-team - - NetworkManager-wifi - # Use Silverblue release package for now - - fedora-release-matecompiz diff --git a/comps-sync-exclude-list.yml b/comps-sync-exclude-list.yml new file mode 100644 index 0000000..9396069 --- /dev/null +++ b/comps-sync-exclude-list.yml @@ -0,0 +1,263 @@ +# This file has a list of packages to skip from comps that we don't want, plus +# a few include listed things. + +# For some reason today these are just in livecd-tools... +include_list: + - kernel + - kernel-modules + - kernel-modules-extra + +# Entirely skip all packages in libreoffice +exclude_list_groups: + - libreoffice + - gnome-desktop + - container-management + +# PackageKit is spread across various groups +exclude_list_all_regexp: + - "PackageKit.*" + +# Common exclude list for all ostree desktop versions +exclude_list: + core: + # We use rpm-ostree for the host + - dnf + - dnf-plugins-core + - yum + # 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 + # Colin says we also don't need grubby-deprecated + - grubby-deprecated + # Why? + - ncurses + # Architecture specific packages + - powerpc-utils + - lsvpd + base-x: + # x86 specific packages. Added back by fedora-common-ostree.yaml + - xorg-x11-drv-intel + - xorg-x11-drv-openchrome + - xorg-x11-drv-vesa + - xorg-x11-drv-vmware + # ARM specific packages + - xorg-x11-drv-armada + - xorg-x11-drv-armsoc + - xorg-x11-drv-omap + guest-desktop-agents: + # x86 specific packages. Added back by fedora-common-ostree.yaml + - hyperv-daemons + - open-vm-tools-desktop + - virtualbox-guest-additions + workstation-product: + # We use rpm-ostree for the host + - dnf + - dnf-plugins-core + - deltarpm + # We use fedora-release-silverblue instead + - fedora-release-workstation + # Really not worth listing explicitly + - filesystem + # Why? + - ncurses + - mailcap + # This seems like some weird legacy thing, it also + # drags in usermode, which should also be deprecated + # and blocks a /usr/sbin + /usr/bin unification. + - setuptool + # 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 + # This is ancient now, and IMO has been superceded by cgroups + # Also it breaks with --unified-core. + - psacct + # Random tools: container + - rdist + - jwhois + - tcpdump + - telnet + - traceroute + - net-tools + - nmap-ncat + # filesystem tools, again priv container + - symlinks + - dosfstools + - ntfs-3g + # Misc + - dos2unix + # Gnome specific + - desktop-backgrounds-gnome + - gnome-shell-extension-background-logo + - pinentry-gnome3 + - qgnomeplatform + # x86 specific packages. Added back by fedora-common-ostree.yaml + - mcelog + - microcode_ctl + - thermald + networkmanager-submodules: + # Let's use the builtin one by default + - dhcp-client + printing: + # We don't use PackageKit + - cups-pk-helper + # For now... + - ghostscript + +# Desktop environment specific exclude lists +desktop_exclude_list: + gnome-desktop: + # Non-critical apps -> Flatpak + - baobab + - cheese + - eog + - evince + - evince-djvu + - evince-nautilus + - file-roller + - file-roller-nautilus + - gedit + - gnome-boxes + - gnome-calculator + - gnome-calendar + - gnome-characters + - gnome-clocks + - gnome-contacts + - gnome-documents + - gnome-font-viewer + - gnome-logs + - gnome-maps + - gnome-photos + - gnome-screenshot + - gnome-weather + - jwhois + - rdist + - sane-backends-drivers-scanners + - symlinks + - simple-scan + - sushi + - tcpdump + - telnet + - totem + - totem-nautilus + - traceroute + kde-desktop: + # Incompatible with ostree for various reasons + - abrt-desktop + - cups-pk-helper + - dnfdragora + - plasma-pk-updates + # Non-critical apps -> Flatpak + - akregator + - cagibi + - gwenview + - kaddressbook + - kamera + - kcalc + - kcharselect + - kcolorchooser + - kde-partitionmanager + - kdnssd + - kf5-kipi-plugins + - kfind + - kget + - kgpg + - kmail + - kmouth + - knode + - konqueror + - kontact + - korganizer + - kruler + - ksshaskpass + - kwrite + - libreoffice-kde + - spectacle + # Misc + - adwaita-gtk2-theme + - colord-kde + - keditbookmarks + - kwebkitpart + - plasma-nm-l2tp + - plasma-nm-openconnect + - plasma-nm-openswan + - plasma-nm-openvpn + - plasma-nm-pptp + - plasma-nm-vpnc + xfce-desktop: + # Incompatible with ostree for various reasons + - abrt-desktop + - dnfdragora-updater + # Non-critical apps -> Flatpak + - fros-recordmydesktop + - tumbler + # Misc + - alsa-utils + - firewall-config + - openssh-askpass + - vim-enhanced + # Remove uncommon NetworkManager plugins + - NetworkManager-fortisslvpn-gnome + - NetworkManager-iodine-gnome + - NetworkManager-l2tp-gnome + - NetworkManager-libreswan-gnome + - NetworkManager-sstp-gnome + - NetworkManager-strongswan-gnome + lxqt-desktop: + # Incompatible with ostree for various reasons + - dnfdragora-updater + deepin-desktop: + # Incompatible with ostree for various reasons + - dnfdragora-updater + mate-desktop: + # Incompatible with ostree for various reasons + - abrt-desktop + - abrt-java-connector + - dnfdragora-updater + # Non-critical apps -> Flatpak + - blivet-gui + - filezilla + - gnome-disk-utility + - gnome-logs + - gnote + - gparted + - hexchat + - p7zip + - p7zip-plugins + - simple-scan + - thunderbird + - transmission-gtk + - vim-enhanced + - xfburn + - yelp + # Non critical NetworkManager plugins + - NetworkManager-bluetooth + - NetworkManager-iodine-gnome + - NetworkManager-l2tp-gnome + - NetworkManager-libreswan-gnome + - NetworkManager-ovs + - NetworkManager-sstp-gnome + - NetworkManager-strongswan-gnome + - NetworkManager-team + - NetworkManager-wifi + # Use Silverblue release package for now + - fedora-release-matecompiz diff --git a/comps-sync.py b/comps-sync.py index 0a4715d..cd9d73e 100755 --- a/comps-sync.py +++ b/comps-sync.py @@ -43,16 +43,16 @@ with open(base_pkgs_path) as f: manifest = yaml.safe_load(f) manifest_packages = set(manifest['packages']) -with open('comps-sync-blacklist.yml') as f: +with open('comps-sync-exclude-list.yml') as f: doc = yaml.safe_load(f) - comps_blacklist = doc['blacklist'] - comps_whitelist = doc['whitelist'] - comps_blacklist_groups = doc['blacklist_groups'] - comps_desktop_blacklist = doc['desktop_blacklist'] - comps_blacklist_all = [re.compile(x) for x in doc['blacklist_all_regexp']] - -def is_blacklisted(pkgname): - for br in comps_blacklist_all: + comps_exclude_list = doc['exclude_list'] + comps_include_list = doc['include_list'] + comps_exclude_list_groups = doc['exclude_list_groups'] + comps_desktop_exclude_list = doc['desktop_exclude_list'] + comps_exclude_list_all = [re.compile(x) for x in doc['exclude_list_all_regexp']] + +def is_exclude_listed(pkgname): + for br in comps_exclude_list_all: if br.match(pkgname): return True return False @@ -71,15 +71,15 @@ 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: + if gid.name in comps_exclude_list_groups: continue - blacklist = comps_blacklist.get(gid.name, set()) + exclude_list = comps_exclude_list.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 or is_blacklisted(pkgname): + if pkgname in exclude_list or is_exclude_listed(pkgname): continue pkgdata = ws_pkgs.get(pkgname) if pkgdata is None: @@ -91,12 +91,12 @@ for gid in ws_environ.group_ids: ws_ostree_pkgs = set() for pkg in comps.groups_match(id=ws_ostree_name)[0].packages: - if not is_blacklisted(pkg.name): + if not is_exclude_listed(pkg.name): ws_ostree_pkgs.add(pkg.name) comps_unknown = set() for pkg in manifest_packages: - if (pkg not in comps_whitelist and + if (pkg not in comps_include_list and pkg not in ws_pkgs and pkg not in ws_ostree_pkgs): comps_unknown.add(pkg) @@ -141,12 +141,12 @@ for desktop in [ 'gnome-desktop', 'kde-desktop', 'xfce-desktop', manifest = yaml.safe_load(f) manifest_packages = set(manifest['packages']) - # Filter packages in the comps desktop group using the blacklist + # Filter packages in the comps desktop group using the exclude_list comps_group_pkgs = set() for pkg in comps.groups_match(id=desktop)[0].packages: pkgname = pkg.name - blacklist = comps_desktop_blacklist.get(desktop, set()) - if pkgname in blacklist or is_blacklisted(pkgname): + exclude_list = comps_desktop_exclude_list.get(desktop, set()) + if pkgname in exclude_list or is_exclude_listed(pkgname): continue comps_group_pkgs.add(pkg.name)