aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/glibc-version.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/glibc-version.patch')
-rw-r--r--debian/patches/glibc-version.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/debian/patches/glibc-version.patch b/debian/patches/glibc-version.patch
new file mode 100644
index 00000000..92c1b252
--- /dev/null
+++ b/debian/patches/glibc-version.patch
@@ -0,0 +1,40 @@
+Description: Fix checking for GLIBC version
+ Use ldconfig -V instead of trying to call libc.so.6 directly, and update the
+ string mangling in the process.
+Author: Mathieu Trudel-Lapierre <cyphermox@ubuntu.com>
+Bug-Ubuntu: https://pad.lv/1473142
+Last-Update: 2017-06-19
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/modules/computer/os.c
++++ b/modules/computer/os.c
+@@ -27,8 +27,7 @@ get_libc_version(void)
+ FILE *libc;
+ gchar buf[256], *tmp, *p;
+ char *libc_paths[] = {
+- "/lib/ld-uClibc.so.0", "/lib64/ld-uClibc.so.0",
+- "/lib/libc.so.6", "/lib64/libc.so.6"
++ "ldconfig -V"
+ };
+ int i;
+
+@@ -47,15 +46,13 @@ get_libc_version(void)
+ (void)fgets(buf, 256, libc);
+ if (pclose(libc)) goto err;
+
+- tmp = strstr(buf, "version ");
+- if (!tmp) goto err;
++ buf[strlen(buf) - 1] = '\0';
+
+- p = strchr(tmp, ',');
+- if (p) *p = '\0';
+- else goto err;
++ tmp = strstr(buf, " ");
++ if (!tmp) goto err;
+
+ return g_strdup_printf(_("GNU C Library version %s (%sstable)"),
+- strchr(tmp, ' ') + 1,
++ tmp + 1,
+ strstr(buf, " stable ") ? "" : _("un"));
+ err:
+ return g_strdup(_("Unknown"));