| 
							- <?php
 - $PAGE_TITLE    = "KXStudio : Repositories : FAQ";
 - $PAGE_TYPE     = "KXSTUDIO";
 - $PAGE_SOURCE_1 = ARRAY("/Repositories", "/Repositories:FAQ");
 - $PAGE_SOURCE_2 = ARRAY("Repositories", "FAQ");
 - include_once("includes/header.php");
 - ?>
 - 
 - <div class="box box-description">
 -     <p>
 -         This section contains frequent asked questions about the KXStudio repositories.
 -     </p>
 -     <p>
 -         You might also want to check:
 -     </p>
 -     <ul>
 -         <li><a href="<?php echo $ROOT; ?>/Repositories:Applications">Applications in the repositories</a></li>
 -         <li><a href="<?php echo $ROOT; ?>/Repositories:Plugins">Plugins in the repositories</a></li>
 -     </ul>
 - </div>
 - 
 - <h5>How do I activate the KXStudio repositories?</h5>
 - <p>
 -     Just follow the instructions <a href="<?php echo $ROOT; ?>/Repositories">here</a>.
 - </p>
 - 
 - <h5>How do I remove/uninstall the KXStudio repositories?</h5>
 - <p>
 -     Simply uninstall the kxstudio-repos package with the "purge" option, like so:
 - </p>
 - <pre>
 - sudo apt-get purge kxstudio-repos
 - </pre>
 - <p>
 -     Due to how Debian packages work, uninstalling a package does not remove its <b>/etc</b> content, as these are treated as system configuration files.<br/>
 -     We must use the <b>purge</b> option in order to delete such files.<br/>
 -     Note that this operation will not uninstall or downgrade individual packages.
 - </p>
 - 
 - <h5>I upgraded my OS and can no longer install KXStudio packages</h5>
 - <p>
 -     It is common for Ubuntu (and maybe others) to disable or even automatically modify external repository files when upgrading to a new version.<br/>
 -     This leads to the KXStudio repositories no longer being setup properly.
 - </p>
 - <p>
 -     Simply uninstall (using "purge", see above) and reinstall the KXStudio repositories again.
 - </p>
 - 
 - <h5>What computer systems are supported?</h5>
 - <p>
 -     Any modern Debian or Ubuntu based system, running GNU/Linux.<br/>
 -     For Debian, version 11 (Bullseye) is required; on Ubuntu, 20.04 (Focal).<br/>
 -     Anything more recent than this should be compatible.<br/>
 -     <br style="line-height:0.5em"/>
 -     The only real requirement is it being a computer capable of running <b>x86_64</b> (pretty much everything nowadays)
 -     or an ARM-based system, which can be <b>armhf</b> (ARM 32bit with neon-vfpv4) or <b>aarch64</b> (ARM 64bit).<br/>
 -     Legacy i686 systems (PCs that cannot do 64bit) are not supported.
 - </p>
 - 
 - <h5>I found an issue with a package, where can I report it?</h5>
 - <p>
 -     Bug reports and package requests should be posted in the Github tracker
 -     <a href="https://github.com/KXStudio/Repository/issues" target="_blank">here</a>.
 - </p>
 - 
 - <h5>Can I make a request for this new awesome-super-great application?</h5>
 - <p>
 -     You can, but it will likely not be answered. The KXStudio repositories focus on audio plugins, not general applications.
 - </p>
 - 
 - <h5>Why are applications not the focus for the KXStudio repositories?</h5>
 - <p>
 -     A few reasons actually:
 - </p>
 - <ul>
 -   <li>Applications can easily have flatpaks, snaps or whatever.<br/>
 -       If they provide officially supported binaries, why not use them instead of duplicating efforts (of making binaries).</li>
 -   <li>They often have very complex dependencies compared to plugins, some are actually quite difficult to build.</li>
 -   <li>Distributions have a lot of margin to get things right, compared to plugins.<br/>
 -       Plugins can be tricky for general GNU/Linux distributions, as they need to be self-contained.<br/>
 -       Applications are mostly fine as long as they start.</li>
 -   <li>Likely I will not use them, so they offer no benefit to me.</li>
 - </ul>
 - 
 - <h5>Why are plugins tricky for general distributions?</h5>
 - <p>
 -     As you likely already know, we run a lot of audio plugins at the same time, all in the same process space.
 -     If a single plugin misbehaves or crashes, it usually brings down the entire host or DAW.<br/>
 - </p>
 - <p>
 -     So it is vital that we build the plugins in a way to minimize issues.
 -     They must be self-contained and never conflict with each other (as much as possible anyway).
 -     This entails, for example:
 - </p>
 - <ul>
 -   <li><b>Building all plugin code and its dependencies with hidden symbols</b>, so only the plugin-format-defined entry-points are visible within a shared object.<br/>
 -       When this is not done, a plugin that uses a different audio library version from the host will crash.<br/>
 -       This is usually not a problem if one uses only binaries from the distributions, but we cannot assume that it will always be that way...<br/>
 -       Note that this is not just about building plugins in a certain way, but also <b>all of its dependencies</b>.<br/>
 -       <br style="line-height:0.5em"/>
 -       For example: flatpaks, snaps, appimages and others include their own version of libraries needed by the application, which will publically expose symbols.<br/>
 -       In such cases, loading a plugin that uses a library also used by the host will result in a crash if their target versions don't match.<br/>
 -       Packages built in the KXStudio repositories do not have this issue.</li>
 -   <li><b>SSE2 optimizations required to prevent denormals</b>.<br/>
 -       We want to avoid denormals in audio applications, as it leads to very high CPU usage.<br/>
 -       Checking for denormals on each buffer cycle is not cost-free for the CPU, but we can setup things so that they don't even happen to begin with!<br/>
 -       This can be achieved by activating specific build flags (<i>-ffast-math -mfpmath=sse</i>) and set a few CPU flags in the audio thread.<br/>
 -       Some plugins include such flags as part of their build rules, but not all.<br/>
 -       Packages in the KXStudio repositories have all these flags active (all plugin builds, plus audio threads set the needed CPU flags),
 -       so denormals become a thing of the past. :)<br/>
 -       <br style="line-height:0.5em"/>
 -       Something to note is that distributions like Debian, which want to keep support for old hardware, cannot enable this.
 -       This is because old hardware does not always have SSE2 support, so it becomes risky to enable it.</li>
 - </ul>
 - 
 - <h5>Why are packages prefixed with "5:" that bumps it over regular packages from other sources?</h5>
 - <p>
 -     This is for protection of those running the KXStudio repositories in rolling-release style distributions.<br/>
 -     An update from the distribution which does not follow KXStudio rules is a potential source of issues (see the points above).<br/>
 -     Better to have something stable that you know won't break during updates.<br/>
 -     (The focus on plugins in the repositories means it is much less work to maintain them, and this critical.
 -     The KXStudio repositories should be up-to-date as much as possible)
 - </p>
 - 
 - <p><br/></p>
 - 
 - <?php
 - include_once("includes/footer.php");
 - ?>
 
 
  |