chameleon

joined 3 months ago
[–] [email protected] 2 points 2 days ago

Dracut may have this functionality already built in via rd.luks.key, so a custom module would really only make sense if you're trying to do more than that. You can probably get away with just using that if you just want it to work, but if you want to customize stuff:

I suspect your module is running well after the device is already supposed to be cryptsetup opened. The way the default crypt module handles it is by setting up udev configuration in a very early phase, and then having udev request the password a little bit later when it finds the device it's trying to open, until all devices are ready. It's a complex mechanism compared to Alpine's straightforward script, but it's much more flexible when it comes to ordering of things like RAID/network devices/LUKS/etc.

The result of that is that your code would have to run much earlier. There's some documentation on how hooks work, and the builtin rd.luks.key / keydev handler runs at cmdline 10. That's well before your pre-mount, and probably where you'd want to run your code. Based on a cursory inspection of the other code, you could either cryptsetup open it yourself if you use the name it expects (rd.luks.name= cmdline parameter or luks-$luks_container_uuid), or you could use that /tmp/luks.keys mechanism (it's a dracut-internal thing so you won't find much documentation, but it lives in crypt-lib.sh, cryptroot-ask.sh and probe-keydev.sh).

As for debugging, the cmdline manpage has a few decent enough options. rd.break=cmdline or similar can force a shell before Dracut goes through a specific phase of hooks. You should be able to manually test doing things similar to your script at that point.

[–] [email protected] 4 points 3 days ago (2 children)

You'd be looking for /usr/share/mkinitfs/initramfs-init . I've never customized that myself, but it looks like there's already some support for a keyfile if you look for KOPT_cryptroot and check that block of code. That looks like it's mostly set up for a keyfile embedded into the initramfs, but I guess it should be possible to replace that code with something that grabs the keyfile off an USB drive.

I suppose you'd make a copy of it, put it somewhere in /etc or whatever and change the mkinitfs.conf to point to it. init="/etc/whatever/myinitramfs-init" should do the trick since the config file just gets sourced in. That said you're definitively heading into unknown territory here. It might be easier to just use Dracut or the like instead.

[–] [email protected] 5 points 4 days ago (4 children)

mkinitfs doesn't support running custom shell hooks. mkinitfs is very, very, very bare-bones custom code and the whole features concept exists only to pull extra files and kernel modules into the initramfs, not for extra logic.

