diff --git a/content/designs/applications.md b/content/designs/applications.md index df0a48fefb97f1fab1e655ffb37519380ac2ac4e..994546443b1e104d02418f1d2ad9f0957d91541f 100644 --- a/content/designs/applications.md +++ b/content/designs/applications.md @@ -1193,6 +1193,7 @@ appropriate for Apertis to provide API to assist in performing the task accurately. A minimal C language API for state saving could be developed consisting +of: - A way to register a callback for a D-Bus signal that requests a save of state information. diff --git a/content/designs/coding_conventions.md b/content/designs/coding_conventions.md index cc1b37253a884093c08989e05415cb7defdcb58b..71676714bfd614e43714fee45ec3dff2a5c52e78 100644 --- a/content/designs/coding_conventions.md +++ b/content/designs/coding_conventions.md @@ -243,7 +243,7 @@ such as `(nullable)`. Pre- and post-condition assertions are implemented using [`g_return_if_fail()`](https://developer.gnome.org/glib/stable/glib-Warnings-and-Assertions.html#g-return-if-fail) - +and [`g_return_val_if_fail()`](https://developer.gnome.org/glib/stable/glib-Warnings-and-Assertions.html#g-return-val-if-fail). The pre-conditions should check each parameter at the start of the function, @@ -323,9 +323,11 @@ implemented using the linking pointers, rather than a incrementing index: GList *some_list, *l; for (l = some_list; l != NULL; l = l->next) + { gpointer element_data = l->data; /* Do something with @element_data. */ + } ``` Using an incrementing index instead results in an exponential decrease in @@ -337,9 +339,11 @@ guint i; /* This code is inefficient and should not be used in production. */ for (i = 0; i < g_list_length (some_list); i++) + { gpointer element_data = g_list_nth_data (some_list, i); /* Do something with @element_data. */ + } ``` The performance penalty comes from `g_list_length()` and `g_list_nth_data()` @@ -354,9 +358,11 @@ GPtrArray *some_array; guint i; for (i = 0; i < some_array->len; i++) + { gpointer element_data = some_array->pdata[i]; /* Do something with @element_data. */ + } ``` ## Magic values diff --git a/content/designs/contribution-process.md b/content/designs/contribution-process.md index 65301c1b82c704ea3a02333a5d85a8c0e9817668..a8761c7c763c8e2930e5f61279312f5a0e02ac92 100644 --- a/content/designs/contribution-process.md +++ b/content/designs/contribution-process.md @@ -67,6 +67,8 @@ might be started by sending an email to the projects devel [mailing list](https://lists.apertis.org/) saying: ``` +Hi, + I'm attempting to use <project> to <task> for my project. I'm thinking about doing <brief technical overview> to enable this usecase. diff --git a/content/designs/image-build-infrastructure.md b/content/designs/image-build-infrastructure.md index 7680b3368d7510bf8209dc5261a3842f75acdbc6..cd11633d0b1fd4cf5eaf69c766765dbace074257 100644 --- a/content/designs/image-build-infrastructure.md +++ b/content/designs/image-build-infrastructure.md @@ -35,6 +35,7 @@ environment. For each Apertis release there are two relevant Jenkins jobs to build images; The first job builds a Docker image which defines the build environment and uploads the resulting image to the Apertis Docker registry. This is defined in +the [apertis-docker-images git repository](https://gitlab.apertis.org/infrastructure/apertis-docker-images). The second job defines the build steps for the various ospacks, hardware packs and images which are run in the Docker image build by the previous job; it also diff --git a/content/designs/inter-domain-communication.md b/content/designs/inter-domain-communication.md index fff96a21a69f53a38ff70199e14356b01d835f2a..4db1a0dca46520a406c894f6c9283c066f4d514e 100644 --- a/content/designs/inter-domain-communication.md +++ b/content/designs/inter-domain-communication.md @@ -2654,7 +2654,7 @@ domains must trigger the [`NameOwnerChanged signal`](https://dbus.freedesktop.org/doc/dbus-specification.html#bus-messages-name-owner-changed) in response to the [`org.freedesktop.DBus.ReleaseName()`](https://dbus.freedesktop.org/doc/dbus-specification.html#bus-messages-release-name) - +and [`org.freedesktop.DBus.RequestName()`](https://dbus.freedesktop.org/doc/dbus-specification.html#bus-messages-request-name) calls. No specific ordering is required and thus the service may be temporarily unavailable or the two domains may export the same service diff --git a/content/designs/license-applying.md b/content/designs/license-applying.md index 761be5eb5f58217568f5508e785faba4ac517656..4799e4dc9d62de0aeff7b7f94fb553cfe9414938 100644 --- a/content/designs/license-applying.md +++ b/content/designs/license-applying.md @@ -129,6 +129,7 @@ This is what a typical MPL license header looks like: * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ ``` For additional guidance on how license headers work, please read the @@ -208,6 +209,7 @@ resulting copyright header would look like: * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ ``` ## License for images diff --git a/content/designs/preferences-and-persistence.md b/content/designs/preferences-and-persistence.md index d04e96338c25533aa7f7e932659d1a69b32841b9..749ddaac0ccf5254a60388eb46d821987ec73145 100644 --- a/content/designs/preferences-and-persistence.md +++ b/content/designs/preferences-and-persistence.md @@ -1634,6 +1634,7 @@ they are written. This is what dconf uses for storage. All updates to a GVDB file are atomic, as it uses the same atomic-overwrite technique as [GKeyFile]( {{< ref "#gkeyfile" >}} ). Transactions are supported similarly — by writing out the updated database or discarding +it. The amount of I/O for reads from a GVDB file is small, as it memory-maps the database, so only pages in the data it actually reads (plus some diff --git a/content/designs/robustness.md b/content/designs/robustness.md index cc07f12ab64f44456a9127fbdfecd7385fbfaa0a..3046f2601cd66bb1d401ae480399834fb8c56549 100644 --- a/content/designs/robustness.md +++ b/content/designs/robustness.md @@ -241,6 +241,7 @@ hardware features available with the storage media. The System Updates and Rollback Design describes the partition layout for Apertis. Not all the partitions have the same requirements, so both the FAT32 and BTRFS filesystems are used. The partitions are configured +as: - **Factory Recovery** – This partition is never mounted read-write and must be readable by the boot loader. Currently the boot loader diff --git a/content/designs/security.md b/content/designs/security.md index 1633ff6ba8606b43040a47f3fb69db0b4fb0924b..807d5fd963fff8b7b8fecf4dbfab14961d579fb7 100644 --- a/content/designs/security.md +++ b/content/designs/security.md @@ -402,6 +402,7 @@ IPC mechanism. Android uses two very simple strategies to forcibly stop an application: 1) it kills applications when the device is out of memory; 2) it notifies the user of [unresponsive applications][Android-responsiveness] and allows them to force the application to close, similar to how GNOME does +it. An application is deemed to not be responding after about 5 seconds of not being able to handle user input. This feature is implemented by the @@ -902,6 +903,7 @@ policy file: ```shell $ cat /etc/apparmor.d/bin.ping +... /bin/ping { #include <abstractions/base> #include <abstractions/consoles> diff --git a/content/designs/sensors-and-actuators.md b/content/designs/sensors-and-actuators.md index 6a2b39ce0a769dff7f2cdb0e00ee9d4fb714da9c..b9fd523b761e6b55ee87859a6bd0512ebded54f5 100644 --- a/content/designs/sensors-and-actuators.md +++ b/content/designs/sensors-and-actuators.md @@ -1567,6 +1567,7 @@ if (action.id == 'org.apertis.vehicle_device_daemon.WriteProperty' && /* Deny all other accesses. */ return polkit.Result.NO; +}); ``` In the rules, the subject is always the program in the bundle which is diff --git a/content/designs/supported-api.md b/content/designs/supported-api.md index 4fc692e1ec21352a7fd10ab142f2524948cf956c..3064cbd2090f89c14b1ea0997b3101b2678619a4 100644 --- a/content/designs/supported-api.md +++ b/content/designs/supported-api.md @@ -187,6 +187,7 @@ the best way to guarantee stability, but that will only delay the impact of the changes. Building a set of APIs that abstract some of the platform can also be sensible: applications using high level widgets can be shielded from changes done at the lower levels – Clutter, Mx, and so +on. To conclude: taking advantage of open source code takes away some of the control over the platform's future. While Google and Apple are able to @@ -452,6 +453,7 @@ but work may be done on a case-by-case basis to provide a smooth migration path, with old versions coexisting with newer ones when possible. Most existing open source APIs related to core functionality fall in this support level: Mx, clutter, clutter-gst, GStreamer, and so +on. As discussed in section 3.5.1, [The GTK upgrade and a Clutter API break]( {{< ref "#the-gtk-upgrade-and-a-clutter-api-break" >}} ), there are ways to deal with ABI/API breakage in these libraries. Keeping diff --git a/content/designs/ui-customisation.md b/content/designs/ui-customisation.md index ce5369475650c7dc3a03903a8fb389588cefe3e3..943870ac561108aa33c64f0ebb49d764b9bde1e6 100644 --- a/content/designs/ui-customisation.md +++ b/content/designs/ui-customisation.md @@ -665,6 +665,7 @@ user interface: { "name": "activated", "handler": "app_activated_cb" } ] } + ] }] ``` @@ -711,6 +712,7 @@ chooser user interface: { "name": "activated", "handler": "app_activated_cb" } ] } + ] }] ``` @@ -831,6 +833,7 @@ reference. For example: ``` { "id": "example-with-children", + ... "children": [ "first-child", { @@ -841,6 +844,7 @@ reference. For example: "external-uri": "file:///path/to/another.json", "id": "third-child" } + ] } ``` @@ -924,6 +928,7 @@ gint item_id) /* change animation */ } else { /* reset animation */ + } /* chain up */ return roller_class->activate (roller, item_id);