<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glib.git/gmodule, branch pgriffis/wip/resolver-https</title>
<subtitle>gitlab.gnome.org: GNOME/glib.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/'/>
<entry>
<title>Distribute cxx test tests/cxx-test.cpp to each module tests directory</title>
<updated>2021-12-14T13:43:03+00:00</updated>
<author>
<name>Emmanuel Fleury</name>
<email>emmanuel.fleury@gmail.com</email>
</author>
<published>2021-12-13T15:06:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=ae345e56c25e5b7452e3ce7c94611e7a71911047'/>
<id>ae345e56c25e5b7452e3ce7c94611e7a71911047</id>
<content type='text'>
tests/cxx-test.cpp is removed and splitted into gio/tests/cxx.cpp,
gmodule/tests/cxx.cpp and gobject/tests/cxx.cpp.

Helps issue #1434
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tests/cxx-test.cpp is removed and splitted into gio/tests/cxx.cpp,
gmodule/tests/cxx.cpp and gobject/tests/cxx.cpp.

Helps issue #1434
</pre>
</div>
</content>
</entry>
<entry>
<title>API: Add g_module_open_full()</title>
<updated>2021-07-21T20:45:51+00:00</updated>
<author>
<name>nitinosiris</name>
<email>nitinwartkar58@gmail.com</email>
</author>
<published>2021-06-23T18:03:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=ee589aaa3206041bf0a5b7dbbc487208c1a48530'/>
<id>ee589aaa3206041bf0a5b7dbbc487208c1a48530</id>
<content type='text'>
g_module_open_full() is wrapper around g_module_open() function
which returns a GError in case of failure.

Closes #203
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
g_module_open_full() is wrapper around g_module_open() function
which returns a GError in case of failure.

Closes #203
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: Update various external links to use HEAD instead of master</title>
<updated>2021-06-07T13:03:48+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>pwithnall@endlessos.org</email>
</author>
<published>2021-06-07T12:16:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=1a43d950b41eafb0146fd474e5d3039fe5dc2cf2'/>
<id>1a43d950b41eafb0146fd474e5d3039fe5dc2cf2</id>
<content type='text'>
Update several links to allow the remote to use its configured default
branch name, rather than specifying `master` as the default branch name.
This will help avoid breakage if any of these projects rename their
default branch in the future.

Fix a few of the links where they were hitting redirects or had moved.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;

Helps: #2348
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update several links to allow the remote to use its configured default
branch name, rather than specifying `master` as the default branch name.
This will help avoid breakage if any of these projects rename their
default branch in the future.

Fix a few of the links where they were hitting redirects or had moved.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;

Helps: #2348
</pre>
</div>
</content>
</entry>
<entry>
<title>gmodule: Add locking around dlerror() for some libc implementations</title>
<updated>2021-05-28T08:58:21+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>pwithnall@endlessos.org</email>
</author>
<published>2021-05-27T12:46:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=483843c282c62ab8c81113578fd8163bcec238e1'/>
<id>483843c282c62ab8c81113578fd8163bcec238e1</id>
<content type='text'>
Specifically, for uclibc at the moment. Other implementations may need
locking, but I haven’t checked any aside from uclibc-ng and glibc.

POSIX.1-2001 specifies that `dlerror()` is not thread-safe, but the
glibc (and likely other libc) implementation is.

Issue #399 was originally reported about eglibc, but that project has
since died and been merged back into glibc. So that’s one less thing to
worry about.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;

Fixes: #399
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically, for uclibc at the moment. Other implementations may need
locking, but I haven’t checked any aside from uclibc-ng and glibc.

POSIX.1-2001 specifies that `dlerror()` is not thread-safe, but the
glibc (and likely other libc) implementation is.

Issue #399 was originally reported about eglibc, but that project has
since died and been merged back into glibc. So that’s one less thing to
worry about.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;

