Skip to content
Merged
Show file tree
Hide file tree
Changes from 103 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
be4bbda
add newline for better rst conversion
maiska Jun 1, 2024
d04ee19
add newlines for better rst conversion
maiska Jun 1, 2024
0f1268e
Remove space for better rst conversion
maiska Jun 1, 2024
20972f2
add newline for better rst conversion
maiska Jun 1, 2024
6cf2fd5
add new line for better rst conv
maiska Jun 1, 2024
3ef2cd7
new lines rst conv
maiska Jun 1, 2024
3dcfa93
new line rst conv
maiska Jun 1, 2024
6b2ad28
newline rst conv
maiska Jun 1, 2024
5050b8d
better comv for rst prep
maiska Jun 8, 2024
ee6a768
better conv for rst
maiska Jun 12, 2024
607d525
better conv 4 rst
maiska Jun 12, 2024
c78d562
better formatting for rst conversion
maiska Jul 2, 2024
2346dac
formatting for better rst conversion
maiska Jul 2, 2024
326adab
better formatting for rst conv
maiska Jul 2, 2024
a1e5c64
better conv for rst
maiska Jul 6, 2024
90ed11a
better conv for rst
maiska Jul 6, 2024
93f851d
for better conv to rst
maiska Jul 6, 2024
32c32e6
preparation rst conversion
maiska Jul 28, 2024
0a94a1f
preparation rst conversion
maiska Jul 28, 2024
38cfff0
preparation rst conversion
maiska Jul 28, 2024
b7c6ff3
preparation rst conversion
maiska Jul 28, 2024
8fd6045
preparation rst ocnversion
maiska Jul 28, 2024
da97d63
preparation rst ocnversion
maiska Jul 28, 2024
7c2b1a4
preparation rst ocnversion
maiska Jul 28, 2024
ae14469
preparation rst ocnversion
maiska Jul 28, 2024
a60dc3a
prepare conversion to rst
maiska Jul 28, 2024
5941ae9
Merge branch 'QubesOS:main' into main
maiska Jul 28, 2024
230c80f
Merge branch 'QubesOS:main' into main
maiska Aug 9, 2024
f9c3715
preparation rst conversion
maiska Aug 10, 2024
3e93bd5
preparation conversion rst
maiska Aug 10, 2024
5926d88
preparation rst conversion
maiska Aug 11, 2024
b98221a
preparations rst conversion
maiska Aug 11, 2024
abbe9b1
preparation rst conversion
maiska Aug 11, 2024
d8eea9f
rst preparation conversion
maiska Aug 11, 2024
5c4c483
preparation rst conversion
maiska Aug 11, 2024
bdda0ae
preparation rst conversion
maiska Aug 11, 2024
d7d0308
preparation rst conversion
maiska Aug 11, 2024
df88aca
preparation rst conversion
maiska Aug 12, 2024
bdc020a
new line
maiska Sep 3, 2024
6c32c9d
preparation for rst conversion
maiska Sep 12, 2024
3006e84
preparation for rst conversion
maiska Sep 12, 2024
bfbad2b
removed a TODO comment for better rst conversion
maiska Sep 20, 2024
1ffc54d
fixed list for better rst conversion
maiska Sep 20, 2024
b330828
Reformat for better conversion to RST
tokideveloper Sep 21, 2024
8003064
fixed identation in lists, created sublists of lists, minor formattin…
maiska Sep 22, 2024
9b2e206
merge main
maiska Sep 22, 2024
c2a8a91
Merge pull request #1 from maiska/toki-newlines
maiska Sep 22, 2024
d4edd48
Merge branch 'QubesOS:main' into main
maiska Sep 22, 2024
0d9309e
rst conversion omitting extra space
maiska Sep 27, 2024
da85dd6
from bold to italic in title for better rst conversion
maiska Sep 27, 2024
89f81ec
added sublists for better rst conversion formatting
maiska Oct 4, 2024
4127448
Merge branch 'QubesOS:main' into main
maiska Oct 17, 2024
6b75c50
Merge branch 'QubesOS:main' into main
maiska Dec 25, 2024
c440190
Merge branch 'QubesOS:main' into toki-newlines
maiska Dec 25, 2024
00b72eb
Merge branch 'main' into toki-newlines
maiska Dec 27, 2024
ed16d12
Merge pull request #2 from maiska/toki-newlines
maiska Dec 27, 2024
62d9a4f
Fixed hierarchy of titles and added a fullstop
maiska Jan 15, 2025
4b625ee
Rearranged hyperlinked words
maiska Jan 15, 2025
79b2bfb
removed extra * char
maiska Jan 16, 2025
acfadd1
formatting
maiska Jan 16, 2025
cb1f45f
removed new lines
maiska Jan 16, 2025
8085719
small formatting issues
maiska Jan 18, 2025
e7385e9
merged upstream
maiska Jan 18, 2025
2d3bfcb
small formatting fixes in markdown
maiska Jan 22, 2025
b9067f7
hyperlink fix in markdown
maiska Jan 22, 2025
bef2385
icon properly displayed, formatting
maiska Jan 23, 2025
b88a6bf
Merge branch 'QubesOS:main' into main
maiska Jan 24, 2025
8338dab
Merge branch 'QubesOS:main' into main
maiska Jan 30, 2025
f3d5fb4
add new line for correct conversion of code block from md to rst
maiska Feb 9, 2025
8fb701e
add new line for correct conversion from md to rst
maiska Feb 9, 2025
d6925e0
QA rst conversion releases section: replace master with main in 1 fil…
maiska Feb 14, 2025
f62ae0b
added mailing list clarification
maiska Feb 16, 2025
2f094ef
url fixes, md link fix for rst translation
maiska Feb 21, 2025
2093a27
merge form upstream
maiska Feb 21, 2025
d4461fb
formatting, webarchive links, add icons
maiska Feb 27, 2025
99829ef
Merge branch 'QubesOS:main' into main
maiska Mar 8, 2025
6f9a1d7
formatting, valid url
maiska Mar 9, 2025
3a603a3
Merge branch 'main' of https://github.com/maiska/qubes-doc.rtd
maiska Mar 9, 2025
7e2b1b1
Merge branch 'QubesOS:main' into main
maiska Mar 16, 2025
1620034
Merge branch 'QubesOS:main' into main
maiska Mar 21, 2025
0c27497
minor formatting, wording
maiska Mar 21, 2025
2af734f
Merge branch 'main' of https://github.com/maiska/qubes-doc.rtd
maiska Mar 21, 2025
af631c8
Merge branch 'QubesOS:main' into main
maiska Mar 24, 2025
cbf4baa
Merge branch 'QubesOS:main' into main
maiska Mar 25, 2025
66c0baf
minor formatting & url fix
maiska Mar 26, 2025
67e3ffc
add ref to metadata to be consistent across documentation though soon…
maiska Mar 26, 2025
8300200
Merge branch 'refs-patch'
maiska Mar 26, 2025
951baf6
minor rewording, formatting
maiska Mar 31, 2025
cf30f8b
update
maiska Apr 16, 2025
bb37d69
update upstream
maiska Apr 22, 2025
f557026
update upstream
maiska May 3, 2025
0688e5d
update doc locally
maiska May 14, 2025
284e6d4
format fixes
maiska May 14, 2025
fa3b299
Merge branch 'QubesOS:main' into main
maiska May 15, 2025
9f76056
minor format fixes
maiska May 19, 2025
9e6c2e4
update from upstream
maiska May 20, 2025
23dce70
Merge remote-tracking branch 'upstream/main'
maiska May 21, 2025
f487cd4
update from upstream
maiska May 25, 2025
78654bf
added space, fixed links
maiska May 28, 2025
524928b
pre-final fixes
maiska Jun 3, 2025
7eaecbd
update from upstream
maiska Jun 5, 2025
823c5f3
admin-api reset to upstream
maiska Jun 6, 2025
4554eef
exchanged webarchive links, minor wording
maiska Jul 1, 2025
e3db139
fixed a tab
maiska Jul 1, 2025
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
10 changes: 5 additions & 5 deletions developer/building/development-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Don't forget to include the public PGP key you use to sign your tags.

