Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installer related changes for R4.0 #2412

Closed
9 tasks done
marmarek opened this issue Nov 2, 2016 · 1 comment
Closed
9 tasks done

Installer related changes for R4.0 #2412

marmarek opened this issue Nov 2, 2016 · 1 comment
Labels
C: core C: installer P: critical Priority: critical. Between "major" and "blocker" in severity. T: task Type: task. An action item that is neither a bug nor an enhancement.
Milestone

Comments

@marmarek
Copy link
Member

marmarek commented Nov 2, 2016

This is tracking ticket for problems blocking Qubes 4.0 installation.

  • qubes-create not called
  • template(s) not added to qubes.xml (qvm-add-template called from RPM post-installation script do not exists)
  • root.img not migrated to LVM thin pool (if enabled)
  • installation should choose LVM thin provisioning by default (now is just LVM)
  • default storage pool is set to file-based, even when LVM thin pool was chosen during installation
  • default lvm pool assumes qubes_dom0/pool00 name - it should automatically detect pool name based on selected installation (probably look at pool where root filesystem is placed)
  • qubes-prefs and qvm-prefs have changed options (no longer accept --set or --get option, properties have underscores) (*)
  • qubes-prefs requires --force-root to even get property value (qubes-netvm.service)
  • qvm-start do not accept --no-guid option (was renamed to --no-start-guid) (*)

Generally, lets not break things just for the sake of breaking - there is no point in renaming options if their meaning is exactly the same. This applies to points marked with (*). Even when introducing new version (like qvm-prefs without --set/--get), lets still accept the old one. Especially when it's trivial to achieve.

@marmarek marmarek added C: core C: installer P: critical Priority: critical. Between "major" and "blocker" in severity. T: task Type: task. An action item that is neither a bug nor an enhancement. labels Nov 2, 2016
@marmarek marmarek added this to the Release 4.0 milestone Nov 2, 2016
@marmarek
Copy link
Member Author

marmarek commented Nov 2, 2016

  • qvm-run --all have changed meaning: previously it was about all running domains. This breaks qvm-run --all true used to start missing GUI daemons after user login

While for this particular case, it may be better to start GUI daemon some other way, generally qvm-run --all for all domains, including not currently running, makes very little sense.

marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
- add missing lvm remove call when commiting changes
- delay creating volatile image until domain startup (it will be created
  then anyway)
- reset cache only when really changed anything
- attach VM to the volume (snapshot) created for its runtime - to not
  expose changes (for example in root volume) to child VMs until
  shutdown

QubesOS/qubes-issues#2412
QubesOS/qubes-issues#2256
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
If someone really want do to this, need to manually remove the file
first.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
/var/log/qubes directory have setgid set, so all the files will be owned
by qubes group (that's ok), but there is no enforcement of creating it
group writable, which undermine group ownership (logs created by root
would not be writable by normal user)

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Those options are no longer needed, but lets not reject them to preserve
compatibility with older scripts

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
'-' is invalid character in python identifier, so all the properties
have '_'. But in previous versions qvm-* tools accepted names with '-',
so lets not break this.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
VM files may be already removed. Don't fail on this while removing a
VM, it's probably the reason why domain is being removed.

qvm-remove tool have its own guard for this, but it isn't enough - if
rmtree(dir_path) fails, storage.remove() would not be called, so
non-file storages would not be cleaned up.

This is also needed to correctly handle template reinstallation - where
VM directory is moved away to call create_on_disk again.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
This is intended to call to finish template installation/removal.
Template RPM package is basically container for root.img, nothing more.
Other parts needs to be generated after root.img extraction. Previously
it was open coded in rpm post-install script, but lets keep it as qvm
tool to ease supporting multiple version in template builder

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
When system is installed with LVM thin pool, it should be used by
default. But lets keep file-based on for /var/lib/qubes for some corner
cases, migration etc.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Lets keep compatibility with older scripts.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Do not spray --offline-mode over every installer-related script.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
There was a comment '# Set later', but actually values were never set.
This break adding just installed template (qvm-template-postprocess).

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Allow extensions to finish template setup. This include retrieving
appmenus, settings defaults etc.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
As the service is called as root, it needs --force-root.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
This tool by design is called as root, so try to:
 - switch to normal user if possible
 - fix file permissions afterwards - if not

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Especially in offline mode - like during installation, tests etc.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
None of properties set there do any "dangerous thing" for filesystem
permissions (at least for now), so do not require it. This is mostly to
keep compatibility with %post rpm scripts (kernel-qubes-vm at least).

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Don't leak log file descriptors. At least 'lvm' complains.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Do not spray --offline-mode over every installer-related script.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
There was a comment '# Set later', but actually values were never set.
This break adding just installed template (qvm-template-postprocess).

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
Allow extensions to finish template setup. This include retrieving
appmenus, settings defaults etc.

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2016
As the service is called as root, it needs --force-root.

QubesOS/qubes-issues#2412
fepitre pushed a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017
fepitre pushed a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017
Since qubesd isn't running package kernel-qubes-vm package installation
time, this needs to be done here.

QubesOS/qubes-issues#2412
fepitre pushed a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017
Workaround for https://bugzilla.redhat.com/1316387 (systemctl preset-all
disables but wont enable default.target).

QubesOS/qubes-issues#2412
marmarek added a commit to marmarek/qubes-installer-qubes-os that referenced this issue Sep 16, 2018
Skip system-wide dracut config, specifically
/etc/dracut.conf.d/plymouth-missing-fonts.conf, which loads 'label'
plymouth plugin, which in turn pulls a lot of libraries (including
libX11).

QubesOS/qubes-issues#2412

(cherry picked from commit f9bb3b2)
marmarek added a commit to QubesOS/qubes-installer-qubes-os that referenced this issue Sep 16, 2018
Skip system-wide dracut config, specifically
/etc/dracut.conf.d/plymouth-missing-fonts.conf, which loads 'label'
plymouth plugin, which in turn pulls a lot of libraries (including
libX11).

QubesOS/qubes-issues#2412

(cherry picked from commit f9bb3b2)
fepitre pushed a commit to fepitre/anaconda that referenced this issue Nov 10, 2018
fepitre pushed a commit to fepitre/anaconda that referenced this issue Nov 20, 2018
fepitre pushed a commit to fepitre/anaconda that referenced this issue Nov 20, 2018
fepitre added a commit to fepitre/anaconda that referenced this issue Dec 28, 2018
Rework of previous work done by Marek Marczykowski-Górecki (marmarek).

QubesOS/qubes-issues#2412
fepitre added a commit to fepitre/anaconda that referenced this issue Jan 3, 2019
Rework of previous work done by Marek Marczykowski-Górecki (marmarek).

QubesOS/qubes-issues#2412
fepitre added a commit to fepitre/anaconda that referenced this issue Feb 3, 2019
Rework of previous work done by Marek Marczykowski-Górecki (marmarek).

QubesOS/qubes-issues#2412
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: core C: installer P: critical Priority: critical. Between "major" and "blocker" in severity. T: task Type: task. An action item that is neither a bug nor an enhancement.
Projects
None yet
Development

No branches or pull requests

1 participant