Posts
4675
Following
319
Followers
484
Linux kernel hacker and maintainer etc.

OpenPGP: 3AB05486C7752FE1

Jarkko Sakkinen

Edited 1 year ago
@moritz and pretty much anything starting from kitchen toasters can read and write ext4, even Windows can. that's a another huge advantage.

like if your machine breaks, maybe there's only a windows laptop available, no problem with ext4 :-) i'd figure there's some shaky btrfs windows drivers out there too but u know... would not put my life on them :-)

that's why I like also fat and its variants... (exfat is ace).
0
0
1
@moritz I think btrfs is great. I just don't need in on my desktop :-)

I know ext4 well enough that I could probably write myself some code to read a partition if I really had to. Or even fix some mainline bugs because I know how it does what it does in great granularity.

Btrfs is like that I need to call helpdesk or something if it ever flipped on me :-) And not that much interest that I would want to climb to a mountain for the sake of btrfs tbh... My ASUSTOR NAS does use btrfs tho.
2
0
1

workaround:

❯ cat user_credentials.json 
{
    "!root-password": null,
    "!users": [
        {
            "!password": "SecretSanta2022",
            "sudo": true,
            "username": "jarkko"
        }
    ],
    "encryption_password": "SecretSanta2022"
}

Now I need to only remember that the password is SecretSanta2022 whenever I use this :-)

1
0
0
would be total pain to automate this or like do large deployments just because the features fight with each other in this area.
1
0
0
you have three passwords here: user, root and hard drive encryption.

why the heck they can't have exact same semantics is beyond me. especially since more privileged (root) has this flexibility but less privileged (user) does not.

and it will be a nightmare to recall their slight differences few months from now...
1
0
0

Jarkko Sakkinen

Edited 1 year ago
why not? 🤷luks allows to do that why build imaginary blocks...
1
0
0
turnoff in this that you cannot even by manually editing the json enforce "no password" for the user
1
0
0

Jarkko Sakkinen

Found a null pointer deference in archinstall.

this flips:

root@archiso ~ # cat user_credentials.json  
{
    "!root-password": null,
    "!users": [
        {
            "!password": null,
            "sudo": true,
            "username": "jarkko"
        }
    ],
    "encryption_password": null
}

this does not flip:

root@archiso ~ # cat user_credentials.json  
{
    "!root-password": null,
    "!users": [
        {
            "!password": null,
            "sudo": true,
            "username": "jarkko"
        }
    ],
    "encryption_password": ""
}

it crashes when moving the cursor in the main menu on top of the “disk encryption”.

#arch #archlinux

1
0
1

Jarkko Sakkinen

Edited 1 year ago

Given that I want to switch back to ext4, i need to also reinstall.

I went through manually installed RPM packages, narrowed the list down to 41 most critical, and here’s what I ended up with:

aerc bat bison ccache clang cmake expect fatcat flex fzf gcc github-cli gh git gnupg hatch hyperfine irssi mc mediainfo meson mmv msmtp ncdu neovim openssl pam-u2f pass patch pwgen qemu ranger rclone ripgrep sha3sum socat strace tealdeer w3m zig zola zoxide zsh

These are mapped to Arch Linux package names. I’ll install that distribution because I can just pass that list to archinstall be back in online maybe about ~2h :-)

It goes like this:

  1. Install Arch Linux to VM and use archinstall for this.
  2. Export json.
  3. [Backup json too.]
  4. On bare metal boot from stick and pass that json to the installer and shit will just happen!

Now that I anyway have to reinstall I found out about how this works and it plain just make sense to me…

EDIT: actually 42 packages, gnupg was missing, well anyway…

0
0
0
@moritz It does not matter.

What matters is that do I find enough value or gain in btrfs, so that it is worth of trouble solving any possible issues with it.
1
0
1

Jarkko Sakkinen

I think I reinstall my system with #ext4.

I miss stability, simplicity, recover-ability and compatibility.

I even like journal-based approach and quota's.

And I know *in detail* how it works in the implementation.

So giving up on #btrfs for good.
2
0
1

Jarkko Sakkinen

Really started to like Woodpecker :-) Nicest CI experience so far...
0
0
0

Jarkko Sakkinen

In #kernel QA test applications made with #Rust is one of the better ideas for some time.

