diff --git a/src/wrap.c b/src/wrap.c index 115bacc65cce136e33df1af133bd1027606510db..7ab733d89105174c99089dd893d3c3adce5e1680 100644 --- a/src/wrap.c +++ b/src/wrap.c @@ -260,16 +260,24 @@ bind_usr (FlatpakBwrap *bwrap, "--symlink", target, dest, NULL); } - /* TODO: else if it's a symlink, create the same symlink in the - * container? */ else { g_autofree gchar *path = g_build_filename (host_path, member, NULL); + g_autofree gchar *target = glnx_readlinkat_malloc (-1, path, NULL, NULL); - flatpak_bwrap_add_args (bwrap, - "--ro-bind", path, dest, - NULL); + if (target != NULL) + { + flatpak_bwrap_add_args (bwrap, + "--symlink", target, dest, + NULL); + } + else + { + flatpak_bwrap_add_args (bwrap, + "--ro-bind", path, dest, + NULL); + } } g_clear_pointer (&dest, g_free);