Commit Graph

25649 Commits

Author SHA1 Message Date
Ignacio Casal Quinteiro
08017c0d6c giowin32: use gint64 and _lseeki64
off_t on windows is 32bit which means that it will not be able
to handle big offsets
2022-01-20 12:22:18 +01:00
Ignacio Casal Quinteiro
1848905a99 credentials: support the local peerpid on macos
xucred does not provide the peer pid id, but this can be fetched
from the socket LOCAL_PEERPID option. Note that we only support
it when creating the credentials from a local socket, if
the credential comes from a message over a socket the peer
pid id will not be set and -1 will be returned when trying
to get the pid for the credential.
2022-01-20 10:52:01 +01:00
Simon McVittie
cc2b28b68c Merge branch 'dbus-external-sid' into 'main'
gdbus: make client work with EXTERNAL on Windows

See merge request GNOME/glib!2429
2022-01-19 18:38:20 +00:00
Philip Withnall
ce45b88b90 Merge branch 'unicode_caseconv_tests' into 'main'
Merge test/unicode-caseconv.c into glib/tests/unicode.c

See merge request GNOME/glib!2432
2022-01-19 15:54:19 +00:00
Emmanuel Fleury
b9f07a458a Merge test/unicode-caseconc.c into glib/tests/unicode.c
Related to issue #1434
2022-01-19 16:21:01 +01:00
Philip Withnall
90b40ee3d2 Merge branch '2580-spawn-close-range-errors' into 'main'
gspawn: Report errors with closing file descriptors between fork/exec

Closes #2580

See merge request GNOME/glib!2435
2022-01-19 12:43:57 +00:00
Philip Withnall
5483816bac gunicollate: Document that g_utf8_collate() can’t compare everything
There is not a total collation order defined over all Unicode
codepoints, so sometimes `g_utf8_collate()` can’t return a useful
result. Document that.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #517
2022-01-19 12:38:37 +00:00
Philip Withnall
ce04a12404 gspawn: Report errors with closing file descriptors between fork/exec
If a seccomp policy is set up incorrectly so that it returns `EPERM` for
`close_range()` rather than `ENOSYS` due to it not being recognised, no
error would previously be reported from GLib, but some file descriptors
wouldn’t be closed, and that would cause a hung zombie process. The
zombie process would be waiting for one half of a socket to be closed.

Fix that by correctly propagating errors from `close_range()` back to the
parent process so they can be reported correctly.

Distributions which aren’t yet carrying the Docker fix to correctly
return `ENOSYS` from unrecognised syscalls may want to temporarily carry
an additional patch to fall back to `safe_fdwalk()` if `close_range()`
fails with `EPERM`. This change will not be accepted upstream as `EPERM`
is not the right error for `close_range()` to be returning.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2580
2022-01-19 12:01:08 +00:00
Philip Withnall
8ec5dca0fe Merge branch '2564-zerowidth-jungseong' into 'main'
guniprop: Set jungseong and jongseong points to zero-width for Old Korean

Closes #2564

See merge request GNOME/glib!2418
2022-01-19 11:20:35 +00:00
Philip Withnall
3be0fc867e Merge branch 'wip/hash-table-from' into 'main'
ghash: Add g_hash_table_new_similar

See merge request GNOME/glib!2405
2022-01-19 11:19:07 +00:00
Kukuh Syafaat
c4b055c7a4 Update Indonesian translation 2022-01-19 09:35:10 +00:00
Philip Withnall
d83c7b8699 Merge branch 'ascii-formatd-libc-dep' into 'main'
Improve g_ascii_formatd docs and preconditions

See merge request GNOME/glib!2440
2022-01-19 00:14:55 +00:00
Matthias Clasen
6749b343fe Improve g_ascii_formatd docs and preconditions 2022-01-19 00:14:55 +00:00
Jonas Ådahl
283d9e0c15 ghash: Add g_hash_table_new_similar()
This function creates a new hash table, but inherits the functions used
for the hash, comparison, and key/value memory management functions from
another hash table.

The primary use case is to implement a behaviour where you maintain a
hash table by regenerating it, letting the values not migrated be freed.
See the following pseudo code:

