Commit Graph

18318 Commits

Author SHA1 Message Date
Philip Withnall
2b4c962541 Merge branch 'wip/oholy/gio-tool-arguments' into 'master'
Fix some inconsistencies regarding arguments in gio-tool

See merge request GNOME/glib!18
2018-05-28 13:40:29 +00:00
Xavier Claessens
3145d88f4b Add mingw64 cross build CI
Fixes #1387.
2018-05-28 09:22:55 -04:00
Xavier Claessens
707106c7a5 Fix Windows build errors in valgrind.h
valgrind.h is a verbatim copy taken from Valgrind project. Previously
that file had local changes that got dropped by last update. To avoid
regressing again, do not edit valgrind.h anymore and instead add a
gvalgrind.h wrapper that gets included instead.

This fix 2 errors:
- uintptr_t is not defined when including valgrind.h on mingw.
- MSVC compiler is not supported on amd64-Win64 platform.
2018-05-28 09:22:55 -04:00
Xavier Claessens
f9dc091e37 Revert "glib/valgrind.h: Disable inline ASM on MSVC x64 builds"
Better not modify copy/paster files otherwise this will regress again
later. It's better to not include valgrind.h at all when using MSVC.

This reverts commit bbcce75d4e.
2018-05-28 09:22:55 -04:00
Xavier Claessens
2d4b05bbf8 Revert "Fix build error when compiling with mingw"
This reverts commit 00178f8c8e.
2018-05-28 09:22:55 -04:00
Xavier Claessens
f83493f83d Add Android CI
This adds to the CI a cross build for Android NDK r16 API 21 (because
thats what GStreamer currently use) for arm64.

GNU iconv must be built manually into our docker image because Android
NDK doesn't seems to ship it. The latest NDK r17 API 28 has iconv.h but
iconv_open() symbol isn't found by the linker. Looks like broken NDK.

libffi also needs to be built manually because the meson subproject
doesn't support building for Android platform. It needs a recent RC
release because latest stable release is 4 years old and fails to
build.

Fixes #1385.
2018-05-28 09:17:41 -04:00
Xavier Claessens
5d0a99105d Meson: Always fallback to proxy-libintl subproject
An implementation of gettext is required, but it's not always needed
e.g. for CI builds.

https://bugzilla.gnome.org/show_bug.cgi?id=796264
2018-05-28 09:15:45 -04:00
Philip Withnall
ed4ff31567 Merge branch '1305-gtester-sense' into 'master'
gtester: fix test result in gtester XML report

Closes #1305

See merge request GNOME/glib!34
2018-05-28 13:11:19 +00:00
Sven Neumann
ac0999a1cf gtester: fix test result in gtester XML report
This was accidentally broken with the changes done for
https://bugzilla.gnome.org/show_bug.cgi?id=790934
2018-05-28 13:45:50 +01:00
Ondrej Holy
9ac1ba56a3 gio-tool: Fix GMountOperation leaks
GMountOperation is used on various places, but it is not properly unrefed.
Let's fix the leaks.
2018-05-28 14:44:07 +02:00
Ondrej Holy
fe9c6192c4 gio-tool: Add support for stopping drives
There is not currently an option for stopping drives, however it
would be really useful for testing. Let's add that possibility
for "gio mount".
2018-05-28 14:44:07 +02:00
Christoph Reiter
6fbade04ab Merge branch '559-order-build-lists' into 'master'
build: Alphabetically order lists of functions and headers to find

Closes #559

See merge request GNOME/glib!32
2018-05-28 11:54:43 +00:00
Ondrej Holy
2cb2a617f1 gio-tool: Print help if no arguments are given
Help is usually printed from tools if no arguments are given and there
is not default action. However "gio mount" and "gio trash" just silently
return. Let's print "No locations given" error and show help consistently.
2018-05-28 13:50:55 +02:00
Ondrej Holy
bc365c9b4e gio-tool: Use "…" consistently
"gio help COMMAND" shows some arguments with "..." and some with "…",
which looks weird, e.g.:

$ gio help mount
gio mount [OPTION…] [LOCATION...]

Let's use "…" consitently.
2018-05-28 13:50:55 +02:00
Philip Withnall
66187c4c3e Merge branch 'dist-subprojects' into 'master'
build: Add missing subprojects/ to archive. Fixes #1295

Closes #1295

See merge request GNOME/glib!30
2018-05-28 11:47:17 +00:00
Philip Withnall
ab76d34ad7 build: Alphabetically order lists of functions and headers to find
This might make a repeat of
https://gitlab.gnome.org/GNOME/glib/issues/559 a little harder in
future.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2018-05-28 12:03:32 +01:00
Kouhei Sutou
e8e9dbe843 build: Add missing subprojects/ to archive. Fixes #1295 2018-05-28 12:45:34 +02:00
Philip Withnall
b84e0d1647 Merge branch 'meson-remove-duplicate-checks' into 'master'
meson: remove duplicate checks for gmtime_r and termios.h See #559

