From 08c5bd21fa02e1b30fe2e4c194d9c615a4daf2c6 Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Tue, 31 Aug 2021 01:13:15 +0300 Subject: website: switch to hugo --- content/_index.org | 65 +++++++++ content/blog/20200128.org | 17 +++ content/blog/20200406.org | 74 ++++++++++ content/blog/20200410.org | 22 +++ content/blog/20200508.org | 114 +++++++++++++++ content/blog/20200528.org | 41 ++++++ content/blog/20200617.org | 89 ++++++++++++ content/blog/20200803.org | 72 ++++++++++ content/blog/20201210.org | 23 +++ content/blog/20210303.org | 84 +++++++++++ content/blog/20210415.org | 120 ++++++++++++++++ content/blog/20210525.org | 50 +++++++ content/blog/20210630.org | 15 ++ content/blog/20210831.org | 26 ++++ content/blog/_index.md | 5 + content/docs.org | 119 ++++++++++++++++ content/download.org | 23 +++ content/install.org | 352 ++++++++++++++++++++++++++++++++++++++++++++++ content/mailing-lists.org | 24 ++++ content/news/20191210.org | 4 + content/news/20191212.org | 6 + content/news/20191217.org | 5 + content/news/20191218.org | 4 + content/news/20200109.org | 13 ++ content/news/20200110.org | 4 + content/news/20200113.org | 23 +++ content/news/20200115.org | 4 + content/news/20200122.org | 5 + content/news/20200128.org | 10 ++ content/news/20200213.org | 6 + content/news/20200214.org | 50 +++++++ content/news/20200218.org | 10 ++ content/news/20200405.org | 14 ++ content/news/20200406.org | 4 + content/news/20200410.org | 4 + content/news/20200427.org | 7 + content/news/20200510.org | 7 + content/news/20200519.org | 5 + content/news/20200526.org | 5 + content/news/20200617.org | 5 + content/news/20200727.org | 7 + content/news/20200903.org | 6 + content/news/20200916.org | 6 + content/news/20210228.org | 5 + content/news/20210304.org | 6 + content/news/20210308.org | 5 + content/news/20210401.org | 5 + content/news/20210406.org | 9 ++ content/news/20210522.org | 4 + content/people.org | 3 + content/sources.org | 32 +++++ 51 files changed, 1618 insertions(+) create mode 100644 content/_index.org create mode 100644 content/blog/20200128.org create mode 100644 content/blog/20200406.org create mode 100644 content/blog/20200410.org create mode 100644 content/blog/20200508.org create mode 100644 content/blog/20200528.org create mode 100644 content/blog/20200617.org create mode 100644 content/blog/20200803.org create mode 100644 content/blog/20201210.org create mode 100644 content/blog/20210303.org create mode 100644 content/blog/20210415.org create mode 100644 content/blog/20210525.org create mode 100644 content/blog/20210630.org create mode 100644 content/blog/20210831.org create mode 100644 content/blog/_index.md create mode 100644 content/docs.org create mode 100644 content/download.org create mode 100644 content/install.org create mode 100644 content/mailing-lists.org create mode 100644 content/news/20191210.org create mode 100644 content/news/20191212.org create mode 100644 content/news/20191217.org create mode 100644 content/news/20191218.org create mode 100644 content/news/20200109.org create mode 100644 content/news/20200110.org create mode 100644 content/news/20200113.org create mode 100644 content/news/20200115.org create mode 100644 content/news/20200122.org create mode 100644 content/news/20200128.org create mode 100644 content/news/20200213.org create mode 100644 content/news/20200214.org create mode 100644 content/news/20200218.org create mode 100644 content/news/20200405.org create mode 100644 content/news/20200406.org create mode 100644 content/news/20200410.org create mode 100644 content/news/20200427.org create mode 100644 content/news/20200510.org create mode 100644 content/news/20200519.org create mode 100644 content/news/20200526.org create mode 100644 content/news/20200617.org create mode 100644 content/news/20200727.org create mode 100644 content/news/20200903.org create mode 100644 content/news/20200916.org create mode 100644 content/news/20210228.org create mode 100644 content/news/20210304.org create mode 100644 content/news/20210308.org create mode 100644 content/news/20210401.org create mode 100644 content/news/20210406.org create mode 100644 content/news/20210522.org create mode 100644 content/people.org create mode 100644 content/sources.org (limited to 'content') diff --git a/content/_index.org b/content/_index.org new file mode 100644 index 0000000..cbc838f --- /dev/null +++ b/content/_index.org @@ -0,0 +1,65 @@ +#+TITLE: Home +#+DESCRIPTION: a simple Linux distribution +#+OPTIONS: title:nil + +Carbs Linux is a source-based Linux\reg distribution that aims to be simple, +flexible and extensible while staying as pragmatic and practical as possible. +The system can consist of as much or as little as its user can intend to. + +* Package Manager +:PROPERTIES: +:CUSTOM_ID: package-manager +:END: + +Carbs Linux uses its own package manager [[https://fossil.carbslinux.org/cpt][Carbs Packaging Tools]], a POSIX shell +package manager forked from [[https://github.com/kisslinux/kiss][KISS]] with the tool-based approach of [[https://github.com/void-linux/xbps][xbps]]. Its aim +is to deliver easy-to-use tools while also providing a powerful POSIX shell +library that can be used to further extend and script the packaging system. + + +* Small base +:PROPERTIES: +:CUSTOM_ID: small-base +:END: + +By default, Carbs Linux comes with busybox for coreutils, libressl for its +crypto library, musl libc, and other basic utilities that are required for +building new software. The majority of the base packages are statically linked. + + +* Multiple Init Support +:PROPERTIES: +:CUSTOM_ID: multiple-init-support +:END: + +Carbs Linux has support for multiple init systems and service supervisors. In +the main repository are + +- {{< pkg "core/sinit" >}} +- {{< pkg "extra/shinit" >}} +- {{< pkg "core/busybox" "busybox-init" >}} +- {{< pkg "core/runit" "runit-init" >}} + +for init systems, and + +- {{< pkg "core/sysmgr" >}} +- {{< pkg "core/busybox" "busybox-runit" >}} +- {{< pkg "core/runit" >}} + +for service supervisors. The {{< pkg "core/carbs-init" >}} package is the collection of init +scripts that ensure the interoperability of these init and service systems, and +make it easier for the user to switch to their preferred combinations of system +supervision. + +Nothing holds you back, however, from ditching any of these and packaging some +other system supervision technique along with your own init scripts. + + +* Links +:PROPERTIES: +:CUSTOM_ID: links +:END: + +- IRC - =#carbslinux= on libera.chat +- Reddit - [[https://reddit.com/r/carbslinux][r/carbslinux]] +- [[file:mailing-lists.org][Mailing Lists]] diff --git a/content/blog/20200128.org b/content/blog/20200128.org new file mode 100644 index 0000000..97b771a --- /dev/null +++ b/content/blog/20200128.org @@ -0,0 +1,17 @@ +#+TITLE: Switching to New Website +#+DATE: 2020-01-28 +#+AUTHOR: Cem Keylan +#+ALIASES[]: /blog/20200128.html + +In case you haven't seen it before, this website was powered by [[http://werc.cat-v.org][werc]]. And even +though I liked it really much, it was too powerful for a small website like +this. + +So I have decided to reimplement this website with my own static generation +scripts. The source will probably be on [[https://git.carbslinux.org/website/log.html][its git repository]] when I decide to +publish the website. + +The generation requires Plan9 programs, although I have used them just for my +enthusiasm. I have built the site with a combination of mk (instead of make), +rc, and POSIX sh. I am not yet exactly familiar with rc, but I will replace the +shell scripts when I feel like I can. diff --git a/content/blog/20200406.org b/content/blog/20200406.org new file mode 100644 index 0000000..c993b6f --- /dev/null +++ b/content/blog/20200406.org @@ -0,0 +1,74 @@ +#+TITLE: Roadmap for Carbs +#+AUTHOR: Cem Keylan +#+DATE: <2020-04-06 Mon> +#+ALIASES[]: /blog/20200406.html + +It has been a busy week. There are lots of changes in direction, and more to +come. I want to talk a little about all of them. + +** Carbs Linux Server Going Down +:PROPERTIES: +:CUSTOM_ID: carbs-linux-server-going-down +:END: + +It became harder to maintain and pay for the server, and I will be shutting it +down in May. I am currently in the phase of carrying over everything to [[https://github.com/CarbsLinux][Github]]. +The repository and the website is served on Github now. I have also moved the +[[https://github.com/CarbsLinux/wiki/wiki][Wiki]] to Github and anyone can edit it there. There are some outdated posts that +I will be fixing around this week. + +I am not quite sure where to store the downloads page now. But I will be +switching that to a new source as well. (Maybe SourceHut?) + +I feel a little sad for switching, but serving on Github is faster, cheaper, and +hassle-free. + +** Forking KISS +:PROPERTIES: +:CUSTOM_ID: forking-kiss +:END: + +I had a personal fork of KISS, which I enjoyed thoroughly. I didn't intend to +make it the default when I started it, but it has matured enough to be so. The +package manager can now be found on [[https://github.com/CarbsLinux/kiss][this repository]]. See it for the added +changes. + +This will be a change for the better, as I can develop the package manager as it +fits my views. + +** Small Changes on the Website +:PROPERTIES: +:CUSTOM_ID: small-changes-on-the-website +:END: + +I have made some small changes on the website. The build is not dependent on +Plan9 utilities anymore. It was fun messing around with =rc= and =mk=, but they +are quite limited compared to POSIX shell. + +RSS feeds are finally working as intended, both for the [[https://carbslinux.org/news.xml][news]] section, and the +[[https://carbslinux.org/rss.xml][blog]] section. + +You can see every page's =.txt= output at the end of the page by clicking 'View +Page Source'. Meanwhile, I will be updating some pages to be a little more +'human-readable'. + +** Outsources Repository +:PROPERTIES: +:CUSTOM_ID: outsources-repository +:END: + +I have opened an =outsource= repository, which I will be pushing this week. I +will add a new post when I am ready to push it. I think it will be interesting, +it will also make more sense about the changes I have added to the package +manager. The now empty repository, can be found [[https://github.com/CarbsLinux/outsource][here]]! + +** New Tarball +:PROPERTIES: +:CUSTOM_ID: new-tarball +:END: + +Finally, I have released a new tarball today, which can be obtained from the +[[https://dl.carbslinux.org/releases][downloads page]]. + +I am planning to add more of these update posts as I'm feeling better about the +website structure overall. diff --git a/content/blog/20200410.org b/content/blog/20200410.org new file mode 100644 index 0000000..8bdf57a --- /dev/null +++ b/content/blog/20200410.org @@ -0,0 +1,22 @@ +#+TITLE: Outsource Repository Concept +#+AUTHOR: Cem Keylan +#+DATE: <2020-04-10 Fri> +#+ALIASES[]: /blog/20200410.html + +In April 3rd, I have added submodule support for Carbs Linux's fork of =kiss=. +Now, from that sentence, it really doesn't sound exciting at all. But in +reality, it opens a path to lots of creative output, and a better way to manage +multi-user repositories (such as KISS Community). + +When managing a repository of submodules, the repository maintainer's only job +is to deal with adding packages. A package maintainer doesn't have to wait for +the repository maintainer to update their packages, as they are only making the +changes to their own repositories. + +This way, an end-user can also track from their preferred maintainers, and do +that with the tidyness of a single repository in their =KISS_PATH=. + +Carbs Linux now has an outsource repository for some packages. Firefox and its +dependencies have been purged from the main repository, but can be found on it. + +[[https://github.com/CarbsLinux/outsource]] diff --git a/content/blog/20200508.org b/content/blog/20200508.org new file mode 100644 index 0000000..8de5de0 --- /dev/null +++ b/content/blog/20200508.org @@ -0,0 +1,114 @@ +#+TITLE: The Relation of Carbs and KISS +#+AUTHOR: Cem Keylan +#+DATE: <2020-05-08 Fri> +#+ALIASES[]: /blog/20200508.html + +Since I have forked KISS, I have received many questions that can be summarized +as "Why?". I have realized that I never truly answered this question. That's the +reason I am writing this post, to give some background on Carbs, and some +differences between KISS Linux and Carbs Linux for anyone who may be wondering. +Perhaps I could make this a "FAQ" page later on. + +** History +:PROPERTIES: +:CUSTOM_ID: history +:END: + +I had the idea of creating my own Linux distribution since the May of 2019. Back +then, I had my own [[https://linuxfromscratch.org][Linux from Scratch]] build, and I wanted to slim it down my +own way and replace the software (with musl,sbase,etc.). The name Carbs Linux +was in my mind since then. I wanted to write my own package manager, but I +wasn't satisfied with anything I had built. + +I had written some incomplete package managers (all named =fat=) and I quickly +threw them into the trash can, where they honestly belonged. I would want to +share them with you for laughs, but my hard-drive got wiped and I have a problem +of not doing an "initial commit" until a program I write is in a usable state. + +I have obtained the 'carbslinux.org' domain name in September 2019, but then +life got on the way, and I stopped for a long time. + +One day on Reddit, I saw Dylan's post on [[https://reddit.com/r/unixporn][r/unixporn]] about KISS, and I really +thought that it was interesting. Here is my [[https://www.reddit.com/r/unixporn/comments/ducd34/sowm_kiss_d/f7lua7x][comment]] to Dylan on that post. I +checked out the package manager and the repository. The packaging system was +extremely clean and well-thought. I decided to give it a go and fork KISS. + +** Differences between KISS and Carbs +:PROPERTIES: +:CUSTOM_ID: differences-between-kiss-and-carbs +:END: + +Now, I still baffle when people ask me this question. My intention was never to +create a distribution with specific differences between KISS. My intention was +being my own BDFL of a distribution I maintain. There are lots of differences +between the main repositories, but they are subtle and not worth talking about. +I personally never even installed KISS Linux on my system. So Carbs, isn't +something like a downstream fork of KISS, it is just a distribution that was +initially based on KISS. + +I try to contribute as much as I can to KISS Linux. I think that it is a +brilliant distribution, and it was a great starting point for Carbs. I am really +grateful to Dylan and all the other contributors. + +** What I'm working on now +:PROPERTIES: +:CUSTOM_ID: what-im-working-on-now +:END: + +Currently I have a few projects that I'm working on for Carbs. These are, + +A BSD port for Carbs. For a while, I have been working on BSD compatibility on +my fork of the [package manager]. I have tested, without any more issues, on +OpenBSD and FreeBSD. The biggest issues remaining are choosing a vendor for BSD, +packaging the BSD source, and providing a minimal base (like busybox for BSD). +If you aren't familiar with BSD, it has a single source code for all of the +utilities (kernel, command line programs, etc.). Contributions (even chipping in +ideas) are very welcome. + +Adding binary package distribution support natively to the package manager. +Biggest issue in small/old computers are compile times. This feature is for the +bigger packages such as webkit, clang, llvm that take a considerable amount of +time. Some computers with low memories cannot even compile firefox/webkit. + +Adding rsync repository support to the package manager. This is not a current +issue, but rather a futureproofing. As time passes, distribution repositories +grow larger. KISS and Carbs are young distributions without this problem right +now. But in something like 5 years, this size will presumably increase to +hundreds of megabytes. At that point it will be pointless to have the repository +sources unless you specifically need them. + +** What's up with all the init/service daemons? +:PROPERTIES: +:CUSTOM_ID: whats-up-with-all-the-init-service-daemons +:END: + +If you have ever checked the [[https://github.com/carbslinux/repository][repository]], you may have noticed that there are +lots of init/service related packages. I have had my fair share of time with all +of them, and it is an area that I am really interested in. I have even written +my own [[https://github.com/cemkeylan/shinit][init daemon]] and [[https://github.com/cemkeylan/sysmgr][service supervisor]]. I maintain all those packages on KISS +Community Repository as well with the exception of busybox. Those are, =busybox +init/runit=, =runit=, =sinit=, and =sysmgr=. I would definitely recommend +checking out =shinit= and =sysmgr=. + +** Why I don't publicize Carbs +:PROPERTIES: +:CUSTOM_ID: why-i-dont-publicize-carbs +:END: + +There are a couple of reasons I don't publicize Carbs a lot. + +KISS is the better alternative in terms of support and community. I work on +maintaining this distribution just as hard as Dylan, but in the end, Carbs is +based on his original hard work, and I believe that he deserves the recognition +more than I do. + +Since I cannot answer questions like "What is the difference?", I prefer staying +as the silent sibling project of KISS Linux. Plus, there is no point in dividing +the newly-emerging community in half. + +That's not because I don't have ideas for the future of Carbs, I do. I just +think that I will deserve the recognition once those above lists are checked. + +I think that's about it, if you have questions you can send me a mail, ping me +on IRC (my handle is =merakor=), and I will be happy to answer. Maybe your +question fits this post, and I can update it to thoroughly give an explanation. diff --git a/content/blog/20200528.org b/content/blog/20200528.org new file mode 100644 index 0000000..54a140b --- /dev/null +++ b/content/blog/20200528.org @@ -0,0 +1,41 @@ +#+TITLE: kiss 2.0.0 and Overall Changes +#+AUTHOR: Cem Keylan +#+DATE: <2020-05-28 Thu> +#+ALIASES[]: /blog/20200528.html + +Carbs Linux kiss version 2.0.0 has been released which introduces rsync +repositories. + +Git is no longer a mandatory dependency for the package manager, every git +source on the core repository has been replaced with https sources (sbase, +sinit), and rootfs tarballs will no longer ship with git. Repositories in the +upcoming tarball will be rsync repositories. + +Git is now on the =extra= repository and is still (optionally) used in the +package manager. + +The idea behind this change is size reductions and increased speed with rsync. +As I said on the previous post, git repositories get larger and larger over the +time span. Currently my personal copy of the git repository is around 77MB and I +have forked KISS Linux (as a shallow copy) around December. Obviously, I have +commits that I ommitted. I tend to create commits I dislike, which I change with +=git reset --soft HEAD^=, which doesn't actually remove the commits, etc. A user +will have a repository much smaller than mine. + +This is a precaution with the added bonuses of speed and dropping a mandatory +dependency. + +You can see the rest of the changelog [[https://github.com/CarbsLinux/kiss/blob/master/CHANGELOG.md][here]]. + +** Binary Repositories +:PROPERTIES: +:CUSTOM_ID: binary-repository +:END: + +A few days ago, I have also published [[https://github.com/CarbsLinux/kiss-bin][kiss-bin]], a first version for managing +binary repositories. Currently, there are some caveats that I'll be fixing along +the way. I decided not to include this in the package manager natively as +managing the source based and binary based packages together adds levels of +complexity that we do not want. Instead, this is an extension for kiss which +sources the package manager as a library. I hope to see it being adopted by +others interested on the matter as well. diff --git a/content/blog/20200617.org b/content/blog/20200617.org new file mode 100644 index 0000000..2524fb6 --- /dev/null +++ b/content/blog/20200617.org @@ -0,0 +1,89 @@ +#+TITLE: June 2020 News Post +#+AUTHOR: Cem Keylan +#+DATE: <2020-06-17 Wed> +#+ALIASES[]: /blog/20200617.html + +This will be an active month for Carbs as major changes to the base and the +package manager will be coming up. + +** Statically linking the base +:PROPERTIES: +:CUSTOM_ID: statically-linking-the-base +:END: + +For the past couple of weeks I have been trying to simplify the base and +statically link the core (mostly binaries rather than libraries). I usually see +some people extremely opposed to static linking as I also see the opposite on +people. + +I believe that binaries on the core should always be linked statically. This +ensures that an SONAME bump to =libObscure.so= will not break the core +functionality of your system, forcing you to use external resources to recover +from such an issue. As long as you can compile, use core utilities, edit text, +and access the web, you can solve any given issue on your system. + +However, I don't think that removing shared libraries is sensible either. Not +every piece of software out there is good quality enough to be statically +linked. + +** Major changes on the core repository +:PROPERTIES: +:CUSTOM_ID: major-changes-on-the-core-repository +:END: + +There have been drastic changes to the core repository and the base rootfs this +month (with more on the way). Right now changes are as follows. + +*** Removed from Core +:PROPERTIES: +:CUSTOM_ID: removed-from-core +:END: +- =git= +- =libressl= +- =grub= +- =bison= +- =dhcpcd= +- =ubase= + +*** Added to Core +:PROPERTIES: +:CUSTOM_ID: added-to-core +:END: +- =bearssl=, as a =libressl= replacement +- =byacc=, as a =bison= replacement + +*** Statically linked +:PROPERTIES: +:CUSTOM_ID: statically-linked +:END: +- =kiss= +- =neatvi= +- =mandoc= +- =byacc= +- =m4= +- =e2fsprogs= +- =make= +- =pkgconf= +- =sbase= +- =libnl= +- =wpa_supplicant= +- =bearssl= + +** Making the wiki available offline +:PROPERTIES: +:CUSTOM_ID: making-the-wiki-available-offline +:END: + +Soon, all documentation regarding Carbs Linux will be avaialable to be installed +from the core repository in a =carbs-docs= package along with its own document +crawler. Currently, the documentation regarding the installation process is a +little outdated which will also receive some important updates. + +** ISO image for Carbs +:PROPERTIES: +:CUSTOM_ID: iso-image-for-carbs +:END: + +I am thinking of releasing an ISO image in order to provide a standardized +environment for installation along with installation helper tools in the spirit +of =arch-install-scripts=. Let's see how that's going to play out. diff --git a/content/blog/20200803.org b/content/blog/20200803.org new file mode 100644 index 0000000..c2c2b6b --- /dev/null +++ b/content/blog/20200803.org @@ -0,0 +1,72 @@ +#+TITLE: August 2020 News Post +#+AUTHOR: Cem Keylan +#+DATE: <2020-08-03 Mon> +#+ALIASES[]: /blog/20200803.html + +We are having some stalls during this summer, as I am currently working on +university-related stuff. Nonetheless, there are some important changes that I +want to share in this month's post. + +#+TOC: headlines 1 local + +** Carbs Packaging Tools +:PROPERTIES: +:CUSTOM_ID: carbs-packaging-tools +:END: + +This month I have reworked =kiss= into a new package manager, now renamed as +=cpt=. Updating =kiss= will now bootstrap the new package manager, so you don't +have to manually edit your system. If you don't like the idea of this, you can +look up the =post-install= script on =core/kiss= and apply the changes manually. + +You will also need to rename your =KISS_*= variables to =CPT_*=. So, =KISS_PATH= +becomes =CPT_PATH=. + +The rework changes the previous commands on the package manager into standalone +tools, and move the package manager functions to a library. This makes it easier +for a user to import functions and variables from the package manager, and +extend the package manager with their own intended way. Previously this required +ugly hacks and workarounds to use the package manager functions. I will be +making use of these changes to re-implement binary package management functions +as well. + +If you want to use the library on your script you can simply do this: + +#+BEGIN_SRC sh +#!/bin/sh +. cpt-lib +(...) +#+END_SRC + +There are obviously some clean-up and simplifications needed in this new +tool-based package management method. + +** Docs +:PROPERTIES: +:CUSTOM_ID: docs +:END: + +I have added documentation for the distribution, and finally updated the guide +for installation. It is now /almost/ complete. These docs can be installed to +your system for online viewing. I will also add a documentation crawler similar +to how werc works (but as an offline viewer). You can find =carbs-docs= from +the repository. Currently, the documentation lacks but I will be adding new +stuff. These will solely be distribution specific documentation and will not be +a wiki-like source. If anyone would like to contribute to a wiki-like +documentation source, I would happily re-open the distribution wiki. You can +find the source on [[https://github.com/CarbsLinux/docs]]. + +** Re-opening the Carbs Linux server +:PROPERTIES: +:CUSTOM_ID: re-opening-the-carbs-linux-server +:END: + +Back in May, I had shutdown the Carbs Linux server due to financial issues, but +I am slowly reverting to the self-hosted model. Back then, the git repositories +were mirrored to GitHub, and the management was overall much more flexible. The +server used to run Carbs Linux as well (that was fun and horrifying at the same +time). Now, I will be relaunching the git server which will be the upstream +source before August 5. You can switch your remote, but GitHub will stay as a +remote nonetheless. + +*EDIT:* The git-server is up! diff --git a/content/blog/20201210.org b/content/blog/20201210.org new file mode 100644 index 0000000..f945dc5 --- /dev/null +++ b/content/blog/20201210.org @@ -0,0 +1,23 @@ +#+TITLE: First Year of Carbs Linux +#+AUTHOR: Cem Keylan +#+DATE: <2020-12-10 Thu> +#+ALIASES[]: /blog/20201210.html + +December 10, 2020 marks the first year after the initial release of Carbs Linux. +When I forked the KISS Linux repository on the 9th of December, I was fairly new +to package management. Carbs Linux used to be almost identical to KISS Linux. A +lot has changed since then: + +- [2020 Jan 13] Replaced default init system to =sinit= +- [2020 Jan 15] Packaged =WebKit2GTK= +- [2020 May 17] Added =bearssl= on the testing repository +- [2020 May 28] Added =rsync= repository support to kiss +- [2020 Jun 03] Replaced =bison= with =byacc= +- [2020 Jun 11] Replaced =libressl= with =bearssl= +- [2020 Jun 24] Replaced =kiss= with =cpt= + +I have really enjoyed maintaining and developing this distribution, and I want +to thank everyone who was involved in some way or another. While I have slowed +down in development due to college workload, I am still actively maintaining all +the packages on the repository. I do have some ideas that I am thinking of +implementing during the semester break. Hope to see you all in January. diff --git a/content/blog/20210303.org b/content/blog/20210303.org new file mode 100644 index 0000000..bf7ad96 --- /dev/null +++ b/content/blog/20210303.org @@ -0,0 +1,84 @@ +#+TITLE: March 2021 News Post +#+DATE: <2021-03-03 Wed> +#+AUTHOR: Cem Keylan +#+ALIASES[]: /blog/20210303.html + +Greetings! I am really happy to announce some few changes to the distribution. I +wanted to write a new blog post to summarise them so you can get up to what is +happening in Carbs Linux. + +#+TOC: headlines 1 local + +** Switching to Sourcehut +:PROPERTIES: +:CUSTOM_ID: switching-to-sourcehut +:END: + +I have been thinking of moving development to [[srht:~carbslinux][Sourcehut]] for a while now. If your +repository remotes reside at GitHub you are encouraged to switch them to +Sourcehut. Mailing lists for discussion, development, and announcements have +also been created for both the distribution, and the package manager using +Sourcehut as the host. See the [[file:../mailing-lists.html][page on mailing lists]] for more information on +subscribing to the mailing lists. + +This does mean that issue trackers now reside at Sourcehut, and I will be +deactivating those in GitHub very soon. I have yet to decide whether on keeping +the mirrors or deactivating them completely, but I will be giving three months +of notice if it is decided to move away from GitHub completely. Regardless, the +main repositories are still hosted at [[https://git.carbslinux.org][our own server]], and I have no intentions +on changing that for the foreseeable future. + +*** State of our own Git repository + +In the near future, I will be moving our git server, and will be opening spots +for other users, who want to make use of the git server. People can use it to +serve their own =cpt= repositories, or personal projects that can be related to +Carbs. I will post an announcement when this will happen, and a blog post that +tells more about the new repository. Expect more by the end of March. + +** Wayland and Dbus +:PROPERTIES: +:CUSTOM_ID: wayland-and-dbus +:END: + +There are new repositories for [[carbs-pkg:dbus/dbus][dbus]], and [[carbs-pkg:wayland/wayland][wayland]], which are still works in +progress. These are meant to be options for those who /request/ it, and are not +meant to be enforced package repositories. For example, any package outside of +the ~dbus~ repository shouldn't require it to work, and shouldn't list it as a +dependency. Packages can still be written using those as optional dependencies. + +This change also raises the question of whether Carbs is ditching Xorg or not. +No, we are not ditching Xorg, Wayland is added as to serve an extra option for +those who don't own graphics cards from some specific manufacturer. + +** Next release for CPT +:PROPERTIES: +:CUSTOM_ID: next-release-for-cpt +:END: + +I had been working on the next major release for the package manager since +December, and it is coming close to completion. This release focuses more on the +library itself, and using the library more effectively on the contrib tools. +Unfortunately, until this time, the library wasn't properly documented, and +there weren't any unit tests for the library. Even though, the changes to the +package manager are close to completion, documentation and tests are what is +holding me from making the next release. + +** Website Update +:PROPERTIES: +:CUSTOM_ID: website-update +:END: + +I have recently updated the website in its entirety so that it looks more +appealing. I have updated the stylesheets and created a [[srht:~carbslinux/carbslinux-style][stylesheet repository]] +and I am planning on extending it to use with other Carbs websites. + +The website is now generated using Emacs [[https://orgmode.org][Org Mode]], and its biggest advantage is +that I can freely write posts without thinking about plaintext output, which +held me back from writing big posts. I have also created a few org-mode link +abbreviations such as the one that let me easily link to packages. There are +also few disadvantages from using this method, which I am hoping to resolve as +moving forward. One of these disadvantages made me remove the generated website +from the git repository, now I generate and serve the website through +~post-receive~ hooks. Once I resolve these, however, I will be adding the =docs= +directory back to the repository. diff --git a/content/blog/20210415.org b/content/blog/20210415.org new file mode 100644 index 0000000..609af88 --- /dev/null +++ b/content/blog/20210415.org @@ -0,0 +1,120 @@ +#+TITLE: April 2021 News Post +#+DATE: <2021-04-15 Thu> +#+AUTHOR: Cem Keylan +#+ALIASES[]: /blog/20210415.html + +Greetings from the cruellest month of the year! We have some important +topics this month that I wanted to share with you. + +#+TOC: headlines 1 local + +** CPT version 6 Release +:PROPERTIES: +:CUSTOM_ID: cpt-version-6-release +:END: + +I have released the version 6 of our package manager and did a few bugfix +releases, which contained a variety of changes made since December. The +[[https://fossil.carbslinux.org/cpt/log][Changelog]] details them on our new Fossil repository, which I will be talking +about more on a later section of this post. + +As I have mentioned on the [[{{}}][previous news post]], I was holding the release for a +few bugfixes, and documentation. The documentation is complete enough to be +shipped, but there are still some things to add. The manual pages, and the +documentation for the user tools, however, are considered complete. + +** New rootfs tarball +:PROPERTIES: +:CUSTOM_ID: new-rootfs-tarball +:END: + +A new tarball has been released after almost 7 months! This tarball targets the +=x86_64= architecture, and can be installed following the instructions. + +*** Signing Releases +:PROPERTIES: +:CUSTOM_ID: signing-releases +:END: + +Releases are now signed with the OpenBSD tool [[https://man.openbsd.org/signify][signify(1)]] instead of GnuPG. There +are two packages on our repository that provide this tool, {{}}, +and {{}}. Debian-based distributions usually provide it +under =signify-openbsd=, and other distributions provide it as just =signify=. +Each release will have a different public key, those can be found on +[[https://dl.carbslinux.org/keys]]. Since the public keys are so small, I will also +be embedding the latest release key to the README file of the package +repository, and the installation manual. + +*** The state of i686 +:PROPERTIES: +:CUSTOM_ID: the-state-of-i686 +:END: + +As you may have noticed, I haven't made a release for the =i686= architecture +this time. I won't be retiring it, but my old laptop, which was the reason I +initially ported Carbs Linux to the architecture in the first place, has stopped +working. I won't be retiring it just now, but I also don't see anyone else +interested in it. If you are interested in taking the maintainership for the +architecture, you can send a mail to the mailing-list. Otherwise, I will be +dropping the architecture by the end of June. + +** Fossil +:PROPERTIES: +:CUSTOM_ID: fossil +:END: + +I have recently been toying around with the alternate version control system, +[[https://fossil-scm.org][Fossil]]. Since no Carbs Linux News Post is complete without some sort of +repository migration[fn:1], the canonical repository of the package manager has +been moved to Fossil on [[https://fossil.carbslinux.org/cpt]]. However, this doesn't +mean that the mailing-list on Sourcehut will be removed, those will be in place +until I decide to serve mailing lists on our own server. + +As time goes on, I am also planning on switching some other repositories to +Fossil as well. I will be switching the Documentation repository next, and the +Package repository when Fossil support is added to the package manager. + +*** Fossil support on the package manager +:PROPERTIES: +:CUSTOM_ID: fossil-support-on-the-package-manager +:END: + +Right now, the package manager supports Git, Mercurial, and Rsync repositories. +I do want to add Fossil repository support, however this might take long to +implement as I will be rewriting the repository backend to simplify and collect +the operations made by the package manager to manage package repositories. + +I'm aiming for a new system that makes it easy and simple to manage repositories +outside of the package manager's scope as well. These changes can be followed +from the [[https://fossil.carbslinux.org/cpt/timeline?r=repository-backend][repository-backend]] branch, which as of the time of writing this blog +post, contains no new check-ins, and specifically the status of Fossil support +can be tracked from [[https://fossil.carbslinux.org/cpt/tktview?name=b354510bc3][this ticket]]. + +** Switching back to LibreSSL +:PROPERTIES: +:CUSTOM_ID: switching-back-to-libressl +:END: + +This is the 4th time Carbs Linux is switching SSL providers, but I am planning +on this to be the final change for the foreseeable future. The reason behind +this change is pragmatism. Even though BearSSL is sufficient enough to run the +base, some essential packages (such as Python for its SSL module) depended on +LibreSSL, meaning that using LibreSSL was mandatory if you weren't simply using +the bare-minimum. Using 2 separate SSL libraries is pointless when you have the +option to easily use a single one. + +** Consistent communication +:PROPERTIES: +:CUSTOM_ID: consistent-communication +:END: + +I have decided to be more consistent on these news posts, I will try to make +these every 15th of the month. I have also recently came back to IRC to be as +active as possible. At least I can always be reached by mail, if all else fails! + +See you on the next post! + +** Footnotes + +[fn:1] "No mention of openbsd on the internet is complete without a long thread +about source control migration." -- tedu@ [[https://gameoftrees.org]] diff --git a/content/blog/20210525.org b/content/blog/20210525.org new file mode 100644 index 0000000..ecbd070 --- /dev/null +++ b/content/blog/20210525.org @@ -0,0 +1,50 @@ +#+TITLE: May 2021 News Post +#+DATE: 2021-05-25 +#+AUTHOR: Cem Keylan +#+ALIASES[]: /blog/20210525.html + +Welcome to May! It has been a rather quiet month, mostly dedicated to fixing +some small bugs and working on some features. + +#+TOC: headlines 1 local + +** Fossil support and new repository backend +:PROPERTIES: +:CUSTOM_ID: fossil-support +:END: + +In the [[{{< relref "20210415.org#fossil" >}}][previous news post]] I mentioned adding fossil support to the package +manager. Fossil support is now merged to the trunk branch of the package +manager, and I have completely rewritten the repository backend which has +better performance and is easier to extend. There are still some changes to +make, but the feature will be added in the =6.1.0= release. + +** Moving IRC channel +:PROPERTIES: +:CUSTOM_ID: moving-irc-channel +:END: + +After the recent controversies surrounding Freenode, we have also switched to +the new Libera IRC network. Since our previous logger =globbot= is also shutting +down, I have set up an IRC logger powered by [[https://git.causal.agency/litterbox][litterbox]]. The IRC logs can be +found on [[https://irclogs.carbslinux.org]]. The website includes both a searchable +web interface, and plaintext dumps of daily logs. Even though the channel is +low-volume, I think logging it is extremely important. + +** New i686 release +:PROPERTIES: +:CUSTOM_ID: new-i686-release +:END: + +I have decided to make an i686 release last week because it was really outdated, +but it will likely be the last one depending on its use on the few following +months. If you are interested in keeping support for the architecture, feel free +to join the IRC channel to let me know. Maintaining i686 isn't really much of a +burdon on me, but there is no point in maintaining an architecture that isn't +used by anyone. + +Compared to the last month, there aren't much news, and there have been other +things that I needed to attend to. I started writing this post on the 13th, and +only had the time to finish it now! + +See you on the next post! diff --git a/content/blog/20210630.org b/content/blog/20210630.org new file mode 100644 index 0000000..48611ac --- /dev/null +++ b/content/blog/20210630.org @@ -0,0 +1,15 @@ +#+TITLE: June 2021 News Post +#+DATE: 2021-06-30 +#+AUTHOR: Cem Keylan +#+ALIASES[]: /blog/20210630.html + +Hello! This month was rather slow for me while I was mostly away for some +vacation and I had some connectivity issues. I mostly tried to keep the packages +up to date, and to keep up with the IRC channel as I've had some issues with the +new logger we are using in the channel. I have very recently returned to home, +and I'm mostly working on with the next release of the package manager. + +Hopefully, next month will be more newsworthy as I will take my time to work on +the new package repository backend, and document its features. + +See you on the next post! diff --git a/content/blog/20210831.org b/content/blog/20210831.org new file mode 100644 index 0000000..f39a3c9 --- /dev/null +++ b/content/blog/20210831.org @@ -0,0 +1,26 @@ +#+TITLE: August 2021 News Post +#+DATE: 2021-08-31 +#+AUTHOR: Cem Keylan +#+DRAFT: true + +After a long absence during the summer, I think it's the appropriate time to +write a new blog post about the changes that arrived to the distribution. + +#+TOC: headlines 1 local + +* Repository meta file + +You might have noticed that most packages now contain a file named =meta=. This +file contains a small description, license for the package, and the maintainer +information of the package. A sample meta file looks like the following: + +#+begin_example +description = Carbs Packaging Tools +license = MIT +maintainer = Cem Keylan +#+end_example + + +* TODO motd file +* TODO kiss compatibility +* TODO linux-headers diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..a2797a4 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,5 @@ +--- +title: Blog Index +--- + +This is the Carbs Linux blog index. You can find every post here. diff --git a/content/docs.org b/content/docs.org new file mode 100644 index 0000000..5737f51 --- /dev/null +++ b/content/docs.org @@ -0,0 +1,119 @@ +#+TITLE: Documentation +#+ALIASES[]: /docs.html + +Below are sources of documentation regarding Carbs Linux and tools surrounding +it. + +#+TOC: headlines 1 + +* User Manual +:PROPERTIES: +:CUSTOM_ID: user-manual +:END: + +Carbs Linux User Manual aims to be a general-purpose explanation of the +distribution, from the installation steps to the style guide of the project. It +can be accessed or otherwise obtained with various methods: + +** HTML +:PROPERTIES: +:CUSTOM_ID: html +:END: + +You can view the Manual from your browser. The Manual can be viewed as + +- [[file:/docs/carbslinux/][One HTML page per node]] +- [[/docs/carbslinux.html][Single HTML page]] + +** Plain text +:PROPERTIES: +:CUSTOM_ID: plain-text +:END: + +You can download [[/docs/carbslinux.txt][carbslinux.txt]] in order to view the Manual from your preferred +pager. + +#+begin_src sh +curl -LO https://carbslinux.org/docs/carbslinux.txt +less carbslinux.txt +#+end_src + +** Info +:PROPERTIES: +:CUSTOM_ID: info +:ORDERED: t +:END: + +You can install the =carbs-docs= package and either =texinfo= or =info= packages +to view the Manual offline. + +#+begin_src sh +cpt bi info carbs-docs +info carbslinux +#+end_src + +** Source +:PROPERTIES: +:CUSTOM_ID: source +:END: + +You can also acquire the source for generating the Manual, which requires +=emacs= for exporting the Org-mode documentation and =texinfo= for generating +html/info pages. + +#+begin_src sh +git clone https://git.carbslinux.org/docs +#+end_src + +* Installation Instructions +:PROPERTIES: +:CUSTOM_ID: installation-instructions +:END: + +Installation Manual is part of the [[*User Manual][User Manual]], but it can also be obtained +separately: + +- [[/install/][HTML]] +- [[/install.txt][Plaintext]] + +* Carbs Packaging Tools +:PROPERTIES: +:CUSTOM_ID: carbs-packaging-tools +:END: + +CPT User Manual has the implementation details of the package manager utilities. +It can be accessed or otherwise obtained with various methods: + +** HTML +:PROPERTIES: +:CUSTOM_ID: cpt-html +:END: + +You can view the Manual from your browser. The Manual can be viewed as + +- [[/docs/cpt/][One HTML page per node]] +- [[/docs/cpt.html][Single HTML page]] + +** Plain text +:PROPERTIES: +:CUSTOM_ID: cpt-plain-text +:END: + +You can download [[/docs/cpt.txt][cpt.txt]] in order to view the Manual from your preferred pager. + +#+begin_src sh +curl -LO https://carbslinux.org/docs/cpt.txt +less cpt.txt +#+end_src + +** Info +:PROPERTIES: +:CUSTOM_ID: cpt-info +:END: + +Info page for CPT is included in the tarball, which can be read offline by +installing either =texinfo= or =info= packages. + +#+begin_src sh +info cpt +#+end_src diff --git a/content/download.org b/content/download.org new file mode 100644 index 0000000..7445ad4 --- /dev/null +++ b/content/download.org @@ -0,0 +1,23 @@ +#+TITLE: Download +#+ALIASES[]: /download.html + +* Download Carbs Linux + +Below are the latest tarballs for the =x86_64= and =i686= architectures. You can +visit [[https://dl.carbslinux.org/releases]] for all downloads. Follow the +[[file:/install.org][Installation guide]] to learn more about verifying the releases, and the required +steps for installing the system. + +* x86-64 +:PROPERTIES: +:CUSTOM_ID: x86-64 +:END: + +[[https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz][carbs-rootfs.tar.xz]] | [[https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sha256][SHA256SUM]] | [[https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sig][Signature]] + +* i686 +:PROPERTIES: +:CUSTOM_ID: i686 +:END: + +[[https://dl.carbslinux.org/releases/i686/carbs-rootfs.tar.xz][carbs-rootfs.tar.xz]] | [[https://dl.carbslinux.org/releases/i686/carbs-rootfs.tar.xz.sha256][SHA256SUM]] | [[https://dl.carbslinux.org/releases/i686/carbs-rootfs.tar.xz.sig][Signature]] diff --git a/content/install.org b/content/install.org new file mode 100644 index 0000000..19397fc --- /dev/null +++ b/content/install.org @@ -0,0 +1,352 @@ +# Created 2021-08-14 Sat 17:54 +#+TITLE: Carbs Linux Installation Guide +#+AUTHOR: Cem Keylan +These are the step-by-step instructions for installing Carbs Linux. It can be +acquired as plain-text to be viewed offline with a pager from +[[https://carbslinux.org/install.txt]]. + +#+begin_src sh + curl -sL https://carbslinux.org/install.txt | less +#+end_src + +#+toc: headlines 3 local +* Preparing Environment +To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you +can obtain a Gentoo or Void Linux live image. You can follow their instructions +to boot and setup your network. + +You will need the following programs in order to install Carbs Linux: + +- tar +- wget +- xz +- some form of base utilities (coreutils, sbase, busybox, etc.) + +Rest of these instructions will assume that you have set all of these up, and +will continue on that point. + +** Download +First, we need to download the rootfs tarball. You can do the following in order +to obtain the rootfs. If you are using an i686 machine, replace the =x86_64= +with =i686=. We are setting this in a URL variable so that we don't have to +write it every time. + +#+begin_src sh + URL=https://dl.carbslinux.org/releases/x86_64 + wget $URL/carbs-rootfs.tar.xz.sha256 + sha256sum -c carbs-rootfs.tar.xz.sha256 +#+end_src + +** Signature verification +It is highly recommended to verify the signature of the tarball. You will need +the OpenBSD tool =signify(1)= for this. Many distributions provide a package for +it, if you are using a Carbs Linux host, you can also install the package +=otools= which provides =signify=. Download the signature first. + +#+begin_src sh + wget $URL/carbs-rootfs.tar.xz.sig +#+end_src + +The signature file should say something similar to + +#+results: +: untrusted comment: verify with carbslinux-2021.08.pub +: RWTK4GFDD7JiohUHBeJXuKw+/P3K4ZRR8jQud0iOxNDbn7WCFxQsxt9FUNSEiXfLjkm1Ez8c3esRG8oydrsFUFpBGtekFt5obgo= + + +Grab the key (which probably should be the latest one) that is written on the +file from [[https://dl.carbslinux.org/keys/]] so you can verify the signature. The +latest Signify public key is also available on the [[https://git.carbslinux.org/repository][package repository]], so you can +check the validity of the public key from multiple locations, or just copy paste +that portion to a file and use that instead. + +#+begin_src sh + PUBKEY=carbslinux-2021.08.pub + wget https://dl.carbslinux.org/keys/$PUBKEY +#+end_src + +You can now verify the distribution tarball with signify. + +#+begin_src sh + signify -V -m carbs-rootfs.tar.xz -p $PUBKEY +#+end_src + +If everything went alright, this should output: + +#+begin_example + Signature Verified +#+end_example + + + +** Extracting the tarball +You will need to extract the tarball to your desired location. For partitioning, +you can follow [[https://wiki.archlinux.org/index.php/Partitioning][this guide]]. This will assume that you will be mounting your root +partition to =/mnt=. + +#+begin_src sh + mount /dev/sdx1 /mnt + tar xf carbs-rootfs.tar.xz -C /mnt +#+end_src + +* Chroot +Chroot into Carbs Linux by running the chroot helper inside the rootfs! + +#+begin_src sh + /mnt/bin/cpt-chroot /mnt +#+end_src + +** Setting up repositories +Newest tarballs do not come with repositories, so you will need to manually +obtain them, and set your =CPT_PATH= environment variable. Carbs Linux +repositories can either be obtained by =git= or =rsync=. While rsync +repositories are overall faster and smaller, git offers the whole history of the +repository and a means to manipulate your repository as you like it. If you want +to obtain the git repository, you will need to install =git= itself. + +The following guide will assume that you put the repositories into =~/repos/= +directory, but you can put the repositories into any directory you want. So go +ahead and create that directory: + +#+begin_src sh + mkdir -p $HOME/repos +#+end_src + +*** Obtaining from git + +Carbs Linux git repositories can be found both from the main server and GitHub +(mirror). Here are both their repository links. You can clone any of them. + +- https://git.carbslinux.org/repository +- https://git.sr.ht/~carbslinux/repository + +#+begin_src sh + git clone git://git.carbslinux.org/repository $HOME/repos/carbs +#+end_src + +*** Obtaining from rsync + +Carbs Linux rsync repositories live in rsync://carbslinux.org/repo. In +order to obtain it, run the following: + +#+begin_src sh + rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs +#+end_src + +*** Making the package manager use the repositories + +In your shell's configuration file, or in your =~/.profile= file, add the +following lines: + +#+begin_src sh + CPT_PATH=$HOME/repos/carbs/core + CPT_PATH=$CPT_PATH:$HOME/repos/carbs/extra + CPT_PATH=$CPT_PATH:$HOME/repos/carbs/xorg + CPT_PATH=$CPT_PATH:$HOME/repos/carbs/community + export CPT_PATH +#+end_src + +** Updating packages +It is good practice to make sure your system is up to date, especially before +building new packages. If there is an update for the package manager you will +need to update twice. + +#+begin_src sh + cpt-update && cpt-update +#+end_src + +** Installing packages +Since you are operating on a really small base, you might need to build and +install new programs to extend the functionality of your system. In order to +build and install packages new packages in Carbs, you need to execute the +following. "Package" is not actually a package and is given as an example. + +#+begin_src sh + cpt-build package + cpt-install package +#+end_src + +** Essential Software +Here is a small list of software that you might want to have on your system as +you are setting up. You might want to check the *Software* section in the full +documentation to learn more about other packaged software. + +*BOOTLOADERS* + +- efibootmgr +- grub + +*FILESYSTEMS* + +- e2fsprogs +- dosfstools +- ntfs-3g + +*NETWORKING* + +- dhcpcd +- wpa_supplicant + +*TEXT EDITORS* + +- nano +- vim + +*DOCUMENTATION* + +- carbs-docs +- man-pages +- man-pages-posix + +** Obtaining the documentation +All the documentation for Carbs Linux can be found on a single info manual to be +viewed offline. You can obtain either =texinfo= or the =info= packages in order +to view the documentation. + +#+begin_src sh + # Install the documentation. + cpt b carbs-docs && cpt i carbs-docs + + # Install either texinfo or the info package. We will be installing standalone info + # as it doesn't need perl. + cpt b info && cpt i info + + # You can then run info and navigate through the documentation. + info carbslinux +#+end_src + +* System Configuration +After you have finished installing some extra packages, you can configure your +system to your liking. + +** Configuring hostname +You might want to add a hostname, especially in a networked environment. Your +hostname will default to 'carbslinux' unless you set this. + +#+begin_src sh + echo your-hostname > /etc/hostname +#+end_src + +** Hosts file +You can edit your /etc/hosts file, which is the static lookup table for host +names. By default, there are two entries for localhost which are OKAY. You can +replace the 'localhost' part of these entries to your hostname. + +#+begin_example + 127.0.0.1 localhost.localdomain localhost + ::1 localhost.localdomain localhost ip6-localhost +#+end_example + +* Kernel +Kernel isn't managed under the main repositories, even though you could package +one for your personal use. Here is an [[https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux][example kernel package]], which you will +need to reconfigure for your specific setup if you want to make use of it. + +** Obtaining the kernel sources +You can visit the [[https://kernel.org]] website to choose a kernel that you want +to install. Though only the latest stable and longterm (LTS) versions are +supported. + +#+begin_src sh + # Download the kernel and extract it + wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz + tar xf linux-5.9.1.tar.xz + + # Change directory into the kernel sources + cd linux-5.9.1 +#+end_src + +** Kernel dependencies +In order to compile the kernel you will need to install some dependencies. You +will need =libelf=, and =bison= to compile the kernel. If you want to configure +using the menu interface you will also need =ncurses=. + +#+begin_src sh + # The package manager asks to install if you are building more than one package, + # so no need to run 'cpt i ...' + cpt b libelf ncurses +#+end_src + +In the vanilla kernel sources, you need perl to compile the kernel, but it can +be easily patched out. You will need to apply the following patch. Patch was +written by [[https://github.com/E5ten][E5ten]]. You will need to obtain and apply the patch in the kernel +source directory. + +#+begin_src sh + wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch + patch -p1 < kernel-no-perl.patch +#+end_src + +** Building the kernel +Next step is configuring and building the kernel. You can check Gentoo's +[[https://wiki.gentoo.org/wiki/Kernel/Configuration][kernel configuration guide]] to learn more about the matter. Overall, Gentoo Wiki +is a good place to learn about configuration according to your hardware. The +following will assume a monolithic kernel. + +#+begin_src sh + make menuconfig + make + install -Dm755 $(make -s image_name) /boot/vmlinuz-linux +#+end_src + +* Making your system bootable +In order to be able to boot your fresh system, wou will need an init-daemon, +init-scripts and a bootloader. The init daemon is already provided by busybox, +but you can optionally change it. + +** Bootloader +In the main repository, there is efibootmgr and grub to serve as bootloaders. +efibootmgr can be used as a standalone bootloader, or can be used to install +grub in a UEFI environment. efibootmgr is needed unless you are using a device +without UEFI support (or you really want to use BIOS for a reason). + +*** GRUB BIOS installation + +#+begin_src sh + cpt b grub && cpt i grub + grub-install --target=i386-pc /dev/sdX + grub-mkconfig -o /boot/grub/grub.cfg +#+end_src + +*** GRUB UEFI installation + +#+begin_src sh + cpt b efibootmgr && cpt i efibootmgr + cpt b grub && cpt i grub + + grub-install --target=x86_64-efi \ + --efi-directory=esp \ + --bootloader-id=CarbsLinux + + grub-mkconfig -o /boot/grub/grub.cfg +#+end_src + +** Init scripts +Only thing left to do is installing the init-scripts, and now you are almost +ready to boot your system! + +#+begin_src sh + cpt b carbs-init && cpt i carbs-init +#+end_src + +** Fstab +You can now manually edit your fstab entry, or you can use the genfstab tool. +If you want to use the tool, exit the chroot and run the following: + +#+begin_src sh + wget https://github.com/cemkeylan/genfstab/raw/master/genfstab + chmod +x genfstab + ./genfstab -U /mnt >> /mnt/etc/fstab +#+end_src + +* Post-installation +The base installation is now complete, you can now fine tune your system +according to your needs. Rest of these instructions are completely optional. +You can check the rest of the documentation to learn more about the system. + +** KISS repositories +There have been recent changes to the =kiss= package manager that breaks +compatibility with =cpt=. These changes throw away the entire premise of their +"static" packaging system. =cpt= will never implement those changes, so don't +expect any KISS package that was changed during or after July 2021 to work with +=cpt=. diff --git a/content/mailing-lists.org b/content/mailing-lists.org new file mode 100644 index 0000000..c33848e --- /dev/null +++ b/content/mailing-lists.org @@ -0,0 +1,24 @@ +#+TITLE: Mailing Lists + +Carbs Linux aims to move the development and discussion to mailing lists as much +as possible, using the mailing lists hosted at [[https://lists.sr.ht/~carbslinux][Sourcehut]]. The following mailing +lists are available for subscription: + +- [[https://lists.sr.ht/~carbslinux/carbslinux-devel][~carbslinux/carbslinux-devel]] +- [[https://lists.sr.ht/~carbslinux/carbslinux-discuss][~carbslinux/carbslinux-discuss]] +- [[https://lists.sr.ht/~carbslinux/carbslinux-announce][~carbslinux/carbslinux-announce]] +- [[https://lists.sr.ht/~carbslinux/cpt-devel][~carbslinux/cpt-devel]] +- [[https://lists.sr.ht/~carbslinux/cpt-discuss][~carbslinux/cpt-discuss]] +- [[https://lists.sr.ht/~carbslinux/cpt-announce][~carbslinux/cpt-announce]] + +If you want to subscribe to any of these mailing lists, send an empty mail to +one of these mailing lists in the following format: + +#+begin_example +listname+subscribe@lists.sr.ht + +~carbslinux/carbslinux-announce+subscribe@lists.sr.ht +#+end_example + +You are really encouraged to subscribe to the announcement mailing list +=~carbslinux/carbslinux-announce=. diff --git a/content/news/20191210.org b/content/news/20191210.org new file mode 100644 index 0000000..af7a540 --- /dev/null +++ b/content/news/20191210.org @@ -0,0 +1,4 @@ +#+TITLE: Dec 10, 2019 +#+DATE: <2019-12-10 Tue> + +First alpha release was made. See the [[https://dl.carbslinux.org/releases][downloads page]]. diff --git a/content/news/20191212.org b/content/news/20191212.org new file mode 100644 index 0000000..2f66b54 --- /dev/null +++ b/content/news/20191212.org @@ -0,0 +1,6 @@ +#+TITLE: Dec 12, 2019 +#+DATE: <2019-12-12 Thu> + +Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories. + diff --git a/content/news/20191217.org b/content/news/20191217.org new file mode 100644 index 0000000..dc10d75 --- /dev/null +++ b/content/news/20191217.org @@ -0,0 +1,5 @@ +#+TITLE: Dec 17, 2019 +#+DATE: <2019-12-17 Tue> + +Installation instruction are now complete. A review would be greatly appreciated! + diff --git a/content/news/20191218.org b/content/news/20191218.org new file mode 100644 index 0000000..5184fec --- /dev/null +++ b/content/news/20191218.org @@ -0,0 +1,4 @@ +#+TITLE: Dec 18, 2019 +#+DATE: <2019-12-18 Wed> + +carbs-rootfs-20191218.tar.xz was released. diff --git a/content/news/20200109.org b/content/news/20200109.org new file mode 100644 index 0000000..8804729 --- /dev/null +++ b/content/news/20200109.org @@ -0,0 +1,13 @@ +#+TITLE: Jan 09, 2020 +#+DATE: <2020-01-09 Thu> + +Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things. + +Important things are, + +- Carbs-init was updated to 0.3. +- I will be adding an implementation of suckless.org's [[https://core.suckless.org/sinit][sinit]] as =carbs-sinit= +- Carbs Repository was added to [[https://repology.org/repository/carbs][repology.org]] +- A new rootfs tarball will be coming up tomorrow. diff --git a/content/news/20200110.org b/content/news/20200110.org new file mode 100644 index 0000000..c71f61b --- /dev/null +++ b/content/news/20200110.org @@ -0,0 +1,4 @@ +#+TITLE: Jan 10, 2020 +#+DATE: <2020-01-10 Fri> + +carbs-rootfs-20200110.tar.xz was released. diff --git a/content/news/20200113.org b/content/news/20200113.org new file mode 100644 index 0000000..44f157a --- /dev/null +++ b/content/news/20200113.org @@ -0,0 +1,23 @@ +#+TITLE: Jan 13, 2020 +#+DATE: <2020-01-13 Mon> + +**Busybox update reqires manual intervention** + +The new busybox package conflicts with the pre-update busybox-init. That's why +you should rebuild and install `busybox-init` before doing the update. + +#+BEGIN_SRC sh +# Do a kiss update first (but don't actually update it yet), or manually pull +# the git repository +kiss u # Cancel this operation after it asks for you to confirm the update + +# Install the busybox-init package +kiss b busybox-init && kiss i busybox-init + +# Continue your update as you normally would. +kiss u + +#+END_SRC + +I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts. diff --git a/content/news/20200115.org b/content/news/20200115.org new file mode 100644 index 0000000..9d3bcc3 --- /dev/null +++ b/content/news/20200115.org @@ -0,0 +1,4 @@ +#+TITLE: Jan 15, 2020 +#+DATE: <2020-01-15 Wed> + +sinit has been taken to =core=, and is now officially supported diff --git a/content/news/20200122.org b/content/news/20200122.org new file mode 100644 index 0000000..009405e --- /dev/null +++ b/content/news/20200122.org @@ -0,0 +1,5 @@ +#+TITLE: Jan 22, 2020 +#+DATE: <2020-01-22 Wed> + +Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating this web server +to my Carbs Linux server! diff --git a/content/news/20200128.org b/content/news/20200128.org new file mode 100644 index 0000000..c13e72e --- /dev/null +++ b/content/news/20200128.org @@ -0,0 +1,10 @@ +#+TITLE: Jan 28, 2020 +#+DATE: <2020-01-28 Tue> + +Web Server is now on a Carbs Linux server. It is not complete yet, but I will be +adding a little more for the intended functionality. Downtimes can be expected. + +UPDATE: ssl is now working. + +UPDATE2: downloads are back again. + diff --git a/content/news/20200213.org b/content/news/20200213.org new file mode 100644 index 0000000..65a2ab1 --- /dev/null +++ b/content/news/20200213.org @@ -0,0 +1,6 @@ +#+TITLE: Feb 13, 2020 +#+DATE: <2020-02-13 Thu> + +Runit is now released on the core repository! You can now replace busybox-init +with runit-init. You can also replace the busybox runit utilities with the +actual runit. This will reduce the dependency on busybox greatly. diff --git a/content/news/20200214.org b/content/news/20200214.org new file mode 100644 index 0000000..90b805d --- /dev/null +++ b/content/news/20200214.org @@ -0,0 +1,50 @@ +#+TITLE: Feb 14, 2020 +#+DATE: <2020-02-14 Fri> + +**IMPORTANT!** Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention. + +#+BEGIN_SRC sh +# There is an explanation for each init You only need to follow the instructions +# for your own init-system + +## busybox-init +# If you did not edit your inittab simply move inittab.new to inittab +mv /etc/inittab.new /etc/inittab + +# If you did edit your inittab you can use a simple sed command to remove the +# necessary lines +sed -i '/getty/d;/runsvdir/d' /etc/inittab + + +## runit +# same as busybox-init, if you did not edit /etc/runit/2 move 2.new to 2 +mv /etc/runit/2.new /etc/runit/2 + +# else +vim /etc/runit/2 +# open your 2 file and remove the for loop containing getty commands. If you are +# using runit, it is recommended to comment out /etc/init/runit.boot + +## sinit/minit +# If you did not edit your {sinit-,}launch-services.boot you can simply remove +# it. +rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot + +# This should leave you without any issues, and you can safely reboot. +#+END_SRC + +Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side. + +To give an example, before this update busybox-init was managing getty +through =inittab=, runit was managing through =/etc/runit/2=, and +minit/sinit were launching from =/etc/init/launch-services.boot=. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update. + diff --git a/content/news/20200218.org b/content/news/20200218.org new file mode 100644 index 0000000..5ea71af --- /dev/null +++ b/content/news/20200218.org @@ -0,0 +1,10 @@ +#+TITLE: Feb 18, 2020 +#+DATE: <2020-02-18 Tue> + +A new tarball is released. It can be found on [[https://dl.carbslinux.org]]. + +**edit:** I have removed the tarball because of a bootstrapping issue. I will be +re-adding it later today. + +**edit 2:** I have added a tarball (20200219) to reflect my recent changes on +Busybox. diff --git a/content/news/20200405.org b/content/news/20200405.org new file mode 100644 index 0000000..716f669 --- /dev/null +++ b/content/news/20200405.org @@ -0,0 +1,14 @@ +#+TITLE: Apr 05, 2020 +#+DATE: <2020-04-05 Sun> + +Carbs Linux repositories will be hosted only on Github. Commits will be pushed +there, and not the repository. You have until May 4, 2020 Monday to switch your +remotes to [[https://github.com/CarbsLinux/repository]]. The git repository will +continue to be served until then (without additional commits). + +You can switch your remote by executing the following command on your repository +directory. + +#+BEGIN_SRC sh +git remote set-url origin https://github.com/CarbsLinux/repository +#+END_SRC diff --git a/content/news/20200406.org b/content/news/20200406.org new file mode 100644 index 0000000..e2810d1 --- /dev/null +++ b/content/news/20200406.org @@ -0,0 +1,4 @@ +#+TITLE: Apr 06, 2020 +#+DATE: <2020-04-06 Mon> + +A new rootfs tarball has been released. See the downloads page. diff --git a/content/news/20200410.org b/content/news/20200410.org new file mode 100644 index 0000000..b51657b --- /dev/null +++ b/content/news/20200410.org @@ -0,0 +1,4 @@ +#+TITLE: Apr 10, 2020 +#+DATE: <2020-04-10 Fri> + +IRC channel can now be accessed from =#carbslinux= at freenode! diff --git a/content/news/20200427.org b/content/news/20200427.org new file mode 100644 index 0000000..4df269e --- /dev/null +++ b/content/news/20200427.org @@ -0,0 +1,7 @@ +#+TITLE: Apr 27, 2020 +#+DATE: <2020-04-27 Mon> + +A new rootfs tarball has been released! You can see it on +[[https://dl.carbslinux.org/releases]]! + +**EDIT:** A new bug fix release has been made. diff --git a/content/news/20200510.org b/content/news/20200510.org new file mode 100644 index 0000000..dcdd408 --- /dev/null +++ b/content/news/20200510.org @@ -0,0 +1,7 @@ +#+TITLE: May 10, 2020 +#+DATE: <2020-05-10 Sun> + +A GCC 10.1.0 change causes a kernel panic for kernels built with GCC 10.1. This +issue can be resolved by applying this [[https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/patch/?id=f670269a42bfdd2c83a1118cc3d1b475547eac22][patch]] to your kernel sources. + +**EDIT:** The patch is no longer necessary. diff --git a/content/news/20200519.org b/content/news/20200519.org new file mode 100644 index 0000000..52b555e --- /dev/null +++ b/content/news/20200519.org @@ -0,0 +1,5 @@ +#+TITLE: May 19, 2020 +#+DATE: <2020-05-19 Tue> + +A rootfs tarball targeting the i686 architecture has been released. It can be +found on the downloads page. diff --git a/content/news/20200526.org b/content/news/20200526.org new file mode 100644 index 0000000..2a3658f --- /dev/null +++ b/content/news/20200526.org @@ -0,0 +1,5 @@ +#+TITLE: May 26, 2020 +#+DATE: <2020-05-26 Tue> + +An initial version for binary package management is released. It can be found on +the [[https://github.com/CarbsLinux/kiss-bin][GitHub page]]. diff --git a/content/news/20200617.org b/content/news/20200617.org new file mode 100644 index 0000000..5872e15 --- /dev/null +++ b/content/news/20200617.org @@ -0,0 +1,5 @@ +#+TITLE: Jun 17, 2020 +#+DATE: <2020-06-17 Wed> + +A new rootfs tarball including the changes to the core is released and can be +found on the downloads page. diff --git a/content/news/20200727.org b/content/news/20200727.org new file mode 100644 index 0000000..0309b12 --- /dev/null +++ b/content/news/20200727.org @@ -0,0 +1,7 @@ +#+TITLE: Jul 27, 2020 +#+DATE: <2020-07-27 Mon> + +Carbs Linux's fork of the =kiss= package manager has been renamed to =Carbs +Packaging Tools= due to huge amount of changes. Your latest =kiss= update will +handle the bootstrapping. You will need to rename your =KISS-*= variables to +=CPT-*=. diff --git a/content/news/20200903.org b/content/news/20200903.org new file mode 100644 index 0000000..6cd120b --- /dev/null +++ b/content/news/20200903.org @@ -0,0 +1,6 @@ +#+TITLE: Sep 03, 2020 +#+DATE: <2020-09-03 Thu> + +The default TLS provider has been reverted to =libressl=. System update will +replace bearssl dependencies with libressl. You may choose to keep or remove +bearssl after the update. diff --git a/content/news/20200916.org b/content/news/20200916.org new file mode 100644 index 0000000..cf2dc7d --- /dev/null +++ b/content/news/20200916.org @@ -0,0 +1,6 @@ +#+TITLE: Sep 16, 2020 +#+DATE: <2020-09-16 Wed> + +The libressl "revert" was reverted. System update will replace libressl +dependencies with bearssl. You may choose to keep or remove bearssl after the +update. diff --git a/content/news/20210228.org b/content/news/20210228.org new file mode 100644 index 0000000..b7efc19 --- /dev/null +++ b/content/news/20210228.org @@ -0,0 +1,5 @@ +#+TITLE: Feb 28, 2021 +#+DATE: <2021-02-28 Sun> + +Mailing lists for Carbs Linux has changed, see [[file:../mailing-lists.html][the mailing lists section]] for +more information on subscribing and list information. diff --git a/content/news/20210304.org b/content/news/20210304.org new file mode 100644 index 0000000..f6bc7ca --- /dev/null +++ b/content/news/20210304.org @@ -0,0 +1,6 @@ +#+TITLE: Mar 04, 2021 +#+DATE: <2021-03-04 Thu> + +Our own git server might stay outdated as it is switching to the new server. +Outages should be expected until the end of this week. You can temporarily +switch to the [[srht:~carbslinux][mirrors on Sourcehut]] to avoid repository issues. diff --git a/content/news/20210308.org b/content/news/20210308.org new file mode 100644 index 0000000..7ea693b --- /dev/null +++ b/content/news/20210308.org @@ -0,0 +1,5 @@ +#+TITLE: Mar 08, 2021 +#+DATE: <2021-03-08 Mon> + +Our [[https://git.carbslinux.org][Git repositories]] are back up, and you can switch your remotes back to them, +if that's your preferred method. diff --git a/content/news/20210401.org b/content/news/20210401.org new file mode 100644 index 0000000..0f03923 --- /dev/null +++ b/content/news/20210401.org @@ -0,0 +1,5 @@ +#+TITLE: Apr 01, 2021 +#+DATE: <2021-04-01 Thu> + +After long consideration, Carbs Linux has again switched from BearSSL to +LibreSSL for good. diff --git a/content/news/20210406.org b/content/news/20210406.org new file mode 100644 index 0000000..4235157 --- /dev/null +++ b/content/news/20210406.org @@ -0,0 +1,9 @@ +#+TITLE: Apr 06, 2021 +#+DATE: <2021-04-06 Tue> + +A new rootfs tarball has been released, but the signature verification method +has been switched to [[http://man.openbsd.org/signify][signify(1)]] from GnuPG. The latest public key can be +retrieved from [[https://dl.carbslinux.org/keys]]. Many distributions provide the +signify tool, and Carbs Linux provides it by either the [[carbs-pkg:extra/signify][signify]] or the [[carbs-pkg:core/otools][otools]] +packages. Installation instructions and the user manual will be updated tomorrow +to reflect upon this change. diff --git a/content/news/20210522.org b/content/news/20210522.org new file mode 100644 index 0000000..ed90e1b --- /dev/null +++ b/content/news/20210522.org @@ -0,0 +1,4 @@ +#+TITLE: May 22, 2021 +#+DATE: <2021-05-22 Sat> + +The IRC channel '#carbslinux' has moved to [[https://libera.chat][libera.chat]]. diff --git a/content/people.org b/content/people.org new file mode 100644 index 0000000..4f2fc8f --- /dev/null +++ b/content/people.org @@ -0,0 +1,3 @@ +#+TITLE: People + +- Cem Keylan - Founder [[mailto:cem@carbslinux.org][cem@carbslinux.org]] diff --git a/content/sources.org b/content/sources.org new file mode 100644 index 0000000..bf09ebe --- /dev/null +++ b/content/sources.org @@ -0,0 +1,32 @@ +#+TITLE: Sources and Projects +* Sources and Projects + +All distribution specific tooling and source can be found from either the Fossil +repositories or the relevant Git repositories. I am planning to eventually move +all the source repositories to Fossil, including the package repositories. You +can click the following links to visit source repositories. + +- https://git.carbslinux.org +- https://fossil.carbslinux.org +- https://git.sr.ht/~carbslinux (Git mirror) + +** Package Repositories + +Package repositories currently reside in our git server, they can be obtained +from the places below: + +- https://git.carbslinux.org/repository +- [[https://git.sr.ht/~carbslinux/repository]] (mirror) +- [[https://github.com/CarbsLinux/repository]] (mirror) + +However, it is planned to migrate the package repositories to Fossil at a later +date. + +** Carbs Packaging Tools + +CPT is the package management tools of Carbs Linux. The canonical source for the +package manager is in Fossil, but they are also mirrored to git: + +- https://fossil.carbslinux.org/cpt +- https://git.carbslinux.org/cpt (mirror) +- https://git.sr.ht/~carbslinux/cpt (mirror) -- cgit v1.2.3