```
GHashTable *ht;

init(GList *resources) {
  ht = g_hash_table_new (g_str_hash, g_str_equal, g_free, g_free);
  for (r in resources)
    g_hash_table_insert (ht, strdup (resource_get_key (r)), create_value (r));
}

update(GList *resources) {
  GHashTable *new_ht = g_hash_table_new_similar (ht);

  for (r in resources) {
    if (g_hash_table_steal_extended (ht, resource_get_key (r), &key, &value))
      g_hash_table_insert (new_ht, key, value);
    else
      g_hash_table_insert (new_ht, strdup (resource_get_key (r)), create_value (r));
  }
  g_hash_table_unref (ht);
  ht = new_ht;
}
```
2022-01-18 22:19:55 +01:00
Marc-André Lureau
7d7b52edbd gio: make client connection work with EXTERNAL on win32
D-Bus reference implementation doesn't require more than the claimed
process SID as part of the AUTH initial data for EXTERNAL.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-01-18 22:09:03 +04:00
Marc-André Lureau
e66b9489b7 gio: re-use win32 SID helpers
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-01-18 22:08:16 +04:00
Philip Withnall
185e0565e0 Merge branch 'fix-cxx-test-muslc' into 'main'
glib/tests: Fix NULL reference on >= C++11

Closes #2582

See merge request GNOME/glib!2439
2022-01-18 16:34:50 +00:00
Pablo Correa Gómez
b8c4a3e13b
glib/tests: Fix NULL reference on >= C++11
Fixes #2582
2022-01-18 16:51:15 +01:00
Philip Withnall
af982b1cc1 Merge branch 'docs-improvements-i' into 'main'
docs: Improve docs for gdbusutils.c

See merge request GNOME/glib!2414
2022-01-18 14:43:21 +00:00
Maximiliano Sandoval R
525f20a247 docs: Replace broken link 2022-01-18 13:48:43 +00:00
Maximiliano Sandoval R
7118c16347 docs: Improve docs for gdbusutils.c 2022-01-18 13:48:43 +00:00
Marc-André Lureau
d4a66baadb gio: add win32 SID helper functions
The code is based from #1351 patch and existing similar code in
gdbusprivate.c. The next commit will replace that existing code with
those helpers.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-01-18 17:40:02 +04:00
Sebastian Dröge
3b3022dff1 Merge branch 'doc_sync_signals' into 'main'
Make clear in doc that signals are emitted synchroniously

See merge request GNOME/glib!2423
2022-01-18 08:53:21 +00:00
Alexander Schwinn
28d833a075 Make clear in doc that signals are emitted synchroniously 2022-01-18 08:53:20 +00:00
Philip Withnall
6d2dc3f8c2 Merge branch 'remove_paramspec_test' into 'main'
Merge tests/gobject/paramspec-test.c into gobject/tests/param.c

See merge request GNOME/glib!2431
2022-01-17 22:25:28 +00:00
Philip Withnall
eefba53845 Merge branch 'tests_unicode-collate' into 'main'
Remove a disabled test case that was covered by glib/tests/collate.c

See merge request GNOME/glib!2434
2022-01-17 21:03:09 +00:00
Emmanuel Fleury
66ebcbced4 Merge tests/gobject/paramspec-test.c into gobject/tests/param.c
Helps issue #1434
2022-01-17 20:43:27 +00:00
Philip Withnall
aaa89274ad Merge branch 'remove_gvalue_test' into 'main'
Merge tests/gobject/gvalue-test.c with gobject/tests/value.c

See merge request GNOME/glib!2428
2022-01-17 20:40:15 +00:00
Philip Withnall
b828f1001b Merge branch 'illumos-timezone' into 'main'
Fix GDateTime timezone resolution for Illumos

Closes #2550

See merge request GNOME/glib!2409
2022-01-17 19:28:07 +00:00
Sebastian Dröge
36bd5d0a98 Merge branch '2579-install-paths' into 'main'
docs: Update some outdated paths in INSTALL.in

Closes #2579

See merge request GNOME/glib!2436
2022-01-17 17:49:01 +00:00
Philip Withnall
b824a16fce docs: Update some outdated paths in INSTALL.in
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2579
2022-01-17 16:21:22 +00:00
Philip Withnall
ea18fcff58 Merge branch 'mwleeds/fix-codegen-typo' into 'main'
gdbus-codegen: Fix a typo in a comment

See merge request GNOME/glib!2426
2022-01-17 15:38:50 +00:00
Yuri Chornoivan
af1ae95292 Update Ukrainian translation 2022-01-17 15:09:12 +00:00
Hugo Carvalho
8989aae2d0 Update Portuguese translation 2022-01-17 14:38:26 +00:00
Philip Withnall
a7a5b24f86 Merge branch 'pgriffis/gtlscertificate-password' into 'main'
gtlscertificate: Add ability to load PKCS#12 encrypted files

