Linus Was Right, Never Break Userspace

Sdílet
Vložit
  • čas přidán 10. 01. 2024
  • Recently this Reddit post was floating around about deprecated functionality in grep, specifically fgrep and egrep and whether it's ever ok to actually break this old but widely used functionality
    ==========Support The Channel==========
    ► Patreon: brodierobertson.xyz/patreon
    ► Paypal: brodierobertson.xyz/paypal
    ► Liberapay: brodierobertson.xyz/liberapay
    ► Amazon USA: brodierobertson.xyz/amazonusa
    ==========Resources==========
    Reddit Post: / the_deprecation_madnes...
    SCO Xenix: www.scosales.com/ta/kb/105933...
    Removed Utilities: pubs.opengroup.org/onlinepubs...
    Patch Creation: debbugs.gnu.org/cgi/bugreport...
    Grep 3.8: lists.gnu.org/archive/html/in...
    Greb Docs: www.gnu.org/software/grep/man...
    Undeprecate: debbugs.gnu.org/cgi/bugreport...
    =========Video Platforms==========
    🎥 Odysee: brodierobertson.xyz/odysee
    🎥 Podcast: techovertea.xyz/youtube
    🎮 Gaming: brodierobertson.xyz/gaming
    ==========Social Media==========
    🎤 Discord: brodierobertson.xyz/discord
    🎤 Matrix Space: brodierobertson.xyz/matrix
    🐦 Twitter: brodierobertson.xyz/twitter
    🌐 Mastodon: brodierobertson.xyz/mastodon
    🖥️ GitHub: brodierobertson.xyz/github
    ==========Credits==========
    🎨 Channel Art:
    Profile Picture:
    / supercozman_draws
    #OpenSource #FOSS #Linux #Grep #GNU
    🎵 Ending music
    Track: Debris & Jonth - Game Time [NCS Release]
    Music provided by NoCopyrightSounds.
    Watch: • Debris & Jonth - Game ...
    Free Download / Stream: ncs.io/GameTime
    DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.
  • Věda a technologie

