engl-2311-blog/blog/building-blendos.html
2024-11-12 15:37:32 -06:00

126 lines
10 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>&ensp;|&ensp;<a href="/feed.xml">RSS</a>&ensp;|&ensp;<a href="/glossary.html">Glossary</a>&ensp;|&ensp;<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>