Skip to content

Commit 134f6a6

Browse files
committed
Merge remote-tracking branch 'upstream/master' into patch-1
2 parents 94ad13e + 4b07f2e commit 134f6a6

File tree

640 files changed

+43442
-557
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

640 files changed

+43442
-557
lines changed

.github/workflows/test.yml

Lines changed: 110 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@ on:
33
branches:
44
# Do not build PRs twice
55
- 'master'
6-
# The ignored paths must not include md files for the website itself
7-
paths-ignore:
8-
- '*.md'
9-
- '.github/workflows/**'
10-
- 'code/**'
6+
paths:
7+
- 'data/**'
118
pull_request:
12-
paths-ignore:
13-
- '*.md'
9+
paths:
10+
- 'data/**'
1411

1512
env:
1613
DISPLAY: :99
@@ -19,78 +16,113 @@ env:
1916

2017
jobs:
2118
test:
22-
runs-on: ubuntu-18.04
23-
timeout-minutes: 5
19+
runs-on: ubuntu-22.04
20+
timeout-minutes: 10
2421
permissions:
2522
contents: write
2623
pull-requests: write
2724
steps:
28-
- uses: actions/checkout@v3
29-
# https://github.com/actions/checkout#Fetch-all-history-for-all-tags-and-branches
30-
# According to the docs for checkout@v2, Only a single commit is fetched by default, but
31-
# providing a fetch-depth of 0 should fetch all history.
32-
with:
33-
fetch-depth: 0
34-
- name: Install dependencies
35-
shell: bash
36-
run: |
37-
# set -e
38-
sudo apt update
39-
sudo apt-get -qq -y install sudo imagemagick libasound2-dev pulseaudio-utils alsa-utils alsa-oss libjack0 desktop-file-utils xmlstarlet xterm xvfb icewm x11-utils x11-apps netpbm xdotool libgl1-mesa-dri libgl1-mesa-dev mesa-utils libosmesa6 libsdl1.2-dev libsdl2-2.0-0 fonts-wqy-microhei libfile-mimeinfo-perl # appstream # TODO: Cache me!
40-
sudo bash code/prep-dummy-soundcard.sh
41-
sudo gem install dupervisor -v 1.0.5 # To convert ini to yaml files
42-
sudo npm install -g asar # to get pacakges.json from resources/app.asar for electron-builder applications
43-
# npm install -g @alexlafroscia/yaml-merge # to merge yaml files
44-
- name: Main test
45-
# shell: bash
46-
run: |
47-
# set -e
48-
mkdir $HOME/.icewm/
49-
echo "ShowTaskBar = 0" > $HOME/.icewm/preferences
50-
echo "TaskBarAutoHide = 1" > $HOME/.icewm/preferences
51-
echo "TaskBarShowWorkspaces = 0" > $HOME/.icewm/preferences
52-
echo "TaskBarShowAllWindows = 0" > $HOME/.icewm/preferences
53-
echo "TaskBarShowClock = 0" > $HOME/.icewm/preferences
54-
echo "TaskBarShowMailboxStatus = 0" > $HOME/.icewm/preferences
55-
echo "TaskBarShowCPUStatus = 0" > $HOME/.icewm/preferences
56-
echo "TaskBarShowWindowListMenu = 0" > $HOME/.icewm/preferences
57-
# xpra start :99 # Cannot get screenshots to work
58-
Xvfb :99 -screen 0 800x600x24 >/dev/null 2>&1 & # Need to set bit depth, otherwise get some black screenshots
59-
# until xset -q; do echo "Waiting for X server to start..."; sleep 1; done # We are not immediately using it anyway
60-
# Find out which files in data/ have been changed in the last commit
61-
#set -x # Debug #379
62-
FILES=$(git log -1 -p data/ | grep +++ | cut -d '/' -f 2-| sed -e 's|dev/null||g')
63-
echo "Last changed files from the FILES variable:"
64-
echo "$FILES" ; if [ -z "$FILES" ] ; then echo "Variable FILES is empty." && exit 1 ; fi
65-
# Work on these files that have been changed in the last commit
66-
# Check if $FILES is not empty
67-
if [ -n "$FILES" ] ; then for FILE in $FILES ; do echo "$FILE" ; bash -e code/worker.sh $(readlink -f "$FILE") 2>&1 | tee log.txt ; done ; fi
68-
# xpra stop :99
69-
killall Xvfb
70-
# bundle exec jekyll build # https://help.github.com/en/articles/viewing-jekyll-build-error-messages#configuring-a-third-party-service-to-display-jekyll-build-error-messages
71-
- name: Check log
72-
shell: bash
73-
run: |
74-
# set -e
75-
cat log.txt | wc -l
76-
grep -r "Running as root without --no-sandbox is not supported" log.txt && MESSAGE="Pending #2563 (\`Running as root without --no-sandbox is not supported\`)." && exit 1
77-
grep -r "version \`GLIBC_.*' not found" && MESSAGE="This was compiled on a too new system and hence cannot run on all still-supported versions of Ubuntu." && exit 1
78-
echo "${MESSAGE}"
79-
SCREENSHOT_URL=$(cat log.txt | grep -o -e "https://transfer.sh/.*/screenshot.png") || true
80-
echo "SCREENSHOT_URL="$SCREENSHOT_URL >> $GITHUB_ENV || true
81-
echo "SCREENSHOT_URL: ${SCREENSHOT_URL}" || true
82-
- name: Post test result to PR
83-
# Needs permissions, https://github.com/actions/first-interaction/issues/10
84-
# if: github.event_name == 'pull_request'
85-
# Unhandled error: SyntaxError: Unexpected string
86-
if: 1 == 2
87-
uses: actions/github-script@v4
88-
with:
89-
script: |
90-
echo "env.SCREENSHOT_URL: ${{ env.SCREENSHOT_URL }}"
91-
await github.issues.createComment({
92-
issue_number: context.issue.number,
93-
owner: context.repo.owner,
94-
repo: context.repo.repo,
95-
body: process.env.SCREENSHOT_URL
96-
})
25+
- name: Checkout repository
26+
uses: actions/checkout@v3
27+
# https://github.com/actions/checkout#Fetch-all-history-for-all-tags-and-branches
28+
# According to the docs for checkout@v2, Only a single commit is fetched by default, but
29+
# providing a fetch-depth of 0 should fetch all history.
30+
with:
31+
fetch-depth: 0
32+
- name: Configure APT Packages
33+
uses: awalsh128/[email protected]
34+
# This action handles caching APT packages, and leaves the option for package configuration scripts to be run if needed,
35+
# saving a boat-load of time, if needed bump the action version.
36+
with:
37+
packages: sudo imagemagick libasound2-dev pulseaudio-utils alsa-utils alsa-oss libjack0 desktop-file-utils xmlstarlet xsel xterm xvfb icewm x11-utils x11-apps netpbm xdotool libgl1-mesa-dri libgl1-mesa-dev mesa-utils libosmesa6 libsdl1.2-dev libsdl2-2.0-0 fonts-wqy-microhei libfile-mimeinfo-perl
38+
version: 1.0
39+
# Bump me ^ if you have added any new packages
40+
- name: Install dependencies
41+
shell: bash
42+
run: |
43+
# set -e
44+
sudo bash code/prep-dummy-soundcard.sh
45+
# TODO Cache gem and npm packages
46+
sudo gem install dupervisor -v 1.0.5 # To convert ini to yaml files
47+
sudo npm install -g asar # to get pacakges.json from resources/app.asar for electron-builder applications
48+
# npm install -g @alexlafroscia/yaml-merge # to merge yaml files
49+
- name: Main test
50+
# shell: bash
51+
run: |
52+
# set -e
53+
mkdir $HOME/.icewm/
54+
echo "ShowTaskBar = 0" > $HOME/.icewm/preferences
55+
echo "TaskBarAutoHide = 1" > $HOME/.icewm/preferences
56+
echo "TaskBarShowWorkspaces = 0" > $HOME/.icewm/preferences
57+
echo "TaskBarShowAllWindows = 0" > $HOME/.icewm/preferences
58+
echo "TaskBarShowClock = 0" > $HOME/.icewm/preferences
59+
echo "TaskBarShowMailboxStatus = 0" > $HOME/.icewm/preferences
60+
echo "TaskBarShowCPUStatus = 0" > $HOME/.icewm/preferences
61+
echo "TaskBarShowWindowListMenu = 0" > $HOME/.icewm/preferences
62+
# xpra start :99 # Cannot get screenshots to work
63+
Xvfb :99 -screen 0 800x600x24 >/dev/null 2>&1 & # Need to set bit depth, otherwise get some black screenshots
64+
# until xset -q; do echo "Waiting for X server to start..."; sleep 1; done # We are not immediately using it anyway
65+
# Find out which files in data/ have been changed in the last commit
66+
#set -x # Debug #379
67+
FILES=$(git log -1 -p data/ | grep +++ | cut -d '/' -f 2-| sed -e 's|dev/null||g')
68+
# Finds wrong files in PRs! # FILES=$(git log -1 --name-status --diff-filter=AR --pretty=format: -- data/ | awk '/^A/ || /^R/ {file=$2} END {print file}') # Most recent addition or renaming within the last commit
69+
echo "Last changed files from the FILES variable:"
70+
echo "$FILES" ; if [ -z "$FILES" ] ; then echo "Variable FILES is empty." && exit 1 ; fi
71+
# Work on these files that have been changed in the last commit
72+
if [ -n "$FILES" ]; then
73+
for FILE in $FILES; do
74+
echo "$FILE"
75+
bash -e code/worker.sh $(readlink -f "$FILE") 2>&1 | tee log.txt
76+
EXIT_CODE=${PIPESTATUS[0]} # bashism; get the return code of the leftmost element of the pipe
77+
if [ $EXIT_CODE -ne 0 ]; then
78+
echo "worker.sh exited with a non-zero code: $EXIT_CODE"
79+
exit $EXIT_CODE
80+
fi
81+
done
82+
fi
83+
# xpra stop :99
84+
killall Xvfb
85+
# bundle exec jekyll build # https://help.github.com/en/articles/viewing-jekyll-build-error-messages#configuring-a-third-party-service-to-display-jekyll-build-error-messages
86+
- name: Check log
87+
if: github.event_name == 'pull_request' && github.event.pull_request.user.login == 'probonopd'
88+
shell: bash
89+
run: |
90+
cat log.txt | wc -l
91+
grep -r "Running as root without --no-sandbox is not supported" log.txt && MESSAGE="Pending #2563 (\`Running as root without --no-sandbox is not supported\`)." && exit 1
92+
grep -r "version \`GLIBC_.*' not found" && MESSAGE="This was compiled on a too new system and hence cannot run on all still-supported versions of Ubuntu." && exit 1
93+
echo "${MESSAGE}"
94+
SCREENSHOT_URL=$(cat log.txt | grep -o -e "https://i.imgur.com.*.png") || true
95+
if [[ -z "${SCREENSHOT_URL}" ]]; then
96+
echo "No screenshot URL found."
97+
exit 1
98+
fi
99+
echo "SCREENSHOT_URL=$SCREENSHOT_URL" >> $GITHUB_ENV || true
100+
echo "SCREENSHOT_URL: ${SCREENSHOT_URL}" || true
101+
# The following is disabled because it gives errors about missing permissions
102+
# whenever a PR is made by anyone but the repo maintainer
103+
# - name: Post Screenshot URL
104+
# if: ${{ always() && github.event_name == 'pull_request' && github.run_status != 'cancelled' }}
105+
# uses: actions/github-script@v6
106+
# with:
107+
# script: |
108+
# const prNumber = context.payload.pull_request.number;
109+
# const screenshotURL = process.env.SCREENSHOT_URL;
110+
# if (screenshotURL) {
111+
# const commentBody = `Seems like the test succeeded. Temporary screenshot URL: ${screenshotURL}`;
112+
# await github.rest.issues.createComment({
113+
# owner: context.repo.owner,
114+
# repo: context.repo.repo,
115+
# issue_number: prNumber,
116+
# body: commentBody
117+
# });
118+
# } else {
119+
# const runURL = `https://github.com/${process.env.GITHUB_REPOSITORY}/actions/runs/${{ github.run_id }}`;
120+
# const commentBody = `The test was unable to make a screenshot. Most likely, the test did not succeed. Please check the [logs of the test run](${runURL}).`;
121+
# await github.rest.issues.createComment({
122+
# owner: context.repo.owner,
123+
# repo: context.repo.repo,
124+
# issue_number: prNumber,
125+
# body: commentBody
126+
# });
127+
# core.setFailed("Unable to post screenshot");
128+
# }

ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
33
Welcome to AppImageHub, the crowd-sourced central directory of available AppImages. Before you open an issue, please check whether the AppImage is already in our collection. If it is not, please submit an issue here if the original authors of the software provide an official AppImage that should be included in this directory. Please do NOT request AppImages for applications here if one does not exist yet; in this case, please ask the application authors instead.
4-
Do you want to ask a question? Are you looking for support? The Atom message board is the best place for getting support: https://discourse.appimage.org
4+
Do you want to ask a question? Are you looking for support? Here is the best place for getting comunity support: https://github.com/orgs/AppImage/discussions
55
66
-->
77

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ and send a Pull Request.
3232
Ideally, the file in `data/` contains a link to https://github.com/User/App/ (not to a specific AppImage!), and if the AppImage follows the standard nomenclature, then https://github.com/User/App/releases/whatever/App-1.0-x86_64.AppImage, https://github.com/User/App/releases/whatever/App-1.1-x86_64.AppImage,... will automatically be picked up.
3333

