From 9d80b0bca3f90e2489aac8e7765081c47e8a66f5 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 31 Oct 2017 12:51:09 -0400 Subject: [PATCH] gdbus-codegen: Call abspath() earlier The previous change from https://bugzilla.gnome.org/show_bug.cgi?id=786785 didn't actually work (for me at least) in the `/bin/gdbus-codegen` case as the relative `/bin/../share` path works, but then `os.path.abspath()` breaks it (as it's not doing `realpath()`, and let's not go there). Fix this by doing the `abspath` first. Downstream: https://bugzilla.redhat.com/show_bug.cgi?id=1507661 --- gio/gdbus-2.0/codegen/gdbus-codegen.in | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in index e3f4f00f8..67d367543 100755 --- a/gio/gdbus-2.0/codegen/gdbus-codegen.in +++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -37,6 +37,9 @@ else: # parent directory to the python path. path = os.path.join(filedir, '..') +# Canonicalize, then do further testing +path = os.path.abspath(path) + # If the above path detection failed, use the hard-coded datadir. This can # happen when, for instance, bindir and datadir are not in the same prefix or # on Windows where we cannot make any guarantees about the directory structure. @@ -46,7 +49,7 @@ else: if not os.path.isfile(os.path.join(path, 'codegen', 'codegen_main.py')): path = os.path.join('@DATADIR@', 'glib-2.0') -sys.path.insert(0, os.path.abspath(path)) +sys.path.insert(0, path) from codegen import codegen_main sys.exit(codegen_main.codegen_main()) -- 2.13.6