aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2022-01-30 18:39:34 +0100
committerDavid Runge <dave@sleepmap.de>2022-01-30 18:39:34 +0100
commit07e2a05e9301a71823aab594308798224af6cc7e (patch)
treea1da5674c15fd545538c64b7f74e8bc31c2f1933
parent955424c04070edfc40b4cfea1da89365c4b584ad (diff)
downloadsleepmap-07e2a05e9301a71823aab594308798224af6cc7e.tar.gz
sleepmap-07e2a05e9301a71823aab594308798224af6cc7e.tar.bz2
sleepmap-07e2a05e9301a71823aab594308798224af6cc7e.tar.xz
sleepmap-07e2a05e9301a71823aab594308798224af6cc7e.zip
Add Arch recap article
posts/2022/arch-a-recap.rst: Add post about motivation to do stuff for Arch Linux :)
-rw-r--r--posts/2022/arch-a-recap.rst294
1 files changed, 294 insertions, 0 deletions
diff --git a/posts/2022/arch-a-recap.rst b/posts/2022/arch-a-recap.rst
new file mode 100644
index 0000000..9ac0b19
--- /dev/null
+++ b/posts/2022/arch-a-recap.rst
@@ -0,0 +1,294 @@
+.. title: Arch, a recap
+.. slug: arch-a-recap
+.. date: 2022-01-30 18:0:00 UTC+02:00
+.. tags: arch linux, pro-audio, packaging
+.. category: archlinux
+.. link:
+.. description:
+.. type: text
+
+One of the things, that has kept me (increasingly) busy over the past few years
+is my involvement with the |linux distribution| |arch linux|.
+While I have been using |linux| for probably about 14 years it is frankly hard to
+pinpoint when exactly I went down the rabbit hole that this operating system/
+ecosystem/ community is (relevant |xkcd|). However, I can elaborate on my
+motivation and where that got me.
+
+.. TEASER_END
+
+As a musician of a varying background (from band-based rock music to solo
+performances on guitar or with a modular synthesizer) I have found myself
+evaluating the available pieces of software that are commonly used in music
+production (e.g. |daws| and |audio plug-ins|). Most of them are |proprietary|
+and only available for Windows or macOS (both proprietary as well). During my
+studies a lot of the software in use has also not been |free|, but was provided
+by the university with a *student discount* (e.g. Operating Systems (OSes),
+|ides| or certain types of |vpls|).
+I got increasingly annoyed by dealing with intransparent proprietary OSes,
+|vendor lock-in| schemes, paying for software updates and being driven into
+software piracy for working with so-called *industry standards*.
+
+Some time during the studies for my B.Sc. I decided to "try out Linux", not
+knowing what that would mean actually. So there I was, booting an |ubuntu| Live
+CD and clicking around in an interface, that would install the OS alongside a
+still existing Windows 7. At that point I did not yet know about the joys of
+missing or failing |device drivers|. Many hard fights with the |x window
+system| later I settled on |ubuntu studio| for a while, as it had many nice
+audio related pieces of software available out-of-the-box.
+
+I have always been a person that is interested in *"how things work"*. Soon I
+realized, that the Linux ecosystem consisted of people that thought quite
+similarly. Through various (often distribution specific) online documentation,
+forums, mailing lists and the documentation of software projects for the first
+time I felt as if I could actually learn something that mattered, because it
+was not sold in a box and instead had a community of like-minded people
+gathering around it.
+I found quite appealing that a lot of things were *not polished* and that some
+things were *not easy*, because it provided the sense of achieving something or
+*getting good at something*. Where in Windows land I would have reinstalled the
+OS upon getting intermittent |bluescreens|, in Linux land I just kept reading
+about a certain topic until I was able to fix it myself.
+
+Probably a year after dipping my toes into Linux I bought a new laptop (my
+previous one decided to commit suicide by desoldering its GPU). At that time it
+seemed like a good idea to not dual-boot anymore, as apart from an occasional
+game session I was not using Windows anymore.
+Due to a friend of one of my fellow students I got introduced to Arch Linux,
+which that person used in a (to me) bizarrely minimal fashion by booting from a
+USB stick, as the hard drive in his laptop was broken.
+
+After installing Arch Linux for the first time (probably around 2008) I
+realized quite early on that I would rather continue using it instead of Ubuntu
+Studio, which by that time had given me many issues due to unclear
+configuration management, documentation and graphics driver handling.
+The |arch wiki| already back then was an excellent source of knowledge (and
+still is to this day). Although some articles lack structure or are sometimes
+outdated, it is this trove of knowledge that I had been missing with less
+hands-on distributions up to then.
+The |aur| offered an entrypoint for me to understand how distribution |package
+management| works and how to build my own packages, that I could install using
+the |pacman| package manager. This new found knowledge made me realize how
+inefficient my work on Windows had been in the past (a realization that had not
+fully dawned upon me on Ubuntu Studio as their update model follows a certain
+cadence in which new versions of softwares are updated and otherwise only gain
+bugfix releases). I was suddenly enabled to build packages myself of software
+that I liked and used and I was able to alter existing packages to e.g. fix
+problems or to extend their functionality. I was enabled to upgrade my entire
+system with a single command, while on Windows I had to scavenge websites to
+download installers and run those without knowing whether they were compatible.
+
+As my main focus shifted even further towards pro-audio applications, |dsp|
+languages and recording practices with my M.Sc., I of course do have to mention
+the accumulation of knowledge that |linux audio| represents (e.g. with the
+|linux audio wiki|). It is an invaluable, although by now partially outdated
+and not actively maintained point of - often distribution agnostic -
+information on all things audio on Linux. This ecosystem is what drove and/ or
+documented the development and use of many of the projects at the center of
+what it means to achieve low-latency audio on Linux such as |jack|.
+
+After 2011 I started to conceptualize the Arch Linux distribution also as a
+social construct, that relies on individuals to develop and change it (by
+|getting involved|). While Arch is a distribution that can be used for many
+purposes, the lack of structure or features in e.g. the pro-audio section was
+apparent (although partially covered by packages in the AUR). I was able to do
+most of the projects I was working on at that time using |supercollider| but
+sometimes ran into issues that e.g. Ubuntu Studio had solved in a distribution
+specific way (e.g. by providing packages for the |realtime kernel| to achieve
+very low latencies while recording).
+
+Around 2017 it became apparent that many of the packages that I was using on a
+day-to-day basis were starting to fall behind on updates or had not been
+updated in a long time. It turned out that two packagers that had been active
+packaging audio related software were missing in action or were extremely
+unresponsive. I realized, that unlike a company supported endeavor, Arch Linux
+was a community driven effort and as such required help.
+
+At the time of writing, Arch Linux consists of |arch linux developers|, |arch
+linux trusted users| and |arch linux support staff|. While the first group
+somewhat defines the direction of the distribution itself and takes care of the
+most centric package repositories (``[core]`` and ``[extra]``), the second
+group historically has been an additional group of packagers that takes care of
+the ``[community]`` repository and the AUR and the last group is keeping a lot
+of the infrastructure (e.g. wiki, forums, mailing lists, IRC channels, servers,
+hosted applications) alive.
+
+For outsiders it is possible to join the Support Staff by starting to help
+maintain infrastructure together with the existing staff.
+When looking at the Trusted Users group the barrier of entry is a bit higher,
+as the person gains access to package repositories that are used by thousands
+of users. As such newcomers have to follow a vetting process and be sponsored
+by existing group members (this is similar, but much less clearly defined, for
+Developers).
+
+At the end of 2017 I was able to apply as Trusted User with the help of Ray
+Rashif, who had been maintaining the packages I wanted to help improve and
+update.
+
+Admittedly, the application process has been a bit daunting at the time, but it
+also made me realize, how much I could still improve my package scripts and the
+amount of work that is sometimes required to get things right.
+
+Since becoming a Trusted User in 2017 I have added many new packages in the
+context of a pro-audio package group and spent time on various other packaging
+areas as well.
+In 2019 I have been promoted to Developer and spent some more time on
+non-packaging topics on the side, such as infrastructure improvements
+(|releng|, |arch-release-promotion| and |arch-repo-management|), installation
+medium (|archiso|) and various community related topics (setting up an |rfc
+process| and help holding |arch linux conferences|).
+
+I will follow up on packaging and best practices in an upcoming article
+(hopefully in the not so distant future) and shed some light on the
+non-packaging topics in further articles as well.
+
+That's it for now! I hope you enjoyed reading a user story, that eventually led
+to getting more involved with an international community of (very talented)
+developers working on a challenging project with many facets. As you can
+imagine there are always many more stories to tell, but I tried to give a
+general overview. Maybe I could even get someone interested in reaching out and
+lending a hand in further developing this amazing beast that is Arch Linux :-)
+
+.. |linux distribution| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Linux_distribution">Linux distribution</a>
+
+.. |arch linux| raw:: html
+
+ <a target="blank" href="https://www.archlinux.org">Arch Linux</a>
+
+.. |linux| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Linux">Linux</a>
+
+.. |xkcd| raw:: html
+
+ <a target="blank" href="https://xkcd.com/456/">XKCD</a>
+
+.. |proprietary| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Proprietary_software">proprietary</a>
+
+.. |daws| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Digital_audio_workstation">Digital Audio Workstations (DAWs)</a>
+
+.. |audio plug-ins| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Audio_plug-in">audio plugin-ins</a>
+
+.. |free| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Free-software_license">free</a>
+
+.. |ides| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Integrated_development_environment">Integrated Development Environments (IDEs)</a>
+
+.. |vpls| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Visual_programming_language">Visual Programming Languages (VPLs)</a>
+
+.. |vendor lock-in| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Vendor_lock-in">vendor lock-in</a>
+
+.. |ubuntu| raw:: html
+
+ <a target="blank" href="https://ubuntu.com/">Ubuntu</a>
+
+.. |device drivers| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Device_driver">device drivers</a>
+
+.. |x window system| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/X_Window_System">X Window System</a>
+
+.. |ubuntu studio| raw:: html
+
+ <a target="blank" href="https://ubuntustudio.org/">Ubuntu Studio</a>
+
+.. |bluescreens| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Blue_Screen_of_Death">bluescreens</a>
+
+.. |arch wiki| raw:: html
+
+ <a target="blank" href="https://wiki.archlinux.org/">Arch Wiki</a>
+
+.. |aur| raw:: html
+
+ <a target="blank" href="https://aur.archlinux.org">AUR</a>
+
+.. |package management| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Package_manager">package management</a>
+
+.. |pacman| raw:: html
+
+ <a target="blank" href="https://archlinux.org/pacman/">pacman</a>
+
+.. |dsp| raw:: html
+
+ <a target="blank" href="https://en.wikipedia.org/wiki/Digital_signal_processing">DSP</a>
+
+.. |linux audio| raw:: html
+
+ <a target="blank" href="https://linuxaudio.org/">Linux Audio</a>
+
+.. |linux audio wiki| raw:: html
+
+ <a target="blank" href="https://wiki.linuxaudio.org/">Linux Audio Wiki</a>
+
+.. |jack| raw:: html
+
+ <a target="blank" href="https://jackaudio.org/">JACK</a>
+
+.. |getting involved| raw:: html
+
+ <a target="blank" href="https://wiki.archlinux.org/title/Getting_involved">getting involved</a>
+
+.. |supercollider| raw:: html
+
+ <a target="blank" href="https://supercollider.github.io/">SuperCollider</a>
+
+.. |realtime kernel| raw:: html
+
+ <a target="blank" href="https://wiki.linuxfoundation.org/realtime/start">realtime kernel</a>
+
+.. |arch linux developers| raw:: html
+
+ <a target="blank" href="https://archlinux.org/people/developers/">Developers</a>
+
+.. |arch linux trusted users| raw:: html
+
+ <a target="blank" href="https://archlinux.org/people/trusted-users/">Trusted Users</a>
+
+.. |arch linux support staff| raw:: html
+
+ <a target="blank" href="https://archlinux.org/people/support-staff/">Support Staff</a>
+
+.. |releng| raw:: html
+
+ <a target="blank" href="https://gitlab.archlinux.org/archlinux/releng/">releng</a>
+
+.. |arch-release-promotion| raw:: html
+
+ <a target="blank" href="https://gitlab.archlinux.org/archlinux/arch-release-promotion/">arch-release-promotion</a>
+
+.. |arch-repo-management| raw:: html
+
+ <a target="blank" href="https://gitlab.archlinux.org/archlinux/arch-repo-management/">arch-repo-management</a>
+
+.. |archiso| raw:: html
+
+ <a target="blank" href="https://gitlab.archlinux.org/archlinux/archiso/">archiso</a>
+
+.. |rfc process| raw:: html
+
+ <a target="blank" href="https://gitlab.archlinux.org/archlinux/rfcs/">RFC process</a>
+
+.. |arch linux conferences| raw:: html
+
+ <a target="blank" href="https://conf.archlinux.org/">Arch Linux Conferences</a>
+