<!DOCTYPE html> <html lang="en"> <head> <meta content="width=device-width, initial-scale=1" charset="utf-8" /> <title>Building blendOS (and its packages)</title> <link href="/style.css" type="text/css" rel="stylesheet" /> <link href="/prism.css" type="text/css" rel="stylesheet" /> </head> <body class="line-numbers"> <h1 id="building-blendos-and-its-packages">Building blendOS (and its packages)</h1> <p>This one was pretty simple. First off, I just made <a href="https://git.askiiart.net/askiiart-blendos">an organization to hold all my blendOS code</a> on my Forgejo instance just to keep it organized. Then I just cloned all the relevant repositories from upstream (<em>blendOS · GitLab</em>), added my own code with some minor fixes and stuff, then pushed the updated code to my server.</p> <p>After that, it was just a matter of adding the actual packaging for the code. For the packages that were required for building the blendOS <code>iso</code> file, if I didn't have my own repository for them already, I just made a new branch, updated the packaging, and pushed the packaging to that branch.</p> <p>Looking at the <a href="https://git.blendos.co/blendOS/image-builder/-/blob/main/packages.x86_64">package list</a> from <code>image-builder</code> (<em>blendOS / image-builder · GitLab</em>), it seems the only blendOS-specific packages it uses are:</p> <div class="sourceCode" id="cb1"><pre class="language-txt"><code class="language-default"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>filesystem-blend</span> <span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>blend-inst-git</span> <span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>jade-gui</span> <span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>blend-git</span> <span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>blend-settings-git</span> <span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>blend-web-store-git</span> <span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a>akshara-git</span></code></pre></div> <p>At first, after a bit of minor troubleshooting, I got this all set up and working, pretty simple.</p> <h2 id="oops-it-didnt-work-actually">Oops it didn't work actually</h2> <p>I then realized that my <code>iso</code> file worked, but was not using my repo, and I had even forgotten to even add some of the packages.</p> <p>Turns out I had added my repo to the container's <code>pacman</code> configuration, but not to the <code>pacman</code> config for <code>archiso</code>, the tool used to generate the <code>iso</code> file, or the actual resulting <code>iso</code> image's <code>pacman</code> config either. So while I would have been able to install anything from my repo in the container, the repo was unused by <code>archiso</code>.</p> <p>I just added the missing packages needed to build the <code>iso</code> file, plus all the others on blendOS's GitLab, and rebuilt it. After a bit of troubleshooting (nothing interesting, just incompetency, wrong perms, stuff like that), I got it working perfectly.</p> <p>From the buid log:</p> <div class="sourceCode" id="cb2"><pre class="language-txt"><code class="language-default"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>[mkarchiso] INFO: Done!</span> <span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a>2.3G /drone/src/image-builder/out/blendOS-2024.10.04-x86_64.iso</span> <span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a>0</span></code></pre></div> <p><img src="/assets/building-blendos/1.png" title="Screenshot from Drone CI/CD showing the build successfully completed in 6 minutes 48 seconds" alt="Screenshot from Drone CI/CD showing the build successfully completed in 6 minutes 48 seconds" /><br /> <a href="https://drone.askiiart.net/askiiart-blendos/build-blendos-iso"><img src="https://drone.askiiart.net/api/badges/askiiart-blendos/build-blendos-iso/status.svg" title="Build Status" alt="Build Status" /></a></p> <h2 id="topology-of-my-blendos-repo">Topology of my blendOS repo</h2> <div class="sourceCode" id="cb3"><pre class="language-txt"><code class="language-default"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> |-----------------|</span> <span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a> | package builder |</span> <span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a> |-----------------|</span> <span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a> |</span> <span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a> |</span> <span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a> ↓</span> <span id="cb3-9"><a href="#cb3-9" aria-hidden="true" tabindex="-1"></a> |-----------------------------|</span> <span id="cb3-10"><a href="#cb3-10" aria-hidden="true" tabindex="-1"></a> | ↓ |</span> <span id="cb3-11"><a href="#cb3-11" aria-hidden="true" tabindex="-1"></a> | |----------| |</span> <span id="cb3-12"><a href="#cb3-12" aria-hidden="true" tabindex="-1"></a> | | packages | |</span> <span id="cb3-13"><a href="#cb3-13" aria-hidden="true" tabindex="-1"></a> | |----------| |</span> <span id="cb3-14"><a href="#cb3-14" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-15"><a href="#cb3-15" aria-hidden="true" tabindex="-1"></a> | Arch/blendOS |</span> <span id="cb3-16"><a href="#cb3-16" aria-hidden="true" tabindex="-1"></a> | repository |</span> <span id="cb3-17"><a href="#cb3-17" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-18"><a href="#cb3-18" aria-hidden="true" tabindex="-1"></a> | |-----------| |</span> <span id="cb3-19"><a href="#cb3-19" aria-hidden="true" tabindex="-1"></a> | | blendOS | |</span> <span id="cb3-20"><a href="#cb3-20" aria-hidden="true" tabindex="-1"></a> | | iso files |←---←|←---←</span> <span id="cb3-21"><a href="#cb3-21" aria-hidden="true" tabindex="-1"></a> | |-----------| | |</span> <span id="cb3-22"><a href="#cb3-22" aria-hidden="true" tabindex="-1"></a> | | |</span> <span id="cb3-23"><a href="#cb3-23" aria-hidden="true" tabindex="-1"></a> |-----------------------------| |</span> <span id="cb3-24"><a href="#cb3-24" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-25"><a href="#cb3-25" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-26"><a href="#cb3-26" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-27"><a href="#cb3-27" aria-hidden="true" tabindex="-1"></a> ↓ |</span> <span id="cb3-28"><a href="#cb3-28" aria-hidden="true" tabindex="-1"></a> |-------------------------| |</span> <span id="cb3-29"><a href="#cb3-29" aria-hidden="true" tabindex="-1"></a> | | |</span> <span id="cb3-30"><a href="#cb3-30" aria-hidden="true" tabindex="-1"></a> | Arch/blendOS | |</span> <span id="cb3-31"><a href="#cb3-31" aria-hidden="true" tabindex="-1"></a> | clients | |</span> <span id="cb3-32"><a href="#cb3-32" aria-hidden="true" tabindex="-1"></a> | | |</span> <span id="cb3-33"><a href="#cb3-33" aria-hidden="true" tabindex="-1"></a> | |--------------| | |</span> <span id="cb3-34"><a href="#cb3-34" aria-hidden="true" tabindex="-1"></a> | | blendOS iso |-----→|→---------↑</span> <span id="cb3-35"><a href="#cb3-35" aria-hidden="true" tabindex="-1"></a> | | builder | |</span> <span id="cb3-36"><a href="#cb3-36" aria-hidden="true" tabindex="-1"></a> | |--------------| |</span> <span id="cb3-37"><a href="#cb3-37" aria-hidden="true" tabindex="-1"></a> | |</span> <span id="cb3-38"><a href="#cb3-38" aria-hidden="true" tabindex="-1"></a> |-------------------------|</span></code></pre></div> <h2 id="citations">Citations</h2> <p> - Saraswat, Rudra, et al. “blendOS · GitLab.” <em>GitLab</em>, <a href="https://git.blendos.co/blendOS">git.blendos.co/blendOS</a>. Accessed 2 Oct. 2024.<br /> - Saraswat, Rudra, and Asterisk. “blendOS / image-builder · GitLab.” <em>GitLab</em>, <a href="https://git.blendos.co/blendOS/image-builder">git.blendos.co/blendOS/image-builder</a>. Accessed 3 Oct. 2024.</p> <iframe src="https://john.citrons.xyz/embed?ref=askiiart.net" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe> <script src="/prism.js"></script> </body> <footer> <p><a href="https://git.askiiart.net/askiiart/engl-2311-blog">Source code</a> | <a href="/feed.xml">RSS</a> | <a href="/glossary.html">Glossary</a> | <a href="/about.html">About</a></p> <small>Image captions are the same as the alt text; assuming you're sighted, you can most likely ignore them.</small> </footer> </html>