Bug 1170800

Summary: Please stop overwriting anaconda's stylesheet
Product: [Fedora] Fedora Reporter: David Shea <dshea>
Component: fedora-productimg-serverAssignee: Matthew Miller <mattdm>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: awilliam, mattdm, mkolman, pschindl, rbrown, robatino, sgallagh
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedBlocker AcceptedFreezeException
Fixed In Version: fedora-productimg-server-22-7.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-16 18:35:01 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1043123, 1043130    
Attachments:
Description Flags
server product.img patch
none
server installclass patch
none
server installclass patch none

Description David Shea 2014-12-04 21:47:48 UTC
Created attachment 964856 [details]
server product.img patch

Description of problem:
The product stylesheet installed by the product.img created by fedora-product-server is currently installed to /usr/share/anaconda/anaconda-gtk.css. This replaces all of data that was originally in /usr/share/anaconda/anaconda-gtk.css, which is a problem. There was some good stuff in there.

This can be fixed on server by installing to /run/install/product/anaconda-gtk.css. This will work on the server compose since the files are packaged into a product.img that is overlayed onto the stage2 at runtime, after the /run tmpfs has been created.

The workstation compose does not have this luxury, so I will be making a different request once some changes have been made to anaconda to load an additional stylesheet from the stage2. I don't know how cloud works, it can probably use workstation's thing.

Version-Release number of selected component (if applicable):
fedora-productimg-server-0:22-5.fc22.noarch

Comment 1 Matthew Miller 2014-12-04 22:17:39 UTC
For F21, Stephen did an ugly fix where the productimg.css was hand-merged with the original one. I didn't put that into rawhide because we should have a real solution, so thanks for filing this.

We have an additional concern that the _explicit_ conflicts in these packages don't scale (because to add a new one, all the others need to be updated), and dnf/yum don't handle file-level conflicts very nicely. It would be nice if we could find a way to make the packages not conflict. (Possibly simply different paths and some sort of intelligent flag to lorax telling it which one is wanted? I don't know what would be best.) That's partly a tangent, but I wanted to get the larger context written down here, especially if it does actually affect the right thing to do.

PS: cloud is actually like server in this case. The cloud images we ship are an installed ready-to-run system produced by imagefactory. People may use the installer to produce their own images, although usually via kickstart. (I did get some feedback that it's useful to be able to construct a starting point using the installer in interactive mode, although, honestly, I have my doubts.)

Comment 2 Adam Williamson 2014-12-04 23:11:07 UTC
We took this as an FE for F21 Final, so reasonable to propose as FE for F22 Alpha just in case. The visual impact is quite annoying.

Comment 3 David Shea 2014-12-05 00:57:44 UTC
Ok, so here's something different to rattle around your idea hole:

Drop the product.img idea. Change the filenames in fedora-productimg-* so that there aren't any conflicts. That means leaving out the image symlinks. Just let the differently named images be named differently, and choose the actual logos and sidebar and such filenames in the CSS files. Install the CSS files somewhere, I don't care where.

Modify anaconda so that you can install a CSS file through installclass files. Have fedora-productimg-* install a file to %{_libdir}/python2.7/site-packages/pyanaconda/installclasses/. Pick which one should be active by installing it via kickstart or lorax arguments. All of them *could* be installed at the same time, but the right one might not be picked, but there wouldn't be any filename conflicts and nothing particularly terrible would happen except that Server might show a logo for Cloud or something.

And I figure there'll need to be some per-product install classes if Server is going to get xfs by default.

How does that sound?

Comment 4 Matthew Miller 2014-12-05 13:41:34 UTC
(In reply to David Shea from comment #3)
> How does that sound?

That sounds much more right than what we're doing. :)

Comment 5 Matthew Miller 2014-12-05 13:49:51 UTC
So this needs:

1) anaconda change for the installclasses
2) install classes to be written once that happens
3) new specific css
4) install that + installclass, drop symlinks
5) probably rename fedora-productimg-* to fedora-installclass-* for prettiness
6) in kickstart for lives, just install the right one
7) something in lorax to also pick the right one. here is where I'm really hazy.


And to break that down by who can do what: #1 is anaconda team; #2 is product working groups, #3 is fedora design, #4 & 5 is the maintainers of these packages (for example, me), #6 is spin maintainers, and #7 is.... anaconda plus releng?

