this post was submitted on 08 Apr 2024
322 points (93.8% liked)

Technology

59421 readers
4793 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 12 points 7 months ago* (last edited 7 months ago) (2 children)

But if those modifications were known to cause the system to brick after you update, wouldn't it be really nice if it stopped you from doing it?
And not just "yeah we know having done x will cause a bootloop after update, if you don't know to uninstall/fix it it first, too bad."

[–] [email protected] 6 points 7 months ago* (last edited 7 months ago) (1 children)

Linux devs would just make a patch to work with that configuration as it'd be considered a bug.

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

How would that patch be distributed?

Lets take VLC from this Windows example, the one that blocks windows updates is a really old version of it. If you have that, you need to either uninstall VLC or remove it to get Win 11 to update.

If there was a bug where having a really old version of VLC on your system would somehow break if you updated the kernel, would a complicated workaround patch be integrated into the kernel just in case for forever?
Or would the patch work exactly the same way as windows, where it would check for that version of VLC and tell you to remove or update it first?

[–] [email protected] 6 points 7 months ago (1 children)

I see you're unaware of the number one rule of the Linux Kernel : DO NOT BREAK USER SPACE
The patch would be distributed the exact same way that we distribute every single other patch in Linux.

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago) (2 children)

the exact same way that we distribute every single other patch in Linux.

Which is?

I see you’re unaware of the number one rule of the Linux Kernel : DO NOT BREAK USER SPACE

For sure, my linux experience is limited to playing around with raspis and the Steam Deck, and running apt-get update / upgrade and accepting everything at once. I haven't actually even had a need to refuse updating something individually so I have no idea what the protocol is if I wouldn't want to update some application. What I do know is that basically every single linux application has dependencies and if you don't install, update or remove exactly what that application demands you to do, most of them refuse to install or update themselves - blocking updating because you have or don't have something else on your system seems to be basically the norm with Linux.

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

Which is?

Directly patching the code, then letting the distros do their thing.

I have no idea what the protocol is if I wouldn't want to update some application.

You'd just put it in an exclude list in your specific package managers config file for example. The depends are forward compatible and will just keep updating as normal. Very very rarely is there ever a case where forward compatibility is broken, and if it ever is the devs did so for a very thought out reason.

blocking updating because you have or don't have something else on your system seems to be basically the norm with Linux.

It is yes. Because if you don't have a library an application depends on then it just won't run.
Except "have", that's not a real scenario; it's always a matter of not having something; there's packages that may conflict because they provide a different implementation of the same interface, but you'll never be blocked by an application that depends on that interface.
The dependencies are defined by the distro maintainers when they packaged the software.
It ensures that package will function properly when installed.

If you really really want a really really old version of something that depends on deprecated dependencies/libs, there's always portable and universal package solutions that include those specific deps with it instead of relying on system libs.

[–] [email protected] 1 points 7 months ago

blocking updating because you have or don’t have something else on your system seems to be basically the norm with Linux.

i mean yeah, when it does happen that's the correct failstate. The difference here is that it's trivial to troubleshoot and maintain. The chance that this happens is very low, unless somebody is rearranging packages in your repo. In which case that's an easy enough fix, and usually already scripted for. Something to do with AUR, which doesn't touch pacman. Or some hilariously convoluted piece of software kerfuckery.

Usually, it's handled remarkably gracefully.

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

Usually it'll be available as a flatpak or something, which is a special container that can have outdated dependencies and whatnot without impacting the rest of the system.

So if you really need some old version of VLC or something, just wrap it in a container and upgrade away! The upgrade would remove any incompatible apps (not containerized apps, just the system installed apps) and it would be on you to create or install that package if you haven't already (almost everything old I've needed is already available).

So go ahead and use the VLC initial release from 2001 or whatever, you might need to do some archeology to get the right versions of dependencies though.

[–] [email protected] 2 points 7 months ago

idk maybe if you can detec the specific issue, you should maybe like, tell the user.