kisscommunity

kisscommunity.bvnf.space site sources
git clone git://bvnf.space/home/kiss/kisscommunity.git
Log | Files | Refs | Submodules | README

commit bc4f7ed466f9182bd263cb4a3f1c5e4cda3359fd
parent 3f39ad9e67b50c7bf0ff09e843f5bb29fb417fae
Author: aabacchus <ben@bvnf.space>
Date:   Wed, 31 Aug 2022 18:20:54 +0100

import news and blog from after Dylan returned

Diffstat:
Awiki/Archive/Blog/20210711a/index.txt | 296+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mwiki/Archive/Blog/index.txt | 1+
Awiki/Archive/News/20210703a/index.txt | 16++++++++++++++++
Awiki/Archive/News/20210708a/index.txt | 24++++++++++++++++++++++++
Awiki/Archive/News/20210715a/index.txt | 20++++++++++++++++++++
Awiki/Archive/News/20210723a/index.txt | 17+++++++++++++++++
Mwiki/Archive/News/index.txt | 4++++
7 files changed, 378 insertions(+), 0 deletions(-)

diff --git a/wiki/Archive/Blog/20210711a/index.txt b/wiki/Archive/Blog/20210711a/index.txt @@ -0,0 +1,296 @@ ++-------------------------------------+ +| ;;;;;;;;;;;;;| +| XORG ;\;;;\\;;;|;;| +| ;\\;;|;|;;||| +| ;'| ' ;|| +| .---. | | | || +|;;; [ ] ;;@ | | ' || +|@;@;; | X | ;@;;;;_/ | \| +|;;;@;;@ | | ;;;;;;@/ /;;\ | ++-------------------------------------+ + +Subject KISS LINUX +From Dylan Araps &lt;dylan@kisslinux.org&gt; +Date Sun, 11 Jul 2020 15:00:00 +0100 + +Hello, + +Exactly two weeks have passed since my return to the development of KISS. In +this time period, I have made a collective 600+ commits to the project. KISS +has also moved from LibreSSL to OpenSSL and from Xorg to Wayland. The purpose +of this blog post is to highlight the changes. + +The move to Wayland was always planned, it was just not possible at the time +KISS was created. The ability to compile Firefox in a wayland-only environment +is a relatively new development for example. + +I understand if some users are unhappy - this is a non-issue. Users are free to +continue to use Xorg and LibreSSL, the official repositories will simply no +longer provide them (see #/faq#3.0). + +This post will be in bullet form (in non-exhaustive, changelog-like fashion) +Check the git commit logs for a full list of changes. If you have any questions, +or issues do not hesitate to get in touch (see #/contact) :). + + +The distribution +________________________________________________________________________________ + +* As stated in previous posts, development will continue as normal from now on. + The official KISS Linux website is https://kisslinux.org and development is at + its original location on GitHub ($/kisslinux). + +* The IRC channel and subreddit will remain community operated (and are + therefore unaffiliated with the project). My focus will be solely on + development (what I love). I can be reached via #/contact + +* The community repository ($/kisslinux/community) will not reopen. KISS will + simply provide a small, extensible base for users. I want to instead foster + the growth of the community and the ecosystem of repositories/ideas *outside* + of the project (rather than shoehorning users into a set of rigid ideals). + + +OpenSSL +________________________________________________________________________________ + +* Python 3.10+ drops support for LibreSSL (and all other "alternative") SSL + libraries (BoringSSL, older versions of OpenSSL, etc). This extends beyond + just the _ssl module as Python also makes use of the libcrypto library. + + - https://www.python.org/dev/peps/pep-0644/ + - https://lwn.net/Articles/841685/ + - https://lwn.net/Articles/841664/ + - https://discuss.python.org/t/pep-644-require-openssl-1-1-or-newer/5584 + +* NodeJS now uses the system's SSL library rather than bundling its own. NodeJS + does not support LibreSSL so it would compile its own OpenSSL and statically + link it. Expect a reduction in package size and compilation times. + +* LibreSSL breaks ABI biannually which causes some short-term pain downstream as + many packages need rebuilds. OpenSSL does not break ABI as often. + + - https://abi-laboratory.pro/?view=timeline&l=libressl + - https://abi-laboratory.pro/?view=timeline&l=openssl + +* I was never comfortable with patches touching SSL code to fix + incompatibilities between LibreSSL and OpenSSL. I can not be sure that the + patches are actually /correct/ and do not introduce issues of their own. + + +Wayland +________________________________________________________________________________ + +* The KISS Wayland environment is entirely free from Xorg (other than xkbcommon + and xkeyboard-config which were adopted also by wayland). Basically, we have + a full wayland environment with firefox (VAAPI, etc) and /no/ Xorg. + +* This environment is still free from dbus, polkit, (e)logind, pulseaudio, etc + and is fully functional without them (yes, sound works in the latest Firefox + with alsa). Wayland is not a pathway towards their inclusion. + +* The KISS wiki has been updated with initial Wayland pages. I expect this to + improve over time as contributions are made by myself and other users. + See #/wiki/wayland + +* The NVIDIA issues with Wayland are not applicable here as proprietary software + is unsupported by KISS. Regardless, the proprietary drivers do not run under + musl (nouveau works fine however). + +* Firefox (as of this post) requires patches to achieve a full Xorg-less build. + The patches are more or less just some #ifdefs and the issue is being worked + on upstream. https://bugzilla.mozilla.org/show_bug.cgi?id=1661450 + +* GTK+3 on Wayland requires schema files for gsettings to function (under Xorg + it makes use of Xresources). The GTK+3 package has been updated to fix this + issue. This is the cause of the notorious hand2 issue plaguing many Firefox + users on Wayland. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253742 + +* Sway is the default display server and comes in three flavours. + + 1. 'sway': The package as upstream intended. Requires the 'seatd' daemon to + function - comes with all the bells and whistles. + + 2. 'sway-no-seat': No seat daemon requirement whatsoever. Rootless in the + same fashion as our xorg-server was (user in video group only, server + setgid input). Otherwise identical to 'sway'. + + 3. 'sway-tiny': 'sway-no-seat' plus removal of additional dependencies on + pango, cairo, json-c and pcre. Provides only the sway binary. This is a + fork of sway for KISS so refrain from sending bug reports upstream. + +* Foot is the default terminal emulator and comes in two flavours. The regular + 'foot' package and a 'foot-pgo' package which does profile guided + optimizations inside a running wayland session. + + +Repository Highlights +________________________________________________________________________________ + +* The fribidi package has been removed from the repositories. I have patched its + usage out of firefox, libass, pango and gtk+3. It is no longer needed by + anything. + +* Portability improvements to build files including full removal of non-standard + 'sed -i' usage and full removal of UNIX 'install' usage. + +* Reduced the size of the ncurses package from 14MB to 3MB by providing a + custom, trimmed-down terminfo database. + +* The 'mtdev' and 'libevdev' packages have been removed from the repositories + and are instead vendored in the 'libinput' package. The 'libevdev' dependency + has also been patched out of sway. + + +Package Manager Changes +________________________________________________________________________________ + +* Simplified library path resolution in pkg_fix_deps(). + +* Fixed confirmation prompt being skipped if packages were downgraded to + dependencies after resolution. + +* Added detection for circular dependencies. The package manager now aborts with + an error instead of crashing and burning. + +* Fixed packages not being installed in the right order during updates. + +* Removal of packages now includes broken directory symlinks. These were + previously skipped as their (safe) removal was tricky. The package manager + now queues all non-top-level directory symlinks and removes them at the end + of the process (but only if broken). + +* kiss-chroot now mounts /dev/shm, /dev/pts, /tmp and /run. + +* Fixed many issues with how paths were being used internally. The package + manager now ensures that any paths it joins together don't result in '//' + and don't end in (any number of) '/'. + +* Git clones are now use --filter=tree:0 instead of --depth=1 to allow usage + of 'git describe' which doesn't work with shallow clones. In other words, + a less shallow clone is now done to obtain slightly more information. + +* Removed many instances of unneeded function calls. The package manager would + look for repository files when unneeded (caller has the same information for + example). + +* Fixed handling of duplicate packages given to 'kiss b'. Duplicates are now + correctly filtered out and the total package count includes any filtering. + +* The package manager now shows you which packages are explicit (passed on the + command-line) or implicit (dependencies). You can now also see if any + explicit packages were downgraded to implicit. + +* Empty repositories (KISS_PATH=:::: (multiple colons in a row)) are now + correctly handled by the package manager. + +* Fixed issue where the package manager would randomly drop the wrong packages + from its build queue. + +* as_root() is now bypassed if the user is already root and the destination user + is also root (root -> root). + +* All applicable arguments to the package manager are now sorted by dependence. + This ensures the same order is passed to functions regardless of input. + +* Removed many uses of cd, subshells and pipes which were unnecessary. There + /should/ be a performance increase here. + +* Fixed rare global variable conflict between pkg_build and pkg_list. + +* kiss-chroot now displays every command it executes. + +* Arguments to the package manager now undergo stricter validation to prevent + invalid input. This will be further extended in the future. + +* When a package is missing files referenced in its manifest, the package + manager will now show all missing files rather than just the first one. + +* Checksum verification has been rewritten to remove awk, pipes and subshells. + This also fixed a rare bug where checksums with mismatched lines would always + be considered a match. + +* The checksum verification changes also open a pathway to supporting multiple + checksum types in the future (in a non-breaking way). Blake3 is something I + am very interested in. + +* Handling of sources has been rewritten with path finding logic unified for + use throughout the package manager (instead of being duplicated). + +* Fixed bug with tar extraction which collapsed nested directories of the same + name (fcft/fcft -> fcft). The package manager now skips directories it has + seen before (which also improves performance with large tarballs). + +* Fixed bug during package installation where a failed 'cp' of metadata could + cause the previous package's manifest to bleed into other packages in the + queue. Very bad in other words. + +* The package manager will now take KISS_COMPRESS into account when pulling + binaries out of the cache. If not found, a glob is used (old behavior). + +* Added pre-remove user hook. + +* Exposed build queue numbers to user hooks. + +* Fixed bug where insufficient permissions to the log directory would cause + confusing behavior on build completion. + +* The kiss-help utility now does a search when it cannot find a page by its + relative path. This means that 'kiss help wiki/software/firefox' and + 'kiss help firefox' result in the same page being opened. + + +The Future +________________________________________________________________________________ + +* The next major change planned for the future is manual page consistency. All + packages will provide manual pages by default and this will be configurable by + users (per manual page, per package, etc). $/kisslinux/repo/issues/273 + +* Support for additional checksum types /may/ be added. Early numbers using + blake3 show an immense runtime improvement over sha256 for medium to large + tarballs. + +* LLVM/Clang should become first class citizens and the repositories should be + fully functional when compiled with them. Users should have the option between + the two (though installation tarballs will continue to use GCC). + +* GCC will eventually include a rust codegen backend (and quite possibly a rust + frontend). These will be interesting to play around with once they become + usable. + +* The C package manager implementation is still in the works though its + development process has changed. A library will be created and slowly over + time individual components of the shell package manager will be replaced with + C equivalents (while the library matures at the same time). + + Users will be able to opt-in to running parts of the package manager (the slow + components especially) in C. This allows users to benefit from faster + implementations of components as they become available. + + Once the library reaches a good level of usability, a full C package manager + implementation will be made available alongside the shell implementation. + + A test-suite will also be created and will be used both by the shell and C + package manager implementations to ensure that no regressions are made between + changes. + +* BearSSL is very interesting and I have experimented with a full bearssl + system (to the extent it is possible). A lot of work in this area is being + done by Michael Forney (including the support in curl, openssh, and possibly + python in the future). + + +Closing words +________________________________________________________________________________ + +It's good to be back doing what I love. I am very excited for the future and I +hope you are too. Stay tuned for more updates. :) + + + Dylan + + +PS On another note, I will begin writing regular blog posts to my personal + domain (https://dy1an.xyz/) about KISS, technology and whatever else + interests me. If it tickles your fancy, check it out. + diff --git a/wiki/Archive/Blog/index.txt b/wiki/Archive/Blog/index.txt @@ -3,6 +3,7 @@ ________________________________________________________________________________ RSS Feed available here: @/blog/blog.xml +- @/blog/20210711a KISS Linux - @/blog/20210702a This month in KISS (#10) - @/blog/20210609a This month in KISS (#9) - @/blog/20210512a This month in KISS (#8) diff --git a/wiki/Archive/News/20210703a/index.txt b/wiki/Archive/News/20210703a/index.txt @@ -0,0 +1,16 @@ +Subject Update +From Dylan Araps &lt;dylan@kisslinux.org&gt; +Date Sat, 3 July 2021 03:03:03 +0100 + +Hello, + +The repositories are up-to-date and many changes have been made to the package +manager. Development will continue as normal from here on. + +The Community repository is archived for the moment. The best course of action +still needs to be sought. + +Will have more to say soon. + + Dylan + diff --git a/wiki/Archive/News/20210708a/index.txt b/wiki/Archive/News/20210708a/index.txt @@ -0,0 +1,24 @@ +Subject Breaking changes +From Dylan Araps &lt;dylan@kisslinux.org&gt; +Date Thu, 8 July 2021 15:00:00 +0100 + +Hello, + +KISS is moving to openssl and wayland. This is two breaking changes being made +at the same time. The transition will not be automated in any way. Things will +be volatile for a short period before settling down again. + +This change will take place in three days (11/07/2021) at 15:00:00 UTC. + +See: + + - $/kisslinux/repo/pull/269 + - $/kisslinux/repo/pull/266 + - $/kisslinux/repo/issues/270 + - $/kisslinux/repo/issues/263 + +A blog post will be made shortly to announce the new changes to the +repositories, the package manager and the distribution. Stay tuned. :) + + Dylan + diff --git a/wiki/Archive/News/20210715a/index.txt b/wiki/Archive/News/20210715a/index.txt @@ -0,0 +1,20 @@ +Subject gzip -> pigz +From Dylan Araps &lt;dylan@kisslinux.org&gt; +Date Thu, 15 Jul 2020 11:00:00 +0100 + +The gzip package will be removed 22/07/2021 and replaced with pigz. This is not +a swap in gzip implementations as our gzip has been pigz in disguise for some +time now. This is just a package rename. + +Some manual intervention is required. Run the following to transition before +the date listed above. + + kiss u + kiss b pigz + kiss i pigz + kiss a | grep ^pigz | kiss a - + kiss r gzip + +--- + + Dylan diff --git a/wiki/Archive/News/20210723a/index.txt b/wiki/Archive/News/20210723a/index.txt @@ -0,0 +1,17 @@ +Subject A new home +From Dylan Araps &lt;dylan@kisslinux.org&gt; +Date Sat, 3 July 2021 03:03:03 +0100 + +The KISS Linux website is now at https://kisslinux.org thanks to the generosity +of the domain's previous owner. I received an email yesterday with an offer to +donate the domain to the project of which I gracefully accepted. + +The .xyz domain will no longer be used. A 301 redirect has been setup to send +traffic to the new domain. The email on the .xyz domain will remain active for +a short while. + +I want to publicly thank this individual and their act of kindness. +KISS Linux now has a new home. + + + Dylan diff --git a/wiki/Archive/News/index.txt b/wiki/Archive/News/index.txt @@ -3,7 +3,11 @@ ________________________________________________________________________________ RSS Feed available here: @/news/news.xml +- @/news/20210723a A new home +- @/news/20210715a gzip -> pigz - @/news/20210712a kiss-community's status +- @/news/20210708a Breaking changes +- @/news/20210703a Update - @/news/20210519a Update on Dylan, IRC - @/news/20210507a Kernel 5.12.0 build issue - @/news/20210414a Mailing list announcement