1. 05 Feb, 2019 5 commits
  2. 03 Feb, 2019 1 commit
  3. 30 Jan, 2019 13 commits
    • Bastien Nocera's avatar
      thumbnail: Fix slow thumbnailer due to missing font cache · 436c72d1
      Bastien Nocera authored
      On some distributions, the font cache doesn't live in /usr but in /var,
      which we don't allow access to when sandboxing the thumbnailers. Bind
      mount the fontconfig cache directory read-only if it lives outside /usr,
      to speed up thumbnailer startup.
      
      Closes: #90
      436c72d1
    • Bastien Nocera's avatar
      e1ac6e46
    • Bastien Nocera's avatar
      ci: Print out more debug during tests · 4fa3982b
      Bastien Nocera authored
      4fa3982b
    • Bastien Nocera's avatar
      wall-clock: More debug in format function · 91f03989
      Bastien Nocera authored
      91f03989
    • Bastien Nocera's avatar
      ci: Add missing default font for tests · 4366077c
      Bastien Nocera authored
      To make sure that we're comparing similar fonts.
      4366077c
    • Bastien Nocera's avatar
      tests: Output reftest output in meson-logs · 9a621065
      Bastien Nocera authored
      So that failed tests can have their data exported via the CI.
      9a621065
    • Bastien Nocera's avatar
      ci: Upload uninstalled test results on failure · 23cba2ac
      Bastien Nocera authored
      Upload the meson logs as well, if any test fails.
      23cba2ac
    • Bastien Nocera's avatar
      thumbnail: Fix runtime warning getting a preview icon · fbd7b59c
      Bastien Nocera authored
      If we tried to get a preview thumbnail for a file, but that preview icon
      did not exist, then we'd generate a warning trying to add a reference to
      that GIcon.
      
      Fixes: e629e46a
      fbd7b59c
    • Bastien Nocera's avatar
      ci: Fix CI problems caused by uninstalled glib2 translations · 59374329
      Bastien Nocera authored
      The glib2 Hebrew translations were not getting installed since an update
      in the Fedora Docker image which blocked any non-English translations
      from being installed. Even though the glibc Hebrew translations were
      unaffected, the glib2 one still was, causing half of the wall clock to
      be translated (glibc-provided strings) and half not (glib2-provided
      strings).
      
      With help from Ray Strode.
      59374329
    • Bastien Nocera's avatar
      thumbnail: Fix runtime warning getting a preview icon · fc19c949
      Bastien Nocera authored
      If we tried to get a preview thumbnail for a file, but that preview icon
      did not exist, then we'd generate a warning trying to add a reference to
      that GIcon.
      
      Fixes: e629e46a
      fc19c949
    • Mart Raudsepp's avatar
      thumbnail: bind mount /etc/ld.so.cache to the sandbox · 77d37aa9
      Mart Raudsepp authored
      This is especially important for libstdc++ on distributions that
      don't have it directly in a libdir and the runtime linker doesn't
      look where needed without /etc/ld.so.cache (e.g. if libstdc++ is
      in a GCC per-version subdirectory handled via /etc/ld.so.conf.d/).
      
      If /etc/ld.so.cache is not available, the runtime linker will look
      only at a set of predetermined paths - as seen with LD_DEBUG=libs
      added to the bwrap call with "--setenv LD_DEBUG libs":
      
      find library=libstdc++.so.6 [0]; searching
       search cache=/etc/ld.so.cache
       search path=/lib64:/usr/lib64		(system search path)
        trying file=/lib64/libstdc++.so.6
        trying file=/usr/lib64/libstdc++.so.6
      
      followed by:
      
      /usr/bin/totem-video-thumbnailer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
      
      If /etc/ld.so.cache is available, it will use that for the paths:
      
      find library=libstdc++.so.6 [0]; searching
       search cache=/etc/ld.so.cache
        trying file=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/libstdc++.so.6
      
      By bind mounting just that file out of /etc, we get it to work on
      such a system.
      
      Closes: #81
      77d37aa9
    • Bastien Nocera's avatar
      thumbnail: Fix slow thumbnailer due to missing font cache · e83305b9
      Bastien Nocera authored
      On some distributions, the font cache doesn't live in /usr but in /var,
      which we don't allow access to when sandboxing the thumbnailers. Bind
      mount the fontconfig cache directory read-only if it lives outside /usr,
      to speed up thumbnailer startup.
      
      Closes: #90
      e83305b9
    • Bastien Nocera's avatar
      ci: Fix CI problems caused by uninstalled glib2 translations · 78a29e0e
      Bastien Nocera authored
      The glib2 Hebrew translations were not getting installed since an update
      in the Fedora Docker image which blocked any non-English translations
      from being installed. Even though the glibc Hebrew translations were
      unaffected, the glib2 one still was, causing half of the wall clock to
      be translated (glibc-provided strings) and half not (glib2-provided
      strings).
      
      With help from Ray Strode.
      78a29e0e
  4. 09 Jan, 2019 1 commit
  5. 08 Jan, 2019 1 commit
  6. 27 Dec, 2018 1 commit
  7. 25 Dec, 2018 2 commits
  8. 16 Dec, 2018 4 commits
  9. 14 Dec, 2018 1 commit
  10. 13 Dec, 2018 1 commit
    • Mart Raudsepp's avatar
      thumbnail: bind mount /etc/ld.so.cache to the sandbox · f4dcb2f2
      Mart Raudsepp authored
      This is especially important for libstdc++ on distributions that
      don't have it directly in a libdir and the runtime linker doesn't
      look where needed without /etc/ld.so.cache (e.g. if libstdc++ is
      in a GCC per-version subdirectory handled via /etc/ld.so.conf.d/).
      
      If /etc/ld.so.cache is not available, the runtime linker will look
      only at a set of predetermined paths - as seen with LD_DEBUG=libs
      added to the bwrap call with "--setenv LD_DEBUG libs":
      
      find library=libstdc++.so.6 [0]; searching
       search cache=/etc/ld.so.cache
       search path=/lib64:/usr/lib64		(system search path)
        trying file=/lib64/libstdc++.so.6
        trying file=/usr/lib64/libstdc++.so.6
      
      followed by:
      
      /usr/bin/totem-video-thumbnailer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
      
      If /etc/ld.so.cache is available, it will use that for the paths:
      
      find library=libstdc++.so.6 [0]; searching
       search cache=/etc/ld.so.cache
        trying file=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/libstdc++.so.6
      
      By bind mounting just that file out of /etc, we get it to work on
      such a system.
      
      Closes: #81
      f4dcb2f2
  11. 12 Dec, 2018 1 commit
  12. 11 Dec, 2018 5 commits
    • Matthias Clasen's avatar
      3.31.3 · 2452584f
      Matthias Clasen authored
      2452584f
    • Iain Lane's avatar
      thumbnail: Handle non-usrmerged systems and non-existing directories · 1644502f
      Iain Lane authored
      On systems where /usr-merge hasn't been carried out, /bin (etc) won't
      point to /usr/bin. In that case we should --ro-bind the directory
      instead of --symlinking it.
      
      This implements the suggestion from Simon McVittie on
      https://bugzilla.gnome.org/show_bug.cgi?id=787072.
      
      It also handles source directories not existing, which for example
      /lib64 won't on 32-bit systems.
      
      Closes: #4
      Closes: #89
      (cherry picked from commit 259e7e4e)
      1644502f
    • Bastien Nocera's avatar
      thumbnail: Fix use-after-free when getting a preview icon · 43dac410
      Bastien Nocera authored
      g_file_info_get_attribute_object() is transfer none, so when getting a
      preview GIcon from a gvfs-backed file that supports it, we need to
      reference the preview otherwise we might crash.
      
      ==19044== Invalid read of size 8
      ==19044==    at 0x48607E7: get_preview_thumbnail (gnome-desktop-thumbnail.c:978)
      ==19044==    by 0x48607E7: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Address 0x700f750 is 0 bytes inside a block of size 40 free'd
      ==19044==    at 0x4839A0C: free (vg_replace_malloc.c:530)
      ==19044==    by 0x48DFCD0: g_type_free_instance (gtype.c:1943)
      ==19044==    by 0x4E7F7B5: _g_file_attribute_value_clear (gfileattribute.c:176)
      ==19044==    by 0x4E83D46: g_file_info_finalize (gfileinfo.c:327)
      ==19044==    by 0x48C1C61: g_object_unref (gobject.c:3346)
      ==19044==    by 0x48607D5: get_preview_thumbnail (gnome-desktop-thumbnail.c:974)
      ==19044==    by 0x48607D5: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Block was alloc'd at
      ==19044==    at 0x483880B: malloc (vg_replace_malloc.c:299)
      ==19044==    by 0x4B54F20: g_malloc (gmem.c:99)
      ==19044==    by 0x4B6C3C2: g_slice_alloc (gslice.c:1024)
      ==19044==    by 0x4B6C9F8: g_slice_alloc0 (gslice.c:1050)
      ==19044==    by 0x48DFA33: g_type_create_instance (gtype.c:1846)
      ==19044==    by 0x48C2397: g_object_new_internal (gobject.c:1805)
      ==19044==    by 0x48C4113: g_object_new_valist (gobject.c:2128)
      ==19044==    by 0x48C443B: g_object_new (gobject.c:1648)
      ==19044==    by 0x7451CF7: g_vfs_icon_new (gvfsicon.c:178)
      ==19044==    by 0x7451D47: g_vfs_icon_from_tokens (gvfsicon.c:268)
      ==19044==    by 0x4E8BA45: g_icon_new_from_tokens (gicon.c:381)
      ==19044==    by 0x4E8BA45: g_icon_new_for_string (gicon.c:462)
      ==19044==    by 0x7450C5F: _g_dbus_get_file_attribute (gvfsdaemonprotocol.c:300)
      ==19044==    by 0x7450D26: _g_dbus_get_file_info (gvfsdaemonprotocol.c:340)
      ==19044==    by 0x867A74C: g_daemon_file_query_info (gdaemonfile.c:830)
      ==19044==    by 0x486078D: get_preview_thumbnail (gnome-desktop-thumbnail.c:960)
      ==19044==    by 0x486078D: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==
      ==19044== Invalid read of size 8
      ==19044==    at 0x48607F0: get_preview_thumbnail (gnome-desktop-thumbnail.c:978)
      ==19044==    by 0x48607F0: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Address 0xaaaaaaaaaaaaaaaa is not stack'd, malloc'd or (recently) free'd
      
      Root-caused by "Just Me"
      
      Closes: #87
      43dac410
    • Bastien Nocera's avatar
      thumbnail: Fix use-after-free when getting a preview icon · e629e46a
      Bastien Nocera authored
      g_file_info_get_attribute_object() is transfer none, so when getting a
      preview GIcon from a gvfs-backed file that supports it, we need to
      reference the preview otherwise we might crash.
      
      ==19044== Invalid read of size 8
      ==19044==    at 0x48607E7: get_preview_thumbnail (gnome-desktop-thumbnail.c:978)
      ==19044==    by 0x48607E7: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Address 0x700f750 is 0 bytes inside a block of size 40 free'd
      ==19044==    at 0x4839A0C: free (vg_replace_malloc.c:530)
      ==19044==    by 0x48DFCD0: g_type_free_instance (gtype.c:1943)
      ==19044==    by 0x4E7F7B5: _g_file_attribute_value_clear (gfileattribute.c:176)
      ==19044==    by 0x4E83D46: g_file_info_finalize (gfileinfo.c:327)
      ==19044==    by 0x48C1C61: g_object_unref (gobject.c:3346)
      ==19044==    by 0x48607D5: get_preview_thumbnail (gnome-desktop-thumbnail.c:974)
      ==19044==    by 0x48607D5: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Block was alloc'd at
      ==19044==    at 0x483880B: malloc (vg_replace_malloc.c:299)
      ==19044==    by 0x4B54F20: g_malloc (gmem.c:99)
      ==19044==    by 0x4B6C3C2: g_slice_alloc (gslice.c:1024)
      ==19044==    by 0x4B6C9F8: g_slice_alloc0 (gslice.c:1050)
      ==19044==    by 0x48DFA33: g_type_create_instance (gtype.c:1846)
      ==19044==    by 0x48C2397: g_object_new_internal (gobject.c:1805)
      ==19044==    by 0x48C4113: g_object_new_valist (gobject.c:2128)
      ==19044==    by 0x48C443B: g_object_new (gobject.c:1648)
      ==19044==    by 0x7451CF7: g_vfs_icon_new (gvfsicon.c:178)
      ==19044==    by 0x7451D47: g_vfs_icon_from_tokens (gvfsicon.c:268)
      ==19044==    by 0x4E8BA45: g_icon_new_from_tokens (gicon.c:381)
      ==19044==    by 0x4E8BA45: g_icon_new_for_string (gicon.c:462)
      ==19044==    by 0x7450C5F: _g_dbus_get_file_attribute (gvfsdaemonprotocol.c:300)
      ==19044==    by 0x7450D26: _g_dbus_get_file_info (gvfsdaemonprotocol.c:340)
      ==19044==    by 0x867A74C: g_daemon_file_query_info (gdaemonfile.c:830)
      ==19044==    by 0x486078D: get_preview_thumbnail (gnome-desktop-thumbnail.c:960)
      ==19044==    by 0x486078D: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==
      ==19044== Invalid read of size 8
      ==19044==    at 0x48607F0: get_preview_thumbnail (gnome-desktop-thumbnail.c:978)
      ==19044==    by 0x48607F0: gnome_desktop_thumbnail_factory_generate_thumbnail (gnome-desktop-thumbnail.c:1058)
      ==19044==    by 0x401181: main (test-desktop-thumbnail.c:51)
      ==19044==  Address 0xaaaaaaaaaaaaaaaa is not stack'd, malloc'd or (recently) free'd
      
      Root-caused by "Just Me"
      
      Closes: #87
      e629e46a
    • Bastien Nocera's avatar
      README: Mention bwrap non-optional requirement · c244f43b
      Bastien Nocera authored
      Closes: #82
      c244f43b
  13. 10 Dec, 2018 1 commit
  14. 17 Nov, 2018 1 commit
  15. 15 Nov, 2018 2 commits
    • Florian Müllner's avatar
      wall-clock: Use LC_TIME for strftime format string translations · 0f3de28f
      Florian Müllner authored
      In order to handle the clock's various display setting correctly for
      different locales, we mark strftime format strings for translation.
      However those translations are looked up according to the locale
      defined by LC_MESSAGES, while the conversion characters themselves
      are resolved according to LC_TIME, with rather odd results when
      mixing locales.
      The correct solution would be to install translations for format
      strings in the LC_TIME catalogue and look them up with dcgettext(),
      but we don't have the infrastructure to do that easily. Work around
      this by adding a helper method that looks up a string in LC_MESSAGES
      using the locale defined by LC_TIME and use that to translate the
      format strings, which has the same result.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=789205
      0f3de28f
    • Michael Catanzaro's avatar
      Prepare release 3.31.2 · 3358b964
      Michael Catanzaro authored
      Also, update the totally-incorrect comment above the libversion string.
      Clearly this isn't libtool versioning as the numbers we use here will be
      literally used for the installed library.
      3358b964