···46system, [Hydra](https://hydra.nixos.org/).
4748* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
49-* [Continuous package builds for the NixOS 20.09 release](https://hydra.nixos.org/jobset/nixos/release-20.09)
50* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
51-* [Tests for the NixOS 20.09 release](https://hydra.nixos.org/job/nixos/release-20.09/tested#tabs-constituents)
5253Artifacts successfully built with Hydra are published to cache at
54https://cache.nixos.org/. When successful build and test criteria are
···46system, [Hydra](https://hydra.nixos.org/).
4748* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
49+* [Continuous package builds for the NixOS 21.05 release](https://hydra.nixos.org/jobset/nixos/release-21.05)
50* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
51+* [Tests for the NixOS 21.05 release](https://hydra.nixos.org/job/nixos/release-21.05/tested#tabs-constituents)
5253Artifacts successfully built with Hydra are published to cache at
54https://cache.nixos.org/. When successful build and test criteria are
+19-1
doc/languages-frameworks/gnome.section.md
···89[GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`.
1011-On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` GIO module to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
1213Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`.
1415Some applications will also require `gsettings-desktop-schemas` for things like reading proxy configuration or user interface customization. This dependency is often not mentioned by upstream, you should grep for `org.gnome.desktop` and `org.gnome.system` to see if the schemas are needed.
0000000000000000001617### GdkPixbuf loaders {#ssec-gnome-gdk-pixbuf-loaders}
18
···89[GSettings](https://developer.gnome.org/gio/stable/GSettings.html) API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for `glib-2.0/schemas/gschemas.compiled` files inside the directories of `XDG_DATA_DIRS`.
1011+On Linux, GSettings API is implemented using [dconf](https://wiki.gnome.org/Projects/dconf) backend. You will need to add `dconf` [GIO module](#ssec-gnome-gio-modules) to `GIO_EXTRA_MODULES` variable, otherwise the `memory` backend will be used and the saved settings will not be persistent.
1213Last you will need the dconf database D-Bus service itself. You can enable it using `programs.dconf.enable`.
1415Some applications will also require `gsettings-desktop-schemas` for things like reading proxy configuration or user interface customization. This dependency is often not mentioned by upstream, you should grep for `org.gnome.desktop` and `org.gnome.system` to see if the schemas are needed.
16+17+### GIO modules {#ssec-gnome-gio-modules}
18+19+GLib’s [GIO](https://developer.gnome.org/gio/stable/ch01.html) library supports several [extension points](https://developer.gnome.org/gio/stable/extending-gio.html). Notably, they allow:
20+21+* implementing settings backends (already [mentioned](#ssec-gnome-settings))
22+* adding TLS support
23+* proxy settings
24+* virtual file systems
25+26+The modules are typically installed to `lib/gio/modules/` directory of a package and you need to add them to `GIO_EXTRA_MODULES` if you need any of those features.
27+28+In particular, we recommend:
29+30+* adding `dconf.lib` for any software on Linux that reads [GSettings](#ssec-gnome-settings) (even transitivily through e.g. GTK’s file manager)
31+* adding `glib-networking` for any software that accesses network using GIO or libsoup – glib-networking contains a module that implements TLS support and loads system-wide proxy settings
32+33+To allow software to use various virtual file systems, `gvfs` package can be also added. But that is usually an optional feature so we typically use `gvfs` from the system (e.g. installed globally using NixOS module).
3435### GdkPixbuf loaders {#ssec-gnome-gdk-pixbuf-loaders}
36
···28 else "");
29in stdenv.mkDerivation rec {
30 pname = "signal-desktop";
31- version = "5.4.1"; # Please backport all updates to the stable channel.
32 # All releases have a limited lifetime and "expire" 90 days after the release.
33 # When releases "expire" the application becomes unusable until an update is
34 # applied. The expiration date for the current release can be extracted with:
···3839 src = fetchurl {
40 url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
41- sha256 = "1f1narpqj8gcyi4r574nqm1cbyi3azk1y7d1j300scr51gk74fq6";
42 };
4344 nativeBuildInputs = [
···28 else "");
29in stdenv.mkDerivation rec {
30 pname = "signal-desktop";
31+ version = "5.5.0"; # Please backport all updates to the stable channel.
32 # All releases have a limited lifetime and "expire" 90 days after the release.
33 # When releases "expire" the application becomes unusable until an update is
34 # applied. The expiration date for the current release can be extracted with:
···3839 src = fetchurl {
40 url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
41+ sha256 = "0l12hwwv0ks2hgp1xc5nmn5rcqzwxdpjqhwysix550m26bz4jczp";
42 };
4344 nativeBuildInputs = [
···1+--- a/hdf/src/hdfi.h 2021-06-16 16:31:31.000000000 +1200
2++++ b/hdf/src/hdfi.h 2021-06-16 16:42:26.000000000 +1200
3+@@ -1343,7 +1343,7 @@
4+ #endif /* IA64 */
5+6+ /* Linux AArch64 */
7+-#if defined __aarch64__
8++#if defined __aarch64__ && !defined __APPLE__
9+10+ #ifdef GOT_MACHINE
11+ If you get an error on this line more than one machine type has been defined.