#musl
@josephholsten @Lulukaros @_bapt_ @chrisoffner3d @vaartis
Similarly, I'd not work on my own #toybox+#musl / #Linux distro if I felt there was a good, minimalist embedded Linux that could do what I want from a single 1440kB 3,5" FDD to boot from…
Feel free to make a clone based off a #BSD if you want to...
OK - as of last night moss supports being built with static #musl libc :O
Note, this is required as be build libsqlite3-sys and co into a single binary to prevent disastrous update scenarios.
Granted, its a "fat" binary (approx 7mb?) but its also fully self contained and has an async runtime, TLS implementation, etc.
https://github.com/serpent-os/moss-rs/commit/9beec87ae12fd1f015df2734ea0c9dfafc247456
TLDR if you have a moss binary you can produce entire Serpent roots + containers. Same magic happening with boulder for bulletproof infra!

One day, It would be a cool idea to experiment with #VoidLinux and make an immutable version of it.
Imagine having #musl #OSTree based immutable distro, that may be interesting.
@ActionRetro @TritTriton Any way to #SelfHost the stack of #FrogFind?
Cuz I think this would work great and #decentralization would definitely reduce the burden of hosting and allow to further adapt it.
I.e. adding an #OnionService because I'm the kind of #MadLad that shoves vintage systems running #Lynx on OS/1337 (#toybox + #musl / #linux) behind a #OPNsense to provide them with @torproject / #Tor connectivity until I have ported that to #OS1337 as well...
There needs to be something easier and better than #Python with up-to-date bindings that can support building #Qt stuff with #musl libc. I really don't like using Python and only do because C++ (or rather, #CMake) is too hard to do new stuff in for me and CXX-Qt won't build with musl (could target a #glibc distro like #DanctNix #Arch, but then I'd be ignoring the entire set of devices supported by #postmarketOS). Why can't I just use #VB transpiled to #Rust?
The future Musl libc roadmap is for glibc-ABI-compat handling to be shifted out of #Musl libc to the gcompat package. Musl Libc could do some sort of shims (and which musl ldso would assist it in shimming by letting a delegated
library interpose on modules that have http://libc.so.6 dep) #clangbuiltlinux https://openwall.com/lists/musl/2023/08/23/2
@HopelessDemigod The current goal is to get a 0.1 release that fits on a 1.400kB 3,5" FDD and includes #Linux (ideally 6.6.6 for maximum meme factor) #Toybox and #dbclient (#Dropbear #SSH as SSH-Client only) compiled against #musl-cross and bootable on any #i486 and up.
@HopelessDemigod basically OS/1337 is a minimalist #Linux distro using #toybox + #musl for userspace and aiming to be an option for an extra lightweight #TUI / #CLI - #Desktop or basis for #embedded systems aka. #InternetOfShit devices:
https://os1337.com
> still reachable: 73,728 bytes in 1 blocks
(When running a simple hello world c++ project)
From what I can tell the musl c++ library leaks memory (as does glibc) but valgrind doesn't properly ignore it (which it does for glibc)).
However, all my attempts to get valgrind to ignore it failed this far... :blobcatsadreach:
I was really excited to try the #Rust crate #iced, but it seems that both the linker and one of the dependency crates are unable to find the dependency libraries.
After debugging for a little over a day, it seems that the issue has something to do with #musl and how it works with libraries?
Sadly, this means that I cannot try out iced as I wished...
Edit: I just created a Void Linux glibc podman container, built the app in that, ran it, and it worked!
Seriously...
Whilst a bit dated I think the talk is still valid...
I really think that #toybox & #musl are good and that's why I chose them for OS/1337:
I want a really #BareBones #Linux distro as an exercise in #minimalism and because I think we should embrace #FrugalComputing and that people should still be able to use a system just with a 1440kB Floppy to boot.
Even if that means they'll only have an #SSH-#Terminal using #Dropbear as #client...
https://www.youtube.com/watch?v=SGmtP5Lg_t0&t=1277s
I absolutely love #musl. Absolutely my favorite libc. Very clean and very robust. I especially love running it on #VoidLinux. It just works!
I even got academic software that requires glibc running on it using distrobox!
Trying to use that old project, #actkbd on #AlpineLinux.
It compiles well with #musl, but at runtime fread() complains about invalid argument!! :blobPikaGlare:
https://github.com/thkala/actkbd
@Tertle950 @nixCraft I do #toybox + #musl / #Linux, also known as OS/1337!
@nemo basically my attempt at making a #minimalist #CLI / #TUI-based #toybox + #musl / #Linux distribution...
@parvXtl @case2tv It also doesn't run on OS/1337 since that's an #embedded #linux #distro and thus doesn't even come close to fulfill the installed dependencies for said #GUI application...
Would I love to see them build a #TUI version statically-compiled against #musl that is one binary to just drop in and use?
OFC!
But I don't expect them to do so no matter if there are 1 or 1.000.000.000 devices running #OS1337...
@joepie91 Don't forget:
- #Mumble for #VoiceChats
- #Linphone as #SIP / #VoIP client
- #gparted and #ddrescue as well as #testdik & #photorec for halding storage and recovering data.
And ofc all the tools I need daily like #SSH (#OpenSSH), #OpenVPN, #WireGuard, #IPsec, #pfSense, #OPNsense, #ipFire, #LUKS/ #dmcrypt and the whole #toolchain needed for OS/1337 like #gcc, #musl, #toybox, #dropbear and so on.
@thegibson Setting up #Debian on #musl #voidlinux to #chroot into for installing #leapmotion software to control my new hand/motion tracker/controller, only for the software to spit out this:
Error: Missing Dependency: glibc
Thought I could cheat the system. Long story short, installed the GLIBC variant of Void on a USB, booted into it, and redid the process of converting and installing (guide coming soon).
Uutils Rules: Yeeting GNU Coreutils from my System
On my first blog post, I explain how I installed uutils on openSUSE Tumbleweed - completely removing gnu coreutils. Everything went surprisingly smoothly!
https://luana.dev.br/2023/10/01/uutils-rules.html
#Linux #uutils #coreutils #openSUSE @opensuse #musl #blog #OpenSource
I’ve read somewhere a while ago about how GNU was secretive about documentation for some parts of glibc, making it harder for alternatives like #Musl to achieve full intercompatibility. I think I saw this maybe on one of musl’s websites or something, but I can’t seem to find this anymore. Does anyone know where I can find this piece of information again?
@rq yeah, the #Enshittification is the problem.
If #Glibc wasn't a piece of shit that knowingly and willingly bricks #Userspace all the time #Docker would neither have a right to exist nor legitimate reason to be used.
Just when I feel like I'm ready to throw in the towel with email, I discover a solution that actually sounds sensible:
« #mxclient is not a normal MTA. Rather, it's a minimalist client for sending mail direct to the recipient's MX, or mail exchanger, in contrast to the widespread practice of sending through a "smarthost" or "outgoing mail server".
In combination with sufficient cryptographic measures, this ensures that no one outside the receiving domain's mail system can intercept or alter the contents of the message, making mxclient suitable for:
- Private bi-directional communication between individuals (with personal domains) or organizations that mutually implement this kind of delivery.
- Delivery of sensitive data like account access or password reset tokens without them passing through third party mailer systems.
- Avoiding dragnet surveillance of outgoing mail in otherwise conventional mail setups.
mxclient is not an outgoing mail queue. It delivers mail synchronously, to a single recipient, reporting success, temporary failure, or permanent failure via the exit status (using sysexits.h codes). It can be used as the backend for the separate queuing frontend to yield a full "sendmail" command for use by MUAs or scripts that expect asynchronous delivery.
Ability to send mail directly to the recipient's MX depends on having unblocked outgoing port 25 (many residential and mobile ISPs firewall it) and on not being on one of several "dialup"/residential IP address lists that many sites' mail systems use to block likely spammers. To get around this while still maintaining the security and privacy properties of interfacing directly with the recipient's MX, future versions of mxclient will support performing the actual TCP connection through a (SOCKS5 or ssh -W child process) proxy while keeping the actual TLS endpoint local. »
from Rich Felker, maintainer of #musl
https://github.com/richfelker/mxclient
Should I install #AlpineLinux on my Laptop with #ArchLinux? Are all the usual programs (like Firefox, Thunderbird/Evolution, Nextcloud clients) compilable with #musl #libc?
I hacked the latest Oracle Instant Client libraries (libocci.so and other crap) and SQL*Plus CLI (the most awful DB client ever), which are only distributed as binaries linked against glibc, to work on #musl libc and #AlpineLinux. It’s available in my https://github.com/jirutka/user-aports/. Packages: oracle-instantclient-oci, oracle-instantclient-sqplus, oracle-instantclient-dev etc.
APKBUILD: https://github.com/jirutka/user-aports/blob/master/user/oracle-instantclient/APKBUILD
Great example of Fork Considered Harmful just came up on #musl: a program that spawns children via fork+exec spending inordinate time in kernelspace (accounted as minor page faults) slowing down computation.
J'ai joué à essayer de compiler une appli #Flutter pour #PostmarketOS sur #ARMv8 (#Pinephone acheté en #Ğ1), mais entre la version du sdk #Dart, la std #musl, je ne m'en suis pas sorti ><
@ncommander Granted that's not common for #Distros to do so, and my goal with #OS1337 was to make something more practical than #Floppinux which can barely output some text on screen - at least connect to somethng else that is useful.
OFC I'll release it once tested and satisfactory in useability for what I want to achieve with it.
But yeah, there isn't much beyond #musl being shared among those processes, so it's mostly a tradeoff that'll cost storage or RAM in more extensive setups...
YOS!
#Linux 6.4.12 (with networking support!) + #toybox 0.8.10 in 980k using #musl-cross-i686
This is awesome...
Seems like I can fit #dropbear as #SSH client on the 3,5" #1440kB #Floppy as well...
I guess it would've been possible to make #Floppinux for a #720k #Floppy as well... ?
#OS1337 #development
https://github.com/OS-1337/OS1337/commit/d4a59245953bd7529ee8a3c178841b6114cd7881
@whitekiba yeah, I do intent on putting those a bit in order and add the .config for the kernel.
If necessary to get that 1440kB FDD target I do consider having only dbclient (dropbear but as SSH client) or just toybox (with wget enabled) to download the latter into a ramdisk.
Or using busybox.
Tho ideally I could use #toybox+#musl since that wpuld make it easier to get cross-compiled, tho again I'm not fixed on either and would consider both.
The idea is to use that sleek baseline to expand.
@beforewisdom @Yehuda @fsf exactly.
As for the #GNUtils like #bash, I do work on getting rid of them as well where I can.
I am currently working on a #minimalist #embedded distro based off #toybox / #Linux + #musl, because #Glibc is a shitty mess that bricks stuff at random in minor version updates for no good reason!
http://os1337.com
Strongly considering trying out a new form of release condition for #musl, that really should have been obvious: rolling a release whenever there's been a bugfix for something reasonably user-facing (vs like silent/"harmless" UB or weird corner cases nobody but me cares about) and there's not anything release-blockingly unstable in main.
(The latter condition could be dropped if there were a "stable branch" of course, but for the most part I don't think it's an issue at present.)
@foone See the code in #musl for evaluating plural form expressions in gettext translation files. It's extremely small: https://git.musl-libc.org/cgit/musl/tree/src/locale/pleval.c?id=v1.2.4
A really common form of the second error, and one just encountered on #musl debugging a buffer overflow mallocng caught, is where T2 is inadvertently T1 * rather than T1.
Due to issues with how this instance is run and who is permitted to be here and influence moderation decisions, #musl's social media presence will likely be moving off Fosstodon.
Recommendations for an appropriate instance friendly to hosting project accounts, and with agreeable values, would be welcome!
@bitpirate @gamingonlinux and as much as I'd love to see every game getting updated, it's illusional that publishers and devs will invest the time to do so on one-time-purchase titles that are over 2 years old, don't sell any significant numbers or don't get any other revenue to pay for workarounding the shit that #flibc does.
@lunaa @yura @torvalds I know...
There's a reason Distros like #AlpineLinux, #ChimeraLinux and almost all #embedded systems using #Busybox or #Toybox want to get rid of #glibc if not replace it with something like #uClinux, #musl,or another #libc...
Because glibc bricking stuff with minor updates kills any #CCSS and any non-#FLOSS that can't be recompiled.
And what RMS et. al. may see as intentional, I think is the biggest issie that prevents #Linux from dominating #Desktop|s!
Just got a bug report in #musl that appears to be this hot garbage. 🤦 https://nitter.net/RichFelker/status/1357733309737021444 Reporter left before identifying the system but it's the only plausible explanation I see for statx failing with EINVAL instead of ENOSYS on old kernel...
I love rediscovering places in #musl where someone's brought up a scary corner case that almost surely has wrong behavior and... nope! that was handled right a decade ago!
Why donate to the #musl libc project?
A blog post by the author of the #Zig language
https://andrewkelley.me/post/why-donating-to-musl-libc-project.html
I found a cool #linux #distro the other day called "Oasis Linux" that I wanted to get more people to learn about bc it's intriguing.
It's completely statically built using #musl and various other alternatives to typical tools.
It seems they make efforts to simplify the file system as well, which is nice.
Check it out: https://github.com/oasislinux/oasis
@tobtobxx #nixpkgs has experimental #musl support
https://github.com/NixOS/rfcs/blob/master/rfcs/0023-musl-libc.md
here is a discussion to use it by default
https://github.com/NixOS/nixpkgs/issues/90147
you can use dynamic linked packages with e.g.
nix-shell -p pkgsMusl.hello
see also pkgsStatic
#nixos can run from ram with
boot.kernelParams = [ "copytoram=1" ];
(as the installer does)
it would be interesting to see native packages with sandboxing and granular permissions, integrated in the desktop. then nix might be able to make #flatpak obsolete
#Wine 8.6 Released With Bundled #Musl Libc Math Library
https://www.phoronix.com/news/Wine-8.6-Released
Original tweet : https://twitter.com/phoronix/status/1646973014443978753