Fixes: #399
</pre>
</div>
</content>
</entry>
<entry>
<title>gmodule: Add some missing consts</title>
<updated>2021-05-27T12:46:28+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>pwithnall@endlessos.org</email>
</author>
<published>2021-05-27T12:35:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=73a78f7470c2057fcd9bb1a1418444459ca145e4'/>
<id>73a78f7470c2057fcd9bb1a1418444459ca145e4</id>
<content type='text'>
Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix g_module_symbol() under Windows sometimes not succeeding</title>
<updated>2020-09-30T07:57:40+00:00</updated>
<author>
<name>Christoph Reiter</name>
<email>reiter.christoph@gmail.com</email>
</author>
<published>2020-09-29T16:41:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=6a903ff6d79d967675fb6355360ccb60e7d4c826'/>
<id>6a903ff6d79d967675fb6355360ccb60e7d4c826</id>
<content type='text'>
g_module_symbol() internally calls CreateToolhelp32Snapshot() which
in some circumstances returns ERROR_BAD_LENGTH and according to the docs
should lead to CreateToolhelp32Snapshot() being retried by the caller.

This retry logic was missing and for example led to g_module_symbol()
not succeeding if another thread happened to call the wrong function
at the wrong time.

This got noticed in the g-i build of gtk4 where g-i would call g_module_symbol()
on all gtk4 _get_type symbols and while inspecting the properties gtk4 would
spawn a thread calling SHGetSpecialFolderLocation() somewhere down the line.
During the call to SHGetSpecialFolderLocation() CreateToolhelp32Snapshot() would
return with ERROR_BAD_LENGTH for a short period of time and make g_module_symbol()
fail, which lead to "Invalid GType function" errors in g-i.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3213
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
g_module_symbol() internally calls CreateToolhelp32Snapshot() which
in some circumstances returns ERROR_BAD_LENGTH and according to the docs
should lead to CreateToolhelp32Snapshot() being retried by the caller.

This retry logic was missing and for example led to g_module_symbol()
not succeeding if another thread happened to call the wrong function
at the wrong time.