Comment 6 Brian Lane 2014-12-05 18:49:07 UTC
(In reply to Matthew Miller from comment #5)

> 7) something in lorax to also pick the right one. here is where I'm really
> hazy.

My plan right now is to drop the installpkg glob from the lorax template and add the ability (a patch from Colin Walters actually) to pass a list of packages to add via cmdline or API call. Pungi will then need to be told which package to include, instead of adding the packages to exclude to the kickstart pungi uses. This will be much cleaner than the f21 hack.

Comment 7 David Shea 2014-12-05 20:28:48 UTC
(In reply to Matthew Miller from comment #5)
> So this needs:
> 
> 1) anaconda change for the installclasses

https://lists.fedorahosted.org/pipermail/anaconda-patches/2014-December/015024.html

> 2) install classes to be written once that happens
> 3) new specific css
> 4) install that + installclass, drop symlinks

Attaching a patch for fedora-productimg-server (since I wanted a new productimg package to make sure my change worked) with the beginnings of such a thing and an installclass copied from fedora.py

Comment 8 David Shea 2014-12-05 20:31:22 UTC
Created attachment 965220 [details]
server installclass patch

Note that with this change fedora-productimg-server is no longer a noarch package. The install path for the installclass depends on %{_libdir} (via %{python2_sitearch}), so 32-bit and 64-bit packages will be different in that regard.

Comment 9 David Shea 2014-12-05 20:34:07 UTC
You could probably also inherit from FedoraBaseInstallClass instead of copying it entirely and not have so much duplication.

Comment 10 David Shea 2014-12-05 21:27:19 UTC
Created attachment 965231 [details]
server installclass patch

(In reply to David Shea from comment #9)
> You could probably also inherit from FedoraBaseInstallClass instead of
> copying it entirely and not have so much duplication.

New attachment so no one tries to push my first draft laziness. Also, having a python file with a hyphen was a terrible idea, so fixed that.

Comment 11 David Shea 2014-12-16 19:46:06 UTC
(In reply to Matthew Miller from comment #5)
> So this needs:
> 
> 1) anaconda change for the installclasses

https://git.fedorahosted.org/cgit/anaconda.git/commit/?id=c8d71188

> 2) install classes to be written once that happens
> 3) new specific css
> 4) install that + installclass, drop symlinks

all of that is in the attachment to comment 10.

> 7) something in lorax to also pick the right one. here is where I'm really
> hazy.

https://git.fedorahosted.org/cgit/lorax.git/commit/?id=52d962d6

which just leaves

> 5) probably rename fedora-productimg-* to fedora-installclass-* for
> prettiness
> 6) in kickstart for lives, just install the right one

Please note that anaconda is borderline broken in rawhide right now due to this problem. Spoke, disk, and mountpoint selections are all invisible without the anaconda-gtk.css information that is being overwritten.

Comment 12 Matthew Miller 2014-12-16 22:14:28 UTC
Okay, so, remaining, there is:

a) releng change to take advantage of https://git.fedorahosted.org/cgit/lorax.git/commit/?id=52d962d6 (need to coordinate with releng, obviously)


b) update fedora-installclass-server, fedora-installclass-workstation, fedora-installclass-cloud to contain files as in comment #10 (mattdm will handle; will file new bugs)

c) rename fedora-productimg-* to fedora-installclass-* for prettiness (mattdm -- probably same bugs)

d) update lorax environment kickstarts (sgallagh, maybe?)

e) update live kickstart (kalev?)

--- will look at this more tomorrow

Comment 13 David Shea 2015-01-03 16:08:03 UTC
*** Bug 1176411 has been marked as a duplicate of this bug. ***

Comment 14 Petr Schindler 2015-01-07 17:34:56 UTC
Discussed at today's blocker review meeting [1]. Accepted as a blocker. This bug breaks keyboard usage for installation, and thus is a conditional violation of the following Final criterion: Installer must be able to complete an installation.

[1] http://meetbot.fedoraproject.org/fedora-blocker-review/2015-01-07/

Comment 15 Petr Schindler 2015-03-02 20:14:26 UTC
Discussed at today's blocker review meeting [1].

This bug was accepted as Freeze Exception - This fix has been approved for FE status. Please get the fix in quickly for the next compose.

http://meetbot.fedoraproject.org/fedora-blocker-review/2015-03-02/

Comment 16 Jaroslav Reznik 2015-03-03 17:19:26 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 17 Adam Williamson 2015-03-04 23:40:00 UTC
Is there anything outstanding here?