See merge request GNOME/glib!2239
2022-01-17 11:21:18 +00:00
Aurimas Černius
11f591dc15 Updated Lithuanian translation 2022-01-16 21:30:36 +02:00
Emmanuel Fleury
cddce179f5 Remove a disabled test case that was covered by glib/tests/collate.c
Related to issue #1434
2022-01-15 13:44:15 +01:00
Tim Mooney
8cc71d35d0 Fix GDateTime timezone resolution for Illumos
Closes #2550
2022-01-14 22:39:56 -06:00
Nirbheek Chauhan
41d80f5029 Merge branch 'wip/pwithnall/2565-array-preprocessor' into 'main'
tests: Fix compilation failure on msys2-mingw64

Closes #2565

See merge request GNOME/glib!2419
2022-01-14 14:47:53 +00:00
Marek Černocký
660b6f6022 Updated Czech translation 2022-01-14 12:04:11 +01:00
Boyuan Yang
4ee591f5f2 Update Chinese (China) translation 2022-01-13 20:27:46 +00:00
Emmanuel Fleury
86fedcfb93 Merge tests/gobject/gvalue-test.c with gobject/tests/value.c
Helps issue #1434
2022-01-12 21:51:05 +01:00
Phaedrus Leeds
6342922d27 gdbus-codegen: Fix a typo in a comment 2022-01-11 20:03:13 -08:00
Emmanuele Bassi
dc8fa924ae Merge branch 'remove-btrfs-optimization' into 'main'
gfileutils: Remove outdated BTRFS fsync optimization from set_contents

See merge request GNOME/glib!2425
2022-01-11 18:58:13 +00:00
Sebastian Keller
d9e001e2cd gfileutils: Remove outdated BTRFS fsync optimization from set_contents
This code was skipping fsync on BTRFS because of an old guarantee about
the overwrite-by-rename behavior that no longer holds true. This has
been confirmed by the BTRFS developers to no longer be guaranteed since
Kernel 3.17 (August 2014), but it was guaranteed when this optimization
was first introduced in 2010.

This could result in empty files after crashes in applications using
g_file_set_contents(). Most prominently this might have been the cause
of dconf settings getting lost on BTRFS after crashes due to the
frequency with which such writes can happen in dconf.

See: https://gitlab.gnome.org/GNOME/dconf/-/issues/73
2022-01-11 19:07:01 +01:00
Patrick Griffis
96ce3feeb9 gtlscertificate: Add ability to load PKCS #12 encrypted files
This depends on the GTlsBackend implementing these properties
2022-01-07 11:27:56 -06:00
Sebastian Dröge
ae0ec9b753 Merge branch 'testutils-docs' into 'main'
gtestutils: Fix minor typos in the g_test_get_filename() docs

See merge request GNOME/glib!2417
2022-01-07 10:52:47 +00:00
Simon McVittie
c651ea0453 testutils: Defer global cleanup until we really exit
Some test suites try to call g_test_build_filename() after g_test_run()
has returned. In the installed-tests use-case where G_TEST_BUILDDIR and
G_TEST_SRCDIR are unset, that call uses test_argv0_dirname, which
is freed in test_cleanup(). Defer test_cleanup() using atexit() so it
isn't freed until after we return from main().

Resolves: https://gitlab.gnome.org/GNOME/glib/-/issues/2563
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-01-06 15:41:13 +00:00
Philip Withnall
233611fe42 tests: Fix compilation failure on msys2-mingw64
This is a follow-up from commit 995823b9d9, which added the condition
```
```
to the array test. On most platforms, both of those symbols are numeric
literals, but on 64-bit Windows `G_MAXSIZE` includes some widening
casts, which means it can’t be used in a preprocessor condition.

We don’t expose an appropriate symbol in `glibconfig.h` which could be
used instead, but the standard `*_WIDTH` symbols from `limits.h` will be
identical and can be used instead.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2565
2022-01-06 13:22:23 +00:00
Philip Withnall
84202a2ef0 guniprop: Set jungseong and jongseong points to zero-width for Old Korean
This mirrors what `wcwidth()` from glibc does as of June 2020 (commit
6e540caa2).

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2564
2022-01-06 13:11:24 +00:00