mirror of
https://github.com/aclist/dztui.git
synced 2026-11-06 18:10:58 +01:00
Compare commits
5
Commits
7.0.0b8
...
0c0a6ade4b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c0a6ade4b | ||
|
|
41b0e86fda | ||
|
|
fa486c2b76 | ||
|
|
8eb0a17b78 | ||
|
|
9e2d528436 |
No files matched your search
+3
-8
@@ -13,11 +13,6 @@ git submodule update --recursive --init
|
|||||||
sphinx-build -M html source build -a
|
sphinx-build -M html source build -a
|
||||||
|
|
||||||
# Building standalone DZGUI release binaries
|
# Building standalone DZGUI release binaries
|
||||||
1. Run `./scripts/dl_pyapp.sh`
|
1. Set up the build target: `rustup target add x86_64-unknown-linux-musl`
|
||||||
# TODO: secondary script that packs this archive
|
2. Run `python3 scripts/release.py`
|
||||||
2. Download cpython 3.13, linux, gnu, v3
|
3. Generate a release and tag against the bundled `dzgui` executable
|
||||||
https://github.com/astral-sh/python-build-standalone/releases/download/20251014/cpython-3.13.9%2B20251014-x86_64_v3-unknown-linux-gnu-install_only_stripped.tar.gz
|
|
||||||
3. Explicitly install dependencies into site-packages
|
|
||||||
4. Pack back into a tarball
|
|
||||||
5. Run `python3 scripts/release.py`
|
|
||||||
6. Generate a release and tag against the bundled `dzgui` executable
|
|
||||||
+2
-2
@@ -36,5 +36,5 @@ html_show_copyright = False
|
|||||||
html_show_sourcelink = False
|
html_show_sourcelink = False
|
||||||
|
|
||||||
today_fmt = "%Y-%m-%d"
|
today_fmt = "%Y-%m-%d"
|
||||||
release = "7.x.x"
|
release = "6.x.x - 7.x.x"
|
||||||
version = "7.x.x"
|
version = "6.x.x - 7.x.x"
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
Installation (DZGUI 6 legacy)
|
||||||
|
==================
|
||||||
|
|
||||||
|
Basic runtime dependencies
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
If not already installed, the below can be found in your system’s package manager.
|
||||||
|
|
||||||
|
If any dependencies are missing when the application starts, it will warn you, so you need not take any preemptive measures here.
|
||||||
|
|
||||||
|
- curl
|
||||||
|
- jq
|
||||||
|
- steam
|
||||||
|
- wmctrl or xdotool
|
||||||
|
- zenity
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
All dependencies are installed out of the box on Steam Deck.
|
||||||
|
|
||||||
|
UI dependencies (Python and PyGObject)
|
||||||
|
---------------------------------------
|
||||||
|
.. important::
|
||||||
|
As of version 6.0.0, you must have a valid Python 3.13 and matching PyGObject environment.
|
||||||
|
Depending on your distribution, this may require additional manual intervention.
|
||||||
|
|
||||||
|
Arch Linux (vanilla variants)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
You will need the ``python3.13`` package, if it is not already installed.
|
||||||
|
|
||||||
|
Install the following build dependencies:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo pacman -S cmake gcc pkgconf python-cairo
|
||||||
|
|
||||||
|
.. include:: venv.rst
|
||||||
|
|
||||||
|
CachyOS (Arch)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Refer to the build instructions for Arch Linux first.
|
||||||
|
The ``python3.13`` package is not available on CachyOS, so it is recommended to
|
||||||
|
use ``uv`` to manage Python versions.
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo pacman -S uv
|
||||||
|
|
||||||
|
.. include:: venv.rst
|
||||||
|
|
||||||
|
Manjaro 26 (Arch)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
If Python 3.13 is not already available out of the box, refer to the build instructions for :ref:`Arch Linux (vanilla variants)`.
|
||||||
|
|
||||||
|
Debian 13 variants
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Python 3.13 and PyGObject are available out of the box. No additional steps are necessary.
|
||||||
|
You can proceed to the :ref:`Installscript`.
|
||||||
|
|
||||||
|
Fedora 43 variants
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Fedora 43 ships with a newer version of Python (3.14), so you must set up Python 3.13 in its own
|
||||||
|
virtual environment (venv) to prevent it from conflicting with the system package.
|
||||||
|
|
||||||
|
Install the following build dependencies:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo dnf install cairo cairo-devel cairo-gobject-devel gcc python3.13 python3.13-devel
|
||||||
|
|
||||||
|
.. include:: venv.rst
|
||||||
|
|
||||||
|
Ubuntu 24 variants
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Ubuntu ships with an older version of Python (3.12). You must install additional dependencies.
|
||||||
|
Add the PPA below to add Python 3.13 to your sources:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo add-apt-repository ppa:deadsnakes/ppa
|
||||||
|
|
||||||
|
Install the following build dependencies:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo apt install python3.13 python3.13-venv python3.13-dev build-essential python3-gi-cairo pkg-config libgirepository-2.0-dev libcairo2-dev
|
||||||
|
|
||||||
|
.. include:: venv.rst
|
||||||
|
|
||||||
|
Installscript
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Invoke the command below from a terminal. This script fetches the main DZGUI script from the repository,
|
||||||
|
makes it executable, and launches DZGUI's first-time setup. After running this installscript, you will
|
||||||
|
have the file ``dzgui.sh`` wherever you invoked the command.
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
curl -s "https://codeberg.org/aclist/dztui/raw/branch/dzgui/install.sh" | bash
|
||||||
|
|
||||||
|
nixOS installation
|
||||||
|
----------------------
|
||||||
|
Two packages are independently maintained by other contributors. Each takes a slightly different approach.
|
||||||
|
nixOS packages are standalone and do not require cloning the git repository.
|
||||||
|
|
||||||
|
- https://github.com/lelgenio/dzgui-nix
|
||||||
|
- https://github.com/jiriks74/dzgui.flake
|
||||||
|
|
||||||
|
Next steps
|
||||||
|
---------------
|
||||||
|
Proceed to the :doc:`setup` section for setup instructions.
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
Installation (DZGUI 7 beta)
|
||||||
|
==================
|
||||||
|
|
||||||
|
In order to make the first-time setup experience easier for end-users, DZGUI 7 no longer requires
|
||||||
|
the tool to be installed from source code into a working Python environment. All necessary dependencies and the
|
||||||
|
runtime environment are built-in.
|
||||||
|
|
||||||
|
Turnkey installer
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- Visit the project's `Releases page <https://github.com/aclist/dztui/releases>`_.
|
||||||
|
- Extract the DZGUI tarball from the top of the **Assets** list.
|
||||||
|
- From a terminal, run the command ``./dzgui`` or double click on the extracted file in
|
||||||
|
a file explorer.
|
||||||
|
- Once the setup wizard opens, follow the steps at the bottom of this page.
|
||||||
|
|
||||||
|
UI dependencies (Python and PyGObject)
|
||||||
|
---------------------------------------
|
||||||
|
On most major distributions, GObject introspection libraries should be available by default.
|
||||||
|
|
||||||
|
If you receive an error about a missing ``libgirepository-2.0`` dependency, install it via your system's package manager.
|
||||||
|
|
||||||
|
On Debian-based distributions (Ubuntu, etc.), this package is not explicitly installed on the system.
|
||||||
|
You can install it via the following set of commands:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install libgirepository-2.0
|
||||||
|
|
||||||
|
Next steps
|
||||||
|
---------------
|
||||||
|
Proceed to the :doc:`setup` section for setup instructions.
|
||||||
@@ -1,110 +1,28 @@
|
|||||||
Installation
|
Installation
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Basic runtime dependencies
|
As of this writing, you have a choice of two DZGUI versions:
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
If not already installed, the below can be found in your system’s package manager.
|
- DZGUI 6: Legacy stable version, more complicated to install
|
||||||
|
- DZGUI 7: Unstable beta version, much easier to install
|
||||||
|
|
||||||
If any dependencies are missing when the application starts, it will warn you, so you need not take any preemptive measures here.
|
DZGUI 6
|
||||||
|
--------------------
|
||||||
|
This version is no longer receiving feature updates, but will receive security updates until it is replaced by DZGUI 7.
|
||||||
|
|
||||||
- curl
|
DZGUI 6 must be installed from the source code and has many more package dependencies and prerequisites for it to function correctly.
|
||||||
- jq
|
If you are looking for a one-click, self-contained installer, use :ref:`DZGUI 7` instead.
|
||||||
- steam
|
|
||||||
- wmctrl or xdotool
|
|
||||||
- zenity
|
|
||||||
|
|
||||||
.. note::
|
To install **DZGUI 6**, visit :doc:`dzgui6`.
|
||||||
All dependencies are installed out of the box on Steam Deck.
|
|
||||||
|
|
||||||
UI dependencies (Python and PyGObject)
|
|
||||||
---------------------------------------
|
|
||||||
.. important::
|
|
||||||
As of version 6.0.0, you must have a valid Python 3.13 and matching PyGObject environment.
|
|
||||||
Depending on your distribution, this may require additional manual intervention.
|
|
||||||
|
|
||||||
Arch Linux (vanilla variants)
|
DZGUI 7
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
--------------------
|
||||||
You will need the ``python3.13`` package, if it is not already installed.
|
This version is currently in beta testing and has all of the features found in DZGUI 6, but may be unstable.
|
||||||
|
|
||||||
Install the following build dependencies:
|
DZGUI 7 has an all-in-one installer and setup wizard, and many new features not found in DZGUI 6.
|
||||||
|
However, this codebase is newer and is provided as a pre-release beta candidate.
|
||||||
|
|
||||||
.. code:: console
|
If you want the simplest installer and don't mind experiencing the occasional bug, use this version.
|
||||||
|
|
||||||
sudo pacman -S cmake gcc pkgconf python-cairo
|
To install **DZGUI 7**, visit :doc:`dzgui7`.
|
||||||
|
|
||||||
.. include:: venv.rst
|
|
||||||
|
|
||||||
CachyOS (Arch)
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
Refer to the build instructions for Arch Linux first.
|
|
||||||
The ``python3.13`` package is not available on CachyOS, so it is recommended to
|
|
||||||
use ``uv`` to manage Python versions.
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
sudo pacman -S uv
|
|
||||||
|
|
||||||
.. include:: venv.rst
|
|
||||||
|
|
||||||
Manjaro 26 (Arch)
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
If Python 3.13 is not already available out of the box, refer to the build instructions for :ref:`Arch Linux (vanilla variants)`.
|
|
||||||
|
|
||||||
Debian 13 variants
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
Python 3.13 and PyGObject are available out of the box. No additional steps are necessary.
|
|
||||||
You can proceed to the :ref:`Installscript`.
|
|
||||||
|
|
||||||
Fedora 43 variants
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
Fedora 43 ships with a newer version of Python (3.14), so you must set up Python 3.13 in its own
|
|
||||||
virtual environment (venv) to prevent it from conflicting with the system package.
|
|
||||||
|
|
||||||
Install the following build dependencies:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
sudo dnf install cairo cairo-devel cairo-gobject-devel gcc python3.13 python3.13-devel
|
|
||||||
|
|
||||||
.. include:: venv.rst
|
|
||||||
|
|
||||||
Ubuntu 24 variants
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
Ubuntu ships with an older version of Python (3.12). You must install additional dependencies.
|
|
||||||
Add the PPA below to add Python 3.13 to your sources:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
sudo add-apt-repository ppa:deadsnakes/ppa
|
|
||||||
|
|
||||||
Install the following build dependencies:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
sudo apt install python3.13 python3.13-venv python3.13-dev build-essential python3-gi-cairo pkg-config libgirepository-2.0-dev libcairo2-dev
|
|
||||||
|
|
||||||
.. include:: venv.rst
|
|
||||||
|
|
||||||
Installscript
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Invoke the command below from a terminal. This script fetches the main DZGUI script from the repository,
|
|
||||||
makes it executable, and launches DZGUI's first-time setup. After running this installscript, you will
|
|
||||||
have the file ``dzgui.sh`` wherever you invoked the command.
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
curl -s "https://codeberg.org/aclist/dztui/raw/branch/dzgui/install.sh" | bash
|
|
||||||
|
|
||||||
nixOS installation
|
|
||||||
----------------------
|
|
||||||
Two packages are independently maintained by other contributors. Each takes a slightly different approach.
|
|
||||||
nixOS packages are standalone and do not require cloning the git repository.
|
|
||||||
|
|
||||||
- https://github.com/lelgenio/dzgui-nix
|
|
||||||
- https://github.com/jiriks74/dzgui.flake
|
|
||||||
|
|
||||||
Next steps
|
|
||||||
---------------
|
|
||||||
Proceed to the next section for setup instructions.
|
|
||||||
+12
-4
@@ -4,10 +4,8 @@ import subprocess
|
|||||||
import tarfile
|
import tarfile
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from prebuild import get_pyapp, rebuild_cpython
|
from prebuild import get_pyapp, rebuild_cpython
|
||||||
|
|
||||||
|
|
||||||
root = Path(__file__).resolve().parents[1]
|
root = Path(__file__).resolve().parents[1]
|
||||||
output = root.joinpath("dist")
|
output = root.joinpath("dist")
|
||||||
build_dir = root.joinpath("build")
|
build_dir = root.joinpath("build")
|
||||||
@@ -17,6 +15,7 @@ wheel = builder.build("wheel", output_directory=output)
|
|||||||
stem = Path(wheel).stem
|
stem = Path(wheel).stem
|
||||||
tarname = f"{stem}.tar.gz"
|
tarname = f"{stem}.tar.gz"
|
||||||
|
|
||||||
|
|
||||||
metadata = stem.split("-")
|
metadata = stem.split("-")
|
||||||
appname = metadata[0]
|
appname = metadata[0]
|
||||||
version = metadata[1]
|
version = metadata[1]
|
||||||
@@ -44,9 +43,18 @@ env["PYAPP_FULL_ISOLATION"] = "true"
|
|||||||
env["PYAPP_DISTRIBUTION_PATH"] = str(cpython)
|
env["PYAPP_DISTRIBUTION_PATH"] = str(cpython)
|
||||||
env["PYAPP_DISTRIBUTION_PYTHON_PATH"] = "python/bin/python3"
|
env["PYAPP_DISTRIBUTION_PYTHON_PATH"] = "python/bin/python3"
|
||||||
|
|
||||||
proc = subprocess.run(["cargo", "build", "--release"], env=env, cwd=pyapp_dir)
|
target = "x86_64-unknown-linux-musl"
|
||||||
|
build_params = [ "cargo", "build", "--release", "--target", target]
|
||||||
|
|
||||||
|
proc = subprocess.run(
|
||||||
|
build_params,
|
||||||
|
env=env,
|
||||||
|
cwd=pyapp_dir,
|
||||||
|
)
|
||||||
|
|
||||||
|
# TODO: set proper release tags on tarfile
|
||||||
if proc.returncode == 0:
|
if proc.returncode == 0:
|
||||||
output_exe = build_dir.joinpath("pyapp-latest/target/release/pyapp")
|
output_exe = build_dir.joinpath(f"pyapp-latest/target/{target}/release/pyapp")
|
||||||
release_exe = output.joinpath(appname)
|
release_exe = output.joinpath(appname)
|
||||||
output_exe.rename(release_exe)
|
output_exe.rename(release_exe)
|
||||||
tarpath = output.joinpath(tarname)
|
tarpath = output.joinpath(tarname)
|
||||||
|
|||||||
Reference in new issue
Block a user