diff options
author | Alexander Larsson <alexl@redhat.com> | 2016-01-14 20:25:12 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2016-01-14 20:25:12 +0100 |
commit | e9033395cea3ba80ebfc7c398d841e8d7aa2ca86 (patch) | |
tree | fc243826f85befdc88746fe9c6e5887b456d5a85 | |
parent | 806b72f6dafbe6e2968955833ee93c07d3dbc793 (diff) | |
download | appstream-glib-e9033395cea3ba80ebfc7c398d841e8d7aa2ca86.tar.gz |
package-ostree: Init NEVRA on open otherwise we don't get the right tmpdir name
Since asb_task_set_package() calls asb_package_get_nevr() on the package without
ensuring it is loaded it creates a temp name called "(null)-(null)-(null)".
This is shared for all packages, so everything stomps on everything.
-rw-r--r-- | libappstream-builder/asb-package-ostree.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libappstream-builder/asb-package-ostree.c b/libappstream-builder/asb-package-ostree.c index 315460f..f75ea6e 100644 --- a/libappstream-builder/asb-package-ostree.c +++ b/libappstream-builder/asb-package-ostree.c @@ -44,6 +44,8 @@ G_DEFINE_TYPE_WITH_PRIVATE (AsbPackageOstree, asb_package_ostree, ASB_TYPE_PACKA #define GET_PRIVATE(o) (asb_package_ostree_get_instance_private (o)) +static gboolean asb_package_ostree_ensure_nevra (AsbPackage *pkg, GError **error); + /** * asb_package_ostree_finalize: **/ @@ -88,6 +90,9 @@ asb_package_ostree_open (AsbPackage *pkg, const gchar *filename, GError **error) AsbPackageOstreePrivate *priv = GET_PRIVATE (pkg_ostree); g_autoptr(GFile) file = NULL; + if (!asb_package_ostree_ensure_nevra (pkg, error)) + return FALSE; + /* create the OstreeRepo */ file = g_file_new_for_path (priv->repodir); priv->repo = ostree_repo_new (file); |