Komentáře • 332

  • @LordHonkInc
    @LordHonkInc Před 6 měsíci +36

    "Please re-enable spacebar heating"

  • @wisnoskij
    @wisnoskij Před 6 měsíci +110

    Tar was removed from the spec because it was deprecated decades ago. Everyone was supposed to switch to `pax` in the late 90s afaik. But from what I have seen, it was depreciated because it was broken in ways that has since been fixed. And considering that tar has had 20 years of continued development while no one has ever heard of pax, is pax even better than tar any longer?

    • @BrodieRobertson
      @BrodieRobertson  Před 6 měsíci +47

      I've never heard of pax either

    • @dmacnet
      @dmacnet Před 6 měsíci +44

      Pax is Latin for peace and was the posix attempt to resolve the dispute of whether to use tar or cpio. It didn’t catch on like the committee hoped and we still have all three, like in the xkcd comic about standards.

    • @luancarlosoliveira5128
      @luancarlosoliveira5128 Před 6 měsíci +6

      Only heard of it because of a vulnerability report for Zimbra. One of the components, amavis, would you cpio which was flawed if pax wasn't installed

    • @fxddyms
      @fxddyms Před 6 měsíci +8

      waiting linux world burn when they removing tar "one day".

    • @zahatikoff
      @zahatikoff Před 6 měsíci +8

      ​@@fxddymspax do be a superset of tar, but idk the cli was really confusing to me back when I tried it (granted, only two times, but still)

  • @qlum
    @qlum Před 6 měsíci +108

    So remember folks, Linux does not break user space GNU/Linux does.
    And now you know why the difference matters

    • @l4kr
      @l4kr Před 6 měsíci

      Not really. If you give non-nerds a Linux distro they're just gonna blame "Linux". They don't know what GNU is.

    • @stroodlepup
      @stroodlepup Před 5 měsíci +8

      Lmao

  • @itsthesola10
    @itsthesola10 Před 6 měsíci +231

    maybe Linux doesn't make breaking changes enough, but bloody hell does GNU break things a lot.
    Like, WOW. GUYS. COULD YOU _PLEASE_ STOP MAKING BREAKING UPDATES TO GLIBC FOR *_ONE SECOND_*

    • @LabiaLicker
      @LabiaLicker Před 6 měsíci +41

      The GNU project exemplifies politics > code (except the politics is regarded).

    • @vilian9185
      @vilian9185 Před 6 měsíci +42

      ​@@LabiaLickerI don't believe a religiously motivated development community can ever generate as good code except by pure chance.
      -Linus Torvalts about GNU Hurd

    • @knghtbrd
      @knghtbrd Před 6 měsíci

      You did not consider the exemplary codebase that is TempleOS, did you@@vilian9185??

    • @DDracee
      @DDracee Před 6 měsíci +13

      breaking changes in gcc itself is pretty annoying too, biggest headache of rolling distros and bleeding edge as a whole, keep having to temporally downgrade to do stuff

    • @Makefile_dot_in
      @Makefile_dot_in Před 6 měsíci +5

      @@DDracee i think with gcc usually it's someone invoking ub and that ub changing in which case all bets are off

  • @enemixius
    @enemixius Před 6 měsíci +62

    Since there are obviously no plans to reuse the egrep and fgrep names for anything else, I don't see why they can't stay as aliases forever.

    • @kash1222
      @kash1222 Před 6 měsíci

      an alias doesn't work in scripts rho

    • @enemixius
      @enemixius Před 6 měsíci +12

      @@kash1222 Alias might have been the wrong term. But a symlink or whatever. I know there are already some programs that can detect which command was used to call them and have it imply certain options.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci

      @@kash1222 That's exactly how they're implemented already though. On my computer, egrep is a just this shell script
      #!/usr/bin/sh
      cmd=${0##*/}
      echo "$cmd: warning: $cmd is obsolescent; using grep -E" >&2
      exec grep -E "$@"

    • @kebien6020
      @kebien6020 Před 6 měsíci +2

      Looks like in most cases it uses a wrapper script, but the grep executable also has the ability to detect if it's being called with "$0" set to egrep and it will assume -E and print the warning by itself without the wrapper.
      So distros have the option to either use a wrapper script (with or without the warning) or a symlink (with the warning).

    • @chrstphrr
      @chrstphrr Před 6 měsíci +5

      @enemixius yeah, keeping the aliases for deprecated usage seems a safe thing. This sort of change to finally remove egrep/fgrep costs more time to discuss and expunge than not, and saves nothing appreciable in terms of resources. Making a crontab for a script to purge the crap data one's own browser has in cache would be FAR more effective.
      Removing it outright, that's a cram linux onto a storage/compute/RAM limited embedded application sort of thing. Modern system, not worth it. My ancient 15 y.o. machines... still, not worth it.

  • @kj_sh604
    @kj_sh604 Před 6 měsíci +92

    For those annoyed with the warnings.
    In most rational distros, the warning actually comes from the wrapper scripts for egrep and fgrep, located in /usr/bin/egrep and /usr/bin/fgrep - respectively (they are no longer actual binaries). You can edit these shell scripts to remove the line that `echo`es out the warning.
    It's also fairly simple to make fgrep and egrep wrapper shell scripts as well, if your distro doesn't provide them.

    • @edwinkm2016
      @edwinkm2016 Před 6 měsíci +1

      I assume these lines are on stderr otherwise you get those lines as grep results?

    • @kj_sh604
      @kj_sh604 Před 6 měsíci +2

      @@edwinkm2016 Forgive my ignorance, but I unfortunately, do not know what you mean by "on steer". What I was referencing in my comment was the warning messages like "egrep: warning: egrep is obsolescent; using grep -E" when you run egrep or fgrep. This can be disabled by removing the line `echo "$cmd: warning: $cmd is obsolescent; using grep -E" >&2` in the egrep/fgrep wrapper script, which is the line before `exec grep -E "$@"` (since egrep and fgrep are no longer binaries and just compatiblity scripts on most distros)
      For reference the whole wrapper script for /usr/bin/egrep looks like this:
      ```
      #!/bin/sh
      cmd=${0##*/}
      echo "$cmd: warning: $cmd is obsolescent; using grep -E" >&2
      exec grep -E "$@"
      ```
      So you get the warning "echoed" out before the you get the `grep -E` results. I'm really sorry for any confusion, English is not my first language.

    • @Time4Technology
      @Time4Technology Před 6 měsíci +2

      Some distributions already just patch out the warning as part of their grep package.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci +3

      @@Time4Technology That feels kind of disrespectful to the grep devs.

    • @edwinkm2016
      @edwinkm2016 Před 6 měsíci +5

      Sorry, Spellcheck changed it to “steer”. It should be “stderr”. If it is on stdout it will break the groep feature and it that case the removal of the wrapper would be the better approach. In that case o lot of scripts will at least crash (if set -e is used). That is better than incorrect groep results

  • @potatomaaan1757
    @potatomaaan1757 Před 6 měsíci +110

    I think it's generally okay to remove things that have long been deprecated, but only if there is a good reason to do so. For example removing an old library version that would take active effort to further maintain has the benefit of less work for the project. However, in this case, I don't see how an alias / symlink would have any negative impact at all. What would be the benefit of removing this considering it would probably break a bunch of stuff??

    • @Megalomaniakaal
      @Megalomaniakaal Před 6 měsíci +3

      The docs say you can set up a script for an alias. That's not the issue here.

    • @TVPInterpolation
      @TVPInterpolation Před 6 měsíci +2

      @@Megalomaniakaalyou can, but how about the project can handle it itself? Not everybody will set it, and then wonder why there are issues.

    • @Megalomaniakaal
      @Megalomaniakaal Před 6 měsíci

      @@TVPInterpolation Yes that's what I'm saying, projects/distros or sysadmins at a company/office can set up aliases if they want. The deprecation and removal of E- and FGrep does not affect that what so ever. And distros that want to follow a standard can remove without replacing with alias or anything no problem. This whole thing is honestly a nothing-burger...

    • @orbatos
      @orbatos Před 6 měsíci +1

      ​@@Megalomaniakaalthat's what's already being done, why change it?

    • @alex2143
      @alex2143 Před 13 dny

      ​@@MegalomaniakaalThe question remains though. Why would you remove egrep and fgrep in the first place? Why even deprecate them? It is the clear intention of the developers - but why though? I can't think of one good reason why you wouldn't just make it part of the POSIX standard and require any POSIX compliant system to have those commands.
      It is clearly never going to be fully removed completely. It is way too late for that, there is absolutely no reason to do so, and there are plenty of reasons not to. So it's always going to exist. But now, some scripts that run on POSIX compliant machines are not going to run on other POSIX compliant machines because of the explicit state of limbo that it has been put in by the developers.
      There's 3 options:
      1) push to remove egrep completely and have people not use deprecated commands
      2) have it exist in the weird limbo state that it is in now
      3) just make it part of the standard, because it pretty much already is a de facto part.
      It's okay if Linux has historical artefacts and vestigial parts. It's decades old, and all software is built on layers and layers of older software that came before it and still works fine. As long as those older layers remain fixed and stable, the newer layers will still work fine. But if you want to mess with those older layers, you better have a damn good reason. "Idk just didn't feel like keeping it around" is not a damn good reason.

  • @theepicslayer7sss101
    @theepicslayer7sss101 Před 6 měsíci +97

    they kept it for like 2 decades, unless they can prove a reason why it is a problem to keep it, i wonder why bother making work on removing it and also making work for all the programmers who uses it in the many places it probably is... kind of a waste of electricity and productivity for all the clean up this causes in my own opinion.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci +5

      I'm not really sure what's being deprecated. According to what Brodie read out, the reason for egrep and fgrep was because it made sense to break up programs into smaller binaries back in the day but that's not necessary any more. Removing the ability to compile grep into different programs is inherently going to prevent the egrep and fgrep commands from working anymore. The actual change from the user side just requires a syntax change. For those who don't want to do that, backwards compatibility can be maintained by just making shell scripts that alias the commands.
      Sure it would be trivial for the grep devs to provide those scripts but why should they do things that encourage the wider development community to keep using old commands in new code out of laziness? If they take away the guarantee that that that syntax will be used then it will push devs to use the new syntax (which has worked for 20 years) on new code.

    • @schwingedeshaehers
      @schwingedeshaehers Před 6 měsíci

      not sure for that problem in particular, but often an shell alias is enough

    • @Ormaaj
      @Ormaaj Před 6 měsíci +1

      It's like almost zero work. I'd rather have it break so I can find it and fix it.

    • @theepicslayer7sss101
      @theepicslayer7sss101 Před 6 měsíci +1

      @@Ormaaj well from my point of view, there is 0 reason to change it other than "an other method" exist meaning a group of 10 people will break things for thousands of programmers to have to pick up old code and change it. if they don't then it will stay broken. if it is somewhat vital, then someone will need to pick up from the available code and fork it, then tons of project will have to take from that fork...
      kinda like a pyramid, the top breaks things and everyone under is stuck fixing things... but in this case, there is not really a gain to change it that i can see, it is just breaking things for the sake of change.
      like i get it when you have things like the log4j thing where it has to change no matter what but here, it is really just some arbitrary change that does not change the result, only the method used for that result.
      anyhow i am too much out of the loop to know the gains, maybe there is more to maintain due to how this is built so in the long run it might save time, but from this video alone, it only look as unimportant as a aesthetic change unlike a functional one.
      like i said, i am too much out of the loop to know the gains of that change.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci

      @@Ormaaj I was thinking the same thing. I was gonna delete the egrep and fgrep scripts just to see if anything really breaks

  • @Poldovico
    @Poldovico Před 6 měsíci +15

    I've but recently learned about egrep. I thought it was rather useful. Had no clue it'd been deprecated since 2007.

  • @shaunkruger
    @shaunkruger Před 6 měsíci +27

    Can we start to apply this kind of rigor to windowing toolkits? If Gtk had even a quarter of this interface compatibility it would be a lot easier to commit to building apps in it.

  • @blinking_dodo
    @blinking_dodo Před 6 měsíci +46

    Unless there is a reason like bugs or complications due to it, i see no need to deprecate something.
    And "don't break userspace" can be extended to "don't break things for users".

    • @elzabethtatcher9570
      @elzabethtatcher9570 Před 6 měsíci +22

      Removing useless or unwanted features is generally good for the package, since it makes codebase smaller and easiser to support by the programmers. Considering core system things tho, deprecating them is always a huge risk and probably not worth it.

    • @Alias_Anybody
      @Alias_Anybody Před 6 měsíci

      @@elzabethtatcher9570
      If you want to replace some features or program AND ACTUALLY WANT IT TO STICK you unfortunately can't half ass it. At first, just say it's depracated for the giga nerds to notice, but that phase can't last for decades, you quickly have to move on to the "stop using this you wankers" phase. It has to be agressive enough that at the point when you actually remove it, new stuff hasn't been made with the old stuff in mind for a very long time, so the side effects are managable.

    • @Shrapnel_Music
      @Shrapnel_Music Před 6 měsíci +9

      You do "Not" want unused/old/barely used code in anything kind of project. That is a huge security risk and makes the project worse and make people keep using old stuff instead of moving on.

    • @denoww9261
      @denoww9261 Před 6 měsíci +8

      @@Shrapnel_Music Normally I'd agree but we're talking about fgrep and egrep. I just checked - on my system, these files are four lines each: the first being a shebang, the next two being the deprecation warning, and the last being `exec grep -F/-E "$@"` respectively. To call this a "huge security risk" that "makes the project worse" is a pretty big exaggeration.

  • @jort93z
    @jort93z Před 6 měsíci +8

    it saves like 40 bytes, who cares, just leave it.

  • @Finkelfunk
    @Finkelfunk Před 6 měsíci +33

    I can see why binaries like ssh or curl can get deprecated, they are actually security relevant.
    But for egrep and fgrep... like bro, it's a text search. How in the hell can this be deprecated? Like yeah, old issues aren't fixed in those versions but if you work with grep to the extent that you actually encounter those issues then you sure as hell don't use those two binaries anyway.
    And most distros should just link to grep by default via the shell. This should be such a non issue.

    • @temthelem
      @temthelem Před 6 měsíci +22

      A lot of distros just make egrep & fgrep a wrapper for grep anyways.
      It's wild why this is "deprecated", because as long as grep -F and grep -E act like fgrep & egrep respectively, there should NEVER be an issue with these wrappers.

  • @alexfedorov1160
    @alexfedorov1160 Před 6 měsíci +3

    meanwhile Gentoo maintainers:
    # Delete the upstream wrapper variants which warn on egrep+fgrep use
    # Install egrep, fgrep which don't warn.

  • @MechMK1
    @MechMK1 Před 6 měsíci +9

    I honestly don't understand why they would remove egrep and fgrep other than "we *technically* deprecated it so we're *technically* in the right for doing so". I don't see the practical advantage. Just define egrep to be the same as unzip, e.g. a redirection with a flag.
    Like, don't get me wrong. I understand when projects deprecate certain ways of doing so, so that *eventually* they can streamline code and make things more sensible. But this isn't doing that.

    • @kreuner11
      @kreuner11 Před 6 měsíci +2

      Alias egrep to grep -e

    • @Knirin
      @Knirin Před 6 měsíci +2

      @@kreuner11They already do.

  •  Před 6 měsíci +15

    They should have put the warning there 20 years ago

    • @le9038
      @le9038 Před 6 měsíci +2

      lol

    • @Alias_Anybody
      @Alias_Anybody Před 6 měsíci +4

      Yeah. Like with everything, don't try to recondition your users 5 minutes before you throw it out, make sure 95% have switched beforehand by making it increasingly annoying. Sure, people are lazy and don't like change, but those aren't life changing things either.

  • @ok-tr1nw
    @ok-tr1nw Před 6 měsíci +5

    Why deprecate them when they are literally just wrappers for grep

  • @samuellourenco1050
    @samuellourenco1050 Před 6 měsíci +8

    grep and tar are often used in installer and uninstaller script. Removing them will break deployment of many packages. Removing packages, even if deprecated, is always a very bad idea, and specially now that storage spaces are getting larger.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci +5

      Nobody is suggesting removing grep, just the egrep and fgrep commands/binaries. The actual functionality is provided by grep but uses a different syntax that is a drop in replacement.

  • @davidjohnston4240
    @davidjohnston4240 Před 6 měsíci +35

    I'm still pissed about when they broke userspace threads to replace it with fancy new pthreads stuff. It broke some eternally licensed CAD tools I was using.

    • @Psychx_
      @Psychx_ Před 6 měsíci +2

      Be a proper nerd and code a shim/wrapper.

    • @davidjohnston4240
      @davidjohnston4240 Před 6 měsíci +3

      @@Psychx_ It was a binary from a cad vendor, with built in protections. So shimming it wouldn't work. Also this was for my day job so I switched to a new tool.

    • @thewhitefalcon8539
      @thewhitefalcon8539 Před 6 měsíci

      ​@@davidjohnston4240so it was hard coded to only use a certain libc file hash?

    • @username7763
      @username7763 Před 6 měsíci +3

      I've ported and maintained applications on Linux and it is terrible trying to support it. Yeah part of the reason more apps aren't ported to Linux is the demand but a large part is it really is a moving target. You have all the different distros and everyone has their favorite and then each distro changes things between releases.

    • @username7763
      @username7763 Před 6 měsíci

      @@davidjohnston4240 You should have switched away from Linux. There is a lot I love about Linux, but application support and compatibility are terrible.

  • @pv2b
    @pv2b Před 6 měsíci +7

    This is insanely stupid. The amount of storage space and man hours that could ever be saved by removing these commands is vastly outweighed by all the wasted time energy and storage space occupied by talking about removing it. Keep it in, it hurts nobody, and it saves a few keystrokes if you choose to use it interactively.

  • @undefined6341
    @undefined6341 Před 6 měsíci

    Heh, actually witnessed this reddit thread as it unfolded. Great summary and context.

  • @gneruinseruihnutshnu
    @gneruinseruihnutshnu Před 5 měsíci +1

    We forgot how to write things that just works. Now everything have to be connected and constantly changing. Network stuff just is not secure by default and have to be constantly patched by bandaids. One minor update snowballs into costly updating all dependent systems. Everything moves out of our hands and control into subscription based external fragile mess based on misplaced trust.

  • @MultiBananahands
    @MultiBananahands Před 6 měsíci +1

    I saw that warning the other night and thought it was weird. Thanks for the explanation.

  • @CMDRSweeper
    @CMDRSweeper Před 6 měsíci +3

    I like to use Bohemia Interactive as an example of how to handle things.
    Back when they made a game called Operation Flashpoint, they misspelled guerilla in the script name upon release.
    So any scripts that wanted to call something specifically related to that side, had to misspell the same way to make their scripts work.
    This was patched later, but forever since then, you could still call the old misspelled version to make your scripts work, as removing or deprecating it, would cause massive breakages to a lot of user missions and addons out there.
    I do recall it was there in Arma 2, however I have never done any scripting in Arma 3, so I can't verify if it is still in there, but I wouldn't be too surprised if it is.

  • @DaniedeJager77
    @DaniedeJager77 Před 5 měsíci

    A similar thing happened to the Type 99 - SPF type DNS record. A lot of time went in to get the record type approved and added. In the end it was deprecated and now only TXT for SPF is required. No longer needing to add both and keep them in sync.

  • @9darkspells
    @9darkspells Před 6 měsíci +7

    How is this even an issue thats ever shown up? I would expect every single package package maintainer that maintains some variation of grep to have simply added a global alias for these programs. I know all my systems currently do exactly that without me having had to lift a finger.

  • @ahettinger525
    @ahettinger525 Před 6 měsíci +4

    it's all dumb, but I've learned to expect the dumb from the gnu project. If they were going to remove support for the _functionality_ I could understand it, but the functionality, and all the code that implements it is going to remain, it's just going to be accessed by the -E and -F flags, rather then running it as egrep and fgrep. The code to check what it's being ran as and behave as if the flag was passed adds less size to the binary then the string warning of it's deprecation!

  • @mikkels5724
    @mikkels5724 Před 6 měsíci +2

    Have used grep on various systems for 20+ years. Didn't know about egrep and fgrep. But have worked on systems that had a "native" grep and also GNU grep installed...

  • @Defhammer2718
    @Defhammer2718 Před 6 měsíci +23

    A question I have to ask is; where do you want linux and open source software to be in the world? Personally, I have seen machines that are tens of Thousands of Dollars and run software that is easily 10+ years old. This could be medical equipment, industrial machine tools, city infrastructure, business systems,etc. They may be small in the number of installs, but could be disastrous if they fail to work.
    This is one of the things that has kept windows holding strong in the business space for so long: Backwards compatibility that goes back to the DOS days.
    The reality is, if you want widespread use of linux and open source everywhere, then developers need to have an expectation that their software is going to end up in critical things that last a really long time. You will have to accept that some software will be critical but can't be maintained anymore. (granted it may be less of a problem given open source's nature but is a problem with proprietary software running on top of open source).
    I do notice that reasoning for deprecating something is usually because it does not fit the current philosophy or logic. This makes since because removing feature is one way to maintain a piece of code. but the reality is.... reality is messy.

    • @transcendtient
      @transcendtient Před 6 měsíci +2

      I think 20 years is long enough to wait to remove deprecated code.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci +3

      @@transcendtient I agree. This is a change that's being blown way out of proportion especially considering the scripts that enable the backwards compatibility can be made very easily by those who need them. The use in medical equipment, industrial machine tools, city infrastructure, etc doesn't really change anything either because all those things don't get updated without a lot of testing first.

    • @scrambledmandible
      @scrambledmandible Před 6 měsíci

      I swear to God I've watched a video that mentions these exact points

    • @myownfriend23
      @myownfriend23 Před 6 měsíci

      The issue has nothing to do with a feature being removed. It's strictly syntax. The only "feature" that would be removed from the actual binary, if it hasn't already been removed years ago, is the ability to compile grep as multiple binaries. For those that need the aliases for those commands to work, they can just create shell scripts that are one line long to restore the functionality.
      For those that still use egrep and fgrep in scripts though, there's no reason not to convert them to the new syntax. It can literally be done with Find and Replace.

    • @Defhammer2718
      @Defhammer2718 Před 6 měsíci

      @@myownfriend23 You are right. this is a change of syntax to use functionally. devs can go in and change code so that it works again. that is a great thing about open source.
      I realized reading from the comments something. my point is less valid because the software often running on these pieces of equipment is mostly developer abandoned proprietary software. Open source software will keep on working as long as the code is open and there are developers to work on it.

      I guess is the real question is: What is reasonable amount of burden to put on others to adapt when you change how a piece of software works?
      You say there is no reason not to convert. I can give one. "my project is big,old but critical and I need to tell my boss that this work is necessary so they can allow me to take the time to do the fix and validate." Not all the reasons are technical, it could be political and cost money.

  • @eduardoroth8207
    @eduardoroth8207 Před 6 měsíci +13

    i think that for super old things that almost nobody uses, but, SOME people still might use it, (that weird, obscure intel architecture for those printer chips that you made a video about, is NOT the case) i think it would be cool if the feature was removed on the binary package, but, can be obtained on the source package by enabling it on the build system or whatever. although, i think i might be talking nonsense, and that might be pointless. not sure.

    • @ayaya-ayaya
      @ayaya-ayaya Před 6 měsíci +5

      Stuff usually gets removed for maintenance reasons. If something stays in source, then it still has maintenance cost. Whether it gets enabled in a final binary is an unrelated topic.

    • @Vekstar
      @Vekstar Před 6 měsíci

      ​@@09f9was literally having this issue when trying to install ns-cde

    • @eduardoroth8207
      @eduardoroth8207 Před 6 měsíci

      @@ayaya-ayaya yeah that's what i thought

    • @ayaya-ayaya
      @ayaya-ayaya Před 6 měsíci

      @@09f9 Less of a reason to remove it then.

  • @MadMathMike
    @MadMathMike Před 6 měsíci +2

    To echo what others have said, I think it's really about maintenance and opportunity costs. If there is no maintenance for egrep and fgrep, they should be undeprecated and left alone. If they require significant maintenance, or their existence is preventing progress on another important initiative, then the deprecation warning should be put in place with a (generous) date listed for their removal.

  • @cjcox
    @cjcox Před 6 měsíci +4

    In old Unix, there were good reason for grep, fgrep and egrep because size, algorithm, etc. varied. It mattered. It still matters, but now we are "wealthy", so we don't consider things like memory, algorithms, etc. GNU grep, obviously as an "all in one", doesn't matter of course. But there is a good historical reason. Does history matter? I think so. Eventually things do change though. But yes, those changes can mean that really cool older stuff will no longer function, and in some cases, will practically never ever function again.

    • @cjcox
      @cjcox Před 6 měsíci +3

      Replying to self. I still program in good ole S.R.Bourne style bourne shell. What does that mean? My scripts will run practically everywhere, on many shells and shells over time. But of course, that would imply the use of grep, fgrep and egrep for universal portability. If all is GNU grep, then we might say "bash only" constructs as well. Is that ok? Anyway, something to think about.

    • @Spencer-wc6ew
      @Spencer-wc6ew Před 6 měsíci

      Wouldn't grep just use the different algorithms when you pass those arguments?

    • @flarebear5346
      @flarebear5346 Před 6 měsíci

      It mattered because of program size. This commenter still thinks there are pdp 7's in production for some reason​@@Spencer-wc6ew

    • @vytah
      @vytah Před 6 měsíci

      ​@@Spencer-wc6ewWhat's even more important is that the algorithm does not depend on that option, it only changes the syntax of the pattern. Normal grep and egrep have the same feature set and both can handle literal patterns like fgrep (although with more escaping). I could see a use case for separate smaller fgrep, but that'd be some really weird edge case.

  • @Jeffsa12
    @Jeffsa12 Před 6 měsíci +6

    Now lets apply this to a much further reaching and more complex depreciation scenario, the wayland protocol. There either needs to be a complete X11 feature set to wayland protocol interpreter before any significant adoption of wayland is implemented. (yea, theres xorg-xwayland but AFAIK it doesn't work for the vast majority of stuff) Or better yet, a complete from the ground up rewrite of the wayland protocol itself to maintain the functionality of the vast majority of the current Linux graphics stack. Might as well rename it X12 at that point and eliminate all the wayland hate at the same time. I'm in the "never, ever, under any circumstances depreciate anything from the user space" camp if it wasn't obvious.

    • @nonstandarduser_
      @nonstandarduser_ Před 6 měsíci +2

      You're obviously new to this channel, Brodie has like a million videos covering the wayland discourse and there are counterpoints to what you're saying here.

  • @lesh4357
    @lesh4357 Před 6 měsíci +1

    I would say remove from /bin or /usr/bin etc. and add "use grep -E in scripts.... " as preferred correction and "add alias egrep='grep -E' ... to ~/.bashrc" as NON PREFFERED option to the warning message.

  • @alexstone691
    @alexstone691 Před 6 měsíci +1

    Why was CPIO removed? I have seen it quite often in commands in android dev

  • @guss77
    @guss77 Před 6 měsíci

    @Brodie Robertson - is you wallpaper HexWorld Autumn from Plasma 6 wallpaper competition?

  • @123Daktary
    @123Daktary Před 6 měsíci +4

    If you are throwing out error messages and/or ar intentionally making deprecated functionality slower, then just wait a reasonable amount if time before actually removing anything. It would also help for common tools if the maintainers would just reach out to various publications and influencers and state that they will remove x functionality in the next y years.
    In actual software development there are some standards and conventions. One of the common convention is to not use deprecated functionality for new or maintained software. If you are developing a new script and know that a tool is deprecated or just happen to see the message, then don't use the old syntax!
    I don't agree to keeping long deprecated stuff around just for the sake of it. One example that constantly gets on my nerves is the "comma cross-join operator" for standard SQL. This is deprecated since 1992, yet people are still writing new code in this manner because they know it won't go away any time soon and are just contributing to the problem. The major issue is that those queries will be a lot less performant than the standard calls and most importantly, newer developers don't have any idea what is happening there as no modern text-book and documentation make any reference to that style of coding. This won't disapper anytime soon as database providers still use this functionality for their internal working, even though they sometimes warn the users to not make use of the deprecated code...
    I worked with companies that were using ancient software and dependencies and often it would take less time to rewrite a module than it would be to just create a long strings of hacky workarounds.
    The grep problem is just a syntax issue. It can be dealt with in many ways and since the warning message, a lot if developers / projects updated their stack with the new syntax to iron out the error logs.

    • @kuhluhOG
      @kuhluhOG Před 5 měsíci +1

      and it becomes REAL funny when downstreams start to patch these deprecation warning out

    • @clovernacknime6984
      @clovernacknime6984 Před 5 měsíci +1

      Python isn't afraid of breaking backward compatibility, and the result is that some Python programs simply package a program-local Python install with them to avoid dealing with that nonsense, and even more importantly, to spare the user from having to spend some quality time in the coils of anaconda or whatever the latest attempt to work around the problem is.

  • @HenningRogge
    @HenningRogge Před 6 měsíci

    In Debian Stable (currently Debian 12) both egrep and fgrep are bash scripts running grep with the corresponding option.

  • @nonstandarduser_
    @nonstandarduser_ Před 6 měsíci

    Kinda feels like how the home directory is littered with various dotfiles, due to applications not using the XDG base directory standard. For instance, bash places .bashrc et cetera directly at home dir because of 'historical reasons'... Even if we do let bash off the hook, there are tons of other applications doing the same without a proper excuse. Some things must change for the better, and yet cannot realistically be changed due to pragmatic reasons, or simply due to resistance to change.

  • @tiffcz3863
    @tiffcz3863 Před 6 měsíci +1

    Learnt about grep -F and grep -E before learning there was an egrep or fgrep. Idk, looks like either work

  • @xeenypl
    @xeenypl Před 6 měsíci

    8:53: it was a clear intention in open and free BSD is same source file and same executable only sym-link to egrep and fgrep, and is was done this way probably for long time, also unix v10 (and down) nor plan 9 provides those application. So i will rather say they wasn't intended at all.

  • @kuhluhOG
    @kuhluhOG Před 5 měsíci

    Here from an entirely software dev pov. When you deprecate something, you can only really count it as such, when the user gets yelled at about it by something. The compiler, the software itself (like the warning here) etc. Most programming languages let you mark your stuff for that too (even modern version of C and C++ with [[deprecated]]).
    Afterwards it depends on your version numbering schema. If you use semver (or a derivative), you remove it in the next major version. If you use something else (which can still look like semver, look at the Linux kernel as an example for that), you remove when you think it was a reasonable amount of time (the longer the thing existed, the longer the wait).
    In all cases you should announce the removal of it beforehand.
    On the other hand, I will just cite pretty much every open source license I know of (in this specific case copied from the GPL):
    THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    Although if you really act in a "I don't care" kind of way, don't be surprised when more and more users stop using your software.

  • @MarcCastellsBallesta
    @MarcCastellsBallesta Před 6 měsíci +1

    I believe I've had them aliased since 2008.

  • @KineticFaction
    @KineticFaction Před 6 měsíci

    Couldn't this issue be left up to the various distros? Something like RHEL would probably choose to maintain backwards compatibility and alias the commands where as other distros may choose not to.

  • @d00dEEE
    @d00dEEE Před 6 měsíci

    Yeah, 'which' on debian a couple years ago...

  • @jeremyandrews3292
    @jeremyandrews3292 Před 6 měsíci +4

    This is exactly how I feel about a lot of things on Linux. Sometimes it really just seems like change for the sake of change... like, maybe sometimes you can justify it in the name of security or maintenance burdens, but how do you justify this one? egrep and fgrep are faster to type than grep -E and grep -F... isn't that a good enough reason to keep them around for people who are used to them? And since when has GNU ever cared about complying with POSIX out of the box? I've tried writing shell scripts that work across different shells that claim to be POSIX compliant before... and let me tell you, bash has a ton of GNU extensions and doesn't follow POSIX strictly. Anyone who thinks their bash scripts are POSIX compliant is probably mistaken. Are we just being asked to live without egrep and fgrep because they weren't GNU extensions, but old POSIX extensions, and thus "not made here," meaning they can drop support for them and give the middle finger to people who complain about them not being POSIX compliant? It seems like it's probably some kind of childish GNU attitude where they feel like being able to drop support for something they only adopted because of POSIX in the first place makes them feel empowered or something. Things like this make me really think that some developers out there are just jerks who live to break people's workflows and punish people for having old habits and not keeping up with new trends, to make sure they can't continue to function on a modern system and force them out. Very much the old hippie "don't trust anyone over 30" mentality where they don't want anyone over that age to be comfortable in their spaces.

    • @transcendtient
      @transcendtient Před 6 měsíci +6

      Whining about losing an alias you can setup yourself is pretty funny.

    • @myownfriend23
      @myownfriend23 Před 6 měsíci +3

      "egrep and fgrep are faster to type than grep -E and grep -F... isn't that a good enough reason to keep them around for people who are used to them?"
      No not really, especially when you can alias those commands yourself if you really don't want to change a very small habit.

  • @treelineresearch3387
    @treelineresearch3387 Před 5 měsíci

    I don't know why they couldn't do like busybox does and look at what it was invoked as, so if you call grep by a `egrep` link it acts as if you used `grep -E`. Seems stupid easy, eliminates actually having egrep and fgrep codebases to maintain, and preserves compatibility.

  • @muellerhans
    @muellerhans Před 6 měsíci +2

    Things that hit me:
    Removal of scrollback
    Removal of ashmem (used by Anbox and some similar things)

    • @luisortega8085
      @luisortega8085 Před 6 měsíci

      yeah waydroid works without it @@09f9

    • @user-ro1cc8tz6d
      @user-ro1cc8tz6d Před 6 měsíci

      wait anbox is dead... 💀

    • @muellerhans
      @muellerhans Před 6 měsíci

      @@09f9 Commit 721412 staging: remove ashmem

    • @muellerhans
      @muellerhans Před 6 měsíci

      And KH and Hellwig were fine with breaking it cause apparently Anbox is retro cause muh duh Android 7 (for now and well okay now likely forever since it was deprecated last year... unless the xdroid devs stop violating GPL and publish the code of their Anbox fork that works better than Waydroid on my X11 desktop... or unless somebody comes around and builds working up-to-date Anbox images, kek. And Anbox Cloud is still a thing iirc.) and it's easier to fix the userspace thing than to maintain ashmem or something like that...

  • @PaprikaX33
    @PaprikaX33 Před 6 měsíci

    I would say to keep the egrep and fgrep as is, unless the POSIX_ME_HARDER environment variable is defined.

  • @dreamcat4
    @dreamcat4 Před 6 měsíci

    i shall tell you what i find most amusing about grep.... it was originally a feature within ed, the original unix text editor. since back in the day before vi existed, you would to text edits with ed... but what is super humorous is that whenever i want to write automated posix compliant shell scripts, then all the text edits are indeed inevitably performed with a series of little sed and grep commands. so even to this very day, it's still the same underlying way of doing things.
    now i know some people have switched over to using bash builtin string functions for some of this stuff. however perhaps idk... not everybody wants to depend upon bash since some systems might not have it installed. for example embedded systems and routers. or things that only comes with a busybox shell. or because if the bash versions have certain incompatibilities idk.
    as for egrep and fgrep - sorry but i have never used them and its just plain dumb to assume or depend upon them. and anybody who does is being dumb since you can always grep with the flags. otherwise sure do a little shell function and then its fine. no idea why people think it was ever a good idea to begin with.
    however in a more general sense the concept of not deprecating things people are using is entirely valid and justified. because it's just simply not necessary to get rid of. however if you understand the broader llinux world then it makes sense for example because many constrained shell environments or pre boot environments like grub or busybox or initramfs and whatever. that then needs to execute some critical script. yet the cost of embedding extra programs costs some limited space on a bios firmware chip or things similar

  • @username7763
    @username7763 Před 6 měsíci +1

    Linux lack of backwards compatibility it a glaring limitation compared to Windows. You are mostly fine if all you run is software from your distro. But as soon as it you look at 3rd party applications it is very random what does or doesn't work. Windows, historically has been the best on backwards compatibility but even that hasn't been good lately.

  • @tauiin
    @tauiin Před 6 měsíci

    what is your font?

  • @hermdude
    @hermdude Před 6 měsíci

    Well, the only time the breaking of userspace is acceptable afaik is when a major version has been released. Now grep's 3.11, so when it goes to version 4, then they could remove it.
    And then there's Kubernetes where those Google developers break userspace all the time while still in version 1.x.

  • @Mitsunee_
    @Mitsunee_ Před 6 měsíci

    one solution for legacy scripts would be a shim for egrep and fgrep that replaces them with a version without warnings, which could be sourced at the top of the script

  • @KiraSlith
    @KiraSlith Před 6 měsíci

    I have to wonder what about egrep and fgrep requires maintenance or enough storage to bother changing/removing them. They were just itty bitty blocks of code to begin with, in their own convenient and isolate module, I'll bet they didn't use any native machine code so they were perfectly portable, and they did their job faster than their fully-integrated grep equivalents, so... what's the point of cutting them?

    • @orbatos
      @orbatos Před 6 měsíci

      Nothing, of course. This is freaky the result of arguments that made more sense 30-40 years ago, and the last 18 years of it still being there shows how little the entire industry wants to change it.
      We really are talking about something so trivial most modern users only ever find it missing when they use BusyBox or some other embedded system.

  • @WERTBON
    @WERTBON Před 6 měsíci +10

    There are many deprecated APIs in the Kernel, that are most likely never actually be removed or are rather replaced with a wrapper around newer API calls... And we're talking about aliasing 2 flags for a program to separate commands which is inherently completely transparent?
    I mean, nobody actually ships a raw POSIX compliant shell at /bin/sh, most systems use bash and just symlink bash to /bin/sh because it actually just works. Everyone who doesn't do it like this with their default shell might actually be insane

    • @formbi
      @formbi Před 6 měsíci +2

      AFAIK Ubuntu and Debian have dash on /bin/sh

  • @RickYorgason
    @RickYorgason Před 5 měsíci

    Stuff like egrep and fgrep has minimal impact on the system, but it has a bigger impact on the documentation. You said yourself that the documentation is a mess; well, having to dedicate space to describing an obsolete alias is part of what makes the documentation a mess. It's also not a great learning experience when some sites tell you to use egrep and some sites tell you to use grep -E.
    I wonder if uutils will support egrep and fgrep.

  • @classicrockonly
    @classicrockonly Před 6 měsíci

    I like how folks are complaining about egreg/fgrep being removed after 18 years of being deprecated, while we have OpenBSD in the corner dropping syscall in a couple months between releases lol

  • @kazriko
    @kazriko Před 5 měsíci

    I don't use egrep or fgrep, but just as a test I did a grep on my /usr/bin folder to see what scripts in the system use it. There's about 13 of them using it directly, and a few that have redefined to usin $EGREP which is replaced by grep -E. There's only a few using fgrep, and one or two of them with a $FGREP define. These aren't scripts I wrote, but rather ones distributed with my OS distro. I bet I'd find even more in places like /usr/share, but that place is such a mess that I don't want to look. (oh my zsh actually defines fgrep and egrep macros though, so even if they're deprecated many people might not even notice and still use them in the scripts.)

  • @ivolol
    @ivolol Před 6 měsíci

    A lot of these things don't seem to be 'problematic' at current, but over time they turn into opportunity costs for other things into the future. A lot of tiny crystals that set thinking into stone, rather than keeping it malleable and able to adopt new ways of doing things.

  • @darsparx
    @darsparx Před 5 měsíci

    I know it probably makes a headache but I feel like a lot of this could be solved by using aliases for that previous functionality....that probably sounds easy until the -E and -F add more functionality somehow.... 😅

  • @genstian
    @genstian Před 6 měsíci

    The kernel breaks stuff all the time, so time to just break things!

  • @TechnologyGeek862
    @TechnologyGeek862 Před 6 měsíci

    I've seen those messages when running the egret for the past year. I get that they want to remove it and it's been deprecated so if something breaks you should not be surprised but why remove it in the first place.

  • @philipmrch8326
    @philipmrch8326 Před 6 měsíci

    I've never heard of them

  • @bruderdasisteinschwerermangel

    I've been using linux systems for a while now, starting in school and now professionally for a couple of years... why am I hearing about egrep and fgrep for the first time now?

  • @MetroidChild
    @MetroidChild Před 5 měsíci

    As long as versioning is clearly labelled and communicated I don't mind breaking changes.
    That's one of the reasons why I prefer version 1.0.4 etc. over date tags like ubuntu versions.
    GNU taking decades to drop support is the issue, apple deprecating features left and right in early swift was better.

  • @helidrones
    @helidrones Před 6 měsíci

    Not only tar removed from the standard but also cpio … ????

  • @Kolor-kode
    @Kolor-kode Před 6 měsíci +1

    From my cold dead hands

  • @edelzocker8169
    @edelzocker8169 Před 6 měsíci

    Oh... okay...

  • @ChurchHatesTucker
    @ChurchHatesTucker Před 6 měsíci +5

    alias egrep='grep -E'
    OK, it's a little more complicated than that, but why remove the functionality even if you remove the actual program?

    • @BrodieRobertson
      @BrodieRobertson  Před 6 měsíci

      It's not much more complicated, that's basically what egrep does

  • @stevenclark2188
    @stevenclark2188 Před 5 měsíci

    Grep can still look at $0 and figure out what it was called as. All it should take to deploy these is a couple of symlinks.
    See also flash_eraseall which we're supposed to discard for a set of options to the low-level flash_erase.

  • @Doctor_X
    @Doctor_X Před 6 měsíci +3

    while i dont use egrep or fgrep... i agree with you on removal of functionality,. It is kinda like ifconfig. It was simple, did the job, and ubiquious. I am in Unix and linux every day. It is nice not to have to worry what command is what depending on OS. In the case of ifconfig for ip addr., I have never found the reason for getting rid of it. This isnt like pipewire vs pulseaudio. There was real issues that some where having. Pulse audio been fine for me, however i can see the other side. I just dont get removal of stuff people actually use. Gnome file program removing compact listing for example.

  • @marsovac
    @marsovac Před 6 měsíci

    Imho this is not a real problem as Wayland removing X features, because there are workarounds for this (that don't require rewriting the source code of programs).

  • @fanshaw
    @fanshaw Před 6 měsíci

    1. flag egrep/fgrep usage to system logs, not just the console, including what called it.
    2. let the distros handle it with grep-legacy and grep packages. No-one wants to install something named "-legacy". New systems or major upgrades should go through validation processes so that is the time to break things, but also provide a quick fix. Having a separate package would also provides stats about usage.
    While there is no reason to remove cruft "if it doesn't have much impact" the cruft problem is that it accumulates across many things.

  • @conjurermast
    @conjurermast Před 6 měsíci +1

    Someone explain it to me like I'm 5, why does grep need active development, it worked perfectly fine 25 years ago, it probably doesn't need security patches, so WHY?

    • @BrodieRobertson
      @BrodieRobertson  Před 6 měsíci +1

      Because sometimes software has bugs, or dependencies change or a whole range of other reasons. This idea that you can just write software once and then never update it is completely false

  • @EvanOfTheDarkness
    @EvanOfTheDarkness Před 6 měsíci +1

    Putting in those warnings are stupid. If GNU doesn't want to provide egrep and fgrep, distros will just make an other package to provide it as scripts. Literally nobody cares what GNU considers deprecated. User don't need to know this, because the programs will never go away, even if GNU removes them, so the warning serves no purpose other then annoying the users.
    When I see something like this, I would just downgrade and freeze that package. I once had the system so broken, that I had to use "dpkg -i" directly because APT would refuse to install anything until I fix what it considered to be broken packages.

  • @sbrazenor2
    @sbrazenor2 Před 6 měsíci

    Before you mentioned it, I had a passing thought of, "Don't tell me they're trying to mess with grep or something now..." And then you mentioned grep and I was like, "What is wrong with these people?! Leave grep alone!" 🤣
    The only reason a change should be made is for an improvement/optimization, because of a security bug, or because it's an unused feature that nobody wants to maintain. Besides that, they should just leave this stuff alone.

  • @virkony
    @virkony Před 6 měsíci +1

    7:32 NixOS 23.11 with Grep 3.11 do not show any warnings 😛

  • @KevinLyda
    @KevinLyda Před 6 měsíci

    I use egrep and fgrep over the options. As an aside, I wish there was a vrep as well.

  • @tylerdean980
    @tylerdean980 Před 6 měsíci +1

    Your take on this is my take on Wayland

    • @BrodieRobertson
      @BrodieRobertson  Před 6 měsíci

      Xorg requires a lot of maintenance, a 1 line bash script doesn't

    • @tylerdean980
      @tylerdean980 Před 6 měsíci

      @@BrodieRobertson I'm just fucking with you I run hyprland, still using X on openBSD though.

  • @Treviath
    @Treviath Před 6 měsíci

    Do the modern egrep and fgrep log the attempts to use them anywhere? They should so that people would be able to find any remaining uses.

  • @VojtaJavora
    @VojtaJavora Před 6 měsíci +1

    20 years I ago, I would have said remove it. Now they should probably keep it.

  • @autohmae
    @autohmae Před 6 měsíci

    Have the maintainers of GNU grep ever heard of Busybox ? Why not make a VERY small piece of code which checks how grep was started ? And just make a symlink to grep itself.

  • @replikvltyoutube3727
    @replikvltyoutube3727 Před 6 měsíci

    While maintaining many Linux servers which don't have egrep and fgrep - I guess grep -E and -F it is

  • @skeleton_craftGaming
    @skeleton_craftGaming Před 6 měsíci

    IMO deprecating something should be saying "we'll not give you support if this is broken," not saying "we might delete this later"...

  • @stacklysm
    @stacklysm Před 6 měsíci +2

    I've seen less fuss about entire CPU architectures being removed, so why not let obsolete features just pile up in the kernel and leave it to Linux forks to remove old features?

  • @edhahaz
    @edhahaz Před 6 měsíci +6

    To me, it's not about breaking or not breaking, it's about predictability. When you do breaking changes do them in a yearly planned releases (every 1-5)

    • @ME0WMERE
      @ME0WMERE Před 6 měsíci

      Even if you plan the breaking changes, the users will still have to hunt down and update everything (in this case shell scripts) that use the old feature.

  • @meskes4059
    @meskes4059 Před 6 měsíci

    It is never ok to break user space.

  • @skidnik
    @skidnik Před 6 měsíci

    This is essentially just yelling 'Bad user! You should not do this! This is bad!'. And when no one listens on POSIX, start yelling from STDERR.
    I don't think distros will ever remove those wrappers/aliases/functions, 'cos they, unlike GNU, are not interested in breaking things for the sake of idealism alone.

  • @AndrewErwin73
    @AndrewErwin73 Před 5 měsíci

    I mean, I guess for more simple things, grep is fine... but I have largely replaced grep with sed and awk!

  • @lucas7061
    @lucas7061 Před 6 měsíci

    I don't think it makes sense to remove these aliases now that they are seemingly so ubiquitous. However, wasn't it easier to just create aliases for the commands to work as they did before instead of creating a whole post to complain on Reddit?

  • @GCoda
    @GCoda Před 5 měsíci

    wait.. no more tar?

  • @MonochromeWench
    @MonochromeWench Před 6 měsíci

    Just say no to breaking changes unless there are critical technical reasons( like a feature must be dropped to support a new architecture) or security reasons( it is unreasonable to fix an exploit). Much of the industry is built on backwards compatibility being a thing and features not being removed.

  • @komododragon6126
    @komododragon6126 Před 6 měsíci +1

    Is it riddled with security vulnerabilities? Is it riddled with so many bugs that no one should touch it with a 3 meter pole? If not, just leave it there honestly. Not going to harm anyone by just existing

  • @goaserer
    @goaserer Před 6 měsíci +4

    Deprecating stuff ist part of the software lifecycle. But this case is somewhat badly organized. Usually you want to add warnings soon after deprecation and then give the community the chance to adapt. Since only now people realize the need for change it probably will take another decade before anything can be actually removed somewhat safe

    • @Winnetou17
      @Winnetou17 Před 6 měsíci

      Yup, I wanted to say the same thing. I am for making things cleaner and to a spec/standard. Even for very small things like fgrep and egrep which are now 2 small wrappers, they are still polluting, even if very little in practice. But I also don't want things to break so easily. So given that the warning was "just" added, supporting it for literally 10 more years, until all relevant software has got a change to update, that would not be much to ask.

  • @GottZ
    @GottZ Před 6 měsíci

    maybe adding a 10 second sleep to egrep and fgrep would do.

  • @MarkParkTech
    @MarkParkTech Před 6 měsíci

    I don't really use egrep or fgrep in any of my scripts, I just use grep -E and grep -F -- That said, what are non-GNU systems doing, because there may be cross *nix compatibility issues. I really only use Linux systems, and the non-GNU variants ( Alpine ) that I use haven't given me issues -but there's more than just MUSL and GNU out there in Linux userspace - I haven't used them all... and let's not even get started on the *BSD or Solaris userspaces.

  • @igorordecha
    @igorordecha Před 6 měsíci +1

    Ita an alias. No security threats, no additional dead code. An alias.
    Thank you for the coreutils but we'll take it from there. The project's done, just use your foundation money to just keep looking for security vulnerabilities and thats it. Dont try to make yourself useful.

  • @masteryoffgtrash7665
    @masteryoffgtrash7665 Před 5 měsíci

    I learned them, but on very mismanaged systems, so I first I thought those were "sketchy aliases to make some unsmart peoples life easy" and used "grep -E" all the time.
    For me the removal of egrep has no impact.

  • @matthewstott3493
    @matthewstott3493 Před 5 měsíci

    While being POSIX compliant is a good thing, I can't help but think someone depreciated egrep / fgrep merely so they could claim they were accomplishing something on the POSIX standards. GNU appears to be following POSIX but Linux Distros should just ignore this and keep the sh scripts that reference grep -E or grep -F as they have been doing for many years. The sh scripts are 90 bytes or less (90 on NixOS because of the long /nix/store hash. I don't understand why any distro would intentionally break things by being a POSIX purist. One could also create system-wide shell aliases for egrep / fgrep.