See merge request GNOME/glib!27
2018-05-28 10:38:03 +00:00
Philip Withnall
e201386143 Merge branch 'win32-rc-def-soname' into 'master'
meson/win32: set LT_CURRENT_MINUS_AGE, it's used by the .rc.in files

See merge request GNOME/glib!26
2018-05-28 10:29:32 +00:00
Philip Withnall
0c624379aa Merge branch 'msvc-force-codeset' into 'master'
msvc: set the execution and source encoding to utf-8. Fixes #1294

Closes #1294

See merge request GNOME/glib!25
2018-05-28 10:22:00 +00:00
Philip Withnall
a431f4fe3e Merge branch 'win32-usleep-ceil' into 'master'
g_usleep: round up the next millisecond on Windows. See #1371

See merge request GNOME/glib!24
2018-05-28 10:18:28 +00:00
Philip Withnall
17d278e1d3 Merge branch 'win32-gcond-wait-until-at-least' into 'master'
win32: make g_cond_wait_until() wait at least until end_time before returning…

See merge request GNOME/glib!21
2018-05-28 10:13:10 +00:00
Philip Withnall
dc4e63930f gio: Fix some typos in the documentation
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2018-05-28 10:26:06 +01:00
Philip Withnall
2548ea7f66 Merge branch 'lrn/issue-1240' into 'master'
W32: Make _g_win32_get_system_data_dirs() inline available in C++

Closes #1240

See merge request GNOME/glib!28
2018-05-28 09:00:14 +00:00
Руслан Ижбулатов
4227770af6 W32: Make _g_win32_get_system_data_dirs() inline available in C++
This way g_get_system_data_dirs() works the same way in C and C++.

https://bugzilla.gnome.org/show_bug.cgi?id=777501

Closes #1240
2018-05-28 08:41:11 +00:00
Christoph Reiter
f6c5090b82 meson: remove duplicate checks for gmtime_r and termios.h See #559
They are in the list twice
2018-05-28 10:01:06 +02:00
Christoph Reiter
310c5301c6 meson/win32: set LT_CURRENT_MINUS_AGE, it's used by the .rc.in files
This fixes the various warnings during meson configure on Windows about
LT_CURRENT_MINUS_AGE not being present in the config data.
2018-05-27 21:23:48 +02:00
Christoph Reiter
947b585ca6 msvc: set the execution and source encoding to utf-8. Fixes #1294
gcc defaults to utf-8 for both (see -fexec-charset and -finput-charset in the
gcc man page) so we should use it with msvc as well.

msvc by default uses the locale encoding unless there is a BOM, see
https://msdn.microsoft.com/en-us/library/mt708821.aspx
2018-05-27 20:54:37 +02:00
Xavier Claessens
ef4d960d2c Merge branch 'msvc-glib-tests' into 'master'
msvc: build the glib tests and ignore the test outcome

See merge request GNOME/glib!22
2018-05-27 11:45:27 +00:00
Christoph Reiter
583fb1a397 win32: make g_cond_wait_until() wait at least until end_time before returning with a timeout. See #1371
The tests in test_async_queue_timed() assume that g_async_queue_timeout_pop()
and in turn g_cond_wait_until() wait at least until end_time
before returning, i.e. calling g_get_monotonic_time() after the timeout should result
in a value equal or larger than the timeout end time.

For the win32 implementation of g_cond_wait_until() this isn't the case which
makes those tests fail.

There are three reasons why the function returns early:

1) The underlying API works with milliseconds and the timeout gets rounded
   down, resulting in a too small timeout value.
2) In case the timeout is too large to be passed to the API it gets limited
   (there is also a bug because it converts INFINITE to milliseconds while
   they already are, but using INFINITE would be wrong as well, as passing
   a large timeout is not the same as blocking forever really)
3) Even with the rounding changed the underlying API still returns a bit early
   sometimes on my machine (relative to g_get_monotonic_time())

This changes the implementation to round up to the next millisecond (fixing 1)
and to wait again in case a timeout occurs but the end time hasn't been
reached yet (fixing 2 and 3).

This makes the test_async_queue_timed() tests pass.

https://bugzilla.gnome.org/show_bug.cgi?id=795569
2018-05-27 11:09:29 +02:00
Christoph Reiter
01c02ac08b g_usleep: round up the next millisecond on Windows. See #1371
The timer tests expect that a small value for sleep does not result in
no sleep at all. Round up to the next millisecond to bring it more in line
with other platforms.

This fixes the glib/timer tests.

This makes the 'threadtests' time out since that uses small usleeps a lot and
until now didn't wait at all, but now always waits a msec. Reduce the amount
of tests done on Windows to get the runtime down to something reasonable again.

https://bugzilla.gnome.org/show_bug.cgi?id=795569
2018-05-27 09:23:25 +02:00
Christoph Reiter
79af48791a msvc: build the glib tests and ignore the test outcome
This makes the tests build under VS2015/2017.
Since some of them fail, similar to the mingw build, ignore any test errors for now.
2018-05-27 08:14:06 +02:00
Philip Withnall
ab116c3111 Merge branch 'ci-timeout-mult' into 'master'
tests: Increase the timeout of the 'objects2' and 'sequence' tests