You'd either have to customize the init script itself (not impossible, it's 1000 lines) and pass -i/set init= in the .conf, or install Dracut/Booster instead (which should "just work" if you apk add them, but I've had no need to do so).

[–] [email protected] 3 points 1 week ago (1 children)

All of the cool development-related Nix things like pinning a project to known-good library versions (for regression tests or otherwise) don't really need you to run NixOS. If you like NixOS then it's a perfectly usable distro for development work, but all of the powers come from Nix itself, and that can be installed anywhere you feel comfortable with.

The only real pro of running full NixOS is that everything you work on will test a relatively uncommon *nix setup by its nature. Things like developer-only scripts with hardcoded #!/bin/bash shebangs are more likely to break on NixOS than they would on a conventional Linux distro with Nix installed. That's something potentially worth fixing as it might also hurt the developer experience on *BSD/Mac systems.

[–] [email protected] 13 points 2 weeks ago (2 children)

That already happens constantly and I'd consider this the consequence of it, rather than the cause. You can only issue so many vetoes before people no longer want to deal with you and would rather move on.

The recent week of Wayland news (including the proposal from a few hours ago to restate NACK policies) is starting to feel like the final attempt to right things before a hard fork of Wayland. I've been following wayland-protocols/devel/etc from the outside for a year or two and the vibes have been trending that way for a while.

[–] [email protected] 1 points 2 weeks ago (1 children)

I'll freely admit I don't use that thing and was under the assumption it was feature complete. Regardless, the Android and iOS clients are also open, and I've found absolutely no indications that there's any blobs in the repo or the like.

[–] [email protected] 6 points 2 weeks ago (3 children)

It's not and I'm not sure how that article arrived at that conclusion. Their E2EE crypto is problematic homebrew crypto, but that's very, very different from being closed. The whole desktop client including the implementation of that crypto is fully open source and lives right on GitHub. Plenty of people have independently reviewed it and came back with a very iffy impression of the whole thing.

Really the only difference is that Telegram doesn't publish their backend, but the one Signal publishes is missing a couple of bits related to their "spam filter", which happens to take in the source & destination of messages and do anything it wants with them. That doesn't matter for either platform's E2EE properties in any case, since distrusting the server is the whole point of E2EE.

[–] [email protected] 3 points 2 weeks ago

Digging into the GitLab & related discussions, the main takeaway I got is that FFmpeg's API supposedly meshes better with what Wine needs to provide to Windows code, simplifying things overall. GST is pretty heavy on asynchronous/background processing, which is normally something I'd consider good for media, but if the API you're expected to implement is synchronous then I guess it only adds complexity.

[–] [email protected] 4 points 3 weeks ago

Moderation is handled by each instance's version of that community separately.

Reddit/Lemmy/etc communities differ from something like Tumblr/Cohost by also having per-community rules, and nobody has the time to moderate hundreds of communities according to their per-community rules.

It's relatively easy to keep an instance free of spam/overly blatant hate/etc, since that is a fairly common set of rules. But it's much harder to keep a "world news" style community being overran with US-centric posts, or a discussion community on a specific subject from being filled to the brim with memes, or posts that are only very vaguely adjacent. Without centralized per-community moderators, it would fall on general instance moderation to make decisions about whether a post about an Undertale hack fits in the Undertale community. That's probably going to go wrong more often than not.

You can have a website that is only moderated according to global rules with tags being a free-for-all, but you fundamentally end up building something along the lines of Tumblr or Cohost, which attracts a different audience, including those that know how to rules lawyer their way in such an environment; tagging 20 mediocre photos a day with #photography instead of just a good one, for example. With the end of Cohost approaching, I wouldn't be surprised if some tried to build that kinda thing, but it'd likely end up having a very different vibe.

[–] [email protected] 1 points 3 weeks ago (1 children)

I don't know if the Atari Lynx counts as non-major. Anything from Atari should probably count as major, the thing supposedly sold 2 million units, but I can't remember the last time I've seen anyone mention it and that's still less than 2% of the Game Boy's 110m+.

I got the original model as a hand-me-down towards the end of the 90s and I wasn't super fond of it. The thing looks and feels like a brick and ate batteries for breakfast, the internet says 5 hour battery life but I remember getting like 2. The "left-hand mode" is a cool concept but putting two pairs of A/B buttons on the device feels like something they could've done better. It had color, a couple of arcade ports were really great games and there was Chip's Challenge, but younger me got exhausted just using the damn thing.

[–] [email protected] 3 points 3 weeks ago (2 children)

Basically yes. Rancher Desktop sets up K3s in a VM and gives you a kubectl, docker and a few other binaries preconfigured to talk to that VM. K3s is just a lightweight all-in-one Kubernetes distro that's relatively easy to set up (of course, you still have to learn Kubernetes so it's not really easy, just skips the cluster setup).

[–] [email protected] 2 points 3 weeks ago

Crimzon Clover, any version's good but World EXplosion is the most recent. It's a fairly difficult and chaotic bullet hell, but the novice mode should be reasonably approachable as long as you're willing to learn, and the design is superb.

Similarly, the whole CAVE backlog. Not all of them have novice modes or the like, and there's quite a few games not really available outside of MAME. The original DoDonPachi is/was considered the best starter bullet hell for a long, long time and still holds up pretty well, but is more difficult than a lot of modern games on their respective novice modes.

On the indie side of things: Star of Providence (formerly Monolith) is an indie roguelite bullet hell twin-stick-ish shmup with a pretty good amount of depth. ZeroRanger is a much more story-based game that I really enjoyed.

view more: next ›