summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-01-14 20:25:12 +0100
committerAlexander Larsson <alexl@redhat.com>2016-01-14 20:25:12 +0100
commite9033395cea3ba80ebfc7c398d841e8d7aa2ca86 (patch)
treefc243826f85befdc88746fe9c6e5887b456d5a85
parent806b72f6dafbe6e2968955833ee93c07d3dbc793 (diff)
downloadappstream-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.c5
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);