Skip Navigation
chameleon chameleon @fedia.io

i'm lizard

Posts 0
Comments 46
Can a Flatpak control the file picker used by an app?
  • I don't have Obsidian around, but this has been happening elsewhere lately too, almost certainly because of this underlying Electron issue: https://github.com/electron/electron/issues/43819

    Unfortunately there's not much you can do about it. Electron decided to depend on functionality not yet in a released version, and that very interesting choice flows down to everything that updates their Electron on the regular.

  • Need help: USB unlock LUKS on Alpine Linux
  • Sorry, I've had a (self-imposed) busy week, but I have to admit, that also has me rather stumped. As far as I can tell, your second entry should work. If the device is visible in /dev/mapper under a name, it should be able to mount under that name.

    The only thing I can think of is that some important module like the ext4 module might be missing somehow? You can get pretty confusing errors when that happens. Dracut is supposed to parse /etc/fstab for everything needed to boot, and maybe that's not recognizing your root for some reason. dmesg might have some useful info at the end after you try to mount it. If that's what's happening, you could try to add add_drivers+=" ext4 " in your dracut.conf and regenerate it (the spaces are important!). But if that's not it, then I'm probably out of ideas now.

  • Need help: USB unlock LUKS on Alpine Linux
  • I think you should check your root= line and add a rd.luks.uuid= to make it open it. Dracut will by default open the root FS as /dev/mapper/luks-abcdef... based on the LUKS container UUID. You can get that with cryptsetup luksUUID. /dev/mapper/root is just never going to show up unless you've assigned a custom name to that with the barely documented rd.luks.name, and I don't see that in your setup. The cryptroot and cryptdm parameters aren't used by Dracut either.

    With all of that missing it's just gonna wait for that /dev/mapper/root to magically show up out of nowhere, without ever trying to open it.

    A correct cmdline will probably look something along the lines of root=/dev/mapper/luks-<uuid> modules=sd-mod,usb-storage,ext4 rootfstype=ext4 rootflags=rw,relatime rd.luks.uuid=<uuid> and once opening with passphrase works, you can start to mess with rd.luks.key=/awesome.key (and readd quiet when done debugging, if you want it that way).

    ldconfig errors and the missing modules should be fine. musl's ldconfig is just a bit different but also isn't required in quite the same way. I don't think you should need to mess with modules manually. I don't think you're using LVM's userland for your setup, just all the device-mapper kernel modules. Dracut will pull all the necessary bits in for you if you're setting it up for LUKS.

  • Steam's new disclaimer reminds everyone that you don't actually own your games, GOG moves in for the killshot: Its offline installers 'cannot be taken away from you'
  • For current exports, it's some custom .csm/.csd file combo. Not sure if there's any tools for working with it, seems like it'd be more annoying than just using a normal archive format either way.

  • Steam's new disclaimer reminds everyone that you don't actually own your games, GOG moves in for the killshot: Its offline installers 'cannot be taken away from you'
  • It technically still exists in the game properties -> installed files tab, but it doesn't really work. The backup files you get require you to be online to meaningfully restore and will trigger a patch to the latest game version.

    Practically speaking it's better to just make a copy of the game install directory manually, gives you a better chance of things working (even though most games require some kind of external tooling for that).

  • Need help: USB unlock LUKS on Alpine Linux
  • 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.

  • Need help: USB unlock LUKS on Alpine Linux
  • 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.

  • Need help: USB unlock LUKS on Alpine Linux
  • 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).

  • Valve Engineer Mike Blumenkrantz Hoping To Accelerate Wayland Protocol Development
  • 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.

  • Advice column: Why trust Signal?
  • 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.

  • Advice column: Why trust Signal?
  • 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.

  • Wine 9.18 Released
  • 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.

  • Hot Take: Lemmy communities should function similar to hashtags on Mastodon.
  • 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.

  • Docker Raises Prices Up to 80 Percent | ServeTheHome
  • 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).

  • Paid SSL vs Letsencrypt
  • Most paid certs aren't worth much anyway. Payment and delivery info for DV certs isn't validated by anyone, it's literally the same concept as Let's Encrypt. OV and EV are the only ones that theoretically have any value, but nobody is using those ever since they got rid of the URL bar labeling; even Amazon is on DV nowadays.

  • "Concord servers are now offline. Thank you to all the freegunners who have joined us in the Concord galaxy"
  • Aside from all of the problems with the game itself, I think they must've had one of the most unfortunate launch moments. Hero shooters had been pretty much on the downturn and then just before they launched, Deadlock went public and suckered quite a lot of the hero shooter audience into playing a full-on MOBA/FPS hybrid. And Deadlock is very quietly breaking all kinds of silly records for what's technically an invite-only alpha (currently #8 on Steam's most played with 137k concurrent players).

  • Rust for Linux revisited (by Drew DeVault)
  • It depends on if you can feasibly implement compatibility layers for large parts of the "required" but very work-intensive drivers. FreeBSD has the same driver struggles and ended up with LinuxKPI to support AMD/Intel GPUs. I know there's a whole bunch of toy kernels that implemented compatibility layers for parts of Linux in some fashion too.

    It's a ton of work overall but there's room to lift enough already existing stuff from Linux to get the ball rolling.

  • Tried to install Nixos for the first time..
  • In my experience, most hangs with a message about amdgpu loading on screen are caused by an amdgpu issue of some kind. I'd check to see if amdgpu ends up being loaded correctly via lsmod | grep amdgpu and just a general journalctl -b 0 | grep amdgpu to see if there's any obvious failures there. Chances are that even if it's not amdgpu, the real failure is in the journal somewhere.

    Could be a wrong setting of hardware.enableRedistributableFirmware (should be true) or the new-ish hardware.amdgpu.initrd.enable (can be either really but either true or false might be more or less reliable on your system).

  • Are selfhosted Piped instances still working?
  • Gonna add a dissenting "maybe but not really". YT is really aggressive on this kinda stuff lately and the situation is changing month by month. YT has multiple ways of flagging your IP as potentially problematic and as soon as you get flagged you're going to end up having to run quite an annoying mess of scripts that may or may not last in the long term. There's some instructions in a stickied issue on the Invidious repo.

  • How could simulating the ports as open be useful?
  • You can't pretend an open port is closed, because an open port is really just a service that's listening. You can't pretend-close it and still have that service work. The only thing you can do is firewalling off the entire service, but presumably, any competent distro will firewall off all services by default and any service listening publicly is doing so for a good reason.

    I guess it comes down to whether they feel like it's worth obfuscating port scan data. If you deploy that across all of your network then you make things just a little bit more annoying for attackers. It's a tiny bit of obfuscation that doesn't really matter, but I guess plenty of security teams need every win they can get, as management is always demanding that you do more even after you've done everything that's actually useful.