• 0 Posts
  • 4 Comments
Joined 2 years ago
cake
Cake day: August 10th, 2023

help-circle

  • I despise the way Canonical pretends discourse forum posts by their team members* are documentation.

    I’ve noticed they have been a bit better lately, and have migrated much of the posts to their documentation, but it seems they are doing it again.

    As this is developed, we will update this post to link to the new documentation and feature release notes.

    Pro tip: You could have just made the documentation directly, with the content of this post. Or maybe a blog post. But please stop with the forum posts. They are very confusing for people not used to these… unique locations.

    *Not that people are easily able to find this out when they don’t give any indication that the forum post is something other than just another post by a rando. Actually, I’m just guessing here, based on the quoted reply, for all I know this could be a post by someone unrelated to Canonical. The account is 3 months, and the post itself is identical to a regular forum post from a regular forum member…


  • It actually is a language issue.

    Although rust can dynamically link with C/C++ libraries, it cannot dynamically link with other Rust libraries. Instead, they are statically compiled into the binary itself.

    But the GPL interacts differently with static linking than with dynamic. If you make a static binary with a GPL library or GPL code, your program must be GPL. If you dynamically link a GPL library, you’re program doesn’t have to be GPL. It’s partially because of this, that the vast majority of Rust programs and libraries are permissively licensed — to make a GPL licensed rust library would mean it would see much less use than a GPL licensed C library, because corporations wouldn’t be able to extend proprietary code off of it — not that I care about that, but the library makers often do.

    https://en.wikipedia.org/wiki/GNU_General_Public_License#Libraries — it’s complicated.

    EDIT: Nvm I’m wrong. Rust does allow dynamic linking

    Hmmmm. But it seems that people really like to compile static rust binaries, however, due to their portability across Linux distros.

    EDIT2: Upon further research it seems that Rust’s dynamic linking implementation lacks a “stable ABI” as compared to other languages such as Swift or C. So I guess we are back to “it is a language issue”. Well thankfully this seems easier to fix than “Yeah Rust doesn’t support dynamic linking at all.”

    Edit3: Nvm, I’m very, very wrong. The GPL does require programs using GPL libraries, even dynamically linked, be GPL. It’s the LGPL that doesn’t.


  • [moonpie@osiris ~]$ du -h $(which filelight)
    316K    /usr/bin/filelight
    

    K = kilobytes.

    [moonpie@osiris ~]$ pacman -Ql filelight | awk '{print $2}' | xargs du | awk '{print $1}' | paste -sd+ | bc
    45347740
    

    45347740 bytes is 43.247 megabytes. That is to say, the entire install of filelight is only 43 megabytes.

    KDE packages have many dependencies, which cause the packages themselves to be extremely tiny. By sharing a ton of code via libraries, they save a lot of space.