From 21356f8616f54e014fd93cfa4f1751d997a89091 Mon Sep 17 00:00:00 2001 From: Mathieu Velten Date: Wed, 30 Jan 2019 23:12:58 +0100 Subject: [PATCH] manifest: use the sdk branch from the sdk ref specified by the user install_extension_deps now takes the sdk branch as param as a side effect Closes: #266 Approved by: alexlarsson --- src/builder-manifest.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/builder-manifest.c b/src/builder-manifest.c index f38a91d1..f0defbdd 100644 --- a/src/builder-manifest.c +++ b/src/builder-manifest.c @@ -3660,6 +3660,7 @@ static gboolean builder_manifest_install_extension_deps (BuilderManifest *self, BuilderContext *context, const char *runtime, + const char *runtime_version, char **runtime_extensions, const char *remote, gboolean opt_user, @@ -3667,7 +3668,7 @@ builder_manifest_install_extension_deps (BuilderManifest *self, gboolean opt_yes, GError **error) { - g_autofree char *runtime_ref = flatpak_build_runtime_ref (runtime, builder_manifest_get_runtime_version (self), + g_autofree char *runtime_ref = flatpak_build_runtime_ref (runtime, runtime_version, builder_context_get_arch (context)); g_autofree char *metadata = NULL; g_autoptr(GKeyFile) keyfile = g_key_file_new (); @@ -3706,7 +3707,7 @@ builder_manifest_install_extension_deps (BuilderManifest *self, extension_version = g_key_file_get_string (keyfile, extension_group, "version", NULL); if (extension_version == NULL) - extension_version = g_strdup (builder_manifest_get_runtime_version (self)); + extension_version = g_strdup (runtime_version); g_print ("Dependency Extension: %s %s\n", runtime_extensions[i], extension_version); if (!builder_manifest_install_dep (self, context, remote, opt_user, opt_installation, @@ -3730,10 +3731,25 @@ builder_manifest_install_deps (BuilderManifest *self, { GList *l; + const char *sdk = NULL; + const char *sdk_branch = NULL; + g_auto(GStrv) sdk_parts = g_strsplit (self->sdk, "/", 3); + + if (g_strv_length (sdk_parts) >= 3) + { + sdk = sdk_parts[0]; + sdk_branch = sdk_parts[2]; + } + else + { + sdk = self->sdk; + sdk_branch = builder_manifest_get_runtime_version (self); + } + /* Sdk */ - g_print ("Dependency Sdk: %s %s\n", self->sdk, builder_manifest_get_runtime_version (self)); + g_print ("Dependency Sdk: %s %s\n", sdk, sdk_branch); if (!builder_manifest_install_dep (self, context, remote, opt_user, opt_installation, - self->sdk, builder_manifest_get_runtime_version (self), + sdk, sdk_branch, opt_yes, error)) return FALSE; @@ -3757,14 +3773,15 @@ builder_manifest_install_deps (BuilderManifest *self, } if (!builder_manifest_install_extension_deps (self, context, - self->sdk, self->sdk_extensions, + sdk, sdk_branch, self->sdk_extensions, remote,opt_user, opt_installation, opt_yes, error)) return FALSE; if (!builder_manifest_install_extension_deps (self, context, - self->runtime, self->platform_extensions, + self->runtime, builder_manifest_get_runtime_version (self), + self->platform_extensions, remote, opt_user, opt_installation, opt_yes, error))