mirror of
https://github.com/Rudd-O/qubes-network-server.git
synced 2026-04-06 08:28:48 +02:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
658e6dfa08 | ||
|
|
86fa5c509c | ||
|
|
15edce34a8 | ||
|
|
3a214bdfe1 | ||
|
|
2bc9d929f9 | ||
|
|
022414a4f8 |
@ -8,6 +8,11 @@ of setting up your own Xen server.
|
|||||||
This release is only intended for use with Qubes OS 4.2. Older Qubes OS releases
|
This release is only intended for use with Qubes OS 4.2. Older Qubes OS releases
|
||||||
will not support it. For Qubes OS 4.1, check branch `r4.1`.
|
will not support it. For Qubes OS 4.1, check branch `r4.1`.
|
||||||
|
|
||||||
|
**Important note about upgrades**: when you upgrade your system from Qubes OS 4.1 to
|
||||||
|
Qubes OS 4.2, if you have this package installed in your template, the template will
|
||||||
|
likely **fail to update**. Please consult [our upgrade instructions](doc/distupgrade.md)
|
||||||
|
for information on how to proceed.
|
||||||
|
|
||||||
## Why?
|
## Why?
|
||||||
|
|
||||||
Qubes OS is a magnificent operating system. That said, there are many use cases its networking
|
Qubes OS is a magnificent operating system. That said, there are many use cases its networking
|
||||||
|
|||||||
64
doc/distupgrade.md
Normal file
64
doc/distupgrade.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# How to upgrade a Qubes network server from Qubes OS 4.1 to Qubes OS 4.2
|
||||||
|
|
||||||
|
The [standard instructions to upgrade Qubes OS systems](https://www.qubes-os.org/doc/upgrade/4.2/)
|
||||||
|
will fail to work. The instructions tell you to run something to the effect of:
|
||||||
|
|
||||||
|
```
|
||||||
|
qubes-dist-upgrade --all-pre-reboot <other flags>
|
||||||
|
```
|
||||||
|
|
||||||
|
then reboot, then run:
|
||||||
|
|
||||||
|
```
|
||||||
|
qubes-dist-upgrade --all-post-reboot <other flags>
|
||||||
|
```
|
||||||
|
|
||||||
|
The pre-reboot phase will fail if run without the following precautions.
|
||||||
|
|
||||||
|
## Step by step instructions
|
||||||
|
|
||||||
|
First, build a `qubes-network-server` RPM with the instructions provided
|
||||||
|
by this package's [README.md](../README.md) file. Then, for each template
|
||||||
|
where `qubes-network-server` is installed, deposit your build of the
|
||||||
|
`qubes-network-server` RPM in a folder `/root/update` of the template,
|
||||||
|
and run the command `createrepo_c /root/update` (you may have to install
|
||||||
|
package `createrepo_c` via `dnf` to run it).
|
||||||
|
|
||||||
|
Now build a `qubes-core-admin-addon-network-server` package for your dom0,
|
||||||
|
then copy the file to your profile directory into dom0. Remember this
|
||||||
|
package has to be built *in the same Fedora release (37)* as the Qubes OS
|
||||||
|
4.2 dom0 (the `toolbox` command in a disposable qube is handy for this!).
|
||||||
|
|
||||||
|
Now open the file `/etc/dnf/dnf.conf` on every template qube where you
|
||||||
|
did the above, then add an `exclude=qubes-network-server` setting under
|
||||||
|
its `[main]` section.
|
||||||
|
|
||||||
|
Remove the currently-installed `qubes-core-admin-addon-network-server`
|
||||||
|
package from your dom0 (using `dnf remove`).
|
||||||
|
|
||||||
|
Run the pre-reboot phase.
|
||||||
|
|
||||||
|
Install the recently-built `qubes-core-admin-addon-network-server` package
|
||||||
|
into dom0 (using `dnf install` with the path to the RPM file).
|
||||||
|
|
||||||
|
Reboot.
|
||||||
|
|
||||||
|
Before running the post-reboot phase, remove the setting you added to the
|
||||||
|
`dnf.conf` file of each template you modified. Finally, add the file
|
||||||
|
`/etc/yum.repos.d/local.repo` with the following contents:
|
||||||
|
|
||||||
|
```
|
||||||
|
[local]
|
||||||
|
name=Local packages
|
||||||
|
baseurl=file:///root/update
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
metadata_expire=15
|
||||||
|
```
|
||||||
|
|
||||||
|
Now run the post-reboot phase. The template upgrade should succeed now.
|
||||||
|
|
||||||
|
To finalize, delete folder `/root/update` and file `/etc/yum.repos.d/local.repo`
|
||||||
|
from every template that has it.
|
||||||
|
|
||||||
|
You are now updated to Qubes OS 4.2 and `qubes-network-server` is ready.
|
||||||
@ -3,7 +3,7 @@
|
|||||||
%define mybuildnumber %{?build_number}%{?!build_number:1}
|
%define mybuildnumber %{?build_number}%{?!build_number:1}
|
||||||
|
|
||||||
Name: qubes-network-server
|
Name: qubes-network-server
|
||||||
Version: 0.1.3
|
Version: 0.1.6
|
||||||
Release: %{mybuildnumber}%{?dist}
|
Release: %{mybuildnumber}%{?dist}
|
||||||
Summary: Turn your Qubes OS into a network server
|
Summary: Turn your Qubes OS into a network server
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -92,6 +92,26 @@ tox --current-env
|
|||||||
%post
|
%post
|
||||||
%systemd_post qubes-routing-manager.service
|
%systemd_post qubes-routing-manager.service
|
||||||
|
|
||||||
|
%posttrans
|
||||||
|
# Remove old unit enablement paths.
|
||||||
|
reenable=0
|
||||||
|
if [ -h %{_sysconfdir}/systemd/system/multi-user.target.wants/qubes-routing-manager.service ]
|
||||||
|
then
|
||||||
|
reenable=1
|
||||||
|
rm -f %{_sysconfdir}/systemd/system/multi-user.target.wants/qubes-routing-manager.service
|
||||||
|
fi
|
||||||
|
if [ -h %{_sysconfdir}/systemd/system/qubes-iptables.service.wants/qubes-routing-manager.service ]
|
||||||
|
then
|
||||||
|
reenable=1
|
||||||
|
rm -f %{_sysconfdir}/systemd/system/qubes-iptables.service.wants/qubes-routing-manager.service
|
||||||
|
fi
|
||||||
|
if [ $reenable = 1 ]
|
||||||
|
then
|
||||||
|
mkdir -p %{_sysconfdir}/systemd/system/qubes-network.service.wants
|
||||||
|
ln -sf %{_unitdir}/qubes-routing-manager.service %{_sysconfdir}/systemd/system/qubes-network.service.wants/qubes-routing-manager.service
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%systemd_preun qubes-routing-manager.service
|
%systemd_preun qubes-routing-manager.service
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Configure the network to allow network server VMs
|
Description=Configure the network to allow network server VMs
|
||||||
Documentation=https://github.com/Rudd-O/qubes-network-server
|
Documentation=https://github.com/Rudd-O/qubes-network-server
|
||||||
After=qubes-iptables.service
|
After=qubes-network.service qubes-iptables.service
|
||||||
BindsTo=qubes-iptables.service
|
BindsTo=qubes-iptables.service
|
||||||
|
ConditionPathExists=/var/run/qubes-service/qubes-network
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
ExecStart=@SBINDIR@/qubes-routing-manager
|
ExecStart=@SBINDIR@/qubes-routing-manager
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=qubes-iptables.service
|
WantedBy=qubes-network.service
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user