#### Prepare fresh version of kernel sources, with Qubes-specific patches applied

In qubes-builder/artifacts/sources/linux-kernel:
In `qubes-builder/artifacts/sources/linux-kernel`:

~~~
make prep
Expand All @@ -65,22 +65,22 @@ drwxr-xr-x 6 user user 4096 Nov 21 20:48 kernel-3.4.18/linux-obj

#### Go to the kernel tree and update the version

In qubes-builder/artifacts/sources/linux-kernel:
In `qubes-builder/artifacts/sources/linux-kernel`:

~~~
cd kernel-3.4.18/linux-3.4.18
~~~

#### Changing the config

In kernel-3.4.18/linux-3.4.18:
In `kernel-3.4.18/linux-3.4.18`:

~~~
cp ../../config .config
make oldconfig
~~~

Now change the configuration. For example, in kernel-3.4.18/linux-3.4.18:
Now change the configuration. For example, in `kernel-3.4.18/linux-3.4.18`:

~~~
make menuconfig
Expand Down Expand Up @@ -139,7 +139,7 @@ RPMs will appear in

1. `./qb package diff` - show uncommitted changes
2. ` ./qb repository check-release-status-for-component` and
`./qb repository check-release-status-for-template`- show version of each
`./qb repository check-release-status-for-template` - show version of each
component/template (based on git tags)
3. `./qb package sign` - sign built packages
4. `./qb package publish` and `./qb package upload` - publish signed packages
Expand Down
10 changes: 7 additions & 3 deletions developer/building/qubes-builder-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,20 @@ if you don't know which executor to use, use docker.

