💾 Archived View for tilde.team › ~kiedtl › k1ss › blog › 20200303a.gmi captured on 2022-04-29 at 11:52:50. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2020-11-07)
-=-=-=-=-=-=-
Subject This week in KISS (#13)
From Dylan Araps <dylan@k1ss.org>
Date Tue, 3 Mar 2020 12:07:09 +0100
Hello all.
This week I worked on slimming down the official repositories. The official repositories no longer require, libnl, automake, autoconf, libtool, python-mako and others.
https://user-images.githubusercontent.com/6799467/81232111-f39e7480-8ffc-11ea-86ed-9332272e91ac.jpg
Perl is now an optional dependency and is only required when building Firefox or libvpx. The kernel also requires perl though there are patches available for removing this requirement.
YASM is now also an optional dependency and NASM is used everywhere. The only package which requires YASM during builds is Firefox which is optionally also available as a binary through firefox-bin.
The installation guide will be updated once GCC 10 is released to include the kernel changes above and how to avoid perl.
I also worked on removing libxdg-basedir from picom and my patch was accepted and merged upstream [1]. This library is tiny, unmaintained and doesn't see much use anymore.
[1] https://github.com/yshui/picom/pull/322
Wyverkiss is an alternative root-fs tarball created by Konimex which uses LLVM/clang as the default compiler. This extends to removing as much GNU as possible.
This isn't an officially supported project so any bugs should be reported to the wyverkiss repository. I thought I'd post about it regardless as it is KISS related and may be of some interest to you.
To quote the README:
Wyverkiss is an alternative rootfs for KISS Linux. If KISS goes GNU, we go the opposite.
Source:
https://github.com/wyvertux/wyverkiss/releases/tag/0.0.2
Every KISS install now optionally includes the distribution's documentation (in /usr/share/doc/kiss). This was done for a couple of reasons.
The files themselves take up no space at all as they're merely plain .txt files. With this change, every KISS user has the entire distro stored locally on their system.
This was fairly simple to achieve as the repositories are git based and contain full history, the package manager is written in shell so the installed program _is_ the source code and the docs are little .txt files.
Were something to happen to me (knock on wood!), there is now nothing to lose access to. Every KISS user has the ability to continue to keep their system up to date and to additionally keep KISS alive.
Remember, the distribution is designed to be maintainable by a single person. You have the right and means as a user to drop the dependence on me at any time.
Cem Keylan, (the creator of Carbs Linux (a distro based on KISS)) has released a simple system supervisor. The project was written with KISS Linux an Carbs Linux in mind and Cem is calling for testers.
The project is written in POSIX shell and should require no additional dependencies. If you are interested, please try it out.
I am yet to use it though it's always good to have options. I thought I'd post about this as it's a minimal alternative for those using KISS who are looking to move away from busybox init.
Source:
https://github.com/cemkeylan/sysmgr
I spent some time working on my IRC client as well. I rewrote it from the ground up and it's now in a "ready" state. Documentation is still lacking which I will tackle over the next week.
While all of the core functionality has been implemented, you may still find some bugs. This is expected!
A little introduction first. Birch is an IRC client written in around 200 lines of bash (excluding blank lines and comments).
Interesting features include:
These may seem pretty basic to you as a reader though keep in mind that bash is very tricky to work with when it comes to writing any kind of TUI.
The trickiest part is that the input prompt and IRC listener must run asynchronously and small portions of the window must be updated without affecting other parts of the window.
So, the listener runs in the background. When you background something in bash, it runs in a subshell. What this means is that you can no longer share variables between the now separate processes.
This made it very hard to communicate between input/output. I ended up using files for IPC which turned out great for logging purposes. Lots of fun to be had.
I know I'll get this question: "Why bash?". I'll answer as simply as possible. It's fun and challenging!
Source:
https://github.com/dylanaraps/birch
I also spent a little time writing a simple and barebones laptop power management tool called pow. It merely provides two commands, 'pow pow' to swap to power (AC) and 'pow bat' to swap to battery.
On my hardware the battery mode passes all of powertop's tunable nitpicks though more rules may need to be added for yours. Patches are welcome.
This tool provides no daemon to listen to AC/Battery events. It only provides the switching mechanism. It's up to you how, when and why it should be run.
There is no configuration file either as the program is so tiny. Once edits are made and it works, there's no real need to ever touch it again.
As an example, you could pair this with acpid to automatically run it on specific events. I hope you find some use out of it, I have!
Source:
https://github.com/dylanaraps/pow
SOWM is a simple window manager of my creation and is the closest thing to a "default" window manager in a KISS system. It comes in at around 200 LOC and is extendable through patches.
The patch process for SOWM has changed to a more maintainable system. Each patch is now a pull request on GitHub which will be kept open in perpetuity.
The author of the pull request will know when there are merge conflicts as the web-UI won't allow the PR to be merged. GitHub also allows patches to be generated by appending '.patch' to the PR URL.
I also worked on adding basic titlebar support to SOWM. They're pretty useless right now though I'll be extending the patch to add title text, buttons, etc. It's a start.
Patches:
https://github.com/dylanaraps/sowm/pulls
---
Dylan Araps (62):
wpa_supplicant: Link statically to libnl-tiny
libnl: move to community
eiwd,openresolv: Move to community
wpa_supplicant: minor fixes
opendoas: fix comment
kiss: More portable install usage
liberation-fonts: More portable install
json-c: Move to community
libevent: Move to community
kiss: bump to 1.7.1
fontconfig: Remove automake dependency
GNU auto*,libtool: Move to community
glib: bump to 2.63.6
wpa_supplicant: use CC. @konimex. Closes #160
baseinit: bump to 0.4.2
baseinit: bump to 0.4.3
baseinit: bump to 0.4.4
gcc: latest snapshot
python: bump to 3.8.2
baseinit: bump to 0.5.0
mesa: Use own python-mako. python-mako: drop
various: fix maintainer
various: fix maintainer
python: fix chmod
python2: fix chmod
meson bump to 0.53.2
glib: never pcre
kiss: bump to 1.7.2
bison: Remove perl dependency
rsync: Remove perl dependency. Thanks @E5ten
x264: Remove perl depend
gtk+3: Remove perl dependency
xkeyboard-config: Remove perl dependency
rsync: Add comment
xkeyboard-config: Simpler xml2lst. Thanks @E5ten
glib: bump to 2.64.0
rust: bump to 1.41.1
xvidcore: use yasm
lame: Disable nasm.
libass: Use nasm
xvidcore: Use nasm.
libvpx: use nasm
libjpeg-turbo: Use nasm
ffmpeg: use nasm
xkeyboard-config: Fix checksums
libevdev: bump to 1.9.0
fribidi: bump to 1.0.9
imagemagick: bump to 7.0.9-26
libnl: Add to community
eiwd,openresolv: Add to community
apulse: drop from community
json-c: Add to community
libevent: Add to community
GNU auto*,libtool: Move to community
compton,esetroot,keychain: Drop from community
zsh: drop from community
luajit: Create missing symlinks
guile: drop from community
mercurial: Drop from community.
imagemagick: bump to 7.0.9-27
ntfs-3g: Fix build. Closes #489
mc: Remove from community
Adam Schaefers (7):
drop nawk, add nawk-git, closes #467
nettle: remove texinfo dependency
pciutils: fix #490
libcap: bump to 2.33, use_sched_not_pthread.patch
libcap: use sed, not patch
Cem Keylan (4):
lazygit: bump to 0.15.2
lazygit: bump to 0.15.3
libsoup: bump to 2.68.4
lazygit: bump to 0.15.5
Dilyn Corner (5):
xf86-input-mtrack: new package at 0.5.0
modified: xf86-input-mtrack/build
modified: build
modified: depends
xf86-input-mtrack: bumped to 0.5.1
Dzogovic Vehbo (1):
fix lua rights - thanks to paper
Kris Heck (1):
Various packages: adoption (#415) (#454)
M. Herdiansyah (3):
json-c: swap to cmake (#457)
picom: remove libxdg-basedir depends (#458)
libxdg-basedir: drop package (#459)
Matthew W (1):
mercurial: new package at 5.3
Muhammad Herdiansyah (6):
picom: use patch submitted to upstream
go: update to 1.14
picom: switch to merged patch
libsodium: new package at 1.0.18
minisign: new package at 0.8
libsodium/minisign: move to proper directories
Owen Rafferty (7):
sfeed: new package at 0.9.16
xwallpaper: bump to 0.6.3
glu: new package at 9.0.1
cython: new package at 0.29.15
freeglut: new package at 3.2.1
flashrom: new package at 1.2
keyutils: new package at 1.6.1
Will Eccles (3):
cfm: update to 0.5.4
cfm: update to 0.5.6
cfm: update to 0.6.0
dzove855 (1):
Add dylan's improvement.