Uhg, sorry this release cycle has taken so long. 😫 Trying to get things together ASAP now for the #musl 2.39 release...
🪤 Why I Will Never Use Alpine Linux Ever Again
— @martinheinz
「 Usually, you would not notice this difference, because most of the time a single UDP packet (512 bytes) is enough to resolve hostnames... until it isn't enough and your application (running on Kubernetes) that previously worked completely fine for months suddenly starts throwing "Unknown Host" exceptions for one particular (very critical) hostname 」
In case anyone's wondering, this has come up again because, if all goes well, #musl is finally going to be getting first-class IDN support! 🥳
Sadly, it looks like no one was able to solve the issues around creating a Node.js binary for Musl on arm64, so it looks like Kitten¹ won’t be available on @postmarketOS on mobile phones, etc., in the foreseeable future (unless someone with the necessary knowledge and time can step up right away before this commit is reverted).
https://github.com/nodejs/unofficial-builds/pull/59#issuecomment-1451256522
Wonder if anyone has any ideas why the new Alpine Linux musl/ARM64 Node.js build is failing and/or can help fix it.
https://github.com/nodejs/unofficial-builds/pull/59#issuecomment-1436328696
If we can get this fixed soon-ish (before it’s reverted) it’ll mean – among other things – that Node.js will run on @postmarketOS on phones and other mobile devices.
#NodeJS #postmarketOS #musl #alpineLinux #arm #arm64 #helpWanted
Anyone know anyone on the NodeJS team that might have time to merge this pull request?
https://github.com/nodejs/unofficial-builds/pull/59
#nodeJS #postmarketOS #alpineLinux #arm #musl #JavaScript #SmallWeb #SmallTech #mobile #education #foss #openSource
Imagine Node.js running on a @PINE64 PineBook or PineBook Pro with @postmarketOS… could be very useful for education (not to mention make development more accessible in general).
https://github.com/nodejs/unofficial-builds/pull/59
(If this pull request gets merged, Kitten – https://codeberg.org/kitten/app – will be able to run on the PinePhone and be used for Small Web development on it.)
#nodeJS #postmarketOS #alpineLinux #arm #musl #JavaScript #SmallWeb #SmallTech #mobile #education
this particular claim is provably bullshit.
pkgconf, when built with knowledge of the system toolchain, which every distribution does, does absolutely understand that /usr/include is a system include path.
otherwise it would be printing -I/usr/include a gazillion times.
and one of the main people who, has, for whatever reason, decided this is the battle he wants to fight in the year of our lord 2023, is just chilling on #musl with nobody calling him on his fuckery.
In this case, trying to compile against glibc and link against #musl. 🤦 And claiming musl is broken when it doesn't work.
I'm yet another transplant from twitter.
I'm a software developer, mostly using TypeScript, C#, and ObjectScript at my dayjob, though I prefer C at home. I mostly work on personal projects for fun or to scratch an itch, but I've contributed to #musl and #ffmpeg in the past.
I also occasionally dabble in 3d printing.