Closes #1393

See merge request GNOME/glib!23
2018-05-27 00:21:53 +00:00
Christoph Reiter
5dfdcb372f ci: unify the test timeout multiplier across jobs
Introduce a MESON_TEST_TIMEOUT_MULTIPLIER env var and use it in all test scripts.
2018-05-26 20:19:53 +02:00
Christoph Reiter
e894534314 tests: Increase the timeout of the 'objects2' and 'sequence' tests. Fixes #1393
These two still fail occasionally due to timeouts, so increase it a bit.
2018-05-26 20:19:53 +02:00
Nirbheek Chauhan
545641a8fb glib-compile-resources: Use g_fprintf() instead of fprintf()
G_GSIZE_FORMAT and friends cannot always be used with fprintf(), they
require gnu/C99 implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=796283
2018-05-26 13:16:13 +05:30
Xavier Claessens
00178f8c8e Fix build error when compiling with mingw
uintptr_t must be defined when including valgrind.h, just move it as
last include solves the problem.

https://bugzilla.gnome.org/show_bug.cgi?id=796283
2018-05-26 13:09:56 +05:30
Xavier Claessens
d89c8894a8 gslice: Use g_fprintf() instead of fprintf()
G_GSIZE_FORMAT and friends cannot always be used with fprintf(), they
require gnu/C99 implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=796283
2018-05-26 13:09:56 +05:30
Xavier Claessens
bd61ed4fab Merge branch 'msvc-ci' into 'master'
ci: Add a VS2017 job

See merge request GNOME/glib!2
2018-05-26 01:50:18 +00:00
Philip Withnall
0c1494ca1f Merge branch 'docpriv' into 'master'
doc: Interface for derivable object

See merge request GNOME/glib!6
2018-05-25 20:38:00 +00:00
Pavlo Solntsev
9e62a425bd doc: Interface for derivable object 2018-05-25 12:50:21 -05:00
Philip Withnall
d9df5d72e1 Merge branch '1354-volume-nullable' into 'master'
Resolve "Missing nullable annotation on the return value of gio_volume_get_mount"

Closes #1354

See merge request GNOME/glib!4
2018-05-25 14:15:18 +00:00
Xavier Claessens
ef52658bb6 Merge branch 'macosx-remove-fixme' into 'master'
Meson: Remove FIXME about missing checks for macosx <= 10.3

Closes #1380

See merge request GNOME/glib!11
2018-05-25 14:02:03 +00:00
Xavier Claessens
d64ce3a538 Meson: Remove FIXME about missing checks for macosx <= 10.3
Our minimum requirement is already greater than that, so we don't need
to add checks there. We can always add -Wl,-framework,CoreFoundation
flag.

Fixes #1380.
2018-05-25 09:50:52 -04:00
Philip Withnall
89c6d64a97 Merge branch 'master' into 'master'
macros: Double-cast func for g_autolist to avoid warning

Closes #1382 and #1390

See merge request GNOME/glib!8
2018-05-25 13:13:33 +00:00
Philip Withnall
d981b997ca Merge branch 'wunused' into 'master'
build: Add -Wunused to the set of standard warnings

See merge request GNOME/glib!9
2018-05-25 13:05:09 +00:00
Philip Withnall
170cf5a397 build: Add -Wunused to the set of standard warnings
This may catch problems like #1390 in future.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2018-05-25 13:38:29 +01:00
Jan Alexander Steffens (heftig)
c7d11d3418
macros: Double-cast func for g_autolist to avoid warning
For g_autolist and g_autoslist, the cleanup func was cast to
GDestroyNotify before being passed to g_(s)list_free_full. This cast
provokes GCC 8 to emit a warning if the return type is not void:

    …/gmacros.h:462:99: warning: cast between incompatible function types
    from … to 'void (*)(void *)' [-Wcast-function-type]

Cast to 'void (*)(void)' first, which suppresses the warning as
recommended by the GCC documentation. g_autoptr remains untouched.

Fixes https://gitlab.gnome.org/GNOME/glib/issues/1382
2018-05-25 14:14:40 +02:00
Colin Walters
b41bff1fe9
gmacros: Add G_GNUC_UNUSED for autoptr funcs (notably GLists)
In commit f49a93b207
from bug https://bugzilla.gnome.org/show_bug.cgi?id=791342
we added two new static inline cleanup helpers in case a type was
used inside a list.

These functions will commonly be unused.

In rpm-ostree, we run a build using `CC=clang -Werror=unused` because
it catches `g_autofree char *foo = NULL;` as unused, but GCC doesn't.
When trying to update to F28 with a newer glib, our CI fell over on this.

Mark all of the autocleanups as "maybe unused".
2018-05-25 14:04:58 +02:00
Christoph Reiter
e7259c52ba ci: Add a VS2017 job
Thanks to Xavier Claessens for figuring out what is needed.
2018-05-25 11:44:14 +02:00