Fix build with glibmm-2.4 < 2.64 which lacks Glib::canonicalize_filename. Use the underlying glib C function g_canonicalize_filename instead. --- src/ui/dialog/export.cpp.orig +++ src/ui/dialog/export.cpp @@ -486,7 +486,13 @@ } auto fname = Glib::build_filename(directory, Glib::filename_from_utf8(name)); - return orig.empty() ? fname : Glib::canonicalize_filename(fname, orig); + if (orig.empty()) { + return fname; + } + auto *canonical = g_canonicalize_filename(fname.c_str(), orig.c_str()); + std::string result(canonical); + g_free(canonical); + return result; } std::string Export::defaultFilename(SPDocument *doc, std::string &filename_entry_text, std::string extension) --- src/ui/dialog/export-batch.cpp.orig +++ src/ui/dialog/export-batch.cpp @@ -540,7 +540,10 @@ if (const char *doc_filename = _document->getDocumentFilename()) { auto doc_path = Glib::path_get_dirname(doc_filename); if (!path.empty()) { - return Glib::canonicalize_filename(path.raw(), doc_path); + auto *canonical = g_canonicalize_filename(path.raw().c_str(), doc_path.c_str()); + std::string result(canonical); + g_free(canonical); + return result; } return doc_path; }