From Fedora Project Wiki

We want to have products be able to specify divergent and conflicting behaviour.

Use cases

Agreed upon

(at least sgallagh and abadger1999 :-)

  1. install time -- we want the product you're installing to determine which configuration you get.
  2. installing a package on an existing system -- if it has separate config, we'd like the package manager to choose the configuration for the product you're using.
  3. Want to have a single tool that can switch default configs per-package. Which things you can switch may depend on what combinations we support and how the user has selected which Products are "active" on their system.
    1. Tool should not switch out user-modified configs unless run with --force

Discussing

  1. Product union: Installed Cloud or Server but want a graphical environment. Preference is to make that be Workstation.
    1. recommendation implementation: the defaults should not change for anything that was part of the installed Product, but new packages should get the Workstation default
    2. sgallagh thinks this would make sense as it might mean we can benefit from some of the testing of the Workstation Product for the GUI-on-Server case
    3. abadger1999 thinks this would make things harder for testing and debugging as you get into cases where you're running part of the system installed as if for Workstation and part as if installed for Server. You'll run into cases where the two parts of the system will be making different assumptions.
  2. Product conversion: Installed Cloud or Server but want a graphical environment. Convert existing config to workstation and install additional packages on top to get a Graphical environment.

Possible Implementations

  • Conflicts
  • Alternatives

Identifying the Product

  • /etc/os-release?
  • /etc/fedora-release?
  • /etc/fedora-release.d?

Needs to allow us to specify different Products.

If we have layered/unioned Products it would need to allow us to decide which Product gets precedent from this information.

Some choices would make more sense if we're going to remain committed to some commonality between Fedora Products. If there's a base system that's common, for instance, then /etc/fedora-release might identify that and we would want to know products in addition to that. At the other end of the spectrum, if the Products were each releasing on their own timeframe and had many divergent packages, then having release information associated with "Fedora" might not make sense.