add building blendos
This commit is contained in:
parent
4dbee5c616
commit
f314e2258e
6 changed files with 218 additions and 8 deletions
115
blog/building-blendos.html
Normal file
115
blog/building-blendos.html
Normal file
|
@ -0,0 +1,115 @@
|
|||
<!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?ref_type=heads">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 troublshooting (nothing
|
||||
interesting, just incompetency, wrong perms, stuff like that), I
|
||||
got it working perfectly.</p>
|
||||
<h2 id="topology-of-my-blendos-repo">Topology of my blendOS
|
||||
repo</h2>
|
||||
<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> |-----------------|</span>
|
||||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> | package builder |</span>
|
||||
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a> |-----------------|</span>
|
||||
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a> |</span>
|
||||
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a> |</span>
|
||||
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a> ↓</span>
|
||||
<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a> |-----------------------------|</span>
|
||||
<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a> | ↓ |</span>
|
||||
<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a> | |----------| |</span>
|
||||
<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a> | | packages | |</span>
|
||||
<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a> | |----------| |</span>
|
||||
<span id="cb2-14"><a href="#cb2-14" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-15"><a href="#cb2-15" aria-hidden="true" tabindex="-1"></a> | Arch/blendOS |</span>
|
||||
<span id="cb2-16"><a href="#cb2-16" aria-hidden="true" tabindex="-1"></a> | repository |</span>
|
||||
<span id="cb2-17"><a href="#cb2-17" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-18"><a href="#cb2-18" aria-hidden="true" tabindex="-1"></a> | |-----------| |</span>
|
||||
<span id="cb2-19"><a href="#cb2-19" aria-hidden="true" tabindex="-1"></a> | | blendOS | |</span>
|
||||
<span id="cb2-20"><a href="#cb2-20" aria-hidden="true" tabindex="-1"></a> | | iso files |←---←|←---←</span>
|
||||
<span id="cb2-21"><a href="#cb2-21" aria-hidden="true" tabindex="-1"></a> | |-----------| | |</span>
|
||||
<span id="cb2-22"><a href="#cb2-22" aria-hidden="true" tabindex="-1"></a> | | |</span>
|
||||
<span id="cb2-23"><a href="#cb2-23" aria-hidden="true" tabindex="-1"></a> |-----------------------------| |</span>
|
||||
<span id="cb2-24"><a href="#cb2-24" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-25"><a href="#cb2-25" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-26"><a href="#cb2-26" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-27"><a href="#cb2-27" aria-hidden="true" tabindex="-1"></a> ↓ |</span>
|
||||
<span id="cb2-28"><a href="#cb2-28" aria-hidden="true" tabindex="-1"></a> |-------------------------| |</span>
|
||||
<span id="cb2-29"><a href="#cb2-29" aria-hidden="true" tabindex="-1"></a> | | |</span>
|
||||
<span id="cb2-30"><a href="#cb2-30" aria-hidden="true" tabindex="-1"></a> | Arch/blendOS | |</span>
|
||||
<span id="cb2-31"><a href="#cb2-31" aria-hidden="true" tabindex="-1"></a> | clients | |</span>
|
||||
<span id="cb2-32"><a href="#cb2-32" aria-hidden="true" tabindex="-1"></a> | | |</span>
|
||||
<span id="cb2-33"><a href="#cb2-33" aria-hidden="true" tabindex="-1"></a> | |--------------| | |</span>
|
||||
<span id="cb2-34"><a href="#cb2-34" aria-hidden="true" tabindex="-1"></a> | | blendOS iso |-----→|→---------↑</span>
|
||||
<span id="cb2-35"><a href="#cb2-35" aria-hidden="true" tabindex="-1"></a> | | builder | |</span>
|
||||
<span id="cb2-36"><a href="#cb2-36" aria-hidden="true" tabindex="-1"></a> | |--------------| |</span>
|
||||
<span id="cb2-37"><a href="#cb2-37" aria-hidden="true" tabindex="-1"></a> | |</span>
|
||||
<span id="cb2-38"><a href="#cb2-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>, git.blendos.co/blendOS/image-builder.
|
||||
Accessed 3 Oct. 2024.<br />
|
||||
</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></p>
|
||||
<small>Image captions are the same as the alt text; assuming you're sighted, you can most likely ignore them.</small>
|
||||
</footer>
|
||||
</html>
|
75
blog/building-blendos.md
Normal file
75
blog/building-blendos.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
# Building blendOS (and its packages)
|
||||
|
||||
This one was pretty simple. First off, I just made [an organization to hold all my blendOS code](https://git.askiiart.net/askiiart-blendos) on my Forgejo instance just to keep it organized. Then I just cloned all the relevant repositories from upstream (*blendOS · GitLab*), added my own code with some minor fixes and stuff, then pushed the updated code to my server.
|
||||
|
||||
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 `iso` 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.
|
||||
|
||||
Looking at the [package list](https://git.blendos.co/blendOS/image-builder/-/blob/main/packages.x86_64?ref_type=heads) from `image-builder` (*blendOS / image-builder · GitLab*), it seems the only blendOS-specific packages it uses are:
|
||||
|
||||
```txt
|
||||
filesystem-blend
|
||||
blend-inst-git
|
||||
jade-gui
|
||||
blend-git
|
||||
blend-settings-git
|
||||
blend-web-store-git
|
||||
akshara-git
|
||||
```
|
||||
|
||||
At first, after a bit of minor troubleshooting, I got this all set up and working, pretty simple.
|
||||
|
||||
## Oops it didn't work actually
|
||||
|
||||
I then realized that my `iso` file worked, but was not using my repo, and I had even forgotten to even add some of the packages.
|
||||
|
||||
Turns out I had added my repo to the container's `pacman` configuration, but not to the `pacman` config for `archiso`, the tool used to generate the `iso` file, or the actual resulting `iso` image's `pacman` config either. So while I would have been able to install anything from my repo in the container, the repo was unused by `archiso`.
|
||||
|
||||
I just added the missing packages needed to build the `iso` file, plus all the others on blendOS's GitLab, and rebuilt it. After a bit of troublshooting (nothing interesting, just incompetency, wrong perms, stuff like that), I got it working perfectly.
|
||||
|
||||
## Topology of my blendOS repo
|
||||
|
||||
```txt
|
||||
|-----------------|
|
||||
| |
|
||||
| package builder |
|
||||
| |
|
||||
|-----------------|
|
||||
|
|
||||
|
|
||||
↓
|
||||
|-----------------------------|
|
||||
| ↓ |
|
||||
| |----------| |
|
||||
| | packages | |
|
||||
| |----------| |
|
||||
| |
|
||||
| Arch/blendOS |
|
||||
| repository |
|
||||
| |
|
||||
| |-----------| |
|
||||
| | blendOS | |
|
||||
| | iso files |←---←|←---←
|
||||
| |-----------| | |
|
||||
| | |
|
||||
|-----------------------------| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
↓ |
|
||||
|-------------------------| |
|
||||
| | |
|
||||
| Arch/blendOS | |
|
||||
| clients | |
|
||||
| | |
|
||||
| |--------------| | |
|
||||
| | blendOS iso |-----→|→---------↑
|
||||
| | builder | |
|
||||
| |--------------| |
|
||||
| |
|
||||
|-------------------------|
|
||||
```
|
||||
|
||||
## Citations
|
||||
|
||||
 Saraswat, Rudra, et al. “blendOS · GitLab.” *GitLab*, [git.blendos.co/blendOS](https://git.blendos.co/blendOS). Accessed 2 Oct. 2024.\
|
||||
 Saraswat, Rudra, and Asterisk. “blendOS / image-builder · GitLab.” *GitLab*, git.blendos.co/blendOS/image-builder. Accessed 3 Oct. 2024.\
|
6
feed.xml
6
feed.xml
|
@ -5,7 +5,7 @@
|
|||
<title>eng.askiiart.net</title>
|
||||
<description>This is the feed for engl.askiiart.net, I guess</description>
|
||||
<link>https://askiiart.net</link>
|
||||
<lastBuildDate>Thu, 19 Sep 2024 15:42:25 +0000</lastBuildDate>
|
||||
<lastBuildDate>Thu, 03 Oct 2024 15:46:35 +0000</lastBuildDate>
|
||||
<item>
|
||||
<title>Glossary</title>
|
||||
<link>https://engl.askiiart.net/glossary.html</link>
|
||||
|
@ -14,6 +14,10 @@
|
|||
<title>OCI Images as a "Filesystem": Vanilla OS</title>
|
||||
<link>https://engl.askiiart.net/blog/vanilla-os.html</link>
|
||||
</item>
|
||||
<item>
|
||||
<title>Building blendOS (and its packages)</title>
|
||||
<link>https://engl.askiiart.net/blog/building-blendos.html</link>
|
||||
</item>
|
||||
<item>
|
||||
<title>Checking out blendOS</title>
|
||||
<link>https://engl.askiiart.net/blog/blendos.html</link>
|
||||
|
|
|
@ -36,10 +36,14 @@
|
|||
track of different versions of files, can be used to resolve
|
||||
conflicting changes, etc.
|
||||
<ul>
|
||||
<li>Forking: Copying a Git repository and adding your own stuff
|
||||
to it. Can be simply to contribute the changes back to the
|
||||
upstream project later, or to use something as a base for your
|
||||
own project.</li>
|
||||
<li>Forking: Copying a Git repository and optionally and making
|
||||
changes to it. Can be simply to contribute the changes back to
|
||||
the upstream project later, or to use something as a base for
|
||||
your own project.</li>
|
||||
<li>Branches: Different "chains" of versions of code, which can,
|
||||
well, branch apart, merge back together, and so on. Different
|
||||
branches don't necessarily have to be related whatsoever, but
|
||||
they usually are made from other branches.</li>
|
||||
</ul></li>
|
||||
<li>Repository: Usually refers to either a Git repository (i.e.
|
||||
a Git project), or a server hosting packages to be installed by
|
||||
|
@ -78,8 +82,15 @@
|
|||
<li>blendOS: "Arch Linux, made declarative, immutable and
|
||||
atomic."
|
||||
<ul>
|
||||
<li>Akshara: blendOS's system rebuilder</li>
|
||||
<li>Akshara: blendOS's system rebuilder/updater</li>
|
||||
</ul></li>
|
||||
<li><code>pacman</code>: Arch Linux's package manager, also used
|
||||
by blendOS</li>
|
||||
<li><code>PKGBUILD</code>: A file defining how to build a
|
||||
package which can be install by <code>pacman</code>.</li>
|
||||
<li><code>iso</code> file: A disk image file, can be "burned" to
|
||||
a USB flash drive (or any other disk) and booted off of, often
|
||||
used for Linux installers and/or live images.</li>
|
||||
</ul>
|
||||
<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>
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
- AUR: Arch User Repository, a repository for Arch Linux packages which are maintained by users. AUR only hosts computer-readable instructions and related files (via `PKGBUILD` files) for creating the packages, not the packages or programs themselves
|
||||
- Filesystem: The system which keeps track of how data is written to disk, like NTFS, FAT32, or ext4. Some filesystems, like ZFS or btrfs, have extra features like redundancy or compression.![alt text](image.png)
|
||||
- Git: The most common version control system by far - keeps track of different versions of files, can be used to resolve conflicting changes, etc.
|
||||
- Forking: Copying a Git repository and adding your own stuff to it. Can be simply to contribute the changes back to the upstream project later, or to use something as a base for your own project.
|
||||
- Forking: Copying a Git repository and optionally and making changes to it. Can be simply to contribute the changes back to the upstream project later, or to use something as a base for your own project.
|
||||
- Branches: Different "chains" of versions of code, which can, well, branch apart, merge back together, and so on. Different branches don't necessarily have to be related whatsoever, but they usually are made from other branches.
|
||||
- Repository: Usually refers to either a Git repository (i.e. a Git project), or a server hosting packages to be installed by a package manager.
|
||||
- GUI toolkit: A set of programs used for making graphical interfaces
|
||||
- Qt: A GUI toolkit with an appearance similar to normal Windows interfaces; pronounced "cute"
|
||||
|
@ -24,4 +25,7 @@
|
|||
- Tarball: An archive of data, preserving its file and directory structure. Not compressed, though its tools come with options to compress it after generation.
|
||||
- `apt`: The package manager for Debian-based Linux distros.
|
||||
- blendOS: "Arch Linux, made declarative, immutable and atomic."
|
||||
- Akshara: blendOS's system rebuilder
|
||||
- Akshara: blendOS's system rebuilder/updater
|
||||
- `pacman`: Arch Linux's package manager, also used by blendOS
|
||||
- `PKGBUILD`: A file defining how to build a package which can be install by `pacman`.
|
||||
- `iso` file: A disk image file, can be "burned" to a USB flash drive (or any other disk) and booted off of, often used for Linux installers and/or live images.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
<url><loc>https://engl.askiiart.net/index.html</loc></url>
|
||||
<url><loc>https://engl.askiiart.net/glossary.html</loc></url>
|
||||
<url><loc>https://engl.askiiart.net/blog/building-blendos.html</loc></url>
|
||||
<url><loc>https://engl.askiiart.net/blog/vanilla-os.html</loc></url>
|
||||
<url><loc>https://engl.askiiart.net/blog/blendos.html</loc></url>
|
||||
</urlset>
|
||||
|
|
Loading…
Reference in a new issue