diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dcbe85c..3b0ae8a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ on: defaults: run: - # Note that 'bash' provides -o pipefail, in contrast to the default (i.e., unspecified, which also uses bash) or 'sh', + # Note that 'bash' provides -o pipefail, in contrast to the default (i.e. unspecified, which also uses bash) or 'sh', # see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell shell: sh diff --git a/README.md b/README.md index 9d96587..54272f4 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The SailfishOS:Chum GUI Installer works on any SailfishOS release ≥ 3.1.0 * If you experience issues with the SailfishOS:Chum GUI Installer, please take a look at its log file `/var/log/sailfishos-chum-gui-installer.log.txt`. If that does not reveal to you what is going wrong, please check first if an issue report describing this issue [is already filed at GitHub](https://github.com/sailfishos-chum/sailfishos-chum-gui-installer/issues), then you might file a new issue report there and attach the log file to it, or enhance an extant bug report. * If you experience issues when installing, removing or updating packages after a SailfishOS upgrade, try running `devel-su pkcon refresh` in a terminal app. * When the SailfishOS:Chum GUI Installer fails to install anything (i.e, a minute after installing it the icon of the SailfishOS:Chum GUI application has not appeared on the launcher / desktop), most likely the preceding or the following bullet point is the reason. -* Before software can be build for a SailfishOS release at the SailfishOS-OBS, Jolla must create a [corresponding "download on demand (DoD)" OBS-repository](https://build.merproject.org/project/subprojects/sailfishos). It may take a little time after a new SailfishOS release is published before the corresponding "DoD" repository is being made available, during which installing the SailfishOS:Chum GUI application by the SailfishOS:Chum GUI Installer or updating the SailfishOS:Chum GUI application by itself on a device with the new SailfishOS release already installed does not work, because the SailfishOS:Chum GUI application cannot be compiled for this new SailfishOS release at the Sailfish-OBS, yet; consequently this is always the case for "closed beta (cBeta)" releases of SailfishOS. In such a situation one has to manually download the SailfishOS:Chum GUI application built for the last prior SailfishOS "general availability (GA)" release (e.g., from [the SailfishOS:Chum repository](https://build.merproject.org/project/show/sailfishos:chum/sailfishos-chum-gui)), then install or update the SailfishOS:Chum GUI application via `pkcon install-local `, and hope that there is no change in the new SailfishOS release which breaks the SailfishOS:Chum GUI application; if there is, please report that soon at [SailfishOS:Chum GUI application's issue tracker](https://github.com/sailfishos-chum/sailfishos-chum-gui/issues). +* Before software can be build for a SailfishOS release at the SailfishOS-OBS, Jolla must create a [corresponding "download on demand (DoD)" OBS-repository](https://build.merproject.org/project/subprojects/sailfishos). It may take a little time after a new SailfishOS release is published before the corresponding "DoD" repository is being made available, during which installing the SailfishOS:Chum GUI application by the SailfishOS:Chum GUI Installer or updating the SailfishOS:Chum GUI application by itself on a device with the new SailfishOS release already installed does not work, because the SailfishOS:Chum GUI application cannot be compiled for this new SailfishOS release at the Sailfish-OBS, yet; consequently this is always the case for "closed beta (cBeta)" releases of SailfishOS. In such a situation one has to manually download the SailfishOS:Chum GUI application built for the last prior SailfishOS "general availability (GA)" release (e.g. from [the SailfishOS:Chum repository](https://build.merproject.org/project/show/sailfishos:chum/sailfishos-chum-gui)), then install or update the SailfishOS:Chum GUI application via `pkcon install-local `, and hope that there is no change in the new SailfishOS release which breaks the SailfishOS:Chum GUI application; if there is, please report that soon at [SailfishOS:Chum GUI application's issue tracker](https://github.com/sailfishos-chum/sailfishos-chum-gui/issues). * Disclaimer: The SailfishOS:Chum GUI application and its installer may still have flaws, kill your kittens or break your SailfishOS installation! Although this is very unlikely after years of testing by many users, new flaws may be introduced in any release (as for any software). Mind that the license you implicitly accept by using the SailfishOS:Chum GUI application or the SailfishOS:Chum GUI Installer excludes any liability. ### Installation instructions @@ -29,6 +29,6 @@ The SailfishOS:Chum GUI Installer works on any SailfishOS release ≥ 3.1.0 ### Features of SailfishOS:Chum GUI Installer * SailfishOS:Chum GUI Installer creates a persistent log file `/var/log/sailfishos-chum-gui-installer.log.txt`. -* SailfishOS:Chum GUI Installer runs "unattended": I.e., without any manual steps, after its installation has been triggered, until the SailfishOS:Chum GUI application is installed. +* SailfishOS:Chum GUI Installer runs "unattended": I.e. without any manual steps, after its installation has been triggered, until the SailfishOS:Chum GUI application is installed. * SailfishOS:Chum GUI Installer is slow, because it calls `pkcon` three times, which acts quite slowly. The minimal run time for SailfishOS:Chum GUI Installer is about 7 seconds, the typical run time is rather 10 seconds (measured from the moment SailfishOS:Chum GUI Installer's installation is triggered, until the SailfishOS:Chum GUI application is installed and its icon is displayed at the "launcher"). This is already a lot, but I rarely experienced a stalled Packagekit daemon (`packagekitd`, for which `pkcon` is just a command line frontend, communicating with the daemon via D-Bus) during heavy testing, which can be observed with the crude `pkmon` utility (`Ctrl-C` gets you out.:smiley:), so the SailfishOS:Chum GUI Installer tries to detect these "hangs" and to counter them: If that happens, its run time can be up to slightly more than 1 minute. In the worst case a stalled PackageKit daemon (and with it its `pkcon` client process(es)) stalls SailfishOS:Chum GUI Installer, until the PackageKit daemon reaches its idle time out of 300 seconds (5 minutes; this could theoretically happen three times, resulting in a likely unsuccessful run time of more than 15 minutes).
Also note that SailfishOS sometimes fails to show an icon of a freshly installed app on the launcher ("homescreen") until SailfishOS is rebooted (rsp. more precisely: Lipstick is restarted). diff --git a/bin/sailfishos-chum-gui-installer b/bin/sailfishos-chum-gui-installer index 6d6adb3..a4e08fc 100644 --- a/bin/sailfishos-chum-gui-installer +++ b/bin/sailfishos-chum-gui-installer @@ -5,7 +5,7 @@ set -ufC # "-u" (error when using uninitialised variables), # despite minor errors. set -o pipefail # May not be supported, busybox's ash and bash do. export LC_ALL=POSIX # For details see https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02 -export POSIXLY_CORRECT=1 # Can have side-effects, see e.g., https://github.com/Olf0/sfos-upgrade/issues/73 +export POSIXLY_CORRECT=1 # Can have side-effects, see e.g. https://github.com/Olf0/sfos-upgrade/issues/73 # Ultimately this ensures an almost consistent behaviour across shell implementations. # Specify bash as interpreter of this script (in its first line), as this ensures @@ -28,7 +28,7 @@ export POSIXLY_CORRECT=1 # Can have side-effects, see e.g., https://github.com/ # This script is designed to be called fully detached (by a "double fork" # / a "daemonize") as the last statement of the %posttrans scriptlet -# (the last executed) of an RPM spec file or directly (e.g., in a shell). +# (the last executed) of an RPM spec file or directly (e.g. in a shell). # Memorise how we were called (argument checks are primarily intended for interactive use): mypid="$$" @@ -143,7 +143,7 @@ do logentry="[Warning] Failed to refresh sailfishos-chum repository, because error-code $retc was returned by: $logentry" printf '\n%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 4 printf '%s' "$logentry" - logentry="[Notice] Trying to terminate (i.e., sending SIGTERM to) all processes named (ID) \`pkcon\`, then sleeping for $wait seconds." + logentry="[Notice] Trying to terminate (i.e. sending SIGTERM to) all processes named (ID) \`pkcon\`, then sleeping for $wait seconds." printf '%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 5 printf '%s' "$logentry" killall -q -TERM pkcon @@ -156,7 +156,7 @@ do logentry="[Error] Failed to refresh sailfishos-chum repository, because error-code $retc was returned by: $logentry" printf '\n%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 3 printf '%s' "$logentry" - logentry="[Warning] Trying to interrupt (i.e., sending SIGINT to) all processes named (ID) \`pkcon\`, then sleeping for $wait seconds." + logentry="[Warning] Trying to interrupt (i.e. sending SIGINT to) all processes named (ID) \`pkcon\`, then sleeping for $wait seconds." printf '%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 4 printf '%s' "$logentry" killall -q -INT pkcon @@ -170,7 +170,7 @@ do logentry="[Error] Failed to refresh sailfishos-chum repository, because error-code $retc was returned by: $logentry" printf '\n%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 3 printf '%s' "$logentry" - logentry="[Warning] Trying to hang-up (i.e., sending SIGHUP to) all processes named (ID) \`pkcon\`, then sleeping for $i seconds and ultimately killing them." + logentry="[Warning] Trying to hang-up (i.e. sending SIGHUP to) all processes named (ID) \`pkcon\`, then sleeping for $i seconds and ultimately killing them." printf '%s\n' "$(date -Iseconds) $logentry" systemd-cat -t "$called" -p 4 printf '%s' "$logentry" killall -q -HUP pkcon @@ -210,7 +210,7 @@ do systemd-cat -t "$3" -p 6 printf '%s' "[Info] Self-removal in 20 seconds: $2";\ eval $2)' sh_rm_inst-chum-gui "$mypid" "$logentry" "$called" # The first 15 characters of the spawned process' name - # (to be used for, e.g., `ps` and `pgrep` / `pkill`) are: + # (to be used for, e.g. `ps` and `pgrep` / `pkill`) are: # sh_rm_inst-chum fi done @@ -231,7 +231,7 @@ setsid --fork sh -c '(sleep 1;\ systemd-cat -t "$3" -p 6 printf '%s' "[Info] Executing: $2";\ eval $2)' sh_do_inst-chum-gui "$mypid" "$logentry" "$called" # The first 15 characters of the spawned process' name - # (to be used for, e.g., `ps` and `pgrep` / `pkill`) are: + # (to be used for, e.g. `ps` and `pgrep` / `pkill`) are: # sh_do_inst-chum # Double-fork / "Daemonise" ("SysV-style") in shell code, (ab)using this # interpreter instance for the preamble (setting the environment): diff --git a/rpm/sailfishos-chum-gui-installer.rpmlintrc b/rpm/sailfishos-chum-gui-installer.rpmlintrc index e6ea4b3..1245797 100644 --- a/rpm/sailfishos-chum-gui-installer.rpmlintrc +++ b/rpm/sailfishos-chum-gui-installer.rpmlintrc @@ -12,7 +12,7 @@ addFilter('invalid-license') # - It extracts strange changelog entries out of Git, if a %%changelog section is used addFilter('incoherent-version-in-changelog') # - It sometimes re-writes the %version-%release strings of package names, -# when referencing (only) a branch (i.e., not a git tag), for example, +# when referencing (only) a branch (i.e. not a git tag), for example, # 0.5.2-1 to 0.5.2+main.20230129011931.1.g584263a-1.8.1.jolla addFilter('filename-too-long-for-joliet') diff --git a/rpm/sailfishos-chum-gui-installer.spec b/rpm/sailfishos-chum-gui-installer.spec index 10c6eb2..0d9ae2e 100644 --- a/rpm/sailfishos-chum-gui-installer.spec +++ b/rpm/sailfishos-chum-gui-installer.spec @@ -4,7 +4,7 @@ Name: sailfishos-chum-gui-installer # The Git release tag format must adhere to just . The # field adheres to semantic versioning and the field comprises a # natural number greater or equal to 1, which may be prefixed with one of -# {alpha,beta,rc,release} (e.g., "beta3"). For details and reasons, see +# {alpha,beta,rc,release} (e.g. "beta3"). For details and reasons, see # https://github.com/storeman-developers/harbour-storeman-installer/wiki/Git-tag-format Version: 0.6.3 Release: 1 @@ -36,7 +36,7 @@ Requires(posttrans): PackageKit # ToDo: Check if the GNU-versions of these packages (named as alternatives below) # also provide the aliases ("virtual packages") denoted here, then these can be # used; ultimately most of these packages shall be already installed, anyway. -# 1. `coreutils` (for e.g., `touch` and many other very basic UNIX tools): +# 1. `coreutils` (for e.g. `touch` and many other very basic UNIX tools): # Requires: (busybox-symlinks-coreutils or gnu-coreutils) Requires: coreutils # Requires(post,posttrans): (busybox-symlinks-coreutils or gnu-coreutils) @@ -120,7 +120,7 @@ cp bin/%{name} %{buildroot}%{_bindir}/ %post # The %%post scriptlet is deliberately run when installing and updating. -# Create a persistent log file, i.e., which is not managed by RPM and hence +# Create a persistent log file, i.e. which is not managed by RPM and hence # is unaffected by removing the %%{name} RPM package: if [ ! -e %{logfile} ] then @@ -171,7 +171,7 @@ umask 113 # because the scriptlets are executed with PWD safely set to /. setsid --fork sh -c '(%{_bindir}/%{name} "$1" "$2")' sh_call_inst-chum-gui "$$" "%{logfile}" >> "%{logfile}" 2>&1 <&- # The first 15 characters of the spawned process' name -# (to be used for, e.g., `ps` and `pgrep` / `pkill`) are: +# (to be used for, e.g. `ps` and `pgrep` / `pkill`) are: # sh_call_inst-ch exit 0