Slashdot Mirror


Ulrich Drepper On The LSB

Sam Lowry writes "In a recent post at his livejournal, Ulrich Drepper criticizes the LSB standard and urges the distributions to drop it." It's an interesting piece; Ulrich raises some good points.

36 of 401 comments (clear)

  1. who? by mmkkbb · · Score: 4, Insightful

    Who is Ulrich Drepper, and why should I care about what he says on his LiveJournal?

    --
    -mkb
    1. Re:who? by Anonymous Coward · · Score: 4, Informative

      Ulrich Drepper is the guy who currently leads Glibc development, which makes him an important hacker type person who should hopefully know his stuff.

      He also has an ego that could drag Theo deRaadts ego into a dark alley and beat it senseless. He is an asshole.

      How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc, I don't know.

    2. Re:who? by sxltrex · · Score: 3, Funny

      I think he's the drummer for Metallica.

    3. Re:who? by Nadir · · Score: 5, Informative

      > How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc, I don't know.

      Probably because the LSB was created so that commercial binaries can run on any LSB-compatible distro. A key part of this is also related to symbol versioning in Glibc. As Ulrich is maintainer of Glibc, and as he works for Redhat which has to guarantee LSB certification, I guess he's entitle to talk about the LSB.

      --
      --
      The world is divided in two categories:
      those with a loaded gun and those who dig. You dig.
    4. Re:who? by Otter · · Score: 3, Informative
      How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc, I don't know.

      As I understood that somewhat incoherent rant, his complaints are actually about the LSB test suite, not the spec itself, and specifically about linker- and threading-related bugs in the suite.

    5. Re:who? by AKAImBatman · · Score: 4, Informative

      How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc, I don't know.

      AFAIK, GLIBC is one of the components required for LSB compliance.

      And he's right, the LSB was a poorly thought out attempt to make all distributions compatible with RedHat rather than an attempt to come up with a common groud for all distros. For example, why oh why is RPM support required for LSB compliance? It doesn't affect the execution of software on the system, and only serves to create a mess for distros that use another packaging system.

      Far more frustrating than that, however, is the fact that LSB only covers the very core of the system. The APIs that 90% of programs rely on are not even mentioned in the LSB spec. Rather, the spec simply states that a few very basic libraries must exist, then goes on to detail the signatures of the function libraries. Not particularly useful unless you're Sun Microsystems looking for a way to convince people that you're compatible with Linux.

    6. Re:who? by Anonymous Coward · · Score: 5, Insightful

      How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc, I don't know.

      I take that right back. I'd forgotten that LSB goes as far as defining the ABI, which is clearly the realm of Glibc and something which Ulrich is more than qualfied to comment on.

      I've always thought that the biggest problem with LSB was that it didn't go nearly far enough, which means that distributors and users can't all use the same binary and we end up with these ABI issues that Ulrich complains about.

      From what Ulrich says, the idea of the LSB is good but the implementation is deeply flawed. The standards board are seperated from the implementors who are seperated from the testers and communication and understanding between the groups is poor. Which is a shame, but LSB has always struck me as a bit of a lame duck.

    7. Re:who? by Tet · · Score: 4, Interesting
      How he is considered qualified to talk about the LSB when it doesn't have much of anything to do with Glibc

      The LSB has nothing to do with glibc? Really? Strange. I always thought the LSB was designed to ensure binary compatibility between distributions, and hence has quite a lot to do with glibc.

      Personally, I still think the LSB has some value, but Uli's concerns are valid. IMHO, they seem to point to problems with the current LSB test suite that should be fixed, rather than leading to the conclusion that the whole concept is broken, though. In its current form, there is little value to be had in LSB compliance, true. But it needn't always be that way. A decision needs to be made to either fix the LSB or abandon it altogether. Uli prefers the latter approach. I favour the former.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    8. Re:who? by tolkienfan · · Score: 4, Interesting
      The problem is actually quite simple.

      If the test-suite is broken, then the LSB guaranties are worthless.

  2. Ulrich Drepper... by MaestroSartori · · Score: 3, Informative

    ...seems to be maintainer of the GNU C library, and works for Red Hat. At least, that's what Google says. Should I know who he is??? :/

  3. False Alarm! by Anonymous Coward · · Score: 4, Funny

    Some other random dude says this isn't true over on his MySpace!

  4. I agree, but something needs to happen by Anonymous Coward · · Score: 5, Insightful

    I've been using Linux for many years, and the problem of obtaining software packages drives me to the end of my nerves. Every single time I try to get a package that isn't something extremely common like Apache, I run into major, major problems. Honestly, I don't care how the problem gets fixed. Distribute a binary with everything compiled in for all I care. Distributions distribute every package known to man anyway. :)

    Something needs to be done. Even with the source, half the time I have to make all sorts of include changes. What is so hard about providing a common build and install process? If you get Apache, OpenOffice, and Mozilla to adopt a convention, everything else will follow. Why not have something like Apache Ant that simply installs either to a user directory or to a common directory and links to every user directory? Then provide a nice GUI on top of it, where it will either compile if the source is there and then install, or just install otherwise? How hard could that be? Forget this ./configure nonsense. It sucks.

    Regardless, this is a perfect example where sometimes it really does make sense to have "management" provide leadership by imposing structure. Ideally, they would be serving and representing the interests of users and helping to overcome the disinterest of joe programmer who doesn't do the psychologically difficult work of catering to someone other than themselves. The "scratch an itch" metaphor breaks down when other people don't know how to "scratch" themselves and need the help of a division of labor to serve their needs. Before you say that they should learn how to "scratch", think that as a community, society, and economy we all scratch eachother's itches in an incredibly diverse number of ways. This comes about because of intentionally trying to fulfill a demand. In the case of the Linux stack of Free/Open Source software, the developers have not taken responsibility for how their product is consumed.

    1. Re:I agree, but something needs to happen by Mr.+Underbridge · · Score: 4, Insightful
      I've been using Linux for many years, and the problem of obtaining software packages drives me to the end of my nerves. Every single time I try to get a package that isn't something extremely common like Apache, I run into major, major problems.

      No kidding. You'll find some decent looking project, and it's no big deal, the developers just require this neat toolkit that they consider standard, and all the 133! distros have it, just not the old ones like RedHat, Slackware, and SuSE. Of course, the most recent build is two years ago, because after a year of development all the kids got egos and couldn't stand each other.

      Of course, then you find out that the neat toolkit they use depends on an old version of Python, and naturally it's built to do a hard-coded check for a specific version of python in the configure - not the current one of course. And naturally the references to the old version of python are strung throughout the config file. And as it turns out, if you fix all the references in the config, that will break the calls somehow. So you can either install yet another version of python, or forget about this neat little program.

      I really prefer compiling from source, but it's getting to the point where it's just not worth the crap.

    2. Re:I agree, but something needs to happen by aussersterne · · Score: 3, Interesting

      I think the (possibly regrettable, I don't know) answer to this is that Linux users need to choose: they can have an easy-to-use distribution that is a near monopoly in the Linux world (which is WHY it will then solve problems like the one you describe), or they can have a hundred different distributions.

      Right now, so long as you pick one of the "big three" (Debian, Red Hat/Fedora, SuSE), you will have very little package/software install trouble.

      Most companies that release Linux software offer the following downloads (as do most OSS software websites for individual products):

      1. .tar.gz to compile from source (gets you right into th dependency hell you want to avoid)
      2. RPM for Red Hat/Fedora
      3. RPM for SuSE
      3. DEB for Debian

      I have been in the Red Hat family since Red Hat 5 or so and I can tell you that beginning with Red Hat 8 things started to get really easy, and by the time the Fedoras had come around, I spend nearly zero time compiling my own software or chasing package dependencies. Tools like yum/apt even make it so that you don't have to FIND a download site and double-click on and icon, you just type in a command that says "I WANT IT!"

      But even for commercial software like Flash or Java, it's cake, I just install the package. The reason is because the package is DESIGNED FOR MY OPERATING SYSTEM.

      Sorry, but most of the other Linux operating systems (Slackware, Mandrake, Yoper, Xandros, whatever) are too small for packagers to target them, and that's generally what results in package hell--you are trying to use a package that assumes the components installed by default in another operating system. So even if they are both RPMs, installing a Red Hat/Fedora RPM on Mandrake will cause you trouble. Even once you get the packages all installed, the configuration and support files are likely to be located in all the wrong places.

      And yes, generally the packages ARE clearly labeled. So I guess my answer is the one people hate to hear, but if you're going to ask the question about "package hell" then you're going to get this answer: switch to a bigger distro (best case is probably Red Hat/Fedora) and the problem will generally go away.

      --
      STOP . AMERICA . NOW
  5. who cares? by banana+fiend · · Score: 3, Insightful

    RTFA

    It could have been written by Bill Gates or my mom.

    Why does the author have to be so important if the facts are laid out and verifiable. You don't have to agree with his analysis nor his conclusions, but the facts should stand or fall regardless of the author

    --
    Johns: Well, how does it look now? Riddick: Looks clear.
    1. Re:who cares? by banana+fiend · · Score: 3, Insightful

      it's just hopeless idealism.

      ummmm... at some point someone has to produce content to gain credibility. You say that FUD has become slick? Just because someone produces a slick info shot doesn't mean you shouldn't STILL be checking the facts.

      I think we're probably on the same side here, but you don't need anything to "pierce the veil" except verifiable references.

      Which this guy has. You can go to the bugzilla database that he talks about and discover for yourself if most of the bugs submitted are indeed bugs that show the tests are broken

      --
      Johns: Well, how does it look now? Riddick: Looks clear.
  6. Re:WE NEED STANDARDS by null+etc. · · Score: 4, Funny
    ...Oh that's easy! If you have Redhat, you have to download quake_3_rh_8_i686_010203_glibc.bin

    Dude thanks! I finally know how to install this game on Linux. The last time I tried, I ended up causing my mother's computer to wardial her friends from her recipe club.

  7. Re:4 posts so far... by Ghostx13 · · Score: 3, Informative

    Not knowing who someone isn't doesn't indicate IQ, nor a drop in IQ. Not knowing someone indicates ignorance on a subject. IQ is a measure of intellectual functioning. A pgymy living in the amazon might not know who the President of the US is, or what a computer is, but he/she could have the highest IQ ever recorded.

    *Sigh* your post on the other hand, does indicate that the average ./ IQ is dropping.

  8. Re:is this really livejournal? by arkanes · · Score: 5, Funny
    I can relate. My parents don't understand ABI issues either.

    Current mood: Sad :(

  9. YES, we need standards... by Svartalf · · Score: 3, Informative

    But we don't need standards that handle things by way of THIS sort of answer. The link in question is a bug in the standards test. Their answer was not to fix the standards test, like it should have been- it was to, as Ulrich put it, don't use fast SMP machines. In it's current form, the standard is less than useful because you're needing "waivers" for things like this.

    Combine this with silly requirements such as needing Sendmail (Uhm, shouldn't it be more along the lines of, we need an MTA of some sort- so long as it's handled properly, who cares which one, right? Sendmail's the least desireable of all of them, and it tends to get turned off for Postfix or Qmail most of the time anyway!) and it's about as useful an appendix is to a human these days.

    Yes we need standards. API standards, possibly ABI standards- but not what we're getting here.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  10. Re:Three Key Issues by SimilarityEngine · · Score: 3, Informative

    I'm a fairly technical user

    You certainly have mastered the cut & paste operations.... see here.

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
  11. Re:Linux is too fragmented by Jjeff1 · · Score: 4, Insightful

    It's interesting because it's true.

    The poster points out some of the same frustrations many non-linux people have when they try to use the OS. Keep in mind, that anyone switching to Linux still has to do work. This means any switching to Linux research is going to occupy spare time. That time better be spent getting Linux to do my work better, not me making Linux work at all.

  12. Re:WE NEED STANDARDS by aussersterne · · Score: 3, Informative

    Um, I bought Quake3 for Linux when it was on sale at EBGames and ran it in Red Hat and it was as easy as:

    1. Insert CD
    2. Double-click on installer icon when file manager window pops up
    3. Enter root password when prompted
    4. When all is said and done, choose Quake3 from the start menu

    From what I can tell, there's only one difference between this and the Windows version that you described, and that's the entering of the root password. And we don't want to do away with that, because it's what makes Linux 90% less susceptible to malware.

    Anyway, what distribution and version of Quake3 are you using?

    --
    STOP . AMERICA . NOW
  13. currently leads Glibc by oliverthered · · Score: 3, Interesting

    Then I wish he'd put a XML parser into glic so that no-one has an excuse for not using XML for configuration files and for data export / import.

    --
    thank God the internet isn't a human right.
    1. Re:currently leads Glibc by Tet · · Score: 5, Insightful
      I wish he'd put a XML parser into glic so that no-one has an excuse for not using XML for configuration files and for data export / import.

      Were there one available, I would still be unlikely to use it. The fact remains that after you've seen through all the marketing hype, XML remains inappropriate for many tasks, and configuration files are right at the top of the list. You only have to look at Jabber or Tomcat to see some perfect examples of that.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
  14. Re:Linux is too fragmented by $RANDOMLUSER · · Score: 4, Insightful
    OK, I've got the karma to take the OT hit to answer you.

    You've been incrementally learning Windows for 10 years now. Every time you change versions you have to go through another learning-curve bump. "Where did they put "ODBC Drivers" now?". If you were suddenly presented with learning Windows on a tabula rasa, your learning curve and frustration level would be just as high as they are for a Windows user moving to Linux for the first time.

    If you're a programmer, let me ask you this: How many text editors have you had to learn? Isn't it a pain in the ass learning a new one? "Hell, I already know 43 editors, I have no desire to learn another one". This does not make any of the editors you already know superior to the one you don't, nor does it make the new one inferior just because you don't. Different isn't a priori bad, it's just different.

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  15. Re:What *IS* the LSB ??? by Antity-H · · Score: 3, Informative

    LSB == Linux standards base :

    http://www.linuxbase.org/

  16. The problem is the LSB does not PUSH LINUX FORWARD by furry_wookie · · Score: 3, Insightful

    The idea of a common set of standards for lots of stuff obviously has many potential benifits for Linux.

    The problem with the LSB is it does not do much. What is needed is not a standard for "thou shalt have this version of libc in this directory", but instead a standards body needs to come up with "this is the way you will perform your system initilzation", "this is how you will set and store your ip networking configuration" etc...this would make YOUR skills transferable from distro to distro, would allow the community to come up with BEST OF BREED solutions for things like system configuration tools etc.

    Having 1000 different distros do this stuff in 1000 different ways is WORSE THAN not being able to run Oracle on a particular distro without a little tweaking.

    --
    -- Given enough time and money, Microsoft will eventualy invent UNIX.
  17. Let's forget binary compatibility by ajs318 · · Score: 5, Interesting

    Let's forget once and for all about binary compatibility. Bury it. Because it does not really benefit most people. There is one very well-known operating system which implements as near full binary compatibility as you can get -- and it's generally regarded as a disaster.

    What matters is source compatibility. And right now GNU/Linux has that in spades. Not just GNU/Linux, but the BSDs, Mac OSX, Solaris and even Windows have it. If the source code is properly written, and properly packaged, then it will compile on any machine that is up to the job of running it. If you make any really drastic changes -- the standard C library for instance -- you might well have to recompile some applications. Is that a major hardship? I don't think so. Back when we changed from round-pin 5 and 15 amp plugs to rectangular-pin 13 amp plugs, people had to have their houses rewired. When we went from artificial gas to natural gas, people had to have their cookers and heaters modified. When Channel Five launched, many VCRs needed their RF output shifted. These were all necessary changes for the better {ironically enough, we probably will be going back to artificial gas in future ..... but the new stuff probably will be more like the natural stuff so nothing will need to be changed}.

    Binary compatibility was never more than a nasty hack, fudged in for the benefit of those who want to lock up the source code of their software. These people are pure evil. By not sharing their code with you, they are just one very tiny step removed from stealing from you. It had the beneficial {at least, it was beneficial when processors were slow and disk space small} side effect that you did not have to spend CPU time and disk space compiling applications locally; but now that disk space and processor power are cheap, the benefits of pre-compiled applications are diminished substantially.

    There's even a good argument to be made in favour of deliberately introducing binary incompatibility. If programs compiled on my computer would only ever be able to run on my computer, and any program compiled on anyone else's computer would never be able to run on mine, then there would be no such thing as viruses or buffer overrun vulnerabilities. {Unfortunately, this raises the question of how to ever get any computer up and running}.

    --
    Je fume. Tu fumes. Nous fûmes!
    1. Re:Let's forget binary compatibility by therealking · · Score: 3, Insightful

      You sir are a Class A moron, who has no idea what he's talking about.

      Binary compatibility is EXTREMELY important to Linux if you want acceptance on the same level as Windows or OSX.

      If you make any really drastic changes -- the standard C library for instance -- you might well have to recompile some applications. Is that a major hardship? I don't think so.

      This laughable. That I even have to compile an app is laughable.

      End users do not want to compile and application. They do not want to debug it, figure out what version of a library is running, download nessesary components from 3rd party websites, or even think about the OS. No one has time for that.

      They want to slide in the CD and click install. Answer as few YES/NO questions as possible, and start using the application. Thats it. Everything else is a road block to getting a the original task done.

      I swear many /.ers don't acctually do any work, they just theorize on what work would be like if they could do it after they get thier distro installed.

      --
      Gadget News at Gizmo.com
  18. Re:Thought-Out, or Whining? by ArsenneLupin · · Score: 4, Insightful
    Errm, actually there is a single point in the piece: there are *huge* bugs in the test cases.

    All other points raised are shown to be consequences of this.

    The specific example he cited is a rather enormous bug (a thread which is detached can by definition not be joined. "Detaching" a thread means telling the system that you are not interested in its exit status... and join()ing is reading the exit status).

    (This doesn't mean that other examples are as clear cut. It could still be that most tests do actually show genuine glibc bugs, and that he just picked up the right example to bolster his point.)

    that the audit raises many bugs

    ... in the test cases ...

    that other distros "somehow" achieve their compliance but he's not sure how

    I'd say, if Ulrich is right about the test cases, the situation should be fixed by removing/rewriting the dodgy test cases althogher. Deliberately running distros with non-standard shared libraries or on dog-slow hardware to make them succeed the tests is pointless. If that is indeed how "somehow" some distros achieve to pass the tests, Ulrich is indeed right on the mark that it would make the test suite completely meaningless. You are not certifying a distribution, but you are certifying a distribution tweaked to run the tests...

    Better fix the suite, and run the distro under "normal" conditions (i.e. the same as normal users would do).

  19. PARENT IS A TROLL (OR BOT) - IGNORE/MOD DOWN by Shaper_pmp · · Score: 3, Informative

    The parent post is either a very persistent and unimaginative troll or a script of some kind - it's been posting the same article nearly character-perfect to any thread remotely connected with Linux.

    Please Do Not Feed The Trolls.

    Mod down or ignore... for Christ's sake don't reply - it only encourages them ;-)

    --
    Everything in moderation, including moderation itself
  20. Re:Thought-Out, or Whining? by iabervon · · Score: 5, Insightful

    He's not whining that it's hard. He's whining that it's impossible, because the tests don't match the either the standards or common practice. He's whining that distros must be somehow faking compliance, because they ship *his software* which doesn't "pass" the buggy tests.

    His argument is: no set of Linux software could pass the LSB suite by actually consistantly giving the desired results, because there's no libc that consistantly gives those results (when run on sufficiently fast hardware to expose the bugs in the tests, for example); yet distros do claim to pass the suite; therefore, the LSB is not ensuring compatibility, because it certifies things that don't work by their rules.

    Furthermore, he argues that programs that don't work tend not to work because they rely on undefined behavior. Certifying that the environment behaves in accordance with the standard doesn't help, because the software developer's environment and the user's environment may do different things in some cases, while both comply with the standard. Unless the programs are tested for doing non-standard things, they won't necessarily work. And the undefined behavior is undefined for a reason: you can't improve the system without changing it (especially when the thing not defined is which takes longer: executing a certain function or waiting .001 seconds). And the same cases are particularly hard to test programs' assumptions about.

    The sections that you dismiss as whining are actually providing examples, which is important in engineering (or science). There are theoretical flaws in any process; it is always important to know whether those situations ever actually occur. If he didn't have an example of a program relying on undefined behavior which should vary between systems, one could say that nobody would actually write code like that and think that it worked; but it turns out that people actually do write such code, and these people happen to include the people writing LSB tests, which is why they're flawed tests.

  21. Re:The MAIN GCC developer... by the+morgawr · · Score: 4, Interesting
    glibc developer actually

    And while he happens to be right in this case, I don't think very highly of him. He's clearly very bright, but the poster above who said that Ulrich had a bigger ego than Theo was spot on. Too often, he lets his ego and NIH syndrome get in the way.

    For example glibc is the only major C library that doesn't support the new buffer proctected string functions originally written by OpenBSD (at least last time I checked). These fuctions are faster, safer, and easier to use then the POSIX ones and are supported not just on BSDs but almost every commercial UNIX. Source compatability alone would dictate including them.

    Drepper however has repeatedly refused to include them because they work and they make it too easy to not code buffer overflows (no this is not a joke). According to Drepper programmers should be good/smart enough not to mess up something so simple as a string buffer so including a defacto standard that makes it easy to get it right is inappropriate. WTF?

    --
    The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
  22. XML is great for configuration files by antientropic · · Score: 4, Informative

    The fact remains that after you've seen through all the marketing hype, XML remains inappropriate for many tasks, and configuration files are right at the top of the list.

    In fact, it's the opposite: XML makes a lot of sense for configuration files. For instance, suppose that you need to write a script that automatically adds a line to /etc/X11/xorg.conf or a similar configuration file. If a file like that is in XML, this is trivial: you can write a XSL transformation or use any of a billion tools to apply the change in a correct way. But if it's in some ad-hoc file format (as it is right now), you either have to write a parser and unparser (which would have been unnecessary if it had been in XML; and how do you know for sure that your code is entirely correct?) or use some hacky combination of sed/grep/etc. to perform the change (which is, alas, the "Unix way"). The latter will of course fail unpredictably in lots of cases. E.g., are you handling those sections correctly? Comments? What if the line was already present? And so on.

    Of course, XML is a horribly bulky format. But who cares? It's not like configuration files will take up a lot of disk space either way. The important thing is to have a universal standard format that can be easily manipulated using standard tools so that you don't have to implement parsers and printers all the time or approximate them using broken sed/grep hacks.

  23. Re:The MAIN GCC developer... by Nevyn · · Score: 4, Informative
    And while he happens to be right in this case, I don't think very highly of him.
    [...]
    Drepper however has repeatedly refused to include them (strlcpy/strlcat) because they work and they make it too easy to not code buffer overflows (no this is not a joke).

    While Ulrich has his faults, the above is completely false. The reason they weren't accepted into glibc was IIRC:
    1) They are non-std. and did not have a usable standard like definition apart from the implementation and had no tests (Solaris implemented them slightly differently, for example, and Input Validation in C and C++ from oreilly also screwed it up -- and that was written by people selling a Secure codeing in C book).
    2) It doesn't solve the problem better than asprintf() which had been around for years (although also non-standard), as you still have problems with truncation (and both APIs have the problem of requiring the programer to correctly pass around the meta data about the string -- Ie. it's size/length).
    3) Given the above, and the fact the implementation is "free" then anyone wanting to use them can just include the source in their apps. and rely on autoconf (and they'll also be guaranteed to have the "correct" implementation).

    --
    ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B