@bugaevc@floss.social avatar

bugaevc

@bugaevc@floss.social

Unix hacker. I do obscure and cursed things.

I hack on Darling, SerenityOS / Ladybird, GNU Hurd / glibc, wl-clipboard, Owl, etc.

I use GNOME, and contribute to freedesktop / GNOME projects sometimes (systemd, PipeWire, GLib, GTK, etc).

I like Rust and dislike Docker.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

tbernard, to random
@tbernard@mastodon.social avatar

What if "software repair" was a system feature?

Every app comes with its source and flatpak manifest, and there's a "Repair" button in the window context menu that opens it in Builder.

When you're done with your repair it's easy to set a different name/icon (so it shows up as a separate app in the system), install it locally, or share it as a flatpak bundle.

bugaevc,
@bugaevc@floss.social avatar

@alatiera @tbernard exactly, this instantly reminds me of the Endless window flipping feature

brooke, to random
@brooke@bikeshed.vibber.net avatar

gender binary implies the existence of gender plaintext

bugaevc,
@bugaevc@floss.social avatar

@brooke rather, of gender source, which GPL defines as "preferred form of the work for making modifications" 😉

js, to debian

I’m trying to create a package for @objfw and it’s really a big mess. I want to have the same structure as on Fedora, which is a meta package that depends on the subpackages. But I cannot find any documentation on how to do that in Debain other than that debian/control should list them all. Ok, that’s easy. But it doesn’t document how to specify which file goes into which package. Nothing. Nada. RPM? Just look for %files, all neatly documented. OK, so after googling around, you find dh_movefiles. Ah, but that’s deprecated! OK, supposedly I need to use dh_install. Let’s look at the documentation of that. Nothing that mentions packages! So in the end, I do trial and error. And just doing dh_install usr/bin/foo foo/usr/bin doesn’t work. But dh_install usr/bin/foo ../foo/usr/bin does! Is that correct or a hack? I don’t know! Debian won’t tell me!

Dear developers. Your entire packaging system seems to be multiple layers of wrappers around old and horrible things, trying to hide them, but without documenting anything. Please get your documentation in order. Have a look at how Fedora and RPM are documented and learn from it.

Also, for the love of god, please consider using some version control system such as Git, so that it becomes easy to see changes, see what other packages did and learn from them. That would have helped me immensely with seeing how other packages solved that Debian’s custom tooling is too old and chokes on binaries generated by clang because of new debug symbols.

I’ve packaged @objfw for all the BSDs, Alpine, ArchLinux, Fedora, OpenIndiana, MSYS2 and many more and no other experience was nearly as bad as Debian.

PS: And in the end, I’m still stuck, because apparently something doesn’t like the Depends: on one of the other packages built from the same source. And I have no idea why. No useful error message or anything.

bugaevc,
@bugaevc@floss.social avatar

@js @objfw so first of all I agree about Debian packaging being what it is

bugaevc,
@bugaevc@floss.social avatar

@js @objfw but to make packages that are built from the same source depend on each other you, yes, write it out explicitly in debian/control. I'm not sure if implicit dependencies (based on objdump) also work; they might

bugaevc,
@bugaevc@floss.social avatar

@js @objfw to assign files to subpackages, create a .install file, e.g. debian/objfw-foobar.install, containing paths that belong in that subpackage

bugaevc,
@bugaevc@floss.social avatar

@js @objfw I said I agree :)

bugaevc,
@bugaevc@floss.social avatar

@js come on, do I really need to teach you how to ask questions? 😉 Post the exact thing you tried (since it complains about parsing, there's likely a syntax error), and the output with LC_ALL=C

bugaevc,
@bugaevc@floss.social avatar

@js duh, you forgot Description: after the Depends: line and before the actual description

Also, I think the -dev packages are not supposed to be suffixed by the soname version, so it should be libobjfwrt-dev (without 1), but I'm not very sure.

Also do you really need this many subpackages? Can't all the tools go into objfw-utils, can't there be a single objfw-dev, etc?

bugaevc,
@bugaevc@floss.social avatar

@js or rather, you have the Description: line, then Depends:, then continue with the description

bugaevc,
@bugaevc@floss.social avatar

@js https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#run-time-shared-libraries says
"Normally, the run-time shared library and its SONAME symlink should be placed in a package named librarynamesoversion, where soversion is the version number in the SONAME of the shared library." ... "the source package needs to generate a binary development package named libraryname-dev, or if you need to support multiple development versions at a time, librarynameapiversion-dev"

bugaevc,
@bugaevc@floss.social avatar

@js also you missed a step, debian/rules doesn't just call dh_* tools, it calls 'dh $@', and then that does something that ends up calling the dh_* tools, or not, depending on your override_* targets 😁

Also there's this whole dh_auto thing, which tries to sniff things about your build system, and of course guesses wrong for anything non-trivial.

bugaevc, to random
@bugaevc@floss.social avatar

Mutter is the Metacity window manager, rewritten in Dart using Google's Flutter toolkit, primarily targeting tablets and mobile phones.

bugaevc,
@bugaevc@floss.social avatar

@alatiera at least it can achieve consistent 120 fps

bugaevc, to random
@bugaevc@floss.social avatar

GNU on AArch64 now boots up and runs a simple userspace hello world on ✨ real hardware ✨ , booted from U-Boot! 🎉

Kudos to Manolo De Medici for testing & helping track down issues!

If you want to help with Mach / on AArch64 and know anything about writing drivers and/or have an AArch64 board, please get in touch :)