Cargo is almost like Docker in this context. I can just compile #BuildRoot image with #cargo baked in, and once the image boots up it can install test apps from cargo.

Super nice approach for doing something more complex than kselftest but going to podman would be over the top...

#rustlang
0
0
4

Jarkko Sakkinen

after a bit of adaptation i feel at home with #woodpecker #ci :-) #codeberg
0
0
0

Jarkko Sakkinen

Using #Storj and local #Nextcloud (one per machine) is actually quite easy:

!/usr/bin/env bash
# Taken from https://fedoramagazine.org/nextcloud-20-on-fedora-linux-with-podman/.

podman network create nextcloud-net
podman volume create nextcloud-app
podman volume create nextcloud-data
podman volume create nextcloud-db

# MariaDB
podman run --detach \
           --env MYSQL_DATABASE=nextcloud \
           --env MYSQL_USER=nextcloud \
           --env MYSQL_PASSWORD=DB_USER_PASSWORD \
           --env MYSQL_ROOT_PASSWORD=DB_ROOT_PASSWORD \
           --volume nextcloud-db:/var/lib/mysql \
           --network nextcloud-net \
           --restart on-failure \
           --name nextcloud-db \
           docker.io/library/mariadb:10

# Nextcloud
podman run --detach \
           --env MYSQL_HOST=nextcloud-db.dns.podman \
           --env MYSQL_DATABASE=nextcloud \
           --env MYSQL_USER=nextcloud \
           --env MYSQL_PASSWORD=DB_USER_PASSWORD \
           --env NEXTCLOUD_ADMIN_USER=NC_ADMIN \
           --env NEXTCLOUD_ADMIN_PASSWORD=NC_PASSWORD \
           --volume nextcloud-app:/var/www/html \
           --volume nextcloud-data:/var/www/html/data \
           --network nextcloud-net \
           --restart on-failure \
           --name nextcloud \
           --publish 8080:80 \
           docker.io/library/nextcloud:20

So no need to use Oracle cloud for this. And instances do not really need to necessarily to sync up given the user count.

0
1
1
And also typst embeds the shield to the footer :-)
0
0
0

Jarkko Sakkinen

Edited 1 year ago

I published source code for my #resume here, which is entirely made with Typst:

https://codeberg.org/jarkko/resume

I tried to take extra care properly cover everything with CC-BY-NC-SA-4.0 before publishing it.

The reason why I posted is however this nice small script that I did:

❯ cat scripts/license-photo.sh 
#!/usr/bin/env sh

exiftool \
  -XMP-xmpRights:UsageTerms="CC-BY-NC-SA-4.0" \
  -XMP-xmpRights:WebStatement="https://creativecommons.org/licenses/by-nc-sa/4.0/" \
  images/photo.jpg
exiftool images/photo.jpg | grep -E "^Usage Terms|^Web Statement"

The script injects CC-BY-NC-SA-4.0 as part of the EXIF metadata embedded to the image.

Not doing this would have caused my weird OCD symptoms and sleepless nights ;-)

Ya, and also in this my Git starts with a “merkle commit”:

❯ git log --oneline      
21f8497 (HEAD -> main, origin/main, origin/HEAD) Initial commit
a79299e 

I.e. “the empty set” is public domain and not enforced by CC-BY-NC-SA-4.0 ;-) I like licensing and security borders that are clear and visible…

1
0
0

Edited the repository a bit.

I find this cool way to create the first commit:

❯ git log --oneline
d210dc8 (HEAD -> main, origin/main, origin/HEAD) feat: ramp up `alacritty-install`
dfba58b

I.e. “merkle tree root” having neither commit message nor payload. my “autistic tendencies” really tickle for this ;-)

0
0
0

Jarkko Sakkinen

Alacritty upstream NAK’d my install script so I created a repository for it:

https://codeberg.org/jarkko/alacritty-install

I also modified it to install the icon and desktop file by default with the perfix ~/.local .

Usage:

alacritty-install -h
usage: alacritty-install [-bhp]
-b <wayland|x11> select the rendering backend
-h               usage information
-p <prefix>      select the installation prefix (defaults to '/usr/local')

Just a convenient way to get the bleeding edge binary, which is convenient because typical Rust app is a single fat binary.

1
0
0
Show older