Slashdot Mirror


Ryan Gordon Ends FatELF Universal Binary Effort

recoiledsnake writes "A few years after the Con Kolivas fiasco, the FatELF project to implement the 'universal binaries' feature for Linux that allows a single binary file to run on multiple hardware platforms has been grounded. Ryan C. Gordon, who has ported a number of popular games and game servers to Linux, has this to say: 'It looks like the Linux kernel maintainers are frowning on the FatELF patches. Some got the idea and disagreed, some didn't seem to hear what I was saying, and some showed up just to be rude.' The launch of the project was recently discussed here. The FatELF project page and FAQ are still up."

424 of 549 comments (clear)

  1. He needs thicker skin by harmonise · · Score: 4, Insightful

    He needs thicker skin if he's going to deal with the LKML crowd. I wouldn't give up just because it's not merged into the official tree.

    --
    Cory Doctorow talking about cloud computing makes as much sense as George W Bush talking about electrical engineering.
    1. Re:He needs thicker skin by omuls+are+tasty · · Score: 4, Funny

      Heck, an elephant needs a thicker skin if he's going to deal with the LKLM crowd.

    2. Re:He needs thicker skin by pak9rabid · · Score: 1

      Exactly...given enough time, if enough people find fatELF binaries useful, they may just rethink its usefulness in the kernel source tree.

    3. Re:He needs thicker skin by Tubal-Cain · · Score: 1

      Should we start making body armor from the hides of kernel developers?

    4. Re:He needs thicker skin by Mystra_x64 · · Score: 1

      Hopefully this will never happen.

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    5. Re:He needs thicker skin by jedidiah · · Score: 1

      The problem with fixating on something like ELF for fatness is that it's just the tip of the iceberg.

      There's much more to the question of whether or not something will run on an arbitrary copy of Linux than the CPU arch.

      Same goes for an Apple fat binary really...

      --
      A Pirate and a Puritan look the same on a balance sheet.
    6. Re:He needs thicker skin by Darinbob · · Score: 4, Funny

      Not a good idea, that armor would attract flames.

    7. Re:He needs thicker skin by Mikkeles · · Score: 1

      He should have sent Theo in ;^)

      --
      Great minds think alike; fools seldom differ.
    8. Re:He needs thicker skin by morgauxo · · Score: 1

      That or write their own implementation of the concept, put that in the official tree and obsolete years of hard work.

    9. Re:He needs thicker skin by morgauxo · · Score: 2, Interesting

      Maybe he could have done so, he does seem to have some sort of programming background. Maybe not if it's been mostly Windows stuff. If getting a program to work normally involves combing through log files then it's really still just a programmer's toy. That's sad considering the alternative (WMC) respects the copy flag.

      It sounds like he was just trying to make it work. If it takes digging to that level just to get it running then there is a problem. I though Myth was supposed to be in a working state at this point? Was he trying to build the latest right out of source control? If he was just installing a stable release with typical options then I think it's pretty reasonable to expect that anything which could go wrong would be too high level to need to go to a bug log.

      I've given Myth a few tries myself (on Gentoo). It's the one thing I have yet to get to work. I see lots of people do have it working but it seems most have to resort to a live CD. I for one don't want to be stuck with a distro that was built with only Myth in mind. I want my machine I have already customized as I like it but with mythbackend running in the background.

    10. Re:He needs thicker skin by flaming+error · · Score: 1

      > they need an attitude adjustment

      Yup. I told them to fix their attitudes too.

      Some got the idea but declined.
      Some didn't seem to hear what I was saying.
      Some appeared just to be rude.

    11. Re:He needs thicker skin by oldspewey · · Score: 3, Funny

      ... and repel mates

      --
      If libertarians are so opposed to effective government, why don't they all move to Somalia?
    12. Re:He needs thicker skin by cheesybagel · · Score: 1, Insightful
      So one of the developers in the project tracked and found the issue online for free and you think their support sucks? I won't even share my issues with a certain piece of closed-source software here, which required going through many layers of corporate bureaucracy to fix.

      I once found a bug in DOSBox which none of the developers cared about. l debugged and read the code myself, made a patch that "fixed" the bug (although my fix made bugs elsewhere), posted it and screenshots showing the game working when it didn't even boot before. This was enough for a couple of people to start talking about it. Next release of DOSBox came guess what, the bug was fixed. Properly.

      With closed-source software you are truly stuck because whoever developed the software must necessarily fix it. You cannot fix it yourself even if you could and wanted to. How is that better?

    13. Re:He needs thicker skin by nxtw · · Score: 2, Insightful

      There's much more to the question of whether or not something will run on an arbitrary copy of Linux than the CPU arch.

      This issue would limit the usefulness of a fat ELF feature, but it seems this is a problem that should be solved regardless of the existence of fat ELF support.

    14. Re:He needs thicker skin by charliemopps11 · · Score: 1
    15. Re:He needs thicker skin by hairyfeet · · Score: 1

      Hey I might be able to point you in the right direction on the x360s, if you don't mind getting up early or going to Wally World. This Saturday Nov7 at 8AM they are having a deal on the x360 arcade as part of their "pre Black Friday" warmup, where you get the arcade for $200, but you get a $100 gift cert.

      So anyway I hope this little info helps. If you are using the x360s as media extenders the arcade should be perfect, and you can get 2 for $300 with that deal. You'll have to look up the Walmart Black Friday pages to see if there is a limit, but I don't recall there being one. Even if there is you'll still get the $100 on the first, which you can use on the second.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    16. Re:He needs thicker skin by gknoy · · Score: 1

      If you're able to fix the bug, that's great. For most users, though, that isn't an option. The options are:

      - Free software, free support from surly individuals who cast aspersions on your intelligence and competency, while declining to actually listen enough to help you until you find the rare gem that DOES help you. The existence of that one generous developer in the crowd of jerks is not enough to counteract the generally unhelpful community. (If the community wanted to have good support, they would have done so, rather than being jerks.)

      - Non-Free software, no support. However, the product is widely enough used, and intended to be marketed, and thus has a fair amout of developers actively maintaining it, as well as some focus groups and likely beta testing groups which will have caught many bugs. Most importantly, fixing these bugs is imperative if the company wants to sell more of them, so you (as a customer) are in some ways more likely to get your problems solved (eventually).

      Now, clearly, both of these are somewhat exaggerated extremes. Many free software groups have very lively, responsive, and fanatical support groups. Many commercial tools, esp those not made by large companies, can't/won't spend money on serious bugfixing... and often the fix isn't released until version N+1. However, from the perspective of a consumer, not having to put up with jerks is a big plus.

    17. Re:He needs thicker skin by Angst+Badger · · Score: 1

      I'm not sure it's restricted to OSS development. The phenomenon seems to be well-established in mailing lists, web forums, and any number of Usenet newsgroups as well. You end up with a bunch of assholes who dominate the conversation and drive away everyone else. In the case of software developers, at least on the successful projects, they tend to be smart and highly skilled assholes, but that still doesn't make them any more pleasant to deal with. While part of it reflects the leadership (or lack of it) in any particular project, I think the main factor is that most network collaboration is easy to get into and easy to leave, so any net community will tend, over time, to accumulate assholes and drive off pleasant people.

      Find a solution to that -- and it's obviously not naive moderation/rating systems -- and you'll fix a lot more than just OSS development.

      --
      Proud member of the Weirdo-American community.
    18. Re:He needs thicker skin by Anonymous Coward · · Score: 1, Informative

      Reading Slashdot is sufficient for achieving this result.

    19. Re:He needs thicker skin by JackDW · · Score: 1

      icculus is trying to do too much at once. An intermediate step is required to introduce FatELF.

      In his FAQ, icculus explains that a shell script could be used to select the correct architecture and launch the right binary. He says that this would be equivalent to FatELF in some respects, but not such a good solution, firstly because it adds unnecessary overhead, and secondly because it is not guaranteed to work correctly on all future architectures, even those that are backwards-compatible to current architectures: "If you didn't know to check for "x86_64" in 1998, your otherwise-functional i386 version won't be run, and the script fails."

      Despite that disadvantage, an intermediate temporary solution of this sort is needed as a stop-gap to encourage the adoption of FatELF binaries. It would allow them to be used on systems that lack the necessary kernel support. If such binaries are widely used, then the kernel patches to support them directly will (eventually) be accepted.

      --
      You're an immobile computer, remember?
    20. Re:He needs thicker skin by HeronBlademaster · · Score: 1

      "If you didn't know to check for "x86_64" in 1998, your otherwise-functional i386 version won't be run, and the script fails."

      ... but FatELF has the same problem. A FatELF binary doesn't compile a new version of itself whenever it encounters a new arch; it merely selects among the existing bundled binaries to see which one is appropriate.

      Now, sure, some backwards-compatible architectures might have issues with the script, but the solution to that is simple - add a shell/library/kernel/whatever function to determine "are you $ARCH-compatible?" and expose that to scripts.

      So that particular problem, at least, is solvable by something far simpler than FatELF.

      I found Flameeyes' post regarding FatELF to be enlightening.

    21. Re:He needs thicker skin by Dan+Ost · · Score: 1

      No matter what kind of software you're having troubles with, the helpfulness of your support is almost solely dependent on you choosing the right support venue.

      Post an issue on a user forum (free software or otherwise) and you get some useless responses from jerks, some useful responses from advanced users or developers who actually help you, and a bunch of posts from other users who confirm that you're not the only one with that issue.

      Post that same issue on a developer forum and you're likely to get a hostile response since that's not what the forum is for.

      Don't blame the community when it's your fault for not learning how to engage the community appropriately.

      --

      *sigh* back to work...
    22. Re:He needs thicker skin by moodboom · · Score: 1

      You need thicker skin, too, my friend. It's not THAT hard to get help in #mythtv-users, they've helped me plenty. iamlindoro is sort of the gatekeeper screening out people who haven't done their homework. Kind of a necessary evil. But he's smart and often helpful at times too, along with many others. And it's not a simple project, the work is endless. But hang in there and chill out a bit and you'll reap the rewards of open source. Just don't expect everything to work all of the time! Part of the charm. :>

    23. Re:He needs thicker skin by Anonymous Coward · · Score: 5, Informative

      Not really, he can just go peddle his warez to someone who is more open to ideas.

      Why should anyone subject themselves to dealing with a bunch of assholes to help them make their stuff better?

      Reminds me of my recent MythTV experience ...

      I join the IRC channel for it, ask a question, lay out whats wrong, and then was told repeatedly that I had configured the server wrong and it wasn't accepting connections, even though I said repeatedly that I was able to connect to it from one client but not another so it was unlikely to be a server problem.

      After trying to explain that I had read the wiki, the mailing lists and done a fair amount of googling and already seen the 3 suggestions I kept getting over and over again, I got to the point where I told them to go fuck themselves basically. At which one guy, who hadn't been there earlier listened long enough to ask for the debug output.

      Turns out, low and behold, it was a combination of client configuration error and a bug in the mysql libs that caused it to hang and never report an error.

      A day later, I've dumped MythTV and went back to WMC under Win7. I've lost a few features in the process, but it works on all my hardware and has yet to require me to deal with a bunch of jackasses who are too arrogant to be useful. (With WMC you deal with to ignorant to be useful instead)

      Does anyone care what I run? Of course not, but they've lost potential developer support. Instead of porting my custom extensions to WMC over to work in a MythTV setup and sharing them, I'll just continue to make them work in WMC. I filed the bug on the way out the door so someone else can fix it, but overall the total loss will be on the MythTV end.

      You don't get help by being a jackass to people, regardless of how much better than them you think you are. You see a lot of this in OSS software (not just Linux, as anyone who has dealt with Theo knows). I partially understand, they aren't getting paid, they don't have any motivation to hide their true colors. Well, at least any instant motivation. Turning people away is never a good thing. I would have been happy to donate to the project instead of buying more XBox 360s to use as extenders. Now I'll just get a couple more rather than re-using my existing PCs and donating to the project.

      He doesn't need thicker skin, they need an attitude adjustment. Its a safe bet that he doesn't really care that much. He's obviously not a cluebie, he has some knowledge, and now they won't benefit. The problem isn't his.

      It's a shame you have to lie about this to make your "point". The person you claim wasn't there earlier actually was and had been asking for a debug dump the entire time. Bot logs are bad for liars.

    24. Re:He needs thicker skin by Anonymous Coward · · Score: 5, Informative

      > Reminds me of my recent MythTV experience ...
      >
      >I join the IRC channel for it, ask a question, >lay out whats wrong, and then was told repeatedly >that I had configured the server wrong and it >wasn't accepting connections, even though I said >repeatedly that I was able to connect to it from >one client but not another so it was unlikely to >be a server problem.
      >
      >After trying to explain that I had read the wiki, >the mailing lists and done a fair amount of >googling and already seen the 3 suggestions I >kept getting over and over again, I got to the >point where I told them to go fuck themselves >basically. At which one guy, who hadn't been >there earlier listened long enough to ask for the >debug output.
      >
      > Turns out, low and behold, it was a combination >of client configuration error and a bug in the >mysql libs that caused it to hang and never >report an error.

        Woah woah woah. Back up here. I was there for those 2 IRC coonversations and you kept complaining when you were asked for details or to check your settings and the wiki. Repeatedly getting upset that someone was "assuming" you wear a newbie, refused to even consider the problem was with your configuration. You were hardly an innocent angel who was being picked on by some bullies.

      And later you owned up that it was YOUR configuration issue and apologized and thanked the people in the channel.... and now days later you are using that to smere them and MythTV and OSS projects in general?

      Really classy.

      FYI for those reading this:
      At the top of the following log is him admitting it was his mistake and saying thank you for the help.

      http://mythtv.beirdo.ca/ircLog/channel/1/2009-10-28

      Unfortunately I don't have the rest logged and the log bot was down for part of that day.

    25. Re:He needs thicker skin by dgatwood · · Score: 2, Informative

      I had to screw around with MythTV for days just to get up and running, mostly because the features I wanted were off on a branch that never got merged in, the client-server protocol is not designed well enough to ensure compatibility across different versions, lirc is an abomination to get working with some of its drivers (and much of the process isn't well documented), the drivers were out of date, the new drivers weren't compatible with old versions of the code one level up, the channel guide data provider story was a train wreck (and again, not well documented), and so on.

      Setting up MythTV is very much like taking people out into a forest, giving them some iron ore, and telling them to build a house. First, they have to forge a saw out of iron ore, then sharpen the teeth individually with rocks, then cut down the trees, then.... And most of the problems are just plain boneheaded architectural decisions involving lack of backwards protocol compatibility or binary compatibility---the sorts of things that commercial OSes and software generally do very well and open source tends to ignore because they mistakenly think it doesn't matter. It matters.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    26. Re:He needs thicker skin by dgatwood · · Score: 2, Insightful

      Sometimes I think that user forums and developer forums should be one and the same---that developers should be forced to see the user flame wards---that by exposing them to this without the option to get rid of it, they will be inspired to actually write software that is easier to configure and use. Maybe it's just me.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    27. Re:He needs thicker skin by cheesybagel · · Score: 1
      No. When people have issues with closed source software they often go to forums as well and get the same lists of useless workarounds for problems you do not have, or berate you for not doing something that has no bearing on the issue you have. Try going to a NVIDIA or Adobe support forum to see what I mean. Occasionally you find a gem in the middle of the rubble.

      Going to official phone support lines is often even more useless because you get someone with a canned response list trying to go through the same routine. It is just that it takes even longer to do it over the phone. To get real developer support you need to be a *very* important customer. Luckily for me, the client I was working for at the time was one such customer, and they sent their suits to persuade the closed-software vendor to fix the issue, which they originally repeatedly denied was even an issue at all... If you have that kind of money, you could probably hire a programmer to fix the issue in the free software in the first place.

    28. Re:He needs thicker skin by cameigons · · Score: 1

      I get your point. I don't really know MythTV project, I just has have seen it and heard about it. But I do participate in a few other projects, I never mistreat any noobs or people looking for help. But I'm not always helpful either, and keep it to myself sometimes. Sometimes it's because I'm just tired. Sometimes it's because I sense the guy is gonna ask me to tie his shoes for him next (and also because I'm tired. I'm usually tired :p). If jackasses get under your skin like that, then you're in trouble, because the OSS world has a good amount of them. You must come and show people that you know what you're talking about and provide every proof you have in a (if possible)followable way. Because those same jackasses might not really know the project in depth as they might appear to (even though because some projects are just too damn big). So don't expect that. They might just be repeating to you the troubleshootings some other dude in the development wrote in the wiki because so far it seem to have worked every time, and they don't care(or don't know at moment how) to analyze it a whole lot. It's always good to start assuming that even though they are the ones caring the thing on, you just might be seeing what most of them don't. And therefore be assertive about it. It's also always good to consider that the person who might actually know about that part of the code is not available at the moment, so writing it in the mailing list might elicit better results. All in all, what I'm saying here might not be applicable, the structure, the way a project is carried on, the people etc, may change from project to project, so follow your own head.

    29. Re:He needs thicker skin by dgatwood · · Score: 1

      ... but FatELF has the same problem. A FatELF binary doesn't compile a new version of itself whenever it encounters a new arch; it merely selects among the existing bundled binaries to see which one is appropriate.

      No, that's not correct. With a fat binary, the operating system chooses which one is appropriate. A newer OS that runs on x86_128 will know that the chip supports emulating x86_64 binaries natively, and will run that slice if it exists. A shell script that is part of the application cannot do that unless you or someone else rewrites it.

      add a shell/library/kernel/whatever function to determine "are you $ARCH-compatible?" and expose that to scripts

      Those of us who actually care about inode counts think such a scheme is an insanely bad idea. This means that for every binary with three architectures (say i386, i386+SSE3, x86_64), you now have three binary files and a script file instead of one file. You've just increased the number of inodes your OS takes by a significant amount. Even if the user then strips out all but one binary, you've still doubled the number of executable files; you can't just replace the script with the binary you want to keep because you can't be absolutely certain that neither the binary nor any executable that uses that binary expects it to be in the old location. Replace it with a symlink? You're still using an inode.

      Also, you still aren't solving the bigger problem, which is libraries. As soon as you link in a library that needs to be able to load with more than one architecture, your "simpler" scheme blows up to an unholy mess with multiple trees of libraries, multiple library paths, having to compile each slice of the binary completely separately because they end up with different sets of LDFLAGS for each link line, etc. In the end, it ends up being MUCH, MUCH easier to use fat binaries than to try to hack something on top with shell scripts. In the long run, it is almost ALWAYS easier to do it right than to do a hack, and in the time you spend screwing around with that hack and making every developer's life miserable, people are jumping ship to other platforms that get it right the first time.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    30. Re:He needs thicker skin by dgatwood · · Score: 1

      Reread the post you replied to:

      ...because it is not guaranteed to work correctly on all future architectures, even those that are backwards-compatible to current architectures

      Emphasis mine. That means that when a new architecture comes out that supports i386 binaries, those binaries still won't run because the architecture reported by the kernel won't match any of the architectures that the script knows about.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    31. Re:He needs thicker skin by plague3106 · · Score: 1

      So one of the developers in the project tracked and found the issue online for free and you think their support sucks?

      Ya, after being told bascially to piss off. And I get free support from MS too. The POINT is that OSS is supposed to offer a better alternative, but it doesn't. Who cares about "layers of bureaucracy" when you have arrogant assholes who can't EVEN BE BOTHERED TO READ THE BUG REPORT.

      I once found a bug in DOSBox which none of the developers cared about. l debugged and read the code myself, made a patch that "fixed" the bug (although my fix made bugs elsewhere), posted it and screenshots showing the game working when it didn't even boot before. This was enough for a couple of people to start talking about it. Next release of DOSBox came guess what, the bug was fixed. Properly.

      With closed-source software you are truly stuck because whoever developed the software must necessarily fix it. You cannot fix it yourself even if you could and wanted to. How is that better?

      Because show stopping bugs like the one you describe in DOSBOX are very rare. Its pretty much why I ditched Linux. I got tired of things half-assedly working. And no, I'm not going to spend all my free time debugging other peoples shit when I have my own things I'd like to do. And closed source software lets me do that without getting in my way.

    32. Re:He needs thicker skin by plague3106 · · Score: 1

      Sorry, a deverloper forum ISN"T the right place to discuss a bug? Oh, and nothing you said excusses asshole behavior.. either you want to help people and have them use your software, or you don't. Many in OSS seem to want the latter so they can be left alone in their moms basement.

    33. Re:He needs thicker skin by ifwm · · Score: 1

      No.

      Yes.

      Try going to a NVIDIA or Adobe support forum to see what I mean.

      I have, and had none of the problems you describe.

      To get real developer support you need to be a *very* important customer.

      No, you don't, the presence of developers in THIS VERY THREAD proves you're full of it.

      Stop lying to support your point, or get job at MS.

    34. Re:He needs thicker skin by LordNimon · · Score: 1

      During the interview for my current job as Linux kernel developer, my then-future manager asked me about how I would get my code into the official tree. I told her that I would need to prostitute myself to get my patches accepted by trying to understand what the maintainers wanted and doing whatever it took to make them happy.

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
    35. Re:He needs thicker skin by migla · · Score: 1

      That's a shame. I wish those irc jerks would have been nicer to you, so that the rest of the community could have benefited from your contribution.

      --
      Some of my favourite people are from th US; Vonnegut, Chomsky, Bill Hicks.
    36. Re:He needs thicker skin by init100 · · Score: 1

      persuade the closed-software vendor to fix the issue, which they originally repeatedly denied was even an issue at all

      Reminds me of an issue with a certain Microsoft Live service that we integrate with at work. One day the integration stopped working about 50% of the time. I figured out that the problem was that the Microsoft service had started sending erroneous SSL certificate chains some of the time. This information was forwarded to Microsoft support.

      Their response? Not our problem. It's your fault. Reconfigure your IIS servers.. Except we have no IIS servers, and I verified that my conclusions were correct several times using OpenSSL. Only after several emails back and forth they realized that they were in fact causing the problem, and in an instant, they fixed the erroneous certificate chain and the problem disappeared.

    37. Re:He needs thicker skin by pelrun · · Score: 1

      Hang on, they repeatedly tried to help you, but they're arrogant assholes because they were wrong? Because they couldn't magically pull the correct answer out of their arses when only given a limited view of the machine?

      The real problem is that they have to deal day-in and day-out with people who come in to the channel with a problem, give inaccurate information about their system, refuse to listen to the advice they are given, then storm off in a huff even though the advice was *right*. And yet they were still trying to help you out.

      Arrogant assholes are on both sides, buddy.

    38. Re:He needs thicker skin by azmodean+1 · · Score: 5, Insightful
      aah yes, the old, "The free IRC-based tech support I got from random volunteers wasn't up to my high standards" problem. This really has no bearing on the issue with FatELF, but I see it over and over again, people demanding prompt, polite, tech support from a roomful of random lurkers and project volunteers. These people are spending their free time performing one of the most annoying, boring, thankless jobs in IT, and they get abuse because they don't fix your problem fast enough. There are a few things you might want to consider before "punishing" a project by abandoning it based on experiences in an IRC channel:

      1. Ability: There is no guarantee that the people that kept giving you the same suggestions over and over know enough about the project to look into it more deeply, but you assume that they just weren't interested in helping. It's more likely that they know little more than you do about the project, but have a short list of the most commonly encountered problems and likely solutions. (kind of like tier 1 tech support, but free)

      2. Affiliation: There is no guarantee that any of the people you talked to even have anything to do with the project other than lurking in their IRC channel. In my experience quite a few users lurk in channels of software they like, regardless of how capable they are of helping other people.

      3. Incentive: I'm sure your problem was YOUR top priority at the time, but quite a few people on IRC lurk most of the time while they are doing other things, some of which are more important to them than trying to fix your problem. Also they have almost zero direct incentive to try to be nice to you.

      4. Price: You mention this only to dismiss it, but seriously, this is a very valuable service that you are receiving for free, and you even had your quite obscure sounding problem diagnosed.

      For-pay tech support either eliminates or hides these problems from the end-user, volunteer tech support doesn't have the resources to do this.

      1. Ability is handled by tiering, if this were commercial software, you would have had to wait days to weeks in order to reach a level of tech support that would have been able to diagnose a bug in a sub-library not maintained by the business in question, and that's assuming you had paid enough for support to go that far for you (a hint, just buying a device will NOT get you this level of support). Instead you had an answer in under a day, and even a chance that the bug will get fixed based on your input.

      2. Affiliation: This is the easy one, even if you do get support from someone outside a company you've purchased something from, you aren't going to blame the experience on the company, but rather on the individual. With open source however, if you find some random jerk that claims to be part of the project that proceeds to piss you off, you blame the project, not the individual. And regardless, unless you have a support contract with someone, it's just one person helping another.

      3. Incentive: Paid services have a lockdown on this one too, tech support that doesn't maintain at least the barest facade of civility won't be working in tech support for much longer. (there are exceptions, but in general they will be more highly incentivized to pretend to like you, however as someone who worked in tech support for a while, I can guarantee you there is approximately zero chance that they will actually like you or care about your problem, which you have a pretty decent chance of with open source volunteers.)

      At the end of the day, your problem was solved at no cost to yourself. Additionally I don't see any mention of your helpers even being rude, is this just an omission, or did you really just go into a roomful of random people and end up screaming at them (figuratively of course) because they couldn't help you with no direct provocation? If so, holy crap, you're a jerk.

    39. Re:He needs thicker skin by Grishnakh · · Score: 1

      Years? Maybe I'm missing something, but I only first heard about this FatELF thing a week or two ago on Slashdot, and now I'm reading that the guy is giving up on it. Yes, I'm sure he worked on it for some time before it showed up on Slashdot the first time, but this doesn't seem like something that would require that much work to implement. In fact, it seems like there'd be more work in getting various parties together to agree on a standard and hash out the details, because there's so many ways this could be done (different arches, different OSes even (BSD, Linux), different distros, etc.). At a high level, it's really a pretty simple idea.

      I'm still very dubious about the benefits of this idea in the first place, however. If you're getting your software from a distro like most of us do now, then the distro's installer is going to pick the right version for your distro version and CPU architecture. If you download something from a non-distro site and install it (like the newest version of Google Earth, or some proprietary software you purchase), then how hard is it to just pick the right one yourself? Of course, some non-technical users might not know if they need x86 or x86_64, but even there if you're downloading something, it's pretty easy for the website to figure this out for you, using the browser ID string, which is how Firefox for instance determines if you should download the Windows or Linux version when you get it from their site.

    40. Re:He needs thicker skin by JackDW · · Score: 1

      What CPU are you going to be running in 2019?

      I don't know, but I can tell you this: it will be x86 and x86_64 compatible.

      --
      You're an immobile computer, remember?
    41. Re:He needs thicker skin by HeronBlademaster · · Score: 1

      You've just increased the number of inodes your OS takes by a significant amount.

      What, you're going to release a distro cd made up entirely of FatELF binaries? That seems a bad idea in more ways than one. Your libraries will be no different; you're not going to create FatELF-based library files, are you?

      Also remember, a significant portion of the files included in any distro are configuration files (or other data files); these are not duplicated. This is even more true of third-party software.

      FatELF doesn't even seem useful for OSes (except maybe LiveCDs) because the package manager is going to select arch-specific packages anyway. Point being, your "built-in" OS executables will only have one file anyway, since FatELF is redundant for them, meaning FatELF is only useful for third-party software. But when your third-party software has two dozen data files or more, what's another inode or three for an extra binary and a script to choose which one you run?

      (For example, Valve's Source servers do this. If you're concerned about inode counts on a game server, you need to upgrade your game server.)

      I guess that leads to another (genuine) question: under what circumstances would the majority of people be concerned about inode counts?

      (The reason behind that question is this - if the vast majority of people should never care about inode counts, then it's kind of pointless to push FatELF on everyone using inode counts as a reason.)

      Also, you still aren't solving the bigger problem, which is libraries.

      As far as I know, FatELF doesn't solve that either, so it's basically irrelevant in the context of this discussion. I could be wrong, though; how, exactly, would FatELF solve this better than separate compiled executables can solve it?

      (FatELF isn't much different than separate compiled executables, except that the loader chooses which chunk of the fat binary to run for this arch. You still have the same linking "problems", which I'm not convinced are actually problems.)

    42. Re:He needs thicker skin by Gothmolly · · Score: 1, Offtopic

      "A day later, I've dumped MythTV and went back to WMC under Win7"

      Well, I guess you showed them.

      "I've lost a few features in the process..."

      Maybe not.

      --
      I want to delete my account but Slashdot doesn't allow it.
    43. Re:He needs thicker skin by koiransuklaa · · Score: 1

      Of course, the same goes for users. "it can't possibly be my configuration, hardware, or OS install. It must be a bug".

      Also, I'd like to quote the original poster:

      You don't get help by being a jackass to people, regardless of how much better than them you think you are.

      That comment goes both ways too... We only have his version of the story, so it's a bit hard to tell what the truth is. I'm not saying developers aren't arrogant and rude, I'm saying that users can be that as well..

    44. Re:He needs thicker skin by VoltageX · · Score: 1

      I'd be interested to know if it was a simple ID mismatch. As far as I can remember, each MythTV frontend needs a unique ID to connect to the server.

      --
      "Anonymous could not immediately be reached for further comment." - International Business Times
    45. Re:He needs thicker skin by gameboyhippo · · Score: 1

      I don't seem to have trouble with myth these days. I use my Sony PlayStation 3 as a frontend via upnp. I haven't tried the latest yet, but if it's not there already, I'm going to try to improve the upnp support so that I can do more such as deleting recordings straight from the PS3.

    46. Re:He needs thicker skin by PeterBrett · · Score: 1

      Those of us who actually care about inode counts think such a scheme is an insanely bad idea. This means that for every binary with three architectures (say i386, i386+SSE3, x86_64), you now have three binary files and a script file instead of one file. You've just increased the number of inodes your OS takes by a significant amount.

      Is this seriously an issue with 21st century filesystems?

    47. Re:He needs thicker skin by Dan+Ost · · Score: 1

      All non-trivial bugs do eventually get discussed on a developer's forum/mailinglist/whatever but it is not appropriate to go there for support. If you don't understand the difference between the kind of discussion that goes on in a developer's forum and the kind of discussion that does on in a user or support forum, then you should NEVER post to the developer forum unless the project and its surrounding community is so small that it is the only possible venue.

      Oh, and I agree that there's no excuse for asshole behavior, but try as I might, I can't seem to make them all change their ways...(it doesn't help that one person's assholery is another person's insightful, if a bit facetious, remark)

      --

      *sigh* back to work...
    48. Re:He needs thicker skin by geminidomino · · Score: 1

      Who the fuck wants either MythTV or Windows Media Center? What the hell is wrong with just opening your video files in a media player? Why the fuck would anyone want to make their computer work like a TV? What is a media center anyway?

      Someone who wants to connect said computer to a TV? The biggest difference between something like MythTV and random-linux-distro-with-all-the-players is a UI optimized for use with a remote instead of keyboard/mouse.

    49. Re:He needs thicker skin by selven · · Score: 1

      If you repel something that's already on the antipode, are you actually attracting it?

    50. Re:He needs thicker skin by Grishnakh · · Score: 1

      It's like the user that gets pissed off at the phone-support person because the support person doesn't understand what the foot pedal is that she's talking about.

    51. Re:He needs thicker skin by koiransuklaa · · Score: 1

      I never claimed (or implied) that the silent failure is acceptable, so I don't see why you are telling me this.

      The point was: communication is hard. Assuming the other guy is always at fault for communication problems is a good recipe for total failure.

    52. Re:He needs thicker skin by Eil · · Score: 1

      He needs thicker skin if he's going to deal with the LKML crowd.

      It's fairly well known that the core of LKML is the quintessential definition of an old boy network. Any ideas that didn't start there, aren't usually accepted there. You shouldn't need a "thick skin" just to get some advice or guidance on a patch or proposed feature. The list of good developers who have been flamed off of kernel development is a mile long and goes all the way back to release 0.01.

    53. Re:He needs thicker skin by TheRaven64 · · Score: 1

      Want a good solution? Look at DragonFly BSD's symlink implementation, which allows environment variables to be in symlinks. You'd just link /bin to /$ARCH/bin, /lib to /$ARCH/lib and so on. When you install a package, it installs in the correct directories for the architecture(s) supported by the package. If you have a machine with an ARM CPU and an x86 CPU, for example, the symlinks are resolved correctly depending on which one you booted with. If you use a shared filesystem over the network with multiple architectures, the symlink will give you the ones you want. If you plug a disk in to another machine, the symlinks will give you the correct executables for your OS.

      Of course, this will probably not be implemented on Linux because it has one of the worst cases of NIH of any project I've seen, but it requires only relatively small changes to the VFS subsystem and makes this entire problem go away.

      --
      I am TheRaven on Soylent News
    54. Re:He needs thicker skin by Al+Dimond · · Score: 1

      This is mostly library dependencies as I understand it. The fact that most software we get through distros links almost everything dynamically is a big part of why package management is so important.

      Meanwhile, people making third-party releases are often better off linking statically as much as they can. If you rely on dynamic libraries, Linux binary compatibility across distros and over time is nearly impossible. If you build statically you'll usually only depend on the kernel and X11 (and maybe things like sound APIs, but they usually try to keep old apps working) -- which makes binary compatibility about the same as on Mac and Windows. This is not to get down on dynamically-linked stuff. For the parts of your system that the distro provides (most of it) it has its advantages. For third-party stuff, why not a static build?

      There are a number of reasons you might want to make binary third-party releases on Linux (even though very few people do). You could be developing something closed-source and not redistributable by distros. Your package might not have a high enough profile to make it into major distros. And even high-profile projects might want to release cutting-edge versions to users that (a) aren't comfortable building from source and (b) don't want to waste disk space on development headers for every library on their system. Furthermore, distros often screw things up (see Debian SSL Fiasco and all the complaints about Ubuntu and PulseAudio).

    55. Re:He needs thicker skin by sdiz · · Score: 1

      Once you overcome the LKML guys, you will have to deal with the GCC/GLIBC gangs. Not so easy.

    56. Re:He needs thicker skin by Nursie · · Score: 1

      And watch as they all stop using the forum so they can get some work done. And as the users leave because they logged in, saw some discussion of the internals and some code snippets and got totally confused.

      No, it's better the way it is.

    57. Re:He needs thicker skin by BitZtream · · Score: 1

      Wow, so you missed the part where I pointed out that the debug log wasn't showing the problem?

      Thank you for proving my exact point.

      I tried MythTV due to being tired of dealing with the problems with the WMC machine and having to fix it, but when you've spent a week working with something and it still doesn't function properly, spending a day every 6 months to a year to just reinstall is far more attractive.

      Yep, Windows fucks up, often, but in this case, its still easier to deal with than MythTV.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    58. Re:He needs thicker skin by BitZtream · · Score: 2, Informative

      Yes, Mythbuntu.

      The problem was not a security issue.

      The problem was using the wrong port for the database server in the client configuration, a port that was open and listening, but not MySQL.

      The MySQL client connects, MythTV says 'Okay, got the database!' and goes on to do other things as if everything is working properly. Then when it gets around to actually using the database it just locks up waiting for the DB to respond, but since its not actually talking to a database it doesn't respond, and the REAL problem is that it never times out either. It doesn't log any error.

      I did eventually find the problem myself, using some good old debugging skills. I also informed the guy who was helping me since he spends a lot of time in the two mythtv channels I was asking in and may help someone in the future. I also logged the bug with copies of the config files, a detailed description of the error, and all the log files that the mythtv and mythbuntu devs asked for.

      I'm not new to this game, it was a bug that no one had reported. Admittedly, it was a stupid configuration error that was my own fault. During my setup, I even checked the little 'check database connectivity' checkbox, to which it came back and said the database was working properly. As a user I went well beyond what you SHOULD expect out of an end user, because as a developer I realize how hard it can be to debug errors and how important to have the most complete picture possible. I even added step by step details for reproducing the problem in a default Mythbuntu install.

      You are responding the exact same way as the initial response from the assholes I'm complaining about. You are arrogant and worthless for help because you think you know everything about a situation when you have no idea whats going on. You are the problem.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    59. Re:He needs thicker skin by BitZtream · · Score: 1

      No, I was a retard and entered the MythTV backend port as the MySQL port in the DB setup.

      I did eventually get enough input and brute forced my way into finding the solution.

      Actually, it could have been many things to start with, I was on about my third or forth clean install of both the backend and frontend by that point, the IRC conversation was really related to that last problem.

      I did find out about the unique id problem, and that may have been an issue in one of my earlier attempts, but by the time that took place I had already manually configured unique ids for my frontends to rule that out.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    60. Re:He needs thicker skin by BitZtream · · Score: 1

      They didn't even wait for me to fully explain the problem, and after I pointed out why those suggestions were wrong and I had verified them, nothing changed.

      If you can't deal with newbies day in and day out its probably best to not answer. Like it or not these people, in the channel thats suggested to go to for help, represent the project. Doesn't matter how they are affiliated with it or not. You tell people to go someone to ask a question and get shitty 'service' the project gets a bad name. Newbies don't know who is actually affiliated with the project and who isn't, but they do know they are in a channel that the project suggested.

      There are assholes on both sides, but I didn't join and call them jackasses, I joined and asked for help, and was trying to explain the situation when I get a bunch of silly answers that could not possibly apply spewed at me, not once, multiple times, even after pointing out why those answers did not apply.

      This isn't a case of 'asshole comes in and tells them they are a bunch of shitheads with shitty software, and they respond by being an asshole'.

      This is a case of 'someone joins, gets answers before the question is finished that are wrong, they don't bother to listen just keep repeating the same answer, and the person asking gets extremely frustrated'.

      This is a case of those being 'helpful' acting like children. If you're going to treat everyone like an asshole, just replace the other clients with a bot who is abusive on join.

      These are people who didn't actually know what they were talking about racing to provide an answer without knowing the problem so they can stroke their egos. Not the best way to win over new users, developers or otherwise.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    61. Re:He needs thicker skin by JohnBailey · · Score: 1

      Who the fuck wants either MythTV or Windows Media Center? What the hell is wrong with just opening your video files in a media player? Why the fuck would anyone want to make their computer work like a TV? What is a media center anyway?

      You would be surprised how good it is. The ability to play all media on a TV set, or in advanced installs, to play all media on any TV set with a myth box connected is something that you can only appreciate fully once you live with it for a while. It's going to be one of my next projects. My current HTPC is only a fairly ordinary desktop PC connected to my TV set, but I can watch and record TV and radio, watch Youtube videos and other streamed content on my TV instead of on my computer, upscale DVDs, Watch all my Miro downloaded content as and when I like, and it gives much greater flexibility than anything on the market. My current one is Windows based, so I have to use a bunch of different apps to do everything, but I'm looking at using one of the Myth distros for my next build. One remote to rule them all.

      FatELF could quite easily have been some attempt to make everyone's Linux take twice as long to download and use twice as much disk space. Or perhaps the person who developed it just can't accept that it's totally useless. Maybe there is no giant conspiracy to ruin Linux by stuffing it full of useless crap, actually people are just morons.

      Here I agree. I haven't gone into it that much, but on the surface at least, it seems an over think to a problem that is not that much of a problem, and a developer that got upset because everybody didn't think his idea was as brilliant as he did.

      What few here seem to appreciate, is that the kernel devs must get hundreds of "improvements" sent to them every day. A whole new revolutionary software installation system is just another installer. Kind of like stand up comedians getting jokes from cab drivers.

      --
      It is difficult to get a man to understand something when his job depends on not understanding it.
    62. Re:He needs thicker skin by BitZtream · · Score: 1

      1: Ability - I can accept all of that, but when their response is 'we see this all the time, we're right, your wrong' after I've shown they clearly were not right. They say 'your server isn't accepting connections' I say 'but my other client can connect and works just fine' they say 'your server isn't listening for connections we know what we're talking about' I don't have to know anything about Myth to know they are just wastes of planetary resources at that point.

      2: Affiliation - If you're going to suggest on your project website to go to a specific IRC channel, then you have to realize that the feeling people get in that channel is going to be directly associated with your project.

      3: Incentive - It wasn't a matter of not getting a response, I got responses before I finished stating my problem.

      4: Price - Flately wrong, I spent more time trying to get them to shutup long enough to hear me out than any savings they provided. Its not free, it cost me my time, and like it or not, reflects on the project itself.

      Pay support may hide it but that doesn't excuse abusive behavior in 'free' support.

      In your second list:

      1 - ability - Considering the 'help' I got from one guy resulted in basically 'weird, it looks like everything is working from the log', then you'll get that pretty much in first layer support from anyone so I wouldn't have wasted any time.

      2 - Affiliation - When the website says 'go here for help' and you go there, and get a bad experience, you associate it with the project, they did after all, suggest I go there. This is no different in paid support or with commercial products. A commercial vender suggests support from a company I have a bad experience with I certainly do expect the parent company to address the issue, I do hold it against them.

      3 - Incentive - Citation needed. Paid services most certainly do care, maybe not the drones on the phone, but you are a paying customer, they want you to stay so they can keep getting paid with your money. They piss off to many customers, they don't get paid. The drones may not realize this, but too many complaints and they'll get fired. My company has support personal too, we most CERTAINLY care about what our customers think of their service.

      At the end of the day, my problem was solved, by myself, at the cost of several hours of my time. I'm not sure if it would have been quicker if I had not joined or not. Its hard to say since I'm sure the interaction did sway my path to some extent, I don't know if I would have found it sooner or later since there was no specific part in the conversation that guided me to the problem. The one helpful soul came to the same conclusion I was at when I joined. 'the debug log says its working'. I finally gave up and started checking every configuration option one at a time, as I had a working client on another machine.

      Were they rude? Depends on your exact definition. Yes, I think they were. After pointing out that the reasons they were giving me were not the case, and I get a response of 'we do this all the time we know more than you' even though they clearly did not know the problem in this case nor did they bother to even look at the fact that I had proof that it they were wrong. They made the choice to not acknowledge that I may not be a complete idiot or listen. You can see for yourself: http://pastebin.com/m2cfd19dd

      I'm BitS in that log, read the first 40-50 lines if you'd like. I admit that I got frustrated, but I certainly tried initially to accept the fact that they deal with newbies all day long. I admit I was frustrated when I joined and tried to take that into consideration, there was no such consideration on the other side.

      I did make a mistake in my original post, looking at that log, wagnerrp was there from the start and did make every attempt at being useful, even if he didn't solve the problem, I appreciate the effort either way.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    63. Re:He needs thicker skin by hughperkins · · Score: 1

      Why is the parent modded as 'troll'? Seriously, opensource is great, I contribute to lots of it, but end user-friendly communities they are not... I know i'm risking taking karma loss myself, but ...

    64. Re:He needs thicker skin by palegray.net · · Score: 1

      Wanna go out? Don't tell my wife I asked...

    65. Re:He needs thicker skin by dgatwood · · Score: 1

      What, you're going to release a distro cd made up entirely of FatELF binaries?

      That's the idea, yes.

      As far as I know, FatELF doesn't solve that either, so it's basically irrelevant in the context of this discussion. I could be wrong, though; how, exactly, would FatELF solve this better than separate compiled executables can solve it?

      gcc -o foo foo.c -L/usr/lib/ -lfoo

      Instead of:

      gcc -o foo foo.c -L/usr/lib/ -lfoo
      gcc -o foo foo.c L/usr/lib64/ -lfoo

      One library path for both architectures instead of two.

      I guess that leads to another (genuine) question: under what circumstances would the majority of people be concerned about inode counts?

      When they run out. :-D But seriously, reducing the number of files you create also significantly reduces install times even if you're writing the same amount of data. There's a non-negligible performance overhead in creating hundreds of thousands of extra files. And even if you only write out binaries for a single architecture, there's a non-zero performance hit to walking the larger directory trees on the install media, seeking farther because of the extra files from the architectures you skip, etc. Or you could ship separate DVDs, but then you're back to the user having to choose before they even get the OS up and running. And if they choose something that should work, but doesn't due to critical kernel bugs (been there, done that), then they get to download a whole separate ISO (and maybe even reinstall).

      Point being, your "built-in" OS executables will only have one file anyway, since FatELF is redundant for them, meaning FatELF is only useful for third-party software.

      Not at all. Take the case where there's a bug in a piece of software. In many cases, bugs behave differently or don't reproduce on all architectures. Thus, you may be able to work around the bug by running something in a different architecture. Also, third-party binaries are a great reason for having fat binaries, but they're nearly useless unless you also have fat libraries. As soon as you have built-in system libraries that are thin, you run a significant risk of having some libraries only installed for one architecture and not on another. This can easily turn the problem of choosing which slice to run into a case of the user having to manually run a particular slice, which is not a good user experience. That doesn't usually happen if you have all your system libraries built fat (unless somebody explicitly strips the libraries to a single architecture to save a few megs of disk space, in which case they deserve what they get).

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    66. Re:He needs thicker skin by Homburg · · Score: 1

      With a fat binary, the operating system chooses which one is appropriate.... A shell script that is part of the application cannot do that unless you or someone else rewrites it.

      Of course it can, if the operating system provides the necessary functionality. And it's much easier for distributions to provide a "run the appropriate binary" program, than it is to add fat binary support to the kernel and libc.

      As soon as you link in a library that needs to be able to load with more than one architecture, your "simpler" scheme blows up to an unholy mess with multiple trees of libraries, multiple library paths, having to compile each slice of the binary completely separately because they end up with different sets of LDFLAGS for each link line, etc.

      That makes no sense. Compiling a separate binary for each architecture is going to be no more or less messy than compiling a separate binary for each architecture and then stuffing them in one fat binary. If different architectures need different LDFLAGS, they'll need different LDFLAGS whether or not you use separate binaries of fat binaries.

    67. Re:He needs thicker skin by zapakh · · Score: 4, Interesting

      I didn't smear MythTV, I pointed out how arrogant assholes can ruin someones experience and cause them to leave.

      In the pastebin link you cited as being "less one-sided", you are barking orders to people and citing your credentials. What you say about arrogance turning potentially contributing members of a community away is sometimes true, commonly enough as to have become cliche, and quite unfortunate. However, you appear to have had a deep expectation that this is how you would be met. When you're convinced that you have good reason to "hate linux people", as you put it, you will tend to see what you believe. Especially after you have (admirably!) spent two frustrating days trying to find a solution.

      It puts my teeth on edge to read the tone of your post here, and also of your linked IRC log. It came off -- and I say this not as an insult but as a barometer -- in a similar way to this guy. I'm not saying you're like that guy; but the heaviness with which you tried to control the conversation could have been perceived as a sense of entitlement. I certainly would have perceived it that way had I been present, and I likely would have reacted in a way that reinforced your dislike of the denizens of help channels.

      It's only on multiple readings that I can see that you didn't actually have a chip on your shoulder, and did not actually possess the sense of entitlement that I attributed to you. Rather, you were venting frustration. Maybe you dreaded the trip you would have to make to #mythtv-users because you expected that you'd missed something obvious and would feel stupid when it was pointed out. If you are anything like me, this expectation will always render you very sensitive to being rubbed the wrong way by a rough sense of humor or an assumption that you are a noob (which, a priori, is the most likely hypothesis). If you're sensitive to it, then it doesn't matter how gently or politely they express this assumption; it will get your hackles up. And if the noob assumption is expressed less-than-gently because you opened with a statement that you intended to be humbly self-deprecating but which contained no mythtv-related query, you are likely to perceive it as a full-blown assault on your legitimacy.

      If there is any personal advice I can offer, it is to maintain a sense of humor when entering any situation like this. You'll be encountering a lot of strong personalities. Maybe you expect them to respect your frustration, your intelligence, and the time you put into a solution so far (they may assume you're a noob). Maybe they expect you to ask your question first thing, all on one line (you didn't). Your sense of humor is a sort of shock-absorber to ride out the first few missed expectations and maintain your cool. It smooths over the beginning of the conversation. Small matters of etiquette can be allowed to slide on both sides. Thereafter, if someone's legitimatly an asshole, they're easy to spot and ignore.

      As far as the nature of the community... hell, even if IRC were the most wretched hive of scum and villainy I'd still dread that support experience less than, say, Dell's.

    68. Re:He needs thicker skin by RocketRabbit · · Score: 1

      The main problem is databases. Why the hell does MythTV use a database? Why not keep information in flat text files and read them when they are needed?

      Nowadays every open source app wants to use a database. I read the other day here on slashdot about an instant messenger that uses a "new" database. Why the fuck? What the hell does it even need one for?

      Something that should be forced on developers is the idea of using an abstraction layer instead of a database. That way I can use whatever the hell database I want, and only one instance of it, to service all the database "needs" of a hundred apps, instead of running 3 or 4 or 5 different DBs just so some jackass can put "database programming" on his resume.

      My buddy has a netbook running Ubuntu and I shit you not, 4 databases running all at once. He never installed a database, they were all dependencies for apps that make you wonder, like MythTV, why the FUCK is this app even using a DB?

      Databases are fucking evil and need to be destroyed. They are, except in a very few situations, a layer of unnecessary cruft that exists for no specific reason other than oohhhh, lookie, my app hooks into a DB!

      bastards.

    69. Re:He needs thicker skin by Slashcrap · · Score: 1

      I did make a mistake in my original post, looking at that log, wagnerrp was there from the start and did make every attempt at being useful, even if he didn't solve the problem, I appreciate the effort either way.

      Nice backpedal. You're still scum and should never post on Slashdot again. In fact you've been owned so hard by so many people that I don't even see how you could.

    70. Re:He needs thicker skin by hitmark · · Score: 1

      i cant help wonder if humanity is being breed for narcissism, or something of that nature...

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    71. Re:He needs thicker skin by BadDreamer · · Score: 1
      I finally gave up and started checking every configuration option one at a time, as I had a working client on another machine

      So wait ... you did this AFTER asking for help? You didn't START by checking YOU had done everything right, but went to IRC and DEMANDED HELP without making sure it wasn't a simple mistake on your part first? And for this you expected CONSIDERATION?

      Go to your windows app instead. You won't be missed. And try that approach using your windows app and see how well support treats you then.

    72. Re:He needs thicker skin by Ash-Fox · · Score: 1

      Once you overcome the LKML guys, you will have to deal with the GCC/GLIBC gangs. Not so easy.

      Who is the end boss?

      --
      Change is certain; progress is not obligatory.
    73. Re:He needs thicker skin by Ash-Fox · · Score: 1

      Sometimes I think that user forums and developer forums should be one and the same---that developers should be forced to see the user flame wards---that by exposing them to this without the option to get rid of it, they will be inspired to actually write software that is easier to configure and use.

      I'm reminded of the time I looked in a mailing list archive for developers and saw a user who joined and got very mad about the nightly build messages, tonnes of debugging code on the list. For about a month, he kept asking people to remove him from the list with "please remove me!!!!", constantly replying to every thread to remove him. Nobody replied to him ever. I think the devs marked his message as spam locally on their systems and never saw him again.

      --
      Change is certain; progress is not obligatory.
    74. Re:He needs thicker skin by plague3106 · · Score: 1

      So really then, how is this different than traditional closed source software? Developers not listening to their users, wanting to wall themselves off from the morons running the very code they created.

      Which is interesting, because MS developers have been actively more engaging in the MS platform community... and I've yet to find a single post from an MS employee that could be deemed "assholish."

    75. Re:He needs thicker skin by Dan+Ost · · Score: 1

      So really then, how is this different than traditional closed source software? Developers not listening to their users, wanting to wall themselves off from the morons running the very code they created.

      How does that follow?

      Just because there is a developer's forum doesn't mean the developers don't also monitor the user forums. Different forums exist for different purposes, and nothing prevents a developer from participating in multiple forums.

      --

      *sigh* back to work...
  2. Good riddance by hansraj · · Score: 4, Funny

    I like my elves the way I like my tea: thin and exotic.. served while still hot.

    1. Re:Good riddance by jbeaupre · · Score: 1

      I like my elves like I like my coffee, ground up and kept in the freezer.

      --
      The world is made by those who show up for the job.
    2. Re:Good riddance by maxume · · Score: 2, Insightful

      That's terrible! They will quickly become dehydrated and lose flavor.

      --
      Nerd rage is the funniest rage.
    3. Re:Good riddance by Nadaka · · Score: 1

      I like my elves like I like everything else, finely minced, baked with mushrooms and served in a legendary obsidian dining hall.

      *elf meat biscuit*

      Loosing is fun. Dwarf Fortress.

    4. Re:Good riddance by beelsebob · · Score: 1

      I like my elves like I like my coffee, covered in bees!

    5. Re:Good riddance by hannson · · Score: 1

      I like my elves like I want my whiskey - twelve years old...

      wait that came out wrong...

    6. Re:Good riddance by RegularFry · · Score: 1

      Quite. Clearly anything over 10 years is just showing off.

      Er - that didn't help, did it?

      --
      Reality is the ultimate Rorschach.
  3. I don't believe it! by smooth+wombat · · Score: 5, Funny

    and some showed up just to be rude.

    I would never have believed that people in the Linux community would show up at an event just to be rude. I've always heard such glowing praise about the Linux community. They're always there to help the new guy, willing to mentor those learning the "So simple a caveman can do it" operating system and break the monopoly of Microsoft once and for all.

    His comments can't be correct. Everyone knows what fine, upstanding individuals the Linux community is.~

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
    1. Re:I don't believe it! by Anonymous Coward · · Score: 1, Funny

      I agree. In fact, I'll even propose an improvement:
      Lets split the fat binary into separate files, so you don't need to download code that you will never use. Maybe someone could invent a software manager that automatically downloads the version that best matches your operating system?

    2. Re:I don't believe it! by tokul · · Score: 1

      I would never have believed that people in the Linux community would show up at an event just to be rude.
      ..
      His comments can't be correct. Everyone knows what fine, upstanding individuals the Linux community is.~

      Programmers are arrogant. Comes with territory.
      It does not depend on OS.

  4. Here are a couple of fatelves by captnbmoore · · Score: 2, Funny
    --
    The Navy Motto "IF it ain't broke Fix It" "A day is wasted if you don't learn something new"
  5. Solution in search of a problem by amorsen · · Score: 4, Insightful

    The 32-bit vs. 64-bit split is handled pretty well on Linux (well, Debian drug its heels a bit on multiarch handling in packages, but even they seem to be getting with the programme).

    Real multi-arch could be useful, but the number of arches on Linux is just too overwhelming. To get somewhat decent coverage for Linux binaries, they'd have to run on x86, ARM, and PPC. Plus possibly MIPS, SPARC, and Itanium. Most of those in 32-bit and 64-bit flavours. Those elves are going to be very fat indeed.

    --
    Finally! A year of moderation! Ready for 2019?
    1. Re:Solution in search of a problem by nxtw · · Score: 4, Insightful

      The 32-bit vs. 64-bit split is handled pretty well on Linux (well, Debian drug its heels a bit on multiarch handling in packages, but even they seem to be getting with the programme).

      I disagree. Solaris and Mac OS X are the only operating systems I would say handle it well.

      OS X 10.6 includes i386 and x86_64 versions of almost everything. By default it runs the x86_64 versions on compatible CPUs and compiles software as x86_64. It runs the i386 kernel by default, but the OS X i386 kernel is capable of running 64 bit processes.

      One can reuse the same OS X installation from a system with a 64-bit CPU on a system with a 32-bit CPU.

      Solaris includes 32-bit binaries for most applications but includes 32- and 64-bit libraries. It includes 32- and 64-bit kernels as well, all in the same installation media.

    2. Re:Solution in search of a problem by Stu22 · · Score: 1

      Someone running SPARC and Itanium can probably cope without FatELF, however, people running Ubuntu, that don't even know their computer has an architecture could be helped when they, unbeknownst to them, upgrade from 32 to 64 bit, or from one architecture to another.

    3. Re:Solution in search of a problem by amorsen · · Score: 1

      In this context, Solaris is pretty much the same as a typical Linux distribution. The main difference is that it's optimized for SPARC, where you really want to run everything you can in 32-bit mode, because otherwise the slow CPU gets even slower. Solaris has an advantage in that they discovered that it's smart to run 64-bit kernel with 32-bit userland, so they include a 64-bit kernel with their otherwise 32-bit distribution. Linux really ought to do the same, running a 32-bit kernel on 64-bit capable hardware has only downsides. Solaris did it out of necessity though, because a security vulnerability in the first UltraSPARC makes it possible for any 64-bit program to crash the system (no, they did not offer refunds or exchanges for that one). Hence 64-bit kernel but pure 32-bit userland.

      OS X has the advantage of just one install medium for 32-bit and 64-bit. That's where FatELF would help, but DVD's are already cramped for install media. FatELF would push lots of software to the second DVD, and then the win is gone.

      Moving installed systems from 64-bit to 32-bit? I think that's very rarely done, and personally I wouldn't waste any disk space on making it possible.

      --
      Finally! A year of moderation! Ready for 2019?
    4. Re:Solution in search of a problem by Nimey · · Score: 1

      Is the 10.6 kernel really i386 or have they done the Right Thing & compiled it for i686? The weakest Intel CPUs they sold were IIRC Core Solos, which are an evolutionary improvement on the i686.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    5. Re:Solution in search of a problem by Mattsson · · Score: 1

      Well, since I've recently had to wrestle with getting a binary-only proprietary 32-bit application to run on a 64-bit linux, I'd really have appreciated at least a unified binary for both 64 and 32 bit x86...

      --
      /.Mattsson - My native language is not English, so please don't whine over linguistic errors. (That's lame anyway...)
    6. Re:Solution in search of a problem by nxtw · · Score: 1

      OS X on Intel has assumed the presence of SSE3 since the beginning (all Intel Macs have it) and won't work at all on x86 without SSE2. It's not compiled for i386 or i686.

      OS X's gcc uses SSE2 instead of x87 floating point by default.

    7. Re:Solution in search of a problem by squallbsr · · Score: 1

      Solaris includes 32-bit binaries for most applications but includes 32- and 64-bit libraries. It includes 32- and 64-bit kernels as well, all in the same installation media.

      I have been thinking for a while now that Solaris would benefit greatly from FatELF binaries. They already do some goofy magic with their execution of binaries to figure out which version to run (the one from /usr/bin -or- the one from /usr/bin/amd64)?

      --
      Sleep: A completely inadequate substitution for Caffeine.
    8. Re:Solution in search of a problem by nxtw · · Score: 1

      Solaris on Intel is the same way: it ships the 32-bit and 64-bit kernels and can use either.

      Moving installed systems from 64-bit to 32-bit? I think that's very rarely done, and personally I wouldn't waste any disk space on making it possible.

      AFAIK, an OS X installation can be used to boot any Mac supported by that OS version. It's not like Windows or Linux, which use the BIOS to load the kernel and a set of drivers required to load the rest of the OS... and will fail if the drivers loaded before starting the kernel are not sufficient to load the rest of the OS.

      This would be useful when booting from external media, but given the few Intel Macs sold with 32-bit processors, it's not too common. But I've moved from 64-bit to 32-bit PCs a few times; from a single core Athlon 64 desktop to a 32-bit Core Duo laptop, and later from a 64-bit Core 2 Duo laptop to a 32-bit Atom.

    9. Re:Solution in search of a problem by chowdahhead · · Score: 1

      You're confusing multiarch that Debian has been developing for quite some time with AMD64 running 32-bit binaries. It's not the same https://wiki.ubuntu.com/MultiarchSpec

    10. Re:Solution in search of a problem by Blakey+Rat · · Score: 1

      Real multi-arch could be useful, but the number of arches on Linux is just too overwhelming. To get somewhat decent coverage for Linux binaries, they'd have to run on x86, ARM, and PPC. Plus possibly MIPS, SPARC, and Itanium. Most of those in 32-bit and 64-bit flavours.

      So, to summarize: we shouldn't do it because it's hard.

      To which I reply: everything worth doing is hard, the easy things have already all been done.

      Or alternatively: aw, poor babies! Want your blankie and pacifier?

    11. Re:Solution in search of a problem by pembo13 · · Score: 1

      I would image that package management for FatELF packages would suck, as there would be no clean and simple way to specific architecture.

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    12. Re:Solution in search of a problem by yuhong · · Score: 1

      More importantly, Apple themselves moved (or should I say downgraded?) from the 64-bit iMac G5 to the 32-bit iMac Core Duo.

    13. Re:Solution in search of a problem by amorsen · · Score: 1

      Sisyphos did something hard.

      I'm arguing that it isn't worth doing, not that it's hard (inventing FatELF isn't particular hard, although Apple managed to get a patent on the equivalent.)

      --
      Finally! A year of moderation! Ready for 2019?
    14. Re:Solution in search of a problem by amorsen · · Score: 1

      How did you manage to fit the desktop disk into the laptop?

      --
      Finally! A year of moderation! Ready for 2019?
    15. Re:Solution in search of a problem by amorsen · · Score: 1

      Yes, that works on most Linux distributions. Solaris apparently does it one better and automatically boots the 64-bit kernel if available. Linux distributions should do the same.

      --
      Finally! A year of moderation! Ready for 2019?
    16. Re:Solution in search of a problem by amorsen · · Score: 1

      You install the 32-bit compatibility libraries and off you go? I am surprised it was much of a wrestle. Unless your distribution didn't have the versions of system libraries that the proprietary application expected, in which case you'd have exactly the same problem with the FatELF "solution".

      --
      Finally! A year of moderation! Ready for 2019?
    17. Re:Solution in search of a problem by Carewolf · · Score: 1

      OS X 10.6 includes i386 and x86_64 versions of almost everything. By default it runs the x86_64 versions on compatible CPUs and compiles software as x86_64. It runs the i386 kernel by default, but the OS X i386 kernel is capable of running 64 bit processes.

      Ehhmm no.. A IA32 operating system can not run AMD64 processes, it is physically impossible. A AMD64 kernel can however run IA32 processes. No matter how awesome you think Apple are they are still using the same CPUs and 64bit mode is simply not available from 32bit mode (what would be the point?). Compatibility mode is however available from 64bit mode.

    18. Re:Solution in search of a problem by nxtw · · Score: 1

      A IA32 operating system can not run AMD64 processes, it is physically impossible. A AMD64 kernel can however run IA32 processes. No matter how awesome you think Apple are they are still using the same CPUs and 64bit mode is simply not available from 32bit mode (what would be the point?). Compatibility mode is however available from 64bit mode.

      You are clueless. For the last few years, millions of OS X Intel users have running kernels that operate in 32-bit kernel mode and are capable of running 64-bit processes. (It actually uses PAE for addressing in all cases, I believe.) For the past few months, most of the processes executed have been 64-bit as well, on Snow Leopard.

      Of course, the 32-bit kernel itself probably has some 64-bit code. But the kernel itself runs on 32-bit mode and runs 32-bit drivers.

      OS X isn't the only x86 software to do this. VMware ESX(i) versions before 4 ran a 32-bit kernel and could run 64-bit guests. Some desktop virtualization programs can run 64-bit guests on top of a 32-bit Windows or Linux kernel.

    19. Re:Solution in search of a problem by Ash-Fox · · Score: 1

      Well, since I've recently had to wrestle with getting a binary-only proprietary 32-bit application to run on a 64-bit linux

      Whoever built it was not very good at building. It's not hard to build a 32bit application that works cross distribution and relies on it's self. Said application would run on 64bit Linux fine. From the behavior of the original developer (of that proprietary application), I don't see how the developer would have built the application to even work with fatelf.

      --
      Change is certain; progress is not obligatory.
    20. Re:Solution in search of a problem by Blakey+Rat · · Score: 1

      Sisyphos did something hard.

      Yes, but he happened to be IN HELL at the time.

      So I'll give you this: hard tasks aren't worth doing if you're actually in the afterlife and the God of the Underworld is only assigning the task to you as a form of torture. There, you got an exception to the rule.

      Is that relevant to what we're talking about? No.

      I'm arguing that it isn't worth doing, not that it's hard

      Yeah, but the best reason you're given that it's not worth doing is, "it's hard." I went back and re-read the original post, and that's the only message I got from it.

      There are a lot of posts in this thread giving reasons why this is a good thing, the problem is that most of the benefits are:
      1) Better usability
      2) Better hosting of closed-source software

      Since open source people generally don't give half-a-shit about usability, and some actively resent the concept that people should be able to use a computer without a PhD, well, there goes number 1. (Here comes the troll mod, sic it to me!)

      And since open source people generally are deluded into thinking that it's impossible for proprietary software to co-exist with GPL software, well, there goes number 2.

      A usable system that can run Photoshop? Who would want that!? (Oh wait, ask Apple. Or, hell, Microsoft-- the new incarnations of Windows are pretty damned usable.)

    21. Re:Solution in search of a problem by amorsen · · Score: 1

      Closed source software would still have the library hell to contend with. No help there from FatELF. Usability-wise the users would use more bandwidth for updates and install-media would bloat up too.

      If you want to help closed source software run Linux, fix the library hell. That would make a large difference.

      --
      Finally! A year of moderation! Ready for 2019?
    22. Re:Solution in search of a problem by Blakey+Rat · · Score: 1

      Well, that is true, but the problem can be chipped away at from multiple angles.

    23. Re:Solution in search of a problem by Carewolf · · Score: 1

      The kernel is 64bit otherwise it can't launch 64-bit application. The VM layer might still have had 32bit (36 with PAE) limitation in 10.5, but the kernel has to run in longmode and be able to save and restore 64-bit process-states which is what a kernel does. Being able to do "what a kernel does" on 64-bit processes makes it a 64-bit kernel. Drivers can still be run in 32bit mode, especially if they are still microkernel based, and internal addressing can also happen in 32bit even if you are running in 64-bit mode. The long mode only closes 16bit support, not the ability to address in 32bit.

      Btw. Be carefull with calling other people clueless about stuff you don't understand ;)

    24. Re:Solution in search of a problem by amorsen · · Score: 1

      You haven't solved all the steps backwards that FatELF represents. Especially the file size issue.

      --
      Finally! A year of moderation! Ready for 2019?
    25. Re:Solution in search of a problem by Blakey+Rat · · Score: 1

      Just use FatELF on platforms where file size isn't an issue (i.e. most of them) and don't use it on platforms where it is. That's not a "problem," that's a "we made up a problem because we're too lazy to do it."

    26. Re:Solution in search of a problem by Grishnakh · · Score: 1

      If you want to help closed source software run Linux, fix the library hell.

      Isn't that easily solved by simply statically linking your libraries? Sure, it makes for a bigger download and installation, and it's not quite as efficient when running (only if you're running something else at the time which happens to use the same library), but it eliminates all the problems with library versioning.

      Of course, it also restricts you to certain libraries license-wise, but too bad; if you don't want to open-source your software, you don't get all the perks that the open-source crowd gets. It's like that on every platform, not just Linux.

    27. Re:Solution in search of a problem by nxtw · · Score: 1

      On Intel systems OS X loads either a i386 or x86_64 kernel. OS X says a system is running the "64-bit Kernel and Extensions" when the x86_64 kernel is loaded. Assuming an x86_64 capable CPU, either kernel will run x86_64 processes. It has nothing to do with stuff I do or don't understand.

      Feel free to argue that both kernels are 64-bit kernels if they can both run 64-bit processes, but everyone else will still call what Apple labels the 32-bit kernel a 32-bit kernel.

  6. Re: whatever by colinnwn · · Score: 1, Troll

    I don't agree with how most of the LKML handled it, but they are a different audience from the rest of the community, perhaps out of necessity, or maybe for the protection of us all. I wish I had troll points for you. Say hi to Mr. Ballmer for me while you are at it.

  7. Wait, what does Con Kolivas have to do with this? by vadim_t · · Score: 4, Insightful

    I don't get the point in bringing it up.

    Things get rejected from the kernel all the time -- because not all things are good, useful, well coded, or solve a problem that needs solving. It's not new in any way.

    This in particular seems like a solution in search of a problem to me. Especially since on a 64 bit distro pretty much everything, with very few exceptions is 64 bit. In fact I don't think 64 bit distributions contain any 32 bit software except for closed source that can't be ported, and compatibility libraries for any applications the user would like to install manually. So to me there doesn't seem to be a point to try to solve a problem that exists less and less as the time passes and proprietary vendors make 64 bit versions of their programs.

  8. rude by QuietLagoon · · Score: 2, Insightful
    ...some showed up just to be rude...

    .
    Oh well, so goes it with parts of the Linux culture.

    1. Re:rude by Ritz_Just_Ritz · · Score: 1

      Oh well, so goes it with parts of the Linux culture.

      Coulda been worse. He could have been trying to get something folded in to the OpenBSD kernel. Theo makes those surly Linux kernel developers look like Miss Congeniality. :)

    2. Re:rude by azmodean+1 · · Score: 1

      ...some showed up just to be rude...

      . Oh well, so goes it with parts of the human culture.

      Fixed that for you... But more seriously, I follow LKML, these are just people. People in general can be rude, abrupt, and dismissive, especially when confronted with something they think is a bad idea. I run into plenty of people in closed source software that are just as rude, the only difference is when you have paid tech support instead of volunteer (and this isn't necessarily a closed/open distinction) one of the things they are being *paid* to do is *be nice*. And of course there's the other bit, exactly how responsive are Apple and MS when you present them with ideas/source for their OS?

  9. Kind of broken by design by bcmm · · Score: 3, Insightful

    This idea is kind of broken for Linux. On MacOS, with 2 architectures, it makes some sense, since the actual executable code is not huge compared to data. On Linux, withe a couple of dozen architectures, executable code *is* going to start to take relevant amounts of space, and the effort involved in preparing them will be nontrivial. If this system were adopted, virtually no binaries would be made to support all available architectures, meaning that anyone not on x86 (32 bit) would need to check what archs a binary supported before downloading it, which is about as difficult as choosing which one to download would've been.

    --
    # cat /dev/mem | strings | grep -i llama
    Damn, my RAM is full of llamas.
    1. Re:Kind of broken by design by ceoyoyo · · Score: 2, Interesting

      True, but the ability to handle such things can come in handy. As an example, suppose you've got a setup where you're running apps off a server. You've got several different hardware platforms going, but you want your users to be able to double click the server hosted apps without worrying about picking the right one for the computer they happen to be sitting at. A fat binary is pretty much the only way to solve that problem.

    2. Re:Kind of broken by design by Daniel_Staal · · Score: 1

      Just wanted to say that MacOS for a while there supported 4 architectures: i386 and PPC, both in 32 and 64 bit. Very few apps actually shipped with all four, since there were also fallbacks in place. (A few high-end apps did, but only a few.)

      And even then there were a half-dozen utilities out there for 'cleaning' the architectures you didn't need out of the files. Which could get back a fair amount of disk space.

      --
      'Sensible' is a curse word.
    3. Re:Kind of broken by design by volsung · · Score: 1

      Minor nit: Mac OS X (until Snow Leopard) had to deal with 4 architectures $ file /usr/lib/libbz2.dylib /usr/lib/libbz2.dylib: Mach-O universal binary with 4 architectures /usr/lib/libbz2.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc /usr/lib/libbz2.dylib (for architecture ppc64): Mach-O 64-bit dynamically linked shared library ppc64 /usr/lib/libbz2.dylib (for architecture i386): Mach-O dynamically linked shared library i386 /usr/lib/libbz2.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64

    4. Re:Kind of broken by design by volsung · · Score: 1

      Gah, total format failure. Forgot I was in HTML mode. You get the idea, though.

    5. Re:Kind of broken by design by 99BottlesOfBeerInMyF · · Score: 1

      On Linux, withe a couple of dozen architectures, executable code *is* going to start to take relevant amounts of space, and the effort involved in preparing them will be nontrivial.

      If disk space becomes a problem (not likely given how cheap disk is these days) you can always have your package manager or another tool delete unused binary parts, just like OS X users can. As for the difficulty of preparing them, if it is the norm, won't the tools you use to create software quickly automate the process?

      If this system were adopted, virtually no binaries would be made to support all available architectures, meaning that anyone not on x86 (32 bit) would need to check what archs a binary supported before downloading it, which is about as difficult as choosing which one to download would've been.

      No the user would just assume everything works which it should for most people downloading commercial apps where this provides a real advantage. Besides the workflow of download it and run it and it works or doesn't is understandable to most users. The workflow of trying to figure out what architecture they are using and/or download each version and try it one at a time is a lot harder and more frustrating.

    6. Re:Kind of broken by design by Andy+Dodd · · Score: 1

      There's also the fact that the package management systems of most distributions have made architecture variants a non-issue. They will automatically choose the appropriate package for their architecture. For x86 vs x86_64, most distros have solved that problem with multilib approaches and multilib-aware package managers. I know Ubuntu has.

      --
      retrorocket.o not found, launch anyway?
    7. Re:Kind of broken by design by RiotingPacifist · · Score: 1

      The user shouldn't worry you should, separate /usr/bin and /usr/lib is all you need, FatELF won't even save you much space.

      --
      IranAir Flight 655 never forget!
    8. Re:Kind of broken by design by PeterBrett · · Score: 1

      True, but the ability to handle such things can come in handy. As an example, suppose you've got a setup where you're running apps off a server. You've got several different hardware platforms going, but you want your users to be able to double click the server hosted apps without worrying about picking the right one for the computer they happen to be sitting at. A fat binary is pretty much the only way to solve that problem.

      The correct solution to this problem is environment modules. One of their many applications is setting up the scheme you describe -- totally transparently to the user, and in a easily maintainable way for the administrator, and I've seen them used successfully company-wide at a large semiconductor engineering corporation I worked for in the past.

    9. Re:Kind of broken by design by ceoyoyo · · Score: 1

      If I follow what you're suggesting, this is an example of why Linux hasn't made it very far on the general desktop.

      Regular users do not start programs by typing their names into the command line and hoping their PATH resolves to the right place. They double click icons.

      I suppose you could set up a script to run an application using the path and point that to the right place on the server but that's pretty clunky, subject to breakage, gets complicated when you want to have local and remote apps and you have to set it up on each machine.

      A fat binary lets you drop the binary package in a directory on the server and forget about it.

    10. Re:Kind of broken by design by ceoyoyo · · Score: 1

      Okay, let's compare your solution to the OS X solution.

      OS X: Drop a universal binary app in a folder on the server. Tell everybody "hey, run X by double clicking on it here." Done.

      Your suggestion: Place the app's binaries on the server for each architecture. Go around to each machine and set up environment modules. Write a script to start the app and put it in a directory on the server. Tell everybody "hey, run X by double clicking on it here."

      It's not horrible, but it's more complicated that the first solution and introduces extra points of failure. If nothing else you end up needing both the program and a script to run it.

    11. Re:Kind of broken by design by PeterBrett · · Score: 1

      Your suggestion: Place the app's binaries on the server for each architecture. Go around to each machine and set up environment modules. Write a script to start the app and put it in a directory on the server. Tell everybody "hey, run X by double clicking on it here."

      My actual solution:

      Place the app's binaries on the server for each architecture. Place the environment module scripts which choose which binaries to choose on the server as well.

      Create a package containing the minimal environment modules code needed to get each machine to access the central server and pick up the main modules scripts. Place it in your local package repository (alongside your bandwidth-saving mirror of the distribution's package repository). Remote install it on every user machine with a couple of lines of shell. Tell users to run X just like they'd run any other application -- by selecting it from the "Applications" menu.

      Go make coffee and grab a snack.

      New version comes out? Install it, create new modules file, test it, then change default version to be used to new version once you're satisfied. All without touching a user workstation. Some users need to carry on using a particular old version? You can do that too, by adding one line of shell to their shell login script (which is easy because you're mounting their home directories from the NAS).

      When you've got tens of users, all of whom need to run slightly different versions (or combinations of versions!) of software, and you want to manage all that in a way that, from the users' point of view, Just Works? "Hey, run X by double clicking on it here," is mediocrity.

      To satisfy my personal curiosity: do you actual administer multi-machine Linux deployments? I don't, but I've been on the user end of several very competent and large organisations who have large numbers of Linux workstations, and I've never heard, "Hey, run X by double clicking on it here," in the way you describe.

    12. Re:Kind of broken by design by RiotingPacifist · · Score: 1

      Did you manage to read the first 6 words of my post, the part that said?

      The user shouldn't worry you should

      To a users machine the desktop menus will be configured correctly (they will have the same configuration as the server will mount the relevant folders at the system level.

      --
      IranAir Flight 655 never forget!
    13. Re:Kind of broken by design by Yaztromo · · Score: 1

      This idea is kind of broken for Linux. On MacOS, with 2 architectures, it makes some sense, since the actual executable code is not huge compared to data.

      Mac OS X has more than two architectures to worry about. In my somewhat outdated version of XCode 3, I have six options that can be included when creating fat binaries: i386, x86_64, ppc, ppc64, ppc7400, and ppc970. And this doesn't include any of the ARM types used for the iPhone/iPod touch.

      Even within a single processor family, sometimes it's desirable to target optimizations in certain specific processors.

      Yaz.

  10. Story of binary compatibility is short and tragic by Gopal.V · · Score: 5, Insightful

    In the entire forked-up mess of the unix tree, there was only one thing that anybody & everybody cared about - source compatibilty. C99, POSIX, SuS v3, so many ways you could ensure that your code would compile everywhere, with whatever compiler was popular that week. For a good part of 4 years, I worked on portable.net, which had a support/ directory full of ifdefs and a configure script full of AC_DEFINEs. It worked nearly everywhere too.

    Binary compatibility never took off because there is so little stuff that can be shared between binary platforms. Sure, the same file could run on multiple archs, but in reality that is no different from a zip file with six binaries in them. Indeed, it needed someone to build 'em all in one place to actually end up with one of these. Which is actually more effort than actually letting each distro arch-maintainer do a build whenever they please. OS X build tools ship with the right cross-compilers in XCode and they have more of a monoculture in library versions, looking backwards.

    Attempting this in a world where even an x86 binary wouldn't work on all x86-linux-pc boxes (static linking, yeah...yeah), is somehow a solution with no real problem attached. Unless you can make the default build-package workflow do this automatically, this simple step means a hell of a lot of work for the guy doing the build.

    And that's just the problems with getting a universal binary. Further problems await as you try to run the created binaries ... I like the idea and the fact that the guy is talking with his patches. But colour me uninterested in this particular problem he's trying to solve. If he manages to convince me that it's a real advantage over 4 binaries that I pick & choose to download, hell ... I'll change my opinion so quickly, it'll leave you spinning.

  11. Structure should be at the filesystem level by spitzak · · Score: 3, Interesting

    My objection is that any such hierarchy of data could be stored as files.

    Linux needs tools so that a directory can be manipulated as a file more easily. For instance cp/mv/etc should pretty much act like -r/-a is on all the time, and such recursive operations should be provided by libc and the kernel by default. Then programs are free to treat any point in the hierarchy as a "file". A fat binary would just be a bunch of binaries stuck in the same directory, and you would run it by exec of the directory itself. Also need filesystems designed for huge numbers of very small files and to make such manipulations efficient.

    We need the tools to be advanced into the next century. Not use the workarounds of the previous ones as currently practiced on Unix and Windows.

    1. Re:Structure should be at the filesystem level by 0xABADC0DA · · Score: 1

      The solution is simple, just make 'programs' be filesystems contained in a file. This scheme has most of the benefits of 'magic folders' without any changes to POSIX semantics.

      This can be done now, for instance use mksquashfs to turn the folder into a single, tightly packed file (it could even be compressed). It's still readable as a folder by mounting it with -o loop. All that's needed is a /lib/ld-squashfs.so to map the correct program from it into memory, and can just be a slightly modified ld-linux.so that examines the squashfs structures directly. Some kind of libsquashfs.so could be used to let the app retrieve data files from its filesystem.

      The only read drawback is if apps want to write data back to the bundle, although this probably isn't a good idea anyway so being read-only is an unintentional bonus. There might be some selinux and page sharing problems, but this can be solved easily after the scheme is established and in widespread use.

    2. Re:Structure should be at the filesystem level by Ambush+Commander · · Score: 1

      You may be interested to know that AFS has implemented a variant of this feature. The conceit is that filenames can contain a magic string @sys, which gets substituted with the "sysname" of a particular system. This means if someone publishing software over AFS wants to have multi-platform support, they merely have to setup a directory divided by sysname and have compiled versions of the software for each system type they wish to support.

    3. Re:Structure should be at the filesystem level by RiotingPacifist · · Score: 1

      The solution to what? Making your system behave like OS X?

      --
      IranAir Flight 655 never forget!
    4. Re:Structure should be at the filesystem level by 0xABADC0DA · · Score: 1

      - A program could include a LICENSE file.
      - A set of program icons.
      - It could include shared libraries that get used only if the system ones aren't compatible.
      - It could include resources like a skeleton ~/.progrc or localizations that somebody might want to edit but probably not. ... or whatever the imagination can come up with.

      The unix model with everything spread out between /share, /bin, etc works well for the tons of tiny open-source programs but fails for programs that are not both open-source and community maintained. For something like Star Office there's no reason why there shouldn't be a single 'linux version' file the user can download and have it work without needing to sudo an installer/uninstaller to write files to tons of protected folders.

    5. Re:Structure should be at the filesystem level by RiotingPacifist · · Score: 1

      For third party apps there is /opt where programs can do exactly what you describe, but for system programs they want to share icons and libs.

      >the user can download and have it work without needing to sudo an installer/uninstaller to write files to tons of protected folders.

      Hell, no! Users shouldn't be able to install programs, that is the administrators job. I do agree they shouldn't write files to a ton of protected folders, but again that is what opt is for.

      --
      IranAir Flight 655 never forget!
    6. Re:Structure should be at the filesystem level by sjames · · Score: 1

      Agreed, but there are some important semantic issues to work out. For example, If I access a directory as a file and for example scp some_directory somewhere-else:, what happens? Does it do it file by file? Does it get marshaled into some sort of archive like a tar or cpio? Do we really want rm to imply -r?

      How far do we take that? An ELF binary is a bunch of separate sections glued together, should it be a directory?

      All answerable questions, but they need to be answered before we jump off the deep end.

    7. Re:Structure should be at the filesystem level by spitzak · · Score: 1

      My opinion is yes to both. All file operations should treat the files inside a directory as part of that directory. And ELF could very well be split up into files, I would go as far as making loading such a directory memory-map all the files that don't have any other purpose and resolve unlinked symbols with those filenames to point to the mapped data, thus you can easily add "resources" by putting them into the directory.

      I suspect copying to a remote system would involve marshalling, probably a simple form such as uncompressed tar.

  12. Re:Wait, what does Con Kolivas have to do with thi by BitZtream · · Score: 1, Insightful

    Things get rejected from the kernel all the time -- because not all things are good, useful, well coded, or solve a problem that needs solving. It's not new in any way.

    Except this seems to be the only place that doesn't acknowledge the usefulness of fat binaries.

    Windows has had them since DOS, although no one uses them. OS X has them, FBSD has talk about them and isn't flatly rejecting the idea.

    I've seen many features in my career that seemed pointless, tabbed browsing for instance, my OS already supports tabs of sorts on task bar. Then ... once you have them and use them for a while you come back and say 'hey, thats a really good idea'.

    People who are anti-closed source need to just go hide in a cave somewhere and talk about when the revolution is going to come. There will be a place for closed source and open source, side by side for the foreseeable feature. Trying to deny that is only hurting yourself.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  13. a better idea.. by Eravnrekaree · · Score: 4, Interesting

    Fatelf was never really a great idea in my opinion. Putting two binaries in a file is not a really good way to solve the problem as there are many more variations of CpU type including all of the x86 variation than one or two. it would be a better idea to do something similar to the AS/400, include, an intermediate form in the file, such as a syntax tree, convert it to native at runtime on the users system, and then store the native code inside the file next to the intermediate code. if the binary is moved to a new system, the native code can be regenerated again from the intermediate code. This does not even requite kernel support, the front of the file put shell code to call the code generator installed on the system, and generate the native code, and then run it. This way, things like various x86 extensions can also be supported and so on.

    1. Re:a better idea.. by idontgno · · Score: 3, Insightful

      So you're advocating Java?

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    2. Re:a better idea.. by Ash-Fox · · Score: 1

      So you're advocating Java?

      What's wrong with Mono?

      --
      Change is certain; progress is not obligatory.
    3. Re:a better idea.. by jaclu · · Score: 1

      There is already a method for supporting multiple binary formats.

      It's called source code

    4. Re:a better idea.. by kangasloth · · Score: 1

      I'm a little more familiar with the C# .NET environment, but I don't see any reason you couldn't apply the idea to C code as well. LLVM bitcode already exists with both a container and a intermediate format corresponding to .NET's IL or Java's bytecode. LLVM is designed to be suitable for direct compilation down to machine code without the companion virtual machines that .NET and Java expect. If all you want to do is delay the platform-dependent compilation phase, LLVM looks perfect to me.

    5. Re:a better idea.. by cheesybagel · · Score: 1

      I agree that this is the best option. This one of the major reasons Java and .NET get so much exposure. You shouldn't need to use a special language to have this facility, you should be able to code in any language including C, which is the language most free software is written in.

    6. Re:a better idea.. by Eravnrekaree · · Score: 3, Insightful

      Only the last phase of compilation, code generation, would occur on the users computer. One of the problems with source code is that it can take hours for it to compile, and getting it to compile right is never easy enough for granny. The purpose of a universal executable is that it should be easy enough for granny to use, which means download, double click, and it runs. None of this fiddling with a million dependancies and so on. Granted, the problem is parly due to the fact that each Linux distribution does something differently and puts things in a different place.

    7. Re:a better idea.. by Eravnrekaree · · Score: 1

      Agreed. That and as well backwards compatability in Linux's ABIs would make the system far more user friendly and make it a desktop OS. I often have the feeling that Linux developers are a bunch of elitists, who feel superior that they can manage to spend 40 hours just getting everything to work in Linux, and thus oppose making Linux easy to use for the grannies and so on, with everyone using Linux, they would no longer feel "special". I am convinced with people like Linus and that group running things Linux will never make it to the desktop. The learning curve is just too high and the system is so clunky and hard to set up only nerds love it. So instead of promoting open source and software freedom by getting open source software into as many hands as possible, they tend to be a bunch of elitest nerds who want Linux to be a domain offlimits to normal users. Their goals are mainly selfish.

    8. Re:a better idea.. by Eravnrekaree · · Score: 1

      I should add that so many other Linux developers misdiagnose the problem and actually end up making Linux WORSE rather than better, in particular Gnome. The way to make things useable is to understand a few concepts, useability is in layout, not in sparseness of features. A system needs to have a lot of customisability and allow the user to grow into it, but they should be able to jump in quickly and start using without having to learn much, and then gradually learn more as time goes on. This does not mean options need to be removed, no the opposite, the software can be highly configurable and easy to use at the same time, for instance, by placing more advanced features deeper into the UI. Thats what i mean by layout. Secondly, the system needs a backwards compatable driver ABI. Now, the fact that Linux developers cant figure out how to do this shows how incompetent they are. Each driver would have slots for pointers to kernel functions that can be filled at runtime, they can be filled with pointers to wrapper functions to provide support for older versions of the ABI. Whenever the kernel ABI is updated, a wrapper would be produced for the older version. This way, the right interface for the driver can be provided without requiring it to be run in userspace.

      Linux can be both an expert friendly and user friendly system. There can be a higher level user interface but everthing done at that level can also be done at the command line level, configuration files could still be directly edited, adn so on. Software should be built in layers, with a core layer which the experts can directly access, and then user friendly front ends on top of those.

      Another issue is the need to understand that binary drivers adn apps are just evils we will have to live with but as a result the total amount of open source software in use will increase thousands of times. Making binary drivers useable on Linux through a stable driver ABI would also help the hardware interfaces to be easily backengineered so an open source driver would apper more quickly. The fact is most people dont want to wait 5 months for an open source driver, if they are lucky, they want the hardware to work and if Windows makes it just work they are not going to screw around with Linux. Period. Vendor supplied drivers, unlike the open source ones are extensively tested with the hardware, vendors do go through extensive QA with the drivers, while many open source drivers are written by people who dont even have the hardware! Applications which are binary also need to be run and especially there needs to be the ability for the app to be easily installed from one distribution no matter what linux distribution it is installed on. The binary has to count on a certain number of core libraries being avialable, has to find those libraries, adn furthermore, the application needs to install without messing up the system. One thing that will help is a filesystem overlay environment. When an apps installer is run, it can write out files to the hard drive, if the files it writes out happen to collide with an existing library file, only the application being installed will be able to see its own version while other apps will continue to use the original version. The fact is there will often be small in house apps and specialised programs that are not worth putting into a package manager that are used in a internal corporate environment. The OS needs to assume that not all programs will be installed via the package manager. Dependance on the package manager also leads to out of date software since it always lags by often months the release of new versions from the author. Compiling software is just too messy and so often fails too much for average users. Having a single linux binary that can install on all distributions would make it easy for users to keep software up to date.

    9. Re:a better idea.. by Eravnrekaree · · Score: 1

      It does sound a lot like JIT compilation. An important part is storing the native code for later use. This would as well be for C code. Indeed, Java, is often thought to be a good application development platform along with perl, python, ruby, etc, because the apps are portable and you dont have to mess around with as much dependancies, especially with Java where so much of the environment such as GUI is included. One of the ideas of Parrot was that it would have an interpreter for C and many languages so that you could do a universal binary with it, in effect.

    10. Re:a better idea.. by cheesybagel · · Score: 1

      If you wanted to do this in the free software stack, in which nearly everything is compiled by GCC, you could probably do it by storing a copy of the GIMPLE intermediate code. Then compile that on installation or application startup. LLVM would probably also help do something like this but I do not know any specifics.

      I agree that a system should be designed from the beginning to be easy to use. Adding more layers on top to "fix" that only means there will be cognitive dissonance between the different levels and confuse users. e.g. it is easy to install apps from a software repository, but not everything is in a repository. You should ideally be able to run an application package in any Linux installation without fuss. Drivers same problem. Want to change the system initialization sequence? Same problem. Boot loader? Same problem. X11 is one of the things that has actually gotten easier to use because it now usually autodetects hardware properly and you do not need to mess with configuration files anymore.

      I suspect their motives for making software as hard are not an innate sense of elitism however. Making software simple to use is actually really hard and requires permanent attention to detail. Even keeping compatibility can be a lot of work. Check how Linus shrugs the burden of compatibility and testing to the distributions such as Red Hat. It used to be I could compile a Linus kernel and it worked straight out of the box, now the vendors need to apply any number of patches to get it to work widely. He doesn't keep compatibility because it is too much work for him. Legacy compatibility work isn't cool either.

      I suspect we will get a free software desktop that will be easy to use, but it won't be Linux based. Maybe Linux compatible, but not Linux based.

    11. Re:a better idea.. by Ant+P. · · Score: 1

      In theory, it's possible to take any source file and shove a #! line at the top that'll make it compile and run when executed. There's already several compilers that know how to do this, I can think of DMD and LLVM off the top of my head.

  14. Game's over, quit holding up the bus. by argent · · Score: 3, Insightful

    On Linux, withe a couple of dozen architectures,

    Kind of, but not really. No more than there are four architectures (PPC, ARM, X86, X86_64) for OS X. There's two architectures for Linux that actually matter, and they're the same two that run Snow Leopard. X86 and X86_64.

    I can see why people are going to get up in arms about this. I've been as big a RISC booster as anyone, I think Apple gave up on PPC too soon, and I'm still bitter about Alpha, but that game's over. 32-bit and 64-bit Intel architectures are what matter, and those are the ones that almost all binaries will work for. I'm not running YDL any more, and neither are you. Game's over, instruction sets lost to marketing. The game's over, the fat lady's sung, picked up her paycheck, and gone home to watch House on her Tivo. Give it up and quit holding up the bus.

    1. Re:Game's over, quit holding up the bus. by FlyingBishop · · Score: 1

      Palm WebOS, Google Android, and Maemo are three ready examples of mainstream products that run Linux on ARM. More are on the way. ARM is a big deal for Linux.

    2. Re:Game's over, quit holding up the bus. by ckaminski · · Score: 1

      IBM was never going to provide enough low-power PPC chips to Apple. Never. They had a hard enough time making them for the pSeries. POWER6 is really nice though, if you have the Watts. It's odd that the only benchmark comparisons I've been able to find between POWER6 and Intel are done by Microsoft and Intel. Knowing IBM, I'm not surprised - even if they were better, they'll still sell you whatever you want to get your money.

      But I'm not surprised Intel's done it to stem any losses to the competion. Anyhow, POWER5 or POWER6 do not belong in laptops or low-power devices, and nothing of that nature was going out of IBM at all. Apple had no choice.

      Now they have two suppliers to choose from.

    3. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      IBM was never going to provide enough low-power PPC chips to Apple. Never.

      Freescale was, however.

    4. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      Palm WebOS, Google Android, and Maemo are three ready examples of mainstream products that run Linux on ARM.

      All with different "native" APIs, targeted to the handheld. You're not going to need ARM forks in your desktop binaries any more than you're going to get ARM forks in your Universal Binaries so you can run your desktop apps on your iPhone.

    5. Re:Game's over, quit holding up the bus. by Svartalf · · Score: 1

      Heh... You've got it wrong there...

      There's at least THREE that matter right at the moment- and one of them you missed. ARM's another that matters quite a bit. Just because PPC is by the wayside, doesn't mean ARM's going away any time soon now, and there's parts to it that make it more akin to two to three different sub-architectures that unless you're coding to least common denominator, you're going to have issues with.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    6. Re:Game's over, quit holding up the bus. by ckaminski · · Score: 1

      Freescale/Motorola was always playing catchup to the Intel lineup. They had nothing in the pipeline to compete with the coming Core 2 Duo. Power4/5 had a limited lifespan, and no roadmap for moving forward. They may have had volume, but they lost on features.

      Apple really didn't have a choice once AMD stormed onto the scene dropkicking Intel in the nuts with x86_64.

      They saw the light, and I'm glad they did. :-)

    7. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      They had nothing in the pipeline to compete with the coming Core 2 Duo.

      They sure as hell did. That's precisely what the e700 was all about.

    8. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      By "lots" you mean what... a few hundred installations worldwide? Or a few hundred systems even?

    9. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      See, kids, this is why you need to read the thread before posting. :)

      You wouldn't need ARM in your FatELF binaries because of Android any more than you need ARM in Universal binaries because of the iPhone.

    10. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      So for OSX you count oldies (PPC) and embedded (ARM for the iphone) but for Linux you dismiss them ?

      No, I dismiss them for both.

    11. Re:Game's over, quit holding up the bus. by barnacle · · Score: 1

      5 for osx: you forgot ppc64

    12. Re:Game's over, quit holding up the bus. by argent · · Score: 1

      5 for osx: you forgot ppc64

      So has Apple. *rimshot*

  15. Re:Wait, what does Con Kolivas have to do with thi by Auroch · · Score: 4, Interesting

    This in particular seems like a solution in search of a problem to me. Especially since on a 64 bit distro pretty much everything, with very few exceptions is 64 bit. In fact I don't think 64 bit distributions contain any 32 bit software except for closed source that can't be ported, and compatibility libraries for any applications the user would like to install manually. So to me there doesn't seem to be a point to try to solve a problem that exists less and less as the time passes and proprietary vendors make 64 bit versions of their programs.

    EXACTLY! We don't want choice, we want it to just work! Damnit, force people to do things the way they ought to do them, don't give them choice, they'll just screw it up.

    Especially when that choice makes things EASY!

    --
    Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
  16. Re:Wait, what does Con Kolivas have to do with thi by cheesybagel · · Score: 3, Insightful

    It just shows Ryan isn't used to contributing free software to someone else's project. I once had to wait months before I got my code accepted into a free software project and it wasn't the kernel. If the maintainers add every submission to a project, it will end up in an unstable, unmaintainable mess. Code can last a long time and someone will have to maintain the code even after he's lost interest in it. I am especially leery of code that touches a lot of difference places at the same time, as is undoubtedly the case here.

  17. Re:Story of binary compatibility is short and trag by BitZtream · · Score: 2, Insightful

    The problem isn't that its not possible, its that its hard. Your argument is that since its hard now, since the tools aren't ready for it, it shouldn't be done ...

    Sounds pretty silly to me.

    It would be hard to start from scratch and write a modern OS ... but that is indeed what Linux is.

    If you never take the effort to make the hard easier it will remain hard. Changing from single threaded to multithreaded is hard, do you think we should not do that either, because the tools to do it don't make it a cake walk RIGHT NOW?

    Seems a silly way to look at things to me. Fortunately other people made multithreading work on other platforms long before x86 could really do it properly, which made it easier to do on x86. Imagine if Linus said 'multithreading in an OS is hard on x86, you have to use timer interrupts and blah blah blah, I'm not doing it' back in the 90s ...

    For you, it might not be any different, but you won't know until you give it a try.

    For grandma who has a netbook running an ARM processor, and a desktop or laptop running a x86 processor, its probably a little different, don't you think? Do you want to remain in this hole forever, or do you want to get out and catch up to the rest of the world?

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  18. Re: whatever by Yvan256 · · Score: 1, Funny

    There you go, someone listened and gave you that troll point that you asked for!

  19. The wrong Solution to the problem. by Zombie+Ryushu · · Score: 1

    FatELF was the wrong solution to the problem. In the Linux community, we do have a cross distribution application issue. But its one of pure stubbornness.

    What do I mean? Suse has its way of setting up RPMs, Mandriva has its, RedHat (Fedora) has its. The three big names in RPM all fight each other over stupid things like RPM Macros, when RPMs are all 95% the same. We can't decide what to classify anything, so we fight over stuff like Amusements/Arcade vs. Games/Arcade. To some degree the same issue exists between mainline Ubuntu and Debian. Then we have the wonderful: I refuse to use DEB or RPM. e.g. Gentoo, Slackware.

    We have propaganda circulating that RPM is proprietary. We have application makers who provide a binary installer for the Windows platform, yet hand Linux users a completely unpackaged BZ2 Type Tarball and say "Good luck!"

    It should be policy that application makers UPSTREAM should provide an Source RPM AND a Source DEB.

    It should be the case that I should be able to install any RedHat Fedora package, or any Suse Package on my Mandriva box. The people who make these decisions should be locked in a room together until they can come to a consensus how to solve this dispute. The same should be done on the DEB Side. I'm tired of having to take Suse or Fedora Packages and "converting" them by hand to make them acceptable and vice versa. This headache can be resolved if we all sit down and play nice together.

    1. Re:The wrong Solution to the problem. by morgauxo · · Score: 1

      OK,

      I really don't care as I use ebuilds. I wonder though, wouldn't the logical conclusion of your argument be to get rid of one of either rpm or deb and standardize on the other?

      Actually come to think of it... if that happened, if binary packages were run-anywhere I MIGHT not even use ebuilds anymore. Hmm... Of course, there are so many choices to be made at compile time. I realize most of the optimization is not worth an adult's time but choosing optional features can be.

    2. Re:The wrong Solution to the problem. by morgauxo · · Score: 1

      The differences go deeper than just how an RPM or DEB is set up (I assume you mean directory structure). Actually some well placed symbolic links can be a workaround for that problem. The problem is all the libraries which are not binary compatible from version to version. Even if you re-arrange all the files I'd only give you about 50% odds of being able to run a package from another distro w/o problems.

  20. BS: "tip of the iceberg" by tlambert · · Score: 5, Informative

    The problem with fixating on something like ELF for fatness is that it's just the tip of the iceberg.

    There's much more to the question of whether or not something will run on an arbitrary copy of Linux than the CPU arch.

    Why do you think one of the discriminators in a fat binary can't be a distribution identifier, such that there are fat slices for supporting Debian, RedHat, Ubuntu, etc., all from the dame binary file?

    Or that they can't have different slices in the fat binary for Gnome vs. KDE, or desktop vs. Android, and so on?

    Also, the arguments about disk space are specious; at least in the Mac OS X world, there is a utility called "lipo" which will pull apart a fat bnary into only the pieces you need/want to install. Typically you only install the actually fat binary on server systems, where the software has to be able to run on multiple client machines, and otherwise you run scripts to reclaim disk space (or in the case of an embedded device, you run them over the install image before you install them).

    Same goes for an Apple fat binary really...

    Obligatory disclaimer: I am the person who maintains the fat binary loader in the Mac OS X kernel.

    -- Terry

    1. Re:BS: "tip of the iceberg" by Mystra_x64 · · Score: 1

      Simple script can do anything required. There is no need to modify kernel and/or ELF.

      Besides: bandwidth for servers and users.

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    2. Re:BS: "tip of the iceberg" by icebraining · · Score: 1

      Can you remind me again of the advantages of such fat binaries over a tar/deb/rpm file with multiple binaries? Thank you.

    3. Re:BS: "tip of the iceberg" by danieltdp · · Score: 1

      Lack of slashes (as in "tar/deb/rpm") and no multiplicity of install procedures. Its simpler for the user, witch has no doubt about how to go with one specific file (tars should be opened and README, debs should get dpkgs, etc, etc)

      --
      -- dnl
    4. Re:BS: "tip of the iceberg" by 99BottlesOfBeerInMyF · · Score: 5, Insightful

      Can you remind me again of the advantages of such fat binaries over a tar/deb/rpm file with multiple binaries? Thank you.

      One really nice thing is you can install a single fat binary on a shared network drive and clients with different architectures can all run it without having to know what architecture they are on or without a client side script that needs to be installed, or a script that tries to identify the client's architecture. This is really useful in places where you want to offer software with limited licenses to users on site, when you don't know what they will be using.

      With multiple binaries in a tar/deb/rpm you end up with multiple binaries and end users randomly trying them in the hopes that one will be the right one for their computer. A lot of users don't know their chip architecture or if it is 32 or 64 bit.

      Another advantage comes from applications being run from flash drives, which has similar benefits. Being able to perform automated hardware upgrades is a nice advantage as well. For software in OSS repositories users can just grab them from the repositories when updating. For closed source software, however, being able to pull the applications directly from your old hardware to your new hardware (regardless of architecture) and have it work is really nice. Otherwise you have to find each and every commercial software package, re-download them, and then dig up all your serial numbers and re-register them. It's a huge pain, alleviated only by the lack of commercial software available on Linux these days. Ideally much of this could be mitigated by better package management that caters to commercial developers, but it certainly isn't there today and still does not handle software installed from optical disks.

    5. Re:BS: "tip of the iceberg" by SteveFoerster · · Score: 1

      all from the dame binary file

      This is an abbreviation for "same damn binary file", isn't it?

      --
      Space game using normal deck of cards: http://BattleCards.org
    6. Re:BS: "tip of the iceberg" by samkass · · Score: 3, Informative

      The advantage is on the typical user side. As a Mac user over two architecture transitions, I've really appreciated just being able to pull down a single executable from a site and have it "just work". Disk space is cheap and my tolerance for pointless frustration decreases steadily with age. A distribution mechanism like fat binaries makes it so the user really has to go out of their way to get it wrong.

      --
      E pluribus unum
    7. Re:BS: "tip of the iceberg" by marmoset · · Score: 1

      Aunt Millie runs 'Doubleplus Dope Recipe Manager 3.0' on her 32-bit PPC-based machine. Aunt Sue wants a copy. Aunt Millie (who couldn't tell you what CPU is in her computer if you put a gun to her head) knows that she can drag a copy of DDRM3.0 from her Applications directory to a USB stick and hand the USB stick to Aunt Sue, who can drag DDRM3.0 from the USB stick to her Applications folder on her X86-64-based machine and run it. Neither of them had to run an installer, neither is terribly informed about the architecture of their computer.

    8. Re:BS: "tip of the iceberg" by Code+Master · · Score: 3, Informative

      Not to mention that swapping or using an external harddrive between one platform Mac to another works perfectly.
      Also useful in copying applications between Application folders on Macs with different platforms.

      --
      The Code Master
    9. Re:BS: "tip of the iceberg" by Mystra_x64 · · Score: 1

      Like, umm... filename_#{arch_and_or_distro}.bin is super duper hard and breakable, yeah. String concatenation as a rocket science in XXI. Stay tuned.

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    10. Re:BS: "tip of the iceberg" by dgatwood · · Score: 4, Interesting

      Another really big advantage is easier developer workflow. With multi-architecture binaries and libraries, you can test and debug the 32-bit and 64-bit versions of an application without rebooting into a separate OS, without building some weird chroot environment, without using a special linker that changes the paths of the libraries if it detects a 32-bit binary, etc. This means that your development system is essentially identical to the user systems (except for the kernel), and thus the likelihood of bizarre "Unable to reproduce" bugs goes way down.

      Another big advantage is that if you build a universal install DVD, you have half as many binary packages. That means a less complex installer and thus reduced potential for bugs, reduced install testing overhead, etc.

      Another big advantage is that when a user finds a 64-bit-specific bug in a tool, the user can do an "arch i386 grep 'blahblahblah' *" instead and work around it until somebody comes up with a fix. Without fat binaries, that's well beyond the ability of most typical computer users, including many IT people. You might as well tell them to fix the bug themselves. That doesn't do anybody any good....

      But probably the most important reason for it is that Linux is late to the party. Many other operating systems support fat binaries---Mac OS X, Windows, NetBSD, etc. It's not like this is a new idea, nor is there a lack of a clear benefit. Obviously if there weren't clear benefits, there wouldn't be such broad support for this concept. And that's not just a bandwagon appeal; people judge operating systems by what they can do, and if there's an important, user-visible feature that one OS is missing, that's a win for operating systems that do have the feature....

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    11. Re:BS: "tip of the iceberg" by Khyber · · Score: 2, Insightful

      Yep, prety easy for SOMEONE THAT WORKS ON COMPUTERS.

      Now let's see you tell that to the average joe, who has no clue about architectures, distros, or even the desktop management system.

      Nimrod.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    12. Re:BS: "tip of the iceberg" by gdshaw · · Score: 1

      Also, the arguments about disk space are specious; at least in the Mac OS X world, there is a utility called "lipo" which will pull apart a fat bnary into only the pieces you need/want to install.

      apt and dpkg already go one step further than this: they only download from the repository the pieces you need/want to install (thus saving bandwidth too, which for most people is much more valuable than disc space).

    13. Re:BS: "tip of the iceberg" by Mystra_x64 · · Score: 1

      Script does that. Surprise!

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    14. Re:BS: "tip of the iceberg" by Lord+Bitman · · Score: 5, Insightful

      The state of package management is atrocious, and so should not be looked to for solutions? I'd call that a pretty big one.

      MOST packages need only the functionality of a dependency manager, everything else being a nice-to-have-when-you-need-it feature. This is why dependency management can be considered to be the central feature of a package manager- if you don't have dependency management, you'd be hard-pressed to find anyone who claims you have a working package manager.

      And what do most package managers do? Utterly lazy dependency management. "Well, you need this package... so you should have the latest version of it. If you want another version, you should rename the package and depend on something else instead."

      And that would be almost-excusable, except for the brain-dead "open source is king" approach for updates: "The whole-thing's free anyway, why not just re-send the whole thing?" binary patches are pretty-much unheard of. Of course, sending the whole thing is really just a work-around because-

      Package managers generally do NOT bother to detect when they are about to clobber or alter "the wrong file". When they do, they don't bother to keep a record of what they /would/ consider to be "the right file", making "merging" impossible and difference examination a guessing game. That doesn't even matter, because the first step in an "Upgrade" is usually to just completely remove the existing package, which means...

      Multiple versions of a single package co-existing on the same base install is generally impossible. Which really makes you wonder what the hell a package manager /does/ manage.

      It's not third-party software, that's for sure. You want the bleeding-edge version of something? You just want to patch a broken package? That means you're not using the package manager, and that means you're on your own for everything. Either you build a /package/ for what you're doing on the side, or you don't get access to any of the supposed features. And anything that depends on what you're doing, you may as well just compile and track yourself- 'cause that's what you like doing, right?

      The short of it is: Package managers seem so fundamentally broken that giving them another task seems like a waste of time. They'll just be replaced by a better system eventually anyway, right? And then you'll need to do it all again.

      The closest to "right" I've seen is GoboLinux.

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    15. Re:BS: "tip of the iceberg" by Sparks23 · · Score: 5, Insightful

      Usability.

      Your average desktop user does not want to go, 'Oh, well, I'm running on Processor X, with distribution Y, patch Z. I guess that means I need /this/ tarball (or this subdirectory of the big tarball).' Fat binaries solve this problem.

      If I am a Mac OS X developer, fat binaries mean I don't have to make a separate Intel download, or separate PowerPC download. No worries about Joe User downloading the PowerPC version, then complaining about performance (not realizing they're running a PowerPC binary in Rosetta on an Intel machine), or so on. I can just have one download on my website, and the loader handles finding the correct binary.

      Similarly, I can bundle 32-bit and 64-bit binaries for a given architecture into the same binary, rather than having separate 32 and 64-bit downloads (as is common on Windows). Tech-literate users may well know whether their system is 32-bit or 64-bit, but if I sat my father down in front of a brand-new Windows 7 machine from Best Buy, I doubt he would know whether to pick a '32-bit' or '64-bit' download for an antivirus program on a given website. He would, instead, call me.

      Now, some software solves this problem by having a tiny installer you download, which then goes out and pulls down the correct packages from the Internet after examining your machine. This is one solution, though not entirely ideal (it means in order to do any install, you need to have internet access). Some installers include the entire set of binaries, and just install the correct one; this is fine, as long as you have an installer, but can break down if you try to transplant the hard drive into a new machine. For instance, Joe User picks up that nice Windows 7 Home Premium machine he saw at Best Buy, and plugs his Windows Vista drive in to copy over applications, unaware his old computer was running Vista x64, while his new Windows 7 machine is 32-bit. Joe has some Problems now, when he tries to run some of his old installed software that was 64-bit only.

      At any rate, there are plenty of solutions to this problem; fat binaries are just one. None are perfect and all have their tradeoffs; in the case of fat binaries, the main problem is disk space. Package management tools have their own problems. (RPM dependency hell any time you want to go outside of your distribution's available packages, for instance, and the 'screw this, I'm installing PHP from source' result some sysadmins turn to.)

      From a server standpoint, fat binaries aren't necessarily the most useful solution (unless you're dealing with clustered machines with variant processors or configurations, but a shared filesystem between them), but from a *desktop user standpoint*, fat binaries may be friendlier than other options.

      At any rate, my *personal* opinion is that from a general desktop end-user standpoint (as opposed to a sysadmin/techy standpoint), disk space is cheap but usability is priceless. And my experience is that fat binaries require less work on the part of the end user (though, admittedly, more work on the part of the developer; building Universal Mac OS X binaries of software outside of Xcode can be a hair-pulling experience at times and inspire fond thoughts of Windows installers that just pick the right binary based on a system check).

      So whether you feel Linux benefits from fat binaries may well boil down to whether you feel Linux needs to target general, non-techy desktop users more or not. Your own opinions may well differ from mine; not everyone's criteria and priorities are identical, which is probably a good thing. Otherwise we'd have a pretty homogenous software community out there!

      --
      --Rachel
    16. Re:BS: "tip of the iceberg" by Qzukk · · Score: 3, Funny

      all from the dame binary file

      This is an abbreviation for "same damn binary file", isn't it?

      I was waiting for the gritty exposition to begin.

      This dame's binary file is trouble, and I could smell it from a mile away.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    17. Re:BS: "tip of the iceberg" by Lemmy+Caution · · Score: 1

      "User side"? This is Linux we're talking about. What is this "user" moon-speak you keep babbling.

    18. Re:BS: "tip of the iceberg" by jgrahn · · Score: 1

      One really nice thing is you can install a single fat binary on a shared network drive and clients with different architectures can all run it

      That helps against architecture differences, but not differences in the OS -- e.g. shared library versions. It's more common in my experience to run e.g. Debian Lenny on some servers and Debian Etch on others, than to be running the exact same Linux distribution on both AMD64 and ... uh, *are* there other architectures in professional use today?

      At work I install stuff on shared network drives for four Linux dists/releases/architectures. The clients know which ones to add to the $PATH. What does that cost me, the guy who tends to be the one who installs new stuff? Ten seconds of thought or so, a few times a month.

      And really, even *that* much simpler solution (which BTW doesn't require me to argue with grumpy kernel maintainers) is stupid. In retrospect, it would have been better to set up a package repository and let the clients update themselves against it (install packages from it) regularly. But other requirements prevent that.

    19. Re:BS: "tip of the iceberg" by jgrahn · · Score: 1

      The advantage is on the typical user side. As a Mac user over two architecture transitions, I've really appreciated just being able to pull down a single executable from a site and have it "just work". Disk space is cheap and my tolerance for pointless frustration decreases steadily with age. A distribution mechanism like fat binaries makes it so the user really has to go out of their way to get it wrong

      But we're discussing Linux here, not some proprietary OS. If you want foo, you 'aptitude install foo' and it just works. If it doesn't you build it yourself and it just works.

      By the way, if you run Linux Fedora X.Y and by accident download the Extremely Fat Binary RPM for Fedora Z.A or SuSe B.C and it fails to install, would you say that "just works"? Wouldn't it be more accurately described as "pointless frustration"?

    20. Re:BS: "tip of the iceberg" by eugene2k · · Score: 1

      >Lack of slashes (as in "tar/deb/rpm") and no multiplicity of install procedures.
      Right, and all of these are 100% alike.

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    21. Re:BS: "tip of the iceberg" by turbidostato · · Score: 1

      "And what do most package managers do? Utterly lazy dependency management. "Well, you need this package... so you should have the latest version of it.""

      No_Single_Package_Manager_Does_That.

      Clear?

      All the rest is utter crap too.

    22. Re:BS: "tip of the iceberg" by eugene2k · · Score: 1

      >Why do you think one of the discriminators in a fat binary can't be a distribution identifier, such that there are fat slices for supporting Debian, RedHat, Ubuntu, etc., all from the dame binary file?

      >Or that they can't have different slices in the fat binary for Gnome vs. KDE, or desktop vs. Android, and so on?

      So, remind me again: why exactly is it not possible to implement all that in a package manager and we need to have a Really Fat ELF?

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    23. Re:BS: "tip of the iceberg" by jgrahn · · Score: 1

      Why do you think one of the discriminators in a fat binary can't be a distribution identifier, such that there are fat slices for supporting Debian, RedHat, Ubuntu, etc., all from the dame binary file?

      Such a binary would be insanely large. Debian stable on N architectures + Debian testing on N architectures + RedHat something on M architectures + ... It sounds as if the people who like the idea are Mac users who expect Steve Jobs to define what a "Mac" is at any given point in time. But that's not how Linux (or the BSDs) work.

      What *about* the BSDs, anyway? Why can't *they* get a few dozen slots in this fat binary? And MacOS, Solaris ... heck, let's throw in Windows too, that's only two extra binaries and I'm already counting hundreds.

      Another thing: how would the kernel know which one to run? Should it try them all? Or should it read /etc/debian_version, /etc/redhat-release and so on, using various heuristics to try to guess what the user is running?

    24. Re:BS: "tip of the iceberg" by 99BottlesOfBeerInMyF · · Score: 1

      That helps against architecture differences, but not differences in the OS

      True. Obviously there's a long way to go in that regard as well. To be perfectly honest, I think a real boon to Linux on the desktop adoption would be better standardization across distros and compatibility with other OS's. Heck, adopt GNUStep and make some nice tools to compile for several Linux distros and OS X.

      ...on both AMD64 and ... uh, *are* there other architectures in professional use today?

      Some i386 and of course Arm.

      At work I install stuff on shared network drives for four Linux dists/releases/architectures. The clients know which ones to add to the $PATH.

      That's fine in a computer professional environment, but in a normal educational, or more general purpose environment with less expert users it doesn't fly. Think of a middle school, for example, where every incoming class is issued Linux laptops of some variety. You don't want to have to constantly be adding things to them and configuring them. Compared to offering a shared network drive that auto-discovers and lets them run commercial packages while on site, expecting them to configure a path is a non-starter.

      In retrospect, it would have been better to set up a package repository and let the clients update themselves against it (install packages from it) regularly. But other requirements prevent that.

      Which isn't an option for pretty much any commercial software with limited licenses. I think a big part of the problem with people wrapping their heads around the benefits here is Linux developers seem to think package managers will solve everything and yet have not adapted package managers to work with the practical requirements of non-OSS, commercial software. It's the sort of NIH that keeps commercial software from being developed and distributed on Linux. I suppose some people like it that way.

    25. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      Except that in the case of OS X, there's already the existing formats everyone uses (zip/dmg/mpkg) which all support this. I really have no idea why they chose to go with building it into the binary itself.

      --
      Don't thank God, thank a doctor!
    26. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      Obviously if there weren't clear benefits, there wouldn't be such broad support for this concept.

      Appeal to popularity -- a bit of a fallacy. For example, there's broad support for religion, but I am not religious. There's also broad support for Windows, but I use Linux.

      With multi-architecture binaries and libraries, you can test and debug the 32-bit and 64-bit versions of an application without rebooting into a separate OS, without building some weird chroot environment,

      Neither of which is required currently.

      Special linker, if it's there, is already done.

      Another big advantage is that if you build a universal install DVD, you have half as many binary packages.

      Wrong -- you have half as many binary files. The number of packages can remain the same.

      Can you come up with a single example which isn't handled trivially by a script which selects the appropriate binary?

      --
      Don't thank God, thank a doctor!
    27. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 2, Insightful

      I've really appreciated just being able to pull down a single executable from a site and have it "just work".

      Have you ever done that? Even once?

      I'm willing to bet you haven't -- that you've instead downloaded zips, dmgs, or mpkgs, neither of which are executables, and all of which would be perfectly capable of including multiple binaries and a script to select the correct one.

      my tolerance for pointless frustration decreases steadily with age.

      That's why I use a package manager, which eliminates the whole issue -- I just need the name of a package, and it Just Works.

      --
      Don't thank God, thank a doctor!
    28. Re:BS: "tip of the iceberg" by eugene2k · · Score: 1

      One really nice thing is you can install a single fat binary on a shared network drive and clients with different architectures can all run it without having to know what architecture they are on or without a client side script that needs to be installed, or a script that tries to identify the client's architecture.
      And when the architecture isn't available in the FatELF binary it will simply not run. Nor will it indicate that the problem lies within the machine a user is using and that she needs to switch to a different machine in order to run the software.

      Another advantage comes from applications being run from flash drives, which has similar benefits.
      And similar drawbacks.

      For closed source software, however, being able to pull the applications directly from your old hardware to your new hardware (regardless of architecture) and have it work is really nice.
      Ok, so imagine your proprietary software is packaged inside FatELF: there are two architecures: x86 and x86_64. And you've decided to switch to ARM. Too bad for you. It works on Apple, because Apple tells the software developers in advance, that they are going to switch to a different architecture for their Macs, thus the developers know what architectures to support. Linux, OTOH, works on an array of architectures and if ARM and MIPS try to have a slice of the desktop/laptop cake, you won't be able to switch as easily as you think.

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    29. Re:BS: "tip of the iceberg" by marmoset · · Score: 2, Informative

      While I appreciate your strawman, I'm typing this on a (64-bit) PPC machine. The idea that Aunt Millie might be running a 2005-vintage Mac Mini, for example, is hardly unrealistic.

    30. Re:BS: "tip of the iceberg" by eugene2k · · Score: 1

      Right, all you have to do is manually check if the dependencies needed to run your software are satisfied. Good luck with that.

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    31. Re:BS: "tip of the iceberg" by Grishnakh · · Score: 2, Interesting

      It seems to me that this problem would be better solved by packaging tools, rather than messing with the kernel. After all, this doesn't seem like it would get around library dependency problems at all, unless you require everything to be statically linked.

      Besides, packaging tools in Linux, while certainly better than other OSes, could still use a lot of work. For instance, it'd be nice if we could standardize on a single one, instead of deb, rpm, and tgz all being used. I can understand why people can't agree on Gnome vs. KDE, but honestly, what is so great about deb/rpm that rpm/deb doesn't do? Or can't be made to do with some modifications? (Don't say "apt"; that's a layer above, and has been made to work with rpm, plus it has a clone called zypper that OpenSUSE uses which does basically the same thing from what I've seen.)

      How about if all the packaging folks decide to bury the hatchet and create a single package standard (we could call it "dpm" or "rpkg", or maybe "upkg"), which does everything that rpm and dpkg do, and they could probably add support for multiple architectures too which would make it easy for commercial software developers to distribute software to Linux users in a Linux-friendly way, without the users even needing to know whether they're using an i386, x86_64, or even ARM system. The total download size difference shouldn't be that much, since much of the data is not arch-specific (graphics and such), and since only the proper arch-specific binaries would be installed, after installation the non-applicable stuff would be deleted along with the .upkg, so there'd be no wasted space on the HD. For distros of course, they could keep using the same apt/zypper tools they use now to manage dependencies.

    32. Re:BS: "tip of the iceberg" by eugene2k · · Score: 1

      Another really big advantage is easier developer workflow. With multi-architecture binaries and libraries, you can test and debug the 32-bit and 64-bit versions of an application without rebooting into a separate OS, without building some weird chroot environment, without using a special linker that changes the paths of the libraries if it detects a 32-bit binary, etc. This means that your development system is essentially identical to the user systems (except for the kernel), and thus the likelihood of bizarre "Unable to reproduce" bugs goes way down.
      That's a problem that is best solved by modifying the dynamic linker to look for different shared library paths depending on the arch.

      Another big advantage is that if you build a universal install DVD, you have half as many binary packages.
      And twice as much binary package size.

      That means a less complex installer and thus reduced potential for bugs, reduced install testing overhead, etc.
      Because checking the architecture and choosing between a say x86 and x86_64 directory to copy the packages from is so complex, it's simply unbearable.

      Without fat binaries, that's well beyond the ability of most typical computer users
      And using the command line to grep something isn't? We must live in different universes.

      But probably the most important reason for it is that Linux is late to the party.
      Yes I absolutely agree: Linux should be proprietary, it's late to that party too. MacOS, Windows, VAX/VMS, AT&T UNIX, SCO UnixWare...

      Obviously if there weren't clear benefits, there wouldn't be such broad support for this concept.
      Obviously.

      Many other operating systems support fat binaries---Mac OS X, Windows, NetBSD, etc.
      Windows supports fat binaries? Since when?

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    33. Re:BS: "tip of the iceberg" by Thuktun · · Score: 1

      Your average desktop user does not want to go, 'Oh, well, I'm running on Processor X, with distribution Y, patch Z. I guess that means I need /this/ tarball (or this subdirectory of the big tarball).' Fat binaries solve this problem.

      Your average desktop users don't currently have that problem when using modern Linux distributions like Ubuntu, since the tools take care of that for them.

    34. Re:BS: "tip of the iceberg" by moonbender · · Score: 2, Insightful

      Unless it's not available in the repos in which case it Just Won't Work. I'm in this situation all the time, both with software which simply isn't in the repository, and with software that's available but outdated.

      1) If someone has set up a repository for this software, that's great, and it happens more and more often since it's fairly painless to set up a PPA on Launchpad; it's still not a one step solution anymore, though.

      2) Or you download a deb, which usually (by design?) is for a single architecture and run it through GDebi. Which is pretty painless, too, if it works.

      3) Or it's one of the few precompiled blobs that you set +x and they just seem to work as if by magic, but I bet that was a pain to create and is even more of a pain to keep updated or maybe uninstalled.

      4) Source distribution. You better hope you've got all those dependency -dev packages installed. Could you hook up apt into the building process and auto-install dependency source packages when they're needed?

      --
      Switch back to Slashdot's D1 system.
    35. Re:BS: "tip of the iceberg" by cowtamer · · Score: 1

      For instance, Joe User picks up that nice Windows 7 Home Premium machine he saw at Best Buy, and plugs his Windows Vista drive in to copy over applications, unaware his old computer was running Vista x64, while his new Windows 7 machine is 32-bit. Joe has some Problems now, when he tries to run some of his old installed software that was 64-bit only.

      Unfortunately, the days when you could transfer applications from one machine to the other simply by copying binaries are LONG gone in the PC world...

    36. Re:BS: "tip of the iceberg" by makomk · · Score: 1

      That helps against architecture differences, but not differences in the OS -- e.g. shared library versions. It's more common in my experience to run e.g. Debian Lenny on some servers and Debian Etch on others, than to be running the exact same Linux distribution on both AMD64 and ... uh, *are* there other architectures in professional use today?

      Exactly. The usual solution to that is to bundle up the required libraries with the program and use a shell script to point it at them - and it's not that much more work to have said shell script detect the architecture and run the appropriate binary for it. FatELF is a solution in search of a problem.

    37. Re:BS: "tip of the iceberg" by jmorris42 · · Score: 1

      > The advantage is on the typical user side. As a Mac user over two architecture
      > transitions, I've really appreciated just being able to pull down a single executable
      > from a site and have it "just work".

      Here is a hint. Don't come from a Mac to UNIX and expect things to work like you expect. Same for those coming from Windows. Things are different here. That is the point, Mac/Windows/UNIX/Linux have different philosophies and assumptions, not just some minor variation in widgets and file naming conventions.

      We use package managers here. You aren't supposed to download an executable from some webpage and run it. One it isn't safe, two we don't have the infrastructure for that (no installshield) stuff and third a random download won't automatically get updated so you open yourself up to exploits. What you should do is click on a link that adds a REPO. You do have to inform the user they have to take one additional step and go add your program using the package manager, but then everything "Just Works(tm)" even better than your Mac or what a Windows user gets. Your app gets the advantages of package management. It doesn't have to statically link every library, it can depend on the system copies, safe in the knowledge that any missing ones will get automatically installed. That is why we didn't just ape the bad habits of Win/Mac, we did something better.

      If you want to see just how seamless it can be, look at how Adobe has done it with Adobe Reader and Flash Player. Updates for both appear mixed in with the rest of the torrent of updates on my Fedora install.

      Instead of putting links to stand alone packages or installers on your site when you release a Linux version you put links to repos for the distributions you intend to support. In those repos you place packages for the distro versions and arches you support and when you release an update you plop them into the repo and watch all of your users update over the next couple of days. You don't have to add an update notification feature into every fracking app, ain't it wonderful to just leverage the operating system's existing feature?

      Or you can go with a more statically linked .i386 version stuffed into a more generic .deb and .rpm and cover most yum and apt enabled distributions at a small loss of performance and odd arches. Whatever floats yer boat.

      --
      Democrat delenda est
    38. Re:BS: "tip of the iceberg" by PeterBrett · · Score: 1

      Your average desktop user does not want to go, 'Oh, well, I'm running on Processor X, with distribution Y, patch Z. I guess that means I need /this/ tarball (or this subdirectory of the big tarball).' Fat binaries solve this problem.

      Your average desktop user doesn't do that though. He goes to his "Add/Remove Applications" applet in the system configuration tool, types the name of the application into the search field, clicks "Install" -- and the system takes care of working out which binaries need to be downloaded and installed for him.

      Adobe's current installation instructions for the Flash plugin (on Fedora) are to manually install an architecture-independent package which enables the Adobe package repository, then install the Flash plugin by the normal "Add/Remove Applications" procedure. This ensures that the user gets the right architecture and library linkage, an installation layout suited to the distribution, and that the plugin is kept fully up-to-date using the normal package updating process. Adobe's website is even very reliable about detecting that I'm running Fedora and directing me to the correct instructions for enabling their repository.

      I have a hazy recollection of the last time I was faced with the problem you describe, but I think it was probably while trying to install ATi graphics drivers on Fedora Core 3. In 2005. Yes, that would be FOUR YEARS AGO.

    39. Re:BS: "tip of the iceberg" by aardvarkjoe · · Score: 1

      Lack of slashes (as in "tar/deb/rpm") and no multiplicity of install procedures. Its simpler for the user, witch has no doubt about how to go with one specific file (tars should be opened and README, debs should get dpkgs, etc, etc)

      You could get the same "advantages" by just picking one package format and getting rid of the others. (No, that will never happen. And no, fat binaries would never replace tar/deb/rpm.) Adding another system that does the same job isn't going to make anything simpler for anybody.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    40. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 1, Informative

      Yes... lots of Mac software comes in a single executable binary. And uninstalling it is also as simple as dragging the "file" from the applications folder to the trash and emptying the trash.

    41. Re:BS: "tip of the iceberg" by wings · · Score: 1

      This is the purpose of variable substitution in automounter maps. It allows a client machine to follow the right automount path based on ARCH, CPU, OSNAME, OSREL, and OSVER so that it gets the specific binary it needs with what appears to be a common $PATH to the user. See the manpage for autofs(5).

    42. Re:BS: "tip of the iceberg" by Blakey+Rat · · Score: 1

      Then be like the Mac world, where that's worked fine since 1984.

      Windows isn't the end-all, be-all of the computing world. And frankly, if you were interested in improving usability, I don't see why you'd look at anything *except* OS X. (And maybe Office 2007.)

    43. Re:BS: "tip of the iceberg" by 99BottlesOfBeerInMyF · · Score: 1

      And when the architecture isn't available in the FatELF binary it will simply not run. Nor will it indicate that the problem lies within the machine a user is using and that she needs to switch to a different machine in order to run the software.

      I use OS X and Ubuntu, both have reasonable errors when you try to run a binary that is not the right architecture. What are you using that silently fails?

      Another advantage comes from applications being run from flash drives, which has similar benefits.

      And similar drawbacks.

      What drawbacks? If you're disk space limited you need to run an app to prune the unneeded binary bits?

      Ok, so imagine your proprietary software is packaged inside FatELF: there are two architecures: x86 and x86_64. And you've decided to switch to ARM. Too bad for you.

      Yes, too bad you have the behavior that Linux currently has. That's an argument not to make things better for other cases?

      It works on Apple, because Apple tells the software developers in advance, that they are going to switch to a different architecture for their Macs, thus the developers know what architectures to support. Linux, OTOH, works on an array of architectures and if ARM and MIPS try to have a slice of the desktop/laptop cake, you won't be able to switch as easily as you think.

      I don't really think it is much of an issue. As ARM becomes a real player, people start adding binaries. In the worst case people have to fail back to the less useful method on Linux now.

    44. Re:BS: "tip of the iceberg" by 3p1ph4ny · · Score: 1

      Wow. It's not about Windows! It's about being easiest. You could argue about whether this is really easier, but bringing Windows into it is unnecessary.

    45. Re:BS: "tip of the iceberg" by Grishnakh · · Score: 1

      I'm no expert on the subject, but when I apply updates in (k)Ubuntu, they seem to be extremely fast, much faster than downloading entirely new versions of the programs. Surely they're using some kind of delta-dpkg or something?

      Back when I used SUSE (which wasn't all that long ago), rpm updates were indeed slower than a sloth swimming in molasses.

    46. Re:BS: "tip of the iceberg" by TheSpoom · · Score: 1

      Err... he wasn't suggesting that users make their own shell scripts, he was suggesting that the developers of a program release shell scripts with it to determine what / how it will run; users would then run the script rather than the binary directly.

      It's been used all throughout modern distributions, especially Ubuntu. Take a look at your process list some time; you'll find several processes with a suffix "_real" because the program that took the place of the actual name was replaced with a script that setup the environment in advance of running the actual binary.

      Do some research before bringing out the flames.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    47. Re:BS: "tip of the iceberg" by Pfhorrest · · Score: 1

      I'm willing to bet you haven't [pulled down a single executable from a site and had it "just work"] -- that you've instead downloaded zips, dmgs, or mpkgs, neither of which are executables

      For an OSX user running Safari at least, it really is just that easy. Safari will automatically unzip zips, untar tars, mount dmgs and other such things, throwing away the "wrappers" as it does so (with the exception of dmgs), leaving you with just the final contents of the download. So you click a link to download "MyApp.dmg.tar.zip", give it a moment to download, and up will pop a Finder window (the mounted dmg) containing "MyApp", and maybe a read me or some such. Copy it to where you want it or just double-click it to run it straight from the dmg (not a good idea for tidiness' sake, but something I see lots of users do anyway). No tar or zip file anywhere to be found; they were automatically expanded and discarded.

      --
      -Forrest Cameranesi, Geek of all Trades
      "I am Sam. Sam I am. I do not like trolls, flames, or spam."
    48. Re:BS: "tip of the iceberg" by salesgeek · · Score: 1

      You were doing ok until this:

      (And maybe Office 2007.)

      #fail

      --
      -- $G
    49. Re:BS: "tip of the iceberg" by JohnBailey · · Score: 1

      But we're discussing Linux here, not some proprietary OS. If you want foo, you 'aptitude install foo' and it just works. If it doesn't you build it yourself and it just works. ...and linux weenies wonder why users don't drop Windows and flock to Linux in droves.

      True.. But we wonder more often why Windows weenies insist on cornering us and telling us loudly and aggressively that they are not going to use our OS, even when we didn't ask them to, while demanding we fix their computers. How come users of the biggest market share OS are so insecure?

      --
      It is difficult to get a man to understand something when his job depends on not understanding it.
    50. Re:BS: "tip of the iceberg" by 99BottlesOfBeerInMyF · · Score: 1

      If you think package managers are just for open source then it highlights your own ignorance.

      Package managers are supposed to be for handling all installs, upgrades, and uninstalls. Unfortunately, pretty much none of them are used by commercial software developers, since said package managers are ill suited to their needs. This is why pretty much every commercial game on Linux comes as a binary installer, instead of distributed as a proper package hosted on a repository.

      Ubuntu has announced plans to try to remedy this because they realize how much this prevents developers from even bothering with Linux for home user software. Unfortunately, they've only gotten as far as releasing the new package manager they plan to eventually add support for commercial software into, not the features needed by commercial developers.

    51. Re:BS: "tip of the iceberg" by TheLink · · Score: 1

      Microsoft can't do something similar - there'll be antitrust issues if they tried that ;).

      --
    52. Re:BS: "tip of the iceberg" by Khyber · · Score: 1

      And when the script breaks because of something unexpected, THEN WHAT?

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    53. Re:BS: "tip of the iceberg" by Khyber · · Score: 1

      Do research? Running both SUSE and Ubuntu, let me tell you one thing - HALF THE FUCKING DEVELOPERS SCRIPTS DO NOT WORK PROPERLY.

      Which is why my main box still runs Windows. Until you Linux/OSS people can get your shit together as a community, I'd rather not have to deal with the broken bullshit, so it's Windows I stay.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    54. Re:BS: "tip of the iceberg" by Sir_Lewk · · Score: 1

      If we are dealing with the average joe, then he should just pick x86 and whatever distro he is using should provide sufficiently high emphasis on x86 that it is the only obvious choice. 99.99% of the time that will be the correct choice. Average Joes should not be doing anything even closely resembling package management.

      Nimrod.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    55. Re:BS: "tip of the iceberg" by unix1 · · Score: 1

      And that would be almost-excusable, except for the brain-dead "open source is king" approach for updates: "The whole-thing's free anyway, why not just re-send the whole thing?" binary patches are pretty-much unheard of. Of course, sending the whole thing is really just a work-around because-

      SuSE has been doing binary deltas since Hector was a pup. Haven't others too?

      Package managers generally do NOT bother to detect when they are about to clobber or alter "the wrong file". When they do, they don't bother to keep a record of what they /would/ consider to be "the right file", making "merging" impossible and difference examination a guessing game. That doesn't even matter, because the first step in an "Upgrade" is usually to just completely remove the existing package, which means...

      That's not true. Most dependencies are given for files and their specific versions. If the "to-be-installed" package offers a different version of the file/library that no longer satisfies the dependency, the package manager complains, and most of the time, tries to automatically find the best solution from available packages.

      Multiple versions of a single package co-existing on the same base install is generally impossible. Which really makes you wonder what the hell a package manager /does/ manage.

      It is possible and easily done. Package managers do not have any such restrictions and are able to happily manage multiple versions of the libraries quite well.

      You want the bleeding-edge version of something? You just want to patch a broken package? That means you're not using the package manager, and that means you're on your own for everything. Either you build a /package/ for what you're doing on the side, or you don't get access to any of the supposed features. And anything that depends on what you're doing, you may as well just compile and track yourself- 'cause that's what you like doing, right?

      Exactly right. Blame the packager, not the package manager. There's nothing in package managers that says you can't have KDE3 and KDE4 installed at the same time.

      The short of it is: Package managers seem so fundamentally broken that giving them another task seems like a waste of time. They'll just be replaced by a better system eventually anyway, right? And then you'll need to do it all again.

      The closest to "right" I've seen is GoboLinux.

      I don't see how they are "broken" at all.

    56. Re:BS: "tip of the iceberg" by TheSpoom · · Score: 1

      *shrugs*

      Different results for different people, I guess. It works for me, and apparently many others.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    57. Re:BS: "tip of the iceberg" by dgatwood · · Score: 1

      Wrong -- you have half as many binary files. The number of packages can remain the same.

      IIRC, at least the RPM format is single-architecture unless they've changed that recently. I can't comment on the other packaging formats. Single-architecture binary packages with multi-architecture docs/non-binary-files packages certainly did seem to be the most typical design pattern last time I checked, but then again, I've avoided building packages like the plague lately, so I could be behind the times.

      Special linker, if it's there, is already done.

      No, no it isn't. What's done is a colossal hack job in which everything gets built more than once, with different linker lines with different lib directories. And although I haven't created my own distro since that mess went in, I can tell just by looking at it that it is likely to be fragile and error-prone for the people who do. If I had to build a Linux distro now... well, I wouldn't build a Linux distro now. I think my reply would involve several swear words, followed by my resignation. :-D

      Can you come up with a single example which isn't handled trivially by a script which selects the appropriate binary?

      Speaking as somebody who beat my head against a wall dealing with cross-compilation in Linux for a while at my previous employer, are you sure you want to ask me that? Yeah. I can think of many examples where a script can't do it. We'll start with the easy one: Perl. Try to configure a multi-architecture version of Perl that way and ship it as part of an OS distro. I dare you. Building the binary is the easy part (and last I checked, it was still a total disaster involving hacking up the build script). After that, you now have to keep track of multiple trees full of binary modules, one per architecture, making sure that every one built correctly on every architecture, etc. With fat binaries, it becomes relatively easy. Each of those modules builds only ONCE, building each file several times, once per architecture. Each module either builds or it doesn't. The amount of overhead for the package maintainers is much, much less.

      Oh, and remember that as soon as you get one app that does its own custom @INC hack to add a new directory full of Perl modules, you now get to hack up that Perl script to look in multiple places, depending on architecture. The problem can rapidly escalate for end users in a complex installation. Oh, and judging from history, they'd arbitrarily change the layout and the startup scripts every couple of releases, breaking all of those changes over and over. Versus a multi-architecture fat binary install where it stays in the same location, version number notwithstanding, and it doesn't matter what hardware you're running on. And since it's built into the kernel's binary format, people are much less likely to screw with it just because "It would be even better if we move this here and change this like that."

      I suspect if I thought about it harder, I could come up with many more examples of problems you'd have just with Perl alone, not to mention other similarly complex kits (PHP, Ruby, etc.). They all pretty much have the same sorts of problems, and for the same reasons.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    58. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      The point wasn't about ease-of-use, though that is part of it. This, in particular:

      or just double-click it to run it straight from the dmg (not a good idea for tidiness' sake, but something I see lots of users do anyway).

      It's more than a bad idea, it's a security risk. Firefox is an example of an app which will auto-update in general, but not when run from the DMG.

      But the point was, you're not downloading an executable, you're downloading some sort of package. It would be exactly as easy (or not) if that package had multiple binaries inside it, and maybe a script to choose which one to launch.

      My point wasn't against having "fat" applications, but against the need to implement this in the kernel with fat binaries.

      --
      Don't thank God, thank a doctor!
    59. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      But some religions do provide clear benefits.

      But every benefit you listed can be achieved through secular means. All except the placebo effect can be achieved without the use of faith or deception.

      that can't even be blamed on lack of "hardware drivers".

      How so? What is it, specifically, that is Linux's fault about the sound situation?

      I can't remember the last time I had a serious sound issue, though I've been forced to become a bit of an ALSA expert.

      Even the MSO clone Kingsoft Office is better than OpenOffice.

      Be specific. What's so bad about OpenOffice, and have you actually tried a recent version?

      --
      Don't thank God, thank a doctor!
    60. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      IIRC, at least the RPM format is single-architecture unless they've changed that recently. I can't comment on the other packaging formats.

      I'm fairly sure I've seen multi-architecture debs. After all, not all packages include binaries at all.

      If not, that's a place to start.

      everything gets built more than once, with different linker lines with different lib directories.

      Whereas a fat binary means everything gets built more than once, but there's only a single lib directory. I'm not sure I see how that's better.

      Speaking as somebody who beat my head against a wall dealing with cross-compilation in Linux for a while at my previous employer, are you sure you want to ask me that?

      Yes. Despite the tone, I'm usually open to being proven wrong.

      Oh, and remember that as soon as you get one app that does its own custom @INC hack to add a new directory full of Perl modules,

      This should be trivial to resolve by setting @INC to begin with. That is, if the one app is looking for its own files, presumably those were built for a single architecture. If it's looking for the global files, it shouldn't have to know where those are ultimately stored, and the wrapper around /usr/bin/perl should've handled it.

      I do know that Ruby doesn't seem to have much of this problem, though the usual hack is to install one copy of Rubygems (and of each gem) per interpreter -- that is, one for 1.8, one for 1.9, one for JRuby, one for Rubinius... My own solution has been to keep my custom-compiled Ruby 1.9 isolated from the distro-maintained Ruby 1.8.

      Not usually an issue, though, as you usually only need the one architecture on a given machine.

      --
      Don't thank God, thank a doctor!
    61. Re:BS: "tip of the iceberg" by dgatwood · · Score: 1

      And twice as much binary package size.

      No, the same total binary package size, twice the size for any given individual binary package. Of course, that's only a small percentage of the size of a typical OS distribution. ISTR that binaries are usually somewhere around 30% by volume. So if you add a second architecture, you've only added 30% to the size of the distro. You've also made it easier to ship one DVD instead of two, made it easier to create a single boot drive that works on a wider range of machines without sacrificing 64-bit or SSE3 on machines that support it, etc.

      Because checking the architecture and choosing between a say x86 and x86_64 directory to copy the packages from is so complex, it's simply unbearable.

      Because you get dependencies that can't be met because somebody forgot to compile one library for one architecture and that breaks something else, which breaks something else.... Or because somebody forgot to adjust that library path to install in a different directory for the 64-bit slice and the two binaries clobber one another.... Or because somebody screwed up and included one path in the Perl @INC path that corresponds with the opposite architecture and Perl throws a fit and fails to load a Perl module even though the one for the right architecture is there, just later in @INC.... Or because autoconf isn't smart enough to do the right thing in every case when the user needs to compile something. It's not just the installer complexity that's a problem. Having multiple library sets in different locations dramatically increases the complexity of almost everything on the system.

      Windows supports fat binaries? Since when?

      Since the COM file format, supported way to heck back in DOS.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    62. Re:BS: "tip of the iceberg" by the_womble · · Score: 1

      Your average desktop user does not want to go, 'Oh, well, I'm running on Processor X, with distribution Y, patch Z. I guess that means I need /this/ tarball (or this subdirectory of the big tarball).

      The average desktop user does not download tarballs and they do not apply patches manually.

      They might occasionally download a package, but average users all use x86 so they just need to know their distro.

    63. Re:BS: "tip of the iceberg" by RocketRabbit · · Score: 1

      I have done this a lot of times. Some software disappears. Things happen on the internet. Sometimes the only way to get a package that has been disappeared is to copy it out of the /Applications folder of one machine onto another.

      Another option is to throw it all onto a networked drive somewhere and be able to run the programs from a PPC or Intel mac without fucking around with scripts and .tar.bz files and whatnot.

      "and all of which would be perfectly capable of including multiple binaries and a script to select the correct one"

      Have you ever seen this in real life? Even once? I haven't.

    64. Re:BS: "tip of the iceberg" by RocketRabbit · · Score: 1

      The Mac (OS X) is great with this. If the developer follows the proper instructions when making their package, it will file the libraries and such into the /Library directory, into a folder for that package. But that package can include a hundred different versions of the library, and the system knows which version of the library goes with each application.

      Sure you end up with maybe having 3 or 4 versions of OpenCV or whatever installed at once, which costs space, but the upside is that a package that depends on a certain lib can always know that once it's filed away, it will not be overwritten.

    65. Re:BS: "tip of the iceberg" by data2 · · Score: 1

      That's why Gentoo has slots... And I am sure, other distributions have similar mechanisms.

    66. Re:BS: "tip of the iceberg" by localman · · Score: 3, Insightful

      I've really appreciated just being able to pull down a single executable from a site and have it "just work".

      Have you ever done that? Even once?

      Absolutely yes. And if you're willing to forgive the word "executable" and allow a dmg with a single app in it that I can just drag and drop without picking which one to use or running any scripts, then I've done it quite often.

      The universal binary system on osx was pretty sweet during transition. I went from PowerPC to Intel and very rarely had to think about it at all. If you think that's nothing special, fine, but to a lot of users that's a very nice feature.

      Cheers.

    67. Re:BS: "tip of the iceberg" by Mystra_x64 · · Score: 1

      Like unexpected string concatenation, yeah.

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    68. Re:BS: "tip of the iceberg" by danieltdp · · Score: 1

      I didn't said that. I said that on MacOS is simpler because they only have one file type and one way to handle it.

      --
      -- dnl
    69. Re:BS: "tip of the iceberg" by danieltdp · · Score: 1

      Could you point me were did I said it was easier on Windows?

      --
      -- dnl
    70. Re:BS: "tip of the iceberg" by Hurricane78 · · Score: 1

      Uuum, have you ever tried Portage, and its descendants?

      We have something called "slots". Meaning that if at all possible, you can install multiple versions at the same time. Including automatic versioning of libraries. I could never go back to something else.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    71. Re:BS: "tip of the iceberg" by segedunum · · Score: 1

      Have you ever done that? Even once?

      Yes, I think we all have at some point, but it wasn't for a Linux-based platform.

      That's why I use a package manager, which eliminates the whole issue -- I just need the name of a package, and it Just Works.

      Which totally falls apart when there is something you want that isn't in your repository, you can't find a repository or package for your distribution, distribution version and/or architecture (how many multiples is that?) or you want to get an update for something that has just been released and you realise that it will take at least six months to get it into a usable respository...........and you will probably have to upgrade your distribution as there will be no usable backports. For third-party software this falls apart totally and you are completely on your own with a statically compiled, standa-alone tar archive that give you know package or installation manager benefits whatsoever.

      Have you noticed how that 'Check for updates...' thing simply does not work at all with Firefox on any distribution? Can you hazard a guess as to why? If you want to know the reason for distribution churn and hopping then this is primarily why.

      This is total and utter shite and no other sane operating system makes their users go through this brain damage. When people keep repeating the above untruth that everything is fine in software installation la, la land on Linux I wonder whether people have been using their package managers or distributions at all. Even worse, in order to overcome some perceived proplems someone then invents..............another package management system.

    72. Re:BS: "tip of the iceberg" by rubycodez · · Score: 1

      malware can be put into a package just as easily as in a raw executable.

      All the business linux installations I deal with have softwares installed from non-package sources, from major database, vpn and accounting vendors. The issue is whether a source can be trusted and has a verification fingerprint for their product. funny most of this stuff just has minimum dynamic library C version requirements, most runs after a distribution upgrade just fine.

      I'm sitting here running a citrix metaframe client on my Ubuntu box, that's worked across three years of upgrades and also on redhat and debian, only concern was a minimal motif version

    73. Re:BS: "tip of the iceberg" by mysidia · · Score: 1

      Scripts are not as robust. Fat binaries are more useful and more convenient.

    74. Re:BS: "tip of the iceberg" by mysidia · · Score: 1

      What makes it simpler is automatic selection by the kernel of which binary to execute, which makes the binaries interoperable with more systems.

      Without developers needing to distribute multiple packages or ad-hoc scripts to try and detect CPU arch.

      Instead developers can distribute a simple 'Linux' binary for all libraries and programs.

    75. Re:BS: "tip of the iceberg" by Mr+Z · · Score: 1

      Another nicety is that cross-compiling gets baked into the DNA of the tools, and now becomes trivial. When I build jzIntv on my Mac, I just add "-arch ppc -arch i386" and GCC does the right thing. I've been doing that for years. Cross compiling an 32-bit x86 version of jzIntv on my x86-64 Ubuntu box is a little more complicated, enough so that it's just easier to do it on a 32-bit machine instead. That seems a bit heavy handed and backwards.

      Then there's the whole /lib vs. /lib32 vs. /lib64 stuff, and how I still manage to get errors like this that are just too much pain to track down:

      $ mplayer
      mplayer: error while loading shared libraries: libgtk-1.2.so.0: wrong ELF class: ELFCLASS64

      It used to work... I don't know what I did to break it, but I clearly did something. Oh well. How annoying! Fat binaries would make this work effortlessly. Disk space is waaaaay cheaper than my time.

    76. Re:BS: "tip of the iceberg" by Mr+Z · · Score: 1

      BTW, while that Wikipedia article mentions COM can do a fat binary, it doesn't mention how and it does say [Citation Needed]. I suspect it was a machine code hack such that the same bit of machine code would branch to the 8086 vs. 8080 portions of code due to differences in how the two CPUs interpreted the same instructions. I wouldn't really call that "support", since COM was a headerless format. It was just raw object code loaded at a fixed address!

    77. Re:BS: "tip of the iceberg" by iamacat · · Score: 1

      So the average Joe shouldn't be able to benefit from 64 bit architecture (like a video editing tool that makes good use of unlimited virtual memory) if he has the right CPU? Or should he give up easy compatibility with 32 bit code (like flash plugin) in order to make the switch?

      I love the fact that Snow Leopard lets you fully utilize your hardware without giving up any of your software - not even old PowerPC binaries.

    78. Re:BS: "tip of the iceberg" by Chandon+Seldon · · Score: 1

      With multiple binaries in a tar/deb/rpm you end up with multiple binaries and end users randomly trying them in the hopes that one will be the right one for their computer. A lot of users don't know their chip architecture or if it is 32 or 64 bit.

      No you don't. The package has "binary.x86", "binary.x86_64", "binary.ppc", etc. The post-install script detects the architecture, installs it to the name "binary", and deletes the rest.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    79. Re:BS: "tip of the iceberg" by Khyber · · Score: 1

      I just spent three hours getting Enemy Territory installed under Ubuntu. When I FIRST tried Ubuntu (version 6), the script worked perfectly. Now it doesn't work AT ALL.

      Every upgrade , just like Microsoft, Linux distros manage to break SOMETHING that worked in the previous version.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    80. Re:BS: "tip of the iceberg" by 99BottlesOfBeerInMyF · · Score: 1

      No you don't. The package has "binary.x86", "binary.x86_64", "binary.ppc", etc. The post-install script detects the architecture, installs it to the name "binary", and deletes the rest.

      You seem to have lost the context. We were talking about applications installed on network drives and shared by users of different architecture machines. Also we were discussing Flash drives which have similar issues.

    81. Re:BS: "tip of the iceberg" by dgatwood · · Score: 1

      Could well be. The closest I've ever come to Windows binary formats was doing a little bit of DOS assembly language programming in a class once. Even that, I did on a Mac in an emulator. :-)

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    82. Re:BS: "tip of the iceberg" by sowth · · Score: 1

      Then why not just statically link your non-system libraries???

      Then again, it probably does not have multiple copies of the same library as you say. I imagine they detect identical files, and just make hard links on the filesystem.

      I have another idea: Why not just append a version number to a library's file name. when the program is executed, the dynamic linker loads the correct version. Oh wait, this is how Linux works.

    83. Re:BS: "tip of the iceberg" by sowth · · Score: 1

      Have you noticed how that 'Check for updates...' thing simply does not work at all with Firefox on any distribution? Can you hazard a guess as to why?

      I don't need to guess. I know why. Linux has this thing called "filesystem permissions."

      Allowing normal user level programs connected to random internet sites to write system program files is a security nightmare waiting to happen.

      Even the programs which pull packages (such as apt-get) are significant security risks. How do they know the DNS wasn't hijacked? Digital signatures help with that, but you have to be careful.

      You are just from the home luser crowd who doesn't care jack shit if some script kiddie breaks into the computer.

      I also don't know why the hell any of you are arguing about how many architectures to support. Even Open Source developers usually only support one architecture. (guess which one)

      As for different packaging formats and binaries across distributions, I don't see why this is a problem. I use slackware, and I pull the binaries out of deb and rpm packages all the time. rpms convert just fine with rpm2tgz and I use the slackware package installer. I use ar and tar to extract deb files, but now that I think about it, I could probably just use the slackware installer on the data.tgz file.

    84. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      Yes, I think we all have at some point, but it wasn't for a Linux-based platform.

      Was it for a Mac?

      If you said "yes", you probably don't understand what an executable is. I say "probably" because it is theoretically possible, but you have more likely downloaded OS X packages.

      Which totally falls apart when there is something you want that isn't in your repository, you can't find a repository or package for your distribution, distribution version and/or architecture (how many multiples is that?)

      That's a comment on the current state of affairs, not on the idea of packages or package management in general.

      For third-party software this falls apart totally and you are completely on your own with a statically compiled, standa-alone tar archive that give you know package or installation manager benefits whatsoever.

      Unless they've provided:

      • An RPM.
      • A DEB.

      It takes a bit of effort, but that really could be enough.

      Have you noticed how that 'Check for updates...' thing simply does not work at all with Firefox on any distribution? Can you hazard a guess as to why?

      Mostly because updates are handled by the distribution, as they should be, not implemented separately in every single app (a ludicrous duplication of effort).

      It does, however, work for addons.

      This is total and utter shite and no other sane operating system makes their users go through this brain damage.

      No, other operating systems either make their developers each implement the equivalent of a package manager anyway, as part of the app, or they force their users to check for updates themselves. Does any sane OS really think it's a good idea for a user to have to check around 20 websites, by hand, just to get updates?

      When people keep repeating the above untruth that everything is fine in software installation la, la land on Linux I wonder whether people have been using their package managers or distributions at all.

      Given that the majority of people who actually use Linux disagree with you, there might actually be some truth to it. Not that everything is fine, but that it's better than the alternative.

      Even worse, in order to overcome some perceived proplems someone then invents..............another package management system.

      Mostly because just about every flaw you've described is a flaw in the implementation, not the idea. For instance, there's no real reason multiple architectures can't be supported by the same package.

      --
      Don't thank God, thank a doctor!
    85. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      And if you're willing to forgive the word "executable" and allow a dmg with a single app in it that I can just drag and drop without picking which one to use or running any scripts, then I've done it quite often.

      Except that was my main point.

      The .app folder isn't a concept that the kernel needs to support -- that's handled at the level of Finder, as it should be. But these apps can contain multiple binaries, or really, anything the developer cares to bundle them with.

      OS X supports universal binaries at the kernel level -- that is, the actual binary is itself universal. That is what I don't really see the usefulness of.

      --
      Don't thank God, thank a doctor!
    86. Re:BS: "tip of the iceberg" by SanityInAnarchy · · Score: 1

      I have done this a lot of times.

      Done what, exactly?

      Some software disappears. Things happen on the internet. Sometimes the only way to get a package that has been disappeared is to copy it out of the /Applications folder of one machine onto another.

      Which has nothing to do with anything I just said -- I asked, "Did you ever pull down a single executable from a website and have it Just Work?"

      Please read the post you're replying to, before replying.

      Have you ever seen this in real life? Even once?

      Many times. Off the top of my head:

      Nexuiz is downloaded as a single zipfile, in which there is a Windows exe, an OS X .app file, and a Linux script which auto-selects the appropriate binary based on your architecture.

      The Source Dedicated Servers set things up much the same way -- while it's a weird installation procedure, you end up with a script which selects, at runtime, which executable to use. It typically installs a bunch of random DLLs, too, last I checked.

      In fact, just about every proprietary package I have does this, to some extent -- if only so they can modify the dynamic linker path. (Examples: Quake 4, Doom 3, Skype...) Even among open source apps, it's common to have a script wrapper around something -- Chromium and Firefox both do.

      What I have yet to see is a proprietary Linux app ship as separate 32-bit and 64-bit tarballs, rather than use this technique. It's possible they exist, it just seems much more common to either only support i386, or to ship both binaries and select at runtime.

      --
      Don't thank God, thank a doctor!
    87. Re:BS: "tip of the iceberg" by jcr · · Score: 1

      we wonder more often why Windows weenies insist on cornering us and telling us loudly and aggressively that they are not going to use our OS, even when we didn't ask them to, while demanding we fix their computers

      Sounds like you need to learn to be firm with your family.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    88. Re:BS: "tip of the iceberg" by moonbender · · Score: 1

      Yes, that would be my number three. I was just pointing out that pulling stuff from a repo doesn't always just work.

      --
      Switch back to Slashdot's D1 system.
    89. Re:BS: "tip of the iceberg" by moonbender · · Score: 1

      Yeah, I know. But that only addresses those times when you want to compile stuff which is available in the repos. That is, you can't do apt-get build-dep X for a package you manually downloaded.

      --
      Switch back to Slashdot's D1 system.
    90. Re:BS: "tip of the iceberg" by aardvarkjoe · · Score: 1

      If you had a universally supported package system, then it would automatically pick the right binary. Developers would distribute a simple 'Linux' package and your package manager would pick the right one.

      Some people pointed out some good uses for this (binaries on NFS filesystems, for instance), but simplifying package management is not one of them.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    91. Re:BS: "tip of the iceberg" by Sir_Lewk · · Score: 1

      Having a hard time using 32 bit plugins in a 64 bit web browser is a completely different issue that would not at all be solved by fat executables. What would solve this issue is if 64 bit versions of those plugins existed in the first place. Using binaries from older or other arcitectures (old PowerPC binaries) is not what this is about at all.

      That you don't understand this indicates that you really don't understand what this is all about at all.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    92. Re:BS: "tip of the iceberg" by Simon80 · · Score: 1

      Now you have to be a FatELF genius instead. Problem solved.

    93. Re:BS: "tip of the iceberg" by Simon80 · · Score: 1

      I think being able to install into /usr/share is the first convincing argument I've seen for FatELF, because package management doesn't provide a reasonable alternative for this.

    94. Re:BS: "tip of the iceberg" by jedidiah · · Score: 1

      THIS is the use case to fixate on.

      The idea of running the same binary on two (or more) different platforms is just a nonsense distraction.

      --
      A Pirate and a Puritan look the same on a balance sheet.
  21. Petty fiefdoms and not invented here... by sbeckstead · · Score: 2, Interesting

    Petty fiefdoms and not invented here syndrome will continue to torpedo any chance for a decent Linux on the desktop. Until Linux has a single binary and a universal installation strategy they will continue to be mostly harmless and largely irrelevant to the desktop market at large.

  22. Re:Isn't someone going to ask ... by Joe+Mucchiello · · Score: 4, Interesting

    Commercial Games. That's who.

  23. If I wanted to write in Java, I guess... by argent · · Score: 1

    Why have universal binaries when you have Java to do that?

    If I don't care about performance I can already write in Perl, Awk, Python, Tcl, or something. Why do I want to put up with Java?

    I would LOVE to be able to remove all the "if `uname -cokebottle` matches "[xX]86" pick this RPM else pick that RPM" code from my installers. OK, that still leaves a fair amount of packaging hell unfixed but every little bit helps.

  24. maybe the idea was just bad... by xianthax · · Score: 2, Insightful

    maybe its just me but i see 0 advantages for an executable with multiple binaries.

    shouldn't this all be handled by the package manager? isn't including all these binaries just jacking up download sizes for no gain?

    a boot CD that can run on multiple archs is the only real use i see for this, but i would have to think there is a better way handle that than changing the fundamentals of executables and libraries.

    maybe he received a less than warm reception from other devs because his idea provided virtually no benefit to the end user and required more work by the devs.

  25. Re:Wait, what does Con Kolivas have to do with thi by yupa · · Score: 1

    Especially since on a 64 bit distro pretty much everything, with very few exceptions is 64 bit.
    You should look at ppc and sparc distro : pretty much everything is ... 32 bit. That because 32bit is more efficiant than 64 bits (less code/data size). But on x86 that's different because that's on the same arch at all (not the same register/feature, ...).

  26. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1

    There are places this would be very useful to have. Anytime we're distributing binaries to users, hosting binaries on a network file share, or carrying portable media, it's a big pain in the butt to maintain completely separate architecture trees. In some cases it wastes a lot of space too if there's significant data files along with the executables, because we generally wind up replicating that in each arch install tree.

    I've definitely appreciated OS X's universal binaries in the past, it's a shame to lose an opportunity for having that on Linux. Guess I'm not going to see bundled, versioned libraries like OS X Frameworks anytime either, sigh.

  27. Forget fat binaries for Linux by Yvan256 · · Score: 3, Funny

    I want fat binaries for microcontrollers! Give me binaries that can run on PIC16F88, eZ80 and 68HC11!

    There's nothing worst than having to replace a 0.50$ chip with another that cost 0.51$!

    1. Re:Forget fat binaries for Linux by Yvan256 · · Score: 1

      My computer can handle COW pretty easily. But you need Wirt's Leg and a tome of Town Portal.

  28. Re:Story of binary compatibility is short and trag by adisakp · · Score: 1

    In the entire forked-up mess of the unix tree, there was only one thing that anybody & everybody cared about - source compatibilty. C99, POSIX, SuS v3, so many ways you could ensure that your code would compile everywhere, with whatever compiler was popular that week.

    This guy worked in the closed-source world of video games where it's often not even legal to share your source code (due to middle-ware licensing and trade secrets) and even when it is legal, it's often not feasible for business or gameplay reasons (competitive coding advantage, preventing cheating hacks, disallowing "free content" mods, etc). It's exactly this reason that high-end cutting-edge games and other closed-source software will NEVER be viable on Linux unless there are major changes to the entire model of gaming development.

  29. I sympathize with you. by Zombie+Ryushu · · Score: 1

    That is a tragic experience. The thing is, MythTV is in shambles and I know it. Its not easy to configure or use. I still support MythTV. But there is room for improvement. There are other Linux competitors to Myth out there. Support them if need be. But the truth is the Linux movement needs every warm body it can to fight Microsoft.

    1. Re:I sympathize with you. by ckaminski · · Score: 4, Insightful


      But the truth is the Linux movement needs every warm body it can to fight Microsoft.
      </quote>

      THAT is the problem. Stop trying to FIGHT Microsoft. Start making better software. Innovation, something so tremendously better they start copying YOU.

      Vis-a-vis AMD and Intel and x86_64 and VT extensions.

      Except software has zero marginal cost, so once you take the lead, it'll take a serious fuckup, and not just money to lose it.

    2. Re:I sympathize with you. by iroll · · Score: 1

      Same thing.

      --
      Repetition does not transform a lie into the truth. - FDR
    3. Re:I sympathize with you. by Korin43 · · Score: 1

      Microsoft is already copying Linux. Did anyone else notice how Windows 7 and Vista lay out home folders exactly the same way Linux does? And the blatant copying of Compiz? The UAC?

    4. Re:I sympathize with you. by cameigons · · Score: 1

      Things have been cooling down in the last few years. But microsoft used to ferociously attack the open source world. Or you don't remember? They were ruthless, bullies really.. they would go on the press and unprovokedly say flat-out lies just because giving OSS a bad reputation in the "computer layman world" was good for[their] business. That among other things. This didn't happen once, twice or trice.. it happened many times throughout the years. I think yours is a good point, fighting microsoft shouldn't be the focus, but fighting back may still be necessary.

    5. Re:I sympathize with you. by ifwm · · Score: 1

      Lol, it's nice that you post even though you're too ignorant to realize you just said something ridiculous.

      No,no they aren't the "same thing".

      YOU might be happy with shitty buggy code as long as MS loses in the end, I prefer things that work regardless to their imagined utility in the silly Linux vs MS fight.

      People like YOU are the problem, stop pretending your opinion is valid.

    6. Re:I sympathize with you. by Grishnakh · · Score: 1

      You're forgetting some even worse actions on MS's part: they funded SCO (through Baystar) to wage a baseless FUD campaign against Linux, demanding (extorting) money for Linux "licenses" with their "SCOsource" initiative. Basically, MS used SCO to fight a proxy war.

      Add to this their baseless patent threats against Linux, and you have some really nasty, unethical, and downright illegal behavior on MS's part in an attempt to kill Linux. So for all you anti-fighting people, this isn't one-sided.

    7. Re:I sympathize with you. by Grishnakh · · Score: 1

      THAT is the problem. Stop trying to FIGHT Microsoft. Start making better software.

      Um, that's exactly what they're doing, or at least trying to. It's not like they're buying up AK47s and cases of ammo and preparing to storm Microsoft HQ.

    8. Re:I sympathize with you. by Blakey+Rat · · Score: 1

      Yeah, but it would be nice if they did it without the constant penis-measuring.

      How many times have you pointed out a bug or deficiency in Linux, and the instant knee-jerk reply is, "well that doesn't work well in Windows either!!!" What's the attitude here? That Linux doesn't need to bother fixing X if Windows also does X poorly? That makes no damned sense.

    9. Re:I sympathize with you. by Grishnakh · · Score: 1

      Yes, but remember the bar is being set by MS at this time since they have 95% marketshare or so. So while it's definitely nice when Linux does something much better than Windows, you have to place priority on achieving parity in all aspects of Windows vs. Linux so that more people can switch. It doesn't help if you spend all your time optimizing some little feature to be 100% better than Windows instead of just the same, when there's some other major problem that's going unfixed and causing people to have to use Windows. There's only so many resources.

    10. Re:I sympathize with you. by BitZtream · · Score: 1

      None of those things were invented by Linux, sorry to disappoint. Both are copying older OSes. Which is fine, but don't try to say Windows is copying Linux, its not.

      Bell UNIX, sure. IRIX sure, Solaris Sure, OS X, yep, NextStep, without a doubt.

      Linux, no.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    11. Re:I sympathize with you. by Korin43 · · Score: 1

      Sorry, i guess I should've said "Windows 7 copies GNOME", which I always think of as "Linux" since it's the desktop environment I use. For some reason I doubt that Compiz or anything similar runs on Unix. The folder setup I was thinking of was GNOME's "Documents", "Music", etc. instead of "My Documents", "My Music", etc. Similarly, GNOME has had something like UAC for forever, which is helpful because Linux programs have always written with the assumption that they won't be run as root (except for programs meant to be used by root).
      Compiz does have at least one effect that I assume was stolen from OSX (the scale/Expose effect), but judging from this, compiz has quite a few effects that don't exist on OSX.

    12. Re:I sympathize with you. by BitZtream · · Score: 1

      GNOME didn't invent UAC, at a minimum you should have used sudo as your example since it was around before GNOME or UAC and is almost a direct equivalent for the command line, but it wasn't first. Both are essentially versions of su that work with the users own password rather than the root password directly.

      http://en.wikipedia.org/wiki/Su_(Unix)

      OSX didn't event frilly desktop effects, NextStep and IRIX both had them before OSX existed. IRIX used an OpenGL desktop with effects in 1988.

      I'm not arguing which is 'better', just that they invented well before Linux was even a gleam in Linus' eye. The newer remakes are certainly more advanced.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    13. Re:I sympathize with you. by RogerWilco · · Score: 1

      Have you been paying attention? If anything MS and Linux are both trying to copy from Apple. Neither are doing a good enough job though, mainly because of design flaws in Windows and the attitude of the LKML and how fragmented both are.

      --
      RogerWilco the Adventurous Janitor
    14. Re:I sympathize with you. by ukyoCE · · Score: 1

      Agreed. I can only hope they fixed some of the worst command line behaviors in Windows 7, maybe that could become usable too...

    15. Re:I sympathize with you. by Korin43 · · Score: 1

      Yeah like that time Xerox stole the idea of a GUI from Apple, then Microsoft stole the idea of a two button mouse from Apple, and then even stole the idea of a journaled filesystem! And then GNU steals the idea to use Mach as a kernel and BSD steals the idea of using the BSD userland.. Where will it end??

  30. C Byte Code by Midnight+Thunder · · Score: 2, Funny

    If I don't care about performance I can already write in Perl, Awk, Python, Tcl, or something. Why do I want to put up with Java?

    Well maybe what we could use instead in C byte code, or some other form of byte code, and then have on the JIT low-level compilations.

    My first reaction to FatELF was that it is a good idea, since it works on the Mac. After listening to the issues people bring up with the large selection of CPU architectures I can understand this issue. On the other hand, why not allow ELF to support multiple architectures and let the 'market' decide if they want it? In a worst case scenario, it is just minor over-head that doesn't really impact anything.

    --
    Jumpstart the tartan drive.
    1. Re:C Byte Code by argent · · Score: 1

      Well maybe what we could use instead in C byte code, or some other form of byte code, and then have on the JIT low-level compilations.

      Even with good JIT you're looking at a factor of 2-5 performance hit.

      And the "CPU architecture" issue is a red herring. We need FatELF for i386/x86_64 desktops, not for embedded processors.

    2. Re:C Byte Code by david.given · · Score: 1

      Well maybe what we could use instead in C byte code, or some other form of byte code, and then have on the JIT low-level compilations.

      You may be interested to look at TenDRA. It's a BSD-licensed C and C++ compiler that compiles into portable bytecode which gets translated into native machine code at install time --- so you install a generic package that will then run on anything (that has a TenDRA package installer on it).

      It never really took off, for reasons that are a bit obscure to me. I certainly found the source code for the compiler totally incomprehensible when I looked at it, even more so than gcc; and that's saying a lot. I've certainly never seen it used anywhere, even in a world that's so desperate for a BSD C compiler that they've even resurrected pcc.

      There are revival projects at tendra.org and ten15.org but they're both borked right now.

  31. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 3, Insightful

    For grandma who has a netbook running an ARM processor, and a desktop or laptop running a x86 processor, its probably a little different, don't you think?

    No because a package manager makes it easy to install software for the current arch. Even grandma doesn't benefit from having x86, AMD64 and arm binaries in a single package, much less from some random untrusted binary she downloaded from the internet.

  32. You want people to quit whining about RPM? by argent · · Score: 1

    We have application makers who provide a binary installer for the Windows platform, yet hand Linux users a completely unpackaged BZ2 Type Tarball and say "Good luck!"

    That's because you don't have to descend into the hell that is rpmbuild, which was a pile of rotting dingo fetuses ten years ago and hasn't gotten one bit better since.

    It's long past time that they gave up that ghastly binary blob and defined a new "rpmx" format, that would look kind of like this:

    A gzipped or bzipped tarball, containing:

    1. a directory "common", containing roughly what you currently get from rpm2cpio.
    2. a file "common.files", containing processed and massaged %files
    3. a file "common.pre", containing %pre
    4. a file "common.post", containing %post ... etc
    N. a directory "i386" and "i386.files" etc, containing the platform specific x86 stuff
    N+1. same for "x86_64".

    No weird binary format. No spec file full of a decade and a half of broken historical cruft. No requirement that you set up a chrooted environment to be sure you've got a clean environment for building the frigging RPM. Build it in perl or your scripting language of choice (even with a Makefile and shell scripts if you're old-school).

    1. Re:You want people to quit whining about RPM? by argent · · Score: 1

      Are makefiles and shell scripts considered "old school" nowadays?

      Oh yeh, if it doesn't have lot's of <angle brackets> it might as well be bronze helmets and ox ploughs. :P

  33. "That's a stupid idea" vs. "You are stupid" by wowbagger · · Score: 2, Insightful

    The issue wasn't that there were lots of people saying "That's a stupid idea" or "That's a stupid implementation of an otherwise good idea."

    The issue was lots of people saying "You are stupid."

    There is a big difference.

    I'd weighed in on this, because in the embedded systems I design this actually would have been useful - I have to support different processor types with what is, ideally, the same software load. (Just because MY embedded systems are much larger than some 4-bit microcontroller running 16K of code doesn't make them any less embedded.) People called ME stupid - not "That's a stupid design" or "That's a stupid reason to want FatELF", but "You are stupid."

    Yes, developing a thick skin, so that when somebody says "That's a stupid idea" you realize that it is the IDEA, and not YOU, that they are criticizing, is important to any engineer.

    But at the same time, saying to somebody "You are stupid" just because you don't like their idea, or don't see how it applies to your needs, is immature and unprofessional.

    1. Re:"That's a stupid idea" vs. "You are stupid" by RiotingPacifist · · Score: 1

      Links or it never happened!

      --
      IranAir Flight 655 never forget!
    2. Re:"That's a stupid idea" vs. "You are stupid" by microbee · · Score: 1

      Yeah, otherwise the GP's comment is stupid.

    3. Re:"That's a stupid idea" vs. "You are stupid" by JohnFluxx · · Score: 1

      How did this get modded up to +5 without a single bit of support for his claim that the kernel developers were calling him stupid?

  34. Re:Wait, what does Con Kolivas have to do with thi by nxtw · · Score: 1

    Windows has had them since DOS, although no one uses them.

    Is it possible to have a single Windows executable with both x86-64 and i386 code?

  35. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    Except this seems to be the only place that doesn't acknowledge the usefulness of fat binaries.

    Well, please explain what would the usefulness be.

    Especially when the two architectures most people care about is i386 and amd64, and the former works perfectly fine on the later.

    Windows has had them since DOS, although no one uses them.

    That would seem to point to that the idea wasn't really useful in that case

    OS X has them

    But it went through a considerable architecture shift from one CPU to another that was incompatible. It isn't the case with amd64, you can ship an i386 binary and it'll work.

    Then ... once you have them and use them for a while you come back and say 'hey, thats a really good idea'.

    Well, please explain, what benefit do you see coming out from this?

    People who are anti-closed source need to just go hide in a cave somewhere and talk about when the revolution is going to come. There will be a place for closed source and open source, side by side for the foreseeable feature. Trying to deny that is only hurting yourself.

    All distributions I know of ship 32 bit libraries. The developer can just ship an i386 binary, and it'll work. So what does this improve?

  36. Fat Elves Sue Keebler by Dareth · · Score: 2, Funny

    It has been reported that a law suit was filed against Keebler corporation by a group of fat elves.

    Their spokes person was quoted as saying,"It's *mmmm* their fault, these cookies *numnumnum* are just too good!".

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  37. Why did he even talk to the kernel people? by pclminion · · Score: 2, Interesting

    I don't understand what the kernel has to do with any of this. Fat binaries can be (almost) completely implemented at the userspace level by extending the dynamic loader (ld-linux.so). The way this would work is that the fat binary would have a boilerplate ELF header that contains just enough information to convince the kernel to load it and launch its interpreter program, which could piggyback on the standard dynamic loader. The fat binary interpretter would locate the correct architecture within the fat binary, map its ELF header into memory, then call out to the regular dynamic loader to finish the job. The only hitch is that a 64-bit kernel will refuse to load a 32-bit ELF, and vice-versa, so you would need an EXTREMELY minor patch to the kernel to allow it to happen. I mean like a one-liner.

  38. Re:Whaaaaaaa ?? DISCONTENT IN THE RANKS ?? by morgauxo · · Score: 1

    That happens from time to time when you are allowed to have separate brains. Pretty alien concept for Mac fanboys I'm sure.

  39. Re:Wait, what does Con Kolivas have to do with thi by morgauxo · · Score: 1

    I don't have a 64 bit system. I do have multiple ARM devices and 32 bit systems.

  40. Re:Story of binary compatibility is short and trag by kill-1 · · Score: 2, Insightful

    But the lack of universal binaries is not the reason why it's hard to release closed source software on Linux.

  41. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    There are places this would be very useful to have. Anytime we're distributing binaries to users, hosting binaries on a network file share, or carrying portable media, it's a big pain in the butt to maintain completely separate architecture trees. In some cases it wastes a lot of space too if there's significant data files along with the executables, because we generally wind up replicating that in each arch install tree.

    If your architectures are i386 and amd64 then you can just ship i386 and not bother with this at all.

    If you're shipping something like Linux PPC or Sparc binaries, you're very, very unusual. You could also ship a shell script that runs the right binary, which may not be as cool, but should work just as well.

  42. Re:Wait, what does Con Kolivas have to do with thi by icebraining · · Score: 1, Troll

    Tell me how an Apple developer can run a server allowing the client to select the program and it'll download and install the correct version, like Debian repositories. That problem has already been solved, and the solution is better (it also gives you plenty of other features).

    Oh, and closed-source companies can have their own repositories too. Example: http://download.skype.com/linux/repos/debian/

  43. Re:Wait, what does Con Kolivas have to do with thi by coolsnowmen · · Score: 1

    If what you said was correct (which it is not), then why would intel/amd stop making 32 bit chips, as they are concerned only with processor efficiencies (and not RAM).

    32bit is only more memory efficient than 64bit. It is not computationally so.

  44. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    Ok, but what do you expect to come out of this?

    For instance, suppose this patch goes in. But you won't get an i386/amd64/ARM binary from me, because I don't have an ARM system, so I won't compile for something I can't test. Some architectures have things like alignment requirements. Not all code will work everywhere even if a binary for the platform can be produced. Different byteorder will require writing code that will correctly read data files on all platforms.

    And why would you want code for 8 different architectures on a low power device that has a much more limited amount of space than a desktop?

  45. Re:Story of binary compatibility is short and trag by adisakp · · Score: 1

    I agree. I never said universal binaries were the problem -- rather, it's the lack of binary compatibility. It's the whole "source compatibility" / "binary incompatibility" that gives the win to Windoze over Linux in the gamine world.

  46. Re:Story of binary compatibility is short and trag by Ash-Fox · · Score: 1

    Think IT guy who works on fifteen different architectures, has a "universal" USB stick, and walks up to a random guy in his office without having to figure out what platform the random guy is on in order to fix his problem. Do you think /he/ would like this?

    Don't even need the USB stick, the package manager will install the right version and correct architecture for him. All he has to do is tell it that he wants program X installed.

    Simple, no?

    --
    Change is certain; progress is not obligatory.
  47. Re:Isn't someone going to ask ... by Jaysyn · · Score: 1

    Ryan Gordon does. He's ported a metric buttload of commercial apps for Linux. See Loki games & icculus.org for more information.

    --
    There is a war going on for your mind.
  48. Rejecting solutions to problems by Eric+Green · · Score: 1
    Actually, not a solution in search of a problem. The fundamental problem is allowing program installation on a shared disk for use by networked workstations despite the various systems using that disk being of varying types. You cannot solve that with package management because you need all packages installed at the same time -- i.e., your Emacs binary must run on x86, amd64, sparc, whatever and you simply cannot install three different packages from three different architectures onto the same file server and then mount that share as the /usr/local share of your workstation network, it just does not work because the binaries will conflict. The issue is that this is only a problem if you are wanting to deploy Linux on the desktop in a network installation similar to the old Unix networked workstations of yore, and the desktop is a place where the current Linux developers don't really care (see XKCD #619). It is extremely frustrating to me to see Linux developers reject the experience that we Unix old-timers have regarding how to reduce the management and maintenance costs of large networked deployments of workstations simply because a) it was Not Invented Here (in the insular incestuous Linux world), and b) because they don't care about the workstation in the first place other than perhaps as a stand-alone workstation as home, certainly not corporate deployments of workstations, which bore them utterly.

    It's the same reason why Android is a user interface disaster compared to the iPhone and Palm Pre -- geeks thinking like geeks, instead of geeks thinking like users. The package management thing is a hack, a hack which is useful only on stand-alone servers or stand-alone workstations and utterly useless at getting workstation administrative costs down, which requires a networked software installation and where fat binaries mean you install *one* package rather than needing several different filesystem shares with multiple package installations that are largely identical. But workstation administration costs, while a concern for users of Linux, aren't a concern for core Linux developers because they don't know, understand, or care about the workstation other than their personal development machine at home. So it goes.

    --
    Send mail here if you want to reach me.
    1. Re:Rejecting solutions to problems by amorsen · · Score: 1

      Right, so you put x86 + SPARC + whatever binaries in both 32-bit and 64-bit flavours into one executable... As I said, VERY fat elves. Even if you could generate those binaries in the first place, which you can't, because you'd need cross compilers for every architecture.

      In other news, you can probably afford to upgrade your 20MB disks in the workstations to say 500MB so that your binaries will fit locally. No longer will your users have to wait 30 seconds for ed to load across the 10Mbps ethernet.

      --
      Finally! A year of moderation! Ready for 2019?
    2. Re:Rejecting solutions to problems by Eric+Green · · Score: 3, Interesting
      Regarding compiling, anybody doing cross-platform development by definition has the compilers to produce binaries for those platforms. Cross compiling is not needed as long as you have a tool capable of tagging ELF hunks and concatenating them together into "fat" binaries and "fat" libraries. We've been there, done that, it's a solved problem, your software repository is on a NFS share, you compile to an architecture-specific directory on each of your platforms to create individual binaries that are to be turned into fat binaries and libraries, then on the platform with the fat binary tools you run them to assemble the architecture-specific stuff into actual binaries (thanks to ELF's hunk-based mechanism for assembling multiple hunks into one binary, of which unknown hunks are ignored). At one point Apple was actually doing this for three different platforms, before realizing that dropping PowerPC support for Snow Leopard would sell more Intel Macs. In a prior job we had a compile lab of 20 different machines running different architectures or OS versions that we fired up to create the final build, each machine dropped its driblets into the proper place on the NFS share, then the final build machine put it all together into the release package (note that this was not a setup based on fat binaries but the build process works the same for fat binaries with the exception that the final build machine does a bit more work). It's called professional Unix development, and we were doing it decades ago, long before Linux existed.

      Regarding hard drive and network speed, in today's world of gigabit to the desktop and 10 gigabit backbones and 2 terabyte hard drives I don't know what you're talking about with "10 megabit" and "20 megabyte" cracks. You do realize that the primary expense in a networked workstation environment is administration, not hardware, right? The proper use for local hard drive in a networked workstation environment is for caching, not for software installation. We knew this truth about workstation management twenty years ago, but for some reason it has been forgotten in a world where Microsoft and their deranged horribly expensive and virtually impossible to manage workstation environment seems to be the model for how to do things. How many years of IT experience did you say you had, again? :).

      --
      Send mail here if you want to reach me.
    3. Re:Rejecting solutions to problems by Homburg · · Score: 1

      our software repository is on a NFS share, you compile to an architecture-specific directory on each of your platforms to create individual binaries that are to be turned into fat binaries and libraries, then on the platform with the fat binary tools you run them to assemble the architecture-specific stuff into actual binaries

      Or, you could do the same thing, and then not combine the architecture-specific binaries into one fat binary, but use standardized install locations and an automatically generated shell script, instead. I don't see what the big win for fat binaries is.

    4. Re:Rejecting solutions to problems by amorsen · · Score: 1

      Managing binaries on local workstation drives is trivial with package handling. You're stuck in the world of 20 years ago. Should the workstation somehow fail, PXE + automatic installation will have it back up in a few minutes.

      --
      Finally! A year of moderation! Ready for 2019?
    5. Re:Rejecting solutions to problems by Eric+Green · · Score: 1

      Sounds to me that you are rejecting an idea that was time-tested and proven decades ago and is just as applicable today as it was then simply because it was "not invented here" (where "here" is the microcomputer / Microsoft-centric world). Which is EXACTLY the attitude I was talking about. Sometimes daddy really DOES know best. You'll learn this. Eventually. When you're grumbling to some young sprout, "blankety-blank know-it-all whippersnappers refuse to listen to the hard voice of experience!".

      --
      Send mail here if you want to reach me.
    6. Re:Rejecting solutions to problems by amorsen · · Score: 1

      I remember those days you are talking about, with networked workstations. It isn't something I want to go back to, ever. Sure, the PC world was even worse, but beating DOS isn't really much of a challenge.

      Workstations are dead anyway, new computers are portable. It isn't worth optimizing anything for those stuck in the early 90's.

      --
      Finally! A year of moderation! Ready for 2019?
  49. Re:Wait, what does Con Kolivas have to do with thi by hairyfeet · · Score: 1

    Don't forget one of the problems I've complained about Linux for ages, only to get told "researching your ass off" is actually a better "feature"...Driver Cds. Maybe if you had fat binaries it would finally give Linux a stable ABI and we would finally see a "fat penguin" on the box of devices at the local Walmart/Best Buy/Staples and retailers like me could finally carry your product.

    As it is shopping for Linux devices at retail is a fricking nightmare, as by the time anything ends up on some approved list somewhere it usually isn't sold in stores anymore, or Deity help you if the approved device has firmware A and they have moved on to firmware G without changing the box (which of course they do all the time) as you can enjoy your new paperweight. It is just too damned hard to sell Linux when your customers are Joe Normals that shop at Walmrt. with Windows all I have to do is tell them to look for the logo and my after sale device support costs drop to zero.

    So if fat binaries would have finally allowed devices to show up with a fat penguin on the box I would have been dancing in the streets, of course its dead now so we'll never know. But until Linux is as easy to shop for as Windows and OSX at retail, which I truly believe won't ever happen without a stable ABI and easy to place "Linux 32/64" drivers on driver discs, well then Linux will always be the OS for geeks with a single digit adoption rate. Because Joe Normal isn't gonna study his ass off doing research just to buy a device at the Wally World. Just ain't gonna happen, and without Joe there will NEVER be a "year of the Linux desktop".

    --
    ACs don't waste your time replying, your posts are never seen by me.
  50. Re:Story of binary compatibility is short and trag by jedidiah · · Score: 1

    ...except that guy only has to worry about ONE architecture because of the lock in nature of commercial desktop software.

    So the moment he leaves the server room he needs only ONE option.

    If he plugged in such a USB drive inside the server room he might get immediately walked out of the building.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  51. Re:Universal binaries? How about universal install by jedidiah · · Score: 1

    You mean like something along the lines of what Loki or WordPerfect used 10 and 15 years ago or what Oracle uses today?

    We are comparing proper package managers against competitors that are essentially dressed up shell scripts.

    The enemy emperor has no clothes. Never had.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  52. Silly by wasabii · · Score: 1

    This is silly. Nobody even distributes Linux binaries. They distribute Linux packages. Hell, even on Windows, the number of distributed .exe's has gone down. Most things get packaged into MSI. This is fine.

    Maybe what he wants is an easier way for developers to package their stuff for many distros.

  53. Re:Isn't someone going to ask ... by Anonymous Coward · · Score: 1, Insightful

    While I won't disagree that commercial games is a potentially valid argument, let's take a step back for a minute. Most commercial games that would benefit from this (i.e., the ones that are flashy and have big advertising budgets) are likely to require certain hardware capabilities (processing speed, graphics capability, high-end sound) to operate well. You might be able to force a lower-end system to run it, but NO game developer spends time optimizing the experience on crappy hardware, it's just not cost-effective for them. So they have hardware requirements, and chances are that is going to mean running on an Intel CPU, with an ATI or Nvidia GPU and some sort of decent sound processor. Don't try to tell me you seriously think that the latest FPS or MMO should run on your ARM netbook - that's not what they're designed for and we all know it.

    So that leaves the question of x86 vs. x64 binaries, and I just don't buy any argument that it's too much work to make companies build both (or just stick with 32-bit and be done with it). NO modern game comes without a comprehensive installer, and most have internal updaters as well, so having them pick 32 vs 64 bit as appropriate is a perfectly reasonable thing to do. Even with high-speed Internet do you really want to download files that are twice the size you need them to be just so they can run on hardware you don't have?

    And if you're trying to make the case for small, indie game developers being able to supply a 'universal binary' so make it available on more platforms, I ask you this: If they can't afford to have all of the different architectures available for development, testing and troubleshooting, what makes you think they're going to want to provide an sort of binary to run on those architectures? I don't even want to think about the headaches (and karma losses) that devs would go through trying to support platforms that they can compile for but not actually run on...

    Universal Fat Binaries have a single problem they are meant to solve: How to provide a single version of a close-source program for proprietary OS that is currently shifting from one hardware platform to another in a manner that is supposed to be transparent to the user. MacOS has done it twice - M68K->PPC, and PPC->x86 (I don't consider x86->x64 in the same way, because a proper x64 OS will run x86 32-bit binaries seamlessly anyway). I was off of Macs by the time they went Intel, but was right in the middle of the M68K->PPC shift and think it was handled pretty well. But that's because a) the hardware options for the platform were highly fixed to begin with, b) the development environments for the platform were fairly limited as well, and c) EVERYONE knew that while Fat Binaries were intended to make the transition easier, they were not a permanent thing and eventually M68K support would be dropped and everything would be PPC only.

    In case you missed that, I'll repeat it on its own: Fat Binaries are designed to TEMPORARILY support a TRANSITION from one architecture to another, and after a time they STOP SUPPORTING THE OLD ONE and go back to being thin.

    Linux already supports something like this, in that multiple major versions of shared libraries are supported on the system for when there's an ABI change. But there's no reason to support Fat Binaries for different hardware architectures because a) Since the OS is open one is not locked into vendor-specific hardware, and thus vendor specified architectures that can be changed AND enforced, and b) there is no major architectural hardware transition in process that is likely to affect the consumers who would be the likely targets of this change. People buy hardware these days because the software they want to use runs on it. Even if a company were to offer Fat Binaries for multiple architectures, people would buy the one that will run the most software they want to use, and unless EVERYONE produced Fat Binaries for Linux people would STILL buy Intel systems because that's what most of the so

  54. Re:Story of binary compatibility is short and trag by ckaminski · · Score: 1

    If I remember correctly (and bear with me, the 90's are a blur for me), this is EXACTLY what happened, and early pthread libraries had to do a whole bunch of kludges using signals and timers to get user-space threading on Linux.

    It took years (maybe an exaggeration, it sure felt it at the time) to get proper threading support in Linux because fork() was good enough. 1996-1998 timeframe perhaps.

    Maybe not in so many words, but yes, this happened. And some of it's justified - don't go putting immature stuff into the mainline. Well seems like they (LKML) apply that rule very inconsistently.

  55. Re:Story of binary compatibility is short and trag by Ash-Fox · · Score: 2, Insightful

    This guy worked in the closed-source world of video games where it's often not even legal to share your source code (due to middle-ware licensing and trade secrets) and even when it is legal, it's often not feasible for business or gameplay reasons (competitive coding advantage, preventing cheating hacks, disallowing "free content" mods, etc).

    I have built cross-distro binary-only applications before.

    Some notes on doing so:

    Make sure you compile, link against a old version of glibc, this prevents issues of running applications built against newer versions of glibc spitting out "undefined reference errors" on systems with older glibc (much like when you compile a windows program against the winvista platform sdk and try to run that program on XP).

    If you must link against the C++ runtime library (libstdc++), then provide a custom version of it with your software. That's about all you need (much like how many Windows applications come with the msvc runtime dlls they were compiled against).

    This is legal, no source requirement (outside of providing the source to libstdc++ when requested - which wouldn't reveal anything).

    It's exactly this reason that high-end cutting-edge games and other closed-source software will NEVER be viable on Linux unless there are major changes to the entire model of gaming development.

    I honestly don't see how this is a substantial difference from Windows, could you explain it better, please?

    --
    Change is certain; progress is not obligatory.
  56. Re:Wait, what does Con Kolivas have to do with thi by DragonWriter · · Score: 1

    Except this seems to be the only place that doesn't acknowledge the usefulness of fat binaries.

    What usefulness? Fat binaries take all the work of producing individual platform-specific binaries to create, and present little advantage in use compared to having an installer or packaging system that installs the right binary from the set for the given platform.

    Even for the few environments (such as where you share a filesystem with executable binaries between systems with different architectures) where they might be useful, on any system where executable interpreted scripts can be made indistinguishable from the end-user perspective to actual binaries, they offer no advantage over having a set of installed binaries for the various architectures with an executable launcher script.

  57. Good question... by zooblethorpe · · Score: 1

    Can you remind me again of the advantages of such fat binaries over a tar/deb/rpm file with multiple binaries? Thank you.

    icebraining here brings up a very salient point -- if the whole reason for fat binaries is simply distributing multiple versions of application X, one for each target platform, all in one package, it seems to me that we already *have* such a mechanism...

    Which leads me to ask, what am I missing here? Or is the FatELF project really a solution in search of a problem?

    Cheers,

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
  58. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    Don't forget one of the problems I've complained about Linux for ages, only to get told "researching your ass off" is actually a better "feature"...Driver Cds. Maybe if you had fat binaries it would finally give Linux a stable ABI and we would finally see a "fat penguin" on the box of devices at the local Walmart/Best Buy/Staples and retailers like me could finally carry your product.

    No, it wouldn't.

    The userspace ABI is stable. But that's not where drivers are. Drivers are in kernel space, and the stability or lack of it would remain unchanged by this development.

    As it is shopping for Linux devices at retail is a fricking nightmare, as by the time anything ends up on some approved list somewhere it usually isn't sold in stores anymore, or Deity help you if the approved device has firmware A and they have moved on to firmware G without changing the box (which of course they do all the time) as you can enjoy your new paperweight. It is just too damned hard to sell Linux when your customers are Joe Normals that shop at Walmrt. with Windows all I have to do is tell them to look for the logo and my after sale device support costs drop to zero.

    I have right now: a nice color laser printer, a very decent scanner, and an old webscam by brother can no longer use but that I can, because he upgraded to XP64, which comes with no drivers for any of those. Meanwhile, Linux supports all that perfectly fine.

    In fact my brother bought a new scanner that looks near identical to the old one. As far as I can tell any improvements if they exist at all are insignificant.

    So, Windows has a stable driver ABI, why doesn't all that stuff work? Because it works so much better for the manufacturer to make you buy a new product instead.

  59. Re:Story of binary compatibility is short and trag by crispytwo · · Score: 1

    I disagree

    For the most part, the game engine is quite separate from the game-script in modern game development and can be compiled independently for each system, and run the same scripts.

    I understand what Ryan was trying to do, but, to be fair, is a low-level solution that a higher level solution could do instead... i.e. make it a desktop environment fix rather than a kernel fix.

    closed-source software is viable on Linux from the hardware/software point of view.... it seems it is the user-end that is missing from the purchasing stream. I've purchased and played (many of) the games Ryan has helped port to Linux. I'm glad he did them.

    As far as rudeness and smugness goes, there's no need for that. I think it is quite sad that there is so much disrespect floating around.

  60. Re:Story of binary compatibility is short and trag by ckaminski · · Score: 1

    No, that major reason is publisher effort, and the inconsistency of video driver support. And the first will never happen without the latter. Oh, and most games being written in DirectX.

    Kudos to anyone still writing in OpenGL.

  61. Whatever happened to "everything is a file"? by zooblethorpe · · Score: 1

    My objection is that any such hierarchy of data could be stored as files.

    Linux needs tools so that a directory can be manipulated as a file more easily. For instance cp/mv/etc should pretty much act like -r/-a is on all the time, and such recursive operations should be provided by libc and the kernel by default. Then programs are free to treat any point in the hierarchy as a "file". A fat binary would just be a bunch of binaries stuck in the same directory, and you would run it by exec of the directory itself.

    I've often wondered about that -- what usefulness is there in trying to mv or cp a populated directory *without* the -r/-a flags? Is this some Unix appendix, a leftover with no remaining useful function? Or is there some residual utility in requiring the flags, that I'm simply unaware of? Seriously, if anyone has any insight, by all means please post it.

    And being able to set a directory itself as executable (such that the contents are run) sounds an awful lot like what Apple's done with their .app packages -- but there I have to wonder if there might not be some security implications.

    Cheers,

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
    1. Re:Whatever happened to "everything is a file"? by goose-incarnated · · Score: 1

      My objection is that any such hierarchy of data could be stored as files.

      Linux needs tools so that a directory can be manipulated as a file more easily. For instance cp/mv/etc should pretty much act like -r/-a is on all the time, and such recursive operations should be provided by libc and the kernel by default. Then programs are free to treat any point in the hierarchy as a "file". A fat binary would just be a bunch of binaries stuck in the same directory, and you would run it by exec of the directory itself.

      I've often wondered about that -- what usefulness is there in trying to mv or cp a populated directory *without* the -r/-a flags? Is this some Unix appendix, a leftover with no remaining useful function? Or is there some residual utility in requiring the flags, that I'm simply unaware of? Seriously, if anyone has any insight, by all means please post it.

      And being able to set a directory itself as executable (such that the contents are run) sounds an awful lot like what Apple's done with their .app packages -- but there I have to wonder if there might not be some security implications.

      Cheers,

      Setting a directory +x allows "cd $DIRNAME", not necessarily "./$DIRNAME/foo".

      Doing "cp *pattern* new-folder" allows me to copy only the files, not the directories, that match pattern.

      --
      I'm a minority race. Save your vitriol for white people.
    2. Re:Whatever happened to "everything is a file"? by zooblethorpe · · Score: 1

      Hello goose-incarnated, thanks for the reply --

      Yes, as things currently stand in most of *nix land, +x on a directory simply allows you to enter it. Apple has added some other magic to make the "directory" executable, as it were, probably by executing a specifically-named file therein. I'm not familiar enough with OSX to know what that might be...

      Good example for using cp where a default -r would screw things up; thank you for that.

      Cheers,

      --
      "What in the name of Fats Waller is that?"
      "A four-foot prune."
  62. Re:Wait, what does Con Kolivas have to do with thi by epine · · Score: 1

    Things get rejected from the kernel all the time -- because not all things are good, useful, well coded, or solve a problem that needs solving. It's not new in any way.

    There's a view the world according to father knows best. And I'm sure it's true much of the time or the project would have foundered long ago.

    I'm also sure that worthwhile patches fall through the cracks, personalities matter in how the decisions are made, and the communication of the decisions made often falls far short of the ideal, wasting valuable time and energy of people who wished to make a positive contribution.

    That said, Con is not my personal poster child for the unfairly rejected: he seems to understand neither software engineering nor macro economics in the large. For example, while Con's patches might improve things for the desktop user in the short term, if it comes at the cost of continued enterprise support for the people who continue to develop the kernel, the victory will be short lived; in this scenario, at the end of the day, *everyone* loses. Fair enough, one might say, at least it's equitable.

    The moral of this story as I read it is that he should have chosen his battle better in the first place, such as becoming a founding developer for Haiku, who likely would have embraced his audio-glitch-free window dragging aspirations as a founding precept of digital justice. From the Linux perspective, that enterprise machine that didn't see Con's reported glitches now looks like next year's entry model (welcome to Westmere). As a software engineer, one must cast an extremely critical eye on the carrying cost of modifications designed to avert a problem where there is already a great deal of writing on the wall.

    I'd say there's a good chance that same logic applies to fat binaries.

  63. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1

    FWIW, the driver situation seems almost by choice to be designed such that it works more smoothly when you have the source code for the drivers.

    Which as far as I'm concerned device manufacturers are crazy not to do... the best a driver can hope for is to simply not get in the way, yet hardware manufacturers seem to have a really hard time writing decent drivers that work correctly. It's not a competitive advantage, all it does is screw themselves over when I can't use their device. Why they want to turn down help from users who can fix their drivers for them is beyond me.

    So fat binaries would be of limited help for drivers... it's less of an issue for an installer to pick the right architecture to copy into place, as it is an issue that the Linux design philosophy is simply better suited for open source drivers. (which could be transparently compiled by the installer during installation for the target system)

  64. Re:Story of binary compatibility is short and trag by IICV · · Score: 3, Insightful

    You missed half the argument. It's hard, and it's pointless.

    The grandma who has a netbook running ARM and a desktop running x86 will install software by going into Add/Remove Programs and picking "Fun Times Photo Album for Grandmas" out of a list. The package manager will figure out what needs to be installed for her, on both her ARM and her x86 computers.

    She's not going to go to some random website and download a random installer file and use it on both her computers - her kids have told her over and over again that that's not safe, and she may lose her knitting patterns if she does it.

    Seriously, the people who advocate this junk seem to be entirely unaware of the joys of package management. All FatELF does is re-solve a problem that package management has had licked for a couple of years now, and it solves the problem in a less efficient way.

    It's hard, yes - but it's not worth doing just because it's hard.

  65. Re:Isn't someone going to ask ... by Hobophile · · Score: 2, Interesting

    Commercial Games. That's who.

    Exactly. Take Blizzard, who ships Windows and Mac versions of their games on the same media. Fat chance of getting an official Linux release in the absence of a universal binary solution. Blizzard tends to ignore platform-specific package formats in favor of their own installers, the better to control and customize the installation experience. By avoiding the standard MSI format on Windows, for instance, they avoid introducing a lot of unrelated dependencies and vastly simplify the post-release patching process.

    If you don't mind hacking around on the command line to get a game to work, the current state of affairs probably suits you just fine. But there's no business reason for Blizzard to support Linux users with an official release, if the best they could provide is a different set of command line inputs to type in. This of course assumes they would not develop installers for every Linux distribution on every compatible architecture, along with the necessary documentation and technical support for each. I think that's a fair assumption.

  66. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1

    you can just ship i386 and not bother with this at all

    that assumes the i386 libraries are in place, which as my original parent was just saying, isn't necessarily the case because often you can get everything purely 64-bit. (and as a side-effect of the earlier strawman, that CDs don't have room for both architectures, so only one is installed)

    Then no one wants to be that one 32-bit app which requires the user to install the whole set of 32-bit system libraries... especially as the whole point of a USB or net install is to avoid installing crap on every single machine you use.

    And besides, who wants to have to maintain a shell script and two+ executables for every application? It doesn't scale well. FatELF would be a straightforward solution to some real issues, I'm disappointed people couldn't give constructive criticism instead of getting hung up on a single use case (native installation) where's it's not *really* needed. I'm sure FatELF won't make you coffee either, doesn't mean it isn't helpful in other areas. (non-"installed" software)

  67. Re:Isn't someone going to ask ... by Mattsson · · Score: 1

    And most other commercial software too...

    If you pay for it, you'll probably end up with a binary. In the best cases, you get binaries for a whole bunch of different architectures and systems, like with Matlab...
    In the worst cases, you end up with a binary that will run on only one architecture.

    --
    /.Mattsson - My native language is not English, so please don't whine over linguistic errors. (That's lame anyway...)
  68. You need to stop being a nuthugger by ifwm · · Score: 1

    "So one of the developers in the project tracked and found the issue online for free"

    After many, MANY others failed to do ANYTHING useful.

    Yes, 15 shitty support attempts are no negated by one semi-successful collaboration that finds a problem.

    And just so we're clear, NO one of the developers DID NOT track and find the issue, try reading it again so you don't misstate what actually happened in support of your ridiculous attempt at a point.

    I seriously wish people like you would stop supporting FOSS, you don't add anything with your constant whining about how our legitimate concerns aren't fair.

  69. Re:Wait, what does Con Kolivas have to do with thi by nxtw · · Score: 1

    Not sure, but I think so. You probably best remember it from 15 years ago when you tried running a Windows 3.1 application in DOS and got "This program cannot be run in DOS mode"

    That still exists, even on x86-64 Intel executables. But that's not what I was asking about.

  70. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    that assumes the i386 libraries are in place, which as my original parent was just saying, isn't necessarily the case because often you can get everything purely 64-bit. (and as a side-effect of the earlier strawman, that CDs don't have room for both architectures, so only one is installed)

    There's no need to assume, you make a package. If they're needed, it'll fetch them

    Then no one wants to be that one 32-bit app which requires the user to install the whole set of 32-bit system libraries... especially as the whole point of a USB or net install is to avoid installing crap on every single machine you use.

    This is a weak justification. It's what already happens for everything else. If you install KMail on a gnome system you're going to get lots of KDE packages pulled in. In fact pretty much any non-trivial application will have quite a few dependencies. For instance, for me to install blender right now would take downloading 7 other packages. I don't really see anything wrong with that.

    And besides, who wants to have to maintain a shell script and two+ executables for every application? It doesn't scale well. FatELF would be a straightforward solution to some real issues, I'm disappointed people couldn't give constructive criticism instead of getting hung up on a single use case (native installation) where's it's not *really* needed. I'm sure FatELF won't make you coffee either, doesn't mean it isn't helpful in other areas. (non-"installed" software)

    No, it won't be. Because you can't just check "build for all 8 architectures" and leave it at that. You need to make your code portable, which involves endianess and alignment issues for a start. That's what will take the real work, the shell script is a tiny thing in comparison.

  71. Re:Isn't someone going to ask ... by Svartalf · · Score: 1

    FatELF binaries don't avoid this issue any better than any other solution, seriously. You still have to build/bundle custom, vetted runtimes that reside in a similar bundle on the install- and for each architecture you support. Done right, you end up with a set of binaries that runs on any modern distribution without major glitches. Unfortunately, you have to do the same effort for FatELF binaries as you would for the other way- and with no better assurances of "getting it right" with it as with the other means.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  72. 32 bit processes make sense on 32 bit OSs! by faragon · · Score: 1

    Running 32-bit processes on a 64 bit OS makes sense, in order to save memory on "normal" software that doesn't have pointer optimizations in mind (e.g. all software that use pointers instead of indexes).

    In my opinion, 32-bit processes it is not only a "must", but also having the tools build in 64-bit mode is a huge error. What's the problem of a 64-bit OS running most processes in 32-bit mode? In the end, there are just few processes that could need more than 2/3GB of memory, and the extra CPU registers doesn't make the difference, yet (1, 2).

    1. Re:32 bit processes make sense on 32 bit OSs! by vadim_t · · Score: 1

      Well, 64 bit mode lets you do things like mmapping large files. Such as DVD images for instance. I happen to think that's a pretty good thing to have.

    2. Re:32 bit processes make sense on 32 bit OSs! by faragon · · Score: 1

      So use 64 bit for these cases. The point is not to use or not 64 bit processes, but stop using it when it is unnecessary. As example, on a 20$/month VPS machine (Xen, 256MB, 10GB disk) it could make sense a 64 bit OS, still will 256MB of RAM, but it is stupid to build the utilities in 64 bit mode, because it is a waste of resources (mainly RAM).

    3. Re:32 bit processes make sense on 32 bit OSs! by vadim_t · · Score: 1

      I doubt you'll save much RAM on that. You'd be better off sticking to one architecture exclusively.

      The moment you start a 32 bit app on a 64 bit system you've got to load the 32 bit version of glibc, as well as every other library the program uses. You'll probably lose more with that than you'll save with the smaller pointers.

      Having two versions of everything will also take more disk space. On a 10GB limit, an extra 300MB can be quite significant.

    4. Re:32 bit processes make sense on 32 bit OSs! by faragon · · Score: 1

      I doubt you'll save much RAM on that.

      Usually between 10 and 50%, depending on the code.

      The moment you start a 32 bit app on a 64 bit system you've got to load the 32 bit version of glibc, as well as every other library the program uses. You'll probably lose more with that than you'll save with the smaller pointers.

      That's a very good point. Obviously, in a limited resource context, as the 256MB VPS I pointed before, the optimum is to use a 32-bit OS (it could make sense a 64 bit OS in case you need it for specific 64-bit integer computing or memory mapping related problems).

      Having two versions of everything will also take more disk space. On a 10GB limit, an extra 300MB can be quite significant.

      300MB is irrelevant, still when having just 10GB.

    5. Re:32 bit processes make sense on 32 bit OSs! by Grishnakh · · Score: 1

      On the AMD64 architecture, it's much faster to run a 64-bit binary rather than a 32-bit one, because in 64-bit mode there's a lot more registers. x86 is a register-starved architecture. This problem obviously doesn't apply to non-Intel architectures.

    6. Re:32 bit processes make sense on 32 bit OSs! by faragon · · Score: 1

      The benefit from passing from 8 to 16 general purpose registers is very little, and often, counterproductive, as total "true registers", the ones used for register renaming in OoOE remain the same, so with twice the general purpose registers, you halve the renaming register pool. That was specially noticeable in firsts AMD64 CPUs, and *very* noticeable on Intel Pentium D CPUs (Pentium 4 with x64 support and other minor changes), acusing of insufficient register pool volume for the OoOE operation in x64 mode. Newer CPUs, having a higher pool of registers, have less impact when executing x64 code.

  73. Re:Story of binary compatibility is short and trag by Svartalf · · Score: 1

    Or...conversely, you can use something like apbuild from the AutoPackage project to do the same sort of pinning on most machines without the old version being needed.

    The magic trick with all of this would be to do something within Scratchbox2 (to mitigate compiler issues and frame it in so you can do things like 32/64-bit easily, or ARM in the same manner...) and use apgcc/apg++ to pin glib version numbers.

    "Lack of unified package management" is another good "excuse" they use- in the end, you don't need unified package management, you need something akin to MojoSetup (Something else that Ryan's come up with that's definitely a must-try for a game studio doing things on Linux...) to handle installing if you're not providing "universal" .deb's or .rpm's (which can be done as well...)- and it'll handle much of what you need of it, especially if you know what you're doing with things on the Linux side of things.

    In the end, there's less issues than most people realize there are with making games for Linux. It's more due to unfamiliarity and ignorance of how to properly do things that the stuff doesn't get done- and the reasons for those are that the studios and publishers don't think there's enough money there to become educated on the subject. It's NOT due to the lack of "universal" binaries...

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  74. Re:Wait, what does Con Kolivas have to do with thi by Bo+Diddly+Squat · · Score: 1

    What he said is that on some other architectures 32bit is more efficient than 64bit. This is not true for x86, because they fixed some architecture shortcomings while implementing 64bit (more registers for example). Because of this on x86 64bit code is faster than 32bit code.

    On architectures like MIPS for example 32bit code is faster than 64bit code. This has to do with pointer sizes, which are bigger in 64bit and use more memory and more cache and take more bandwidth on the bus. So the 64bit code is slower.
    Usually the kernel is 64bit, but most of the libraries are compiled as both 32bit and 64bit. If you need more memory than 4GB, you compile as 64bit, otherwise you compile as 32bit. The increased memory size you can address is the only advantage of 64bit on systems like this.

  75. Re:Wait, what does Con Kolivas have to do with thi by Stu22 · · Score: 1

    Now teach grandma how to use it.

  76. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1
    You're back to assuming yum/dpkg package installation is the end-all and be-all of linux installation.

    At our university for example, we have the AFS network file system. I can put stuff in my network home directory and run it from a variety of lab and cluster workstations where I don't have time or permission to install a bunch of dependancies. But it's a huge pain in the butt when I sit down at a 32 bit machine and I had previously compiled some tool or library as 64 bit or whatever.

    So yes, FatELF doesn't really help dpkg or yum do their thing. That doesn't mean it isn't useful elsewhere.

    For instance, for me to install blender right now would take downloading 7 other packages.

    And on OS X I just download Blender directly from the website... very easy because it contains everything I need.

    As much as I appreciate the linux package system handling dependencies and installation of shared resources, whenever you're doing something *outside* of the packaging system it's a pain in the butt. *This* is where FatELF is handy.

    You need to make your code portable, which involves endianess and alignment issues for a start. That's what will take the real work, the shell script is a tiny thing in comparison.

    That's a side issue, completely unrelated. Once you've taken the time to make your app portable, coding minutia have nothing to do with making it harder than it needs to be to make use of that portability.

  77. Re:Wait, what does Con Kolivas have to do with thi by Gothmolly · · Score: 1

    Do you work in government ?

    --
    I want to delete my account but Slashdot doesn't allow it.
  78. Re:FAT ELF crossed with Elephant by Per+Wigren · · Score: 1

    What do you get when you cross an Elephant, and a FAT ELF who takes his bat and ball and goes running home to mummy the first time someone gives him lip? Well, I have no idea. I was hoping someome here might know. But I bet it's one UGLY abomination of an animal. The kind that other animals laugh and poke fun at.

    A troll with score -1?

    --
    My other account has a 3-digit UID.
  79. Re:Wait, what does Con Kolivas have to do with thi by Decameron81 · · Score: 1

    Ok, but what do you expect to come out of this?
    For instance, suppose this patch goes in. But you won't get an i386/amd64/ARM binary from me, because I don't have an ARM system, so I won't compile for something I can't test...

    That's not worse than the current situation. The fact you won't use the feature doesn't mean other developers won't, and that would offer the end user more options, not less than we have today.

    In any case most of the people arguing against this feature do so because they don't think it's needed. But I fail to see the disadvantages in implementing FatELF in Linux. Nothing prevents a developer from building binaries for a single architecture, and ignore this feature. Nothing prevents a developer from releasing their software in source-code only. There are no technical disadvantages that I can think of, even after reading most criticism.

    Some architectures have things like alignment requirements. Not all code will work everywhere even if a binary for the platform can be produced. Different byteorder will require writing code that will correctly read data files on all platforms.

    There are certainly going to be difficulties, but if you really think about it, nothing prevents solutions for these problems to be crafted. On top of that, this particular problem you mention is not specific to FatELF, and it needs to be handled properly in the source code regardless of FatELF (if you want to create a source code that can be cross-compiled). FatELF is about easier deployment in situations where it's needed. It's not about making it easier for the developer to program for different platforms (it would be interesting though to see variants of fread/fwrite that abstract you from endianness, but that's a different topic anyway).

    And why would you want code for 8 different architectures on a low power device that has a much more limited amount of space than a desktop?

    Maybe you wouldn't... but FatELF would probably be targetted mostly at software for users that don't have a clue. Nothing would force software like "ls" or "man" to be compiled in a FatELF package. But I could easily see Open Office distributed like this, and it would be neat.

    Anyway, this is not an attack on your stance. I just wanted to offer a different point of view. Sometimes I think people is too reluctant to change, and in this particular case I think there are no real disadvantages for this to be rejected so flatly.

    --
    diegoT
  80. Re:Wait, what does Con Kolivas have to do with thi by coolsnowmen · · Score: 1

    I understand, if that whats he meant if that is implementation specific.

    (on the topic of ppc and sparc) Registers, and pointers aside, if 64bit code is even less computationally efficient because of deficiencies in the architecture, then there is almost no point in using it!

    Binaries can be made PIE, and on >4gb can be addressed with PAE (though I understand that is an x86 technology). It sounds like sparc and ppc REALLY dropped the ball architecturally if people run 32bit binaries for speed reasons.

  81. Re:Isn't someone going to ask ... by pohl · · Score: 1

    Your bold statement about the design behind FAT binaries ignores an important historical use case: an operating system that was 4-way FAT for 68040, x86, PA-RISC, and SPARC.

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  82. Re:Isn't someone going to ask ... by RiotingPacifist · · Score: 1

    OMG how do they ship two different binaries without a universal binary for mac & windows, oh that's right you have to pick the right one, hell on linux you could have a shell script do that for you. The problem is that FatELF doesn't solve anything a shell script and binary compression format can't, yet it needs kernel level tricks.

    --
    IranAir Flight 655 never forget!
  83. mod up, please by koiransuklaa · · Score: 1

    The original story is worth +5 apparently. Maybe someone could mod this AC up for me: I think the other side of the story deserves to be heard as well.

    1. Re:mod up, please by Anonymous Coward · · Score: 5, Interesting

      Here's the log of the full conversation. We was hardly abused, and got persistent help over several hours which was patient and helpful, ultimately culminating in him realizing what he had done wrong and admitting to it.

      Clearly, the myth IRC folk are at fault.

      http://pastebin.com/m2cfd19dd

    2. Re:mod up, please by xtracto · · Score: 1

      #
      : You need to look on the wiki
      #
      27-10-2009 21:06:38 < BitS!n=dwimsey@24.199.159.90: what I get, is the front end starts, says no UPNP server, then prompts for config
      #
      27-10-2009 21:06:40 < BitS!n=dwimsey@24.199.159.90: I have
      #
      27-10-2009 21:06:41 < Dagmar!i=dagmar@unaffiliated/dagmar: It's explained in-depth there.
      #
      27-10-2009 21:06:41 < BitS!n=dwimsey@24.199.159.90: for 2 days
      #
      27-10-2009 21:06:48 < Dagmar!i=dagmar@unaffiliated/dagmar: No, you haven't.
      #
      27-10-2009 21:06:48 < BitS!n=dwimsey@24.199.159.90: hold on
      #
      27-10-2009 21:06:51 < BitS!n=dwimsey@24.199.159.90: yes, I have
      #
      27-10-2009 21:06:53 < Dagmar!i=dagmar@unaffiliated/dagmar: Don't lie to me.
      #
      27-10-2009 21:06:56 < Dagmar!i=dagmar@unaffiliated/dagmar: I am God.</quote>

      Wow, pretty mature of the guys in the IRC channel, if the guy is saying that he has read the wiki then WTF?

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
  84. Abandon all hope by hudsucker · · Score: 1

    Understanding the benefits of a multi-architecture binary depend on first accepting the purpose of pre-compiled binaries.

    And, they'd have to start designing the programs to have run-time portability rather than depending on the make process to discover and tailor the program for the target machine.

  85. Re:Isn't someone going to ask ... by RiotingPacifist · · Score: 1

    FatELF doesn't magically recompile binaries to be multi-arch, it's just a fancy way of packaging multiple binaries together, and for some reason people want to keep the binaries as a big package instead of just picking the correct one at install time.

    --
    IranAir Flight 655 never forget!
  86. too big or not enough? by jdkane · · Score: 1

    Yes. It is a "solution" which adds costs in many, many places for a problem that doesn't exist. I don't see why people even spend a second thinking about this.
    -- Ulrich Drepper (2009)

    640K ought to be enough for anybody.
    -- Bill Gates (unattributed)

  87. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 2, Insightful

    Agreed. There is also the question of why the authors of a GNU licensed program are expected to show a passionate interest in a project whose central focus is the distribution of binaries. FatELF makes sense when the source is not available. When the source is available, package management, with a per architecture build, makes more sense.

  88. Re:Story of binary compatibility is short and trag by Ash-Fox · · Score: 1

    Yeah, great, if he wants to permanently modify that machine, and it has network connectivity, and so on.

    Just an application to run? This is what I wrote on how to compile an application to work cross-distro.

    If you're talking about cross-architecture, I could make a 'FAT' binary by essentially wrapping the executable binaries for each architecture inside a bash script (the same way Loki installers work) and have it execute the one for that architecture - Obviously not that simple for the person who has to do it, but then if you've ever made universal binaries for OS X, you'd know it isn't that much simpler either.

    --
    Change is certain; progress is not obligatory.
  89. Re:Isn't someone going to ask ... by Hobophile · · Score: 1

    FatELF binaries don't avoid this issue any better than any other solution, seriously. You still have to build/bundle custom, vetted runtimes that reside in a similar bundle on the install- and for each architecture you support.

    Well, it seems to me that this is the straightforward part - if it's not exactly easy, it's at least fully under your control as the publisher.

    What you can't control is what happens when the user tries to install or run your game. How do you know they have picked the right installer or executable binary to double click?

    Unfortunately, you have to do the same effort for FatELF binaries as you would for the other way- and with no better assurances of "getting it right" with it as with the other means.

    Getting it right is what QA testing is for. The benefit of FatELF is that the end user only has a single program to run. By eliminating the choice between binaries, you eliminate the possibility that he will somehow make the wrong choice.

  90. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    In any case most of the people arguing against this feature do so because they don't think it's needed. But I fail to see the disadvantages in implementing FatELF in Linux.

    Thing is I fail to see any advantages either. Why spend time on something if it won't bring a benefit?

    The way I see it, this is unnecessary because computing in general is getting divided in 3 rough groups:

    1. Desktops. All modern hardware will run i386 code, macs included. All modern Linux distros will run 32 bit code. So if you feel a need to ship a tarred binary for some reson, ship 32 bit code, and no problem. No need to compile twice.

    2. Special purpose devices. Those have special screens, small disk sizes, slow CPUs, and so on. It makes very little sense to provide a fat ELF for those, because even if OpenOffice came with a fat ELF with code that could technically work on my cell phone, it probably wouldn't work right anyway, if it managed to find enough memory to load. If the application does work fine, you're still wasting very limited resources.

    3. Niche architectures like SPARC and Itanium. Nobody cares about these for "user friendliness" purposes.

    Maybe you wouldn't... but FatELF would probably be targetted mostly at software for users that don't have a clue. Nothing would force software like "ls" or "man" to be compiled in a FatELF package. But I could easily see Open Office distributed like this, and it would be neat.

    Why would it? Linux users install openoffice as a package. I don't really know anybody who downloads it from a website, it's just not the standard way to install things on Linux. If you're doing that, you're not a typical user, but have a special need of some sort. If you're a third party provider, you provide a third party package server.

  91. Re:Story of binary compatibility is short and trag by PeterBrett · · Score: 1

    Attempting this in a world where even an x86 binary wouldn't work on all x86-linux-pc boxes (static linking, yeah...yeah)

    Laugh it up, but my Quake 4 binaries I downloaded in 2007 work absolutely flawlessly on my mid-2009 Linux distro.

  92. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    You're back to assuming yum/dpkg package installation is the end-all and be-all of linux installation.

    I'm not assuming. It *is* the end-all of linux installation. You have a very specific and unusual setup, which doesn't apply to 99% of the userbase.

    Using tar files with binaries under Linux is roughly equivalent to deploying software in Windows by copying files to directories by hand and running regsvr32 instead of providing an .msi. It's an ad-hoc, user unfriendly way of getting software on the system, generally reserved to advanced users and sysadmins.

    At our university for example, we have the AFS network file system. I can put stuff in my network home directory and run it from a variety of lab and cluster workstations where I don't have time or permission to install a bunch of dependancies. But it's a huge pain in the butt when I sit down at a 32 bit machine and I had previously compiled some tool or library as 64 bit or whatever.

    It still won't help you, because the architecture problem is not even half the issue. A binary compiled in Ubuntu will link against Ubuntu versions of libraries and may fail to work under a Red Hat that ships older version libraries.

    And on OS X I just download Blender directly from the website... very easy because it contains everything I need.

    As much as I appreciate the linux package system handling dependencies and installation of shared resources, whenever you're doing something *outside* of the packaging system it's a pain in the butt. *This* is where FatELF is handy.

    But it won't do that. All you'll get is a binary that works on both i386 and amd64 Ubuntu Karmic. And it'll still fail to work on an older release or another distro, because nothing about FatELF involves packaging dependencies.

  93. Rejecting solutions to problems that we don't have by thaig · · Score: 1

    I have a tool like that - it's called tar. I have distributed applications for 5 OSes with different architectures like this. The startup program is a script which works out what binaries to run. No messing around in kernels is required.

    --
    This is all just my personal opinion.
  94. This is not Java - its more like LLVM by thaig · · Score: 1
    --
    This is all just my personal opinion.
  95. Re:Isn't someone going to ask ... by PeterBrett · · Score: 1

    Maybe Blizzard should go and beg iD Software for some advice, then. They've been shipping perfectly functioning universal Linux builds of their games for years now. Or perhaps 2D Boy? Or Introversion. If tiny indie studios and massive names in the industry can all manage it, Blizzard could too.

  96. Re:Wait, what does Con Kolivas have to do with thi by Decameron81 · · Score: 1

    Thing is I fail to see any advantages either. Why spend time on something if it won't bring a benefit? The way I see it, this is unnecessary because computing in general is getting divided in 3 rough groups: 1. Desktops. All modern hardware will run i386 code, macs included. All modern Linux distros will run 32 bit code. So if you feel a need to ship a tarred binary for some reson, ship 32 bit code, and no problem. No need to compile twice.

    2. Special purpose devices. Those have special screens, small disk sizes, slow CPUs, and so on. It makes very little sense to provide a fat ELF for those, because even if OpenOffice came with a fat ELF with code that could technically work on my cell phone, it probably wouldn't work right anyway, if it managed to find enough memory to load. If the application does work fine, you're still wasting very limited resources.

    3. Niche architectures like SPARC and Itanium. Nobody cares about these for "user friendliness" purposes.

    Why not let Ryan spend his time on it? After all he was willing to take care of it himself... he wasn't asking for other developers to maintain it. I am not arguing that people should like the feature, or support it... just that if it comes at no cost, and it adds more options and more freedom, we should let it at least move forward.

    What good is a "free" OS if features are rejected just because?

    Why would it? Linux users install openoffice as a package. I don't really know anybody who downloads it from a website, it's just not the standard way to install things on Linux. If you're doing that, you're not a typical user, but have a special need of some sort. If you're a third party provider, you provide a third party package server.

    To me, something being good enough doesn't mean it can't improve. For example you may not want to provide a third party package server, or may not want to maintain it. Or maybe you want to make the most user friendly software available in Linux (a la Apple)... some game to deliver in a CD for Kids to play by just double clicking it. Who knows? The thing is there are reasons why this might be a good option to have, even if most developers could not need it at all.

    I just feel this feature is being rejected because it's unnecessary for most tech-savy people. If we, as developers, forget to have our users in mind... we will fail in our job to deliver solutions.

    --
    diegoT
  97. Re:Wait, what does Con Kolivas have to do with thi by vadim_t · · Score: 1

    Why not let Ryan spend his time on it? After all he was willing to take care of it himself... he wasn't asking for other developers to maintain it. I am not arguing that people should like the feature, or support it... just that if it comes at no cost, and it adds more options and more freedom, we should let it at least move forward.

    I don't think anybody was stopping him from spending time on it. He can spend all the time he wants, even if nobody else in the universe is interested.

    What good is a "free" OS if features are rejected just because?

    Just like Ryan is free to code whatever he likes, other developers are free to care or not about what he codes.

    To me, something being good enough doesn't mean it can't improve. For example you may not want to provide a third party package server, or may not want to maintain it.

    That's not really a statement of user friendliness. I made installers for Windows. I didn't really *want* to because it's boring as heck, but it has to be done, because that's how software is distributed on Windows.

    In the same way I don't really enjoy packaging on Linux, but I have to, because that's how it's done there.

    Being unwilling to comply with the platform's normal way of doing things isn't doing it in a friendlier manner, it's generally just being lazy or having too much of an ego. For instance, you could shoehorn a Mac style menu bar into a Windows application, but I doubt it'd get a good reception, or be able to obtain the "Designed for Windows" certification.

    Or maybe you want to make the most user friendly software available in Linux (a la Apple)... some game to deliver in a CD for Kids to play by just double clicking it. Who knows? The thing is there are reasons why this might be a good option to have, even if most developers could not need it at all.

    I don't get why people keep bringing this up, when the whole FatELF thing has nothing to do with this style of application deployment. Doing a Mac style install system on Linux would be a different project entirely. Mac could lose fat binaries and still have applications installed in the same way, or switch to using a package manager and keep fat binaries. Both things are really separate.

    Really you can do Mac style deployment on Linux if you really want to. You just have to package the binary, data, every library it uses, and add a script that sets LD_LIBRARY_PATH. Then you can really drop a folder in a random location, click the script, and have it work.

    I just feel this feature is being rejected because it's unnecessary for most tech-savy people. If we, as developers, forget to have our users in mind... we will fail in our job to deliver solutions.

    On Linux, non-tech-savy people use the package manager. They don't go download tar files to random websites, because on Linux, that's the unfriendly way of doing things.

  98. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1

    What the hell, it's a setup shared by anyone who wants to run software from a networked file system. Even so, I suppose 99% of users don't use GDB either, so I guess we can just drop things like that from package management, right?

    Seriously, just because *you* don't need a feature on your dinky home installation, doesn't mean it's not a very useful feature for others. 'raw' binaries on Linux are only ugly because people like you don't want to contemplate fixing it. That's fine if you want to ignore it, but if you're just going to complain about a partial solution, either demonstrate why it negatively effects you or shut up and get out of the way.

  99. Not worth the performance hit? by w0mprat · · Score: 2, Funny

    Programming languages are already far two high level which incurrs a performance hit. We should all be coding in assembler. Personally, for fast executing binaries I prefer to tap the bits into the hard drive platter with magnetized needle.

    --
    After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
  100. Re:Story of binary compatibility is short and trag by Ash-Fox · · Score: 1

    I agree. I never said universal binaries were the problem -- rather, it's the lack of binary compatibility. It's the whole "source compatibility" / "binary incompatibility" that gives the win to Windoze over Linux in the gamine world.

    Binary compatibility is quite easy in my opinion and I speak from previous experience.

    --
    Change is certain; progress is not obligatory.
  101. Re:Rejecting solutions to problems that we don't h by Eric+Green · · Score: 1

    Right. Now install it on a network share and run it on a network of 10,000 workstations, some of which are 32-bit workstations and some of which are 64-bit workstations. I can do it in 5 minutes with fat binaries. You, on the other hand...

    --
    Send mail here if you want to reach me.
  102. stupid idea by jipn4 · · Score: 3, Insightful

    FatELF is a stupid implementation of a stupid idea. I.e., even if you want fat binaries, modifying the ELF format is the wrong way of doing it.

    Yeah for the Linux kernel developers for keeping this kind of crap out of the kernel.

  103. "not possible [...] in a package manager"? by tlambert · · Score: 3, Interesting

    So, remind me again: why exactly is it not possible to implement all that in a package manager and we need to have a Really Fat ELF?

    Because Linux distributions can not agree on a single GUI technology, let alone a package manager.

    -- Terry

    1. Re:"not possible [...] in a package manager"? by inode_buddha · · Score: 1

      As if anything needs to be agreed upon. Hint: it doesn't. From a strictly binary perspective, all that matters is things like arch and endian-ness. I think these guys are onto a decent idea, but I doubt the mainline is gonna pick it up. Likely it will be offered as a kernel module; this is what I would recommend, instead of going away all bitter. Rather, its most likely that distros will pick it up and eventually force it upstream. Why? Because its *that* much less that they have to maintain and offer for download. A fringe benefit is that non-OSS places can build only one binary and make it work. OTOH it may mean stretching the ELF spec, which is something that I doubt anyone wants to do. ISTR switching from a.out to ELF and it was not painless. At the end of the day, all that joe user and joe sysadmin wants to do, is click on one thing to download and have it work regardless. The various package managers come pretty close so far, but no cigar yet. FWIW I'm happy with openSuSE and YaST at the moment; previously it was RH.

      --
      C|N>K
  104. "Insightful"? by Virak · · Score: 3, Informative

    And what do most package managers do? Utterly lazy dependency management. "Well, you need this package... so you should have the latest version of it. If you want another version, you should rename the package and depend on something else instead."

    I've never used a package manager that forced you to upgrade all dependencies to the latest version to install a package. All of them allow not just required packages but required versions of packages, and only force upgrades of dependencies when you don't have a sufficiently recent version.

    And that would be almost-excusable, except for the brain-dead "open source is king" approach for updates: "The whole-thing's free anyway, why not just re-send the whole thing?" binary patches are pretty-much unheard of. Of course, sending the whole thing is really just a work-around because-

    Some can do patches. I think RPM can. But unless you're using dialup, they're not really that much of advantage. And you also have the problem of having to provide patches from lots of versions to lots of versions. Or you can provide only patches from the last version to the current one, in which case they're useless for anyone who misses an upgrade.

    Package managers generally do NOT bother to detect when they are about to clobber or alter "the wrong file". When they do, they don't bother to keep a record of what they /would/ consider to be "the right file", making "merging" impossible and difference examination a guessing game.

    I don't know any package manager that does this. For example, Pacman, the package manager of Arch (my current distro of choice), installs new versions of files with the suffix '.pacnew' if the old version was modified and doesn't clobber.

    Multiple versions of a single package co-existing on the same base install is generally impossible.

    This is true on pretty much any OS. Multiple versions of the same package will install to the same paths, and your package manager would have to be pretty fucked up to do that. If you'd like to horribly violate widely adopted filesystem organization standards and patch your software a bunch to make it work properly with your new layout, you can do that, but there's no real gain.

    Which really makes you wonder what the hell a package manager /does/ manage.

    They manage packages. Just because they don't implement every feature you'd like doesn't mean that's not true, though evidently they do implement many features you'd like, but you are too busy raging pointlessly to pay attention to the facts. In fact, the only feature they don't implement that you'd like is a major design decision that would require altering pretty much all software on the system for no benefit to the vast, vast majority of users.

    It's not third-party software, that's for sure. You want the bleeding-edge version of something? You just want to patch a broken package?

    Then you get it from elsewhere if the official repos don't provide it. You can even build your own package, something you certainly ought to be capable of if you're applying your own patches to software. You can even set up your own repos!

    That means you're not using the package manager, and that means you're on your own for everything. Either you build a /package/ for what you're doing on the side, or you don't get access to any of the supposed features.

    So basically what you're saying is, "you're not using the package manager except if you are". Gee, really?

    And anything that depends on what you're doing, you may as well just compile and track yourself- 'cause that's what you like doing, right?

    Most of your post you've been toeing a fine line between being just wrong and bei

    1. Re:"Insightful"? by segedunum · · Score: 2, Interesting

      I've never used a package manager that forced you to upgrade all dependencies to the latest version to install a package.

      Anyone with an ounce of sense and experience knows that if you have a package for the version of the software that you want, but it's only built for and available in a later version of your distribution, then installing it will result in a cascade that will as good as update your entire system. There wouldn't be dependencies otherwise. On a system where you can automatically recompile like Gentoo then this probably won't be the case, but on binary-only systems it most certainly will be. That's why you have a lot of distro hopping, churn and updating.

      Then you get it from elsewhere if the official repos don't provide it.

      Translation: In practice you don't get the software you want to install at all unless you give up on the package manager and wind back the clock a couple of decades.

      You can even build your own package, something you certainly ought to be capable of if you're applying your own patches to software. You can even set up your own repos!

      Which software vendors have steadfastly and correctly said they won't do, and especially not for multiple distributions, versions of distributions and architectures! How's your multiplication? Deployment on this scale is error prone and requires a ton of support that they just won't provide because other more popular platforms don't make them do this. You just don't get the applications, and even the up to date free/open source software applications, you get on platforms where this sort of thing isn't a problem. Screw you, in other words.

      So basically what you're saying is, "you're not using the package manager except if you are". Gee, really?

      Hmmmmm, and you're the one who's just recommended building your own specific packages or setting up repositories for multiple distributions, versions and architectures, with not the faintest idea of the costs involved in doing that, to stay within that package management system and you're wondering why someone might be suggesting that they stay outside of that brain damage? Hmmmmm. That 'Check Updates....' thing in Firefox that works everywhere else. Why doesn't it fucking work on a Linux platform and why does everyone need to redo the work of providing updates? It's a puzzle. I wonder.............

      Most of your post you've been toeing a fine line between being just wrong and being wrong and a trolling asshat. Guess which side you just landed on?....No, the short of it is that you're a moron and your entire post is bullshit, and both you and everyone who modded your post up need to be mercilessly beaten with a cluestick.

      I've come to the conclusion that there are a lot borderline people who hover around Linux distributions, and some of them are even developers, who have never known what it is like to develop software for a living, or even as an independent free project, and get it deployed and updated quickly and easily on a user's system. Package management must be the answer to that. You can't question it. You can't look at the Windows or Mac OS world and learn anything from it and ask "Why the hell do they have more free and open source applications packaged and updated regularly for their non-free/non-opensource platforms?"

      Package management is the one true solution to software installation. I mean, if it isn't, then the sky might turn fucking pink, or purple, or something. Christ. Anything could happen.

    2. Re:"Insightful"? by Lord+Bitman · · Score: 2, Interesting

      And what do most package managers do? Utterly lazy dependency management. "Well, you need this package... so you should have the latest version of it. If you want another version, you should rename the package and depend on something else instead."

      I've never used a package manager that forced you to upgrade all dependencies to the latest version to install a package. All of them allow not just required packages but required versions of packages, and only force upgrades of dependencies when you don't have a sufficiently recent version.

      And anyone who has ever wanted to upgrade just one package can tell you that this is clearly insufficient, because every package ever made lazily specifies all they know: "this package works with the version I have, therefore it requires the version I have." If this lazy way is the easiest method of specifying requirements, it is what will be used- you can tell, because it is what is used. If you are dealing with what is considered to be a non-trivial requirement by package managers, you will have run into this problem. "I know this requires version N. I have read the source, I know where Foo is being called, I know that this works in all versions since A. But the package maintainer didn't say "requires this feature" they said "requires version Q of package Foo", so I can't use the dependency management for this package". Blame the maintainer, not the system? Not bloody likely. Sometimes you see ugly hacks like "virtual packages" and "meta packages" which attempt to abuse the limits of the package manager and act as if a real providesrequires system is in place.

      And that would be almost-excusable, except for the brain-dead "open source is king" approach for updates: "The whole-thing's free anyway, why not just re-send the whole thing?" binary patches are pretty-much unheard of. Of course, sending the whole thing is really just a work-around because-

      Some can do patches. I think RPM can. But unless you're using dialup, they're not really that much of advantage. And you also have the problem of having to provide patches from lots of versions to lots of versions. Or you can provide only patches from the last version to the current one, in which case they're useless for anyone who misses an upgrade.

      This is a solved problem. Some package managers actually /do/ send binary patches, as does every software company on the planet. If there were a valid excuse for not doing it, it wouldn't be a problem.

      Package managers generally do NOT bother to detect when they are about to clobber or alter "the wrong file". When they do, they don't bother to keep a record of what they /would/ consider to be "the right file", making "merging" impossible and difference examination a guessing game.

      I don't know any package manager that does this. For example, Pacman, the package manager of Arch (my current distro of choice), installs new versions of files with the suffix '.pacnew' if the old version was modified and doesn't clobber.

      The "not clobbering" part is /usually/ true of configuration files, though it really all depends on what you consider to be "configuration", which you'll find yourself disagreeing with often enough to wonder why the hell the rule isn't applied universally. And yes, the second-half of that applies even to configuration files: Putting "oh, I didn't clobber this file, here's the one I wanted to stick somewhere" in a random tree, sometimes with no notification, and rarely with /useful/ notification ("speak now or forever hold your peace" notification is the bane of any upgrade, especially when combined with the point above about too-many-things-upgrading just because you wanted _one_ change), does nothing to help you find out what has changed between versions. If the only thi

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    3. Re:"Insightful"? by Anonymous Coward · · Score: 1, Interesting

      I've never used a package manager that forced you to upgrade all dependencies to the latest version to install a package. All of them allow not just required packages but required versions of packages, and only force upgrades of dependencies when you don't have a sufficiently recent version.

      So instead of forcing you, they merely offer no other choice... that is a fail.

      Some can do patches. I think RPM can. But unless you're using dialup, they're not really that much of advantage. And you also have the problem of having to provide patches from lots of versions to lots of versions. Or you can provide only patches from the last version to the current one, in which case they're useless for anyone who misses an upgrade.

      Excuses to not track what changes between RPM revisions. Patch revision n can include revisions n-1,2,3,4, etc, and still not require the whole package. They can be differential, not incremental.

      I don't know any package manager that does this. For example, Pacman, the package manager of Arch (my current distro of choice), installs new versions of files with the suffix '.pacnew' if the old version was modified and doesn't clobber.

      He is talking about change-tracking, not backing up configuration files. This plays into lack of patching. The package manager, nor package installer can tell you the difference between package revision n and package revision n-1 because packaging systems go the all or nothing route.

      This is true on pretty much any OS. Multiple versions of the same package will install to the same paths, and your package manager would have to be pretty fucked up to do that. If you'd like to horribly violate widely adopted filesystem organization standards and patch your software a bunch to make it work properly with your new layout, you can do that, but there's no real gain.

      Not on Solaris or systems without package managers. Most(all?) Linux packages are both non-relocatable and have no concept of alternate roots. Uses include: installing/patching an OS root mounted somewhere else for recovery purposes. Software shares (see all non-Linux OSs, but I suppose general lack of commercial software helps Linux here). Chroots - quite interesting security implications here because they are often not patched, being outside the package management. I think I could go on, but I'm tired.

      They manage packages

      They can install the latest versions of dependencies. It's hard to say they manage anything other than what, the list of packages installed? They really violate the whole idea of "releases". I can't figure out how RedHat puts up with it. I guess by just not publishing regressions because their package "management" can't do anything about it.

      Then you get it from elsewhere if the official repos don't provide it. You can even build your own package, something you certainly ought to be capable of if you're applying your own patches to software. You can even set up your own repos!

      Small problem being all the integration done midstream. Out of repo firefox sucks dick for instance, wheres other OSs have public APIs for the integration Firefox needs. That's not really a package manager problem but an OSS thing..

      Location sensitivity sucks.
      Overbearing uniqueness requirement sucks.
      Installing to alternate root sucks.
      Dependencies suck.

      Solution: keep the OS and user applications as separate as possible, install whole OS only.
      Package managers solve problems nobody has, and fail at things they should be good at. They mix system and user software. Modern OSs really need software repositories or stores, stable public APIs, and clear system/user separation. Package managers should assist those goals, not get in the way.

  105. Re:Wait, what does Con Kolivas have to do with thi by hairyfeet · · Score: 1

    That is because IMHO Linux has been taken over by the "SCoN!" faction, which stands for "Source Code or Nothing!" and is of course led by the militant RMS. Unfortunately the real world has these things called "patent trolls" which is why you will NEVER see devices for home users releasing source code. look at which companies DO release source-IBM,Intel,AMD,HP Corporate, what do these companies have in common? Simple, a large "patent warchest" and a large interest in the server/HPC markets.

    That in no way, shape, or form describes the critical home market, which is where Linux desperately needs to be if they want a chance in hell of being a real threat to windows adoption. Lets be honest here-all the geeks that want to run Linux already are. The growth in the geek market is virtually nil. What Linux needs is for retail mom&pop shops like mine to sell and support your product, and the simple fact is they can't. Why? I'll give you an example from Ubuntu 9.04, which is the last time I tried selling Linux-

    I put a couple of off lease office machine with Linux on the floor next to Windows. Because I didn't have to pay for an XP license, the price was cheaper. The customer bought it, promptly went to Walmart and bought a camera and an all in one printer, and neither worked. So they brought it to me because it was "broken" and I needed to fix it. But Linux would barely support the cam, and that was after many hours of CLI BS, and the printer? I got told "LOL buy a new one!" So I ended up having to give the customer their money back on an XP PC, and I promptly wiped Ubuntu and put Win2K. My support costs dropped to zero for those after that.

    But every time I point this problem out, what do I get? I get labeled a troll, I get told that I am supposed to tell customers with a straight face to rush home and trawl some forum before they can buy anything for their PC, or that I should bundle, which because my last name ain't Dell automatically raises the price higher than just putting XP Home on the damned thing!

    So mark my words, and come back in 5 years to see how true they are. The "SCoN!" crowd will make damned sure that Linux stays ass backwards, with kernel developers having to maintain fricking drivers, Windows 7 and later 8 will continue the MSFT dominance on the desktop, and we'll still here "next year is the year of Linux on the desktop!" while Linux users just can't figure out why nobody wants to trawl forums and spend hours dealing with Bash bullshit for their "superior" OS. Yet you still won't be able to go into Walmart and buy a device without researching like it was a college entrance exam.

    And folks wonder why MSFT and Apple keep stomping the dog crap out of their free OS. Well duh. It may be "free as in beer and freedom" but if they can't even shop at walmart without studying or spending hours in CLI then it is "free as in worthless" for my customers.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  106. Cut the SFLC some slack by Qubit · · Score: 1

    It's all moot anyhow: the Software Freedom Law Center never replied to my
      request about the software patent thing. I suppose they still might; it's
      only been a few days, but for some reason, I fully expect to never hear from
      them.

    Other people have covered other points, so I'm just going to talk about the SFLC. It sounds like you haven't communicated with them before, so please cut them some slack. Just yesterday Bradley Kuhn dented:

    FLOSS ppls: !sflc is a charity w/ limited resources. It can take up to a week for us to answer general contact email. Pls give us a break!

    --

    coding is life /* the rest is */
  107. Re:Wait, what does Con Kolivas have to do with thi by npsimons · · Score: 1

    Things get rejected from the kernel all the time -- because not all things are good, useful, well coded, or solve a problem that needs solving. It's not new in any way.

    This is so true and people don't seem to make the connection - in order to have high quality, you have to discriminate. All these people hear how wonderful Linux is, and they think, "I've got a great idea to make it better!". Then when they get turned away, they whine about it like they're the only ones it ever happened to. Perhaps their idea just wasn't well designed, or it's badly coded, or it doesn't solve a problem. Or maybe it does just plain suck. Sorry, but Linux didn't get to be good by accepting every hair-brained non-solution to a non-problem that came along. People who whine about having their submissions rejected from the Linux kernel are probably the same types that would try to start a business with a "great idea", then whine when no one buys it.

  108. Pro Choice by bussdriver · · Score: 1

    Linux means freedom and liberty to many. Its odd for linux to miss the boat on this one and even worse to ban the choice. "We don't ____ here" is something for Microsoft to say.

    1. Re:Pro Choice by jmorris42 · · Score: 1

      > Linux means freedom and liberty to many.

      Indeed. Fork.

      Most of the calls to do dumb things like this comes from people who don't have a clue though and after all the yelling they eventually shut up. The notable thing about this one was this guy actually produced code. But just because somebody writes some code to do something bad doesn't mean it has to go in. Lots of code never completes the process of getting merged.

      And just look how screwed the Free Software movement would have been had we listened to the loudmouthed know nothings over the years.

      We would be suffering from:

      1. A registry... and like Microsoft trying to find a way out of that swamp. Oh you are probably too young but I remember the frequent, loud and certain they were right Microsoft taillight chasers back in the late 1990's who insisted that if we didn't move everything into a binary registry we would be doomed to fall behind the times and be forgotten.

      2. We would have dumped X. Scads of people who don't even understand the difference between GNOME/KDE and X still pontificate here on /. about the need to dump X for a 'modern' (read Microsoft clone that can run DirectX games perfectly) design on almost a monthly rate.

      3. Linux would be using shims to run with Windows device drivers, because 'everyone knows' Linux will never have enough device driver support for "The Year of the Linux Desktop" to come about. Funny how we now have deeper driver support than Vista/Win7.

      4. Or Linux would have a fixed driver API, again because we could 'never' get sufficient driver support with only Free drivers and vendors need a fixed driver ABI to code their closed horrid crap against.

      Fat binaries are a solution to a problem we don't have. Distros had a problem Apple & Microsoft didn't, how to deal with thousands of components in a sane way. In solving that they evolved modern package manager and repo technology to the point where it works so much better than the stand alone installer there is no point supporting that broken model. And once you accept the logic of a repo and a package manager the need for fat binaries vanishes.

      One advance in package management I would like to see is user local package installation. Obviously it wouldn't work for packages that need enhanced rights but it would be good for most end user apps and would allow users on a multiuser system to add software into their home directory without needing an admin.

      --
      Democrat delenda est
  109. Why would there be a need? by thatotherguy007 · · Score: 1

    Honestly, I can't understand why a fat ELF would be need. Just wrap a small shell script around two or more binaries. All it would have to do is detect the OS (uname anyone?) and unpack the right segment. It is messier, somewhat, but it works.

  110. Re:Wait, what does Con Kolivas have to do with thi by BitZtream · · Score: 1

    You realize that your last sentence basically describes what FatELF would appear as to the end user, right? Except in the case of using multiple binaries they don't share segments at all. A FatELF binary would share segments other than the .code segment. Separate binaries will use more space than FatELF.

    You could always strip the extra segments out if you wanted to.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  111. Summary of LKML reaction by sjames · · Score: 1

    First, Why? That's what package managers and directories are for. Just like having lib and lib64, just have multiple bin directories and link the correct ones while booting.

    Or if you're just doing one package and not a whole system, just have a script detect the correct arch and run the appropriate binary.

    Second, do we know for a fact that there are no Apple patents on this? [**crickets**]

    So, not really needed and potentially dangerous legally. Two really good reasons not to do it.

  112. Mod parent -1 wrong. by SanityInAnarchy · · Score: 1

    That "file" is not a binary. It is an application package, which is the point I was trying to make.

    Open that .app folder sometime and peek inside. See what I mean? It's a folder! There's no reason you couldn't have 2, 3, or 50 separate binaries in there, and a simple script to choose one.

    --
    Don't thank God, thank a doctor!
    1. Re:Mod parent -1 wrong. by BurntNickel · · Score: 1

      If there is one thing about MacOS X that I wish was standardized across Linux distribution, this is it.

      --
      And the knowledge that they fear is a weapon to be used against them...
    2. Re:Mod parent -1 wrong. by SanityInAnarchy · · Score: 1

      Yes and no.

      Yes, I wish there was a universal package format.

      No, it should not resemble the OS X .app folder.

      --
      Don't thank God, thank a doctor!
  113. ZOMG! No more Christmas! by funwithBSD · · Score: 1

    They killed the jolly old fatELF.

    --
    Never answer an anonymous letter. - Yogi Berra
  114. Re:Story of binary compatibility is short and trag by xtracto · · Score: 1

    much less from some random untrusted binary she downloaded from the internet.

    And then people wonder why there are no good third party apps for Linux (games, video editing, sound editing, etc etc)...

    If I wanted to port my commercial application to Linux, it would be easier for me to make it available as a "fat binary" in my webpage than trying to convince the 296 linux distributions to add my program to their repository.

    --
    Ubuntu is an African word meaning 'I can't configure Debian'
  115. Re:"some showed up just to be rude..." by Slashcrap · · Score: 1

    Rude linuxheads?! I find that hard to believe.

    Btw, modding me down, as you most certainly will, only proves my sarcasm was justified.

    Shut up, you tedious cocksucker.

  116. Re:FAT ELF crossed with Elephant by Per+Wigren · · Score: 1

    I don't think it's THAT far fetched to say that a troll looks like a cross between an elephant and a fat elf, do you?

    --
    My other account has a 3-digit UID.
  117. What's the point again? by Hurricane78 · · Score: 1

    I mean despite the obvious bloat.

    I think it's way simpler to just compile one version for each architecture and put it on the package mirror. Less download time, smaller installation media, less disk space used for no reason, faster startup times...

    The idea of a multi-arch binary makes sense for closed source that does not allow re-compilation only. And even there, you can offer different binaries for different architectures.

    Hell if you *have* to get a "universal binary, just bzip all the different binaries into one executable archive that runs whichever binary inside fits the architecture.

    But I see not point in it, would just unpack all the binaries for my arch on the first run, and be done with it.

    --
    Any sufficiently advanced intelligence is indistinguishable from stupidity.
  118. Re:Wait, what does Con Kolivas have to do with thi by Ash-Fox · · Score: 1

    What the hell, it's a setup shared by anyone who wants to run software from a networked file system.

    I remember running old NFS setups. Almost the entire installation was running off the network, it was dead easy to add more applications for everyone. You would "sudo apt-get install " (on an account was was allowed to do so) and everyone gets access to said application.

    Of course, if you wanted to block access for certain users, groups, you could use setfacl (POSIX ACLs) to block users access from it. Ensure you blocked the .desktop files from these users and it wouldn't even appear in their menus. Dead easy. =)

    The interesting thing about this, is that it doesn't really matter what 'client' distribution you're using on these networks, since all the libraries for the 'host' distribution is included on the system. I don't believe there is really any major problems with networked applications from being ran on Linux at this time.

    --
    Change is certain; progress is not obligatory.
  119. Re:Wait, what does Con Kolivas have to do with thi by Ash-Fox · · Score: 1

    Now teach grandma how to use it.

    Getting someone to copy paste a string of text in an e-mail is actually not that difficult.

    Now, trying to instruct them to do stuff via a GUI, oh God, no.

    --
    Change is certain; progress is not obligatory.
  120. Re:Rejecting solutions to problems that we don't h by Ash-Fox · · Score: 1

    Now install it on a network share and run it on a network of 10,000 workstations, some of which are 32-bit workstations and some of which are 64-bit workstations.

    When I ran a large network, the workstations mounted [nfs share]/$(/bin/uname -m)/ as root.

    It was quite trivial to add anything for any specific architecture on such a setup.

    --
    Change is certain; progress is not obligatory.
  121. Re:Wait, what does Con Kolivas have to do with thi by ejtttje · · Score: 1

    I don't believe there is really any major problems with networked applications from being ran on Linux at this time.

    Except if you want to let 64-bit machines run natively but still support 32-bit machines... then you have to maintain two separate file shares. FatELF would have let you keep it all synchronized on one share.

    Further, this only works if you're globally using a standard distribution and release revision. It's not clear if FatELF would have supported distribution tags, but that seems like something that could be added fairly easily. Then when you want to start upgrading some machines to a newer distribution, you could just do 'apt-get --add dist-upgrade' or such on the server drive and have it merge the binaries into those that are already installed... life would be beautiful for sys admins.

    (Also, FYI we actually use AFS, which is a somewhat more advanced network file system in that it is distributed as well, has its own permissions system, etc. Not actually sure how it winds up comparing to NFS on performance, but probably on par.)

  122. Re:Story of binary compatibility is short and trag by adisakp · · Score: 1

    No, that major reason is publisher effort, and the inconsistency of video driver support. And the first will never happen without the latter. Oh, and most games being written in DirectX. Kudos to anyone still writing in OpenGL.

    Most games are written on a Cross Platform Game Engine (like Unreal) nowdays. Underneath the hood is OpenGL or DirectX on a PC (or XBOX 360) but if you target PS3 or Wii, the game engine has to target a different rendering library.

  123. Re:Wait, what does Con Kolivas have to do with thi by Ash-Fox · · Score: 1

    Except if you want to let 64-bit machines run natively but still support 32-bit machines... then you have to maintain two separate file shares. FatELF would have let you keep it all synchronized on one share.

    I can't really think of an issue with two separate fileshares. For the most part everything is identical in setup and commands, running the command "sudo apt-get install" is the same for both and I can set certain architecture specific settings when needed.

    But, let's consider your idea. So what happens when I need to add support for 128bit x86 or arm etc? I have to replace every single binary? Some proprietary ones may not even exist in that architecture at all and in which case I need to set it up to work with other things. Like using Gnash instead of Adobe Flash (which conflict with each other when installed together).

    As a sysadmin, I find it a lot easier to maintain separate paths in a network fileshare for different architectures due to architecture specific issues, software requirements etc. Using FAT binaries would complicate the issue immensely for me as not every single piece of software, library is going to be available for every architecture. Some software is even written in such a way that it makes it extremely difficult to port over to other architectures (see the issues the Linux developers had getting 64bit working for the majority of applications and libraries initially) - so this is to be expected.

    --
    Change is certain; progress is not obligatory.
  124. Re:Wait, what does Con Kolivas have to do with thi by Grishnakh · · Score: 1

    That said, Con is not my personal poster child for the unfairly rejected: he seems to understand neither software engineering nor macro economics in the large. For example, while Con's patches might improve things for the desktop user in the short term, if it comes at the cost of continued enterprise support for the people who continue to develop the kernel, the victory will be short lived;

    Why do desktop users and server/enterprise users need to use the same scheduler? Why not just have different schedulers for different use cases? This seems rather trivial. They already set the HZ value to different values for desktop and server users, because servers don't need the low latency that desktop users do.

  125. Re:Wait, what does Con Kolivas have to do with thi by ogdenk · · Score: 1

    This in particular seems like a solution in search of a problem to me. Especially since on a 64 bit distro pretty much everything, with very few exceptions is 64 bit.

    You're not quite getting it. YOU may not have other arches around but I do. This isn't about 32-bit vs 64-bit. It's about SPARC vs ARM vs Intel vs MIPS, etc. I would love to be able to use the same binaries. This is especially useful when you don't have source and can't recompile.

    This would also make it easier to have commercial software supported on more than 1 CPU architecture. I get REAL pissed about Intel-only Linux and BSD software. There's no reason for it. And now that ARM may catch some steam in netbooks, this is pretty important to me.

    I don't want to hear that "well, just run RMS-approved free software" or the "comershul softwear iz teh evil" crap either.

  126. Re:Rejecting solutions to problems that we don't h by Eric+Green · · Score: 1

    Right, we did the same thing on our mixed networks, but you end up with multiple completely independent installs of the software at that point, including multiple complete versions of the Emacs .el and .elc files and so forth. This isn't such a PITA if you're compiling everything from source because you have to compile it on all those multiple platforms anyhow, but if you're talking about commercial software (gasp! The horror!) you're talking about multiple times the administrative overhead to keep the software up-to-date and functional. If you are in a school environment or in an R&D lab you probably don't notice any of this because schools don't purchase a lot of commercial software and R&D labs are typically self-administered by the zoo animals err developers :), but for corporate workstation deployments these are big issues. In any event I've wasted enough time on this. we're not talking about a huge gain with fat binaries but it does solve a real problem and it's sad that it was rejected as simply "not invented here" by people who have no (zero) clue of real-life IT, as vs. having a reasoned discussion of advantages and disadvantages. But that's how things work in Linux-land nowadays. Makes Theo and RMS look almost rational. Almost.

    --
    Send mail here if you want to reach me.
  127. Re:Rejecting solutions to problems that we don't h by Ash-Fox · · Score: 1

    including multiple complete versions of the Emacs .el and .elc files and so forth

    It's not that hard to do file links, honest.

    This isn't such a PITA if you're compiling everything from source because you have to compile it on all those multiple platforms anyhow, but if you're talking about commercial software (gasp! The horror!) you're talking about multiple times the administrative overhead to keep the software up-to-date and functional.

    Yes, in which case I prefer seperate, segregated paths for each architecture because you end up with one platform having adobe flash and the other having Gnash, or you'll need a extremely custom setup to get an 32bit-only application working correctly in a 64bit environment (and by custom, I don't mean just installing the 32bit libraries, but stupid issues with things like running into stuff that wants m86_old() and requires modifications all across the system to get working - I have ran into this) etc.

    you're talking about multiple times the administrative overhead to keep the software up-to-date and functional.

    Running two "sudo apt-get install" processes simultaneously is not hard, linking various configuration paths between the 32bit and 64bit setups is dead simple.

    Now, dealing with a system where both 32bit and 64bit binaries are one and you need to make special customizing for one is going to be more difficult and annoying.

    we're not talking about a huge gain with fat binaries but it does solve a real problem and it's sad that it was rejected as simply "not invented here" by people who have no (zero) clue of real-life IT, as vs. having a reasoned discussion of advantages and disadvantages.

    I'm sure it has it's uses, but in my opinion, it produces more work with networked installations.

    --
    Change is certain; progress is not obligatory.