Rework Silverblue to split packages common to all variants
This commit is contained in:
parent
6d028cb372
commit
04c703cede
8 changed files with 221 additions and 126 deletions
|
@ -10,7 +10,10 @@ whitelist:
|
|||
# Entirely skip all packages in libreoffice
|
||||
blacklist_groups:
|
||||
- libreoffice
|
||||
- gnome-desktop
|
||||
- container-management
|
||||
|
||||
# Common blacklist for all ostree desktop versions
|
||||
blacklist:
|
||||
core:
|
||||
# We use rpm-ostree for the host
|
||||
|
@ -28,24 +31,12 @@ blacklist:
|
|||
# Needs to be arch specific
|
||||
- powerpc-utils
|
||||
- lsvpd
|
||||
# KDE specific?
|
||||
- sssd-kcm
|
||||
base-x:
|
||||
# These are for arm...need to handle arch-specific bits
|
||||
- xorg-x11-drv-armsoc
|
||||
- xorg-x11-drv-omap
|
||||
gnome-desktop:
|
||||
# https://github.com/pbrezina/authselect/issues/48
|
||||
- fprintd-pam
|
||||
# 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
|
||||
|
@ -88,9 +79,15 @@ blacklist:
|
|||
- 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
|
||||
networkmanager-submodules:
|
||||
# Let's use the builtin one by default
|
||||
- dhcp-client
|
||||
|
@ -99,3 +96,42 @@ blacklist:
|
|||
- cups-pk-helper
|
||||
# For now...
|
||||
- ghostscript
|
||||
|
||||
# Desktop environment specific blacklists
|
||||
desktop_blacklist:
|
||||
gnome-desktop:
|
||||
# https://github.com/pbrezina/authselect/issues/48
|
||||
- fprintd-pam
|
||||
# We use rpm-ostree for the host
|
||||
- PackageKit-command-not-found
|
||||
- PackageKit-gtk3-module
|
||||
# Non-critical apps -> Flatpak
|
||||
- baobab
|
||||
- cheese
|
||||
- eog
|
||||
- evince
|
||||
- evince-djvu
|
||||
- evince-nautilus
|
||||
- file-roller
|
||||
- file-roller-nautilus
|
||||
- gedit
|
||||
- gnome-calculator
|
||||
- gnome-calendar
|
||||
- gnome-clocks
|
||||
- gnome-contacts
|
||||
- gnome-documents
|
||||
- gnome-font-viewer
|
||||
- gnome-logs
|
||||
- gnome-maps
|
||||
- gnome-photos
|
||||
- gnome-screenshot
|
||||
- gnome-weather
|
||||
- nautilus
|
||||
- nautilus-sendto
|
||||
- orca
|
||||
- sane-backends-drivers-scanners
|
||||
- simple-scan
|
||||
- sushi
|
||||
- totem
|
||||
- totem-nautilus
|
||||
- yelp
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/python3
|
||||
# Usage: ./comps-sync.py /path/to/comps-f28.xml.in
|
||||
# Usage: ./comps-sync.py /path/to/comps-f29.xml.in
|
||||
#
|
||||
# Can both remove packages from the manifest
|
||||
# which are not mentioned in comps, and add packages from
|
||||
|
@ -18,15 +18,18 @@ parser.add_argument("src", help="Source path")
|
|||
|
||||
args = parser.parse_args()
|
||||
|
||||
base_pkgs_path = 'fedora-workstation-base-pkgs.json'
|
||||
print("Syncing packages common to all ostree based desktop versions:")
|
||||
|
||||
base_pkgs_path = 'fedora-common-ostree-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)
|
||||
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']
|
||||
|
||||
manifest_packages = set(manifest['packages'])
|
||||
|
||||
|
@ -116,3 +119,73 @@ if (n_manifest_new > 0 or n_comps_new > 0) and args.save:
|
|||
json.dump(manifest, f, indent=4, sort_keys=True)
|
||||
f.write('\n')
|
||||
print("Wrote {}".format(base_pkgs_path))
|
||||
|
||||
|
||||
# Generate treefiles for all desktops
|
||||
for desktop in [ 'gnome-desktop' ]:
|
||||
print()
|
||||
print("Syncing packages for {} specific version:".format(desktop))
|
||||
|
||||
base_pkgs_path = '{}-pkgs.json'.format(desktop)
|
||||
with open(base_pkgs_path) as f:
|
||||
manifest = json.load(f)
|
||||
|
||||
manifest_packages = set(manifest['packages'])
|
||||
ws_ostree_name = desktop
|
||||
|
||||
comps_unknown = set()
|
||||
comps_packages = set()
|
||||
workstation_product_packages = set()
|
||||
|
||||
# Parse the desktop group
|
||||
ws_pkgs = set()
|
||||
for pkg in comps.groups_match(id=desktop)[0].packages:
|
||||
pkgname = pkg.name
|
||||
blacklist = comps_desktop_blacklist.get(ws_ostree_name, set())
|
||||
if pkgname in blacklist:
|
||||
continue
|
||||
ws_pkgs.add(pkg.name)
|
||||
|
||||
for pkg in manifest_packages:
|
||||
if pkg not in ws_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 {}:".format(n_manifest_new, ws_ostree_name))
|
||||
for pkg in sorted(comps_unknown):
|
||||
print(' ' + pkg)
|
||||
manifest_packages.remove(pkg)
|
||||
|
||||
# Look for packages in workstation but not in the manifest
|
||||
ws_added = set()
|
||||
for pkg in ws_pkgs:
|
||||
if pkg not in manifest_packages:
|
||||
ws_added.add(pkg)
|
||||
manifest_packages.add(pkg)
|
||||
|
||||
def format_pkgtype(n):
|
||||
if n == libcomps.PACKAGE_TYPE_DEFAULT:
|
||||
return 'default'
|
||||
elif n == libcomps.PACKAGE_TYPE_MANDATORY:
|
||||
return 'mandatory'
|
||||
else:
|
||||
assert False
|
||||
|
||||
n_comps_new = len(ws_added)
|
||||
if n_comps_new == 0:
|
||||
print("All comps packages are already listed in manifest.")
|
||||
else:
|
||||
print("{} packages not in manifest:".format(n_comps_new))
|
||||
for pkg in sorted(ws_added):
|
||||
print(' {}'.format(pkg))
|
||||
|
||||
if (n_manifest_new > 0 or n_comps_new > 0) and args.save:
|
||||
manifest['packages'] = sorted(manifest_packages)
|
||||
with open(base_pkgs_path, 'w') as f:
|
||||
json.dump(manifest, f, indent=4, sort_keys=True)
|
||||
f.write('\n')
|
||||
print("Wrote {}".format(base_pkgs_path))
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"ref": "fedora/rawhide/x86_64/workstation",
|
||||
"repos": ["fedora-rawhide"],
|
||||
|
||||
"include": "fedora-workstation-base.json",
|
||||
|
||||
"automatic_version_prefix": "29",
|
||||
"mutate-os-release": "29",
|
||||
|
||||
"packages": [
|
||||
"flatpak",
|
||||
"flatpak-builder",
|
||||
"atomic",
|
||||
"buildah",
|
||||
"git-core",
|
||||
"rpm-ostree",
|
||||
"podman",
|
||||
"skopeo",
|
||||
"docker"
|
||||
]
|
||||
}
|
|
@ -1,16 +1,8 @@
|
|||
{
|
||||
"00packages-comment": "DO NOT EDIT! This content is generated from comps-sync.py",
|
||||
"packages": [
|
||||
"ModemManager",
|
||||
"NetworkManager",
|
||||
"NetworkManager-adsl",
|
||||
"NetworkManager-bluetooth",
|
||||
"NetworkManager-openconnect-gnome",
|
||||
"NetworkManager-openvpn-gnome",
|
||||
"NetworkManager-ppp",
|
||||
"NetworkManager-pptp-gnome",
|
||||
"NetworkManager-ssh-gnome",
|
||||
"NetworkManager-vpnc-gnome",
|
||||
"NetworkManager-wifi",
|
||||
"NetworkManager-wwan",
|
||||
"PackageKit-gstreamer-plugin",
|
||||
|
@ -22,16 +14,11 @@
|
|||
"alsa-plugins-pulseaudio",
|
||||
"alsa-ucm",
|
||||
"alsa-utils",
|
||||
"at-spi2-atk",
|
||||
"at-spi2-core",
|
||||
"atmel-firmware",
|
||||
"atomic",
|
||||
"attr",
|
||||
"audit",
|
||||
"avahi",
|
||||
"b43-fwcutter",
|
||||
"b43-openfwwf",
|
||||
"baobab",
|
||||
"basesystem",
|
||||
"bash",
|
||||
"bash-completion",
|
||||
|
@ -41,7 +28,6 @@
|
|||
"bridge-utils",
|
||||
"btrfs-progs",
|
||||
"bzip2",
|
||||
"cheese",
|
||||
"chrony",
|
||||
"cifs-utils",
|
||||
"colord",
|
||||
|
@ -52,23 +38,17 @@
|
|||
"cups-filters",
|
||||
"curl",
|
||||
"cyrus-sasl-plain",
|
||||
"dconf",
|
||||
"dejavu-sans-fonts",
|
||||
"dejavu-sans-mono-fonts",
|
||||
"dejavu-serif-fonts",
|
||||
"desktop-backgrounds-gnome",
|
||||
"dhcp-client",
|
||||
"dnsmasq",
|
||||
"docker",
|
||||
"dos2unix",
|
||||
"e2fsprogs",
|
||||
"eog",
|
||||
"ethtool",
|
||||
"fedora-bookmarks",
|
||||
"fedora-release-workstation",
|
||||
"fedora-user-agent-chrome",
|
||||
"file",
|
||||
"file-roller",
|
||||
"filesystem",
|
||||
"firefox",
|
||||
"firewalld",
|
||||
|
@ -76,41 +56,9 @@
|
|||
"foomatic-db-ppds",
|
||||
"fpaste",
|
||||
"fros-gnome",
|
||||
"gdm",
|
||||
"gedit",
|
||||
"glib-networking",
|
||||
"glibc",
|
||||
"glibc-all-langpacks",
|
||||
"glx-utils",
|
||||
"gnome-backgrounds",
|
||||
"gnome-bluetooth",
|
||||
"gnome-boxes",
|
||||
"gnome-calculator",
|
||||
"gnome-characters",
|
||||
"gnome-classic-session",
|
||||
"gnome-clocks",
|
||||
"gnome-color-manager",
|
||||
"gnome-contacts",
|
||||
"gnome-control-center",
|
||||
"gnome-disk-utility",
|
||||
"gnome-font-viewer",
|
||||
"gnome-getting-started-docs",
|
||||
"gnome-initial-setup",
|
||||
"gnome-logs",
|
||||
"gnome-maps",
|
||||
"gnome-screenshot",
|
||||
"gnome-session-wayland-session",
|
||||
"gnome-session-xsession",
|
||||
"gnome-settings-daemon",
|
||||
"gnome-shell",
|
||||
"gnome-shell-extension-background-logo",
|
||||
"gnome-software",
|
||||
"gnome-system-monitor",
|
||||
"gnome-terminal",
|
||||
"gnome-themes-extra",
|
||||
"gnome-user-docs",
|
||||
"gnome-user-share",
|
||||
"gnome-weather",
|
||||
"gnu-free-mono-fonts",
|
||||
"gnu-free-sans-fonts",
|
||||
"gnu-free-serif-fonts",
|
||||
|
@ -124,14 +72,6 @@
|
|||
"gstreamer1-plugins-good",
|
||||
"gutenprint",
|
||||
"gutenprint-cups",
|
||||
"gvfs-afc",
|
||||
"gvfs-afp",
|
||||
"gvfs-archive",
|
||||
"gvfs-fuse",
|
||||
"gvfs-goa",
|
||||
"gvfs-gphoto2",
|
||||
"gvfs-mtp",
|
||||
"gvfs-smb",
|
||||
"hostname",
|
||||
"hplip",
|
||||
"hunspell",
|
||||
|
@ -176,15 +116,10 @@
|
|||
"kernel-modules-extra",
|
||||
"khmeros-base-fonts",
|
||||
"less",
|
||||
"libcanberra-gtk2",
|
||||
"libcanberra-gtk3",
|
||||
"liberation-mono-fonts",
|
||||
"liberation-sans-fonts",
|
||||
"liberation-serif-fonts",
|
||||
"libertas-usb8388-firmware",
|
||||
"libproxy-mozjs",
|
||||
"librsvg2",
|
||||
"libsane-hpaio",
|
||||
"linux-firmware",
|
||||
"logrotate",
|
||||
"lohit-assamese-fonts",
|
||||
|
@ -203,14 +138,10 @@
|
|||
"mcelog",
|
||||
"mdadm",
|
||||
"mesa-dri-drivers",
|
||||
"mesa-libEGL",
|
||||
"microcode_ctl",
|
||||
"mlocate",
|
||||
"mousetweaks",
|
||||
"mpage",
|
||||
"mtr",
|
||||
"nautilus",
|
||||
"nautilus-sendto",
|
||||
"nfs-utils",
|
||||
"nss-altfiles",
|
||||
"nss-mdns",
|
||||
|
@ -218,7 +149,6 @@
|
|||
"open-vm-tools-desktop",
|
||||
"openssh-clients",
|
||||
"openssh-server",
|
||||
"orca",
|
||||
"paktype-naskh-basic-fonts",
|
||||
"pam_krb5",
|
||||
"paps",
|
||||
|
@ -226,7 +156,6 @@
|
|||
"passwd",
|
||||
"passwdqc",
|
||||
"pciutils",
|
||||
"pinentry-gnome3",
|
||||
"pinfo",
|
||||
"plymouth",
|
||||
"plymouth-system-theme",
|
||||
|
@ -237,7 +166,6 @@
|
|||
"pulseaudio-module-x11",
|
||||
"pulseaudio-utils",
|
||||
"qemu-guest-agent",
|
||||
"qgnomeplatform",
|
||||
"qt",
|
||||
"qt-settings",
|
||||
"qt-x11",
|
||||
|
@ -252,9 +180,7 @@
|
|||
"rp-pppoe",
|
||||
"rpm",
|
||||
"rsync",
|
||||
"rygel",
|
||||
"samba-client",
|
||||
"sane-backends-drivers-scanners",
|
||||
"scl-utils",
|
||||
"selinux-policy-targeted",
|
||||
"setup",
|
||||
|
@ -264,7 +190,6 @@
|
|||
"sil-mingzat-fonts",
|
||||
"sil-nuosu-fonts",
|
||||
"sil-padauk-fonts",
|
||||
"simple-scan",
|
||||
"smc-meera-fonts",
|
||||
"sos",
|
||||
"spice-vdagent",
|
||||
|
@ -273,17 +198,12 @@
|
|||
"sssd-kcm",
|
||||
"stix-fonts",
|
||||
"sudo",
|
||||
"sushi",
|
||||
"system-config-printer-udev",
|
||||
"systemd",
|
||||
"systemd-udev",
|
||||
"tar",
|
||||
"thai-scalable-waree-fonts",
|
||||
"time",
|
||||
"totem",
|
||||
"totem-nautilus",
|
||||
"tracker",
|
||||
"tracker-miners",
|
||||
"tree",
|
||||
"unzip",
|
||||
"usb_modeswitch",
|
||||
|
@ -296,9 +216,6 @@
|
|||
"which",
|
||||
"wireless-tools",
|
||||
"words",
|
||||
"xdg-desktop-portal",
|
||||
"xdg-desktop-portal-gtk",
|
||||
"xdg-user-dirs-gtk",
|
||||
"xorg-x11-drv-ati",
|
||||
"xorg-x11-drv-evdev",
|
||||
"xorg-x11-drv-fbdev",
|
||||
|
@ -314,7 +231,6 @@
|
|||
"xorg-x11-utils",
|
||||
"xorg-x11-xauth",
|
||||
"xorg-x11-xinit",
|
||||
"yelp",
|
||||
"zd1211-firmware",
|
||||
"zip"
|
||||
]
|
|
@ -1,6 +1,20 @@
|
|||
{
|
||||
"ref": "fedora/rawhide/x86_64/workstation-base",
|
||||
"include": "fedora-workstation-base-pkgs.json",
|
||||
"ref": "fedora/rawhide/x86_64/ostree-base",
|
||||
"repos": [],
|
||||
|
||||
"include": "fedora-common-ostree-pkgs.json",
|
||||
|
||||
"packages": [
|
||||
"atomic",
|
||||
"buildah",
|
||||
"docker",
|
||||
"flatpak",
|
||||
"git-core",
|
||||
"podman",
|
||||
"rpm-ostree",
|
||||
"skopeo",
|
||||
"xdg-desktop-portal"
|
||||
],
|
||||
|
||||
"selinux": true,
|
||||
"documentation": true,
|
|
@ -1 +0,0 @@
|
|||
fedora-atomic-workstation.json
|
66
gnome-desktop-pkgs.json
Normal file
66
gnome-desktop-pkgs.json
Normal file
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
"00packages-comment": "DO NOT EDIT! This content is generated from comps-sync.py",
|
||||
"include": "fedora-common-ostree.json",
|
||||
"packages": [
|
||||
"ModemManager",
|
||||
"NetworkManager-adsl",
|
||||
"NetworkManager-openconnect-gnome",
|
||||
"NetworkManager-openvpn-gnome",
|
||||
"NetworkManager-ppp",
|
||||
"NetworkManager-pptp-gnome",
|
||||
"NetworkManager-ssh-gnome",
|
||||
"NetworkManager-vpnc-gnome",
|
||||
"NetworkManager-wwan",
|
||||
"at-spi2-atk",
|
||||
"at-spi2-core",
|
||||
"avahi",
|
||||
"dconf",
|
||||
"fprintd-pam",
|
||||
"gdm",
|
||||
"glib-networking",
|
||||
"gnome-backgrounds",
|
||||
"gnome-bluetooth",
|
||||
"gnome-boxes",
|
||||
"gnome-characters",
|
||||
"gnome-classic-session",
|
||||
"gnome-color-manager",
|
||||
"gnome-control-center",
|
||||
"gnome-disk-utility",
|
||||
"gnome-getting-started-docs",
|
||||
"gnome-initial-setup",
|
||||
"gnome-session-wayland-session",
|
||||
"gnome-session-xsession",
|
||||
"gnome-settings-daemon",
|
||||
"gnome-shell",
|
||||
"gnome-software",
|
||||
"gnome-system-monitor",
|
||||
"gnome-terminal",
|
||||
"gnome-themes-extra",
|
||||
"gnome-user-docs",
|
||||
"gnome-user-share",
|
||||
"gvfs-afc",
|
||||
"gvfs-afp",
|
||||
"gvfs-archive",
|
||||
"gvfs-fuse",
|
||||
"gvfs-goa",
|
||||
"gvfs-gphoto2",
|
||||
"gvfs-mtp",
|
||||
"gvfs-smb",
|
||||
"libcanberra-gtk2",
|
||||
"libcanberra-gtk3",
|
||||
"libproxy-mozjs",
|
||||
"librsvg2",
|
||||
"libsane-hpaio",
|
||||
"mesa-libEGL",
|
||||
"mousetweaks",
|
||||
"polkit",
|
||||
"rygel",
|
||||
"tracker",
|
||||
"tracker-miners",
|
||||
"xdg-desktop-portal",
|
||||
"xdg-desktop-portal-gtk",
|
||||
"xdg-user-dirs-gtk"
|
||||
],
|
||||
"ref": "fedora/rawhide/x86_64/gnome-desktop",
|
||||
"repos": []
|
||||
}
|
12
silverblue.json
Normal file
12
silverblue.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"ref": "fedora/rawhide/x86_64/silverblue",
|
||||
"repos": ["fedora-rawhide"],
|
||||
"automatic_version_prefix": "29",
|
||||
"mutate-os-release": "29",
|
||||
|
||||
"include": "gnome-desktop-pkgs.json",
|
||||
|
||||
"packages": [
|
||||
"xdg-desktop-portal-gtk"
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue