Bug 1153816 - Fedup needs to support upgrading into a Productized Fedora 21
Summary: Fedup needs to support upgrading into a Productized Fedora 21
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: fedup
Version: 21
Hardware: All
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Will Woods
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedBlocker
Depends On:
Blocks: F21BetaBlocker
TreeView+ depends on / blocked
 
Reported: 2014-10-16 20:58 UTC by Stephen Gallagher
Modified: 2014-11-10 06:02 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-11-05 02:31:21 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Stephen Gallagher 2014-10-16 20:58:11 UTC
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.

Comment 1 Fedora Blocker Bugs Application 2014-10-16 20:59:40 UTC
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.

Comment 2 Will Woods 2014-10-17 19:40:43 UTC
This is fixed in fedup git:

  https://github.com/wgwoods/fedup/commit/28c71ea

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.

Comment 3 Kamil Páral 2014-10-20 16:24:37 UTC
Discussed in 2014-10-20 Blocker Review meeting [1]. 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.

[1] http://meetbot.fedoraproject.org/fedora-blocker-review/2014-10-20/

Comment 4 Kevin Kofler 2014-10-26 05:58:34 UTC
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).

Comment 5 Kevin Kofler 2014-10-26 06:01:08 UTC
(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.)

Comment 6 Sudhir Khanger 2014-10-26 06:40:30 UTC
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

Comment 7 Stephen Gallagher 2014-10-27 12:03:04 UTC
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.

Comment 8 Will Woods 2014-10-27 14:08:03 UTC
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.

Comment 9 Kevin Kofler 2014-10-27 17:36:05 UTC
> 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.

Comment 10 Adam Williamson 2014-10-27 18:19:26 UTC
"`--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.

Comment 11 Stephen Gallagher 2014-10-27 18:49:55 UTC
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.

Comment 12 Kevin Kofler 2014-10-27 19:22:25 UTC
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.

Comment 13 Fedora Update System 2014-10-29 21:10:26 UTC
fedup-0.9.0-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/fedup-0.9.0-1.fc21

Comment 14 Fedora Update System 2014-10-29 21:11:42 UTC
fedup-0.9.0-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/fedup-0.9.0-1.fc20

Comment 15 Fedora Update System 2014-10-29 21:12:42 UTC
fedup-0.9.0-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/fedup-0.9.0-1.fc19

Comment 16 Kamil Páral 2014-10-30 08:21:22 UTC
I tried --product=server, worked well.

Comment 17 Petr Schindler 2014-10-30 08:46:23 UTC
I tried --product=workstation and it worked for me too.

Comment 18 Richard Z. 2014-10-30 12:30:10 UTC
(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.

Comment 19 Will Woods 2014-10-30 16:15:28 UTC
(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:

  --network [21|22|rawhide]

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.

Comment 20 Fedora Update System 2014-11-01 01:40:04 UTC
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.

Comment 21 Fedora Update System 2014-11-03 18:05:34 UTC
fedup-0.9.0-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/fedup-0.9.0-2.fc19

Comment 22 Fedora Update System 2014-11-03 18:05:51 UTC
fedup-0.9.0-2.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/fedup-0.9.0-2.fc21

Comment 23 Maël Lavault 2014-11-03 20:27:20 UTC
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 ?

Comment 24 Adam Williamson 2014-11-03 20:37:07 UTC
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).

Comment 25 Adam Williamson 2014-11-03 20:37:41 UTC
Sorry, that should be --instrepo https://dl.fedoraproject.org/pub/alt/stage/21_Beta_RC4/Server/x86_64/os/ .

Comment 26 Maël Lavault 2014-11-03 20:53:26 UTC
Are you sure about the Server part ?

Comment 27 Adam Williamson 2014-11-03 22:54:17 UTC
yes. it's just somewhere to get the upgrade.img from.

Comment 28 Adam Williamson 2014-11-05 02:31:21 UTC
The update is stable for 19 and 20 already, Will can push it stable for 21 soon enough.

Comment 29 Fedora Update System 2014-11-05 03:57:27 UTC
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.

Comment 30 Fedora Update System 2014-11-10 06:02:51 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.