{{Header}}
{{#seo:
|description=Development Notes about Fedora
}}
{{intro|
Development Notes about Fedora
}}
= Fedora =

Consideration for recommending Fedora as host operating system...

Website

* Looks much more friendly and modern.
* It is available over SSL.
* [https://getfedora.org/security/ verification instructions] are also available over SSL.
* gpg signing key is available over SSL.

Package Manager

* yum is safe as apt according to the theupdateframework.com people

Consideration for using it as Virtual Machine Guest

(i.e. for {{project_name_gateway_long}} and {{project_name_workstation_long}})

* Is there a tool to create virtual machine images like there is grml-debootstrap for Debian?
** The feature set of grml-debootstrap seems to be a one-liner solution to getting a full working install.
** Fedora supports kickstart files, which are the equivalent of Debian preseeding. It should conceivably not be too difficult to achieve a grml-deboostrap experience using kickstart files plus some minimal scripting (if one does not exist already). Fedora has automated builds for docker images.
* The more restrictive approach taken by SELinux (which is default in Fedora) might offer some security benefits.

In-Place Release Upgrades:

* Can be release upgraded in-place from one major release to another major release. <ref>https://docs.fedoraproject.org/en-US/quick-docs/upgrading/</ref>

Release Cycle:

* <blockquote>Fedora has a relatively short life cycle: each version is usually supported for at least 13 months, where version X is supported only until 1 month after version X+2 is released and with approximately 6 months between most versions.</blockquote>
* Can {{project_name_long}} keep up with that?

Conflict of interest:

* Fedora won't really get stable since that would obsolete RHEL?

Package repository:

* Smaller than Debian?

apt-transport-tor:

* DNF equivalent is python3-dnf-plugin-torproxy.

Fedora doesn't seem to care about [https://fedoraproject.org/wiki/Reproducible_Builds Reproducible Builds].

Other stuff:

* Has not been considered yet.

* What would be particularly interesting is if {{project_name_short}} could provide a generalized set of scripts to set up the target environment in as much of a distro-agnostic way as possible (perhaps by leveraging Ansible, or similar).  Making a working Fedora version in addition to Debian might be a start towards that. &rarr; Unrealistic. Would require a dedicated [[Contribute#Contributor|contributor]]. A port causes a huge amount of work.

* Also interesting would be a containerized version of the {{project_name_gateway_short}} that could be easily deployed on a host OS (this provides less anonymity than what {{project_name_short}} is mainly aiming at, but has different use cases): For example, setting up an OnionPi-style hotspot.  Current solutions, like the Adafruit OnionPi tutorial, are (1) not very easily deployable, (2) not as feature-full -- for example, limited to HTTP or particular protocols -- not full isolating proxies, and (3) tend to have a large footprint on the host/root OS -- ideally, one Raspi could be used both for providing a Tor Hotspot and for numerous other functions, with the Tor hotspot functions contained in one LXC and using only a handful of ports and hardware interfaces from the host OS. &rarr; Same as above.

= Debugging Scriptlets =
1) Add the prerun scriptlet to a file by running the following command (credit<ref>Thanks to airfishey for the [https://unix.stackexchange.com/questions/214192/whats-the-fedora-equivalent-of-var-lib-dpkg-info-prerm/214193#214193 answer] on unix.stackexchange.</ref>):

<pre>
rpm -q --queryformat '%{PREUN}\n' qubes-template-whonix-gw-experimental > ~/qubes-template-whonix-gw-experimental.preun
</pre>

2) Run that script as root while having {{Code2|errexit}}, {{Code2|xtrace}} enabled and output exit code:

<pre>
sudo sh -ex ~/qubes-template-whonix-gw-experimental.preun 0 ; echo $?
</pre>

Trivia:<br />
The file name {{Code2|qubes-template-whonix-gw-experimental.preun}} actually doesn't matter. You could use a shorter file name.

= misc =
<pre>
sudo yum langinstall de
</pre>

Requires newer yum. So at the moment the easiest is using a Fedora based VM as UpdateVM.

<pre>
sudo qubes-dom0-update langinstall de
</pre>

= Issues =
phone home issue (says closed but is unfixed):

https://github.com/QubesOS/qubes-issues/issues/1814

= Forum Discussion =
https://forums.whonix.org/t/port-whonix-to-fedora-as-base-operating-system/16528

= See Also =
* [[Dev/Operating_System#Fedora]]

= Footnotes =
{{reflist|close=1}}

{{Footer}}

[[Category:Development]]