bugaevc, to rust
@bugaevc@floss.social avatar

Looks like the "break rust" easter egg that I added last year is being removed from GCC over being "bloat" and "insulting the GCC users"

Oh well

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

bugaevc,
@bugaevc@floss.social avatar

@ekuber it certainly isn't necessary for correctness, IDK why people brought that up, it is strictly a joke. I left an explanation in the source code, perhaps they've missed it

https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/rust/resolve/rust-ast-resolve-expr.cc;h=741d900460cb58ba1bbb50e03101498514a08d30;hb=HEAD#l105

bugaevc, to random
@bugaevc@floss.social avatar

Let's look into virtualization on ARM

🧵

bugaevc,
@bugaevc@floss.social avatar

@stsquad I know — my understanding (& this thread) is largely based on watching his two talks, since doesn't seem to be much info about it online otherwise.

Thank you for qemu-system-aarch64, it has been immensely helpful in bringing up GNU Mach/Hurd on AArch64 🙂

Do you happen to know what NV1 is intended for? And perhaps any helpful resources on this besides {Arm ARM, Christopher's talks, KVM source, QEMU source}?

fallenvalkyrie, to random

Stop calling it "Sideloading" and start calling it what it is "Installing a program"

Sideloading is a term made up to make users afraid of having choice...

bugaevc,
@bugaevc@floss.social avatar

@fallenvalkyrie it's like jaywalking

bugaevc, to random
@bugaevc@floss.social avatar

I need 'git commit --llm' that would ask me a bunch of questions and then write a commit message for me based on my explanations.

Like, I fixed this complicated issue, and even though the patch itself is quite small, it takes 6 paragraphs of prose to explain what the issue even was and how it could happen.

bugaevc,
@bugaevc@floss.social avatar

And just a few days later — another long commit message, over twice as long (> 2k words according to a quick wc), explaining the need for, and the design of, the new Mach trap that happened because of the AArch64 port.

This is quite possibly the longest commit message I have ever written.

https://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ff6f22408260b191b0348029025432def45736c2

bugaevc,
@bugaevc@floss.social avatar

@uliwitness good question, I don't know! You could do it either way, I don't think there's a single principle that dictates where the reasoning should be documented.

That being said:

  1. The Mach codebase doesn't really have inline documentation explaining how things are to be used from userspace. It does have inline explanations of how something is built internally, e.g. https://git.savannah.gnu.org/cgit/hurd/gnumach.git/tree/vm/vm_object.c#n68
bugaevc,
@bugaevc@floss.social avatar

@uliwitness 2. The overall workflow is I post patches on the mailing list and other people (primarily Samuel) review it. This format puts more emphasis on the commit message than on the diff; guess this is different from e.g. GitHub PR review, where the UI puts emphasis on the diff.

bugaevc,
@bugaevc@floss.social avatar

@uliwitness 3. I don't think anyone would even like having such a long comment next to a rather simple function. Maybe a shorter comment ("This is useful to implement sigreturn on AArch64, where you cannot do it without kernel help") would be more suitable.

bugaevc,
@bugaevc@floss.social avatar

@uliwitness 4. It's not every day that someone adds a new Mach trap :) Last time this happened was in 2013. It should be easily traceable with git blame for years to come.

bugaevc, to random
@bugaevc@floss.social avatar

Alan Wake (1, not 2) first impressions:

It starts by referencing Stephen King! And in general seems to be quite King-ian. It references The Shining too (though the terrible 1980 movie, not the book).

The graphics are meh, but then again, it's a 2010/2012 game.

I am getting the Control vibes from the eerie sounds. Dr Hartman is also a familiar name.

It is structured like a TV series, with distinct episodes, titles at the end of an episode, and "previously on Alan Wake" recap at the beginning.

bugaevc,
@bugaevc@floss.social avatar

🎵 And now to see your love set free, you must crack the witch's private key. Find the Lady of the Light, gone mad with the night; that's how you break SHA-3 🎵

bugaevc,
@bugaevc@floss.social avatar

And... I've just completed the last episode (the second of the two specials).

Remedy, you guys rock!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • mdbf
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • JUstTest
  • tacticalgear
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • modclub
  • lostlight
  • All magazines