2. Installing dependencies

If you want to use an app qube for developing, install dependencies in the template.
- If you want to use an app qube for developing, install dependencies in the template.
Copy link
Contributor

Choose a reason for hiding this comment

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

it looks bad, I'm not sure if the - was intentional here?
I'm not sure it's needed to have a -, there is a paragraph a bit after the 2. and it looks great

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i suppose i did this because of some conversion/formatting issues specifically for lists in markdown and rst :)

If you are using a standalone, install them in the qube itself.
Dependencies are specified in `dependencies-*.
txt` files in the main builder directory, and you can install them easily
in the following ways:
1. for Fedora, use:

```shell
$ sudo dnf install $(cat dependencies-fedora.txt)
$ test -f /usr/share/qubes/marker-vm && sudo dnf install qubes-gpg-split
```
2. for Debian (note: some Debian packages require Debian version 13 or
later), use:

```shell
$ sudo apt install $(cat dependencies-debian.txt)
$ test -f /usr/share/qubes/marker-vm && sudo apt install qubes-gpg-split
Expand All @@ -60,6 +62,7 @@ if you don't know which executor to use, use docker.
(re)start the development qube.

3. Clone the qubes-builder v2 repository into a location of your choice:

```shell
git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2/
Expand All @@ -68,12 +71,14 @@ if you don't know which executor to use, use docker.
4. If you haven't previously used docker in the current qube, you need to set up
some permissions. In particular, the user has to be added to the `docker`
group:

```shell
$ sudo usermod -aG docker user
```
Next, **restart the qube**.

5. Finally, you need to generate a docker image:

```shell
$ tools/generate-container-image.sh docker
```
Expand All @@ -94,7 +99,7 @@ You can use one of the sample files from the `example-configs/` directory; for a
more readable `builder.yml`, you can also include one of the files from that
directory in your `builder.yml`. An example `builder.yml` is:

```yaml
```
# include configuration relevant for the current release
include:
- example-configs/qubes-os-r4.2.yml
Expand All @@ -120,7 +125,6 @@ executor:
type: docker
options:
image: "qubes-builder-fedora:latest"

```


Expand Down
2 changes: 2 additions & 0 deletions developer/code/code-signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,11 @@ Although GitHub adds a little green `Verified` button next to the commit, the [s

1. Is the commit signed?
If the commit is not signed, you can see the message

> policy/qubesos/code-signing — No signature found
2. If the commit is signed, the key is downloaded from a GPG key server.
If you can see the following error message, please check if you have uploaded the key to a key server.

> policy/qubesos/code-signing — Unable to verify (no valid key found)

### No Signature Found
Expand Down
1 change: 1 addition & 0 deletions developer/code/source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ method you choose, you must [sign your code](/doc/code-signing/) before it can b

* **Preferred**: Use GitHub's [fork & pull requests](https://guides.github.com/activities/forking/).


Opening a pull request on GitHub greatly eases the code review and tracking
process. In addition, especially for bigger changes, it's a good idea to send
a message to the [qubes-devel mailing list](/support/#qubes-devel) in order to notify people who
Expand Down
2 changes: 2 additions & 0 deletions developer/debugging/automated-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,13 @@ It feeds off of the openQA test data to make graph plots. Here is an example:
![openqa-investigator-splitgpg-example.png](/attachment/doc/openqa-investigator-splitgpg-example.png)

Some outputs:

- plot by tests
- plot by errors
- markdown

Some filters:

- filter by error
- filter by test name

Expand Down
2 changes: 1 addition & 1 deletion developer/general/developing-gui-applications.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ If error should be thrown, you need to provide the error code and name, for exam
b'2\x00QubesNoSuchPropertyError\x00\x00No such property\x00'
```

