<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Obarun news</title><description>Offical Obarun announcement site</description><link>https://news.obarun.org/</link><atom:link href="https://news.obarun.org/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <language>en</language> <pubDate>Sat, 30 May 2026 11:42:43 -0000</pubDate> <lastBuildDate>Sat, 30 May 2026 11:42:43 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>assets/img/rss.png</url> <title>Obarun news</title> <link>https://news.obarun.org/</link> </image> <item> <title>The [obcommunity] database is now signed</title> <author>Eric Vidal</author> <category>Package</category> <category>Package</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;the-obcommunity-database-is-now-signed&#34;&gt;The [obcommunity] database is now signed&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;The &lt;code&gt;[obcommunity]&lt;/code&gt; repository is now signed: both its database and its packages can be cryptographically verified, just like the official Obarun repositories.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;what-changed&#34;&gt;What changed&lt;/h2&gt; &lt;p&gt;The &lt;code&gt;pacman&lt;/code&gt; package has been updated so that signature verification for &lt;code&gt;[obcommunity]&lt;/code&gt; is enforced by default. The global &lt;code&gt;SigLevel&lt;/code&gt; is now &lt;code&gt;Required&lt;/code&gt; (packages &lt;strong&gt;and&lt;/strong&gt; database must be signed), and the &lt;code&gt;[obcommunity]&lt;/code&gt; entry carries no &lt;code&gt;DatabaseOptional&lt;/code&gt; override, so it inherits that full verification.&lt;/p&gt; &lt;h2 id=&#34;action-required&#34;&gt;Action required&lt;/h2&gt; &lt;p&gt;These new defaults are shipped with the pacman update as &lt;code&gt;/etc/pacman.conf.pacnew&lt;/code&gt;; your existing &lt;code&gt;/etc/pacman.conf&lt;/code&gt; is left untouched. To benefit from this security, you must merge &lt;code&gt;pacman.conf.pacnew&lt;/code&gt; into your active configuration (for example with &lt;code&gt;pacdiff&lt;/code&gt;). Without this merge, pacman keeps running with your previous settings and the signatures are not checked.&lt;/p&gt; &lt;p&gt;If you activated &lt;code&gt;[obcommunity]&lt;/code&gt; following the older instructions, your block still contains:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;[obcommunity] SigLevel = DatabaseNever Server = https://cloud.server.obarun.org/$repo/os/$arch &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Remove the &lt;code&gt;SigLevel = DatabaseNever&lt;/code&gt; line (or whatever defined) so the repository inherits the new global &lt;code&gt;Required&lt;/code&gt; level and its signed database is actually verified:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;[obcommunity] Server = https://cloud.server.obarun.org/$repo/os/$arch &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Then resynchronise your databases:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;pacman -Syy &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;a-reminder-new-packagers-are-always-welcome&#34;&gt;A reminder: new packagers are always welcome&lt;/h2&gt; &lt;p&gt;&lt;code&gt;[obcommunity]&lt;/code&gt; is a community-managed repository, and it lives thanks to the people who contribute to it. Now that its packages and database are signed, this is a good moment to recall that &lt;strong&gt;new packagers are always welcome&lt;/strong&gt;. If you have ever wanted to package software for Obarun, the path is now short and built on standard git operations — see the &lt;code&gt;apkg&lt;/code&gt; tooling and the project skeleton to get started. Every new contribution helps &lt;code&gt;[obcommunity]&lt;/code&gt; grow.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2026/05/30/the-obcommunity-database-is-now-signed.html</link> <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2026/05/30/the-obcommunity-database-is-now-signed.html</guid> </item> <item> <title>XLibre packages move from [obcommunity] to [obextra]</title> <author>Eric Vidal</author> <category>Package</category> <category>Package</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;xlibre-packages-move-from-obcommunity-to-obextra&#34;&gt;XLibre packages move from [obcommunity] to [obextra]&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;The &lt;code&gt;xlibre-server&lt;/code&gt;, &lt;code&gt;xlibre-input&lt;/code&gt; and &lt;code&gt;xlibre-video&lt;/code&gt; packages have been moved from the &lt;code&gt;[obcommunity]&lt;/code&gt; repository to the official &lt;code&gt;[obextra]&lt;/code&gt; repository. This marks an important step in Obarun&#39;s transition away from Xorg.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;a-long-road-through-obcommunity&#34;&gt;A long road through [obcommunity]&lt;/h2&gt; &lt;p&gt;XLibre has lived in &lt;code&gt;[obcommunity]&lt;/code&gt; for a long time and has been tested in real conditions for many months. A heartfelt thank you to &lt;strong&gt;wat-now&lt;/strong&gt; for the work carried out to bring and maintain these packages in &lt;code&gt;[obcommunity]&lt;/code&gt; — without that groundwork, this promotion would not have been possible.&lt;/p&gt; &lt;p&gt;After this extended testing period, the packages are now mature enough to enter the official Obarun repositories.&lt;/p&gt; &lt;h2 id=&#34;what-this-means&#34;&gt;What this means&lt;/h2&gt; &lt;p&gt;&lt;code&gt;xlibre-server&lt;/code&gt;, &lt;code&gt;xlibre-input&lt;/code&gt; and &lt;code&gt;xlibre-video&lt;/code&gt; are now part of &lt;code&gt;[obextra]&lt;/code&gt;. The goal is clear: &lt;strong&gt;XLibre is intended to fully replace Xorg on Obarun.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Users are therefore encouraged to switch from &lt;code&gt;xorg&lt;/code&gt; to &lt;code&gt;xlibre&lt;/code&gt;. From now on, Xorg should be considered &lt;strong&gt;deprecated&lt;/strong&gt; on Obarun. Existing Xorg installations will keep working, but new deployments and migrations should target XLibre.&lt;/p&gt; &lt;h2 id=&#34;what-is-coming-next&#34;&gt;What is coming next&lt;/h2&gt; &lt;p&gt;The next Obarun ISOs (not yet ready) will ship with &lt;strong&gt;XLibre instead of Xorg&lt;/strong&gt; as the default display server stack. The shift in the repositories is the first visible step of that transition; the ISO rebuilds will follow.&lt;/p&gt; &lt;p&gt;Thank you again to &lt;strong&gt;wat-now&lt;/strong&gt; and to everyone who tested XLibre on Obarun during its time in &lt;code&gt;[obcommunity]&lt;/code&gt;. Your feedback is what made this promotion possible.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2026/05/17/xlibre-packages-move-from-obcommunity-to-obextra.html</link> <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2026/05/17/xlibre-packages-move-from-obcommunity-to-obextra.html</guid> </item> <item> <title>Introducing docs.obarun.org — automated, centralized documentation</title> <author>Eric Vidal</author> <category>Documentation</category> <category>General</category> <category>General</category> <description>&lt;h1 id=&#34;introducing-docsobarunorg-automated-centralized-documentation&#34;&gt;Introducing docs.obarun.org — automated, centralized documentation&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;Documentation for every Obarun program now lives under a single dedicated domain: &lt;a href=&#34;https://docs.obarun.org&#34;&gt;docs.obarun.org&lt;/a&gt;. More importantly, it now &lt;strong&gt;updates itself&lt;/strong&gt;.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;why-this-change&#34;&gt;Why this change&lt;/h2&gt; &lt;p&gt;Until now, every documentation update required a manual change on the website side: each new software release meant editing the site, regenerating pages, and republishing — for every tag, on every project. That overhead delayed updates and made the published documentation chronically out of sync with the actual releases.&lt;/p&gt; &lt;p&gt;The new setup removes that step entirely. &lt;strong&gt;When a new tag is created on a software&#39;s repository, its documentation is built and published automatically to &lt;code&gt;docs.obarun.org&lt;/code&gt;. No human intervention, no website edit, no manual deploy.&lt;/strong&gt; The documentation you read on &lt;code&gt;docs.obarun.org&lt;/code&gt; reflects the tags as they happen.&lt;/p&gt; &lt;h2 id=&#34;how-it-works&#34;&gt;How it works&lt;/h2&gt; &lt;p&gt;The list of available software is still accessible from &lt;a href=&#34;https://web.obarun.org/software&#34;&gt;web.obarun.org/software&lt;/a&gt;. Selecting the documentation of a program now opens its dedicated section on &lt;code&gt;docs.obarun.org&lt;/code&gt;, versioned per release. For example, the documentation of &lt;code&gt;66&lt;/code&gt; for a given version is available at:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;https://docs.obarun.org/66/&amp;lt;version&amp;gt;/ &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Every published version stays online at its own URL, so older releases remain referenceable.&lt;/p&gt; &lt;h2 id=&#34;always-reach-the-latest-version&#34;&gt;Always reach the latest version&lt;/h2&gt; &lt;p&gt;Each software exposes a &lt;code&gt;latest&lt;/code&gt; shortcut that always points to the most recent published version of its documentation. No need to track version numbers — the link follows the tags automatically:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://docs.obarun.org/66/latest/&#34;&gt;docs.obarun.org/66/latest/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://docs.obarun.org/oblog/latest/&#34;&gt;docs.obarun.org/oblog/latest/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The same pattern applies to every Obarun program: &lt;code&gt;docs.obarun.org/&amp;lt;software&amp;gt;/latest/&lt;/code&gt;.&lt;/p&gt; &lt;h2 id=&#34;under-the-hood&#34;&gt;Under the hood&lt;/h2&gt; &lt;p&gt;All documentation is rendered with &lt;code&gt;mkdocs-material&lt;/code&gt;, sharing the same theme, search, and navigation across projects. The publication pipeline is wired into each software&#39;s CI: a tag push triggers the build and deploy, and the new version (plus the &lt;code&gt;latest/&lt;/code&gt; shortcut) is live within minutes.&lt;/p&gt; &lt;p&gt;We hope this new layout makes the documentation easier to find, to trust, and to link to.&lt;/p&gt; &lt;p&gt;Thank you for being part of the Obarun journey!&lt;/p&gt; &lt;p&gt;Eric Vidal &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&#34;&gt;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;</description> <link>https://news.obarun.org/2026/05/16/introducing-docsobarunorg--automated-centralized-documentation.html</link> <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2026/05/16/introducing-docsobarunorg--automated-centralized-documentation.html</guid> </item> <item> <title>apkg — new pipeline tooling for Obarun packages</title> <author>Eric Vidal</author> <category>Package</category> <category>Package</category> <category>Software</category> <category>Software</category> <description>&lt;h1 id=&#34;apkg-new-pipeline-tooling-for-obarun-packages&#34;&gt;apkg — new pipeline tooling for Obarun packages&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;The build and deployment pipeline behind every Obarun package — &lt;code&gt;[obcore]&lt;/code&gt;, &lt;code&gt;[obextra]&lt;/code&gt;, &lt;code&gt;[observice]&lt;/code&gt; and &lt;code&gt;[obcommunity]&lt;/code&gt; — has been rebuilt from the ground up. The new tool is called &lt;strong&gt;apkg&lt;/strong&gt;. It replaces the legacy &lt;code&gt;apkg-*.sh&lt;/code&gt; bash scripts that have been quietly orchestrating Obarun package releases for more than 3 years. This post explains what changed, what it means for maintainers, and — most importantly — why &lt;strong&gt;contributing a package to &lt;code&gt;[obcommunity]&lt;/code&gt; is now drastically easier&lt;/strong&gt; than it used to be.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;why-this-matters&#34;&gt;Why this matters&lt;/h2&gt; &lt;p&gt;Until now, each package project carried a copy of a 12-script bash pipeline. Edge cases in version detection, signing, and tier promotion were handled inconsistently. Onboarding a new contributor involved a steep learning curve before they could understand how a package goes from a ‘PKGBUILD’ to the public repository.&lt;/p&gt; &lt;p&gt;&lt;code&gt;apkg&lt;/code&gt; consolidates all of that into a single, tested Python application, packaged and shipped as &lt;code&gt;obextra/apkg&lt;/code&gt;. The pipeline logic now lives in one place, behaves the same in every project, and is covered by an actual test suite.&lt;/p&gt; &lt;h2 id=&#34;improvements&#34;&gt;Improvements&lt;/h2&gt; &lt;p&gt;Several long-standing issues from the bash era are now properly handled:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Signing key isolation and Security&lt;/strong&gt; — the Obarun signing key never leaves CI variables. Maintainers and operators do not hold it, even when publishing locally-built packages: the signature is added by a dedicated CI project after upload.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Epoch and split-package version comparison&lt;/strong&gt; — a class of subtle bugs in the legacy pipeline that occasionally produced wrong or missed updates.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Concurrent repository operations&lt;/strong&gt; — MinIO-backed locking with retry, replacing the old best-effort approach.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Cascading rebuilds&lt;/strong&gt; — when a shared dependency bumps, downstream packages are now discovered, topologically sorted from &lt;code&gt;.SRCINFO&lt;/code&gt;, and rebuilt in the correct order through a dedicated &lt;strong&gt;orchestrator&lt;/strong&gt;, with parallel execution within independent topological waves.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Update detection&lt;/strong&gt; — a single orchestrator job per repository detects upstream Arch bumps and dispatches the work, removing the need for per-package cron jobs.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Tier alignment&lt;/strong&gt; — packages are promoted between &lt;code&gt;staging&lt;/code&gt;, &lt;code&gt;testing&lt;/code&gt; and &lt;code&gt;stable&lt;/code&gt; automatically to match the tier where Arch currently has them, instead of relying on manual promotions in some cases.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Consistent exit codes and structured logging&lt;/strong&gt; — every command follows the same convention (&lt;code&gt;0&lt;/code&gt; success, &lt;code&gt;111&lt;/code&gt; failure) with a unified log format across the entire pipeline.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;what-changed-under-the-hood&#34;&gt;What changed under the hood&lt;/h2&gt; &lt;p&gt;The legacy 12 bash scripts have been replaced by two binaries sharing a single library:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;code&gt;apkg&lt;/code&gt;&lt;/strong&gt; — local administration: list, archive, delete, move, diff, audit packages stored in the Obarun repositories, plus optional helpers for the daily packaging workflow.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;code&gt;apkg-ci&lt;/code&gt;&lt;/strong&gt; — CI engine: detects upstream Arch updates, builds, signs, deploys, promotes &lt;code&gt;testing → stable&lt;/code&gt;, and runs dependency-aware cascading rebuilds.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;All business logic lives in &lt;code&gt;apkg.lib&lt;/code&gt;; the two binaries are thin frontends. The same code path runs whether a command is invoked locally on a maintainer&#39;s machine or inside a GitLab CI job.&lt;/p&gt; &lt;h2 id=&#34;what-this-means-for-package-maintainers&#34;&gt;What this means for package maintainers&lt;/h2&gt; &lt;p&gt;The &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; of every package project is now a thin file that calls &lt;code&gt;apkg-ci&lt;/code&gt; commands. There is nothing to copy, nothing to keep in sync between projects, and no bash internals to read in order to understand what the pipeline does. When the pipeline needs an improvement, the change happens once in &lt;code&gt;apkg&lt;/code&gt; and propagates to every project on the next image rebuild.&lt;/p&gt; &lt;p&gt;For day-to-day work, &lt;code&gt;apkg&lt;/code&gt; provides commands grouped by intent — build &amp;amp; publish, repo management, inspection, advanced — discoverable through &lt;code&gt;apkg --help&lt;/code&gt; with full reference in &lt;code&gt;docs/USAGE.md&lt;/code&gt;.&lt;/p&gt; &lt;h2 id=&#34;what-this-means-for-oldnew-contributors-on-obcommunity&#34;&gt;What this means for old/new contributors on Obcommunity&lt;/h2&gt; &lt;p&gt;This is the part we care about most.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;A contributor does not need to install or learn &lt;code&gt;apkg&lt;/code&gt; to publish a package on Obcommunity.&lt;/strong&gt; The CI pipeline runs on the GitLab side. From the contributor&#39;s machine, the entire packaging workflow comes down to standard git operations:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git add ... git commit -m &amp;quot;...&amp;quot; git push &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;That&#39;s it. Pushing the commit triggers the pipeline; the pipeline builds, signs, and deploys the package to the right tier of &lt;code&gt;[obcommunity]&lt;/code&gt;. The contributor never touches apkg-ci, never holds the signing key, never logs into the repository server.&lt;/p&gt; &lt;p&gt;What needs to be respected is a minimal project skeleton, the same one used by every Obarun package. It looks like this:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;mypackage/ ├── mypackage/ # git submodule → upstream PKGBUILD source │ └── .SRCINFO # generated with `makepkg --printsrcinfo &amp;gt; .SRCINFO` └── .gitlab-ci.yml # template — copy as-is, two stages: build, deploy &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; is a 30-line template provided in the apkg repository under &lt;code&gt;templates/skeleton/&lt;/code&gt;. Copy it once, never touch it again. Every other file in the layout is either standard PKGBUILD packaging or strictly optional.&lt;/p&gt; &lt;p&gt;If a contributor wants extra control, the &lt;code&gt;control/&lt;/code&gt; directory provides simple text files to adjust per-package behaviour without changing the pipeline:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code&gt;control/tier&lt;/code&gt; — force staging, testing or stable.&lt;/li&gt; &lt;li&gt;&lt;code&gt;control/cascade&lt;/code&gt; — declare which packages must be rebuilt when this one bumps.(require apkg use)&lt;/li&gt; &lt;li&gt;&lt;code&gt;control/frozen&lt;/code&gt; — temporarily exclude a package from the orchestrator.(require apkg use)&lt;/li&gt; &lt;li&gt;&lt;code&gt;control/makeflags&lt;/code&gt;, &lt;code&gt;control/makeopts&lt;/code&gt; — adjust the build for memory-hungry packages.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Each is a single-line text file. Add one, commit, push — done.&lt;/p&gt; &lt;p&gt;If you have ever considered packaging software for Obarun but found the existing tooling intimidating, now is the time to give it another look. The path from &#34;I want to package X&#34; to &#34;X is in &lt;code&gt;[obcommunity]&lt;/code&gt;&#34; is now short, predictable, and built on top of standard tools you already use.&lt;/p&gt; &lt;p&gt;Documentation&lt;/p&gt; &lt;ul&gt; &lt;li&gt;User reference: &lt;a href=&#34;https://git.obarun.org/obdev/apkg/-/blob/master/docs/USAGE.md?ref_type=heads&#34;&gt;docs/USAGE.md&lt;/a&gt; in the apkg repository.&lt;/li&gt; &lt;li&gt;Project skeleton: &lt;a href=&#34;https://git.obarun.org/obdev/apkg/-/tree/master/templates?ref_type=heads&#34;&gt;templates/skeleton/&lt;/a&gt; in the same repository.&lt;/li&gt; &lt;li&gt;Patch authoring walkthrough: &lt;a href=&#34;https://git.obarun.org/obdev/apkg/-/blob/master/templates/HOWTO-patches.md?ref_type=heads&#34;&gt;templates/HOWTO-patches.md&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Built-in help: apkg --help and apkg-ci --help, with subcommands grouped by intent.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Getting involved&lt;/p&gt; &lt;p&gt;If you would like to contribute a package, improve an existing one, or report an issue with the new pipeline, the Obarun Git repository is the place to start. Feedback from early users of apkg is especially welcome — every report helps us refine the tooling further.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2026/05/11/apkg--new-pipeline-tooling-for-obarun-packages.html</link> <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2026/05/11/apkg--new-pipeline-tooling-for-obarun-packages.html</guid> </item> <item> <title>0.8.2.0 66 release</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;obarun-66-version-0820-released&#34;&gt;Obarun 66 Version 0.8.2.0 Released&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;The release of &lt;strong&gt;66 version 0.8.2.0&lt;/strong&gt; marks a significant step forward for the Obarun service management system. This update introduces powerful new features, critical bug fixes, and performance improvements designed to offer greater control, reliability, and ease of use for system administrators and users. Below is an overview of the key changes to help make the most of this release.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;new-features&#34;&gt;New Features&lt;/h2&gt; &lt;p&gt;A new &lt;code&gt;[Execute]&lt;/code&gt; section has been added, providing enhanced control over tasks executed just before a service’s start or stop processes. This section includes options like &lt;code&gt;ChangeDirectory&lt;/code&gt; for setting the working directory, &lt;code&gt;Nice&lt;/code&gt; for adjusting CPU scheduling priority, &lt;code&gt;UMask&lt;/code&gt; for managing file creation permissions, &lt;code&gt;BlockPrivileges&lt;/code&gt; for restricting privileges, &lt;code&gt;LimitXXX&lt;/code&gt; for setting resource limits (e.g., &lt;code&gt;LimitNICE&lt;/code&gt;, &lt;code&gt;LimitNOFILE&lt;/code&gt;), and &lt;code&gt;CapsBound&lt;/code&gt; and &lt;code&gt;CapsAmbient&lt;/code&gt; for managing capabilities without additional dependencies. These tools allow for precise customization of service behavior.&lt;/p&gt; &lt;p&gt;Service dependency management has been improved with the &lt;code&gt;Conflict&lt;/code&gt; key in the &lt;code&gt;[Main]&lt;/code&gt; section, enabling specification of services that cannot run simultaneously, ensuring smoother operation.&lt;/p&gt; &lt;p&gt;Service configuration is now simpler, as &lt;code&gt;Description&lt;/code&gt;, &lt;code&gt;User&lt;/code&gt;, and &lt;code&gt;Version&lt;/code&gt; fields are optional. If not provided, defaults are applied: &lt;code&gt;Description&lt;/code&gt; uses the service name, &lt;code&gt;User&lt;/code&gt; matches the process owner, and &lt;code&gt;Version&lt;/code&gt; reflects the installed 66 version. This streamlines setup without sacrificing functionality.&lt;/p&gt; &lt;p&gt;Service trees can now be enabled at creation time, making it easier to set up and administrate trees in one step.&lt;/p&gt; &lt;p&gt;The project has transitioned to the &lt;strong&gt;Meson build system&lt;/strong&gt;, offering improved cross-platform compatibility and build efficiency. The traditional &lt;code&gt;configure&lt;/code&gt; and &lt;code&gt;make&lt;/code&gt; system remains available during this transition, but testing Meson and sharing feedback is encouraged as the old build system can be consider as deprecated. Refer to &lt;code&gt;INSTALL_MESON.md&lt;/code&gt; for setup instructions.&lt;/p&gt; &lt;h2 id=&#34;enhancements&#34;&gt;Enhancements&lt;/h2&gt; &lt;p&gt;The development pipeline is now more robust, with the CI/CD system leveraging Meson and incorporating &lt;code&gt;git&lt;/code&gt; support for reliable builds. A new &lt;strong&gt;boolean syntax&lt;/strong&gt; for the &lt;code&gt;BlockPrivileges&lt;/code&gt; key has been introduced, with updated documentation. The version comparison system has also been enhanced with new tests for greater reliability.&lt;/p&gt; &lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&lt;/h2&gt; &lt;p&gt;Several important issues have been resolved. A critical bug from version &lt;code&gt;0.8.0.0&lt;/code&gt;, which incorrectly set &lt;code&gt;s6log&lt;/code&gt; logger ownership to &lt;code&gt;root&lt;/code&gt; and removed &lt;code&gt;runas&lt;/code&gt; information during migration, has been fixed. Services that crash now trigger clear error messages, improving system stability.&lt;/p&gt; &lt;p&gt;Compiler warnings for GCC and Clang have been eliminated, resulting in cleaner builds. The migration process has been improved to handle unknown logger directories, enhance &lt;code&gt;Master&lt;/code&gt; resolve file processing. Performance enhancements include a corrected handling of &lt;code&gt;uint64_t&lt;/code&gt; values, and proper log file display for logger of &lt;code&gt;StdOut=file:/path&lt;/code&gt; type. A memory leak has been addressed, and minor fixes—such as corrected option names, removed unused files.&lt;/p&gt; &lt;h2 id=&#34;upgrading-to-0820&#34;&gt;Upgrading to 0.8.2.0&lt;/h2&gt; &lt;p&gt;To ensure a smooth transition, consider the following steps:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Verify Logger Settings&lt;/strong&gt;: If upgrading from version &lt;code&gt;0.8.0.0&lt;/code&gt; or &lt;code&gt;0.8.1.1&lt;/code&gt;, check &lt;code&gt;s6log&lt;/code&gt; logger permissions to confirm they are set correctly. The migration process should take care of it for you. However, ensure that you have a correct permissions for the logger services directories if you get a down logger process after applying the migration. It should be set to &lt;code&gt;s6log:s6log&lt;/code&gt; for the &lt;code&gt;/var/log/66&lt;/code&gt; and &lt;code&gt;&amp;lt;username&amp;gt;:&amp;lt;username&amp;gt;&lt;/code&gt; for &lt;code&gt;$HOME/.66/log&lt;/code&gt; and their sub-directories and files.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;community-engagement&#34;&gt;Community Engagement&lt;/h2&gt; &lt;p&gt;Exploring the new features and testing the Meson build system is highly encouraged. Feedback is invaluable for refining 66 and ensuring it meets user needs. Thoughts or issues can be shared via the &lt;a href=&#34;https://git.obarun.org&#34;&gt;Obarun Git repository&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;em&gt;For a detailed changelog, refer to the &lt;a href=&#34;https://git.obarun.org/Obarun/66/-/blob/master/doc/66-upgrade.md&#34;&gt;66-upgrade.md&lt;/a&gt; document.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2025/05/31/0820-66-release.html</link> <pubDate>Sat, 31 May 2025 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2025/05/31/0820-66-release.html</guid> </item> <item> <title>66 version 0.8.0.0 now in stable repos</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;66-version-0800-now-in-stable-repos&#34;&gt;66 version 0.8.0.0 now in stable repos&lt;/h1&gt; &lt;p&gt;Dear Obarun users, all required packages for 66, updated for the new 0.8.0.0 release, have been moved from the testing repository to their respective stable counterparts. Archives of previous versions can be found in the &lt;code&gt;[obarchive]&lt;/code&gt; repository on the &lt;a href=&#34;https://web.obarun.org/package&#34;&gt;packages page&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you haven’t completed the migration yet, follow the instructions below.&lt;/p&gt; &lt;!-- more --&gt; &lt;h1 id=&#34;66-migration-instructions&#34;&gt;66 Migration Instructions&lt;/h1&gt; &lt;p&gt;The release includes a new &lt;a href=&#34;https://web.obarun.org/software/66/0.8.0.0/66-upgrade-process&#34;&gt;upgrade process&lt;/a&gt; that is fully transparent to the user. Whether a migration involves changes to the resolve file or other components, 66 automatically detects version upgrades and makes the necessary adjustments, ensuring continuity with the new version. This process &lt;strong&gt;does not affect the state of running services&lt;/strong&gt;, and an automatic snapshot is created during the migration to facilitate easy recovery if needed.&lt;/p&gt; &lt;p&gt;The release also includes a new &lt;a href=&#34;https://web.obarun.org/software/66/0.8.0.0/66-snapshot&#34;&gt;snapshot&lt;/a&gt; command, offering a comprehensive backup solution for the 66 ecosystem. This feature guarantees that you can restore the exact state of the ecosystem before any changes. Importantly, using snapshots &lt;strong&gt;does not alter the state of running services&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Refer to the &lt;a href=&#34;https://web.obarun.org/software/66/0.8.0.0/66-upgrade&#34;&gt;upgrade&lt;/a&gt; page for further information concerning new features and behavior changes.&lt;/p&gt; &lt;p&gt;Before proceeding, carefully read all instructions below and ensure you understand each command. If you have any questions or concerns, don&#39;t hesitate to seek assistance on the Obarun &lt;a href=&#34;https://forum.obarun.org&#34;&gt;forum&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;migration&#34;&gt;Migration&lt;/h2&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;Be sure to have the 66 and skalibs package in your &lt;code&gt;/var/cache/pacman/pkg&lt;/code&gt; directory. It will be easier for you in case you need a &lt;a href=&#34;#rollback&#34;&gt;rollback&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Just synchronize and update your system.&lt;/p&gt; &lt;p&gt;Now you just need to trigger the automatic migration process by invoking any 66 command, for instance, by using the new behavior of the &lt;code&gt;66 status&lt;/code&gt; command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 -v3 status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will trigger the migration process for the root account.&lt;/p&gt; &lt;p&gt;Now, do the same for your regular user:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;% 66 -v3 status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;That&#39;s all!&lt;/p&gt; &lt;p&gt;You can also directly initiate a reboot, though this is not mandatory to use the new release. This will migrate your system before rebooting.&lt;/p&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;You need to trigger the migration for the root account first before triggering it for regular users.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;The migration process should complete successfully. If you encounter any errors, restore your previous system by performing a &lt;a href=&#34;#rollback&#34;&gt;rollback&lt;/a&gt; and post an issue on &lt;a href=&#34;https://git.obarun.org/Obarun/66.git&#34;&gt;66&lt;/a&gt; with as much information as possible about the crash.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;rollback&#34;&gt;Rollback&lt;/h2&gt; &lt;p&gt;As the automatic migration process take a &lt;a href=&#34;https://web.obarun.org/software/66/0.8.0.0/66-snapshot&#34;&gt;snapshot&lt;/a&gt; before processing, you can restore your previous system easily if something goes wrong. To do so, run:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 snapshot restore system@0.7.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Then, do the same for your regular account:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;% 66 snapshot restore system@0.7.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;You can see the list of available snapshot with the command &lt;code&gt;66 snapshot list&lt;/code&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Now you need to downgrade the package&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# cd /var/cache/pacman/pkg # pacman -U skalibs-2.14.2.0-1-x86_64.pkg.tar.xz execline-2.9.6.0-1-x86_64.pkg.tar.xz 66-0.7.2.1-2-x86_64.pkg.tar.xz 66-tools-0.1.0.2-3-x86_64.pkg.tar.xz oblibs-0.3.0.1-2-x86_64.pkg.tar.xz s6-2.13.0.0-1-x86_64.pkg.tar.xz s6-dns-2.3.7.2-1-x86_64.pkg.tar.xz s6-linux-utils-2.6.2.0-2-x86_64.pkg.tar.xz s6-networking-2.7.0.3-1-x86_64.pkg.tar.xz s6-portable-utils-2.3.0.3-2-x86_64.pkg.tar.xz oblog-0.1.1.0-6-x86_64.pkg.tar.xz obsysusers-0.1.2.1-5-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Also, downgrade your services packages.&lt;/p&gt; &lt;h2 id=&#34;personal-service&#34;&gt;Personal service&lt;/h2&gt; &lt;p&gt;The migration process only deals with active services, meaning those that are running when you execute (as root or a regular user):&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 tree status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;But you may have personal frontend files that are not active. To help with this, use the script below by running: &lt;code&gt;./migration_service.sh /path/to/my/&amp;lt;FrontendFile&amp;gt;&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;&lt;code&gt;#!/bin/sh service=&amp;quot;${1}&amp;quot; sed -e &amp;quot;s:\[main\]:\[Main\]:g&amp;quot; \ -e &amp;quot;s:@type:Type:g&amp;quot; \ -e &amp;quot;s:@description:Description:g&amp;quot; \ -e &amp;quot;s:@version:Version:g&amp;quot; \ -e &amp;quot;s:@depends:Depends:g&amp;quot; \ -e &amp;quot;s:@requiredby:RequiredBy:g&amp;quot; \ -e &amp;quot;s:@optsdepends:OptsDepends:g&amp;quot; \ -e &amp;quot;s:@options:Options:g&amp;quot; \ -e &amp;quot;s:@flags:Flags:g&amp;quot; \ -e &amp;quot;s:@notify:Notify:g&amp;quot; \ -e &amp;quot;s:@user:User:g&amp;quot; \ -e &amp;quot;s:@timeout-kill:TimeoutStart:g&amp;quot; \ -e &amp;quot;s:@timeout-up:TimeoutStart:g&amp;quot; \ -e &amp;quot;s:@timeout-finish:TimeoutStop:g&amp;quot; \ -e &amp;quot;s:@timeout-down:TimeoutStop:g&amp;quot; \ -e &amp;quot;s:@maxdeath:MaxDeath:g&amp;quot; \ -e &amp;quot;s:@down-signal:DownSignal:g&amp;quot; \ -e &amp;quot;s:@hiercopy:CopyFrom:g&amp;quot; \ -e &amp;quot;s:@intree:InTree:g&amp;quot; \ -e &amp;quot;s:\[start\]:\[Start\]:g&amp;quot; \ -e &amp;quot;s:@build:Build:g&amp;quot; \ -e &amp;quot;s:@runas:RunAs:g&amp;quot; \ -e &amp;quot;s:@execute:Execute:g&amp;quot; \ -e &amp;quot;s:\[stop\]:\[Stop\]:g&amp;quot; \ -e &amp;quot;s:\[logger\]:\[Logger\]:g&amp;quot; \ -e &amp;quot;s:@destination:Destination:g&amp;quot; \ -e &amp;quot;s:@backup:Backup:g&amp;quot; \ -e &amp;quot;s:@maxsize:MaxSize:g&amp;quot; \ -e &amp;quot;s:@timestamp:Timestamp:g&amp;quot; \ -e &amp;quot;s:\[environment\]:\[Environment\]:g&amp;quot; \ -e &amp;quot;s:\[regex\]:\[Regex\]:g&amp;quot; \ -e &amp;quot;s:@configure:Configure:g&amp;quot; \ -e &amp;quot;s:@directories:Directories:g&amp;quot; \ -e &amp;quot;s:@files:Files:g&amp;quot; \ -e &amp;quot;s:@infiles:InFiles:g&amp;quot; \ -i ${service} &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;See the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html##keyword-table-convertion&#34;&gt;Rosetta Stone&lt;/a&gt; for the list of keyword name changes.&lt;/p&gt; &lt;h2 id=&#34;some-reasons&#34;&gt;Some Reasons&lt;/h2&gt; &lt;p&gt;This release marks a major step towards the end of planned breaking changes for version 66. Version &lt;code&gt;0.7.0.0&lt;/code&gt; introduced stability in the directory hierarchy of the 66 ecosystem, and version &lt;code&gt;0.8.0.0&lt;/code&gt; solidified the stability of frontend file keys. While the implementation of events may happen in version &lt;code&gt;0.9.0.0&lt;/code&gt;, this can potentially occur without breaking existing 66 components(see &lt;a href=&#34;https://git.obarun.org/Obarun/66/-/blob/master/README.md?ref_type=heads#roadmap&#34;&gt;roadmap&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;I hope this new version will satisfy you and that you will appreciate the changes made.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2024/11/13/66-version-0800-now-in-stable-repos.html</link> <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/11/13/66-version-0800-now-in-stable-repos.html</guid> </item> <item> <title>Upgrading Obarun Site</title> <author>Eric Vidal</author> <category>General</category> <category>General</category> <description>&lt;h1 id=&#34;upgrading-obarun-site-because-we-deserve-better&#34;&gt;Upgrading Obarun Site - Because We Deserve Better&lt;/h1&gt; &lt;p&gt;Following our &lt;a href=&#34;https://news.obarun.org/2024/01/16/upgrading-obarun-news/&#34;&gt;previous announcement&lt;/a&gt;, we’re pleased to officially present the new &lt;a href=&#34;https://web.obarun.org&#34;&gt;Obarun website&lt;/a&gt;! The old site, which had become outdated, unattractive, and buggy, no longer met our users&#39; needs. This redesign brings improved clarity, accessibility, and efficiency, making it easier to navigate and offering a more welcoming experience.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;whats-new&#34;&gt;What’s New?&lt;/h2&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Enhanced Package List: All packages are now available &lt;a href=&#34;https://web.obarun.org/package/&#34;&gt;here&lt;/a&gt;, with full details for each package and the option to download directly—no more searching around!&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Optimized Documentation: The &lt;a href=&#34;https://web.obarun.org/software&#34;&gt;documentation page&lt;/a&gt; of sotfware has been completely redesigned with a modern look and easier navigation, making it simpler to access information on each tool.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;a href=&#34;https://git.obarun.org/obdev/site&#34;&gt;Source code&lt;/a&gt; remains accessible online, and contributions are always welcome! Whether you’re interested in enhancing the distribution or suggesting improvements, the community is open to anyone who shares our vision.&lt;/p&gt; &lt;p&gt;We hope this new site makes your experience even more enjoyable.&lt;/p&gt; &lt;p&gt;Thank you for being part of the Obarun journey!&lt;/p&gt; &lt;p&gt;Best regards,&lt;/p&gt; &lt;p&gt;Eric Vidal &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&#34;&gt;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;</description> <link>https://news.obarun.org/2024/11/10/upgrading-obarun-site.html</link> <pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/11/10/upgrading-obarun-site.html</guid> </item> <item> <title>66 migration instructions</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;66-migration-instructions&#34;&gt;66 Migration Instructions&lt;/h1&gt; &lt;p&gt;Dear Obarun users, the Obarun testing repositories are ready to be used to migrate your &lt;em&gt;66&lt;/em&gt; program to the new release.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;The release includes a new &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-upgrade-process.html&#34;&gt;upgrade process&lt;/a&gt; that is fully transparent to the user. Whether a migration involves changes to the resolve file or other components, 66 automatically detects version upgrades and makes the necessary adjustments, ensuring continuity with the new version. This process &lt;strong&gt;does not affect the state of running services&lt;/strong&gt;, and an automatic snapshot is created during the migration to facilitate easy recovery if needed.&lt;/p&gt; &lt;p&gt;The release also includes a new &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-snapshot.html&#34;&gt;snapshot&lt;/a&gt; command, offering a comprehensive backup solution for the 66 ecosystem. This feature guarantees that you can restore the exact state of the ecosystem before any changes. Importantly, using snapshots &lt;strong&gt;does not alter the state of running services&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-upgrade.html&#34;&gt;upgrade&lt;/a&gt; page for further information concerning new features and behavior changes.&lt;/p&gt; &lt;p&gt;Before proceeding, carefully read all instructions below and ensure you understand each command. If you have any questions or concerns, don&#39;t hesitate to seek assistance on the Obarun &lt;a href=&#34;https://forum.obarun.org&#34;&gt;forum&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;migration&#34;&gt;Migration&lt;/h2&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;Be sure to have the 66 and skalibs package in your &lt;code&gt;/var/cache/pacman/pkg&lt;/code&gt; directory. It will be easier for you in case you need a &lt;a href=&#34;#rollback&#34;&gt;rollback&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Just synchronize and update your system by activating the &lt;code&gt;[obcore-testing]&lt;/code&gt;, &lt;code&gt;[obextra-testing]&lt;/code&gt;, and &lt;code&gt;[observice-testing]&lt;/code&gt; repositories.&lt;/p&gt; &lt;p&gt;Now you just need to trigger the automatic migration process by invoking any 66 command, for instance, by using the new behavior of the &lt;code&gt;66 status&lt;/code&gt; command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 -v3 status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will trigger the migration process for the root account.&lt;/p&gt; &lt;p&gt;Now, do the same for your regular user:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;% 66 -v3 status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;That&#39;s all!&lt;/p&gt; &lt;p&gt;You can also directly initiate a reboot, though this is not mandatory to use the new release. This will migrate your system before rebooting.&lt;/p&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;You need to trigger the migration for the root account first before triggering it for regular users.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;The migration process should complete successfully. If you encounter any errors, restore your previous system by performing a &lt;a href=&#34;#rollback&#34;&gt;rollback&lt;/a&gt; and post an issue on &lt;a href=&#34;https://git.obarun.org/Obarun/66.git&#34;&gt;66&lt;/a&gt; with as much information as possible about the crash.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;rollback&#34;&gt;Rollback&lt;/h2&gt; &lt;p&gt;As the automatic migration process take a &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-snapshot.html&#34;&gt;snapshot&lt;/a&gt; before processing, you can restore your previous system easily if something goes wrong. To do so, run:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 snapshot restore system@0.7.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Then, do the same for your regular account:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;% 66 snapshot restore system@0.7.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;You can see the list of available snapshot with the command &lt;code&gt;66 snapshot list&lt;/code&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Now you need to downgrade the package&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# cd /var/cache/pacman/pkg # pacman -U skalibs-2.14.2.0-1-x86_64.pkg.tar.xz execline-2.9.6.0-1-x86_64.pkg.tar.xz 66-0.7.2.1-2-x86_64.pkg.tar.xz 66-tools-0.1.0.2-3-x86_64.pkg.tar.xz oblibs-0.3.0.1-2-x86_64.pkg.tar.xz s6-2.13.0.0-1-x86_64.pkg.tar.xz s6-dns-2.3.7.2-1-x86_64.pkg.tar.xz s6-linux-utils-2.6.2.0-2-x86_64.pkg.tar.xz s6-networking-2.7.0.3-1-x86_64.pkg.tar.xz s6-portable-utils-2.3.0.3-2-x86_64.pkg.tar.xz oblog-0.1.1.0-6-x86_64.pkg.tar.xz obsysusers-0.1.2.1-5-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Also, downgrade your services packages.&lt;/p&gt; &lt;h2 id=&#34;personal-service&#34;&gt;Personal service&lt;/h2&gt; &lt;p&gt;The migration process only deals with active services, meaning those that are running when you execute (as root or a regular user):&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# 66 tree status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;But you may have personal frontend files that are not active. To help with this, use the script below by running: &lt;code&gt;./migration_service.sh /path/to/my/&amp;lt;FrontendFile&amp;gt;&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;&lt;code&gt;#!/bin/sh service=&amp;quot;${1}&amp;quot; sed -e &amp;quot;s:\[main\]:\[Main\]:g&amp;quot; \ -e &amp;quot;s:@type:Type:g&amp;quot; \ -e &amp;quot;s:@description:Description:g&amp;quot; \ -e &amp;quot;s:@version:Version:g&amp;quot; \ -e &amp;quot;s:@depends:Depends:g&amp;quot; \ -e &amp;quot;s:@requiredby:RequiredBy:g&amp;quot; \ -e &amp;quot;s:@optsdepends:OptsDepends:g&amp;quot; \ -e &amp;quot;s:@options:Options:g&amp;quot; \ -e &amp;quot;s:@flags:Flags:g&amp;quot; \ -e &amp;quot;s:@notify:Notify:g&amp;quot; \ -e &amp;quot;s:@user:User:g&amp;quot; \ -e &amp;quot;s:@timeout-kill:TimeoutStart:g&amp;quot; \ -e &amp;quot;s:@timeout-up:TimeoutStart:g&amp;quot; \ -e &amp;quot;s:@timeout-finish:TimeoutStop:g&amp;quot; \ -e &amp;quot;s:@timeout-down:TimeoutStop:g&amp;quot; \ -e &amp;quot;s:@maxdeath:MaxDeath:g&amp;quot; \ -e &amp;quot;s:@down-signal:DownSignal:g&amp;quot; \ -e &amp;quot;s:@hiercopy:CopyFrom:g&amp;quot; \ -e &amp;quot;s:@intree:InTree:g&amp;quot; \ -e &amp;quot;s:\[start\]:\[Start\]:g&amp;quot; \ -e &amp;quot;s:@build:Build:g&amp;quot; \ -e &amp;quot;s:@runas:RunAs:g&amp;quot; \ -e &amp;quot;s:@execute:Execute:g&amp;quot; \ -e &amp;quot;s:\[stop\]:\[Stop\]:g&amp;quot; \ -e &amp;quot;s:\[logger\]:\[Logger\]:g&amp;quot; \ -e &amp;quot;s:@destination:Destination:g&amp;quot; \ -e &amp;quot;s:@backup:Backup:g&amp;quot; \ -e &amp;quot;s:@maxsize:MaxSize:g&amp;quot; \ -e &amp;quot;s:@timestamp:Timestamp:g&amp;quot; \ -e &amp;quot;s:\[environment\]:\[Environment\]:g&amp;quot; \ -e &amp;quot;s:\[regex\]:\[Regex\]:g&amp;quot; \ -e &amp;quot;s:@configure:Configure:g&amp;quot; \ -e &amp;quot;s:@directories:Directories:g&amp;quot; \ -e &amp;quot;s:@files:Files:g&amp;quot; \ -e &amp;quot;s:@infiles:InFiles:g&amp;quot; \ -i ${service} &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;See the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html##keyword-table-convertion&#34;&gt;Rosetta Stone&lt;/a&gt; for the list of keyword name changes.&lt;/p&gt; &lt;h2 id=&#34;some-reasons&#34;&gt;Some Reasons&lt;/h2&gt; &lt;p&gt;This release marks a major step towards the end of planned breaking changes for version 66. Version &lt;code&gt;0.7.0.0&lt;/code&gt; introduced stability in the directory hierarchy of the 66 ecosystem, and version &lt;code&gt;0.8.0.0&lt;/code&gt; solidified the stability of frontend file keys. While the implementation of events may happen in version &lt;code&gt;0.9.0.0&lt;/code&gt;, this can potentially occur without breaking existing 66 components(see &lt;a href=&#34;https://git.obarun.org/Obarun/66/-/blob/master/README.md?ref_type=heads#roadmap&#34;&gt;roadmap&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;I hope this new version will satisfy you and that you will appreciate the changes made.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2024/10/16/66-migration-instructions.html</link> <pubDate>Wed, 16 Oct 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/10/16/66-migration-instructions.html</guid> </item> <item> <title>66 reach the obcore repository</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;66-reach-the-obcore-repository&#34;&gt;66 reach the obcore repository&lt;/h1&gt; &lt;p&gt;Dear Obarun users,&lt;/p&gt; &lt;p&gt;I&#39;m pleased to announce that the 66 and skalibs packages have been moved from the &lt;code&gt;[obcore-testing]&lt;/code&gt; repository to &lt;code&gt;[obcore]&lt;/code&gt;. After three years of development, i&#39;m happy to share the results of this work with you.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;If you haven&#39;t completed the migration yet, here are the migration instructions from the previous &lt;a href=&#34;https://news.obarun.org/2024/03/25/66-migration-instructions/&#34;&gt;post&lt;/a&gt;, removing the instructions for activating the Obarun testing repositories&lt;/p&gt; &lt;h1 id=&#34;66-migration-instructions&#34;&gt;66 Migration Instructions&lt;/h1&gt; &lt;p&gt;This documentation serves as a general guide and may not cover all possible scenarios. It is based on a system freshly installed from the latest ISO, so you may need to adapt these instructions to your specific setup.&lt;/p&gt; &lt;p&gt;Before proceeding, carefully read all instructions below and ensure you understand each command. If you have any questions or concerns, don&#39;t hesitate to seek assistance on the Obarun &lt;a href=&#34;https://forum.obarun.org&#34;&gt;forum&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you notice any missing or incorrect information in these instructions, please open an issue on our &lt;a href=&#34;https://git.obarun.org/obdev/news&#34;&gt;news&lt;/a&gt; repository.&lt;/p&gt; &lt;p&gt;Please replace &lt;code&gt;oblive&lt;/code&gt; with your actual user account name in these migration instructions when it&#39;s necessary.&lt;/p&gt; &lt;h2 id=&#34;create-backup&#34;&gt;Create Backup&lt;/h2&gt; &lt;p&gt;First, create a directory to store backups:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ mkdir -p ${HOME}/migration-backup/{etc,var/lib,usr/lib}/66 $ mkdir -p ${HOME}/migration-backup/user/oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Next, make a backups of the &lt;code&gt;/etc/66&lt;/code&gt;, &lt;code&gt;/var/lib/66&lt;/code&gt; and &lt;code&gt;/usr/lib/66 directories&lt;/code&gt;.&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -rT /etc/66 ${HOME}/migration-backup/etc/66 $ sudo -E cp -rT /var/lib/66 ${HOME}/migration-backup/var/lib/66 $ sudo -E cp -rT /usr/lib/66 ${HOME}/migration-backup/usr/lib/66 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Also, backup the &lt;code&gt;${HOME}/.66 directories&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cp -r ${HOME}/.66 ${HOME}/migration-backup/user/oblive/ &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;If you have multiple users, ensure to backup files for each user.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Make sure to have the current version of the following packages on your disk:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sw base skalibs execline s6 s6-rc s6-portable-utils s6-linux-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Repeat this process for all packages related to your services.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;To quickly obtain and save a list of your current services, execute the following commands:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ 66-intree -o name,enabled,start,contents &amp;gt; ${HOME}/migration-backup/user-services.list $ sudo -E 66-intree -o name,enabled,start,contents &amp;gt; ${HOME}/migration-backup/root-services.list &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;For example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sw boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv scandir@-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Info&lt;/p&gt; &lt;p&gt;You can also find it on the Obarun archive &lt;a href=&#34;https://cloud.server.obarun.org/browse/&#34;&gt;site&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;If you have sensitive services running, such as PostgreSQL, it&#39;s recommended to stop them before proceeding with the migration. Since the &lt;em&gt;66&lt;/em&gt; ecosystem is not fully compatible between versions, services may not shut down correctly during the reboot procedure.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Now that we have necessary backups in place, let&#39;s proceed with the migration itself.&lt;/p&gt; &lt;h2 id=&#34;update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/h2&gt; &lt;p&gt;Remove the existing &lt;code&gt;/var/lib/66&lt;/code&gt;, &lt;code&gt;/etc/66&lt;/code&gt; and &lt;code&gt;${HOME}/.66 directories&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E rm -rf /var/lib/66/ /etc/66 ${HOME}/.66 &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition danger&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Danger&lt;/p&gt; &lt;p&gt;Do not reboot the machine from this point onward.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Synchronize pacman databases and install the necessary packages:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sy base skalibs execline s6 s6-linux-utils s6-portable-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;Pacman will prompt about conflicts between &lt;em&gt;66&lt;/em&gt; and &lt;em&gt;s6-rc&lt;/em&gt; and ask to remove &lt;em&gt;s6-rc&lt;/em&gt;. Answer &lt;strong&gt;yes&lt;/strong&gt; to proceed. Note that &lt;em&gt;s6-rc&lt;/em&gt; has been dropped from &lt;em&gt;66&lt;/em&gt;.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Additionally, update your services using the list saved at &lt;code&gt;${HOME}/migration-backup/{root,user}-services.list&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -S boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv scandir@-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;configure-the-services&#34;&gt;Configure the Services&lt;/h2&gt; &lt;p&gt;Once you have updated the &lt;em&gt;66&lt;/em&gt; ecosystem, it&#39;s time to configure the services according to your needs. Follow these steps:&lt;/p&gt; &lt;p&gt;Enable the &lt;code&gt;boot@&lt;/code&gt; service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Configure the &lt;code&gt;boot@&lt;/code&gt; service using your preferred editor (replace &lt;code&gt;nano&lt;/code&gt; with your editor of choice):&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -e nano boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Apply the changes:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Enable all other services that you require. For example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot-user@oblive wpa_supplicant consolekit connmand openntpd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Enable user-specific services. For instance:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 enable dbus@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Check the trees to ensure everything is correct:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -z tree status -g Name : boot Current : no Enabled : no Allowed : root Groups : boot Depends : \ └─None Required by : \ └─None Contents : \ ├─boot@system:system-hostname (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-run (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-tmp (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-proc (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-sysctl (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:udevd-log (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system:tty-earlier@tty12 (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system (pid=unitialized, state=Enabled, type=module, tree=boot) ├─boot@system:populate-run (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-tmp (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-sys (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-sys (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-dev (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-pts (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-shm (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-dev (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-cgroups (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-hwclock (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:modules-kernel (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-random (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:modules-system (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:udevd (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system:udevadm (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-fontnkey (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-fsck (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-fstab (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-rw (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-loop (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-sethostname (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-time (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-tmpfiles (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-authfiles (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-netfs (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-dmesg (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:runtime-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:canopy (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:tty-rc@tty2 (pid=0, state=Enabled, type=classic, tree=boot) └─boot@system:tty-rc@tty1 (pid=0, state=Enabled, type=classic, tree=boot) Name : global Current : no Enabled : yes Allowed : root Groups : admin Depends : \ └─None Required by : \ └─session (Enabled) Contents : \ ├─wpa_supplicant-log (pid=0, state=Enabled, type=classic, tree=global) ├─dbus-log (pid=0, state=Enabled, type=classic, tree=global) ├─consolekit-log (pid=0, state=Enabled, type=classic, tree=global) ├─connmand-log (pid=0, state=Enabled, type=classic, tree=global) ├─openntpd-log (pid=0, state=Enabled, type=classic, tree=global) ├─wpa_supplicant (pid=0, state=Enabled, type=classic, tree=global) ├─dbus (pid=0, state=Enabled, type=classic, tree=global) ├─openntpd (pid=668, state=Enabled, type=classic, tree=global) ├─consolekit (pid=0, state=Enabled, type=classic, tree=global) └─connmand (pid=0, state=Enabled, type=classic, tree=global) Name : session Current : no Enabled : yes Allowed : root Groups : admin Depends : \ └─global (Enabled) Required by : \ └─None Contents : \ ├─scandir@oblive:setenv@oblive (pid=unitialized, state=Enabled, type=oneshot, tree=session) ├─scandir@oblive:svscan@oblive-log (pid=0, state=Enabled, type=classic, tree=session) ├─scandir@oblive (pid=unitialized, state=Enabled, type=module, tree=session) ├─boot-user@oblive:mount-run@oblive (pid=unitialized, state=Enabled, type=oneshot, tree=session) ├─scandir@oblive:svscan@oblive (pid=0, state=Enabled, type=classic, tree=session) └─boot-user@oblive (pid=unitialized, state=Enabled, type=module, tree=session) &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Check for user-specific services as well:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 -z tree status -g Name : global Current : no Enabled : yes Allowed : oblive Groups : user Depends : \ └─None Required by : \ └─None Contents : \ ├─dbus@oblive-log (pid=0, state=Enabled, type=classic, tree=global) └─dbus@oblive (pid=0, state=Enabled, type=classic, tree=global) &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;All services should be marked as &lt;code&gt;pid=uninitialized&lt;/code&gt; or &lt;code&gt;pid=0&lt;/code&gt;, but their state should be &lt;code&gt;state=Enabled&lt;/code&gt;. Services that you want to be brought up at startup should also be marked as &lt;code&gt;Enabled: yes&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;Once everything is configured correctly, you can reboot:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-shutdown -r now &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;post-migration&#34;&gt;Post migration&lt;/h2&gt; &lt;p&gt;If you use personal &lt;em&gt;ns&lt;/em&gt; rules files, remember to install them from your &lt;code&gt;${HOME}/migration-backup/usr/lib/66/script/ns&lt;/code&gt; directory to &lt;code&gt;/usr/share/66/script/ns&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;Similarly, copy your personal &lt;code&gt;/usr/lib/66/script&lt;/code&gt; directory to &lt;code&gt;/usr/share/66/script/&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;If you had personal service frontend files previously installed at &lt;code&gt;/etc/66/service&lt;/code&gt;, copy them from your &lt;code&gt;${HOME}/migration-backup/etc/66/service&lt;/code&gt; directory to &lt;code&gt;/etc/66/service&lt;/code&gt;. Also, don&#39;t forget to do the same for user services located at &lt;code&gt;${HOME}/.66/service&lt;/code&gt; by copying them from your &lt;code&gt;${HOME}/migration-backup/user/oblive/.66/service&lt;/code&gt; directory.&lt;/p&gt; &lt;p&gt;Please refer to the explanation below &lt;a href=&#34;#using-your-own-service&#34;&gt;Using your own service&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;rollback&#34;&gt;Rollback&lt;/h2&gt; &lt;p&gt;If you encounter any issues or wish to revert to a previous version of &lt;em&gt;66&lt;/em&gt;, follow these rollback instructions:&lt;/p&gt; &lt;p&gt;Remove the existing &lt;code&gt;/usr/lib/66&lt;/code&gt;, &lt;code&gt;/var/lib/66&lt;/code&gt;, &lt;code&gt;/etc/66&lt;/code&gt;, and &lt;code&gt;${HOME}/.66&lt;/code&gt; directories:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E rm -rf /usr/lib/66 /var/lib/66/ /etc/66 ${HOME}/.66 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Restore the backed-up configuration files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66 /etc $ sudo -E cp -r ${HOME}/migration-backup/var/lib/66 /var/lib &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Additionally, restore user files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cp -r ${HOME}/migration-backup/user/oblive/.66 ${HOME}/ &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;note-for-coexistence-of-services-versions&#34;&gt;Note for Coexistence of Services Versions&lt;/h4&gt; &lt;p&gt;Services from versions &lt;code&gt;0.7.0.0&lt;/code&gt; and &lt;code&gt;0.6.2.0&lt;/code&gt; of &lt;em&gt;66&lt;/em&gt; can coexist on the system because the new version of &lt;em&gt;66&lt;/em&gt; does not recognize the &lt;code&gt;/usr/lib/66&lt;/code&gt; directory and instead uses the &lt;code&gt;/usr/share/66&lt;/code&gt; directory.&lt;/p&gt; &lt;h4 id=&#34;restoring-services&#34;&gt;Restoring Services&lt;/h4&gt; &lt;p&gt;Restoring the frontend service from &lt;code&gt;${HOME}/migration-backup/usr/lib/66&lt;/code&gt; will bring back the service. However, &lt;em&gt;pacman&lt;/em&gt; will not recognize the changes and conflicts during the installation of service packages. Therefore, we need to reinstall the services through &lt;em&gt;pacman&lt;/em&gt; instead of restoring them by copying the &lt;code&gt;${HOME}/migration-backup/usr/lib/66&lt;/code&gt; directory.&lt;/p&gt; &lt;h3 id=&#34;without-internet-access&#34;&gt;Without Internet Access&lt;/h3&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cd /var/cache/pacman/pkg $ sudo pacman -Udd base-3-3-any.pkg.tar.xz skalibs-2.11.2.0-1-x86_64.pkg.tar.xz execline-2.8.3.0-1-x86_64.pkg.tar.xz s6-2.11.1.0-1-x86_64.pkg.tar.xz s6-rc-0.5.3.1-1-x86_64.pkg.tar.xz s6-linux-utils-2.5.1.7-1-x86_64.pkg.tar.xz s6-portable-utils-2.2.4.0-1-x86_64.pkg.tar.xz s6-networking-2.5.1.0-1-x86_64.pkg.tar.xz oblibs-0.1.4.0-2-x86_64.pkg.tar.xz 66-0.6.2.0-2-x86_64.pkg.tar.xz 66-tools-0.0.8.0-2-x86_64.pkg.tar.xz obsysusers-0.1.2.0-2-x86_64.pkg.tar.xz oblog-0.1.1.0-2-x86_64.pkg.tar.xz consolekit2-1.2.6-2-x86_64.pkg.tar.xz boot@-66serv-2.4.1-2-x86_64.pkg.tar.xz boot-user@-66serv-0.4.3-1-x86_64.pkg.tar.xz scandir@-66serv-0.3.1-1-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ pacman -U wpa_supplicant-66serv-0.2.0-1-x86_64.pkg.tar.xz consolekit-66serv-0.2.0-1-x86_64.pkg.tar.xz dbus-66serv-0.2.1-1-x86_64.pkg.tar.xz openntpd-66serv-0.2.1-3-x86_64.pkg.tar.xz connmand-66serv-0.2.0-1-x86_64.pkg.tar.xz dhcpcd-66serv-0.2.0-1-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;h3 id=&#34;with-internet-access&#34;&gt;With Internet Access&lt;/h3&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sydd base skalibs execline s6 s6-rc s6-portable-utils s6-linux-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -S boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Once you have reinstalled the necessary packages, you can reboot the system:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-shutdown -r now &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;using-your-own-service&#34;&gt;Using Your Own Service&lt;/h2&gt; &lt;p&gt;If you are using your own frontend service files, please be aware of the following points to ensure compatibility with the new version of &lt;em&gt;66&lt;/em&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Deprecation of &lt;code&gt;longrun&lt;/code&gt; Type: The &lt;code&gt;longrun&lt;/code&gt; type is deprecated and will be automatically converted to &lt;code&gt;classic&lt;/code&gt; type during the parse process. However, it&#39;s essential to note that &lt;em&gt;66&lt;/em&gt; does not modify the frontend file itself. To avoid issues with future updates of &lt;em&gt;66&lt;/em&gt;, it&#39;s recommended to change the &lt;code&gt;longrun&lt;/code&gt; type of your service to &lt;code&gt;classic&lt;/code&gt; type.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Deprecation of &lt;code&gt;@shebang&lt;/code&gt; Key: The &lt;code&gt;@shebang&lt;/code&gt; key is deprecated and will be removed in the next &lt;em&gt;66&lt;/em&gt; release. Ensure that the shebang of your custom service is defined at the beginning of the &lt;code&gt;@execute&lt;/code&gt; field. For detailed instructions, refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-frontend.html#a-word-about-the-execute-key&#34;&gt;A word about the @execute key&lt;/a&gt; section.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Changes to &lt;code&gt;module&lt;/code&gt; Type: The &lt;code&gt;module&lt;/code&gt; type has undergone significant changes in its inner structure. You will need to recreate it from scratch. Refer to the explanation of the module directory structure on &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-module-creation.html&#34;&gt;this page&lt;/a&gt; for detailed guidance.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;You can find comprehensive information about the complete changes to frontend files on the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-upgrade.html#frontend-files&#34;&gt;upgrade&lt;/a&gt; documentation page.&lt;/p&gt; &lt;p&gt;Additionally, for assistance in converting service frontend files from version 0.6.2.0 to version 0.7.0.0, refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html#converting-service-frontend-file-from-0.6.2.0-version-to-0.7.0.0&#34;&gt;converting service frontend file&lt;/a&gt; page.&lt;/p&gt; &lt;h2 id=&#34;common-command-and-command-comparison&#34;&gt;Common Command and Command Comparison&lt;/h2&gt; &lt;p&gt;This description below is not attempted to replace the &lt;a href=&#34;https://web.obarun.org/software/66/latest/index.html&#34;&gt;66 documentation&lt;/a&gt;. Consult it if you have any doubts and to find out about all the new features and behavioural changes.&lt;/p&gt; &lt;p&gt;You can find a complete explanation of comparison between old and new &lt;em&gt;66&lt;/em&gt; UI interface by reading the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html#converting-service-frontend-file-from-0.6.2.0-version-to-0.7.0.0&#34;&gt;Rosetta Stone&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;However, i&#39;ll provide translations between old and new &lt;em&gt;66&lt;/em&gt; UI interface for the most common commands.&lt;/p&gt; &lt;p&gt;First at all, you can find help of &lt;em&gt;66&lt;/em&gt; UI interfaces doing the following&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display the general help of 66. You can have the help of any command doing for example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 start -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display the help of the start command. This behavior is true for every &lt;em&gt;66&lt;/em&gt; command or subcommand for example&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 tree create -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will give you help of the &lt;code&gt;create&lt;/code&gt; subcommand from the &lt;code&gt;66 tree&lt;/code&gt; command.&lt;/p&gt; &lt;h3 id=&#34;service-manipulation&#34;&gt;Service manipulation&lt;/h3&gt; &lt;h4 id=&#34;start&#34;&gt;Start&lt;/h4&gt; &lt;p&gt;In previous versions, a service had to be &lt;em&gt;enabled&lt;/em&gt; before it could be started. However, in the current version, you can start a service &lt;strong&gt;without enabling it first&lt;/strong&gt;. This means that the service will not be brought up at the next reboot unless it has been explicitly enabled.&lt;/p&gt; &lt;p&gt;To start a service, simply execute the following command, replacing &lt;code&gt;dockerd&lt;/code&gt; with the name of your desired service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 start dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;By default the &lt;code&gt;dockerd&lt;/code&gt; service will be parsed (if not already the case) and started at tree &lt;code&gt;global&lt;/code&gt;. If the service was never parsed you can specify the tree to use with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual start dockerd &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;If the tree virtual doesn&#39;t exist yet, &lt;em&gt;66&lt;/em&gt; will create it automatically. You don&#39;t need to specifically create any tree before associating a service within it. The tree is create with default configuration. Refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#basic-creation-configuration&#34;&gt;basic creation configuration&lt;/a&gt; documentation page for more information.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;enable&#34;&gt;Enable&lt;/h4&gt; &lt;p&gt;If the service was already enabled, the above command will not switch the service dockerd to the tree &lt;code&gt;virtual&lt;/code&gt;. To do so, use:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual enable dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;It was accomplish with the old version by &lt;code&gt;66-enable -t virtual dockerd&lt;/code&gt; command.&lt;/p&gt; &lt;p&gt;Now, the dockerd service is a part of the virtual tree. You can also refers to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#associated-service-to-a-tree&#34;&gt;associated service to a tree&lt;/a&gt; documentation page.&lt;/p&gt; &lt;p&gt;You can also enable and start a service in one pass:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable -S dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The previous command to do the same was &lt;code&gt;66-enable -S dockerd&lt;/code&gt;.&lt;/p&gt; &lt;h4 id=&#34;convenient-command&#34;&gt;Convenient Command&lt;/h4&gt; &lt;p&gt;Some convenient command was introduce to reload, restart, and reconfigure a service.&lt;/p&gt; &lt;p&gt;To reload or restart a service, you previously used the command &lt;code&gt;66-start [-r|R] dockerd&lt;/code&gt;. With the new interface to reload a service, do&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reload dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;To restart it, do&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 restart dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Let&#39;s say you have modified something at the frontend file of the service and you want to apply the change, use:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will stop, parse again the service, and bring up it again. The previous command to accomplish the same was &lt;code&gt;66-enable -F dockerd&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;You may need to deal with configuration file of the service. The previous command used was &lt;code&gt;66-env -e nano dockerd&lt;/code&gt;, you can accomplish the same with&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -e nano dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Once you&#39;re done with your changes, apply it with the following command&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reload dockerd &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;In case of module type use &lt;code&gt;sudo 66 reconfigure &amp;lt;service&amp;gt;&lt;/code&gt;. The &lt;code&gt;reload&lt;/code&gt; command send a SIGHUP signal to the service which the traditionnal way on linux to make the daemon reloading it configuration file. In case of module the service need to be parsed again which what exactly do the &lt;code&gt;reconfigure&lt;/code&gt; command.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;remove-and-freed&#34;&gt;Remove and Freed&lt;/h4&gt; &lt;p&gt;You can remove a service like you did with &lt;code&gt;66-disable -R&lt;/code&gt; command. To do so with the new interface:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 remove dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You may want to free the ressources used by a service when you no longer need it running. Previously, you would use the command &lt;code&gt;66-stop -u dockerd&lt;/code&gt;. Now, you can achieve the same with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 free dockerd &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;get-information&#34;&gt;Get Information&lt;/h4&gt; &lt;p&gt;The command previously used to see service information was &lt;code&gt;66-inservice&lt;/code&gt;. This command is replaced by &lt;code&gt;66 status&lt;/code&gt;. So, to see a service status do:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 status dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You can combine options used in the previous &lt;em&gt;66&lt;/em&gt; release with &lt;code&gt;66-inservice&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 status -go name,status,logfile dockerd &lt;/code&gt;&lt;/pre&gt; &lt;h3 id=&#34;tree-manipulation&#34;&gt;Tree Manipulation&lt;/h3&gt; &lt;p&gt;As we saw before, tree are created automatically if it doesn&#39;t exist yet with the invocation of the &lt;code&gt;-t&lt;/code&gt; option of the &lt;code&gt;66&lt;/code&gt; main command. But, you may want to configure it to suit your needs.&lt;/p&gt; &lt;p&gt;With the new version of &lt;em&gt;66&lt;/em&gt;, trees react similarly to services regarding interdependencies. A tree can depend on another tree. For example, if the &lt;code&gt;session&lt;/code&gt; tree declares &lt;code&gt;global&lt;/code&gt; as a dependency, the &lt;code&gt;global&lt;/code&gt; tree will be brought up before the &lt;code&gt;session&lt;/code&gt; tree. This means that all services associated &lt;strong&gt;AND&lt;/strong&gt; enabled to the &lt;code&gt;global&lt;/code&gt; tree will be started first before any services associated with the &lt;code&gt;session&lt;/code&gt; tree.&lt;/p&gt; &lt;p&gt;However, a service can depend on another service even if the services are not associated with the same tree. For instance, the &lt;code&gt;consolekit&lt;/code&gt; service is associated with the &lt;code&gt;global&lt;/code&gt; tree, and &lt;code&gt;dbus&lt;/code&gt; is associated with the &lt;code&gt;session&lt;/code&gt; tree. &lt;code&gt;consolekit&lt;/code&gt; depends on &lt;code&gt;dbus&lt;/code&gt;. Even though the &lt;code&gt;global&lt;/code&gt; tree will be started first when handling &lt;code&gt;consolekit&lt;/code&gt;, &lt;em&gt;66&lt;/em&gt; will attempt to start &lt;code&gt;dbus&lt;/code&gt; first because &lt;code&gt;consolekit&lt;/code&gt; depends on &lt;code&gt;dbus&lt;/code&gt;. Then, when it&#39;s the turn of the &lt;code&gt;session&lt;/code&gt; tree to start, &lt;em&gt;66&lt;/em&gt; found &lt;code&gt;dbus&lt;/code&gt; as already marked up, and continue to deal with the rest of the services associated to tree &lt;code&gt;session&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;In the new version of &lt;em&gt;66&lt;/em&gt;, a service can depend on any other service, regardless of the tree associated with the service. This marks a significant difference from the previous version of &lt;em&gt;66&lt;/em&gt; and this the reason of the drop of the &lt;code&gt;@extdepends&lt;/code&gt; field at frontend file. This flexibility also enables the ability to start a service without the need to enable it first. This feature is made possible by the removal of &lt;code&gt;s6-rc&lt;/code&gt;.&lt;/p&gt; &lt;h4 id=&#34;create-enable-remove-a-tree&#34;&gt;Create, Enable, Remove a Tree&lt;/h4&gt; &lt;p&gt;Previously, to create a tree you used &lt;code&gt;66-tree -n mytree&lt;/code&gt;. To do so with the new interface:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will create the tree named &lt;code&gt;mytree&lt;/code&gt; with basic configuration.&lt;/p&gt; &lt;p&gt;The previous command to enable a tree &lt;code&gt;66-tree -E mytree&lt;/code&gt; can now be accomplish with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree enable mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You may want to control it dependencies, do it using the tree subcommand &lt;code&gt;admin&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree admin -o depends=global session &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This tree subcommand replace the &lt;code&gt;66-tree -S&lt;/code&gt;. In this example the tree &lt;code&gt;session&lt;/code&gt; will depends on tree &lt;code&gt;global&lt;/code&gt;.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;You can create and manage the configuration of the tree in one pass with the &lt;code&gt;tree create&lt;/code&gt; subcommand. The following command create and handle dependencies of the tree&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ sudo 66 tree create -o depends=global session &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;You can remove a tree with the command &lt;code&gt;66 tree remove&lt;/code&gt; previously made by the command &lt;code&gt;66-tree -R&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree remove mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Marking the tree as the current one is straightforward:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree current mytree &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;get-information_1&#34;&gt;Get Information&lt;/h4&gt; &lt;p&gt;The Command previously used was &lt;code&gt;66-intree&lt;/code&gt;. Use &lt;code&gt;66 tree status&lt;/code&gt; with the new &lt;em&gt;66&lt;/em&gt; version:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display information of all trees.&lt;/p&gt; &lt;p&gt;You can also use previous option like:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status -g &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Or to get information from a specific tree:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status -g global &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;red-line-or-keeping-the-old-to-the-new&#34;&gt;Red line or keeping the old to the new&lt;/h2&gt; &lt;p&gt;First of all, the inner directory structure of 66 underwent a revamp (thanks to the drop of s6-rc) and significant simplification. This inevitably breaks compatibility with previous versions.&lt;/p&gt; &lt;p&gt;To establish a solid foundation with the new version, it&#39;s advisable to take a somewhat drastic approach and clean all main 66 directories. Therefore, the &lt;a href=&#34;#create-backup&#34;&gt;backup&lt;/a&gt; to the &lt;a href=&#34;#update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/a&gt; procedure needs to be applied in any case.&lt;/p&gt; &lt;p&gt;Let&#39;s examine a complete example from an existing services system:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-intree &amp;gt; intree_root.file $ cat intree_root.file Name : boot Initialized : yes Enabled : no Starts after : None Current : no Allowed : root Symlinks : svc-&amp;gt;backup db-&amp;gt;backup Contents : tty-earlier@tty12 mount-proc mount-sys system-hostname mount-run populate-run mount-tmp populate-tmp populate-sys mount-dev mount-pts mount-shm populate-dev mount-cgroups 00 all-Mount modules-kernel udevd-log udevd udevadm system-fontnkey system-fsck mount-fstab system-hwclock system-random modules-system system-sysctl all-System mount-rw mount-netfs local-loop local-sethostname local-time local-tmpfiles local-authfiles local-dmesg all-Local all-Runtime All tty-rc@tty1 tty-rc@tty2 boot@system Name : virtual Initialized : yes Enabled : no Starts after : None Current : no Allowed : root Symlinks : svc-&amp;gt;backup db-&amp;gt;backup Contents : dockerd-log dockerd virtlockd-socket virtlockd-log virtlockd virtlogd-log virtlogd libvirtd-log libvirtd Name : root Initialized : yes Enabled : yes Starts after : None Current : yes Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : openntpd-log openntpd wpa_supplicant-log wpa_supplicant dbus-log dbus connmand-log connmand consolekit-log consolekit Name : boot-user Initialized : yes Enabled : yes Starts after : root Current : no Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : setenv@oblive svscan@oblive-log svscan@oblive scandir@oblive mount-run@oblive boot-user@oblive Name : tty Initialized : yes Enabled : yes Starts after : root boot-user Current : no Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : tty@tty5-log tty@tty5 tty@tty6-log tty@tty6 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Similarly, for the user:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66-intree &amp;gt; intree_user.file $ cat intree_user.file Name : base Initialized : yes Enabled : yes Starts after : None Current : yes Allowed : oblive Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : dbus-session@oblive-log dbus-session@oblive xdg-user-dirs &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, let&#39;s review the configuration service files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ su # for i in $(66-intree -no contents);do r=$(66-inservice -no envat $i); if [[ ${r} == &amp;quot;None&amp;quot; ]]; then continue ; fi ; v=${r##*/} ; echo &amp;quot;$i:$v&amp;quot; &amp;gt;&amp;gt; service_root.file ;done $ sort service_root.file | uniq -d all-Runtime:2.4.1 boot-user@oblive:0.4.3 boot@system:2.4.1 connmand:0.2.0 consolekit:0.2.0 dbus:0.2.1 dockerd:0.2.0 local-authfiles:2.4.1 local-dmesg:2.4.1 local-sethostname:2.4.1 local-time:2.4.1 local-tmpfiles:2.4.1 modules-system:2.4.1 mount-dev:2.4.1 mount-proc:2.4.1 mount-pts:2.4.1 mount-run:2.4.1 mount-rw:2.4.1 mount-shm:2.4.1 mount-sys:2.4.1 mount-tmp:2.4.1 openntpd:0.2.1 scandir@oblive:0.3.1 svscan@oblive:0.3.1 system-fontnkey:2.4.1 system-fsck:2.4.1 system-hostname:2.4.1 system-hwclock:2.4.1 tty-earlier@tty12:2.4.1 tty-rc@tty1:2.4.1 tty-rc@tty2:2.4.1 virtlockd-socket:0.2.0 wpa_supplicant:0.2.0 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;For the user:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ for i in $(66-intree -no contents);do r=$(66-inservice -no envat $i); if [[ ${r} == &amp;quot;None&amp;quot; ]]; then continue ; fi ; v=${r##*/} ; echo &amp;quot;$i:$v&amp;quot; &amp;gt;&amp;gt; service_user.file ;done $ cat service_user.file dbus-session@oblive:0.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;After completing the steps outlined in the &lt;a href=&#34;#create-backup&#34;&gt;backup&lt;/a&gt; procedure up to the &lt;a href=&#34;#update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/a&gt; procedure, I can proceed by creating the necessary trees.&lt;/p&gt; &lt;h3 id=&#34;trees&#34;&gt;Trees&lt;/h3&gt; &lt;h4 id=&#34;boot-tree&#34;&gt;Boot Tree&lt;/h4&gt; &lt;p&gt;The boot tree will be automatically created when invoking the &lt;code&gt;66 enable boot@system&lt;/code&gt; command. However, for the sake of demonstration, I will create it from scratch.&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create -o groups=boot:allow=root boot &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I can configure the tree during creation using the &lt;code&gt;-o&lt;/code&gt; options:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;groups=boot&lt;/code&gt; indicates to 66 that the &lt;code&gt;boot&lt;/code&gt; tree belongs to the boot group. This is a fairly new &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#groups-behavior&#34;&gt;features&lt;/a&gt;. Associating the &lt;code&gt;boot&lt;/code&gt; tree with the &lt;code&gt;boot&lt;/code&gt; group prevents users from enabling the &lt;code&gt;boot&lt;/code&gt; tree.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;allow=root&lt;/code&gt; option behaves the same as in the previous version.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h4 id=&#34;root-tree&#34;&gt;Root Tree&lt;/h4&gt; &lt;p&gt;With the new version, a default tree called &lt;code&gt;global&lt;/code&gt; is provided and enabled by default. As for the &lt;code&gt;root&lt;/code&gt; tree, it should be populated with services mainly used by other services or essential services required at every boot, such as sysadmin administration. There&#39;s nothing to configure for this tree as &lt;em&gt;66&lt;/em&gt; handles it directly.&lt;/p&gt; &lt;h4 id=&#34;virtual-tree&#34;&gt;Virtual Tree&lt;/h4&gt; &lt;p&gt;This tree requires no particular configuration. It was not enabled and has no dependencies. A simple creation will suffice:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create virtual &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;tty-tree&#34;&gt;TTY Tree&lt;/h4&gt; &lt;p&gt;This tree needs to start after the &lt;code&gt;root&lt;/code&gt; and &lt;code&gt;boot-user&lt;/code&gt; trees. Therefore, for us, it depends on &lt;code&gt;global&lt;/code&gt; and &lt;code&gt;boot-user&lt;/code&gt;. Again, in one pass, I create and configure the tree. The following command is self-explanatory:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create -o depends=global,boot-user tty &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;If you really enjoy typing &lt;em&gt;66&lt;/em&gt; commands, you can split it into two steps, with the first being the creation and the second the administration of the tree:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create tty $ sudo 66 tree admin -o depends=global,boot-user tty &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;It&#39;s also enabled straightforwardly:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree enable tty &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;boot-user-tree&#34;&gt;Boot-User Tree&lt;/h4&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is already created by the &lt;code&gt;tty&lt;/code&gt; tree creation process. Since I invoked &lt;code&gt;depends=global,boot-user&lt;/code&gt; in the &lt;code&gt;create&lt;/code&gt; command and &lt;em&gt;66&lt;/em&gt; didn&#39;t find the &lt;code&gt;boot-user&lt;/code&gt; tree, it created it with a sensible default configuration. Any invocation of a non-existing tree by any related tree options with any 66 command will trigger its creation.&lt;/p&gt; &lt;p&gt;However, it needs to be configured slightly to depend on &lt;code&gt;global&lt;/code&gt; as it is dependent on &lt;code&gt;root&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree admin -o depends=global boot-user &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, I&#39;m done with the tree configurations.&lt;/p&gt; &lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt; &lt;h4 id=&#34;bootsystem&#34;&gt;Boot@system&lt;/h4&gt; &lt;p&gt;Starting with the boot service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;A brief explanation of what happens behind this &lt;code&gt;66 enable&lt;/code&gt; command: I didn&#39;t specify the name of the tree, but &lt;em&gt;66&lt;/em&gt; associates the &lt;code&gt;boot@system&lt;/code&gt; service with the &lt;code&gt;boot@&lt;/code&gt; tree. This is because a &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#seed-files&#34;&gt;seed&lt;/a&gt; is provided with the &lt;code&gt;boot@&lt;/code&gt; service, and the service frontend file has the &lt;code&gt;@intree=boot&lt;/code&gt; field defined. So, &lt;em&gt;66&lt;/em&gt; knows where to enable the &lt;code&gt;boot@system&lt;/code&gt; service and how to create the necessary tree. Since the &lt;code&gt;boot&lt;/code&gt; tree was previously created, &lt;em&gt;66&lt;/em&gt; left it as is.&lt;/p&gt; &lt;p&gt;I import my previous configuration file to the new one by copying the old version (service_root.file) from the backup to the configuration directory. Then, I invoke the configure command to import the old version to the new one, and finally, I reconfigure the boot@system service to apply the changes:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66/conf/boot@system/2.4.1 /etc/66/conf/boot@system/2.4.1 $ sudo 66 configure -i 2.4.1,3.7.0 boot@system $ sudo 66 reconfigure boot@system &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;To know the current version of the service:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ sudo 66 configure -V boot@system &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;I may double-check to ensure everything is good:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -L boot@system &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;Name of variable at &lt;code&gt;[environment]&lt;/code&gt; section may have changed between versions. You should always check your configuration file manually with the &lt;code&gt;configure&lt;/code&gt; command above.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;to-global&#34;&gt;To Global&lt;/h4&gt; &lt;p&gt;Transitioning from the previous &lt;code&gt;root&lt;/code&gt; tree (intree_root.file), I need to enable the following services:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Again, I don&#39;t need to specify the name of the tree. As &lt;code&gt;@intree&lt;/code&gt; is not defined on these services and no trees are marked as the current one, &lt;em&gt;66&lt;/em&gt; will use the &lt;code&gt;global&lt;/code&gt; default tree. You can obviously force it if you really want with the &lt;code&gt;-t&lt;/code&gt; option:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t global enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Or I can mark the tree as the current one:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree current global $ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;All these commands yield the same result, with my services associated with the &lt;code&gt;global&lt;/code&gt; tree.&lt;/p&gt; &lt;p&gt;I can apply the same method i used before for importing the old configuration to the new one:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66/conf/openntpd/0.2.1 /etc/66/conf/openntpd/0.2.1 $ sudo 66 configure -i 0.2.1,0.7.0 openntpd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I don&#39;t need to use the &lt;code&gt;66 reconfigure&lt;/code&gt; command as the frontend itself was not modified, and it&#39;s not a &lt;code&gt;module&lt;/code&gt; service type.&lt;/p&gt; &lt;p&gt;To summarize, I&#39;ve applied the same process for all my &lt;code&gt;global&lt;/code&gt; services.&lt;/p&gt; &lt;h4 id=&#34;to-virtual&#34;&gt;To Virtual&lt;/h4&gt; &lt;p&gt;Let&#39;s proceed quickly:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual enable dockerd libvirtd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The services are now associated with the virtual tree. I&#39;ve applied my configuration importation process, and I&#39;m done with these services.&lt;/p&gt; &lt;h4 id=&#34;to-tty&#34;&gt;To TTY&lt;/h4&gt; &lt;p&gt;I think you understand the point by now:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t tty enable tty@tty5 tty@tty6 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I have no configuration files to import for these ones.&lt;/p&gt; &lt;h4 id=&#34;to-boot-user&#34;&gt;To Boot-User&lt;/h4&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is by default associated with a tree named &lt;code&gt;session&lt;/code&gt; and provides the necessary &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#seed-files&#34;&gt;seed&lt;/a&gt; file to configure that tree. It might be beneficial to switch to this new configuration, but the decision is yours. So, I force the use of the specified tree with the &lt;code&gt;-t&lt;/code&gt; option:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t boot-user enable boot-user@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Applying the same configuration file importation process should now be straightforward for you. Additionally, I execute:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure boot-user@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Since it&#39;s a module type, it needs to be reconfigured from scratch to apply the changes from my imported configuration files. As you may have noticed, there&#39;s no need to specify the tree here; &lt;em&gt;66&lt;/em&gt; is smart enough to do what it needs to do.&lt;/p&gt; &lt;p&gt;And with that, I&#39;m done :).&lt;/p&gt; &lt;h3 id=&#34;some-observations&#34;&gt;Some Observations&lt;/h3&gt; &lt;p&gt;To maintain compatibility with previous practices of managing trees and services, I began by creating the trees. However, with the new version, you can take a shorter route, as &lt;em&gt;66&lt;/em&gt; automatically creates trees when they don&#39;t exist on the system simply by enabling services and then administering the tree afterward:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system # This creates the boot tree and also administers it through the seed configuration file $ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit # Default to the global tree $ sudo 66 -t virtual enable libvirtd dockerd # The tree doesn&#39;t exist yet, but 66 will create it $ sudo 66 -t boot-user enable boot-user@oblive # Same here regarding the tree $ sudo 66 -t tty enable tty@tty5 tty@tty6 # Another one $ sudo 66 tree admin -o depends=global,boot-user tty # I administer the tty tree to make it depend on global and boot-user $ sudo 66 tree enable tty # Self-explanatory $ sudo 66 tree admin -o depends=global boot-user # Set global as a dependency for boot-user &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, I can proceed with my configuration file importation process and finally reconfigure the &lt;code&gt;boot@system&lt;/code&gt; and &lt;code&gt;boot-user@oblive&lt;/code&gt; services.&lt;/p&gt; &lt;h3 id=&#34;user-services&#34;&gt;User Services&lt;/h3&gt; &lt;p&gt;The exact same process can be applied to user services. Since a &lt;code&gt;global&lt;/code&gt; tree exists for the root user, a &lt;code&gt;global&lt;/code&gt; tree for users also exists and behaves in the same manner. Therefore:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable dbus@oblive xdg-user-dirs &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Again, I can now import my configuration files if desired. As you may have noticed, the &lt;code&gt;dbus-session@&lt;/code&gt; service was renamed to &lt;code&gt;dbus@&lt;/code&gt;. However, this is the exact same service and performs the same functions as before.&lt;/p&gt; &lt;h2 id=&#34;obarun-notable-changes&#34;&gt;Obarun Notable Changes&lt;/h2&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;The new &lt;em&gt;66&lt;/em&gt; version provide a default tree called &lt;em&gt;global&lt;/em&gt;. This tree is always present on your system. If you remove it, this tree will be automatically recreated at any &lt;em&gt;66&lt;/em&gt; command invocation. By default, any service started/enabled will be associated to that tree. This tree is also enabled by default, that mean that &lt;em&gt;66&lt;/em&gt; will try to start any enabled service on it right after the finish of the boot tree. So, in fact it react as same as the previously tree called &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The directory &lt;code&gt;/usr/lib/66&lt;/code&gt; is only used to store library of &lt;em&gt;66&lt;/em&gt;. All others compoments find on that directory can be find now at &lt;code&gt;/usr/share/66&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;User services &lt;em&gt;must be&lt;/em&gt; installed at &lt;code&gt;${HOME}/.66/service&lt;/code&gt;, &lt;code&gt;/etc/66/service/user&lt;/code&gt; or &lt;code&gt;/usr/share/66/service/user&lt;/code&gt; in that order of precedence. This allows us to make a quick visual distinction between &lt;em&gt;system&lt;/em&gt; and &lt;em&gt;user&lt;/em&gt; services. It also enables us to have the exact same name for a service that can be used by both &lt;em&gt;root&lt;/em&gt; and &lt;em&gt;regular users&lt;/em&gt;. A perfect example is &lt;code&gt;dbus-66serv&lt;/code&gt;. In the previous version, this package installed the &lt;code&gt;dbus&lt;/code&gt; and &lt;code&gt;dbus-session@&lt;/code&gt; frontend files. With the new version, the &lt;code&gt;dbus-session@&lt;/code&gt; frontend file was replaced by &lt;code&gt;dbus@&lt;/code&gt; and installed at &lt;code&gt;/usr/share/66/service/user/dbus&lt;/code&gt;. Therefore, you can start the service using a &lt;em&gt;regular account&lt;/em&gt; with the &lt;code&gt;66 start dbus@oblive&lt;/code&gt; command.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is now installed by default at tree named &lt;code&gt;session&lt;/code&gt;. This tree is automatically created by &lt;em&gt;66&lt;/em&gt; with sane default configuration at &lt;code&gt;boot-user@&lt;/code&gt; configuration.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt; &lt;p&gt;I hope this new version will satisfy you and that you will appreciate the changes made.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2024/05/03/66-reach-the-obcore-repository.html</link> <pubDate>Fri, 03 May 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/05/03/66-reach-the-obcore-repository.html</guid> </item> <item> <title>66 migration instructions</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <category>System</category> <category>System</category> <description>&lt;h1 id=&#34;66-migration-instructions&#34;&gt;66 Migration Instructions&lt;/h1&gt; &lt;p&gt;Dear Obarun users, the Obarun testing repositories are ready to be used to migrate your &lt;em&gt;66&lt;/em&gt; program to the new release.&lt;/p&gt; &lt;p&gt;This documentation serves as a general guide and may not cover all possible scenarios. It is based on a system freshly installed from the latest ISO, so you may need to adapt these instructions to your specific setup.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;Before proceeding, carefully read all instructions below and ensure you understand each command. If you have any questions or concerns, don&#39;t hesitate to seek assistance on the Obarun &lt;a href=&#34;https://forum.obarun.org&#34;&gt;forum&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you notice any missing or incorrect information in these instructions, please open an issue on our &lt;a href=&#34;https://git.obarun.org/obdev/news&#34;&gt;news&lt;/a&gt; repository.&lt;/p&gt; &lt;p&gt;Please replace &lt;code&gt;oblive&lt;/code&gt; with your actual user account name in these migration instructions when it&#39;s necessary.&lt;/p&gt; &lt;h2 id=&#34;create-backup&#34;&gt;Create Backup&lt;/h2&gt; &lt;p&gt;First, create a directory to store backups:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ mkdir -p ${HOME}/migration-backup/{etc,var/lib,usr/lib}/66 $ mkdir -p ${HOME}/migration-backup/user/oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Next, make a backups of the &lt;code&gt;/etc/66&lt;/code&gt;, &lt;code&gt;/var/lib/66&lt;/code&gt; and &lt;code&gt;/usr/lib/66 directories&lt;/code&gt;.&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -rT /etc/66 ${HOME}/migration-backup/etc/66 $ sudo -E cp -rT /var/lib/66 ${HOME}/migration-backup/var/lib/66 $ sudo -E cp -rT /usr/lib/66 ${HOME}/migration-backup/usr/lib/66 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Also, backup the &lt;code&gt;${HOME}/.66 directories&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cp -r ${HOME}/.66 ${HOME}/migration-backup/user/oblive/ &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;If you have multiple users, ensure to backup files for each user.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Make sure to have the current version of the following packages on your disk:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sw base skalibs execline s6 s6-rc s6-portable-utils s6-linux-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Repeat this process for all packages related to your services.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;To quickly obtain and save a list of your current services, execute the following commands:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ 66-intree -o name,enabled,start,contents &amp;gt; ${HOME}/migration-backup/user-services.list $ sudo -E 66-intree -o name,enabled,start,contents &amp;gt; ${HOME}/migration-backup/root-services.list &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;For example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sw boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv scandir@-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Info&lt;/p&gt; &lt;p&gt;You can also find it on the Obarun archive &lt;a href=&#34;https://cloud.server.obarun.org/browse/&#34;&gt;site&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;If you have sensitive services running, such as PostgreSQL, it&#39;s recommended to stop them before proceeding with the migration. Since the &lt;em&gt;66&lt;/em&gt; ecosystem is not fully compatible between versions, services may not shut down correctly during the reboot procedure.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Now that we have necessary backups in place, let&#39;s proceed with the migration itself.&lt;/p&gt; &lt;h2 id=&#34;update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/h2&gt; &lt;p&gt;Activate the &lt;code&gt;[obcore-testing]&lt;/code&gt;, &lt;code&gt;[obextra-testing]&lt;/code&gt; and &lt;code&gt;[observice-testing]&lt;/code&gt; repositories by editing your &lt;code&gt;/etc/pacman.conf&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;Remove the existing &lt;code&gt;/var/lib/66&lt;/code&gt;, &lt;code&gt;/etc/66&lt;/code&gt; and &lt;code&gt;${HOME}/.66 directories&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E rm -rf /var/lib/66/ /etc/66 ${HOME}/.66 &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition danger&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Danger&lt;/p&gt; &lt;p&gt;Do not reboot the machine from this point onward.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Synchronize pacman databases and install the necessary packages:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sy base skalibs execline s6 s6-linux-utils s6-portable-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;Pacman will prompt about conflicts between &lt;em&gt;66&lt;/em&gt; and &lt;em&gt;s6-rc&lt;/em&gt; and ask to remove &lt;em&gt;s6-rc&lt;/em&gt;. Answer &lt;strong&gt;yes&lt;/strong&gt; to proceed. Note that &lt;em&gt;s6-rc&lt;/em&gt; has been dropped from &lt;em&gt;66&lt;/em&gt;.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Additionally, update your services using the list saved at &lt;code&gt;${HOME}/migration-backup/{root,user}-services.list&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -S boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv scandir@-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;configure-the-services&#34;&gt;Configure the Services&lt;/h2&gt; &lt;p&gt;Once you have updated the &lt;em&gt;66&lt;/em&gt; ecosystem, it&#39;s time to configure the services according to your needs. Follow these steps:&lt;/p&gt; &lt;p&gt;Enable the &lt;code&gt;boot@&lt;/code&gt; service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Configure the &lt;code&gt;boot@&lt;/code&gt; service using your preferred editor (replace &lt;code&gt;nano&lt;/code&gt; with your editor of choice):&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -e nano boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Apply the changes:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Enable all other services that you require. For example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot-user@oblive wpa_supplicant consolekit connmand openntpd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Enable user-specific services. For instance:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 enable dbus@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Check the trees to ensure everything is correct:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -z tree status -g Name : boot Current : no Enabled : no Allowed : root Groups : boot Depends : \ └─None Required by : \ └─None Contents : \ ├─boot@system:system-hostname (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-run (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-tmp (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-proc (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-sysctl (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:udevd-log (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system:tty-earlier@tty12 (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system (pid=unitialized, state=Enabled, type=module, tree=boot) ├─boot@system:populate-run (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-tmp (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-sys (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-sys (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-dev (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-pts (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-shm (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:populate-dev (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-cgroups (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-hwclock (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:modules-kernel (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-random (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:modules-system (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:udevd (pid=0, state=Enabled, type=classic, tree=boot) ├─boot@system:udevadm (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-fontnkey (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-fsck (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-fstab (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:system-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-rw (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-loop (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-sethostname (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-time (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-tmpfiles (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-authfiles (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:mount-netfs (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-dmesg (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:local-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:runtime-branch (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:canopy (pid=unitialized, state=Enabled, type=oneshot, tree=boot) ├─boot@system:tty-rc@tty2 (pid=0, state=Enabled, type=classic, tree=boot) └─boot@system:tty-rc@tty1 (pid=0, state=Enabled, type=classic, tree=boot) Name : global Current : no Enabled : yes Allowed : root Groups : admin Depends : \ └─None Required by : \ └─session (Enabled) Contents : \ ├─wpa_supplicant-log (pid=0, state=Enabled, type=classic, tree=global) ├─dbus-log (pid=0, state=Enabled, type=classic, tree=global) ├─consolekit-log (pid=0, state=Enabled, type=classic, tree=global) ├─connmand-log (pid=0, state=Enabled, type=classic, tree=global) ├─openntpd-log (pid=0, state=Enabled, type=classic, tree=global) ├─wpa_supplicant (pid=0, state=Enabled, type=classic, tree=global) ├─dbus (pid=0, state=Enabled, type=classic, tree=global) ├─openntpd (pid=668, state=Enabled, type=classic, tree=global) ├─consolekit (pid=0, state=Enabled, type=classic, tree=global) └─connmand (pid=0, state=Enabled, type=classic, tree=global) Name : session Current : no Enabled : yes Allowed : root Groups : admin Depends : \ └─global (Enabled) Required by : \ └─None Contents : \ ├─scandir@oblive:setenv@oblive (pid=unitialized, state=Enabled, type=oneshot, tree=session) ├─scandir@oblive:svscan@oblive-log (pid=0, state=Enabled, type=classic, tree=session) ├─scandir@oblive (pid=unitialized, state=Enabled, type=module, tree=session) ├─boot-user@oblive:mount-run@oblive (pid=unitialized, state=Enabled, type=oneshot, tree=session) ├─scandir@oblive:svscan@oblive (pid=0, state=Enabled, type=classic, tree=session) └─boot-user@oblive (pid=unitialized, state=Enabled, type=module, tree=session) &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Check for user-specific services as well:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 -z tree status -g Name : global Current : no Enabled : yes Allowed : oblive Groups : user Depends : \ └─None Required by : \ └─None Contents : \ ├─dbus@oblive-log (pid=0, state=Enabled, type=classic, tree=global) └─dbus@oblive (pid=0, state=Enabled, type=classic, tree=global) &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;All services should be marked as &lt;code&gt;pid=uninitialized&lt;/code&gt; or &lt;code&gt;pid=0&lt;/code&gt;, but their state should be &lt;code&gt;state=Enabled&lt;/code&gt;. Services that you want to be brought up at startup should also be marked as &lt;code&gt;Enabled: yes&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;Once everything is configured correctly, you can reboot:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-shutdown -r now &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;post-migration&#34;&gt;Post migration&lt;/h2&gt; &lt;p&gt;Deactivate the &lt;code&gt;[obcore-testing]&lt;/code&gt;, &lt;code&gt;[obextra-testing]&lt;/code&gt;, and &lt;code&gt;[observice-testing]&lt;/code&gt; repositories by editing your &lt;code&gt;/etc/pacman.conf&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;If you use personal &lt;em&gt;ns&lt;/em&gt; rules files, remember to install them from your &lt;code&gt;${HOME}/migration-backup/usr/lib/66/script/ns&lt;/code&gt; directory to &lt;code&gt;/usr/share/66/script/ns&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;Similarly, copy your personal &lt;code&gt;/usr/lib/66/script&lt;/code&gt; directory to &lt;code&gt;/usr/share/66/script/&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;If you had personal service frontend files previously installed at &lt;code&gt;/etc/66/service&lt;/code&gt;, copy them from your &lt;code&gt;${HOME}/migration-backup/etc/66/service&lt;/code&gt; directory to &lt;code&gt;/etc/66/service&lt;/code&gt;. Also, don&#39;t forget to do the same for user services located at &lt;code&gt;${HOME}/.66/service&lt;/code&gt; by copying them from your &lt;code&gt;${HOME}/migration-backup/user/oblive/.66/service&lt;/code&gt; directory.&lt;/p&gt; &lt;p&gt;Please refer to the explanation below &lt;a href=&#34;#using-your-own-service&#34;&gt;Using your own service&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;rollback&#34;&gt;Rollback&lt;/h2&gt; &lt;p&gt;If you encounter any issues or wish to revert to a previous version of &lt;em&gt;66&lt;/em&gt;, follow these rollback instructions:&lt;/p&gt; &lt;p&gt;Remove the existing &lt;code&gt;/usr/lib/66&lt;/code&gt;, &lt;code&gt;/var/lib/66&lt;/code&gt;, &lt;code&gt;/etc/66&lt;/code&gt;, and &lt;code&gt;${HOME}/.66&lt;/code&gt; directories:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E rm -rf /usr/lib/66 /var/lib/66/ /etc/66 ${HOME}/.66 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Restore the backed-up configuration files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66 /etc $ sudo -E cp -r ${HOME}/migration-backup/var/lib/66 /var/lib &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Additionally, restore user files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cp -r ${HOME}/migration-backup/user/oblive/.66 ${HOME}/ &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;note-for-coexistence-of-services-versions&#34;&gt;Note for Coexistence of Services Versions&lt;/h4&gt; &lt;p&gt;Services from versions &lt;code&gt;0.7.0.0&lt;/code&gt; and &lt;code&gt;0.6.2.0&lt;/code&gt; of &lt;em&gt;66&lt;/em&gt; can coexist on the system because the new version of &lt;em&gt;66&lt;/em&gt; does not recognize the &lt;code&gt;/usr/lib/66&lt;/code&gt; directory and instead uses the &lt;code&gt;/usr/share/66&lt;/code&gt; directory.&lt;/p&gt; &lt;h4 id=&#34;restoring-services&#34;&gt;Restoring Services&lt;/h4&gt; &lt;p&gt;Restoring the frontend service from &lt;code&gt;${HOME}/migration-backup/usr/lib/66&lt;/code&gt; will bring back the service. However, &lt;em&gt;pacman&lt;/em&gt; will not recognize the changes and conflicts during the installation of service packages. Therefore, we need to reinstall the services through &lt;em&gt;pacman&lt;/em&gt; instead of restoring them by copying the &lt;code&gt;${HOME}/migration-backup/usr/lib/66&lt;/code&gt; directory.&lt;/p&gt; &lt;h3 id=&#34;without-internet-access&#34;&gt;Without Internet Access&lt;/h3&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ cd /var/cache/pacman/pkg $ sudo pacman -Udd base-3-3-any.pkg.tar.xz skalibs-2.11.2.0-1-x86_64.pkg.tar.xz execline-2.8.3.0-1-x86_64.pkg.tar.xz s6-2.11.1.0-1-x86_64.pkg.tar.xz s6-rc-0.5.3.1-1-x86_64.pkg.tar.xz s6-linux-utils-2.5.1.7-1-x86_64.pkg.tar.xz s6-portable-utils-2.2.4.0-1-x86_64.pkg.tar.xz s6-networking-2.5.1.0-1-x86_64.pkg.tar.xz oblibs-0.1.4.0-2-x86_64.pkg.tar.xz 66-0.6.2.0-2-x86_64.pkg.tar.xz 66-tools-0.0.8.0-2-x86_64.pkg.tar.xz obsysusers-0.1.2.0-2-x86_64.pkg.tar.xz oblog-0.1.1.0-2-x86_64.pkg.tar.xz consolekit2-1.2.6-2-x86_64.pkg.tar.xz boot@-66serv-2.4.1-2-x86_64.pkg.tar.xz boot-user@-66serv-0.4.3-1-x86_64.pkg.tar.xz scandir@-66serv-0.3.1-1-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ pacman -U wpa_supplicant-66serv-0.2.0-1-x86_64.pkg.tar.xz consolekit-66serv-0.2.0-1-x86_64.pkg.tar.xz dbus-66serv-0.2.1-1-x86_64.pkg.tar.xz openntpd-66serv-0.2.1-3-x86_64.pkg.tar.xz connmand-66serv-0.2.0-1-x86_64.pkg.tar.xz dhcpcd-66serv-0.2.0-1-x86_64.pkg.tar.xz &lt;/code&gt;&lt;/pre&gt; &lt;h3 id=&#34;with-internet-access&#34;&gt;With Internet Access&lt;/h3&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;Be sure to have deactivated &lt;strong&gt;Obarun testing&lt;/strong&gt; repositories in your &lt;em&gt;pacman&lt;/em&gt; configuration file.&lt;/p&gt; &lt;/div&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -Sydd base skalibs execline s6 s6-rc s6-portable-utils s6-linux-utils s6-networking oblibs 66 66-tools oblog consolekit obsysusers &lt;/code&gt;&lt;/pre&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo pacman -S boot@-66serv boot-user@-66serv scandir@-66serv wpa_supplicant-66serv dbus-66serv consolekit-66serv openntpd-66serv connmand-66serv dhcpcd-66serv &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Once you have reinstalled the necessary packages, you can reboot the system:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-shutdown -r now &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;using-your-own-service&#34;&gt;Using Your Own Service&lt;/h2&gt; &lt;p&gt;If you are using your own frontend service files, please be aware of the following points to ensure compatibility with the new version of &lt;em&gt;66&lt;/em&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Deprecation of &lt;code&gt;longrun&lt;/code&gt; Type: The &lt;code&gt;longrun&lt;/code&gt; type is deprecated and will be automatically converted to &lt;code&gt;classic&lt;/code&gt; type during the parse process. However, it&#39;s essential to note that &lt;em&gt;66&lt;/em&gt; does not modify the frontend file itself. To avoid issues with future updates of &lt;em&gt;66&lt;/em&gt;, it&#39;s recommended to change the &lt;code&gt;longrun&lt;/code&gt; type of your service to &lt;code&gt;classic&lt;/code&gt; type.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Deprecation of &lt;code&gt;@shebang&lt;/code&gt; Key: The &lt;code&gt;@shebang&lt;/code&gt; key is deprecated and will be removed in the next &lt;em&gt;66&lt;/em&gt; release. Ensure that the shebang of your custom service is defined at the beginning of the &lt;code&gt;@execute&lt;/code&gt; field. For detailed instructions, refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-frontend.html#a-word-about-the-execute-key&#34;&gt;A word about the @execute key&lt;/a&gt; section.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Changes to &lt;code&gt;module&lt;/code&gt; Type: The &lt;code&gt;module&lt;/code&gt; type has undergone significant changes in its inner structure. You will need to recreate it from scratch. Refer to the explanation of the module directory structure on &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-module-creation.html&#34;&gt;this page&lt;/a&gt; for detailed guidance.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;You can find comprehensive information about the complete changes to frontend files on the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-upgrade.html#frontend-files&#34;&gt;upgrade&lt;/a&gt; documentation page.&lt;/p&gt; &lt;p&gt;Additionally, for assistance in converting service frontend files from version 0.6.2.0 to version 0.7.0.0, refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html#converting-service-frontend-file-from-0.6.2.0-version-to-0.7.0.0&#34;&gt;converting service frontend file&lt;/a&gt; page.&lt;/p&gt; &lt;h2 id=&#34;common-command-and-command-comparison&#34;&gt;Common Command and Command Comparison&lt;/h2&gt; &lt;p&gt;This description below is not attempted to replace the &lt;a href=&#34;https://web.obarun.org/software/66/latest/index.html&#34;&gt;66 documentation&lt;/a&gt;. Consult it if you have any doubts and to find out about all the new features and behavioural changes.&lt;/p&gt; &lt;p&gt;You can find a complete explanation of comparison between old and new &lt;em&gt;66&lt;/em&gt; UI interface by reading the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-rosetta.html#converting-service-frontend-file-from-0.6.2.0-version-to-0.7.0.0&#34;&gt;Rosetta Stone&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;However, i&#39;ll provide translations between old and new &lt;em&gt;66&lt;/em&gt; UI interface for the most common commands.&lt;/p&gt; &lt;p&gt;First at all, you can find help of &lt;em&gt;66&lt;/em&gt; UI interfaces doing the following&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display the general help of 66. You can have the help of any command doing for example:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 start -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display the help of the start command. This behavior is true for every &lt;em&gt;66&lt;/em&gt; command or subcommand for example&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66 tree create -h &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will give you help of the &lt;code&gt;create&lt;/code&gt; subcommand from the &lt;code&gt;66 tree&lt;/code&gt; command.&lt;/p&gt; &lt;h3 id=&#34;service-manipulation&#34;&gt;Service manipulation&lt;/h3&gt; &lt;h4 id=&#34;start&#34;&gt;Start&lt;/h4&gt; &lt;p&gt;In previous versions, a service had to be &lt;em&gt;enabled&lt;/em&gt; before it could be started. However, in the current version, you can start a service &lt;strong&gt;without enabling it first&lt;/strong&gt;. This means that the service will not be brought up at the next reboot unless it has been explicitly enabled.&lt;/p&gt; &lt;p&gt;To start a service, simply execute the following command, replacing &lt;code&gt;dockerd&lt;/code&gt; with the name of your desired service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 start dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;By default the &lt;code&gt;dockerd&lt;/code&gt; service will be parsed (if not already the case) and started at tree &lt;code&gt;global&lt;/code&gt;. If the service was never parsed you can specify the tree to use with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual start dockerd &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;If the tree virtual doesn&#39;t exist yet, &lt;em&gt;66&lt;/em&gt; will create it automatically. You don&#39;t need to specifically create any tree before associating a service within it. The tree is create with default configuration. Refer to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#basic-creation-configuration&#34;&gt;basic creation configuration&lt;/a&gt; documentation page for more information.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;enable&#34;&gt;Enable&lt;/h4&gt; &lt;p&gt;If the service was already enabled, the above command will not switch the service dockerd to the tree &lt;code&gt;virtual&lt;/code&gt;. To do so, use:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual enable dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;It was accomplish with the old version by &lt;code&gt;66-enable -t virtual dockerd&lt;/code&gt; command.&lt;/p&gt; &lt;p&gt;Now, the dockerd service is a part of the virtual tree. You can also refers to the &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#associated-service-to-a-tree&#34;&gt;associated service to a tree&lt;/a&gt; documentation page.&lt;/p&gt; &lt;p&gt;You can also enable and start a service in one pass:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable -S dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The previous command to do the same was &lt;code&gt;66-enable -S dockerd&lt;/code&gt;.&lt;/p&gt; &lt;h4 id=&#34;convenient-command&#34;&gt;Convenient Command&lt;/h4&gt; &lt;p&gt;Some convenient command was introduce to reload, restart, and reconfigure a service.&lt;/p&gt; &lt;p&gt;To reload or restart a service, you previously used the command &lt;code&gt;66-start [-r|R] dockerd&lt;/code&gt;. With the new interface to reload a service, do&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reload dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;To restart it, do&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 restart dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Let&#39;s say you have modified something at the frontend file of the service and you want to apply the change, use:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will stop, parse again the service, and bring up it again. The previous command to accomplish the same was &lt;code&gt;66-enable -F dockerd&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;You may need to deal with configuration file of the service. The previous command used was &lt;code&gt;66-env -e nano dockerd&lt;/code&gt;, you can accomplish the same with&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -e nano dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Once you&#39;re done with your changes, apply it with the following command&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reload dockerd &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;In case of module type use &lt;code&gt;sudo 66 reconfigure &amp;lt;service&amp;gt;&lt;/code&gt;. The &lt;code&gt;reload&lt;/code&gt; command send a SIGHUP signal to the service which the traditionnal way on linux to make the daemon reloading it configuration file. In case of module the service need to be parsed again which what exactly do the &lt;code&gt;reconfigure&lt;/code&gt; command.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;remove-and-freed&#34;&gt;Remove and Freed&lt;/h4&gt; &lt;p&gt;You can remove a service like you did with &lt;code&gt;66-disable -R&lt;/code&gt; command. To do so with the new interface:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 remove dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You may want to free the ressources used by a service when you no longer need it running. Previously, you would use the command &lt;code&gt;66-stop -u dockerd&lt;/code&gt;. Now, you can achieve the same with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 free dockerd &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;get-information&#34;&gt;Get Information&lt;/h4&gt; &lt;p&gt;The command previously used to see service information was &lt;code&gt;66-inservice&lt;/code&gt;. This command is replaced by &lt;code&gt;66 status&lt;/code&gt;. So, to see a service status do:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 status dockerd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You can combine options used in the previous &lt;em&gt;66&lt;/em&gt; release with &lt;code&gt;66-inservice&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 status -go name,status,logfile dockerd &lt;/code&gt;&lt;/pre&gt; &lt;h3 id=&#34;tree-manipulation&#34;&gt;Tree Manipulation&lt;/h3&gt; &lt;p&gt;As we saw before, tree are created automatically if it doesn&#39;t exist yet with the invocation of the &lt;code&gt;-t&lt;/code&gt; option of the &lt;code&gt;66&lt;/code&gt; main command. But, you may want to configure it to suit your needs.&lt;/p&gt; &lt;p&gt;With the new version of &lt;em&gt;66&lt;/em&gt;, trees react similarly to services regarding interdependencies. A tree can depend on another tree. For example, if the &lt;code&gt;session&lt;/code&gt; tree declares &lt;code&gt;global&lt;/code&gt; as a dependency, the &lt;code&gt;global&lt;/code&gt; tree will be brought up before the &lt;code&gt;session&lt;/code&gt; tree. This means that all services associated &lt;strong&gt;AND&lt;/strong&gt; enabled to the &lt;code&gt;global&lt;/code&gt; tree will be started first before any services associated with the &lt;code&gt;session&lt;/code&gt; tree.&lt;/p&gt; &lt;p&gt;However, a service can depend on another service even if the services are not associated with the same tree. For instance, the &lt;code&gt;consolekit&lt;/code&gt; service is associated with the &lt;code&gt;global&lt;/code&gt; tree, and &lt;code&gt;dbus&lt;/code&gt; is associated with the &lt;code&gt;session&lt;/code&gt; tree. &lt;code&gt;consolekit&lt;/code&gt; depends on &lt;code&gt;dbus&lt;/code&gt;. Even though the &lt;code&gt;global&lt;/code&gt; tree will be started first when handling &lt;code&gt;consolekit&lt;/code&gt;, &lt;em&gt;66&lt;/em&gt; will attempt to start &lt;code&gt;dbus&lt;/code&gt; first because &lt;code&gt;consolekit&lt;/code&gt; depends on &lt;code&gt;dbus&lt;/code&gt;. Then, when it&#39;s the turn of the &lt;code&gt;session&lt;/code&gt; tree to start, &lt;em&gt;66&lt;/em&gt; found &lt;code&gt;dbus&lt;/code&gt; as already marked up, and continue to deal with the rest of the services associated to tree &lt;code&gt;session&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;In the new version of &lt;em&gt;66&lt;/em&gt;, a service can depend on any other service, regardless of the tree associated with the service. This marks a significant difference from the previous version of &lt;em&gt;66&lt;/em&gt; and this the reason of the drop of the &lt;code&gt;@extdepends&lt;/code&gt; field at frontend file. This flexibility also enables the ability to start a service without the need to enable it first. This feature is made possible by the removal of &lt;code&gt;s6-rc&lt;/code&gt;.&lt;/p&gt; &lt;h4 id=&#34;create-enable-remove-a-tree&#34;&gt;Create, Enable, Remove a Tree&lt;/h4&gt; &lt;p&gt;Previously, to create a tree you used &lt;code&gt;66-tree -n mytree&lt;/code&gt;. To do so with the new interface:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will create the tree named &lt;code&gt;mytree&lt;/code&gt; with basic configuration.&lt;/p&gt; &lt;p&gt;The previous command to enable a tree &lt;code&gt;66-tree -E mytree&lt;/code&gt; can now be accomplish with:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree enable mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;You may want to control it dependencies, do it using the tree subcommand &lt;code&gt;admin&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree admin -o depends=global session &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This tree subcommand replace the &lt;code&gt;66-tree -S&lt;/code&gt;. In this example the tree &lt;code&gt;session&lt;/code&gt; will depends on tree &lt;code&gt;global&lt;/code&gt;.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;You can create and manage the configuration of the tree in one pass with the &lt;code&gt;tree create&lt;/code&gt; subcommand. The following command create and handle dependencies of the tree&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ sudo 66 tree create -o depends=global session &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;You can remove a tree with the command &lt;code&gt;66 tree remove&lt;/code&gt; previously made by the command &lt;code&gt;66-tree -R&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree remove mytree &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Marking the tree as the current one is straightforward:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree current mytree &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;get-information_1&#34;&gt;Get Information&lt;/h4&gt; &lt;p&gt;The Command previously used was &lt;code&gt;66-intree&lt;/code&gt;. Use &lt;code&gt;66 tree status&lt;/code&gt; with the new &lt;em&gt;66&lt;/em&gt; version:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This will display information of all trees.&lt;/p&gt; &lt;p&gt;You can also use previous option like:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status -g &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Or to get information from a specific tree:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree status -g global &lt;/code&gt;&lt;/pre&gt; &lt;h2 id=&#34;red-line-or-keeping-the-old-to-the-new&#34;&gt;Red line or keeping the old to the new&lt;/h2&gt; &lt;p&gt;First of all, the inner directory structure of 66 underwent a revamp (thanks to the drop of s6-rc) and significant simplification. This inevitably breaks compatibility with previous versions.&lt;/p&gt; &lt;p&gt;To establish a solid foundation with the new version, it&#39;s advisable to take a somewhat drastic approach and clean all main 66 directories. Therefore, the &lt;a href=&#34;#create-backup&#34;&gt;backup&lt;/a&gt; to the &lt;a href=&#34;#update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/a&gt; procedure needs to be applied in any case.&lt;/p&gt; &lt;p&gt;Let&#39;s examine a complete example from an existing services system:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66-intree &amp;gt; intree_root.file $ cat intree_root.file Name : boot Initialized : yes Enabled : no Starts after : None Current : no Allowed : root Symlinks : svc-&amp;gt;backup db-&amp;gt;backup Contents : tty-earlier@tty12 mount-proc mount-sys system-hostname mount-run populate-run mount-tmp populate-tmp populate-sys mount-dev mount-pts mount-shm populate-dev mount-cgroups 00 all-Mount modules-kernel udevd-log udevd udevadm system-fontnkey system-fsck mount-fstab system-hwclock system-random modules-system system-sysctl all-System mount-rw mount-netfs local-loop local-sethostname local-time local-tmpfiles local-authfiles local-dmesg all-Local all-Runtime All tty-rc@tty1 tty-rc@tty2 boot@system Name : virtual Initialized : yes Enabled : no Starts after : None Current : no Allowed : root Symlinks : svc-&amp;gt;backup db-&amp;gt;backup Contents : dockerd-log dockerd virtlockd-socket virtlockd-log virtlockd virtlogd-log virtlogd libvirtd-log libvirtd Name : root Initialized : yes Enabled : yes Starts after : None Current : yes Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : openntpd-log openntpd wpa_supplicant-log wpa_supplicant dbus-log dbus connmand-log connmand consolekit-log consolekit Name : boot-user Initialized : yes Enabled : yes Starts after : root Current : no Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : setenv@oblive svscan@oblive-log svscan@oblive scandir@oblive mount-run@oblive boot-user@oblive Name : tty Initialized : yes Enabled : yes Starts after : root boot-user Current : no Allowed : root Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : tty@tty5-log tty@tty5 tty@tty6-log tty@tty6 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Similarly, for the user:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ 66-intree &amp;gt; intree_user.file $ cat intree_user.file Name : base Initialized : yes Enabled : yes Starts after : None Current : yes Allowed : oblive Symlinks : svc-&amp;gt;source db-&amp;gt;source Contents : dbus-session@oblive-log dbus-session@oblive xdg-user-dirs &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, let&#39;s review the configuration service files:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ su # for i in $(66-intree -no contents);do r=$(66-inservice -no envat $i); if [[ ${r} == &amp;quot;None&amp;quot; ]]; then continue ; fi ; v=${r##*/} ; echo &amp;quot;$i:$v&amp;quot; &amp;gt;&amp;gt; service_root.file ;done $ sort service_root.file | uniq -d all-Runtime:2.4.1 boot-user@oblive:0.4.3 boot@system:2.4.1 connmand:0.2.0 consolekit:0.2.0 dbus:0.2.1 dockerd:0.2.0 local-authfiles:2.4.1 local-dmesg:2.4.1 local-sethostname:2.4.1 local-time:2.4.1 local-tmpfiles:2.4.1 modules-system:2.4.1 mount-dev:2.4.1 mount-proc:2.4.1 mount-pts:2.4.1 mount-run:2.4.1 mount-rw:2.4.1 mount-shm:2.4.1 mount-sys:2.4.1 mount-tmp:2.4.1 openntpd:0.2.1 scandir@oblive:0.3.1 svscan@oblive:0.3.1 system-fontnkey:2.4.1 system-fsck:2.4.1 system-hostname:2.4.1 system-hwclock:2.4.1 tty-earlier@tty12:2.4.1 tty-rc@tty1:2.4.1 tty-rc@tty2:2.4.1 virtlockd-socket:0.2.0 wpa_supplicant:0.2.0 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;For the user:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ for i in $(66-intree -no contents);do r=$(66-inservice -no envat $i); if [[ ${r} == &amp;quot;None&amp;quot; ]]; then continue ; fi ; v=${r##*/} ; echo &amp;quot;$i:$v&amp;quot; &amp;gt;&amp;gt; service_user.file ;done $ cat service_user.file dbus-session@oblive:0.2.1 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;After completing the steps outlined in the &lt;a href=&#34;#create-backup&#34;&gt;backup&lt;/a&gt; procedure up to the &lt;a href=&#34;#update-the-66-ecosystem&#34;&gt;Update the 66 Ecosystem&lt;/a&gt; procedure, I can proceed by creating the necessary trees.&lt;/p&gt; &lt;h3 id=&#34;trees&#34;&gt;Trees&lt;/h3&gt; &lt;h4 id=&#34;boot-tree&#34;&gt;Boot Tree&lt;/h4&gt; &lt;p&gt;The boot tree will be automatically created when invoking the &lt;code&gt;66 enable boot@system&lt;/code&gt; command. However, for the sake of demonstration, I will create it from scratch.&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create -o groups=boot:allow=root boot &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I can configure the tree during creation using the &lt;code&gt;-o&lt;/code&gt; options:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;groups=boot&lt;/code&gt; indicates to 66 that the &lt;code&gt;boot&lt;/code&gt; tree belongs to the boot group. This is a fairly new &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#groups-behavior&#34;&gt;features&lt;/a&gt;. Associating the &lt;code&gt;boot&lt;/code&gt; tree with the &lt;code&gt;boot&lt;/code&gt; group prevents users from enabling the &lt;code&gt;boot&lt;/code&gt; tree.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;allow=root&lt;/code&gt; option behaves the same as in the previous version.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h4 id=&#34;root-tree&#34;&gt;Root Tree&lt;/h4&gt; &lt;p&gt;With the new version, a default tree called &lt;code&gt;global&lt;/code&gt; is provided and enabled by default. As for the &lt;code&gt;root&lt;/code&gt; tree, it should be populated with services mainly used by other services or essential services required at every boot, such as sysadmin administration. There&#39;s nothing to configure for this tree as &lt;em&gt;66&lt;/em&gt; handles it directly.&lt;/p&gt; &lt;h4 id=&#34;virtual-tree&#34;&gt;Virtual Tree&lt;/h4&gt; &lt;p&gt;This tree requires no particular configuration. It was not enabled and has no dependencies. A simple creation will suffice:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create virtual &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;tty-tree&#34;&gt;TTY Tree&lt;/h4&gt; &lt;p&gt;This tree needs to start after the &lt;code&gt;root&lt;/code&gt; and &lt;code&gt;boot-user&lt;/code&gt; trees. Therefore, for us, it depends on &lt;code&gt;global&lt;/code&gt; and &lt;code&gt;boot-user&lt;/code&gt;. Again, in one pass, I create and configure the tree. The following command is self-explanatory:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create -o depends=global,boot-user tty &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;If you really enjoy typing &lt;em&gt;66&lt;/em&gt; commands, you can split it into two steps, with the first being the creation and the second the administration of the tree:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree create tty $ sudo 66 tree admin -o depends=global,boot-user tty &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;It&#39;s also enabled straightforwardly:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree enable tty &lt;/code&gt;&lt;/pre&gt; &lt;h4 id=&#34;boot-user-tree&#34;&gt;Boot-User Tree&lt;/h4&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is already created by the &lt;code&gt;tty&lt;/code&gt; tree creation process. Since I invoked &lt;code&gt;depends=global,boot-user&lt;/code&gt; in the &lt;code&gt;create&lt;/code&gt; command and &lt;em&gt;66&lt;/em&gt; didn&#39;t find the &lt;code&gt;boot-user&lt;/code&gt; tree, it created it with a sensible default configuration. Any invocation of a non-existing tree by any related tree options with any 66 command will trigger its creation.&lt;/p&gt; &lt;p&gt;However, it needs to be configured slightly to depend on &lt;code&gt;global&lt;/code&gt; as it is dependent on &lt;code&gt;root&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree admin -o depends=global boot-user &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, I&#39;m done with the tree configurations.&lt;/p&gt; &lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt; &lt;h4 id=&#34;bootsystem&#34;&gt;Boot@system&lt;/h4&gt; &lt;p&gt;Starting with the boot service:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;A brief explanation of what happens behind this &lt;code&gt;66 enable&lt;/code&gt; command: I didn&#39;t specify the name of the tree, but &lt;em&gt;66&lt;/em&gt; associates the &lt;code&gt;boot@system&lt;/code&gt; service with the &lt;code&gt;boot@&lt;/code&gt; tree. This is because a &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#seed-files&#34;&gt;seed&lt;/a&gt; is provided with the &lt;code&gt;boot@&lt;/code&gt; service, and the service frontend file has the &lt;code&gt;@intree=boot&lt;/code&gt; field defined. So, &lt;em&gt;66&lt;/em&gt; knows where to enable the &lt;code&gt;boot@system&lt;/code&gt; service and how to create the necessary tree. Since the &lt;code&gt;boot&lt;/code&gt; tree was previously created, &lt;em&gt;66&lt;/em&gt; left it as is.&lt;/p&gt; &lt;p&gt;I import my previous configuration file to the new one by copying the old version (service_root.file) from the backup to the configuration directory. Then, I invoke the configure command to import the old version to the new one, and finally, I reconfigure the boot@system service to apply the changes:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66/conf/boot@system/2.4.1 /etc/66/conf/boot@system/2.4.1 $ sudo 66 configure -i 2.4.1,3.7.0 boot@system $ sudo 66 reconfigure boot@system &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt; &lt;p&gt;To know the current version of the service:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;$ sudo 66 configure -V boot@system &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;I may double-check to ensure everything is good:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 configure -L boot@system &lt;/code&gt;&lt;/pre&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt; &lt;p&gt;Name of variable at &lt;code&gt;[environment]&lt;/code&gt; section may have changed between versions. You should always check your configuration file manually with the &lt;code&gt;configure&lt;/code&gt; command above.&lt;/p&gt; &lt;/div&gt; &lt;h4 id=&#34;to-global&#34;&gt;To Global&lt;/h4&gt; &lt;p&gt;Transitioning from the previous &lt;code&gt;root&lt;/code&gt; tree (intree_root.file), I need to enable the following services:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Again, I don&#39;t need to specify the name of the tree. As &lt;code&gt;@intree&lt;/code&gt; is not defined on these services and no trees are marked as the current one, &lt;em&gt;66&lt;/em&gt; will use the &lt;code&gt;global&lt;/code&gt; default tree. You can obviously force it if you really want with the &lt;code&gt;-t&lt;/code&gt; option:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t global enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Or I can mark the tree as the current one:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 tree current global $ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;All these commands yield the same result, with my services associated with the &lt;code&gt;global&lt;/code&gt; tree.&lt;/p&gt; &lt;p&gt;I can apply the same method i used before for importing the old configuration to the new one:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo -E cp -r ${HOME}/migration-backup/etc/66/conf/openntpd/0.2.1 /etc/66/conf/openntpd/0.2.1 $ sudo 66 configure -i 0.2.1,0.7.0 openntpd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I don&#39;t need to use the &lt;code&gt;66 reconfigure&lt;/code&gt; command as the frontend itself was not modified, and it&#39;s not a &lt;code&gt;module&lt;/code&gt; service type.&lt;/p&gt; &lt;p&gt;To summarize, I&#39;ve applied the same process for all my &lt;code&gt;global&lt;/code&gt; services.&lt;/p&gt; &lt;h4 id=&#34;to-virtual&#34;&gt;To Virtual&lt;/h4&gt; &lt;p&gt;Let&#39;s proceed quickly:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t virtual enable dockerd libvirtd &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The services are now associated with the virtual tree. I&#39;ve applied my configuration importation process, and I&#39;m done with these services.&lt;/p&gt; &lt;h4 id=&#34;to-tty&#34;&gt;To TTY&lt;/h4&gt; &lt;p&gt;I think you understand the point by now:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t tty enable tty@tty5 tty@tty6 &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;I have no configuration files to import for these ones.&lt;/p&gt; &lt;h4 id=&#34;to-boot-user&#34;&gt;To Boot-User&lt;/h4&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is by default associated with a tree named &lt;code&gt;session&lt;/code&gt; and provides the necessary &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#seed-files&#34;&gt;seed&lt;/a&gt; file to configure that tree. It might be beneficial to switch to this new configuration, but the decision is yours. So, I force the use of the specified tree with the &lt;code&gt;-t&lt;/code&gt; option:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 -t boot-user enable boot-user@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Applying the same configuration file importation process should now be straightforward for you. Additionally, I execute:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 reconfigure boot-user@oblive &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Since it&#39;s a module type, it needs to be reconfigured from scratch to apply the changes from my imported configuration files. As you may have noticed, there&#39;s no need to specify the tree here; &lt;em&gt;66&lt;/em&gt; is smart enough to do what it needs to do.&lt;/p&gt; &lt;p&gt;And with that, I&#39;m done :).&lt;/p&gt; &lt;h3 id=&#34;some-observations&#34;&gt;Some Observations&lt;/h3&gt; &lt;p&gt;To maintain compatibility with previous practices of managing trees and services, I began by creating the trees. However, with the new version, you can take a shorter route, as &lt;em&gt;66&lt;/em&gt; automatically creates trees when they don&#39;t exist on the system simply by enabling services and then administering the tree afterward:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable boot@system # This creates the boot tree and also administers it through the seed configuration file $ sudo 66 enable openntpd wpa_supplicant dbus connmand consolekit # Default to the global tree $ sudo 66 -t virtual enable libvirtd dockerd # The tree doesn&#39;t exist yet, but 66 will create it $ sudo 66 -t boot-user enable boot-user@oblive # Same here regarding the tree $ sudo 66 -t tty enable tty@tty5 tty@tty6 # Another one $ sudo 66 tree admin -o depends=global,boot-user tty # I administer the tty tree to make it depend on global and boot-user $ sudo 66 tree enable tty # Self-explanatory $ sudo 66 tree admin -o depends=global boot-user # Set global as a dependency for boot-user &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Now, I can proceed with my configuration file importation process and finally reconfigure the &lt;code&gt;boot@system&lt;/code&gt; and &lt;code&gt;boot-user@oblive&lt;/code&gt; services.&lt;/p&gt; &lt;h3 id=&#34;user-services&#34;&gt;User Services&lt;/h3&gt; &lt;p&gt;The exact same process can be applied to user services. Since a &lt;code&gt;global&lt;/code&gt; tree exists for the root user, a &lt;code&gt;global&lt;/code&gt; tree for users also exists and behaves in the same manner. Therefore:&lt;/p&gt; &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo 66 enable dbus@oblive xdg-user-dirs &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Again, I can now import my configuration files if desired. As you may have noticed, the &lt;code&gt;dbus-session@&lt;/code&gt; service was renamed to &lt;code&gt;dbus@&lt;/code&gt;. However, this is the exact same service and performs the same functions as before.&lt;/p&gt; &lt;h2 id=&#34;obarun-notable-changes&#34;&gt;Obarun Notable Changes&lt;/h2&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;The new &lt;em&gt;66&lt;/em&gt; version provide a default tree called &lt;em&gt;global&lt;/em&gt;. This tree is always present on your system. If you remove it, this tree will be automatically recreated at any &lt;em&gt;66&lt;/em&gt; command invocation. By default, any service started/enabled will be associated to that tree. This tree is also enabled by default, that mean that &lt;em&gt;66&lt;/em&gt; will try to start any enabled service on it right after the finish of the boot tree. So, in fact it react as same as the previously tree called &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The directory &lt;code&gt;/usr/lib/66&lt;/code&gt; is only used to store library of &lt;em&gt;66&lt;/em&gt;. All others compoments find on that directory can be find now at &lt;code&gt;/usr/share/66&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;User services &lt;em&gt;must be&lt;/em&gt; installed at &lt;code&gt;${HOME}/.66/service&lt;/code&gt;, &lt;code&gt;/etc/66/service/user&lt;/code&gt; or &lt;code&gt;/usr/share/66/service/user&lt;/code&gt; in that order of precedence. This allows us to make a quick visual distinction between &lt;em&gt;system&lt;/em&gt; and &lt;em&gt;user&lt;/em&gt; services. It also enables us to have the exact same name for a service that can be used by both &lt;em&gt;root&lt;/em&gt; and &lt;em&gt;regular users&lt;/em&gt;. A perfect example is &lt;code&gt;dbus-66serv&lt;/code&gt;. In the previous version, this package installed the &lt;code&gt;dbus&lt;/code&gt; and &lt;code&gt;dbus-session@&lt;/code&gt; frontend files. With the new version, the &lt;code&gt;dbus-session@&lt;/code&gt; frontend file was replaced by &lt;code&gt;dbus@&lt;/code&gt; and installed at &lt;code&gt;/usr/share/66/service/user/dbus&lt;/code&gt;. Therefore, you can start the service using a &lt;em&gt;regular account&lt;/em&gt; with the &lt;code&gt;66 start dbus@oblive&lt;/code&gt; command.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;The &lt;code&gt;boot-user@&lt;/code&gt; service is now installed by default at tree named &lt;code&gt;session&lt;/code&gt;. This tree is automatically created by &lt;em&gt;66&lt;/em&gt; with sane default configuration at &lt;code&gt;boot-user@&lt;/code&gt; configuration.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;some-reasons&#34;&gt;Some Reasons&lt;/h2&gt; &lt;p&gt;I am aware that the new version requires many changes and adaptations for the use of the new interfaces. I had two choices: either I continued and dragged old issues in the code with s6-rc, or I completely rethought &lt;em&gt;66&lt;/em&gt; as an independent service manager by abandoning s6-rc.&lt;/p&gt; &lt;p&gt;Don&#39;t get me wrong, s6-rc is very good software but too static for the use and needs of machine infrastructures mostly for desktop use. S6-rc guarantees service startup sequences as immutable, which is great but complicates the use and configuration of the services ecosystem.&lt;/p&gt; &lt;p&gt;The new version of &lt;em&gt;66&lt;/em&gt; also guarantees service startup sequences but does so in a much more flexible way, allowing the end user to build complex service structures without needing to have an overview of the entire system&#39;s services.&lt;/p&gt; &lt;p&gt;Using trees in the previous version of &lt;em&gt;66&lt;/em&gt; was difficult to manage because a service could not depend on another if it was not in the same tree. The new version of &lt;em&gt;66&lt;/em&gt; solves this problem. In fact, the user should not even have to deal with manipulating trees anymore, as &lt;em&gt;66&lt;/em&gt; is intelligent enough to build and manage the service dependency graph for the entire system.&lt;/p&gt; &lt;p&gt;Additionally, the introduction of &lt;a href=&#34;https://web.obarun.org/software/66/latest/66-tree.html#seed-files&#34;&gt;seed&lt;/a&gt; files and the &lt;code&gt;@intree&lt;/code&gt; field allows distributors to configure the &lt;em&gt;66&lt;/em&gt; ecosystem from the start without any intervention required from the user.&lt;/p&gt; &lt;p&gt;I am also aware that the skalibs packages have been stuck at a specific version for a long time. To be honest, I tried to optimize the little time I had to dedicate to the different components of Obarun. &lt;em&gt;66&lt;/em&gt; was my priority but I didn&#39;t see the point of wasting time adapting &lt;em&gt;66&lt;/em&gt; which was going to be obsolete anyway. After all, if &lt;em&gt;66&lt;/em&gt; is built with static libraries, skalibs components can be updated on the system and do not prevent the use of the latest skalibs tools.&lt;/p&gt; &lt;p&gt;The interface of the tools also needed changes. The proliferation of tool names such as &lt;code&gt;66-start&lt;/code&gt;, &lt;code&gt;66-enable&lt;/code&gt;, made usage as difficult for users as it was for scripting. We now have a single interface &lt;code&gt;66&lt;/code&gt; followed by specific commands. This design is much closer to interfaces used by tools such as &lt;em&gt;Git&lt;/em&gt;, for example, and is more intuitive to use.&lt;/p&gt; &lt;p&gt;This should also allow for easier integration of &lt;em&gt;66&lt;/em&gt; into tools that manipulate services. Many web-based tools are being developed today, especially to meet the needs in the &lt;em&gt;cloud&lt;/em&gt; domain. Most of these tools use commands such as &lt;code&gt;systemctl start/reload/restart &amp;lt;service&amp;gt;&lt;/code&gt; to manage the services they need. The new version of &lt;em&gt;66&lt;/em&gt; allows, for example:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;# ln -sf /usr/bin/66 /usr/bin/systemctl &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This obviously greatly simplifies the integration of &lt;em&gt;66&lt;/em&gt; for cloud tools, without the need for explicit code modification for service management. However, &lt;em&gt;66&lt;/em&gt; does not cover all systemctl commands and I must be clear here: &lt;strong&gt;66 was not, is not, and will not be a little chick following its mother&lt;/strong&gt;. Providing compatibilities when possible is a good thing and avoids being &lt;a href=&#34;https://xkcd.com/927/&#34;&gt;part of the problem&lt;/a&gt;. All software development should be done with awareness and consideration of the professional or personal production environment around us whether we like it or not. But that&#39;s where it stops. &lt;em&gt;66&lt;/em&gt; does not have the same objective as systemd; &lt;em&gt;66&lt;/em&gt; works on mechanisms, not on policies. &lt;em&gt;66&lt;/em&gt; deals with service management, nothing more, nothing less.&lt;/p&gt; &lt;p&gt;Increasing the flexibility of relationships between services was also necessary. This change will allow for easier development of event-reactive service integrations as well as easier integration of &lt;em&gt;66&lt;/em&gt; into tools such as &lt;code&gt;dbus-broker&lt;/code&gt;. This is brought about by the ability to start a service without the need for it to be &#34;enabled&#34;. We are talking here about external tools. &lt;em&gt;66&lt;/em&gt; has nothing to do with &lt;code&gt;dbus&lt;/code&gt; or &lt;code&gt;seatd&lt;/code&gt;. Here again, market reality forces us to use tools for which we currently have no real alternative (I am thinking in particular of &lt;code&gt;eudev&lt;/code&gt;).&lt;/p&gt; &lt;p&gt;The abandonment of &lt;code&gt;s6-rc&lt;/code&gt; inevitably leads to deep changes in the &lt;em&gt;66&lt;/em&gt; infrastructure code, which is either a very good thing. The number of lines of code remains around 30 thousand lines with increased flexibility, more features, better program execution quality, and increased optimization of certain algorithms, for example, the parser takes three times shorter to accomplish the same task as with the previous version.&lt;/p&gt; &lt;p&gt;The work is certainly not finished and a small &lt;a href=&#34;https://git.obarun.org/Obarun/66#roadmap&#34;&gt;roadmap&lt;/a&gt; has started to be published and which will, I hope, allow you to have a clearer vision of the future developments of &lt;em&gt;66&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;I hope this new version will satisfy you and that you will appreciate the changes made.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2024/03/25/66-migration-instructions.html</link> <pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/03/25/66-migration-instructions.html</guid> </item> <item> <title>Changes to Obarun XMPP Chat Client</title> <author>Eric Vidal</author> <category>General</category> <category>General</category> <description>&lt;h1 id=&#34;changes-to-obarun-xmpp-chat-client&#34;&gt;Changes to Obarun XMPP Chat Client&lt;/h1&gt; &lt;p&gt;We regret to inform our users that &lt;em&gt;Movim&lt;/em&gt; will no longer be supported as a client for the &lt;em&gt;Obarun XMPP chat server&lt;/em&gt;. Despite our efforts, we have encountered persistent issues with &lt;em&gt;Movim&lt;/em&gt;, including instability, broken updates, and discrepancies between Docker images and development tags.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;As a result, the &lt;code&gt;chat.obarun.org&lt;/code&gt; address is no longer valid.&lt;/p&gt; &lt;p&gt;We are pleased to introduce a new chat client as a replacement: &lt;em&gt;Converse.js&lt;/em&gt;. This online hosting solution for &lt;em&gt;Converse.js&lt;/em&gt; will ultimately become the official chat client for &lt;em&gt;Obarun&lt;/em&gt;, integrated into our new website. Please note that while the solution is currently maintained by a third party, the &lt;em&gt;XMPP&lt;/em&gt; server itself is still hosted on the &lt;em&gt;Obarun&lt;/em&gt; server.&lt;/p&gt; &lt;h1 id=&#34;instructions-for-connecting-to-the-obarun-xmpp-chat-using-conversejs&#34;&gt;Instructions for connecting to the Obarun XMPP chat using Converse.js:&lt;/h1&gt; &lt;p&gt;Visit the address &lt;a href=&#34;https://conversejs.org/fullscreen.html#&#34;&gt;Converse.js&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;if-you-already-have-an-account&#34;&gt;If you already have an account:&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Enter your full username. For instance, if your username is &lt;code&gt;eric&lt;/code&gt;, enter &lt;code&gt;eric@xmpp.obarun.org&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;Enter your password. &lt;img alt=&#34;connection&#34; src=&#34;../../../assets/img/news/chat/connection.png&#34; /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;if-you-dont-have-an-account&#34;&gt;If you don&#39;t have an account:&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Click on &lt;code&gt;create an account&lt;/code&gt; at the bottom of the page.&lt;/li&gt; &lt;li&gt;Enter &lt;code&gt;xmpp.obarun.org&lt;/code&gt; as the provider address.&lt;/li&gt; &lt;li&gt;Click &lt;code&gt;fetch registration form&lt;/code&gt;. &lt;img alt=&#34;provider&#34; src=&#34;../../../assets/img/news/chat/provider.png&#34; /&gt;&lt;/li&gt; &lt;li&gt;Fill out the form and complete the captcha. If you encounter an error message during registration such as &lt;code&gt;Malformed username&lt;/code&gt; or any others errors, &lt;strong&gt;&lt;em&gt;refresh your page&lt;/em&gt;&lt;/strong&gt; before trying again. &lt;img alt=&#34;register&#34; src=&#34;../../../assets/img/news/chat/register.png&#34; /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;for-new-users-once-logged-in&#34;&gt;For new users, once logged in:&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Click on the &lt;code&gt;groupchats&lt;/code&gt; menu on the left and click the &lt;code&gt;+&lt;/code&gt; icon.&lt;/li&gt; &lt;li&gt;Enter &#34;obarun&#34; as the &lt;code&gt;groupchat name&lt;/code&gt;, choose your desired nickname, and click &lt;code&gt;join&lt;/code&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Congratulations! You are now connected to the official &lt;em&gt;Obarun&lt;/em&gt; chat.&lt;/p&gt; &lt;p&gt;Thank you for being part of the &lt;em&gt;Obarun&lt;/em&gt; journey!&lt;/p&gt; &lt;p&gt;Best regards,&lt;/p&gt; &lt;p&gt;Eric Vidal &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&#34;&gt;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;</description> <link>https://news.obarun.org/2024/03/11/changes-to-obarun-xmpp-chat-client.html</link> <pubDate>Mon, 11 Mar 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/03/11/changes-to-obarun-xmpp-chat-client.html</guid> </item> <item> <title>Testing repositories update</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <description>&lt;h1 id=&#34;testing-repositories-update&#34;&gt;Testing Repositories update&lt;/h1&gt; &lt;p&gt;We are currently in the process of updating packages in the &lt;code&gt;[obcore-testing]&lt;/code&gt;, &lt;code&gt;[obextra-testing]&lt;/code&gt; and &lt;code&gt;[observice-testing]&lt;/code&gt; repositories to provide the necessaries for the migration to the new release of &lt;code&gt;66&lt;/code&gt;.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;During this transitional phase, we advise users against utilizing packages from these repositories. We will soon release a detailed news update outlining the migration procedure.&lt;/p&gt; &lt;p&gt;As we cannot provide all the necessary packages in one row, &lt;strong&gt;do not use&lt;/strong&gt; the testing repositories until you see a news page with the complete procedure for the migration.&lt;/p&gt; &lt;p&gt;This will take a little time to accomplish, your patience and cooperation are appreciated.&lt;/p&gt; &lt;p&gt;Stay tuned for further updates.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2024/03/03/testing-repositories-update.html</link> <pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/03/03/testing-repositories-update.html</guid> </item> <item> <title>Bugs reporting update</title> <author>Eric Vidal</author> <category>General</category> <category>General</category> <description>&lt;h1 id=&#34;bug-reporting-update-shifting-to-gitlab&#34;&gt;Bug Reporting Update: Shifting to Gitlab&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;We&#39;re rolling out an important update regarding bug reporting for package-related issues.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;Going forward, we kindly ask our users to submit bug reports directly on our Gitlab instance, under the corresponding project for the package in question.&lt;/p&gt; &lt;h1 id=&#34;why-the-change&#34;&gt;Why the Change?&lt;/h1&gt; &lt;p&gt;In our ongoing efforts to streamline and centralize our bug tracking process, we&#39;ve decided to consolidate all bug reports onto our Gitlab platform. This change allows for better organization, efficient tracking, and faster resolution of reported issues.&lt;/p&gt; &lt;h1 id=&#34;how-to-report-bugs&#34;&gt;How to Report Bugs?&lt;/h1&gt; &lt;p&gt;To report a bug related to a specific package, please follow these steps:&lt;/p&gt; &lt;p&gt;Visit our Gitlab Instance: Navigate to our &lt;a href=&#34;https://git.obarun.org&#34;&gt;Gitlab&lt;/a&gt; instance.&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Search for the Package: Use the search bar to find the project corresponding to the package you&#39;re encountering issues with. For example, if you&#39;re experiencing problems with the cronie package, locate the cronie project.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Open an Issue: Once you&#39;ve found the project, open a new issue detailing the bug you&#39;ve encountered. Be sure to provide as much relevant information as possible, including steps to reproduce the issue, system details, and any error messages.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h1 id=&#34;benefits-of-using-gitlab-for-bug-reporting&#34;&gt;Benefits of Using Gitlab for Bug Reporting:&lt;/h1&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Centralized Platform: All bug reports are now centralized on our Gitlab instance, making it easier for our developers to track and manage issues.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Improved Collaboration: Gitlab&#39;s collaborative features allow for better communication and collaboration between users and developers, leading to quicker bug resolutions.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Transparent Process: By reporting bugs on Gitlab, users can track the progress of their reported issues and stay informed about any updates or resolutions.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;We believe this transition will enhance the bug reporting experience for our community and enable us to provide more efficient support.&lt;/p&gt; &lt;p&gt;Thank you for your cooperation and continued support as we strive to improve the Obarun experience together.&lt;/p&gt; &lt;p&gt;Best regards,&lt;/p&gt; &lt;p&gt;Eric Vidal &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&#34;&gt;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;</description> <link>https://news.obarun.org/2024/01/16/bugs-reporting-update.html</link> <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/01/16/bugs-reporting-update.html</guid> </item> <item> <title>Upgrading Obarun News</title> <author>Eric Vidal</author> <category>General</category> <category>General</category> <description>&lt;h1 id=&#34;upgrading-obarun-news-because-we-deserve-better&#34;&gt;Upgrading Obarun News - Because We Deserve Better&lt;/h1&gt; &lt;p&gt;Dear Obarun Community,&lt;/p&gt; &lt;p&gt;We&#39;re excited to announce a significant upgrade to our news delivery system, and we want to share the reasons behind this change.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;Why the Change?&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Tedious Formatting&lt;/strong&gt;: Writing news on the old platform was like navigating a maze of HTML tags, making the process long and cumbersome.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Internal Chaos&lt;/strong&gt;: The organization of news internally resembled a digital battleground, making it challenging to maintain order.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Failed Archiving&lt;/strong&gt;: Our attempts at archiving were, unfortunately, less successful than a cat trying to catch its tail.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Eye-Piercing Formatting&lt;/strong&gt;: The text formatting was, to be blunt, visually offensive and a hazard to your ocular health.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h1 id=&#34;the-turning-point-release-of-66&#34;&gt;The Turning Point: Release of 66&lt;/h1&gt; &lt;p&gt;With the imminent release of 66 (after three years of hard work), we seized the opportunity to revamp not only our news delivery but also the overall face of Obarun.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The Game Plan:&lt;/strong&gt; &lt;code&gt;rm -rf site/&lt;/code&gt;&lt;/p&gt; &lt;p&gt;This year is earmarked for a complete overhaul of the Obarun website. If you&#39;ve noticed the recent transformation of &lt;a href=&#34;https://forum.obarun.org&#34;&gt;forum&lt;/a&gt;, you&#39;ll understand our commitment to improvement.&lt;/p&gt; &lt;p&gt;What to Expect?&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Incremental Transformation&lt;/strong&gt;: Over the coming months, you&#39;ll witness a gradual transformation of the Obarun website, brick by brick.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Next on the List&lt;/strong&gt;: The documentation pages and package-related sections are on our radar for a makeover. Yes, we acknowledge the eyesore that is the current package table, and let&#39;s not even mention the perplexing DNS structure at &lt;a href=&#34;https://cloud.server.obarun.org/browse&#34;&gt;cloud.server.obarun.org/browse&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;We believe Obarun deserves a sleek, user-friendly, and efficient online presence, and we&#39;re committed to making it happen.&lt;/p&gt; &lt;p&gt;Thank you for being part of the Obarun journey!&lt;/p&gt; &lt;p&gt;Best regards,&lt;/p&gt; &lt;p&gt;Eric Vidal &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&#34;&gt;&amp;#101;&amp;#114;&amp;#105;&amp;#99;&amp;#64;&amp;#111;&amp;#98;&amp;#97;&amp;#114;&amp;#117;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;</description> <link>https://news.obarun.org/2024/01/16/upgrading-obarun-news.html</link> <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/01/16/upgrading-obarun-news.html</guid> </item> <item> <title>66 preprod tag</title> <author>Eric Vidal</author> <category>Software</category> <category>Software</category> <description>&lt;h1 id=&#34;66-preprod-tag-is-out&#34;&gt;66 preprod tag is out&lt;/h1&gt; &lt;p&gt;We would like to inform you about the &lt;strong&gt;&lt;em&gt;preprod&lt;/em&gt;&lt;/strong&gt; release of 66. This release marks the completion of code development for the upcoming production release, with the focus shifting primarily to bug fixes from this point onward.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;The &lt;code&gt;dev&lt;/code&gt; branch was also merged to the &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt; &lt;p&gt;You can find the release note &lt;a href=&#34;https://git.obarun.org/Obarun/66/-/releases&#34;&gt;here&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A &lt;a href=&#34;https://git.obarun.org/Obarun/66/-/milestones/1#tab-issues&#34;&gt;milestone&lt;/a&gt; centralizes issues.&lt;/p&gt; &lt;p&gt;Thank you for your continued support of Obarun.&lt;/p&gt; &lt;p&gt;Thanks for your attention&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org ...&lt;/p&gt;</description> <link>https://news.obarun.org/2024/01/01/66-preprod-tag.html</link> <pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2024/01/01/66-preprod-tag.html</guid> </item> <item> <title>Activating obcommunity repository</title> <author>Eric Vidal</author> <category>Package</category> <category>System</category> <description>&lt;h1 id=&#34;activating-obcommunity-repository&#34;&gt;Activating obcommunity repository&lt;/h1&gt; &lt;p&gt;To enable the &lt;code&gt;[obcommunity]&lt;/code&gt; repository and start benefiting from packages signed by obcommunity, follow these steps:&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;Look for the new package &lt;code&gt;obcommunity-keyring&lt;/code&gt; in the&lt;code&gt;[obcommunity]&lt;/code&gt; repository. You must install this package to take advantage of the signatures on packages from this repository.&lt;/p&gt; &lt;p&gt;Edit the &lt;code&gt;/etc/pacman.conf&lt;/code&gt; file, uncomment the lines related to the &lt;code&gt;[obcommunity]&lt;/code&gt; repository and modify the &lt;code&gt;SigLevel&lt;/code&gt; field as below.&lt;/p&gt; &lt;pre&gt;&lt;code&gt;[obcommunity] SigLevel = Never Server = https://cloud.server.obarun.org/$repo/os/$arch/ &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Install the &lt;code&gt;obcommunity-keyring&lt;/code&gt; package:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;pacman -Sy obcommunity-keyring. &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Edit the &lt;code&gt;/etc/pacman.conf&lt;/code&gt; file again and change again the &lt;code&gt;SigLevel&lt;/code&gt; field.&lt;/p&gt; &lt;pre&gt;&lt;code&gt;[obcommunity] SigLevel = DatabaseOptional Server = https://cloud.server.obarun.org/$repo/os/$arch/ &lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Following these steps should allow you to install packages from the &lt;code&gt;[obcommunity]&lt;/code&gt; repository and utilize their package signatures.&lt;/p&gt; &lt;p&gt;Thanks for your attention&lt;/p&gt; &lt;p&gt;Eric Vidal: eric@obarun.org&lt;/p&gt;</description> <link>https://news.obarun.org/2023/12/25/activating-obcommunity-repository.html</link> <pubDate>Mon, 25 Dec 2023 00:00:00 +0000</pubDate> <source url="https://news.obarun.org/feed_rss_created.xml">Obarun news</source><guid isPermaLink="true">https://news.obarun.org/2023/12/25/activating-obcommunity-repository.html</guid> </item> </channel> </rss>