3434
Standard nomenclature:
35-
* AppImage filename consists of pieces: Application name, hyphen, version, hypen, architecture, dot, AppImage suffix
35+
* AppImage filename consists of pieces: Application name, hyphen, version, hyphen, architecture, dot, AppImage suffix
3636
* First piece of the AppImage filename, "App" == name of the repo
3737
* Blanks in the app name become _
38-
* Respecrt uppercase. If the app is called "App", do NOT use "app"
38+
* Respect uppercase. If the app is called "App", do NOT use "app"
3939
* Example: `App-1.1-x86_64.AppImage` in a repo called "App"
4040

4141
Then send a Pull Request to this repository. GitHub Actions will instantly perform an automated review of the AppImage, and in case it succeeds, you will see a __green__ result in your pull request. If you get a __red__ result, check the log of the GitHub Actions build, and fix it.
@@ -47,7 +47,7 @@ Then the autodetection works.
4747
As a format, AppImage is designed in a way that does not impose restrictions on the person generating AppImages. Basically you are free to put inside an AppImage whatever you want. For appimage.github.io, however, additional rules apply. AppImages submitted to AppImage hub undergo automatic and possibly additional manual review.
4848

4949
* Must be downloadable from a URL. Our testing system fetches the AppImage using `wget`. Currently we cannot get AppImages from locations behind authentication and/or cookie-protected locations. For commercial applications we recommend to have a generally downloadable demo/trial version. Please contact us if you would like to add your commercial AppImage to the directory and it is not available for general download
50-
* Must run on the [oldest still-supported Ubuntu LTS release](https://www.ubuntu.com/info/release-end-of-life) (currently Ubuntu 18.04) without the installation of additional packages. Targeting the oldest still-supported LTS is to ensure that the AppImage will run not only on the very latest, but also on older target systems, such as enterprise distributions (not limited to Ubuntu)
50+
* Must run on the [oldest still-supported Ubuntu LTS release](https://www.ubuntu.com/info/release-end-of-life) without the installation of additional packages. Targeting the oldest still-supported LTS is to ensure that the AppImage will run not only on the very latest, but also on older target systems, such as enterprise distributions (not limited to Ubuntu)
5151
* Must execute in our GitHub Actions based testing environment
5252
* Must pass [appdir-lint.sh](https://github.com/AppImage/AppImages/blob/master/appdir-lint.sh)
5353
* Must have a desktop file that passes `desktop-file-validate`

_includes/app_notes.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ <h2 id="installation">Usage</h2>
66
Most AppImages run on recent versions of Arch Linux, CentOS, Debian, Fedora, openSUSE, Red Hat, Ubuntu, and other common desktop distributions.</p>
77
<h3>Running {{ page.name | remove: ".md" }} on Linux without installation</h3>
88
Unlike other applications, AppImages do not need to be installed before they can be used. However, they need to be marked as executable before they can be run. This is a Linux security feature.</p>
9-
<p><b>Behold!</b> AppImages are usually not verified by others. Follow these instructions only if you trust the developer of the software. Use at your own risk!</p>
9+
<p><b>Beware!</b> AppImages are usually not verified by others. Follow these instructions only if you trust the developer of the software. Use at your own risk!</p>
1010
<p>Download the {{ page.name | remove: ".md" }} AppImage and <a href="https://discourse.appimage.org/t/how-to-run-an-appimage/80">make it executable using your file manager</a> or by entering the following commands in a terminal:</p>
1111
<div class="highlight">
1212
<span class="mega-octicon octicon-terminal"></span>
@@ -44,7 +44,7 @@ <h3>Pro Tips for further enhancing the {{ page.name | remove: ".md" }} AppImage<
4444
<p>Thanks for shipping AppStream metainfo inside your AppImage. Please open a pull request on <a href="https://github.com/AppImage/appimage.github.io/blob/master/data/{{ page.name | remove: ".md" }}">https://github.com/AppImage/appimage.github.io/blob/master/data/{{ page.name | remove: ".md" }}</a> if you have changed it and would like to see this page updated accordingly.</p>
4545
{% else %}
4646
<p>Improve this entry by shipping an <a href="https://docs.appimage.org/packaging-guide/optional/appstream.html">AppStream metainfo file</a> inside the AppImage in the <code>usr/share/metainfo</code> directory. There is an <a href="https://appimage.github.io/simple-appstream-generator/">online tool</a> that makes it easy to make one.</p>
47-
<p>The screenshot for {{ page.name | remove: ".md" }} has been automatically taken during a fully automated test. You can specify the URL to a nicer one by shipping an <a href="https://docs.appimage.org/packaging-guide/appstream.html">AppStream metainfo file</a>.</p>
47+
<p>The screenshot for {{ page.name | remove: ".md" }} has been automatically taken during a fully automated test. You can specify the URL to a nicer one by shipping an <a href="https://docs.appimage.org/packaging-guide/index.html">AppStream metainfo file</a>.</p>
4848
{% endif %}
4949

5050
{% if post.appdata.Url.donation %}

_includes/disqus.html

Lines changed: 0 additions & 12 deletions
This file was deleted.

_layouts/post.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ <h1 style="text-align:center" id="{{ post.title | replace: "_", " " }}">
2727

2828
</div>
2929

30-
{% include disqus.html %}
30+
3131
</article>

0 commit comments

Comments
 (0)