For details of particular calls, you can use [Extending the mock Qubes object].
For details of particular calls, you can use [Extending the mock Qubes object](#extending-the-mock-qubes-object).


## Available mocks
Expand Down
102 changes: 5 additions & 97 deletions developer/general/gsoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,45 +174,6 @@ If applicable, links to more information or discussions

**Mentor**: [Frédéric Pierret](/team/)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

removed commented out section. should the information be available in some other form somewhere still?

Copy link
Contributor

Choose a reason for hiding this comment

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

better to remove it entirely, it's still in the history if someone wants to restore it later, there was certainly a reason to comment, but it's not like it's unrecoverable if you remove it

<!--

REMOVED as of February 2022: work is being done on this

### Wayland support in GUI agent and/or GUI daemon

**Project**: Wayland support in GUI agent and/or GUI daemon

**Brief explanation**: Currently both GUI agent (VM side of the GUI virtualization) and GUI daemon (dom0 side of GUI virtualization) support X11 protocol only. It may be useful to add support for Wayland there. Note that those are in fact two independent projects:

1. GUI agent - make it work as Wayland compositor, instead of extracting window's composition buffers using custom X11 driver
2. GUI daemon - act as Wayland application, showing windows retrieved from VMs, keeping zero-copy display path (window content is directly mapped from application running in VM, not copied)

**Expected results**:

Choose either of GUI agent, GUI daemon. Both are of similar complexity and each separately looks like a good task for GSoC time period.

- design relevant GUI agent/daemon changes, the GUI protocol should not be affected
- consider window decoration handling - VM should have no way of spoofing those, so it must be enforced by GUI daemon (either client-side - by GUI daemon itself, or server-side, based on hints given by GUI daemon)
- implement relevant GUI agent/daemon changes
- implement tests for new GUI handling, similar to existing tests for X11 based GUI

Relevant links:

- [Low level GUI documentation](/doc/gui/)
- [qubes-gui-agent-linux](https://github.com/qubesos/qubes-gui-agent-linux)
- [qubes-gui-daemon](https://github.com/qubesos/qubes-gui-daemon)
- [Use Wayland instead of X11 to increase performance](https://github.com/qubesos/qubes-issues/issues/3366)

**Knowledge prerequisite**:

- Wayland architecture
- basics of X11 (for understanding existing code)
- C language
- using shared memory (synchronization methods etc)

**Mentor**: [Marek Marczykowski-Górecki](/team/).

-->

### Qubes Live USB

Expand Down Expand Up @@ -252,26 +213,6 @@ details: [#1552](https://github.com/QubesOS/qubes-issues/issues/1552),

**Mentor**: [Frédéric Pierret](/team/)

<!--
### Unikernel-based firewallvm with Qubes firewall settings support

REMOVED as of January 2020: work is being done on this

**Project**: Unikernel based firewallvm with Qubes firewall settings support

**Brief explanation**: [blog post](https://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/), [repo](https://github.com/talex5/qubes-mirage-firewall)

**Expected results**: A firewall implemented as a unikernel which supports all the networking-related functionality as the default sys-firewall VM, including configuration via Qubes Manager. Other duties currently assigned to sys-firewall such as the update proxy may need to be appropriately migrated first.

**Knowledge prerequisite**:

- [OCaml](https://ocaml.org/) + [MirageOS](https://mirage.io/) or other unikernel framework,
- Xen network stack,
- Qubes networking model & firewall semantics.

**Mentor**: [Thomas Leonard](mailto:[email protected]), [Marek Marczykowski-Górecki](/team/)
-->

### LogVM(s)

**Project**: LogVM(s)
Expand Down Expand Up @@ -461,44 +402,6 @@ Some related discussion:
**Mentor**: [Marek Marczykowski-Górecki](/team/)


<!--

REMOVED as of February 2021: work is being done on this

### Porting Qubes to POWER9/PPC64

**Project**: Porting Qubes to POWER9/ppc64

**Brief explanation**:

Qubes currently supports the x86_64 CPU architecture. PowerPC is desirable for security purposes as it is the only architecture where one can get performant hardware with entirely open source firmware. Xen has **deprecated** support for Power9/PPC64 processors. Here are two directions to tackle this project from:

- Port Qubes to KVM then work on ppc64 specifics
- Implement some missing functionality in KVM then implement KVM support in the Qubes Hypervisor Abstraction Layer and build process. Improving the HAL will also be beneficial for simplifying the process of porting to further architectures and hypervisors.

- Port Xen to ppc64 then work on Qubes specifics
- For more information on porting Xen see [this thread](https://markmail.org/message/vuk7atnyqfq52epp).

More information and further links can be found in the related issue:
[#4318](https://github.com/QubesOS/qubes-issues/issues/4318).

**Expected results**:

- Add cross-compilation support to qubes-builder and related components.
- Make ppc64 specific adjustments to Qubes toolstacks/manager (including passthrough of devices from device tree to guest domains).
- ppc64 specific integration and unit tests.
- Production of generic u-boot or uefi capable image/iso for target hardware.

**Knowledge prerequisite**:

- Libvirt and Qubes toolstacks (C and python languages).
- KVM or XEN internals
- General ppc64 architecture knowledge.

**Mentor**: [Marek Marczykowski-Górecki](/team/)

-->

### Android development in Qubes

**Project**: Research running Android in Qubes VM (probably HVM) and connecting it to Android Studio
Expand Down Expand Up @@ -538,12 +441,14 @@ Since the Admin API is continuously growing and changing, continuous security as
A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of these assessments.

**Expected results**:

- fully automated & extensible Fuzzer for parts of the Admin API
- user & developer documentation

**Difficulty**: medium

**Prerequisites**:

- basic Python understanding
- some knowledge about fuzzing & existing fuzzing frameworks (e.g. [oss-fuzz](https://github.com/google/oss-fuzz/tree/master/projects/qubes-os))
- a hacker's curiosity
Expand All @@ -560,13 +465,15 @@ A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of
**Brief explanation**: Since recently, Xen supports "unified EFI boot" which allows to sign not only Xen binary itself, but also dom0 kernel and their parameters. While the base technology is there, enabling it is a painful and complex process. The goal of this project is to integrate configuration of this feature into Qubes, automating as much as possible. See discussion in [issue #4371](https://github.com/QubesOS/qubes-issues/issues/4371)

**Expected results**:

- a tool to prepare relevant boot files for unified Xen EFI boot - this includes collecting Xen, dom0 kernel, initramfs, config file, and possibly few more (ucode update?); the tool should then sign the file with user provided key (preferably propose to generate it too)
- integrate it with updates mechanism, so new Xen or dom0 kernel will be picked up automatically
- include a fallback configuration that can be used for troubleshooting (main unified Xen EFI intentionally does not allow to manipulate parameters at boot time)

**Difficulty**: hard

**Knowledge prerequisite**:

- basic understanding of Secure Boot
- Bash and Python scripting

Expand All @@ -586,6 +493,7 @@ A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of
**Difficulty**: medium

**Knowledge prerequisite**:

- Python scripting
- Basic knowledge of Linux system services management (systemd, syslog etc)

Expand Down
4 changes: 2 additions & 2 deletions developer/general/gsod.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ Qubes OS regularly participates in Google Summer of Code and Google Season of Do

## Past Projects

You can view the project we had in 2019 in the [2019 GSoD archive](https://developers.google.com/season-of-docs/docs/2019/participants/project-qubes) and the [2019 writer's report](https://refre.ch/report-qubesos/).
You can view the project we had in 2019 in the [2019 GSoD archive](https://developers.google.com/season-of-docs/docs/2019/participants/project-qubes) and the [2019 writer's report](https://web.archive.org/web/20200928002746/https://refre.ch/report-qubesos/).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Please have a look at the web archived versions of the reports

Copy link
Contributor

Choose a reason for hiding this comment

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

they look good enough for a web archive link! No problem for me

You can view the project we had in 2020 in the [2020 GSoD archive](https://developers.google.com/season-of-docs/docs/2020/participants/project-qubesos-c1e0) and the [2020 writer's report](https://gist.github.com/PROTechThor/bfe9b8b28295d88c438b6f6c754ae733).
You can view the project we had in 2020 in the [2020 GSoD archive](https://developers.google.com/season-of-docs/docs/2020/participants/project-qubesos-c1e0) and the [2020 writer's report](https://web.archive.org/web/20210723170547/https://gist.github.com/PROTechThor/bfe9b8b28295d88c438b6f6c754ae733).

You can view the results of the project we had in 2023 [here](https://www.youtube.com/playlist?list=PLjwSYc73nX6aHcpqub-6lzJbL0vhLleTB).

Expand Down
2 changes: 1 addition & 1 deletion developer/releases/2_0/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Note: if the user has custom Template VMs (i.e. other than the default template,

#### From Qubes R1 to R2 beta1

If you're already running Qubes Release 1, you don't need to reinstall, it's just enough to update the packages in your Dom0 and the template VM(s). This procedure is described [here?](/doc/upgrade-to-r2/).
If you're already running Qubes Release 1, you don't need to reinstall, it's just enough to update the packages in your Dom0 and the template VM(s). This procedure is described [here](/doc/upgrade-to-r2/).

#### From Qubes R1 or R2 Beta 1 to R2 beta2

Expand Down
2 changes: 1 addition & 1 deletion developer/releases/4_0/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: Qubes R4.0 release notes
New features since 3.2
----------------------

* Core management scripts rewrite with better structure and extensibility, [API documentation](https://dev.qubes-os.org/projects/core-admin/en/latest/index.html)
* Core management scripts rewrite with better structure and extensibility, [current API documentation](https://dev.qubes-os.org/projects/core-admin/en/latest/) and the documentation API index as a [webarchive](https://web.archive.org/web/20230128102821/https://dev.qubes-os.org/projects/qubes-core-admin/en/latest/)
* [Admin API](/news/2017/06/27/qubes-admin-api/) allowing strictly controlled managing from non-dom0
* All `qvm-*` command-line tools rewritten, some options have changed
* Renaming VM directly is prohibited, there is GUI to clone under new name and remove old VM
Expand Down
14 changes: 7 additions & 7 deletions developer/releases/4_2/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,17 @@ We strongly recommend [updating Qubes OS](/doc/how-to-update/) immediately after

- Qubes 4.2.2 includes a fix for [#8332: File-copy qrexec service is overly restrictive](https://github.com/QubesOS/qubes-issues/issues/8332). As explained in the issue comments, we introduced a change in Qubes 4.2.0 that caused inter-qube file-copy/move actions to reject filenames containing, e.g., non-Latin characters and certain symbols. The rationale for this change was to mitigate the security risks associated with unusual unicode characters and invalid encoding in filenames, which some software might handle in an unsafe manner and which might cause confusion for users. Such a change represents a trade-off between security and usability.

After the change went live, we received several user reports indicating more severe usability problems than we had anticipated. Moreover, these problems were prompting users to resort to dangerous workarounds (such as packing files into an archive format prior to copying) that carry far more risk than the original risk posed by the unrestricted filenames. In addition, we realized that this was a backward-incompatible change that should not have been introduced in a minor release in the first place.
- After the change went live, we received several user reports indicating more severe usability problems than we had anticipated. Moreover, these problems were prompting users to resort to dangerous workarounds (such as packing files into an archive format prior to copying) that carry far more risk than the original risk posed by the unrestricted filenames. In addition, we realized that this was a backward-incompatible change that should not have been introduced in a minor release in the first place.

Therefore, we have decided, for the time being, to restore the original (pre-4.2) behavior by introducing a new `allow-all-names` argument for the `qubes.Filecopy` service. By default, `qvm-copy` and similar tools will use this less restrictive service (`qubes.Filecopy +allow-all-names`) whenever they detect any files that would be have been blocked by the more restrictive service (`qubes.Filecopy +`). If no such files are detected, they will use the more restrictive service.
- Therefore, we have decided, for the time being, to restore the original (pre-4.2) behavior by introducing a new `allow-all-names` argument for the `qubes.Filecopy` service. By default, `qvm-copy` and similar tools will use this less restrictive service (`qubes.Filecopy +allow-all-names`) whenever they detect any files that would be have been blocked by the more restrictive service (`qubes.Filecopy +`). If no such files are detected, they will use the more restrictive service.

Users who wish to opt for the more restrictive 4.2.0 and 4.2.1 behavior can do so by modifying their RPC policy rules. To switch a single rule to the more restrictive behavior, change `*` in the argument column to `+` (i.e., change "any argument" to "only empty"). To use the more restrictive behavior globally, add the following "deny" rule before all other relevant rules:
- Users who wish to opt for the more restrictive 4.2.0 and 4.2.1 behavior can do so by modifying their RPC policy rules. To switch a single rule to the more restrictive behavior, change `*` in the argument column to `+` (i.e., change "any argument" to "only empty"). To use the more restrictive behavior globally, add the following "deny" rule before all other relevant rules:

```
qubes.Filecopy +allow-all-names @anyvm @anyvm deny
```
```
qubes.Filecopy +allow-all-names @anyvm @anyvm deny
```

For more information, see [RPC policies](/doc/rpc-policy/) and [Qube configuration interface](/doc/vm-interface/#qubes-rpc).
- For more information, see [RPC policies](/doc/rpc-policy/) and [Qube configuration interface](/doc/vm-interface/#qubes-rpc).

- Beginning with Qubes 4.2, the recommended way to update Qubes OS via the command line has changed. Salt is no longer the preferred method, though it is still supported. Instead, `qubes-dom0-update` is recommended for updating dom0, and `qubes-vm-update` is recommended for updating templates and standalones. (The recommended way to update via the GUI has not changed. The Qubes Update tool is still the preferred method.) For more information, see [How to update](/doc/how-to-update/).

Expand Down
Loading