From 555cd33eb6247f135b37308eecb7c5ed323f5806 Mon Sep 17 00:00:00 2001 From: deeplow Date: Thu, 7 Dec 2023 12:53:53 +0000 Subject: [PATCH] Simplify Qubes install instructions Many instructions relied on the fact that the developer would have to copy over the RPC policies and install the dependencies manually on the template. This is no longer needed since a Qubes-built package ships the necessary RPC policies and dependencies. Removing the dependencies installation also helps with documentation maintenance since it would be yet another place where we would need to keep the dependency list up to date. --- BUILD.md | 84 ++++++++++++++++---------------------------------------- 1 file changed, 23 insertions(+), 61 deletions(-) diff --git a/BUILD.md b/BUILD.md index c2eb2f9..228543e 100644 --- a/BUILD.md +++ b/BUILD.md @@ -188,24 +188,14 @@ The following instructions require typing commands in a terminal in dom0. dz.ConvertDev * @anyvm @dispvm:dz-dvm allow ``` -#### In the `fedora-38-dz` template - -1. Install dependencies: - - ``` - sudo dnf install -y rpm-build podman python3 python3-devel \ - python3-poetry-core pipx qt6-qtbase-gui libreoffice python3-magic \ - python3-keyring tesseract* - ``` - -2. Shutdown the `fedora-38-dz` template: - - ``` - shutdown -h now - ``` - #### In the `dz` app qube +In the following steps you'll setup the development environment and +install a dangerzone build. This will make the development faster since it +loads the server code dynamically each time it's run, instead of having +to build and install a server package each time the developer wants to +test it. + 1. Clone the Dangerzone project: ``` @@ -213,35 +203,28 @@ The following instructions require typing commands in a terminal in dom0. cd dangerzone ``` -2. Copy the Qubes RPC calls into the template for the **disposable** qube - that will be used for document sanitization (`dz-dvm`): +2. Follow the Fedora instructions for setting up the development environment - ``` - qvm-copy qubes/* +3. Build a dangerzone `.rpm` for qubes with the command + + ```sh + ./install/linux/build-rpm.py --qubes ``` - And then choose `dz-dvm` as the target. - -#### In the `dz-dvm` template - -1. Create the directory that will contain the Dangerzone RPC calls, if it does - not exist already: - - ``` - sudo mkdir -p /rw/usrlocal/etc/qubes-rpc/ +4. Copy the produced `.rpm` file into `fedora-38-dz` + ```sh + qvm-copy dist/*.x86_64.rpm ``` -2. Move the files we copied in the previous step to their proper place: +#### In the `fedora-38-dz` template - ``` - sudo cp ~/QubesIncoming/dz/* /rw/usrlocal/etc/qubes-rpc/ +1. Install the `.rpm` package you just copied + + ```sh + sudo dnf install ~/QubesIncoming/dz/*.rpm ``` -3. Shutdown the `dz-dvm` qube: - - ``` - shutdown -h now - ``` +2. Shutdown the `fedora-38-dz` template ### Developing Dangerzone @@ -272,31 +255,10 @@ For changes in the server side components, you can simply edit them locally, and they will be mirrored to the disposable qube through the `dz.ConvertDev` RPC call. -The only reason to update the `fedora-38-dz` template from there on is if: +The only reason to build a new Qubes RPM and install it in the `fedora-38-dz` +template for development is if: 1. The project requires new server-side components. -2. The code for `dz.ConvertDev` needs to be updated. Copy the updated file - as we've shown in the steps above. - -### Installing Dangerzone system-wide - -If you want to test the .rpm you just created, you can do the following: - -On the `dz` app cube, copy the built `dangerzone.rpm` to `fedora-38-dz` -template: - -``` -qvm-copy-to-vm fedora-38-dz dist/dangerzone*.noarch.rpm -``` - -On the `fedora-38-dz` template, install the copied .rpm: - -``` -sudo dnf install -y ~/QubesIncoming/dz/dangerzone-*.rpm -``` - -Shutdown the `fedora-38-dz` template and the `dz` app qube, and then you can -refresh the applications on the `dz` qube, find Dangerzone in the list, and use -it to convert a document. +2. The code for `qubes/dz.ConvertDev` needs to be updated. ## macOS