btw. i found some bugs with the current ostype implementation (there is some bad behavior with different host arch + wizard vs non-wizard)
i'm currently contemplating rewriting this + the iso edit component into pure 'non-wizard' components and make a separate 'iso+ostype' panel that's specific for the wizard. that would clean up a fair bit of code and make the different flows a bit cleaner also, i'd like to change the way we generate the architecture in the wizard. imho it's better to let the wizard calculate the 'correct' arch (including considering the hostarch) than each component itself On 1/29/26 10:40 AM, Fiona Ebner wrote:
Am 28.01.26 um 1:30 PM schrieb Dominik Csapak:diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index d8b212bc..de1ee0ba 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -63,6 +63,17 @@ Ext.define('PVE.Utils', { Other: [{ desc: '-', val: 'other' }], },+ kvmOSTypesPerArchitecture: {+ x86_64: { + bases: undefined, // include all + ostypes: undefined, // include all + }, + aarch64: { + bases: ['Linux', 'Other'], + ostypes: ['l26', 'other'],What about Windows? Do we really want to hide that compeletely in the UI? Unfortunately [;P], I expect that to be a non-negligible use case and many requests to come in (which will miss that it's available on the CLI). Or is it not properly supported in the backend? If yes, that should be fixed, note that I have sent a patch at least for the unavailable hyperv flags [0]. I mean, we can also wait and see if I'm right. Maybe people don't care about it as much on ARM, I'd be glad ;) [0]: https://lore.proxmox.com/pve-devel/[email protected]/+ }, + }, + is_windows: function (ostype) { for (let entry of PVE.Utils.kvm_ostypes['Microsoft Windows']) { if (entry.val === ostype) { @@ -2068,6 +2079,18 @@ Ext.define('PVE.Utils', { return Ext.htmlEncode(description); },+ // returns the resulting architecture from a given arch and+ // the nodename, in case the architecture is set to default + getArchitecture: function (architecture, nodename) {getNodeArchitecture would be a bit more telling+ if (architecture === '__default__') { + architecture = undefined; + } + + let hostArchitecture = PVE.data.ResourceStore.getNodeById(nodename)?.data.architecture; + + return architecture ?? hostArchitecture ?? 'x86_64'; + }, + // returns if the given architecture is the native host architecture of the given nodename isHostArchitecture: function (architecture, nodename) { if (architecture === '__default__') {
