Bug 1170800
Summary: | Please stop overwriting anaconda's stylesheet | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | David Shea <dshea> | ||||||||
Component: | fedora-productimg-server | Assignee: | Matthew Miller <mattdm> | ||||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 22 | CC: | 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: |
|
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.) 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. 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? (In reply to David Shea from comment #3) > How does that sound? That sounds much more right than what we're doing. :) 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? (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. (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 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.
You could probably also inherit from FedoraBaseInstallClass instead of copying it entirely and not have so much duplication. 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. (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. 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 *** Bug 1176411 has been marked as a duplicate of this bug. *** 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/ 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/ 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 Is there anything outstanding here? |
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