2022-06-29 16:02:05 +08:00
|
|
|
|
# GLib
|
|
|
|
|
|
|
|
|
|
GLib is the low-level core library that forms the basis for projects such
|
|
|
|
|
as GTK and GNOME. It provides data structure handling for C, portability
|
|
|
|
|
wrappers, and interfaces for such runtime functionality as an event loop,
|
|
|
|
|
threads, dynamic loading, and an object system.
|
|
|
|
|
|
|
|
|
|
The official download locations are:
|
|
|
|
|
<https://download.gnome.org/sources/glib>
|
|
|
|
|
|
|
|
|
|
The official web site is:
|
|
|
|
|
<https://www.gtk.org/>
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
See the file '[INSTALL.md](INSTALL.md)'
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
## Supported versions
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
Only the most recent unstable and stable release series are supported. All
|
|
|
|
|
older versions are not supported upstream and may contain bugs, some of
|
|
|
|
|
which may be exploitable security vulnerabilities.
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
See [SECURITY.md](SECURITY.md) for more details.
|
|
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
|
|
API documentation is available online for GLib for the:
|
|
|
|
|
* [GLib](https://docs.gtk.org/glib/)
|
|
|
|
|
* [GObject](https://docs.gtk.org/gobject/)
|
|
|
|
|
* [GModule](https://docs.gtk.org/gmodule/)
|
|
|
|
|
* [GIO](https://docs.gtk.org/gio/)
|
|
|
|
|
|
|
|
|
|
## Discussion
|
|
|
|
|
|
|
|
|
|
If you have a question about how to use GLib, seek help on [GNOME’s Discourse
|
|
|
|
|
instance](https://discourse.gnome.org/tags/glib). Alternatively, ask a question
|
|
|
|
|
on [StackOverflow and tag it `glib`](https://stackoverflow.com/questions/tagged/glib).
|
|
|
|
|
|
|
|
|
|
## Reporting bugs
|
|
|
|
|
|
|
|
|
|
Bugs should be [reported to the GNOME issue tracking system](https://gitlab.gnome.org/GNOME/glib/issues/new).
|
|
|
|
|
You will need to create an account for yourself. You may also submit bugs by
|
|
|
|
|
e-mail (without an account) by e-mailing <incoming+gnome-glib-658-issue-@gitlab.gnome.org>,
|
|
|
|
|
but this will give you a degraded experience.
|
|
|
|
|
|
|
|
|
|
Bugs are for reporting problems in GLib itself, not for asking questions about
|
|
|
|
|
how to use it. To ask questions, use one of our [discussion forums](#discussion).
|
|
|
|
|
|
|
|
|
|
In bug reports please include:
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
|
|
|
|
* Information about your system. For instance:
|
|
|
|
|
* What operating system and version
|
|
|
|
|
* For Linux, what version of the C library
|
|
|
|
|
* And anything else you think is relevant.
|
|
|
|
|
* How to reproduce the bug.
|
|
|
|
|
* If you can reproduce it with one of the test programs that are built
|
2023-02-15 16:51:32 +08:00
|
|
|
|
in the `tests/` subdirectory, that will be most convenient. Otherwise,
|
2022-06-29 16:02:05 +08:00
|
|
|
|
please include a short test program that exhibits the behavior.
|
|
|
|
|
As a last resort, you can also provide a pointer to a larger piece
|
|
|
|
|
of software that can be downloaded.
|
|
|
|
|
* If the bug was a crash, the exact text that was printed out
|
2023-02-15 16:51:32 +08:00
|
|
|
|
when the crash occurred.
|
2022-06-29 16:02:05 +08:00
|
|
|
|
* Further information such as stack traces may be useful, but
|
|
|
|
|
is not necessary.
|
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
## Contributing to GLib
|
|
|
|
|
|
|
|
|
|
Please follow the [contribution guide](./CONTRIBUTING.md) to know how to
|
|
|
|
|
start contributing to GLib.
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
Patches should be [submitted as merge requests](https://gitlab.gnome.org/GNOME/glib/-/merge_requests/new)
|
|
|
|
|
to gitlab.gnome.org. If the patch fixes an existing issue, please refer to the
|
|
|
|
|
issue in your commit message with the following notation (for issue 123):
|
|
|
|
|
```
|
2022-06-29 16:02:05 +08:00
|
|
|
|
Closes: #123
|
2023-02-15 16:51:32 +08:00
|
|
|
|
```
|
2022-06-29 16:02:05 +08:00
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
Otherwise, create a new merge request that introduces the change. Filing a
|
2022-06-29 16:02:05 +08:00
|
|
|
|
separate issue is not required.
|
|
|
|
|
|
2023-02-15 16:51:32 +08:00
|
|
|
|
## Default branch renamed to `main`
|
|
|
|
|
|
|
|
|
|
The default development branch of GLib has been renamed to `main`. To update
|
|
|
|
|
your local checkout, use:
|
|
|
|
|
```sh
|
|
|
|
|
git checkout master
|
|
|
|
|
git branch -m master main
|
|
|
|
|
git fetch
|
|
|
|
|
git branch --unset-upstream
|
|
|
|
|
git branch -u origin/main
|
|
|
|
|
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
|
|
|
|
|
```
|