This got noticed in the g-i build of gtk4 where g-i would call g_module_symbol()
on all gtk4 _get_type symbols and while inspecting the properties gtk4 would
spawn a thread calling SHGetSpecialFolderLocation() somewhere down the line.
During the call to SHGetSpecialFolderLocation() CreateToolhelp32Snapshot() would
return with ERROR_BAD_LENGTH for a short period of time and make g_module_symbol()
fail, which lead to "Invalid GType function" errors in g-i.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3213
</pre>
</div>
</content>
</entry>
<entry>
<title>tree: Fix various typos and outdated terminology</title>
<updated>2020-06-12T14:01:08+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2020-06-12T13:02:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=00bfb3ab4479fd3796e5c292fce7088209702d10'/>
<id>00bfb3ab4479fd3796e5c292fce7088209702d10</id>
<content type='text'>
This was mostly machine generated with the following command:
```
codespell \
    --builtin clear,rare,usage \
    --skip './po/*' --skip './.git/*' --skip './NEWS*' \
    --write-changes .
```
using the latest git version of `codespell` as per [these
instructions](https://github.com/codespell-project/codespell#user-content-updating).

Then I manually checked each change using `git add -p`, made a few
manual fixups and dropped a load of incorrect changes.

There are still some outdated or loaded terms used in GLib, mostly to do
with git branch terminology. They will need to be changed later as part
of a wider migration of git terminology.

If I’ve missed anything, please file an issue!

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was mostly machine generated with the following command:
```
codespell \
    --builtin clear,rare,usage \
    --skip './po/*' --skip './.git/*' --skip './NEWS*' \
    --write-changes .
```
using the latest git version of `codespell` as per [these
instructions](https://github.com/codespell-project/codespell#user-content-updating).

Then I manually checked each change using `git add -p`, made a few
manual fixups and dropped a load of incorrect changes.

There are still some outdated or loaded terms used in GLib, mostly to do
with git branch terminology. They will need to be changed later as part
of a wider migration of git terminology.

If I’ve missed anything, please file an issue!

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Silence clang errors about -Wformat-nonliteral due to missing intermediate attributes</title>
<updated>2020-04-27T13:26:04+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2020-04-04T21:06:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=6cae01c2f53ce0162043efb69d93678e9c20d733'/>
<id>6cae01c2f53ce0162043efb69d93678e9c20d733</id>
<content type='text'>
By default, meson builds glib with -Werror=format=2, which
implies -Werror=format-nonliteral. With these flags, clang errors
out on e.g. the g_message_win32_error function, due to "format
string is not a string literal". This function takes a format
string, and passes the va_list of the arguments onwards to
g_strdup_vprintf, which is annotated with printf attributes.

When passing a string+va_list to another function, GCC doesn't warn
with -Wformat-nonliteral. Clang however does warn, unless the
functions themselves (g_message_win32_error and set_error) are decorated
with similar printf attributes (to force the same checks upon the
caller) - see
https://clang.llvm.org/docs/AttributeReference.html#format
for reference.

Adding these attributes revealed one existing mismatched format string
(fixed in the preceding commit).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By default, meson builds glib with -Werror=format=2, which
implies -Werror=format-nonliteral. With these flags, clang errors
out on e.g. the g_message_win32_error function, due to "format
string is not a string literal". This function takes a format
string, and passes the va_list of the arguments onwards to
g_strdup_vprintf, which is annotated with printf attributes.

When passing a string+va_list to another function, GCC doesn't warn
with -Wformat-nonliteral. Clang however does warn, unless the
functions themselves (g_message_win32_error and set_error) are decorated
with similar printf attributes (to force the same checks upon the
caller) - see
https://clang.llvm.org/docs/AttributeReference.html#format
for reference.

Adding these attributes revealed one existing mismatched format string
(fixed in the preceding commit).
</pre>
</div>
</content>
</entry>
<entry>
<title>Meson: Override every dependency glib provides</title>
<updated>2020-04-05T04:34:04+00:00</updated>
<author>
<name>Xavier Claessens</name>
<email>xavier.claessens@collabora.com</email>
</author>
<published>2020-04-05T04:34:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=10280deebdb6bfa96e24325548c15a6085d6bdf2'/>
<id>10280deebdb6bfa96e24325548c15a6085d6bdf2</id>
<content type='text'>
Meson 0.54.0 added a new method meson.override_dependency() that must be
used to ensure dependency consistency. This patch ensures a project that
depends on glib will never link to a mix of system and subproject
libraries. It would happen in such cases:

The system has glib 2.40 installed, and a project does:
dependency('glib-2.0', version: '&gt;=2.60',
  fallback: ['glib', 'glib_dep'])
dependency('gobject-2.0')

The first call will configure glib subproject because the system libglib
is too old, but the 2nd call will return system libgobject.

By overriding 'gobject-2.0' dependency while configuring glib subproject
during the first call, meson knows that on the 2nd call it must return
the subproject dependency instead of system dependency.

This also has the nice side effect that with Meson &gt;0.54.0 an
application depending on glib can declare the fallback without knowing
the dependency variable name: dependency('glib-2.0', fallback: 'glib').
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Meson 0.54.0 added a new method meson.override_dependency() that must be
used to ensure dependency consistency. This patch ensures a project that
depends on glib will never link to a mix of system and subproject
libraries. It would happen in such cases:

The system has glib 2.40 installed, and a project does:
dependency('glib-2.0', version: '&gt;=2.60',
  fallback: ['glib', 'glib_dep'])
dependency('gobject-2.0')

The first call will configure glib subproject because the system libglib
is too old, but the 2nd call will return system libgobject.

By overriding 'gobject-2.0' dependency while configuring glib subproject
during the first call, meson knows that on the 2nd call it must return
the subproject dependency instead of system dependency.

This also has the nice side effect that with Meson &gt;0.54.0 an
application depending on glib can declare the fallback without knowing
the dependency variable name: dependency('glib-2.0', fallback: 'glib').
</pre>
</div>
</content>
</entry>
<entry>
<title>gmodule: change _g_module_close to only take a handle.</title>
<updated>2019-12-12T16:15:05+00:00</updated>
<author>
<name>Patrick Welche</name>
<email>prlw1@cam.ac.uk</email>
</author>
<published>2018-09-14T09:32:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=62f6c80e63725405f7d753d475dd25d2460dd547'/>
<id>62f6c80e63725405f7d753d475dd25d2460dd547</id>
<content type='text'>
Since is_unref |= 1, the second argument, gboolean is_unref, has had
no effect.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since is_unref |= 1, the second argument, gboolean is_unref, has had
no effect.
</pre>
</div>
</content>
</entry>
</feed>
