<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.fyralabs.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KorewaChino</id>
	<title>Fyra Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.fyralabs.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KorewaChino"/>
	<link rel="alternate" type="text/html" href="https://wiki.fyralabs.com/Special:Contributions/KorewaChino"/>
	<updated>2026-04-18T09:00:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wiki.fyralabs.com/index.php?title=Ultramarine_Linux&amp;diff=182</id>
		<title>Ultramarine Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.fyralabs.com/index.php?title=Ultramarine_Linux&amp;diff=182"/>
		<updated>2023-10-01T12:59:20Z</updated>

		<summary type="html">&lt;p&gt;KorewaChino: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fyra Labs]]&lt;br /&gt;
&#039;&#039;&#039;Ultramarine Linux&#039;&#039;&#039; is a [[wikipedia:Fedora|Fedora]]-based [[wikipedia:Linux|Linux]] distribution designed to be easy to use for everyone, from beginners to tech enthusiasts.&lt;br /&gt;
It provides sane-defaults such that &amp;quot;it just works&amp;quot; and minimal configurations are required before users can start using the system.&lt;br /&gt;
&lt;br /&gt;
It comes with 4 editions, namely the Flagship Edition, the GNOME Edition, the Pantheon Edition, and the KDE Plasma Edition.&lt;br /&gt;
It also comes with several tweaks preapplied to make initial setup and daily usage seamless.&lt;br /&gt;
&lt;br /&gt;
The Ultramarine Linux distribution is created and maintained by the &#039;&#039;&#039;Ultramarine Project&#039;&#039;&#039;, which is led by &#039;&#039;&#039;Cappy Ishihara&#039;&#039;&#039; started in 2021, and later acquired by [[Fyra Labs]].&lt;br /&gt;
&lt;br /&gt;
== Editions ==&lt;br /&gt;
=== CuteFish ===&lt;br /&gt;
Before the release of Ultramarine 37, the [[CuteFish]] Edition was provided but later deprecated due to CuteFish DE&#039;s lack of&lt;br /&gt;
development and (consequently) its buggy behaviour and broken dependencies. It was then removed and replaced by the KDE Plasma Edition.&lt;br /&gt;
&lt;br /&gt;
=== Flagship ===&lt;br /&gt;
The Flagship Edition provides an elegant and simple interface with [[wikipedia:Budgie (desktop environment)|Budgie DE]].&lt;br /&gt;
The Budgie version used was packaged in the Ultramarine repository until Ultramarine 37, but it will switch to the one in the Fedora official repositories by Ultramarine 38.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
The GNOME Edition provides an intuitive layout with [[wikipedia:GNOME|GNOME]].&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma ===&lt;br /&gt;
The KDE Plasma Edition is provided since the release of Ultramarine 37 and it comes with Latte dock. Its layout is heavily inspired by [[wikipedia:Pop!_OS|Pop!_OS]].&lt;br /&gt;
However, Latte dock was removed in Ultramarine 38 due to negative feedback and its buggy behaviour and replaced by the default KDE Plasma theme.&lt;br /&gt;
&lt;br /&gt;
=== Pantheon ===&lt;br /&gt;
The Pantheon Edition provides the default desktop of [[wikipedia:Elementary OS|Elementary OS]], Pantheon DE.&lt;br /&gt;
The version in [[Terra]] was used since Ultramarine 37 as it was removed from the Fedora 37 repositories.&lt;br /&gt;
&amp;lt;!-- TODO: Lapis --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Philosophy ==&lt;br /&gt;
Ultramarine Project, the team behind the development of Ultramarine Linux and its side projects, has the goal of making Ultramarine Linux an operating system that &amp;quot;just works&amp;quot;, meaning customizations and tweaks don&#039;t have to be applied manually and things should work out of the box.&lt;br /&gt;
&lt;br /&gt;
In addition to user experience, the infrastructure of the Project is also designed to be developer-friendly. One notable example is [[Terra]], which allows much easier creation and maintenance of RPM packages with the help of automatic updates when compared with Fedora.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Ultramarine Linux comes with a few repositories preinstalled, including [[wikipedia:RPM Fusion|RPM Fusion]], [[wikipedia:Flathub|Flathub]] and [[Terra]].&lt;br /&gt;
It also has its own repository with its sources [https://github.com/Ultramarine-Linux/ultramarine-pkgs/ hosted on GitHub] and powered by [[Andaman]].&lt;br /&gt;
The packages were hosted separately with their own git repository on a self-hosted GitLab instance and later GitHub, packaged using [[umpkg]].&lt;br /&gt;
&lt;br /&gt;
It uses the [[wikipedia:Anaconda (installer)|Anaconda installer]], but it is said that there will be a custom installer.&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The TUI installer &amp;lt;code&amp;gt;libcappy&amp;lt;/code&amp;gt; is working but unused. Now deprecated in favor of Katsu and Readymade, a rewritten version in Rust.&amp;lt;/ref&amp;gt; A welcome program for a better out-of-the-box experience is also planned and it is a work in progress.[https://github.com/Ultramarine-Linux/tauri-welcome]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== The Acquisition of the Ultramarine Project ===&lt;br /&gt;
[[Fyra Labs]] acquired the Ultramarine Project on 12 October, 2022 as agreed by both sides which&lt;br /&gt;
brought numerous advantages to the development of Ultramarine since both sides had been lacking manpower. After the acquisition, the team started work on numerous projects&lt;br /&gt;
which greatly changed the infrastructure and shaped the development of Ultramarine 37, making it arguably the biggest release.&lt;br /&gt;
&lt;br /&gt;
=== The development of umpkg and Andaman ===&lt;br /&gt;
: Main Article: [[Andaman]]&lt;br /&gt;
Ultramarine had been using Koji for its own repository just like Fedora itself, but it made package maintenance difficult to do with its sheer complexity, which&lt;br /&gt;
led to the creation of [[umpkg]] by the Ultramarine Project. It reduces burden on packaging software and uploading them to the Koji server. However,&lt;br /&gt;
the sophisticated part (Koji itself) was still there, so a packaging tool was proposed. After the acquisition, the team started to work on&lt;br /&gt;
[[Andaman]] (aka. &amp;lt;code&amp;gt;anda&amp;lt;/code&amp;gt;), which was originally intended to be a package manager, but later rewritten as a package build toolchain.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorewaChino</name></author>
	</entry>
	<entry>
		<id>https://wiki.fyralabs.com/index.php?title=Cappy_Ishihara&amp;diff=181</id>
		<title>Cappy Ishihara</title>
		<link rel="alternate" type="text/html" href="https://wiki.fyralabs.com/index.php?title=Cappy_Ishihara&amp;diff=181"/>
		<updated>2023-10-01T12:57:07Z</updated>

		<summary type="html">&lt;p&gt;KorewaChino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Pornpipat Popum&#039;&#039;&#039;, better known as &#039;&#039;&#039;Cappy Ishihara&#039;&#039;&#039; is a Thai software and DevOps engineer who specializes in writing scripts for batch processing, automation and unattended workloads. They are the Chief Information Officer of [[Fyra Labs]]; and also the project lead for the [[Ultramarine Linux]], [[Terra]], and [[Andaman]] projects. Cappy is the co-founder of the Ultramarine Linux project, and its lead developer.&lt;br /&gt;
&lt;br /&gt;
=== Career ===&lt;br /&gt;
&lt;br /&gt;
==== Ultramarine Linux ====&lt;br /&gt;
Cappy co-founded the Ultramarine Linux project back in late 2021 alongside [[Paskal Sitepu]], an Indonesian Linux kernel hacker.&lt;br /&gt;
&lt;br /&gt;
Ultramarine Linux was initially created as a testing platform for the &#039;&#039;Cutefish Desktop&#039;&#039;, formerly known as &#039;&#039;Cyber Desktop&#039;&#039; back then.&lt;/div&gt;</summary>
		<author><name>KorewaChino</name></author>
	</entry>
	<entry>
		<id>https://wiki.fyralabs.com/index.php?title=Cappy_Ishihara&amp;diff=180</id>
		<title>Cappy Ishihara</title>
		<link rel="alternate" type="text/html" href="https://wiki.fyralabs.com/index.php?title=Cappy_Ishihara&amp;diff=180"/>
		<updated>2023-10-01T12:46:04Z</updated>

		<summary type="html">&lt;p&gt;KorewaChino: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Pornpipat Popum&amp;#039;&amp;#039;&amp;#039;, better known as &amp;#039;&amp;#039;&amp;#039;Cappy Ishihara&amp;#039;&amp;#039;&amp;#039; is the Chief Information Officer, and also the product lead for the Ultramarine Linux, Terra, and Andaman projects.  They are a software and DevOps engineer who specializes in writing scripts for batch processing, automation and unattended workloads.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Pornpipat Popum&#039;&#039;&#039;, better known as &#039;&#039;&#039;Cappy Ishihara&#039;&#039;&#039; is the Chief Information Officer, and also the product lead for the [[Ultramarine Linux]], [[Terra]], and [[Andaman]] projects.&lt;br /&gt;
&lt;br /&gt;
They are a software and DevOps engineer who specializes in writing scripts for batch processing, automation and unattended workloads.&lt;/div&gt;</summary>
		<author><name>KorewaChino</name></author>
	</entry>
	<entry>
		<id>https://wiki.fyralabs.com/index.php?title=Andaman&amp;diff=166</id>
		<title>Andaman</title>
		<link rel="alternate" type="text/html" href="https://wiki.fyralabs.com/index.php?title=Andaman&amp;diff=166"/>
		<updated>2023-06-10T09:35:31Z</updated>

		<summary type="html">&lt;p&gt;KorewaChino: /* Configuration */ hcl note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fyra Labs]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
&#039;&#039;&#039;Andaman&#039;&#039;&#039;, often abbreviated as &#039;&#039;&#039;anda&#039;&#039;&#039;, is a modern package build toolchain designed to&lt;br /&gt;
simplify building different package formats for different projects in the same repository.&lt;br /&gt;
It mainly supports monorepo setups, especially ones with CI support like GitHub. It currently supports building RPMs, OCI images and Flatpak packages.&lt;br /&gt;
It is written by [[Fyra Labs]] with the Rust programming language.&lt;br /&gt;
&lt;br /&gt;
Anda&#039;s simplicity makes the packaging process seamless and it is most notably used in [[Terra]].&lt;br /&gt;
&lt;br /&gt;
== Mechanisms ==&lt;br /&gt;
Currently, Anda is simply a meta-build system that calls upon other build systems to build and distribute packages. It reads the project manifest in &amp;lt;code&amp;gt;anda.hcl&amp;lt;/code&amp;gt;&lt;br /&gt;
and calls the corresponding build system to build the package. Multiple projects can be included in a single repository (known as a &#039;&#039;monorepo&#039;&#039;) recursively in different directories. The root directory contains a main configuration file (also &amp;lt;code&amp;gt;anda.hcl&amp;lt;/code&amp;gt;) and the configurations will be inherited. All the other &amp;lt;code&amp;gt;anda.hcl&amp;lt;/code&amp;gt; files in its subdirectory can independently represent multiple &#039;&#039;projects&#039;&#039;, and multiple ways to build a package can be specified in each project. Once properly configured, a project can be built by &amp;lt;code&amp;gt;anda build &#039;&#039;subdirectory_path&#039;&#039;/&#039;&#039;project_name&#039;&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== AndaX ===&lt;br /&gt;
&#039;&#039;&#039;AndaX&#039;&#039;&#039; is an embedded scripting system powered by [https://rhai.rs Rhai]. It is mainly for supporting automatic updates, but it is also the scripting system used behind&lt;br /&gt;
&amp;lt;code&amp;gt;pre_script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;post_script&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Automatic Updates ===&lt;br /&gt;
: See also: [https://developer.fyralabs.com/terra/autoupdate Fyra Developer: Terra autoupdate] for the supported functions in AndaX&lt;br /&gt;
Anda has refined support over automatically updating packages via the &amp;lt;code&amp;gt;anda update&amp;lt;/code&amp;gt; command. The command finds all the projects with the file &amp;lt;code&amp;gt;update.rhai&amp;lt;/code&amp;gt; in the same directory or if the configuration file has the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; property set to a value:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
project project_name {&lt;br /&gt;
  update = &amp;quot;path/to/update_script.rhai&amp;quot;&lt;br /&gt;
  labels {&lt;br /&gt;
    a = &amp;quot;1&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, AndaX executes the script. Projects can also be filtered by adding &amp;lt;code&amp;gt;--filters key=value,key2=value2&amp;lt;/code&amp;gt; to the command.&lt;br /&gt;
For example, the update script for the above project will be executed for &amp;lt;code&amp;gt;--filters a=1&amp;lt;/code&amp;gt; or even without filters related to &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, but&lt;br /&gt;
it won&#039;t be executed for &amp;lt;code&amp;gt;--filters a=2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Andaman uses the HashiCorp Configuration Language (HCL) for its configuration format, known for being used in software by HashiCorp such as Terraform, Consul, Vault and Packer. Its syntax is similar to UCL and NGINX&#039;s configuration format.&lt;br /&gt;
&lt;br /&gt;
Consider the following. for &amp;lt;code&amp;gt;{ }&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, they represent, respectively, an dictionary (empty by default) with keys and string values, and a string with no default value. Unless otherwise stated, all the attributes are optional.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
config {&lt;br /&gt;
  mock_config = &amp;quot;&amp;quot; // default mock config for `anda build -c custom_mock_config`&lt;br /&gt;
  strip_prefix = &amp;quot;&amp;quot; // strip prefix to form new project alias&lt;br /&gt;
  strip_suffix = &amp;quot;&amp;quot; // strip suffix to form new project alias&lt;br /&gt;
  project_regex = &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
project &amp;quot;project_name&amp;quot; { // the string quote is optional&lt;br /&gt;
  rpm {&lt;br /&gt;
    spec = &amp;quot;path/to/file.spec&amp;quot; // REQUIRED&lt;br /&gt;
    sources = &amp;quot;.&amp;quot;&lt;br /&gt;
    package = &amp;quot;&amp;quot;&lt;br /&gt;
    pre_script = &amp;quot;rpm_pre.rhai&amp;quot;&lt;br /&gt;
    post_script = &amp;quot;rpm_post.rhai&amp;quot;&lt;br /&gt;
    mock_config = &amp;quot;&amp;quot;&lt;br /&gt;
    enable_scm = false&lt;br /&gt;
    scm_opts { }&lt;br /&gt;
    config { }&lt;br /&gt;
    plugin_opts { }&lt;br /&gt;
    macros { }&lt;br /&gt;
    opts { }&lt;br /&gt;
  }&lt;br /&gt;
  podman tagname {&lt;br /&gt;
    dockerfile = &amp;quot;&amp;quot;&lt;br /&gt;
    import = &amp;quot;&amp;quot;&lt;br /&gt;
    tag_latest = false&lt;br /&gt;
    context = &amp;quot;&amp;quot; // REQUIRED&lt;br /&gt;
    version = &amp;quot;&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
  docker tagname {&lt;br /&gt;
    dockerfile = &amp;quot;&amp;quot;&lt;br /&gt;
    import = &amp;quot;&amp;quot;&lt;br /&gt;
    tag_latest = false&lt;br /&gt;
    context = &amp;quot;&amp;quot; // REQUIRED&lt;br /&gt;
    version = &amp;quot;&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
  flatpak {&lt;br /&gt;
    manifest = &amp;quot;path/to/manifest.yml&amp;quot; // REQUIRED&lt;br /&gt;
    pre_script = &amp;quot;&amp;quot;&lt;br /&gt;
    post_script = &amp;quot;&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
  pre_script = &amp;quot;pre.rhai&amp;quot;&lt;br /&gt;
  post_script = &amp;quot;post.rhai&amp;quot;&lt;br /&gt;
  env { }&lt;br /&gt;
  alias = [] // array of strings&lt;br /&gt;
  scripts = [] // array of paths to AndaX scripts&lt;br /&gt;
  labels { }&lt;br /&gt;
  update = &amp;quot;update.rhai&amp;quot;&lt;br /&gt;
  arches = [&amp;quot;x86_64&amp;quot;, &amp;quot;aarch64&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== umpkg ===&lt;br /&gt;
In the very beginning, the [[Ultramarine]] Project had been using Koji for building RPM packages. Koji is the packaging system used by the [[wikipedia:Fedora Project|Fedora Project]]. However, Koji&#039;s sophistication makes it difficult to create and maintain RPM packages — it was said that the only person in the Ultramarine team who actually knew how to use Koji was the lead developer, [[Cappy Ishihara]]. Cappy was annoyed by the sheer complexity of building and uploading packages to Koji and made [[umpkg]], a packaging toolchain that runs on Mock and Koji. The creation of umpkg made it easier to create and maintain packages. However, umpkg still tightly integrates with Koji and uses the Koji API to trigger builds. Thus, an entirely new CI server was proposed.&lt;br /&gt;
&lt;br /&gt;
=== RPM Frontend ===&lt;br /&gt;
The Ultramarine Project started work on Andaman on 9 Jun, 2022.&lt;br /&gt;
The name Andaman refers to the [[wikipedia:Andaman Sea|Andaman Sea]] next to Thailand, and follows the naming patterns for other projects related to Ultramarine.&lt;br /&gt;
Initially, Anda was written as a custom RPM frontend as an alternative to DNF that is similar to that of an AUR helper. However, there were issues with rust and RPM support.&lt;br /&gt;
&lt;br /&gt;
=== CI Server ===&lt;br /&gt;
Anda was then rewritten as a CI Server that handles builds via BuildKit, stores artifacts and build infos, and later included a frontend to the server.&lt;br /&gt;
However, it slowly turned into a massive feature creep of projects.&lt;br /&gt;
&lt;br /&gt;
=== Final rewrite ===&lt;br /&gt;
Thus, Anda was rewritten again and it finally became a build system for various package formats.&lt;/div&gt;</summary>
		<author><name>KorewaChino</name></author>
	</entry>
</feed>