Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update/clarify Linux system requirements #2549

Merged
merged 2 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/2549.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The system requirements were updated to be more explicit and now include details for OpenSUSE Tumbleweed.
26 changes: 1 addition & 25 deletions docs/how-to/contribute/code.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,31 +86,7 @@ Next, install any additional dependencies for your operating system:

.. group-tab:: Linux

Ubuntu 18.04+, Debian 10+

.. code-block:: console

(venv) $ sudo apt update
(venv) $ sudo apt install pkg-config python3-dev libgirepository1.0-dev libcairo2-dev gir1.2-webkit2-4.0 libcanberra-gtk3-module

Fedora

.. code-block:: console

(venv) $ sudo dnf install pkg-config python3-devel gobject-introspection-devel cairo-gobject-devel webkit2gtk3 libcanberra-gtk3

Arch / Manjaro

.. code-block:: console

(venv) $ sudo pacman -Syu git pkgconf gobject-introspection cairo webkit2gtk libcanberra

FreeBSD

.. code-block:: console

(venv) $ sudo pkg update
(venv) $ sudo pkg install gobject-introspection cairo webkit2-gtk3
.. include:: /reference/platforms/unix-prerequisites.rst

.. group-tab:: Windows

Expand Down
10 changes: 8 additions & 2 deletions docs/how-to/contribute/docs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ You'll also need to install the Enchant spell checking library.

Enchant can be installed as a system package:

**Ubuntu 20.04+ / Debian 10+**
**Ubuntu / Debian**

.. code-block:: console

Expand All @@ -53,12 +53,18 @@ You'll also need to install the Enchant spell checking library.

$ sudo dnf install enchant

**Arch, Manjaro**
**Arch / Manjaro**

.. code-block:: console

$ sudo pacman -Syu enchant

**OpenSUSE Tumbleweed**

.. code-block:: console

$ sudo zypper install enchant

.. group-tab:: Windows

Enchant is installed automatically when you set up your development
Expand Down
3 changes: 2 additions & 1 deletion docs/reference/api/widgets/mapview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,11 @@ System requirements
for WebKit2, plus the GObject Introspection bindings for WebKit2. The name of
the system package required is distribution dependent:

- Ubuntu 18.04, 20.04; Debian 11: ``gir1.2-webkit2-4.0``
- Ubuntu 20.04; Debian 11: ``gir1.2-webkit2-4.0``
- Ubuntu 22.04+; Debian 12+: ``gir1.2-webkit2-4.1``
- Fedora: ``webkit2gtk4.1``
- Arch/Manjaro: ``webkit2gtk-4.1``
- OpenSUSE Tumbleweed: ``libwebkit2gtk3 typelib(WebKit2)``
- FreeBSD: ``webkit2-gtk3``

* Using MapView on Android requires the OSMDroid package in your project's Gradle
Expand Down
3 changes: 2 additions & 1 deletion docs/reference/api/widgets/webview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,11 @@ System requirements
for WebKit2, plus the GObject Introspection bindings for WebKit2. The name of
the system package required is distribution dependent:

- Ubuntu 18.04, 20.04; Debian 11: ``gir1.2-webkit2-4.0``
- Ubuntu 20.04; Debian 11: ``gir1.2-webkit2-4.0``
- Ubuntu 22.04+; Debian 12+: ``gir1.2-webkit2-4.1``
- Fedora: ``webkit2gtk4.1``
- Arch/Manjaro: ``webkit2gtk-4.1``
- OpenSUSE Tumbleweed: ``libwebkit2gtk3 typelib(WebKit2)``
- FreeBSD: ``webkit2-gtk3``

Notes
Expand Down
8 changes: 3 additions & 5 deletions docs/reference/platforms/linux.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,9 @@ The Toga backend for Linux (and other Unix-like operating systems) is `toga-gtk
Prerequisites
-------------

``toga-gtk`` requires GTK 3.22 or newer. This requirement can be met with with all
versions of Ubuntu since 18.04, and all versions of Fedora since Fedora 26.

Toga receives the most testing with GTK 3.24. This is the version that has shipped with
all versions of Ubuntu since Ubuntu 20.04, and all versions of Fedora since Fedora 29.
``toga-gtk`` requires GTK 3.22 or newer. Most testing occurs with GTK 3.24 as this is
the version that has shipped with all versions of Ubuntu since Ubuntu 20.04, and all
versions of Fedora since Fedora 29.

The system packages that provide GTK must be installed manually:

Expand Down
16 changes: 11 additions & 5 deletions docs/reference/platforms/unix-prerequisites.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,37 @@ some of the common alternatives:
The package list should be the same as in ci.yml, and the BeeWare tutorial
(CI will also have WebView requirements)

**Ubuntu 18.04+ / Debian 11+**
**Ubuntu / Debian**

.. code-block:: console

(venv) $ sudo apt update
(venv) $ sudo apt install pkg-config python3-dev libgirepository1.0-dev libcairo2-dev libcanberra-gtk3-module
(venv) $ sudo apt install gcc git pkg-config python3-dev gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev libcanberra-gtk3-module
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use build-essential instead of gcc in the Dockerfile for briefcase-linux-system-template... any reason not to do the same here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to be more conservative because we know the dependencies for the packages we're trying to install. I'm mostly ambivalent, though, so I can use build-essential (or equivalent).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we were talking about installing an esoteric group of packages, I'd probably agree - but this is basic build dependencies like gcc and make - I don't think there's anything to extravagant in that list.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fedora does have yum groupinstall "Development Tools"....but it installs so much...


**Fedora**

.. code-block:: console

(venv) $ sudo dnf install pkg-config python3-devel gobject-introspection-devel cairo-gobject-devel libcanberra-gtk3
(venv) $ sudo dnf install gcc git pkg-config python3-devel gtk3 gobject-introspection-devel cairo-gobject-devel libcanberra-gtk3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Dockerfile version uses gcc make

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True; we need make to build the stub app.


**Arch / Manjaro**

.. code-block:: console

(venv) $ sudo pacman -Syu git pkgconf gobject-introspection cairo libcanberra
(venv) $ sudo pacman -Syu gcc git pkgconf python3 gtk3 gobject-introspection cairo libcanberra
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dockerfile version uses base-level rather than gcc.


**OpenSUSE Tumbleweed**

.. code-block:: console

(venv) $ sudo zypper install gcc git pkgconf-pkg-config python3-devel gtk3 'typelib(Gtk)=3.0' gobject-introspection-devel cairo-devel libcanberra-gtk3-0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dockerfile version uses a second "pattern" install for devel_basis, rather than an explicit gcc.


**FreeBSD**

.. code-block:: console

(venv) $ sudo pkg update
(venv) $ sudo pkg install gobject-introspection cairo libcanberra-gtk3
(venv) $ sudo pkg install gcc cmake git python3 pkgconf gtk3 gobject-introspection cairo libcanberra-gtk3

If you're not using one of these, you'll need to work out how to install the developer
libraries for ``python3``, ``cairo``, and ``gobject-introspection`` (and please let us
Expand Down
Loading