Home

Collections

Recent Posts

Installing Gentoo via Asahi Linux on an Apple Silicon-based Mac

20 minutes to read

When Apple launched Macs with Apple silicon, people speculated that a revolution in desktop computing had started. I saw on Reddit a GNU/Linux user claimed that GNU/Linux distributions should start to worry about the potential transition from x86-64 to ARM64 and do something about it to survive. What they might have not realized was that common software packages that constitute GNU/Linux had been long prepared for ARM64 thanks to portability of high-level programming languages. …

Using New Feature While Maintaining Backward Compatibility in Hugo Templates

Updated: 8 minutes to read

In the recent v0.109.0 release of Hugo, a new .Ancestors page variable was added to make it easier to implement a breadcrumb navigation template. The new variable’s usefulness is clearly shown by how the example breadcrumb template in Hugo documentation has been simplified and become easier to understand, as presented below (code modified for readability). It is no longer necessary to create a helper inline partial (i.e. breadcrumbnav in the following example) and call it recursively. …

Run Windows 98 in Vanilla DOSBox

14 minutes to read

As a DOS emulator, DOSBox is theoretically capable of running DOS-based versions of Windows, like Windows 3.1, 95, and 98. Certainly, the compatibility list on DOSBox official website classifies Windows 3.1 and 95 as supported; but for Windows 98, it is just rated runnable – even lower than the intermediate playable tier. Perhaps for this reason, most people would just resort to other DOSBox forks that offer better support for Windows 98, like DOSBox-X, when they want to run this version of Windows. …

Gentoo Configuration Guide: Full Disk LUKS2 with GRUB and systemd

This collection is a tutorial which provides instructions to set up LUKS2-based full disk encryption on a Gentoo system using GRUB as the bootloader and systemd as the init system. In particular, setting up LUKS2 for use with GRUB is especially tricky, and this tutorial addresses any intricacies there. This tutorial aims to support both new Gentoo installations and existing ones, so it can be used to encrypt an unencrypted system too. …

Use Git to Manage Kernel Sources on Gentoo

12 minutes to read

Gentoo offers its users a wide array of Linux kernel packages in the sys-kernel/* category, each of which may install the kernel in a different way. In particular, the sys-kernel/*-sources packages (such as sys-kernel/gentoo-sources, sys-kernel/vanilla-sources) install only the kernel’s source code and do nothing else. This is suitable for users who prefer to compile and install the kernel on their own but still would like to let the system package manager update the kernel sources automatically. …

Refine Gentoo on Windows Subsystem for Linux

8 minutes to read

This article covers some information that can help perfect a Gentoo installation on Windows Subsystem for Linux (WSL) to maximize its performance, improve its interoperability with Windows, and even unlock new system capabilities. Originally, I had been planning to write a full Gentoo on WSL installation tutorial during September of the last year, but that tutorial was only halfway done before I had to move on for something more important in my real life, which is why I have disappeared from my personal site for almost another half of year (though you could find my development activities on GitHub if you looked at my profile). …

GSoC 2021 Final Work Products

10 minutes to read

As this year’s GSoC has come and gone, it is time to compile a retrospective of all the work I have done for my GSoC project. In a nutshell, the bulk of my project was executed as I had planned in my original project proposal; some additional deliverables and enhancements not outlined in the original plan were made, while a few planned and relatively trivial deliverables were cut due to time constraints. …

An ebuild Testing Solution for ebuild Repositories

19 minutes to read

Common package managers implement the concept of software repositories to allow the set of packages installable from the package manager to be expanded. On Fedora, there is RPM Fusion and Copr repositories created and maintained by users. Arch Linux users are fond of the AUR, the canonical repository for user-submitted packages. On Gentoo, there is GURU, which is kind of like Gentoo’s equivalent of AUR, but it is just the tip of the iceberg of packages that are not in the official Gentoo ebuild repository (::gentoo). …

Finding Leaf Packages Faster: Optimization for In-degree Computation in Dependency Graph

15 minutes to read

Dependency is a concept that appears often in software engineering. In the previous article for my GSoC project, I discussed build systems and package managers, both of which apply the concept of dependencies. A build system usually allows programmers to define different tasks in building a project and let each of them depend on other tasks, hence dependency relationships are established. A package manager supports declaration of package dependency relationships, or else it is not a good package manager. …

Introducing ebuilds That Build Kotlin Core Libraries from Source

Updated: 16 minutes to read

An initial and successful attempt to create source-based Kotlin packages on Gentoo

Since the last blog post regarding my GSoC project was posted, I moved on to the next part of the project: improvements on the Kotlin ebuilds in the Spark overlay created during last year’s GSoC, namely dev-java/kotlin-common-bin and dev-lang/kotlin-bin. As shown by the -bin suffix in the packages’ names, these are packages that simply install the Kotlin library and compiler binary JARs pre-built by the upstream instead of build those artifacts from source like how the vast majority of Gentoo packages do and how Gentoo’s guidelines propose. …