diff --git a/SOURCES/0001-Added-MSVSphere-support.patch b/SOURCES/0001-Added-MSVSphere-support.patch new file mode 100644 index 0000000..a622da9 --- /dev/null +++ b/SOURCES/0001-Added-MSVSphere-support.patch @@ -0,0 +1,414 @@ +From 3baf13a31c37e3a9cc5e9b47a7410a43f9456704 Mon Sep 17 00:00:00 2001 +From: Sergey Cherevko +Date: Thu, 19 Dec 2024 19:44:59 +0300 +Subject: [PATCH] Added MSVSphere support + +--- + cmd/osbuild-composer/config.go | 3 ++ + cmd/osbuild-composer/config_test.go | 9 ++++++ + cmd/osbuild-composer/testdata/test.toml | 2 ++ + repositories/msvsphere-10.0.json | 30 +++++++++++++++++++ + repositories/msvsphere-10.json | 30 +++++++++++++++++++ + repositories/msvsphere-810.json | 16 ++++++++++ + repositories/msvsphere-89.json | 16 ++++++++++ + repositories/msvsphere-93.json | 16 ++++++++++ + repositories/msvsphere-94.json | 16 ++++++++++ + repositories/msvsphere-95.json | 16 ++++++++++ + .../images/pkg/distro/rhel/distribution.go | 19 ++++++++++++ + .../images/pkg/distro/rhel/imagetype.go | 4 +++ + .../images/pkg/distro/rhel/rhel8/distro.go | 12 +++++--- + .../images/pkg/distro/rhel/rhel9/distro.go | 12 +++++--- + 14 files changed, 193 insertions(+), 8 deletions(-) + create mode 100644 repositories/msvsphere-10.0.json + create mode 100644 repositories/msvsphere-10.json + create mode 100644 repositories/msvsphere-810.json + create mode 100644 repositories/msvsphere-89.json + create mode 100644 repositories/msvsphere-93.json + create mode 100644 repositories/msvsphere-94.json + create mode 100644 repositories/msvsphere-95.json + +diff --git a/cmd/osbuild-composer/config.go b/cmd/osbuild-composer/config.go +index 4bed222..1069c7a 100644 +--- a/cmd/osbuild-composer/config.go ++++ b/cmd/osbuild-composer/config.go +@@ -128,6 +128,9 @@ func GetDefaultConfig() *ComposerConfigFile { + "rhel-8": "rhel-8.10", + "rhel-9": "rhel-9.5", + "rhel-10": "rhel-10.0", ++ "msvsphere-8": "msvsphere-8.10", ++ "msvsphere-9": "msvsphere-9.5", ++ "msvsphere-10": "msvsphere-10.0", + }, + LogLevel: "info", + LogFormat: "journal", +diff --git a/cmd/osbuild-composer/config_test.go b/cmd/osbuild-composer/config_test.go +index 2e7e999..97e9e76 100644 +--- a/cmd/osbuild-composer/config_test.go ++++ b/cmd/osbuild-composer/config_test.go +@@ -74,6 +74,9 @@ func TestDefaultConfig(t *testing.T) { + "rhel-7": "rhel-7.9", + "rhel-8": "rhel-8.10", + "rhel-9": "rhel-9.5", ++ "msvsphere-8": "msvsphere-8.10", ++ "msvsphere-9": "msvsphere-9.5", ++ "msvsphere-10": "msvsphere-10.0", + } + require.Equal(t, expectedDistroAliases, defaultConfig.DistroAliases) + +@@ -113,6 +116,9 @@ func TestConfig(t *testing.T) { + "rhel-7": "rhel-7.9", // this value is from the default config + "rhel-8": "rhel-8.9", + "rhel-9": "rhel-9.3", ++ "msvsphere-8": "msvsphere-8.9", ++ "msvsphere-9": "msvsphere-9.3", ++ "msvsphere-10": "msvsphere-10.0", + } + require.Equal(t, expectedDistroAliases, config.DistroAliases) + } +@@ -176,6 +182,9 @@ func TestConfigFromEnv(t *testing.T) { + "rhel-8": "rhel-8.9", + "rhel-9": "rhel-9.3", + "rhel-10": "rhel-10.0", // this value is from the default config ++ "msvsphere-8": "msvsphere-8.10", ++ "msvsphere-9": "msvsphere-9.5", ++ "msvsphere-10": "msvsphere-10.0", + } + + config, err := LoadConfig("") +diff --git a/cmd/osbuild-composer/testdata/test.toml b/cmd/osbuild-composer/testdata/test.toml +index 2ba1b7a..bd081a9 100644 +--- a/cmd/osbuild-composer/testdata/test.toml ++++ b/cmd/osbuild-composer/testdata/test.toml +@@ -22,3 +22,5 @@ image_type_denylist = [ "qcow2" ] + [distro_aliases] + rhel-8 = "rhel-8.9" + rhel-9 = "rhel-9.3" ++msvsphere-8 = "msvsphere-8.9" ++msvsphere-9 = "msvsphere-9.3" +diff --git a/repositories/msvsphere-10.0.json b/repositories/msvsphere-10.0.json +new file mode 100644 +index 0000000..f4b0584 +--- /dev/null ++++ b/repositories/msvsphere-10.0.json +@@ -0,0 +1,30 @@ ++{ ++ "aarch64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10.0/BaseOS/aarch64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10.0/AppStream/aarch64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ], ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10.0/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10.0/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-10.json b/repositories/msvsphere-10.json +new file mode 100644 +index 0000000..4cd15bd +--- /dev/null ++++ b/repositories/msvsphere-10.json +@@ -0,0 +1,30 @@ ++{ ++ "aarch64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10/BaseOS/aarch64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10/AppStream/aarch64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ], ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/10/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-810.json b/repositories/msvsphere-810.json +new file mode 100644 +index 0000000..2763185 +--- /dev/null ++++ b/repositories/msvsphere-810.json +@@ -0,0 +1,16 @@ ++{ ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/8.10/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGWBYmMBEADPxCqnOcT9wFITkxY2X5zG+XIOUAHk0TUlevNRpwOsPiRgCX1+\nAbt5eqhiSoFBjqxyDmJ/imwXPhfEkBygBeC91hsY3NQ3+vn4pWmTxXE/j0JYzlHF\n3KA734z9G/oCV1ZwR8hEyUHTyD9+E9rJqVa++eqbql8VtOoC8Ia1+MKyERm3ZYgq\nhAxu/oCUEJpAgNTEM6V34DxKSHRzJsCNafSNL9xJThp/6/GlfeKzHIe+VlfmBuNz\nR7OHBlGtX1cKAxEw/4nb+2WzUnd6kRf7oCPLXzMJd/1eDZSL2v2SsrD6S1Cg/Nl5\ncw3KCdSpC2Nyu3Pi55alkqDyAAEm2MKpcw8XXXspfqTf4jVTBxmsFGir0AQ4VJx7\nLhnJsdje2D+rkiQ7lGcFnbEhudSv1I1H59iIVEp9Flj2GMt1hfwOfdvLhYDSkcFs\nDx3J2j+dqdH0b7ozlRRiLbnM/Ely9SGHHOGky8sWf9NZG4NjppZCkI0no6NLF8g6\nxVZ/yxdT9QQQA7cuGj8IJI1WMNdzG7Mn6twXDlbHBuuCxkqWkq1s7/DSPcyCVAmV\nXcUX89lkuzu/warVbhTSenR1/gNbU4r2VFGT+HoyIBqJrU8V0WhbcZkuZR/PwpJV\nHJSnOxH5DqA2tjXyZueikCIoeJaTI5qt+y14Rw45mjxQCUmzBa22Hk4T9QARAQAB\ntCZNU1ZTcGhlcmUgOCA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCTQQTAQgA\nNxYhBDSxBmiQ6uobOJAkwxRjfysr9IlhBQJlgWJjAhsDBQsJCAcCBRUKCQgCBBYC\nAQMCHgUCF4AACgkQFGN/Kyv0iWHbdQ/+MlvMOkYiJrp4wZE/SgU6XguGj4g2FJ9/\nbelHEA1mfej8LeKk9/DSuTO7Jwn0oL4qw91T3wIJLXxUXkp0lkEUPuA+nyUvvGeH\n2t5Lcvc9gslUOiQfqQ2e1yT3/2ADAyuas2p33Kej7vBwEjKZf+mBbX4PfWTDP/ei\naBE5U5LdwQJ0RNvVqxhRSNHvQksP/pnLalmWbfveFZE+vnyMv7ot+lcYR/EHEIOQ\nQK0PnwXO8D0rYfLhoFB9a9GDHKr6ziVehAVlzM12MM5QlVS+reX4wJRv4UcUi3dh\nYT+r2t6LgiANwPhWZMd4s29uypSpODkxto55Nk9EtxI0YH0wpKHj3nC9R2Cj6SVu\nFZ8Cp5EMfFr7oh+bHhjo7Xp3qc0ZKPvBKSbJ3HJEfueGq0iXFBTcg4vP58dmTThP\n6IkhQdkQwPis+sU9mb7iK4erxgXYKILB8KPUATeSpX3PQ0ohpSZSfIeknSjY31y2\nuGwVjPoad16Z/NqoHqtmqdkbKze4NobAfHssWQ5yXKt6sIfsMWr5x+aeolE4dpWx\n1iXmd9AfF5d0I/B4bToMOegVFow+7ZiZ6ZCYuxyZtdIjeVx/kpWJamqtKkvfIGSw\nEfOLknTKHJisWjyFw8EIg7ITMtLoU2B7reyPoYyauWxGoLrFFmrdD6KVeuUYOxj6\n2ON65s/Q4EM=\n=Co25\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/8.10/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGWBYmMBEADPxCqnOcT9wFITkxY2X5zG+XIOUAHk0TUlevNRpwOsPiRgCX1+\nAbt5eqhiSoFBjqxyDmJ/imwXPhfEkBygBeC91hsY3NQ3+vn4pWmTxXE/j0JYzlHF\n3KA734z9G/oCV1ZwR8hEyUHTyD9+E9rJqVa++eqbql8VtOoC8Ia1+MKyERm3ZYgq\nhAxu/oCUEJpAgNTEM6V34DxKSHRzJsCNafSNL9xJThp/6/GlfeKzHIe+VlfmBuNz\nR7OHBlGtX1cKAxEw/4nb+2WzUnd6kRf7oCPLXzMJd/1eDZSL2v2SsrD6S1Cg/Nl5\ncw3KCdSpC2Nyu3Pi55alkqDyAAEm2MKpcw8XXXspfqTf4jVTBxmsFGir0AQ4VJx7\nLhnJsdje2D+rkiQ7lGcFnbEhudSv1I1H59iIVEp9Flj2GMt1hfwOfdvLhYDSkcFs\nDx3J2j+dqdH0b7ozlRRiLbnM/Ely9SGHHOGky8sWf9NZG4NjppZCkI0no6NLF8g6\nxVZ/yxdT9QQQA7cuGj8IJI1WMNdzG7Mn6twXDlbHBuuCxkqWkq1s7/DSPcyCVAmV\nXcUX89lkuzu/warVbhTSenR1/gNbU4r2VFGT+HoyIBqJrU8V0WhbcZkuZR/PwpJV\nHJSnOxH5DqA2tjXyZueikCIoeJaTI5qt+y14Rw45mjxQCUmzBa22Hk4T9QARAQAB\ntCZNU1ZTcGhlcmUgOCA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCTQQTAQgA\nNxYhBDSxBmiQ6uobOJAkwxRjfysr9IlhBQJlgWJjAhsDBQsJCAcCBRUKCQgCBBYC\nAQMCHgUCF4AACgkQFGN/Kyv0iWHbdQ/+MlvMOkYiJrp4wZE/SgU6XguGj4g2FJ9/\nbelHEA1mfej8LeKk9/DSuTO7Jwn0oL4qw91T3wIJLXxUXkp0lkEUPuA+nyUvvGeH\n2t5Lcvc9gslUOiQfqQ2e1yT3/2ADAyuas2p33Kej7vBwEjKZf+mBbX4PfWTDP/ei\naBE5U5LdwQJ0RNvVqxhRSNHvQksP/pnLalmWbfveFZE+vnyMv7ot+lcYR/EHEIOQ\nQK0PnwXO8D0rYfLhoFB9a9GDHKr6ziVehAVlzM12MM5QlVS+reX4wJRv4UcUi3dh\nYT+r2t6LgiANwPhWZMd4s29uypSpODkxto55Nk9EtxI0YH0wpKHj3nC9R2Cj6SVu\nFZ8Cp5EMfFr7oh+bHhjo7Xp3qc0ZKPvBKSbJ3HJEfueGq0iXFBTcg4vP58dmTThP\n6IkhQdkQwPis+sU9mb7iK4erxgXYKILB8KPUATeSpX3PQ0ohpSZSfIeknSjY31y2\nuGwVjPoad16Z/NqoHqtmqdkbKze4NobAfHssWQ5yXKt6sIfsMWr5x+aeolE4dpWx\n1iXmd9AfF5d0I/B4bToMOegVFow+7ZiZ6ZCYuxyZtdIjeVx/kpWJamqtKkvfIGSw\nEfOLknTKHJisWjyFw8EIg7ITMtLoU2B7reyPoYyauWxGoLrFFmrdD6KVeuUYOxj6\n2ON65s/Q4EM=\n=Co25\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-89.json b/repositories/msvsphere-89.json +new file mode 100644 +index 0000000..16ac697 +--- /dev/null ++++ b/repositories/msvsphere-89.json +@@ -0,0 +1,16 @@ ++{ ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/8.9/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGWBYmMBEADPxCqnOcT9wFITkxY2X5zG+XIOUAHk0TUlevNRpwOsPiRgCX1+\nAbt5eqhiSoFBjqxyDmJ/imwXPhfEkBygBeC91hsY3NQ3+vn4pWmTxXE/j0JYzlHF\n3KA734z9G/oCV1ZwR8hEyUHTyD9+E9rJqVa++eqbql8VtOoC8Ia1+MKyERm3ZYgq\nhAxu/oCUEJpAgNTEM6V34DxKSHRzJsCNafSNL9xJThp/6/GlfeKzHIe+VlfmBuNz\nR7OHBlGtX1cKAxEw/4nb+2WzUnd6kRf7oCPLXzMJd/1eDZSL2v2SsrD6S1Cg/Nl5\ncw3KCdSpC2Nyu3Pi55alkqDyAAEm2MKpcw8XXXspfqTf4jVTBxmsFGir0AQ4VJx7\nLhnJsdje2D+rkiQ7lGcFnbEhudSv1I1H59iIVEp9Flj2GMt1hfwOfdvLhYDSkcFs\nDx3J2j+dqdH0b7ozlRRiLbnM/Ely9SGHHOGky8sWf9NZG4NjppZCkI0no6NLF8g6\nxVZ/yxdT9QQQA7cuGj8IJI1WMNdzG7Mn6twXDlbHBuuCxkqWkq1s7/DSPcyCVAmV\nXcUX89lkuzu/warVbhTSenR1/gNbU4r2VFGT+HoyIBqJrU8V0WhbcZkuZR/PwpJV\nHJSnOxH5DqA2tjXyZueikCIoeJaTI5qt+y14Rw45mjxQCUmzBa22Hk4T9QARAQAB\ntCZNU1ZTcGhlcmUgOCA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCTQQTAQgA\nNxYhBDSxBmiQ6uobOJAkwxRjfysr9IlhBQJlgWJjAhsDBQsJCAcCBRUKCQgCBBYC\nAQMCHgUCF4AACgkQFGN/Kyv0iWHbdQ/+MlvMOkYiJrp4wZE/SgU6XguGj4g2FJ9/\nbelHEA1mfej8LeKk9/DSuTO7Jwn0oL4qw91T3wIJLXxUXkp0lkEUPuA+nyUvvGeH\n2t5Lcvc9gslUOiQfqQ2e1yT3/2ADAyuas2p33Kej7vBwEjKZf+mBbX4PfWTDP/ei\naBE5U5LdwQJ0RNvVqxhRSNHvQksP/pnLalmWbfveFZE+vnyMv7ot+lcYR/EHEIOQ\nQK0PnwXO8D0rYfLhoFB9a9GDHKr6ziVehAVlzM12MM5QlVS+reX4wJRv4UcUi3dh\nYT+r2t6LgiANwPhWZMd4s29uypSpODkxto55Nk9EtxI0YH0wpKHj3nC9R2Cj6SVu\nFZ8Cp5EMfFr7oh+bHhjo7Xp3qc0ZKPvBKSbJ3HJEfueGq0iXFBTcg4vP58dmTThP\n6IkhQdkQwPis+sU9mb7iK4erxgXYKILB8KPUATeSpX3PQ0ohpSZSfIeknSjY31y2\nuGwVjPoad16Z/NqoHqtmqdkbKze4NobAfHssWQ5yXKt6sIfsMWr5x+aeolE4dpWx\n1iXmd9AfF5d0I/B4bToMOegVFow+7ZiZ6ZCYuxyZtdIjeVx/kpWJamqtKkvfIGSw\nEfOLknTKHJisWjyFw8EIg7ITMtLoU2B7reyPoYyauWxGoLrFFmrdD6KVeuUYOxj6\n2ON65s/Q4EM=\n=Co25\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/8.9/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGWBYmMBEADPxCqnOcT9wFITkxY2X5zG+XIOUAHk0TUlevNRpwOsPiRgCX1+\nAbt5eqhiSoFBjqxyDmJ/imwXPhfEkBygBeC91hsY3NQ3+vn4pWmTxXE/j0JYzlHF\n3KA734z9G/oCV1ZwR8hEyUHTyD9+E9rJqVa++eqbql8VtOoC8Ia1+MKyERm3ZYgq\nhAxu/oCUEJpAgNTEM6V34DxKSHRzJsCNafSNL9xJThp/6/GlfeKzHIe+VlfmBuNz\nR7OHBlGtX1cKAxEw/4nb+2WzUnd6kRf7oCPLXzMJd/1eDZSL2v2SsrD6S1Cg/Nl5\ncw3KCdSpC2Nyu3Pi55alkqDyAAEm2MKpcw8XXXspfqTf4jVTBxmsFGir0AQ4VJx7\nLhnJsdje2D+rkiQ7lGcFnbEhudSv1I1H59iIVEp9Flj2GMt1hfwOfdvLhYDSkcFs\nDx3J2j+dqdH0b7ozlRRiLbnM/Ely9SGHHOGky8sWf9NZG4NjppZCkI0no6NLF8g6\nxVZ/yxdT9QQQA7cuGj8IJI1WMNdzG7Mn6twXDlbHBuuCxkqWkq1s7/DSPcyCVAmV\nXcUX89lkuzu/warVbhTSenR1/gNbU4r2VFGT+HoyIBqJrU8V0WhbcZkuZR/PwpJV\nHJSnOxH5DqA2tjXyZueikCIoeJaTI5qt+y14Rw45mjxQCUmzBa22Hk4T9QARAQAB\ntCZNU1ZTcGhlcmUgOCA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCTQQTAQgA\nNxYhBDSxBmiQ6uobOJAkwxRjfysr9IlhBQJlgWJjAhsDBQsJCAcCBRUKCQgCBBYC\nAQMCHgUCF4AACgkQFGN/Kyv0iWHbdQ/+MlvMOkYiJrp4wZE/SgU6XguGj4g2FJ9/\nbelHEA1mfej8LeKk9/DSuTO7Jwn0oL4qw91T3wIJLXxUXkp0lkEUPuA+nyUvvGeH\n2t5Lcvc9gslUOiQfqQ2e1yT3/2ADAyuas2p33Kej7vBwEjKZf+mBbX4PfWTDP/ei\naBE5U5LdwQJ0RNvVqxhRSNHvQksP/pnLalmWbfveFZE+vnyMv7ot+lcYR/EHEIOQ\nQK0PnwXO8D0rYfLhoFB9a9GDHKr6ziVehAVlzM12MM5QlVS+reX4wJRv4UcUi3dh\nYT+r2t6LgiANwPhWZMd4s29uypSpODkxto55Nk9EtxI0YH0wpKHj3nC9R2Cj6SVu\nFZ8Cp5EMfFr7oh+bHhjo7Xp3qc0ZKPvBKSbJ3HJEfueGq0iXFBTcg4vP58dmTThP\n6IkhQdkQwPis+sU9mb7iK4erxgXYKILB8KPUATeSpX3PQ0ohpSZSfIeknSjY31y2\nuGwVjPoad16Z/NqoHqtmqdkbKze4NobAfHssWQ5yXKt6sIfsMWr5x+aeolE4dpWx\n1iXmd9AfF5d0I/B4bToMOegVFow+7ZiZ6ZCYuxyZtdIjeVx/kpWJamqtKkvfIGSw\nEfOLknTKHJisWjyFw8EIg7ITMtLoU2B7reyPoYyauWxGoLrFFmrdD6KVeuUYOxj6\n2ON65s/Q4EM=\n=Co25\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-93.json b/repositories/msvsphere-93.json +new file mode 100644 +index 0000000..ba608f5 +--- /dev/null ++++ b/repositories/msvsphere-93.json +@@ -0,0 +1,16 @@ ++{ ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.3/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.3/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-94.json b/repositories/msvsphere-94.json +new file mode 100644 +index 0000000..8edfe5e +--- /dev/null ++++ b/repositories/msvsphere-94.json +@@ -0,0 +1,16 @@ ++{ ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.4/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.4/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/repositories/msvsphere-95.json b/repositories/msvsphere-95.json +new file mode 100644 +index 0000000..5be6c20 +--- /dev/null ++++ b/repositories/msvsphere-95.json +@@ -0,0 +1,16 @@ ++{ ++ "x86_64": [ ++ { ++ "name": "baseos", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.5/BaseOS/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ }, ++ { ++ "name": "appstream", ++ "baseurl": "https://repo1.msvsphere-os.ru/msvsphere/9.5/AppStream/x86_64/os/", ++ "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGUulQgBEACk4aP3eOnKfjklE+EFb4+SsTFzDYuyirSAr60g6YNpFqTd/NVw\n8CH5qd6yqam3myiM1EAYTMDozmzfQ/4D75mdKoQN5IItPoqdpkoJOGPRGciHKtgX\n3ZOBAVFhKRcw7lLrlL/XfBl42L7hxpRj0Xk4YAQxFbk6PmcoAz2oDdHBhQd/R9Pi\nvljTYnnrPy3PakBLPlO2GLDA2KRjzHhI2vEKoSv/nBDn4O6c/RL3usOU9H/gnoc7\nMuNJQMh36xf3lDuqgIwi1D6aG6PoClNVopgbvD8IVDOpairW8TvJPMr3BpXMHwSz\n5ixDFtPnVilYgqhi0cg2AampkS2VdbLn9ofGe00DLSfTBEE4370WAPaff7mtjfbf\nmIKm/rqzW5yixSra21ab6nFE7hRiuzlqJkl9oHzt8NZoWhKp8UeoSDNXrVCLxXsg\nAHsX6dSKAppKmUl9VKXxQk6kFObLsrdD8m/If3Xfj4clikDnuqWweeeQfABuDYx4\nhuoTbeOA/8U03ByCYX6A0zvC+CzHwzzO4gQqdbfaSzce6+20rH7psaAT/97lh7Ec\nA8LNdYA1CoPGDcBr+Rr3DP6NomRzBYYVQ2Tihbp4OPb1WN2FKppvjc6j0QK8ZeQP\ne1Xg4ycv4ZFJP4zJpP7TQvpRoFm2mXv8UMg8J17nKeOFMnwL7pEU1DS1fQARAQAB\ntCZNU1ZTcGhlcmUgOSA8cGFja2FnZXJAbXN2c3BoZXJlLW9zLnJ1PokCSwQTAQgA\nNRYhBLQ+/RAbCEoqakRiHJUsZhiL2nOkBQJlLpUIAhsDBAsJCAcEFQoJCAQWAgED\nAh4FAheAAAoJEJUsZhiL2nOkkjoP/1O/ghjcXPqM6qyxwn8sqPawBqHKNB/YgPIK\nWipuxOBQXf/nxtLtne2A+dccuBc6/ghOOIjLSPOYG2LiVg1rlGa2D3465Wv4574e\nJC1Pf/eo4DxJgaotQhzJlTmC1au51ACD3kXpPuCgx88Ys1l6A1AkdraM7OC8qCri\npnKx+Z8/NJgNVUp6eSAh6+KZ/JGA5SqBrYAlYGPgJ1ffjSmb96TUlRdukG13luU2\nZ8JoZORhhovgB2dl02MQCWpe6XRR39h9f4CIgw3w+MQA9r+lK7WLFx5uQCfO3gFq\nIEJ43IhfReiG9tCyY68hsGB0+Evr1KFPs4g1TbMXQFvM3WcanMQbMhrSCCXk+gNh\nQnjYg2/X2lz8JBOTqRulc4YQIxSHiOAT8CMw5oQnhkFwNdUrt+b+W3hUteCX4P5C\no5Cog3EsZTAPQ0+xaZQm2jfwvjnDO1qH0fr/biOpXN4YyvqCBFN0MoWZrpAOp1H3\nubwFmOj59RKniMkzwM8hLIvqqejvY6IEBAVjGAWmRPN9sJGVOWHmK4ZPK6oT7Ggb\nJo64e6kS6XP6JFoL1OUeDYCk+M/ad0UCHMm0mfkQMfPwN+m3eFgJLNqWRtYbuLpX\nd2YMF8ex961XzxWXUPRuE6+ZozNszQ1nE0XQKpo7ovPx3Pp1bRhLxIMZekSfKGJ9\n7TMdj1L4\n=VVm+\n-----END PGP PUBLIC KEY BLOCK-----\n", ++ "check_gpg": true ++ } ++ ] ++} +diff --git a/vendor/github.com/osbuild/images/pkg/distro/rhel/distribution.go b/vendor/github.com/osbuild/images/pkg/distro/rhel/distribution.go +index 849ca43..b7cbd51 100644 +--- a/vendor/github.com/osbuild/images/pkg/distro/rhel/distribution.go ++++ b/vendor/github.com/osbuild/images/pkg/distro/rhel/distribution.go +@@ -97,6 +97,10 @@ func (d *Distribution) IsRHEL() bool { + return strings.HasPrefix(d.name, "rhel") + } + ++func (d *Distribution) IsMSVSphere() bool { ++ return strings.HasPrefix(d.name, "msvsphere") ++} ++ + func (d *Distribution) GetDefaultImageConfig() *distro.ImageConfig { + if d.DefaultImageConfig == nil { + return nil +@@ -138,6 +142,21 @@ func NewDistribution(name string, major, minor int) (*Distribution, error) { + ostreeRefTmpl: fmt.Sprintf("centos/%d/%%s/edge", major), + runner: &runner.CentOS{Version: uint64(major)}, + } ++ case "msvsphere": ++ if minor == -1 { ++ return nil, errors.New("MSVSphere requires a minor version") ++ } ++ ++ rd = &Distribution{ ++ name: fmt.Sprintf("msvsphere-%d.%d", major, minor), ++ product: "MSVSphere", ++ osVersion: fmt.Sprintf("%d.%d", major, minor), ++ releaseVersion: fmt.Sprintf("%d", major), ++ modulePlatformID: fmt.Sprintf("platform:el%d", major), ++ vendor: "msvsphere", ++ ostreeRefTmpl: fmt.Sprintf("msvsphere/%d/%%s/edge", major), ++ runner: &runner.RHEL{Major: uint64(major), Minor: uint64(minor)}, ++ } + default: + return nil, fmt.Errorf("unknown distro name: %s", name) + } +diff --git a/vendor/github.com/osbuild/images/pkg/distro/rhel/imagetype.go b/vendor/github.com/osbuild/images/pkg/distro/rhel/imagetype.go +index 0c055c9..5a20827 100644 +--- a/vendor/github.com/osbuild/images/pkg/distro/rhel/imagetype.go ++++ b/vendor/github.com/osbuild/images/pkg/distro/rhel/imagetype.go +@@ -126,6 +126,10 @@ func (t *ImageType) IsRHEL() bool { + return t.arch.distro.IsRHEL() + } + ++func (t *ImageType) IsMSVSphere() bool { ++ return t.arch.distro.IsMSVSphere() ++} ++ + func (t *ImageType) ISOLabel() (string, error) { + if !t.BootISO { + return "", fmt.Errorf("image type %q is not an ISO", t.name) +diff --git a/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel8/distro.go b/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel8/distro.go +index f35f450..277f8f7 100644 +--- a/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel8/distro.go ++++ b/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel8/distro.go +@@ -60,10 +60,14 @@ func defaultDistroImageConfig(d *rhel.Distribution) *distro.ImageConfig { + func distroISOLabelFunc(t *rhel.ImageType) string { + const RHEL_ISO_LABEL = "RHEL-%s-%s-0-BaseOS-%s" + const CS_ISO_LABEL = "CentOS-Stream-%s-%s-dvd" ++ const MSVSPHERE_ISO_LABEL = "MSVSphere-%s-%s-%s-dvd" + + if t.IsRHEL() { + osVer := strings.Split(t.Arch().Distro().OsVersion(), ".") + return fmt.Sprintf(RHEL_ISO_LABEL, osVer[0], osVer[1], t.Arch().Name()) ++ } else if t.IsMSVSphere() { ++ osVer := strings.Split(t.Arch().Distro().OsVersion(), ".") ++ return fmt.Sprintf(MSVSPHERE_ISO_LABEL, osVer[0], osVer[1], t.Arch().Name()) + } else { + return fmt.Sprintf(CS_ISO_LABEL, t.Arch().Distro().Releasever(), t.Arch().Name()) + } +@@ -418,12 +422,12 @@ func ParseID(idStr string) (*distro.ID, error) { + return nil, err + } + +- if id.Name != "rhel" && id.Name != "centos" { ++ if id.Name != "rhel" && id.Name != "centos" && id.Name != "msvsphere" { + return nil, fmt.Errorf("invalid distro name: %s", id.Name) + } + + // Backward compatibility layer for "rhel-84" or "rhel-810" +- if id.Name == "rhel" && id.MinorVersion == -1 { ++ if (id.Name == "rhel" || id.Name == "msvsphere") && id.MinorVersion == -1 { + if id.MajorVersion/10 == 8 { + // handle single digit minor version + id.MinorVersion = id.MajorVersion % 10 +@@ -445,8 +449,8 @@ func ParseID(idStr string) (*distro.ID, error) { + } + + // RHEL uses minor version +- if id.Name == "rhel" && id.MinorVersion == -1 { +- return nil, fmt.Errorf("rhel requires minor version, but got: %d", id.MinorVersion) ++ if (id.Name == "rhel" || id.Name == "msvsphere") && id.MinorVersion == -1 { ++ return nil, fmt.Errorf("%s requires minor version, but got: %d", id.Name, id.MinorVersion) + } + + return id, nil +diff --git a/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go b/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go +index 2e77b6b..041a863 100644 +--- a/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go ++++ b/vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go +@@ -43,10 +43,14 @@ var ( + func distroISOLabelFunc(t *rhel.ImageType) string { + const RHEL_ISO_LABEL = "RHEL-%s-%s-0-BaseOS-%s" + const CS_ISO_LABEL = "CentOS-Stream-%s-BaseOS-%s" ++ const MSVSPHERE_ISO_LABEL = "MSVSphere-%s-%s-%s-dvd" + + if t.IsRHEL() { + osVer := strings.Split(t.Arch().Distro().OsVersion(), ".") + return fmt.Sprintf(RHEL_ISO_LABEL, osVer[0], osVer[1], t.Arch().Name()) ++ } else if t.IsMSVSphere() { ++ osVer := strings.Split(t.Arch().Distro().OsVersion(), ".") ++ return fmt.Sprintf(MSVSPHERE_ISO_LABEL, osVer[0], osVer[1], t.Arch().Name()) + } else { + return fmt.Sprintf(CS_ISO_LABEL, t.Arch().Distro().Releasever(), t.Arch().Name()) + } +@@ -379,12 +383,12 @@ func ParseID(idStr string) (*distro.ID, error) { + return nil, err + } + +- if id.Name != "rhel" && id.Name != "centos" { ++ if id.Name != "rhel" && id.Name != "centos" && id.Name != "msvsphere" { + return nil, fmt.Errorf("invalid distro name: %s", id.Name) + } + + // Backward compatibility layer for "rhel-93" or "rhel-910" +- if id.Name == "rhel" && id.MinorVersion == -1 { ++ if (id.Name == "rhel" || id.Name == "msvsphere") && id.MinorVersion == -1 { + if id.MajorVersion/10 == 9 { + // handle single digit minor version + id.MinorVersion = id.MajorVersion % 10 +@@ -406,8 +410,8 @@ func ParseID(idStr string) (*distro.ID, error) { + } + + // RHEL uses minor version +- if id.Name == "rhel" && id.MinorVersion == -1 { +- return nil, fmt.Errorf("rhel requires minor version, but got: %d", id.MinorVersion) ++ if (id.Name == "rhel" || id.Name == "msvsphere") && id.MinorVersion == -1 { ++ return nil, fmt.Errorf("%s requires minor version, but got: %d", id.Name, id.MinorVersion) + } + + return id, nil +-- +2.43.5 + diff --git a/SPECS/osbuild-composer.spec b/SPECS/osbuild-composer.spec index c3eb4ca..5714dae 100644 --- a/SPECS/osbuild-composer.spec +++ b/SPECS/osbuild-composer.spec @@ -25,7 +25,7 @@ It is compatible with composer-cli and cockpit-composer clients. } Name: osbuild-composer -Release: 1%{?dist} +Release: 1%{?dist}.inferit Summary: An image building service based on osbuild # osbuild-composer doesn't have support for building i686 and armv7hl images @@ -36,6 +36,8 @@ License: Apache-2.0 URL: %{gourl} Source0: %{gosource} +# MSVSphere +Patch1001: 0001-Added-MSVSphere-support.patch BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} BuildRequires: systemd @@ -154,6 +156,17 @@ install -m 0755 -vp _bin/osbuild-jobsite-builder %{buildroot}% # Only include repositories for the distribution and release install -m 0755 -vd %{buildroot}%{_datadir}/osbuild-composer/repositories +# MSVSphere support block +%if 0%{?msvsphere} +# MSVSphere 9 supports building for all MSVSphere versions +%if 0%{?msvsphere} >= 9 +install -m 0644 -vp repositories/msvsphere-* %{buildroot}%{_datadir}/osbuild-composer/repositories/ +%else +# MSVSphere 8 only supports building for MSVSphere 8 +install -m 0644 -vp repositories/msvsphere-%{msvsphere}* %{buildroot}%{_datadir}/osbuild-composer/repositories/ +%endif +%else + # CentOS also defines rhel so we check for centos first %if 0%{?centos} @@ -197,6 +210,7 @@ done %endif %endif %endif +%endif # Fedora can build for all included fedora releases %if 0%{?fedora} @@ -452,6 +466,9 @@ Integration tests to be run on a pristine-dedicated system to test the osbuild-c %endif %changelog +* Thu Dec 19 2024 Sergey Cherevko - 118-1.inferit +- Added MSVSphere support + * Tue Nov 26 2024 MSVSphere Packaging Team - 118-1 - Rebuilt for MSVSphere 10