Fedora 20 -> 21 upgrades requires that the user select which product (or nonproduct) that they want to upgrade to. Fedup needs to be updated to support this.
This BZ is a tracker for that effort so we get it done in time for F21 Beta.
Proposed as a Blocker for 21-beta by Fedora user sgallagh using the blocker tracking app because:
"For each one of the release-blocking package sets, it must be possible to successfully complete an upgrade from a fully updated installation of the previous stable Fedora release with that package set installed. The user must be made to specify which Product (or none) they wish to have running when upgrade is complete." (Proposed critertion in discussion)
This fix will go into F20, not F21 so it is not technically bound by the freeze, but since we should not ship Beta without this working, it should be on the blocker lists for tracking purposes.
This is fixed in fedup git:
If you're testing from git, note that the full upgrade process might not work as expected at the moment because:
a) platform packages don't have the right names/Provides (bug 1153813)
b) systemd/udevd troubles (bug 1146140)
Still, the code's all there and it seems to be doing the thing, so this will be fixed by the next fedup build.
Discussed in 2014-10-20 Blocker Review meeting . Accepted as a blocker. Upgrades from Fedora 20 to Fedora 21 requires the selection of a Product or an explicit choice to remain non-productized. This criteria must be satisfied for Beta release.
Why do we want to force users to explicitly opt-out of the new Products when upgrading? If they haven't explicitly asked for a Product, they should just get upgraded to nonproduct by default. They have installed Fedora, not "Fedora Workstation", "Fedora Server" nor "Fedora Cloud".
The point of an upgrade is to preserve the existing installed package set as much as possible. (Otherwise, the user would be doing a reinstall.) So installing the whole @^%s-product-environment group is a very unexpected behavior (and also not clear from the upgrading message that that will happen if the user doesn't opt out). And if the user had a working GNOME, server or cloud installation of the existing Fedora, that should continue working just fine after the upgrade even without being a Product nor forcing its default package set to be added.
In addition, due to the wording of the message, which not only does not clearly present the implications of selecting a Product (nor the non-implications of the scary "nonproduct" option, which is actually what 99% of users upgrading will want: an upgrade preserving the existing package selection), but also does not make it clear that "workstation" is GNOME, I suspect that we will get many user complaints about FedUp adding the whole GNOME on upgrades of Fedora KDE 20 to Fedora 21. I also suspect that even GNOME, server and cloud users will complain about having packages added that they didn't ask for (e.g. because they explicitly removed unneeded desktop applications in the past, or because they did a minimum netinstall for their server and now got talked into using the "server" Product by the misleading message).
(PS: To be clear, "@^%s" is not supposed to be an expletive, but the string literally found in the linked commit, a combination of the environment marker and the Python string placeholder.)
Users who are running non-product release should be by default upgraded to non-product release. There is no reason to push users to one of the product releases if they have decided not to participate in mainstreaming. If I am running Fedora 20 KDE that should be simply upgraded to Fedora 21 KDE. Since I have spent month curating this system and I would I highly appreciate if unnecessary packages are not installed just because we have new products. It would be disastrous if 100s of GNOME packages are installed on my system. Maybe we should keep how things are and fedora-release should go from non-product to non-product. The users who want to go to products can choose fedora-release-workstation, etc.
sudo yum update fedup fedora-release
sudo fedup --network 20
We had this conversation with a lot of the stakeholders (the yum/dnf guys, the fedup team, most of FESCo and all of the WGs).
The major points were this:
1) The focus of Fedora 21 is on the Products. It was determined that, with all the marketing efforts and so on, it would be clearly unexpected to most users if when they upgraded, they didn't end up on one of the Products.
2) From a technical standpoint, there is no appropriate heuristic for determining automatically which Product (or none) is appropriate to upgrade to.
3) We cannot just pick one of the Products and upgrade to it, as we have plenty of people using alternative desktops as well as people using Fedora 20 as a server or cloud image.
With those criteria in place, we decided that the *only* fair approach was that everyone must make the decision for themselves at upgrade time. If fedup is not passed a --product=<something> command, it will print a message indicating what the choices are and instruct the user to re-run the command.
The current text displayed to the end-user is as follows:
This installation of Fedora does not belong to a product, so you
must provide the --product=PRODUCTNAME option to specify what product
you want to upgrade to. PRODUCTNAME should be one of:
workstation: the default Fedora experience for laptops and desktops
server: the default Fedora experience for servers
cloud: a base image for use on public and private clouds
nonproduct: choose this if none of the above apply; in particular,
choose this if you are using an alternate-desktop spin of Fedora
If you feel that we should alter the text of "workstation" to something like "The default Fedora experience for laptops and desktops, powered by GNOME", then that's a perfectly reasonable request. I'd ask you kindly to open a new bug on that, since this bug is strictly about the upgrade mechanism. That's essentially a documentation change.
The design of Fedora's products dictates the expected behavior, i.e.:
`--product=<PRODUCT>` should install '@^<PRODUCT>-product-environment'
`--product=nonproduct` should install 'fedora-release-standard'
This bug is about implementing that behavior in fedup.
If there's a bug in the implementation, please let me know, but discussion of the design/policy/help text is *outside the scope of this report*.
Please take that to the mailing lists.
> We had this conversation with a lot of the stakeholders (the yum/dnf guys, the > fedup team, most of FESCo and all of the WGs).
Clearly not all the stakeholders. As far as I know, the KDE SIG was not asked at all. And have you tried asking actual users, too? Of course, if you discuss this only with the Product WGs, they'll tell you that everyone wants a Product…
> 1) The focus of Fedora 21 is on the Products. It was determined that, with all
> the marketing efforts and so on, it would be clearly unexpected to most users
> if when they upgraded, they didn't end up on one of the Products.
And this is what I cannot possibly agree with. To me, it is obvious that a user who installed with Fedora 20 will expect to keep the package set he/she had installed Fedora 20 with, unless he/she explicitly asks for --product=something. This is how upgrades have always worked since Red Hat Linux days. They have NEVER pulled in new packages (that are not either required by existing packages or obsolete existing packages).
> The design of Fedora's products dictates the expected behavior
Sorry, but I don't see how it does. The expected behavior is clearly that --product=nonproduct is the automatic default.
> Please take that to the mailing lists.
But we will take this to the devel mailing list.
"`--product=nonproduct` should install 'fedora-release-standard'"
the package was re-named to fedora-release-nonproduct recently and that change is in Beta TC4/RC1 and has recently been pushed stable.
I've opened https://github.com/wgwoods/fedup/pull/52 with an improved warning message and a change of fedora-release-standard to fedora-release-nonproduct.
As said on IRC, I support the improved warning message from https://github.com/wgwoods/fedup/pull/52 : it will allow the users to make an informed decision.
fedup-0.9.0-1.fc21 has been submitted as an update for Fedora 21.
fedup-0.9.0-1.fc20 has been submitted as an update for Fedora 20.
fedup-0.9.0-1.fc19 has been submitted as an update for Fedora 19.
I tried --product=server, worked well.
I tried --product=workstation and it worked for me too.
(In reply to Stephen Gallagher from comment #7)
> We had this conversation with a lot of the stakeholders (the yum/dnf guys,
> the fedup team, most of FESCo and all of the WGs).
> The major points were this:
> 1) The focus of Fedora 21 is on the Products. It was determined that, with
> all the marketing efforts and so on, it would be clearly unexpected to most
> users if when they upgraded, they didn't end up on one of the Products.
the opposite is also unexpected for most users who want to use upgrade as opposed to reinstall.
The wiki and other documentation should be enhanced well in advance to describe the new behaviour.
Also, will this change be pushed into F19 fedup? The current manpage in that version does not document it in any way.
(In reply to Richard Zidlicky from comment #18)
> Also, will this change be pushed into F19 fedup? The current manpage in that
> version does not document it in any way.
Yes, but on F19 the option is *only* required if we can tell that you're upgrading to F21+ - so if you use:
then you'll get the error message. But it's not required for F19->F20 upgrades.
Also note for F19: right now the error message won't appear for DVD/ISO upgrades to F21+ *without* --network, because we can't tell at CLI-parsing time what distro version the DVD/ISO is.
But I'm pretty sure network-disconnected leap-upgrades are rare, and officially they're not supported so that doesn't *need* to be fixed. Would probably be better if it was, but that's low-priority at this point. Patches welcome, though.
fedup-0.9.0-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
fedup-0.9.0-2.fc19 has been submitted as an update for Fedora 19.
fedup-0.9.0-2.fc21 has been submitted as an update for Fedora 21.
I tried using "sudo fedup --product=workstation --network=21", but no matter what I do, I get :
Could not parse metalink https://mirrors.fedoraproject.org/metalink?repo=fedora-install-21&arch=x86_64 error was
No repomd file
(the url looks wrong, should'nt it be fedora-workstation-21 instead of fedora-install-21?)
I use fedup-0.9.0-2.fc20, any ideas ?
It's not really the wrong URL, we don't have per-product upgrade images. mirrormanager is not set up for F21 fedup yet: this is partly because we didn't get around to it but as of now, we're *intentionally* not getting round to it until https://bugzilla.redhat.com/show_bug.cgi?id=1159292 is fixed.
For now, pass --instrepo https://dl.fedoraproject.org/pub/alt/stage/21_Beta_RC1/Server/x86_64/os/ (and make really sure you're using fedup 0.9.0-2).
Sorry, that should be --instrepo https://dl.fedoraproject.org/pub/alt/stage/21_Beta_RC4/Server/x86_64/os/ .
Are you sure about the Server part ?
yes. it's just somewhere to get the upgrade.img from.
The update is stable for 19 and 20 already, Will can push it stable for 21 soon enough.
fedup-0.9.0-2.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.
fedup-0.9.0-2.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.