@@ -193,74 +193,3 @@ int load_extension_release_pairs(const char *root, const char *extension, char *
193193
194194 return load_env_file_pairs (f , p , ret );
195195}
196-
197- int extension_release_validate (
198- const char * name ,
199- const char * host_os_release_id ,
200- const char * host_os_release_version_id ,
201- const char * host_os_release_sysext_level ,
202- char * * extension_release ) {
203-
204- const char * extension_release_id = NULL , * extension_release_sysext_level = NULL ;
205-
206- assert (name );
207- assert (!isempty (host_os_release_id ));
208-
209- /* Now that we can look into the extension image, let's see if the OS version is compatible */
210- if (strv_isempty (extension_release )) {
211- log_debug ("Extension '%s' carries no extension-release data, ignoring extension." , name );
212- return 0 ;
213- }
214-
215- extension_release_id = strv_env_pairs_get (extension_release , "ID" );
216- if (isempty (extension_release_id )) {
217- log_debug ("Extension '%s' does not contain ID in extension-release but requested to match '%s'" ,
218- name , strna (host_os_release_id ));
219- return 0 ;
220- }
221-
222- if (!streq_ptr (host_os_release_id , extension_release_id )) {
223- log_debug ("Extension '%s' is for OS '%s', but deployed on top of '%s'." ,
224- name , strna (extension_release_id ), strna (host_os_release_id ));
225- return 0 ;
226- }
227-
228- /* Rolling releases do not typically set VERSION_ID (eg: ArchLinux) */
229- if (isempty (host_os_release_version_id ) && isempty (host_os_release_sysext_level )) {
230- log_debug ("No version info on the host (rolling release?), but ID in %s matched." , name );
231- return 1 ;
232- }
233-
234- /* If the extension has a sysext API level declared, then it must match the host API
235- * level. Otherwise, compare OS version as a whole */
236- extension_release_sysext_level = strv_env_pairs_get (extension_release , "SYSEXT_LEVEL" );
237- if (!isempty (host_os_release_sysext_level ) && !isempty (extension_release_sysext_level )) {
238- if (!streq_ptr (host_os_release_sysext_level , extension_release_sysext_level )) {
239- log_debug ("Extension '%s' is for sysext API level '%s', but running on sysext API level '%s'" ,
240- name , strna (extension_release_sysext_level ), strna (host_os_release_sysext_level ));
241- return 0 ;
242- }
243- } else if (!isempty (host_os_release_version_id )) {
244- const char * extension_release_version_id ;
245-
246- extension_release_version_id = strv_env_pairs_get (extension_release , "VERSION_ID" );
247- if (isempty (extension_release_version_id )) {
248- log_debug ("Extension '%s' does not contain VERSION_ID in extension-release but requested to match '%s'" ,
249- name , strna (host_os_release_version_id ));
250- return 0 ;
251- }
252-
253- if (!streq_ptr (host_os_release_version_id , extension_release_version_id )) {
254- log_debug ("Extension '%s' is for OS '%s', but deployed on top of '%s'." ,
255- name , strna (extension_release_version_id ), strna (host_os_release_version_id ));
256- return 0 ;
257- }
258- } else if (isempty (host_os_release_version_id ) && isempty (host_os_release_sysext_level )) {
259- /* Rolling releases do not typically set VERSION_ID (eg: ArchLinux) */
260- log_debug ("No version info on the host (rolling release?), but ID in %s matched." , name );
261- return 1 ;
262- }
263-
264- log_debug ("Version info of extension '%s' matches host." , name );
265- return 1 ;
266- }
0 commit comments