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
marmarek opened this Issue Nov 2, 2016 · 1 comment

Comments

Projects
None yet
1 participant
@marmarek
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

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Nov 2, 2016

Member
  • 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.

Member

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

storage/lvm: misc fixes
- 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

qubes/tools/qubes-create: reject overriding existing qubes.xml
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

qubes/log: ensure logs are group writable
/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

qubes/tools: do not reject --set/--get in *-prefs tools
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

qubes/tools: accept properties with '-'
'-' 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

qubes/vm: don't fail on removing VM without files
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

Add qvm-template-postprocess tool
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

qubes/app: create 'default' storage pool as LVM when present
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

qubes/tools: accept qvm-start --no-guid
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

qubes/app: automatically enable offline mode when running in chroot
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

qubes/config: set default labels
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

tools: fire 'template-postinstall' event for extensions
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

systemd: adjust qubes-prefs options
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

qubes/tools: better handle qvm-template-postprocess called as root
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

Don't fail on DBus connection error or opening log
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

qubes/tools: drop requirement of qubes-prefs --force-root
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

qubes/log: add FD_CLOEXEC to log files
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

qubes/app: automatically enable offline mode when running in chroot
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

qubes/config: set default labels
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

tools: fire 'template-postinstall' event for extensions
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

systemd: adjust qubes-prefs options
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

qubes/tools: better handle qvm-template-postprocess called as root
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

Don't fail on DBus connection error or opening log
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

qubes/tools: drop requirement of qubes-prefs --force-root
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

qubes/log: add FD_CLOEXEC to log files
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

qubes/app: create 'default' storage pool as LVM when present
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

qubes/tools: accept qvm-start --no-guid
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

qubes/app: automatically enable offline mode when running in chroot
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

qubes/config: set default labels
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

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 20, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 21, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 21, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 21, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 21, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 21, 2017

fepitre added a commit to fepitre/anaconda that referenced this issue Sep 22, 2017

marmarek added a commit to marmarek/qubes-installer-qubes-os that referenced this issue Dec 25, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 26, 2017

anaconda: re-enable graphical.target as default target
Workaround for https://bugzilla.redhat.com/1316387 (systemctl preset-all
disables but wont enable default.target).

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

lorax-templates-qubes: make initrd for EFI smaller
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

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

pungi: remove libguestfs-tools-c from dependencies
It pulls a lot of stuff related to KVM, and also conflicting version of
xen packages.

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

qubes-anaconda-addon: set default kernel
Since qubesd isn't running package kernel-qubes-vm package installation
time, this needs to be done here.

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 29, 2017

anaconda: re-enable graphical.target as default target
Workaround for https://bugzilla.redhat.com/1316387 (systemctl preset-all
disables but wont enable default.target).

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

lorax-templates-qubes: make initrd for EFI smaller
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

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

pungi: remove libguestfs-tools-c from dependencies
It pulls a lot of stuff related to KVM, and also conflicting version of
xen packages.

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

qubes-anaconda-addon: set default kernel
Since qubesd isn't running package kernel-qubes-vm package installation
time, this needs to be done here.

QubesOS/qubes-issues#2412

fepitre added a commit to fepitre/qubes-installer-qubes-os that referenced this issue Dec 30, 2017

anaconda: re-enable graphical.target as default target
Workaround for https://bugzilla.redhat.com/1316387 (systemctl preset-all
disables but wont enable default.target).

QubesOS/qubes-issues#2412

@marmarek marmarek closed this Feb 27, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment