Repository: beeware/briefcase

Issue:
pycairo failing appimage build 
### Describe the bug

The `-fdebug-default-version=4` seems to an options for clang, but not gcc. Not sure why pycairo panic on that.

```
Docker|       Building wheels for collected packages: pycairo
Docker|         Building wheel for pycairo (pyproject.toml): started
Docker|         Building wheel for pycairo (pyproject.toml): finished with status 'error'
Docker|         error: subprocess-exited-with-error
Docker|
Docker|         × Building wheel for pycairo (pyproject.toml) did not run successfully.
Docker|         │ exit code: 1
Docker|         ╰─> [16 lines of output]
Docker|             running bdist_wheel
Docker|             running build
Docker|             running build_py
Docker|             creating build
Docker|             creating build/lib.linux-x86_64-cpython-311
Docker|             creating build/lib.linux-x86_64-cpython-311/cairo
Docker|             copying cairo/__init__.py -> build/lib.linux-x86_64-cpython-311/cairo
Docker|             copying cairo/__init__.pyi -> build/lib.linux-x86_64-cpython-311/cairo
Docker|             copying cairo/py.typed -> build/lib.linux-x86_64-cpython-311/cairo
Docker|             running build_ext
Docker|             building 'cairo._cairo' extension
Docker|             creating build/temp.linux-x86_64-cpython-311
Docker|             creating build/temp.linux-x86_64-cpython-311/cairo
Docker|             gcc -pthread -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fdebug-default-version=4 -fPIC -I/tools/deps/include -I/tools/deps/include/ncursesw -I/tools/deps/libedit/include -fPIC -DPYCAIRO_VERSION_MAJOR=1 -DPYCAIRO_VERSION_MINOR=25 -DPYCAIRO_VERSION_MICRO=0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid "-I/app/Hello World.AppDir/usr/python/include/python3.11" -c cairo/bufferproxy.c -o build/temp.linux-x86_64-cpython-311/cairo/bufferproxy.o -Wall -Warray-bounds -Wcast-align -Wconversion -Wextra -Wformat=2 -Wformat-nonliteral -Wformat-security -Wimplicit-function-declaration -Winit-self -Winline -Wmissing-format-attribute -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith -Wreturn-type -Wshadow -Wsign-compare -Wstrict-aliasing -Wundef -Wunused-but-set-variable -Wswitch-default -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-command-line-argument -fno-strict-aliasing -fvisibility=hidden -std=c99
Docker|             gcc: error: unrecognized command-line option ‘-fdebug-default-version=4’
Docker|             error: command '/opt/rh/gcc-toolset-12/root/usr/bin/gcc' failed with exit code 1
Docker|             [end of output]
Docker|
Docker|         note: This error originates from a subprocess, and is likely not a problem with pip.
Docker|         ERROR: Failed building wheel for pycairo
Docker|       Failed to build pycairo
Docker|       ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects
```

### Steps to reproduce

1. Follow the tutorial 
2. briefcase create linux appimage
3. See error


### Expected behavior

Build the image.

### Screenshots

_No response_

### Environment

- Operating System: ubuntu1~23.04
- Python version: 3.11
- Software versions:
  - Briefcase:  0.3.16
  - Toga: 0.3.1


### Logs

```

```


### Additional context

_No response_

Discussion:

Patch:
diff --git a/changes/1500.removal.rst b/changes/1500.removal.rst
new file mode 100644
index 00000000..e6def385
--- /dev/null
+++ b/changes/1500.removal.rst
@@ -0,0 +1,1 @@
+The use of AppImage as an output format now generates a warning.
diff --git a/src/briefcase/platforms/linux/appimage.py b/src/briefcase/platforms/linux/appimage.py
index 55f47acb..ceaa4c85 100644
--- a/src/briefcase/platforms/linux/appimage.py
+++ b/src/briefcase/platforms/linux/appimage.py
@@ -96,6 +96,24 @@ class LinuxAppImagePassiveMixin(LinuxMixin):
 """
             )
 
+        self.logger.warning(
+            """\
+*************************************************************************
+** WARNING: Use of AppImage is not recommended!                        **
+*************************************************************************
+
+    Briefcase supports AppImage in a best-effort capacity. It has proven
+    to be highly unreliable as a distribution platform. AppImages cannot
+    use pre-compiled binary wheels, and has significant problems with
+    most commonly used GUI toolkits (including GTK and PySide).
+
+    Consider using system packages or Flatpak for Linux app
+    distribution.
+
+*************************************************************************
+"""
+        )
+
 
 class LinuxAppImageMostlyPassiveMixin(LinuxAppImagePassiveMixin):
     # The Mostly Passive mixin verifies that Docker exists and can be run, but


Test patch:
diff --git a/tests/platforms/linux/appimage/test_create.py b/tests/platforms/linux/appimage/test_create.py
index d008b9e6..62674398 100644
--- a/tests/platforms/linux/appimage/test_create.py
+++ b/tests/platforms/linux/appimage/test_create.py
@@ -69,8 +69,12 @@ def test_finalize_docker(create_command, first_app_config, capsys):
 
     create_command.finalize_app_config(first_app_config)
 
+    stdout = capsys.readouterr().out
     # Warning message was not recorded
-    assert "WARNING: Building a Local AppImage!" not in capsys.readouterr().out
+    assert "WARNING: Building a Local AppImage!" not in stdout
+
+    # Generic appimage warning *was* recorded
+    assert "WARNING: Use of AppImage is not recommended!" in stdout
 
 
 def test_finalize_nodocker(create_command, first_app_config, capsys):
@@ -79,8 +83,12 @@ def test_finalize_nodocker(create_command, first_app_config, capsys):
 
     create_command.finalize_app_config(first_app_config)
 
-    # Warning message was not recorded
-    assert "WARNING: Building a Local AppImage!" in capsys.readouterr().out
+    stdout = capsys.readouterr().out
+    # Warning message was recorded
+    assert "WARNING: Building a Local AppImage!" in stdout
+
+    # Generic appimage warning *was* recorded
+    assert "WARNING: Use of AppImage is not recommended!" in stdout
 
 
 @pytest.mark.parametrize(