summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Leuenberger <dimstar@opensuse.org>2016-09-05 21:02:32 +0200
committerRichard Hughes <richard@hughsie.com>2017-01-17 10:36:19 +0000
commit7e7c373360f259db2584dc68c1a94027aacb4e07 (patch)
tree695824e46070ba426d31073b660d50e04cde55ca
parent57625db18b2cfe6e9d8a39a5d0cf1ed35af50e02 (diff)
downloadappstream-glib-7e7c373360f259db2584dc68c1a94027aacb4e07.tar.gz
Add -lang package as a dependency in order to properly detect translations (#135)
In openSUSE, the -lang package is 'only' recommended, so that users CAN save the space if they don't need them (and using bundles there is also a method to only install one language instead of all supported ones). Unfortunately, with this technique, gnome-software keeps on pretending that no application is localized in openSUSE.
-rw-r--r--libappstream-builder/asb-package-rpm.c4
-rw-r--r--libappstream-builder/asb-self-test.c9
2 files changed, 9 insertions, 4 deletions
diff --git a/libappstream-builder/asb-package-rpm.c b/libappstream-builder/asb-package-rpm.c
index 1feb7ea..0527e77 100644
--- a/libappstream-builder/asb-package-rpm.c
+++ b/libappstream-builder/asb-package-rpm.c
@@ -333,6 +333,10 @@ asb_package_rpm_ensure_deps (AsbPackage *pkg, GError **error)
*tmp = '\0';
asb_package_add_dep (pkg, dep_no_qual);
}
+ /* Add the corresponding -lang package as a dependency */
+ tmp = g_strconcat (asb_package_get_name (pkg), "-lang", NULL);
+ asb_package_add_dep (pkg, tmp);
+ g_free (tmp);
out:
rpmtdFreeData (td);
rpmtdFree (td);
diff --git a/libappstream-builder/asb-self-test.c b/libappstream-builder/asb-self-test.c
index 8f4fbfb..7ec7239 100644
--- a/libappstream-builder/asb-self-test.c
+++ b/libappstream-builder/asb-self-test.c
@@ -131,10 +131,11 @@ asb_test_package_rpm_func (void)
/* deps */
deps = asb_package_get_deps (pkg);
- g_assert_cmpint (deps->len, ==, 3);
+ g_assert_cmpint (deps->len, ==, 4);
g_assert_cmpstr (g_ptr_array_index (deps, 0), ==, "bar");
g_assert_cmpstr (g_ptr_array_index (deps, 1), ==, "baz");
g_assert_cmpstr (g_ptr_array_index (deps, 2), ==, "foo");
+ g_assert_cmpstr (g_ptr_array_index (deps, 3), ==, "test-lang");
/* releases */
releases = asb_package_get_releases (pkg);
@@ -168,13 +169,13 @@ asb_test_package_rpm_func (void)
ret = asb_package_ensure (pkg, ASB_PACKAGE_ENSURE_DEPS, &error);
g_assert_no_error (error);
g_assert (ret);
- g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 3);
+ g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 4);
ret = asb_package_ensure (pkg, ASB_PACKAGE_ENSURE_DEPS, &error);
g_assert_no_error (error);
g_assert (ret);
- g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 3);
+ g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 4);
asb_package_clear (pkg, ASB_PACKAGE_ENSURE_DEPS);
- g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 3);
+ g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 4);
asb_package_clear (pkg, ASB_PACKAGE_ENSURE_DEPS);
g_assert_cmpint (asb_package_get_deps(pkg)->len, ==, 0);