Slashdot Mirror


Debian Switching From Glibc To Eglibc

ceswiedler writes "Aurelien Jarno has just uploaded a fork of glibc called eglibc, which is targeted at embedded systems and is source- and binary-compatible with glibc. It has a few nice improvements over glibc, but the primary motivation seems to be that it's a 'more friendly upstream project' than glibc. Glibc's maintainer, Ulrich Drepper, has had a contentious relationship with Debian's project leadership; in 2007 the Debian Project Leader sent an email criticizing Drepper for refusing to fix a bug on glibc on the ARM architecture because in Drepper's words it was 'for the sole benefit of this embedded crap.'"

27 of 565 comments (clear)

  1. Don't be so Glib by powerlord · · Score: 5, Insightful

    It might be "Egier" to use, but how far will it stray from the original project (that everyone else is currently using), or is it the first leak in the Dam before everyone jumps ship.

    Its especially ironic given the push that netbooks have had over the past year, and the emphasis on Power savings that is pushing developers to consider using ARM chips, and by extension Linux (since Windows just plain won't run on them :) ).

    If the OSS community doesn't support an opportunity to get our foot in the door (in a BIG way), by putting "our" OS on the "longest running and lightest" Netbooks/Notebooks that come out (or put our software out with known bugs), then we deserve to reap what we sow.

    --
    This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    1. Re:Don't be so Glib by jabjoe · · Score: 4, Insightful

      Doesn't matter what Windows it is. Windows on ARM won't have any software. It can't use the mountain of x86 Windows software, which has always been it's advantage until now. Because of the closed nature of the platform, it's not like everything can just be recompiled for ARM. Linux on the other hand has been multi-platform for a long time, all the software is open source, so most stuff was changed so it can compile on other platforms (including ARM). Linux comes to the table very strong on ARM, where as Windows without Windows software is pointless.

  2. Re:uClibc by impaledsunset · · Score: 5, Insightful

    uClibc is created for embedded systems, meaning that it might lack some of the features that glibc has. Debian doesn't work only on embedded systems, and therefore it needs a full libc with all bells and whistles. eglibc is a glibc fork, which might be targetting embedded systems, but retains full source and binary compatibility with glibc, and I would assume that any useful feature would still be there, possibly optional.

    And they switch not because they want lightweight libc, but because they want more friendly upstream. uClibc doesn't seem to be a good choice if that is the reason.

  3. "So what" vs "Wow, unbelievable" by pla · · Score: 4, Insightful

    in 2007 the Debian Project Leader sent an email criticizing Drepper for refusing to fix a bug on glibc on the ARM architecture because in Drepper's words it was 'for the sole benefit of this embedded crap.'

    And the developer has every right to make that call, just as eglibc has every right to make a fork that cares more about the embedded world, and Debian's maintainers have a right to switch.

    That said, I have two main thoughts on this issue.

    First, only a complete idiot would ignore the fact that one of Linux's primary strengths lies in the embedded market. Refusing to fix a relatively easy bug because it "only" affects that market sounds like something Microsoft would force on us "for your own good", such as DRM or the UAC.

    Second, Debian (as a stock install, I don't include remastered lightweight Knoppix variants in that category) does not have a significant presence in the embedded device market. Such uses either involve a platform-specific lightweight distro where available, or the devs take a roll-your-own approach. Getting in a pissing match over support for an irrelevant feature doesn't inspire me with confidence in Debian's leaders.

    1. Re:"So what" vs "Wow, unbelievable" by Chris+Burke · · Score: 5, Insightful

      And the developer has every right to make that call

      Who said or implied otherwise in any way shape or form? Seriously.

      Getting in a pissing match over support for an irrelevant feature doesn't inspire me with confidence in Debian's leaders.

      But ARM is a supported architecture, used enough at least that they found the bug, and the bug was in glibc and thus affects all distributions that use glibc. What would make me lose confidence in Debian's leaders is if they agreed that because it's an "irrelevant" architecture that it shouldn't be fixed.

      And just because the bug in question may be "irrelevant" for Debian, the real issue they're getting in a pissing match over is an obstinant maintainer of one of the most important pieces of software in any linux distro. Switching to a libc with a friendlier upstream maintainer over an irrelevant bug makes a hell of a lot more sense than waiting until it's a critically important bug that the current guy decides he won't fix for some stupid reason, now doesn't it?

      --

      The enemies of Democracy are
  4. Re:Might be a good idea by Timothy+Brownawell · · Score: 5, Insightful

    Speaking as a Debian user who has had some major upgrade problems directly caused by glibc, anything that's "more upstream friendly" is okay by me.

    I don't think this means "easy to upgrade", but rather "the maintainer isn't an asshole".

  5. Re:Yay! by Estanislao+Mart�nez · · Score: 4, Insightful

    One example, I submitted and update to an EBCDIC encoding used on IBM mainframes. The encoding had several choices for what should be encoded as the newline character. It wasn't clear which one should be used, but the z/OS system I was using had definitely chosen a particular one. Glibc had chosen a different one. I submitted a patch that changed it and Ulrich rejected it saying that there wasn't a standard and so my version was no more valid than the version that was in the library.

    Um, if you're describing that right, isn't he right to reject your patch? What if I'm a user of another EBDDIC system, and that system uses the choice that's in the library? Does that mean that if your patch is accepted, my patch to undo yours should be equally accepted?

  6. Re:For the greater good by BSAtHome · · Score: 5, Insightful

    The code hit an assert() in glibc. That is per definition a bug. You should never implement an assertion and then complain if someone hits it and confronts you with the design choices of that time. When you are informed of a triggered assert(), then you should act like a man and fix the code.

  7. A rant by jmorris42 · · Score: 4, Insightful

    > As the maintainer of GLIBC, he has to be the steward for the greater good of all users.

    No, it needs to be correct code. If ARM happens to be the only platform that currenty exercises the bug it is still a bug. Goddamn people, I swear we are getting as blase about fixing bugs as a Microsoft shop. There is no such thing as a good bug, a less important bug, etc. If it is a bug and someone has a patch for it you APPLY THE DAMNED PATCH. If you have a problem with the patch you write a better patch. Not patching at all is never be the answer.

    I really hate updating my systems these days, because for every bug fixed it seems you get a fresh new one. Make it shiny, we will fix the bugs later! Of course later never comes, eventually the crap piles up too high and somebody decides to just start over. Which explains the piles of discarded stuff and the new one that also doesn't quite work in most areas, especially in system administration.

    Seriously, the Free Software world needs to call a timeout. Establish a core and devote every available resource into making that core bug free and secure. Then allow no change to be committed to that core without extensive peer review to prevent new bugs from getting in. The Linux kernel is hopeless, no chance of getting it to stop and clean up and x.org is currently in a period of upheaval, but the layer above each could be stabilized. Not just coreutils, but everything including the core widget sets, admin tools. Get things to a point where an ordinary userland package will (not might) work even it it wasn't built against the exact same release.

    And finish hashing out the whole new /dev/, dbus, etc. and settle the API down enough to document the damned thing. I know UNIX, but this new stuff totally confuses me. WHere does one go to even find out how it is supposed to work? Which of course isn't how it currently DOES sorta work. How does one even know if a particular piece of documentation, sketchy and incomplete as it will certainly be, documents what was, what currently is or what is intended to be?

    --
    Democrat delenda est
  8. Doesn't matter by 0xABADC0DA · · Score: 4, Insightful

    The problem is that programming a libc is the worst kind of programming... you have to be compatible with N different standards that are incompatible with each other. A lot of the functions you have to implement are impossible to simultaneously be correct and not make you puke (see printf). And on top of that, nobody even cares since they're all using some high-level library to call your libc functions anyway.

    I really wish somebody would come out with a decent libc for linux though. With glibc, you either compile statically and have a 1+mb binary that's still dynamically linked anyway because you used a socket or your program just doesn't run on some systems and you have dll hell far worse than on any Windows. If you've ever had to deliver a non-OSS binary for linux you know what I'm talking about.

    Dietlibc is the most convenient alternative by far, but it has several bugs, is slow, and errno is not threadsafe. For instance printf("%2d\n", 222) prints nothing. But if you test your software you can use it really easily, just CC="diet gcc". The uClibc is better, but it's a pita to use, requiring its own entire toolchain.

    Since nobody actually pays for developers to work on libc, you end you with whoever crazy people will actually work on it. So while the fork is a good thing, it's probably just going to be more of the same.

    1. Re:Doesn't matter by Code+Master · · Score: 5, Insightful

      When your embedded system has 8-16 MB of Flash and SD RAM, it matters.

      --
      The Code Master
  9. Re:For the greater good by Areyoukiddingme · · Score: 5, Insightful

    Reading the context didn't help his case any. I read the bug report, and the attached patch, and was appalled that Ulrich thought he was defending good code. If the code is expected to run on even ONE other platform, what he was doing was incredibly stupid. It doesn't matter if the vocal constituency is on a platform that doesn't please Ulric. There is more than one officially supported platform, so therefore his opinion was idiocy of the highest order.

    Anybody who thinks it's a good idea to depend on the size of structure padding, on one specific platform, with one specific compiler, and code a memory violation on that expectation, deserves all the vitriol the community can muster. Take his compiler away from him. He's not fit to write C.

  10. Re:More context by hardburn · · Score: 4, Insightful

    Looking elsewhere through the bug comments, it seems that there are assumptions in the glibc code that could break whenever the gcc people feel like it, even on x86. This was something that needed to be fixed, and isn't specific to x86 or any other non-embedded arch.

    Also, when has x86 ever been a "well designed architecture"?

    --
    Not a typewriter
  11. Re:FINALLY by ThePhilips · · Score: 5, Insightful

    Drepper has had this coming for many, MANY years.

    Frankly, I'd say Ulrich is fitting person for a project like glibc.

    I do not think his a bad guy, it's just a job of glibc maintainer (which is a central piece of "Linux OS", second most important after kernel) would make out of anybody an a**hole.

    I'd say his job is 99.9% of times saying "NO" to all the silly proposals flying all the time on glibc mail lists.

    But it's just in this case he was wrong. Shit happens.

    --
    All hope abandon ye who enter here.
  12. Re:The problem isn't GLIBC. It's Ulrich Drepper. by Anonymous Coward · · Score: 4, Insightful

    The problem isn't GLIBC. The only problem is this idiot Ulrich Drepper. He demonstrates time and again that he is incompetent and has no business being in a position that is forced to interact with other people.

    Have you ever delt with glibc development, or do you base this on reading a single bug?

    One thing Ulrich Drepper is NOT is incompetent. He is extremely competent, and if you boot Linux you're running a ton of his code. In fact, he is so competent he has keep maintainership for years despite his finely tuned confrontational style where he seems to know *exactly* the response to write that will create the worst reaction in whoever he is responding to. I know, it has happened to me, but luckily I'm out of that game for now. If I was still dealing with it day-to-day, like Debian glibc maintainers, it would drive me nuts too.

    The other thing to consider is that glibc, being the base of pretty much everything else, can be like a candle to a moth attracting people who really, truely have no idea. This can become tiresome, and may explain why some of the elitism comes about. You don't want the real development lists turning into a Ubuntu newbie user forum.

    I wish eglibc well!

  13. Re:Some of Ulrich Drepper's finer points by Stiletto · · Score: 4, Insightful

    From reading those posts, it is pretty clear that this guy seems like a total douchebag and in my view has no business maintaining any serious open source project, let alone something as important as glibc.

    Particularly #3. Someone finds a bug, submits a patch, and in return gets mocked for their effort. How great.

  14. Re:FINALLY by xant · · Score: 4, Insightful

    Honestly, even if none of that were true, you're not allowed to be an asshole any more if you are in charge of a major project. Open source is a *community*, and people flee the community when it's populated by assholes. Darwinian selection tends to filter out assholes in this environment, because it doesn't take all that much to advance a better project, even if the asshole is extremely gifted.

    --
    It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
  15. Re:Some of Ulrich Drepper's finer points by fm6 · · Score: 4, Insightful

    I just wrote this post defending Drepper, but now I take it all back. It's perfectly reasonable to expect a maintainer to explain his actions. Responding with "you don't write my paycheck" makes him an asshole, pure and simple.

    It occurs to me that Redhat does pay Drepper's salary. I assume that he gets to maintain glibc because they're donating his time? I'm sure they know, even if he doesn't, that donating resources to an open source project does not give them ownership of said project. If I were one of these frustrated developers who's tired of Drepper's BS, I'd find out how his boss is and have a word.

  16. Re:The problem isn't GLIBC. It's Ulrich Drepper. by lgw · · Score: 4, Insightful

    One thing Ulrich Drepper is NOT is incompetent.

    If you're job is to lead a development effort, people skills are more important than technical skill. Being an asshole makes you incompetant. If you just want to be some asshole writing good code in the corner, you can do that, but that isn't waht makes a good project leader!

    --
    Socialism: a lie told by totalitarians and believed by fools.
  17. Re:At Least It's Egier to Use and Less Glib by Chris+Burke · · Score: 4, Insightful

    For even more context, look at the patch. The "negative impact" is a couple extra microseconds of cpu time to memset 20 bytes instead of 3. I guess 32-bit x86 ought to be enough for anyone.

    Really? Since that's a single cache line in either case, the difference is actually going to be more like maybe a dozen nanoseconds on a modern x86 (when it was going to take around 100ns in the base case assuming a cold cache miss).

    --

    The enemies of Democracy are
  18. Re:Might be a good idea by Geoffreyerffoeg · · Score: 5, Insightful

    He's got some good points. He does express them in a way that's unnecessarily offensive and combative. But that doesn't make him an asshole. That makes him a typical geek!

    Then we need fewer typical geeks, and more atypical geeks.

  19. FUCK by that_itch_kid · · Score: 4, Insightful

    Can we PLEASE get the moderation confirm button back!?!?!?!

  20. Re:At Least It's Egier to Use and Less Glib by A+Nun+Must+Cow+Herd · · Score: 5, Insightful

    That's quite a read, you have to go out of your way to get multiple people writing comments like this one:

    "Wow, you are a bastard. I hope you die alone. :D"

    How do people with an attitude like Drepper's become maintainers of crucial projects? He seems obviously unsuitable (whether he has superb technical skills or not).

  21. Re:Might be a good idea by pz · · Score: 4, Insightful

    He's got some good points. He does express them in a way that's unnecessarily offensive and combative. But that doesn't make him an asshole.

    Sorry, being unnecessarily offensive and combative is the very definition of an asshole. The term fits.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  22. Re:No, Ulrich Drepper's response was appropriate by Mr.+Slippery · · Score: 4, Insightful

    Applying a patch takes a trivial amount of time in any sane project.

    Performing the necessary configuration management, code review, and regression testing -- for a patch is non-trivial in any responsbily-maintained project.

    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  23. Re:Might be a good idea by evanbd · · Score: 5, Insightful

    He's got some good points. He does express them in a way that's unnecessarily offensive and combative. But that doesn't make him an asshole. That makes him a typical geek!

    Then we need fewer typical geeks, and more atypical geeks.

    Indeed. For the record, I don't think he is a typical geek. But if that's your definition of typical geek, then the typical geek is an asshole.

  24. Re:The problem isn't GLIBC. It's Ulrich Drepper. by GreatBunzinni · · Score: 4, Insightful

    Have you ever delt with glibc development, or do you base this on reading a single bug?

    I believe it is easy to understand that if this problem was limited to a single uncivilized reaction towards a single clueless user on a single bug report no one would ever seriously ponder the possibility of forking such a complex project.

    One thing Ulrich Drepper is NOT is incompetent. He is extremely competent, and if you boot Linux you're running a ton of his code. In fact, he is so competent he has keep maintainership for years despite his finely tuned confrontational style where he seems to know *exactly* the response to write that will create the worst reaction in whoever he is responding to.

    He is incompetent due to the very nature of his job. He is paid not only to write code but also to interact with all glibc users who may wish to contact the project due to any issue related to that particular software project. If his job involved being locked in a basement somewhere away from all traces of humanity where he would code to his heart's content without having any contact without the outside world then there wouldn't be any problem. But that isn't his job. He also needs to interact with users, communicate with them, listen to what they have to say and handle cases where a party in that interaction is wrong in order to get a positive outcome. Moreover, due to the very nature of his job he is also assumes the responsibility of being a sort of public figure of that project responsible for public relations and the project's image.

    Due to that, if someone in that position happens to be an antisocial moron who can't help being a dick... That person will end up making the project look bad and suffer the consequences that his own moronic actions cause. That's what makes him incompetent. Due to the nature of this project, being an antisocial moron makes you unfit to be in that position, as much as being a great PR person without any noticeable programming skills would also make that project suffer, although in different ways.

    I know, it has happened to me, but luckily I'm out of that game for now. If I was still dealing with it day-to-day, like Debian glibc maintainers, it would drive me nuts too.

    If a company pays someone to work in a project and his antisocial behaviour leads the company's clients to not only run away but also start off a competing project, would that employee still be considered competent? He would be fired on the spot. That's what is happening with glibc.

    --
    Slashdot, fix your code or at least hire someone who is competent at it to do it for you.