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."

549 comments

  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 BitZtream · · Score: 0, Troll

      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.

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

      He should have sent Theo in ;^)

      --
      Great minds think alike; fools seldom differ.
    9. 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.

    10. 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.

    11. 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.

    12. 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?
    13. 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?

    14. 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.

    15. Re:He needs thicker skin by charliemopps11 · · Score: 1
    16. 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.
    17. Re:He needs thicker skin by Jaysyn · · Score: 0, Redundant

      Way to prove his point.

      --
      There is a war going on for your mind.
    18. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      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?

      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.

    19. 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.

    20. Re:He needs thicker skin by jedidiah · · Score: 0, Troll

      No. But I can be bothered to do some Google searches and a little bit of troubleshooting on my own.

      This is no worse than what Windows would (and has) subject me to.

      This joker that thinks of himself as a "developer" couldn't be bothered to sort out his own self-inflicted client configuration issue.

      On the one hand, the relevant database is a pain to deal with sometimes. On the other, it is at least built and installed with some security in mind.

      There are turnkey distros for this. Did he try one?

      --
      A Pirate and a Puritan look the same on a balance sheet.
    21. 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.
    22. Re:He needs thicker skin by Anonymous Coward · · Score: 1, Informative

      Reading Slashdot is sufficient for achieving this result.

    23. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      I've had similar experiences on IRC. Once I had to convert UTF-16 to UTF-8 in a C program and was then unfamiliar with iconv(3). I went on a C IRC channel and asked what would be the way to go about doing this. The first response was from someone who had never heard of UTF-16 before. He said "What exactly the hell do you think that UTF-16 is, idiot? We're waiting...".

      Another time I was looking for a portable way to access the passwd database while allowing for possible ldap support in the future. I was looking for getent, but I couldn't remember the name of the command. I had people telling me that the only way to do what I wanted was to directly access /etc/passwd and calling me an idiot for not listening to them.

      It seems that IRC is often a place where children hang out when they want to feel important. It's a shame.

    24. 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?
    25. 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.

    26. 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...
    27. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      Unfortunately this seems to be typical with most developers (and I say this as someone who both writes code and supports systems)...

      The attitude is typically "it can't possibly be my code, design or architecture"....

      It comes from being used to controlling and specifying how a program or solution works at such a low technical level, that they forget the big picture...

    28. 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. :>

    29. 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.

    30. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      How the hell is FatELF guaranteed to work correctly on all future architectures? Are you going to compile you program with the magic compiler, that builds binaries for all future processors, even the ones that don't exist or haven't been designed yet?

      What CPU are you going to be running in 2019?

    31. 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.

    32. 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.

    33. 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.

    34. 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.

    35. 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.

    36. 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.

    37. 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.

    38. 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.

    39. 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.

    40. 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.

    41. 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
    42. 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.
    43. 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.

    44. 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.

    45. 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.

    46. 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.

    47. 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?
    48. 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.)

    49. 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.
    50. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      And that's coming from a guy who helped me get Linux running on my PPC 6100 well over a decade ago. David very much knows what he's doing and what he's talking about.

    51. 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..

    52. 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
    53. 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.

    54. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      I guess you didn't get the memo about ARM powered netbooks about to dominate the market "real soon now".

    55. 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?

    56. Re:He needs thicker skin by Anonymous Coward · · Score: 0
    57. 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...
    58. 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.

    59. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      When the typical result of configuring is failure that results in killing the functionality system, that's a bug. I can enter the wrong program into my DVR. I can't make it unable to record or playback any program from that point forward because of it. With MythTV, that dismal result is nearly a given.

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

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

    61. Re:He needs thicker skin by Grishnakh · · Score: 0, Troll

      Obviously, you're a younger person who lives in his parents' basement and has no social life.

      Those of us who are married, and don't live in basements, prefer to watch video files on something called a "TV" (these days basically a very large medium-res monitor with an ATSC tuner built in), which is in front of something called a "sofa" or "couch", and is controlled by a handheld device called a "remote control". To watch video files on this, we either need to connect a laptop computer to the TV (which is a pain since you can't control it with a remote), or we need a "media computer" which runs either MythTV, WMC, SageTV, or something similar, and allows us to select programming with a remote control and play it.

      I know this is very different from your lifestyle where you have a bed right next to your computer desk and computer, but please try to understand that not everyone lives in a basement like you.

    62. 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.

    63. Re:He needs thicker skin by Anonymous Coward · · Score: 0

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

      Maybe you use the code too and it's not just "their stuff" but since you use it it's kind of "your stuff" too? Meritocracies can be a bitch. It's amazing how many guys think they solved some grand challenge problem that the rest of the world doesn't care a great deal about and then they think they're entitled to have everyone thank them and kiss their ass for it. There were a lot of very valid concerns about FatELF, when asked what advantages it has over a shell script that determines which platform is running and which binary to use, Ryan said he sucks at shell scripting, that's just not a good answer.

      There were other great questions, why limit it to ELF? Why not let some architectures share common segments (PPC32 and PPC64 could do this, as could ia-32 and x86-64...) There was also just more fundamental question, what's the underlying use case that is being solved? Nobody got out of line with him, and trust me, if they want it then they more than have the talent to implement it with or without the FatELF patches.

      Isn't it more of a tooling question anyways? Last time I checked, LLVM and GCC don't have a flag that spits out fat binaries that support multiple platforms, this is just a tool that assembles the compiled output, the hard problems of actually creating the compiled output still exist.

    64. 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.

    65. 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.

    66. 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
    67. 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).

    68. 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.

    69. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      So tell me, what are the *technical* - not emo lkm epeen overcompensation - reasons I should not privately fund this project to help out oss?

    70. 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.

    71. 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
    72. 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
    73. 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
    74. Re:He needs thicker skin by BitZtream · · Score: 0, Flamebait

      First off, someone else posted the full coversation:

      http://pastebin.com/m2cfd19dd

      Which is a little less one sided than your truncated version.

      Yes, I admitted it was a configuration mistake, after it was tracked down. Of course you are ignoring the fact that the error was not any of the suggestions given, and that I pointed out that those reasons could not possibly be the problem since I could connect with another client.

      The problem was not properly logged in the debug files.

      The problem was not known or solved by anyone on the channel.

      The problem was accepted as a bug by the devs.

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

      I said thank you because one of those people didn't assume that I was had no idea what I was doing.

      I FOUND THE PROBLEM, and relayed the solution to the channel so MAYBE it could help someone else.

      You entirely missed the point because just like my original statement, you assume you were right when NO ONE in the channel was right, myself included.

      I'm going to have to assume, Anonymous Coward, that you were one of the arrogant and unhelpful assholes who pissed me off in the first place.

      I realize its IRC, and its free help, but it STILL has an effect on people using the software. Considering its the channel that mythtv.org or mythbuntu.org suggests to ask for help in, that DOES mean its the place people go to ask for help and not being an arrogant prick is a good start.

      I have no problem accepting 'Ive never seen that error' or 'your an idiot, you did this wrong' when you actually know the answer.

      But I was told what I did wrong before I even finished stating the problem.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    75. 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
    76. 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.
    77. 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
    78. 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 ...

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

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

    80. 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.

    81. 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.

    82. 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.

    83. 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.

    84. 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.

    85. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      You're a bit of a dick, really, aren't you?

    86. 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
    87. 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.

    88. 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.
    89. 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.
    90. Re:He needs thicker skin by Anonymous Coward · · Score: 0

      Thankfully, though, you're not the King of /. Considering the first person to respond to BitS started off by calling him a liar and claiming to be God, I for one am willing to cut BitS some slack.

    91. 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."

    92. 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 Anonymous Coward · · Score: 0

      Exxxactyl!

    4. 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.

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

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

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

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

      wait that came out wrong...

    7. 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: 0

      Not sure if serious.

    2. 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?

    3. 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. Re:I don't believe it! by Anonymous Coward · · Score: 0

      Programmers are arrogant. Comes with territory.

      The elitism throughout the Linux community as a whole is far beyond anything Steve Jobs could ever hope to instill via RDF. The reason Linux is viewed as inaccessible by the public at large is because the Penguin Brigade have fought tooth and nail to keep it that way.

    5. Re:I don't believe it! by Anonymous Coward · · Score: 0

      Programmers are arrogant. Comes with territory.

      Programmers aren't arrogant. People are. The job is irrelevant...some jobs just have a higher percentage of arrogant individuals. ;)

    6. Re:I don't believe it! by Anonymous Coward · · Score: 0

      The Linux community has already invented six such software managers. Really, FatELF dies because the existing software-manager vested interests have no incentive to allow a solution that removes the need for a software manager in the first place.

  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 Anonymous Coward · · Score: 0

      At least on debian you can just install the 64 bit kernel on the 32 bit install and it works just fine.

    13. 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.

    14. 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?
    15. 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?
    16. 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?
    17. 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?
    18. 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.

    19. 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.

    20. 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.
    21. 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.)

    22. 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?
    23. 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.

    24. 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 ;)

    25. 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?
    26. 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."

    27. 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.

    28. 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.

    29. Re:Solution in search of a problem by Anonymous Coward · · Score: 0

      "with a 64-bit Intel CPU on a system with a 32-bit Intel CPU"

      Fixed that for ya!

      so lets take a linux example where you have 32bit intel, arm, ppc, sparc and also 64bit variants. If the original program size was 1MB, you've already got a 8MB executable, thats just the program executable, what about the libraries it might depend upon? those have to be packaged up into the same package also, instead of having a 10MB download, you might be with a 100MB download or similar

      I guess this is why people are against it, because actually, almost nobody needs this fatelf, software distribution with linux is radically different to that or MacOSX or windows, you basically have an internet connected machine, it's installed with a 32bit or 64bit cpu and you download and install packages onto it from whatever type you need.

      the % of people who install, then require a 64bit version, is frighteningly small, only those who upgrade from 32bit to 64bit need to worry, most computers bought now are 64bit (intels in consumer devices) So these people never have to worry about it, those running 32bit installation who want to take advantage of 64bit, well, it's a bit harder, but pushing the workload of that small % of people onto the great majority of people who DONT NEED IT, is just asking for trouble, of course people would say no.

      those people would just say "reinstall with 64bit versions" bingo, problem goes away without troubling the rest of us.

      MacOSX runs like this because they had a transition period and their software distribution is based on DVD's and downloading files from the websites, you can't ask the user to select 32 or 64, because they have no idea what that is, so the operating system is installed in 32 or 64 bit and macosx knows which you have, then when you download a program, macosx runs the correct version.

      With linux, your operating system can tell directly which version of the software to download, so does so correctly and the problem never existed in the first place, only for those environments without internet, but in those environments, people are smart enough to figure out what they need to do, so the work is pushed onto the small % of those who can do it.

      So I dont see a need for fatelf, nor a problem with people refusing it

  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 Anonymous Coward · · Score: 0
      Back in the OpenStep day, some fat executables were 68000, x86, sparc, and pa-risc.

      Also consider x64 is x64 (sure, there are amd/intel differences, but gcc doesn't go there). But a 386 is very different than a core 2 duo running in 32-bit mode. x86 binaries are often targetted at the 486, which eliminates a lot of new opcodes and goodies in the pentium and beyond.

    3. 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.
    4. 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

    5. 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.

    6. Re:Kind of broken by design by Anonymous Coward · · Score: 0

      That's some of the reason why I like .net. It'll be compiled for x64 or x86. Of course it's JIT not precompiled.

    7. 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.

    8. 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?
    9. Re:Kind of broken by design by Anonymous Coward · · Score: 0

      This problem's been solved for decades now:

      On the clients:

      export PATH=/net/server/tools/`uname -m`/bin:$PATH

      On the server, create:

      /blah/tools/i386/bin
      /blah/tools/i686/bin

      and so on.

    10. 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!
    11. 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.

    12. 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.

    13. 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.

    14. 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.

    15. 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!
    16. 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.

    17. Re:Kind of broken by design by Anonymous Coward · · Score: 0

      ....On MacOS, with 2 architectures,....

      More like 6, I've lost count.

  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 Anonymous Coward · · Score: 0

      Umm.. 'mv' does work the same for files and directories (at least as the source), and is supported for directories directly in the kernel and libc.

    3. 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.

    4. 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!
    5. 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.

    6. 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!
    7. Re:Structure should be at the filesystem level by Anonymous Coward · · Score: 0

      You would like mv and rm to have the -R flag enabled by default? I think that is a poor idea.

    8. 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.

    9. 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 Anonymous Coward · · Score: 0

      No. Java bytecode is very narrowly tailored to the virtual stack machine that is the JVM; ditto for C# and CIL. It's a horrible intermediate representation for targeting register machines, and it's part of the reason why C# and Java JIT compilers can never really quite achieve the overall performance of languages like C, even excluding garbage collecting and other baggage. Much like VLIW compilers and fusion power, success is perpetually just a few more years away.

    10. 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.

    11. 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.

    12. Re:a better idea.. by Anonymous Coward · · Score: 0

      No, he's not. Java enforced the use of the Java type system; but a lower-level intermediate form that can handle ANSI-C would be okay.

      More like... http://research.microsoft.com/en-us/projects/singularity/

    13. 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 Anonymous Coward · · Score: 0

      There's a lot of POWER systems running Linux. There are SPARC and PA-RISC ports of Ubuntu 8.04 LTS even. Intel processors can't compete in multithreading capacity when put next to an UltraSPARC T1 or T2. Serious enterprise Java EE apps rock on the SPARCs, but can saturate a quad-core Xeon pretty easily.

    7. 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. :-)

    8. 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.

    9. 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?

    10. 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.

    11. Re:Game's over, quit holding up the bus. by Anonymous Coward · · Score: 0

      I can see why people are going to get up in arms about this.

      Pun indended? http://www.ubuntu.com/news/arm-linux

    12. Re:Game's over, quit holding up the bus. by Anonymous Coward · · Score: 0

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

      Linux equivalent to OSX are, whether you like it or not,
      for oldies : Alpha, Hppa, Mips, Powerpc, Sparc, x86
      for embedded : Mips, Powerpc, Sparc, ARM
      for server : Powerpc/Cell, Sparc, s390, ia64, x86
      for desktop : x86

      So let's see, if you get ride of oldies and embedded, you get ride of Alpha, Hppa, Mips and ARM.
      Well, you still have 5 arch to support and I didn't even tackle the 32/64 issue.

      But sure, if you meant desktop only ... Oh wait, isn't that new shiny netbook an ARM ?

    13. 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.

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

      5 for osx: you forgot ppc64

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

      5 for osx: you forgot ppc64

      So has Apple. *rimshot*

  15. Isn't someone going to ask ... by oGMo · · Score: 0, Flamebait

    ...who the hell distributes Linux binaries anyway? On OSX, most software you get is a binary. As you said, 2 platforms (one dying), universal binaries sortof make sense just so vendors can put things in a single box, use a single icon, and not care about writing detection code for something so fundamental.

    On Linux the main binaries you get are either from your distribution (which already knows all about your architecture, so why bother), or maybe the occasional third party (nvidia? who already maintains all this separately). Maintaining N binaries is, as you said, difficult if not impossible for Linux. As is distributing binaries anyway.

    As a poster above said: solution in search of a problem.

    --

    Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    1. Re:Isn't someone going to ask ... by Joe+Mucchiello · · Score: 4, Interesting

      Commercial Games. That's who.

    2. 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.
    3. 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

    4. 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.

    5. 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...)
    6. 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
    7. 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...

    8. 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!
    9. 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!
    10. 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.

    11. 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.

    12. Re:Isn't someone going to ask ... by Anonymous Coward · · Score: 0

      Its just as easy or even easier to hide the binaries and provide the user with an executable script that runs the correct binary.

    13. Re:Isn't someone going to ask ... by Anonymous Coward · · Score: 0

      I'm quite sure that the inability to ship StarCraft 2 for Linux/x86 and StarCraft 2 for Linux/Sparc as one executable, is not why Blizzard isn't making StarCraft 2 for Linux.

      Even if there *ever* is a StarCraft 2 for Linux, it will be x86 only. If 3% of potential SC2 customers run Linux, and 1% of those are non-x86, that's 0.03% of the total number of potential customers.

      If we can't convince them that 3% is worth making SC2 for, there's no way we are going to convince them to make SC2 for 0.03%. Certainly not by allowing them to take the executables from two builds (each build being just as complicated as before) and putting them into one file. When was the last time you saw a commercial game installing only one file anyway? Game developers handle more than one file all the time.

  16. 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?
  17. 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.

  18. Isn't that what Java is supposed to do? by Anonymous Coward · · Score: 0, Redundant

    Why have universal binaries when you have Java to do that? To do that at the binary level seems like it's pretty unnecessary. If you want performance, write it directly for that platform, and if you want universal accessibility, write it in Java. If he's doing it for his own personal enjoyment, that's cool, but if he thinks he's doing something useful, he's sorely wrong.

  19. 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
  20. Re: whatever by Yvan256 · · Score: 1, Funny

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

  21. 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 Anonymous Coward · · Score: 0

      Not related to your point, but who says you can't use other package managers on Gentoo? Sure, its got its own better package manager, but it is the distro of choice for good reason.

    2. 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.

    3. 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.

  22. 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 Anonymous Coward · · Score: 0

      Off the top of my head? I don't have to be a fucking packaging genius to turn my
      artfully crafted software into something that will install on whatever you're using.

    5. 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.

    6. 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
    7. 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
    8. 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.

    9. 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
    10. Re:BS: "tip of the iceberg" by Khyber · · Score: 0, Redundant

      scripts break too easily.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    11. 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 /.
    12. 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.

    13. 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.
    14. 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).

    15. 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 /.
    16. 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
    17. 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
    18. 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.
    19. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      OS X running on a tiny set of hardware compared and 1 GUI, to real open *nix systems. Besides, didn't Apple kill UB?

    20. 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.

    21. 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.

    22. 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"?

    23. 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
    24. 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.

    25. 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
    26. 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?

    27. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      No.

    28. 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.

    29. 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!
    30. 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!
    31. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      Where did Aunt Millie get her 32-bit PPC from, an antiques shop? Seriously, this is a ludicrous scenario. Like it or not, x86 has conquered the entire modern computing world.

    32. 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!
    33. 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
    34. 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.

    35. 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
    36. 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.

    37. 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
    38. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      You should check out the package manager Conary - it has many of the features you are wishing for. Foresight linux is a nice distro based on it.

    39. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      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?

      That's the most retarded thing I've read in this entire discussion.

    40. 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.

    41. 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.
    42. 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...

    43. 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.

    44. Re:BS: "tip of the iceberg" by PeterBrett · · Score: 0

      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...

      Whoa there, chum. Let's get some facts in there.

      I run Fedora, a well-known Linux distribution that practically has "open source is king" as its slogan. It uses RPM, a well-known package system. Funnily enough, I just updated my system, and, guess what, the update process downloaded binary patches for my existing packages. Well gosh.

      And, even stranger, I have a file on my system called '/etc/dovecot.conf.rpmnew'. Believe it or not, it's there because when I last updated my Dovecot package, RPM detected that I had modified my configuration file and carefully didn't clobber it.

      You clearly have no idea about the current state of Linux package management technology. Don't let that get in the way of your ignorance-fueled rant though!

    45. 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
    46. Re:BS: "tip of the iceberg" by jcr · · Score: 0, Troll

      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.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    47. 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.

    48. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      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.

      Uh. That works automagically with an automounter. No need for scripts or similar stuff. Just automounter and nfs and you are good to go if you have a server.

    49. 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?
    50. 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.

    51. 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).

    52. 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.)

    53. 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.

    54. 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.

    55. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      In short from personal experience: rpm is slow as molasses (seriously, compiling from source with gentoo seems to be about the same speed), deb is "too simple", e.g. has no support for binary patches etc.

    56. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      You need to take a look at Paludis and Exherbo.

    57. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      Well some do, I would say most of us don't care.

    58. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      you forgot "or computers"

    59. 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.

    60. 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
    61. 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."
    62. Re:BS: "tip of the iceberg" by salesgeek · · Score: 1

      You were doing ok until this:

      (And maybe Office 2007.)

      #fail

      --
      -- $G
    63. 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.
    64. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      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.

      Ubuntu Karmic Koala does not send the whole thing (however I believe that they still don't use binary patches)

      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 may be true for non-systemwide configuration files, but for configuration files, both dpkg and pacman either replaces the current file (leaving a backup of the original), or saves the new file with a different extension. dpkg may also ask for confirmation on some cases.

      You want the bleeding-edge version of something? You just want to patch a broken package?

      Try Arch (www.archlinux.org) They tend to have the latest and greatest versions, and it's incredibly easy to produce your own package that integrates nicely with the package manager

    65. 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.

    66. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      Unless it's not available in the repos in which case it Just Won't Work.

      You mean like World of Goo or IBM DB2 or any one of the other proprietary closed source games and apps I can download right now for Linux that "Just Work". I really wish Mac advocates would update their understanding of what Linux is and isn't past that one time in 1997 they tried slackware on a spare PC.

    67. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      But some religions do provide clear benefits. They improve survivability/fitness of a group relative to other groups in many ways. Religions can improve group cooperation and cohesiveness, encourage altruistic behaviour in members that are normally not prone to such behaviours. Of course with some religions that relative improvement is more due to reducing the survivability of other groups ;). Also, it is medically proven that the placebo effect works well in many cases. Having a religion makes it easier to take advantage of it :).

      There are clear benefits to using Windows.

      With Windows I can use the same desktop O/S for more than 3 years and still get support and updates for it. Microsoft also puts more effort into backward compatibility than Linux developers. Also sound is more likely to work properly on windows than it is on a linux distro, and that can't even be blamed on lack of "hardware drivers". And you can run Microsoft Office. Which is still better than OpenOffice despite the MSO2007 "ribbon". Even the MSO clone Kingsoft Office is better than OpenOffice.

    68. 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 ;).

      --
    69. 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.
    70. 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.
    71. 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)
    72. 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.

    73. 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
    74. 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.

    75. 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!
    76. 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!
    77. 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!
    78. 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.

    79. 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.

    80. 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.

    81. 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.

    82. 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.

    83. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      "Unless it's not available in the repos in which case it Just Won't Work. "

      And what if the fat binary isn't made?

      In that case it Just Won't Work.

      Like much of the fat binaries.

      What fat binaries meant for Apple was when selling software they could just wrap up the one product and sell that one product without having in small or large letters "Only works on 68000 Macs" which would be completely unobvious to the average Mac user and result in returns and LOST SALES.

      See that last bit?

      Now when you BUY Red Hat you BUY something that installs on multiple architectures as allowed by RH. It doesn't use fat binaries, it uses fat packages where the binary appropriate to the install is, um, installed.

      Ergo for RH this is a solved issue.

      Or any of the sellers of Linux.

      So why would they want this?

      Oracle MIGHT, and similar sellers of additional applications. But then again, Oracle didn't use fat binaries on Mac.

    84. 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.

    85. 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 /.
    86. 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
    87. Re:BS: "tip of the iceberg" by danieltdp · · Score: 1

      Could you point me were did I said it was easier on Windows?

      --
      -- dnl
    88. 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.
    89. 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.

    90. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      There have been utilities to remove unused/nedded architecture support from fat binaries since they existed, originally supporting 68k & ppc.

      Anyways, AFAIC I'm with the various devs on this, this is a solution with many costs for a problem that really doesn't exist. With that in mind, I'm surprised that Apple is still maintaining fat binaries for OSX since they've completely moved to x86 for the primary releases for some years now.

    91. 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

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

      Scripts are not as robust. Fat binaries are more useful and more convenient.

    93. 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.

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

      Because?

      --
      Quick way to get 30% Funny 70% Troll: defend Opera browser on /.
    95. 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.

    96. 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!

    97. 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.

    98. 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.
    99. 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.
    100. 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.

    101. 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.

    102. 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.

    103. Re:BS: "tip of the iceberg" by Anonymous Coward · · Score: 0

      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.

      It is the actual binary executable that is "fat" in OS X. It's not a .dmg or .app trick. If you run "file " on a fat binary, it will list multiple architectures.

      I still don't fully understand the usefulness of this in Linux, I just want to know why Sun doesn't do it for x86/sparc/32/64 (not that 32/64 is really a problem for them)

    104. 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.

    105. 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!
    106. 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!
    107. 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!
    108. 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."
    109. 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.
    110. 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.
    111. 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?
    112. 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)
    113. Re:BS: "tip of the iceberg" by Simon80 · · Score: 1

      Now you have to be a FatELF genius instead. Problem solved.

    114. 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.

    115. 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.
  23. 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.

  24. 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.

  25. 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.

  26. Re:Rude? by Yvan256 · · Score: 0, Offtopic

    Wow, you're a really profane motherfu...

    oh wait.

  27. 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, ...).

  28. Universal binaries? How about universal installs by Anonymous Coward · · Score: 0

    Instead of pushing for universal binaries (which means interpreted code across different CPU architectures), how about a universal installer (instead of RPM, DEB, .TAR.GZ)...and speeding up the install process instead of having to recompile every file?

  29. Re:Wait, what does Con Kolivas have to do with thi by idontgno · · Score: 0, Flamebait

    Steve Jobs, is that you?

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  30. 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.

  31. 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 Anonymous Coward · · Score: 0

      A 1 penny cut to margins is 100K if you ship 10 million units. That's equivalent to having to fire one or more of your employees. Sounds like a big deal to me.

      I know, whoosh..

    2. Re:Forget fat binaries for Linux by Anonymous Coward · · Score: 0

      Various vendors have been shipping fat binaries for integrated microcontrollers for years. This sort of thing tends to be useful when you have various controllers integrated in a single block and wish to treat the codec for the block as an all-encompassing thing. Relocation takes care of mapping the various bits to the proper controllers. While it does make distribution easier, it also just encourages people to develop abstract binary blobs for poorly or completely undocumented hardware blocks, and it's almost always been more trouble than it was ever worth. TI's dynamic coff is a good example of this.

      Also note that none of the ELF stuff would apply to your microcontroller examples since none of those will handle COW, and are thus unable to support ELF outside of something like FDPIC.

    3. 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.

  32. 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.

  33. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    I understand the problem they are trying to solve. I ran into it myself. Downloaded a 64 bit x86 distro. For my 32 bit computer. However, if I had spent like 2 seconds reading the page I would have realized my error 4 hours earlier...

    The reality is if you are distributing the source code 'fat' binaries do not make a lot of sense. A distro should be lowest common denominator. Then in the background automatically recompile the code for the current computer with optimizations cranked out for it. Now that is an interesting project... Or do like the apple/.net guys and JIT it.

  34. 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 Anonymous Coward · · Score: 0

      But the truth is the Linux movement needs every warm body it can to fight Microsoft.

      That's the part I hate about the OSS movement. Why does it have to be about fighting Microsoft? Why can't it be about developing good and useful software?

    3. Re:I sympathize with you. by iroll · · Score: 1

      Same thing.

      --
      Repetition does not transform a lie into the truth. - FDR
    4. 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?

    5. 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.

    6. 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.

    7. Re:I sympathize with you. by ckaminski · · Score: 0, Troll

      That's because people are getting sick of the stupid "Documents and Settings" and "My Documents". Yah, no shit, I made them, OF COURSE THEY'RE MINE!

      Grrrr. The dude who came up with "\Program Files" and not "\Apps" needs to be shot. Preferably one tiny little appendage at a time.

    8. Re:I sympathize with you. by Anonymous Coward · · Score: 0

      owe gawed..

      i guess we can expect for the next 24 months or more, to hear parroted over and over "don't FIGHT microsoft" "be better then microsoft"

      nice mantra. devoid of any actual meaning.

      did it ever occur to you that most FOSS developers aren't worried about your false dilemma?

    9. Re:I sympathize with you. by iroll · · Score: 0, Troll

      Wow! Rage, hysteria, and I think you actually got some flecks of spittle on me through the internet!

      I quipped that developing good and useful software would be the same as fighting Microsoft.

      Motive aside, they are the same thing. If you make better and more useful software than MS does, people will use it (Firefox over IE, iTunes over WMP).

      In conclusion: NO U

      --
      Repetition does not transform a lie into the truth. - FDR
    10. 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.

    11. 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.

    12. 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.

    13. 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.

    14. 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
    15. 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.

    16. 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
    17. 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
    18. 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...

    19. 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??

  35. 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 Anonymous Coward · · Score: 0

      C has been the "byte code" for compilers of most other languages. Dennis Ritchie should be mighty proud.

    3. 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.

  36. 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.

  37. 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 Anonymous Coward · · Score: 0

      (even with a Makefile and shell scripts if you're old-school).

      Are makefiles and shell scripts considered "old school" nowadays? Oh dear...

    2. 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

  38. "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 Anonymous Coward · · Score: 0

      Can you please provide a source where you base your claims?

    2. Re:"That's a stupid idea" vs. "You are stupid" by Anonymous Coward · · Score: 0

      [citation needed]

    3. Re:"That's a stupid idea" vs. "You are stupid" by Anonymous Coward · · Score: 0

      I've seen far more of "You are stupid" type comments in the Linux/insert-other-open-source-here then I have of "That's a stupid idea". So much so I think some members of the communities become members just to berate others and let themselves feel high and mighty about it.

      This is why, for me personally, after some time I left. I even stopped using/following major open source projects. Not worth it at all IMO. I've personally told people who wanted to contribute to various known projects not too unless you like being burned at the stake for no reason.

      Oh well, right?

    4. Re:"That's a stupid idea" vs. "You are stupid" by RiotingPacifist · · Score: 1

      Links or it never happened!

      --
      IranAir Flight 655 never forget!
    5. Re:"That's a stupid idea" vs. "You are stupid" by microbee · · Score: 1

      Yeah, otherwise the GP's comment is stupid.

    6. Re:"That's a stupid idea" vs. "You are stupid" by Anonymous Coward · · Score: 0

      Of course they insulted you! Your reputation precedes you, Wowbagger. The Great Prophet Zarquon's gonna put you in your place, just as soon he gets back. Aaaaaaany day now.

    7. Re:"That's a stupid idea" vs. "You are stupid" by Anonymous Coward · · Score: 0

      But someone smart will not bother the LKML with a stupid idea, therefore he must be stupid. Simple deduction.

    8. Re:"That's a stupid idea" vs. "You are stupid" by Anonymous Coward · · Score: 0

      How is this insightful? I read the lkml thread here and no one said anyone was stupid. In fact there wasn't a single insult delivered unless you consider someone saying your idea isn't very good to be insulting.

    9. 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?

  39. 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?

  40. Re:Fat Elf? Nah, Porky Gnome is better.. by Anonymous Coward · · Score: 0

    This post would be quite funny if it wasn't so actually feasible !

  41. 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?

  42. 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
  43. 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.

  44. 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.

  45. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    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?

    If you Linux folks out there want broader acceptance, you have to recognize that your own forking across architecture, distribution, patch level, ABI compatibility, etc., just isn't cutting the mustard with many larger businesses. Those that do, you will notice, generally standardize on a single platform (distro, arch, etc.), and are just as subject to vendor lock-in as anyone running Microsoft is, if only because of support costs. Those minor differences in how various distros do package management are huge differences to IT departments who already don't have the bandwidth to meet their customer (business) needs.

    That IT guy I mentioned above doesn't want to take the time to compile that source code or find the right USB stick for the guy's laptop, he just wants it to /work/.

  46. 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.

  47. Bloat-ELF by Anonymous Coward · · Score: 0

    Someone should tell that guy to stop reinventing the wheel and use Java.
    Virtual Machine? JIT? no... no... lets distribute EVERY architecture's native code in one big file instead.

    His idea is idiotic and the kernel dev's had every right to call him out.
    Having a thought-out idea doesn't entitle you to JACK CRAP

    1. Re:Bloat-ELF by OrangeTide · · Score: 0, Troll

      Fat binaries are still smaller than the bloated .jar nightmare that Java creates. And we have real world examples of where fat binaries work, on OSX. Adding 300K or so to a package instead of having two or three different versions of a file saves disk space because a pretty large percentage of people just mirror everything they see (packrat human behavior).

      The data files don't need to be duplicated just the executables and libraries. And what is even nicer is that fat binaries let you strip the extraneous crap off your binaries to save disk space, if you so choose.

      Being a person who has to maintain cross-compile tools for multiple architectures and point different people to different shared directories for those tools has me wishing for some real fat binary support on Linux. Maybe it isn't useful to a Java lover like yourself, but frankly it's bullshit that you think your way is the only way to do development. And that kind of attitude one of the many reasons system programmers don't like Java/.NET programmers.

      --
      “Common sense is not so common.” — Voltaire
  48. 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.

  49. 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.

  50. 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/

  51. 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.

  52. 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?

  53. 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.

  54. 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.
  55. More Sense by omb · · Score: 0, Troll

    Do you realize that this is not 'statify' or something, this proposal is to put i686, 86_64, Power ... binaries into one ELF file and have the OS binary loader pick the right one. I know disk space is cheap but this is plainly the dumbest idea ever.

    There are lots of ways to package an install script and a set of individual binaries, including NON ELF, in the same package. Further it does nothing about pre- and co- requisites and .so object versioning.

    So I am not surprised that he got a hard time on LKML.

    I am also getting very tired of the _kernel_developers_are_rude_ meme, they are not, and are usually very helpful, but idiotic arguments, defense of patches that cause regressions, untested code can quickly change that. Sometimes even very experienced developers, like all of us at one time or another, loose perspective and loose the big picture. If you are a shrinking violet, fixated eg Larry McVoy, or plain confused do something else or listen to advice.

  56. 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 Anonymous Coward · · Score: 0

      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 [...] it just does not work because the binaries will conflict.

      "FatElf", for when appending ${NFS_PATH}/$(/bin/uname -m)/ to the users path at login is too complex?

      Sorry, I've yet to see a single compelling or rational argument for fat binaries on linux.

    4. 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.

    5. 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?
    6. 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.
    7. 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?
  57. Re: whatever by Anonymous Coward · · Score: 0

    Slashdot has gone to hell.

    Take that troll mod as a badge of honor. You've managed to offend someone who deserved to be offended.

  58. 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.
  59. 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.
  60. 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.
  61. 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.

  62. 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.

  63. 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.
  64. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    This guy worked in the closed-source world of video games

    What are you talking about? Doom and Nethack are both open-source. What other games are worth playing?

  65. Time to FatFork by Anonymous Coward · · Score: 0

    If someone really is willing to try this idea why not fork Linux & libc to one huge binary compatibility tree. When the stuff really starts to work I'm sure there will be FatMerges.

  66. close by Anonymous Coward · · Score: 0

    wherever you have people with passion, you will have hecklers and haters. should someone try to have a significant improvement to a project, there will always be those that say, "but that's not how _I_ like it! it's fine just how it is!"

    that aside, i'm against the idea of binaries that are bloated simply so someone can have a slightly easier time distributing it.

    additionally, not all programs can install on different architectures because they use ASM for optimization (see: ZSNES). should it say, "ha ha ha! thanks for downloading this but it wont run on your system sucker!"?

    one last thing, i dont want lazy vendors putting out drivers/libs that are slower and fatter because it's easier for them.

  67. 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.

  68. Because ... by Anonymous Coward · · Score: 0

    ... No one willing uses a java applet. And besides, geeks don't like slow bloated non-deterministic environments to run in; they like to skirt the knives below from above because here in geekville, we don't take java - we take XTAL METH with a chaser of Drano !!

  69. 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."
  70. 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.

  71. 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.

  72. "some showed up just to be rude..." by Anita+Coney · · Score: 0, Redundant

    Rude linuxheads?! I find that hard to believe.

    Btw, modding me down, as you most certainly will, only proves my sarcasm was justified.

    --
    If someone says he and his monkey have nothing to hide, they almost certainly do.
    1. 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.

  73. 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.

  74. 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."
  75. 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.

  76. 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)

  77. 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.

  78. 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)

  79. But it's so much harder to write exploits by puddles · · Score: 0

    Now instead of one easy target, your sploits have to work on 32- and 64-bit kernel, as well as on SPARC, ARM, PPC, MIPS. Where does one find the time?!?

  80. Re:Wait, what does Con Kolivas have to do with thi by Anonymous Coward · · Score: 0

    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"

    http://en.wikipedia.org/wiki/Portable_Executable

  81. 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.

  82. 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.

  83. 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.

  84. ZOMG TEH LUNIX!!!! by Anonymous Coward · · Score: 0

    Another example of Linux's "clear superiority" to Windows.

  85. 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.

  86. 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
  87. 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.

  88. Re:Wait, what does Con Kolivas have to do with thi by Stu22 · · Score: 1

    Now teach grandma how to use it.

  89. 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.

  90. Binary Vs Source by Anonymous Coward · · Score: 0

    Doesn't anyone else see the polar opposites here?

    I mean, Linux is all about open source and there is a guy pushing in the opposite direction by encouraging binary packaging making it possible to lock up source and LKML wasn't too kind to him, and he is surprized/upset? This may not be the only reason he and his stuff wasn't taken seriously, but I am positive this should be reason enough.

  91. 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.
  92. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    Yeah, great, if he wants to permanently modify that machine, and it has network connectivity, and so on.

  93. 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.
  94. 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
  95. 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.

  96. 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'
  97. 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.

  98. 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)

    1. Re:too big or not enough? by Anonymous Coward · · Score: 0

      I can't believe that he is in charge of what goes into glibc.

  99. 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.

  100. 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.
  101. 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.

  102. 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.

  103. 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.

  104. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    Her kids have told her over and over again

    You've obviously never dealt with an older computer user. All they want to do is "whatever makes this popup go away." [Yes] is one of the buttons that does that.

  105. Re:Wait, what does Con Kolivas have to do with thi by Anonymous Coward · · Score: 0

    (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

    It's not a "deficiency", 64-bit pointers are always going to be twice as big as 32-bit pointers, by definition, and shuffling twice as much data around is naturally going to be slower.

    then there is almost no point in using it!

    The point is that it allows a much larger address space, so applications can work with multi-gigbyte data (movies, big scientific computations, etc) much more easily. On these architectures, you only use 64-bit for applications that can benefit from said larger address space.

    Binaries can be made PIE and on >4gb can be addressed with PAE (though I understand that is an x86 technology).

    PAE, besides being x86-specific, only allows the system to address more than 4GB of physical RAM. It doesn't increase the address space available to userland processes.

    It sounds like sparc and ppc REALLY dropped the ball architecturally if people run 32bit binaries for speed reasons.

    More like x86 dropped the ball by having so few registers in 32-bit mode, so people have to use 64-bit to compensate.

  106. 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.
  107. This is not Java - its more like LLVM by thaig · · Score: 1
    --
    This is all just my personal opinion.
  108. 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
  109. Was there a point to this idea? by CrosseyedPainless · · Score: 0, Flamebait

    I mean, really, Apple did it back in the day because their customers were too stupid to know what a CPU was-- I mean, were too busy creating and thinking differently to care whether they had a 68K or a PowerPC computer.

    But why now? And for Linux?!!? Sweet fancy Moses, if you can't figure out what type of binary you need, you're just not going to get too far with the average Linux distribution.

    The fact that this guy got as far down the development path as he did, before he noticed all the people screaming "GO AWAY! WE DON'T NEED THIS!!" is a clear sign that he's got some kind of cognitive issue.

    Ryan-- dude-- go solve a real problem. This wasn't one.

  110. 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.

  111. 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.

  112. Re:Wait, what does Con Kolivas have to do with thi by Anonymous Coward · · Score: 0

    "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."

    You forgot the other reasons: NIH, jealousy, personal issues, etc.

  113. As a developer by Anonymous Coward · · Score: 0

    i dont see anything that would streamline or help my distribute binaries on linux.
    I would still need to crosscompile. If there was architecture specific hacks i would still need to maintain these just as much... and well, i would be doing exactly the same things i would to create a 32 and 64 bit binary, which are then merged into a fat binary. So, i guess it would help me just need to upload one file?

    It's still not like i can test the 64bit code, unless i had a system to run it on (or 32bit if it was the other way around). And if i had, then i could easily just clone my repo and compile it on both machines.

    What WOULD be nice would be to be able to release some llvm bitcode version, which is compiled instantly at runtime (or at install time). That would be the nice way to ship things (and it would have other nice features).

  114. 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.
  115. The rude comment isn't an isolated event by Dudeman_Jones · · Score: 0, Troll

    I remember back when I was trying to make the full switch to linux, and I updated my kernel and drivers and to my surprise my video card had decent drivers out of the box. I went onto the local irc channel to ask if anyone knew anything about it out of curiosity. I think my question was worded something like, "Yea I was impressed, I didn't have to jump through the usual hoops to get my video card working fully this time. It was as easy as when I install Windows." I suddenly found myself being berated by both the chatters and the IRC mod at the time. The one comment that sticks out in my mind was, "You deserve to use Windows." All I was doing was asking a simple damn question, in praise of my latest linux install working out of the box! I can't help but think that this same bigoted mindset helped to doom this fairly admirable project, because after attempting to deal with people such as this, it's not even a stretch for me to imagine some linux flavor's project manager going, "Why would we want to impliment a universal standard with Windows? Micro$oft should just do what we do. Windows is a crappy operating system anyway and if you are trying to enable it's use then you deserve it too."

  116. 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.
  117. 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.
  118. 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.

  119. Re:Wait, what does Con Kolivas have to do with thi by Anonymous Coward · · Score: 0

    FatElf requires the distros to support it. That means you have to get the crap compiled for every arch THEN joined into a single binary, which means any package needs to wait for every arch auto-builder to get its job done before it is uploaded (forget about cross-compiling, it doesn't work nearly as well as you might think).

    Just for ia32 and amd64, which I suppose many people think are the only arches a distro supports, it would double the file sizes, which doubles download size. Now, Bandwidth is *extremely* expensive. We are not talking about your el-cheap-o ADSL line here, we're talking about the bandwidth used by a mirror network over a hundred hosts all over the world, sometimes in places where bandwidth is 10x more expensive than anywhere in the USA. If that bandwidth is donated, it is even more valuable, because you lose the entire mirror site if it gets too hard for them to bear.

    It is not going to happen. We don't take extra complexity for stuff that won't happen. It is that simple.

  120. "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
  121. "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.

  122. 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.
  123. 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 */
  124. Try reading, thanks by Anonymous Coward · · Score: 0

    "stop pretending your opinion is valid."

    When I said that, an intelligent person would have understood that I don't care what you think.

    You did not (which says a lot about you), and wasted your time composing a reply which I did not read.

    Try getting someone smarter than you to read for you, and explain things to you slowly, so you can avoid such embarrassments in the future.

  125. Re:Rejecting solutions to problems that we don't h by Anonymous Coward · · Score: 0

    Yes, because ./progname-`unmae -s`-`uname -m` is such a long and hard to write shell script.

  126. Re:FAT ELF crossed with Elephant by syousef · · Score: 0, Troll

    A troll with score -1?

    A slashdot community without a sense of humour, that couldn't tell the difference between a troll and a joke to save themselves, and a self-rigthteous twit who likes to lay in the boot.

    --
    These posts express my own personal views, not those of my employer
  127. 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.

  128. 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
  129. 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.

  130. 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
  131. 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.

  132. 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!
  133. ZOMG! No more Christmas! by funwithBSD · · Score: 1

    They killed the jolly old fatELF.

    --
    Never answer an anonymous letter. - Yogi Berra
  134. Why FatELF is not a good idea by Anonymous Coward · · Score: 0

    There is a very thorough blog post about why nobody really wants FatELF at

    http://blog.flameeyes.eu/2009/11/04/elf-should-rather-be-on-a-diet.

  135. 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'
  136. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    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.

    I want to live in the world you live in. Are you woken up by butterflies every day, the birds sing praising your awesomeness and does Carmen Electra bring you breakfast to bed?

  137. Re:Universal binaries? How about universal install by Anonymous Coward · · Score: 0

    Instead of pushing for universal binaries (which means interpreted code across different CPU architectures)

    No it doesn't.

    Fat binaries is when you compile your program for multiple CPU architectures, and then use a program that puts all those programs into one big ELF file.

    Unlike the normal situation, where you compile your program for multiple CPU architectures, and then use a program that puts all of those into one big ZIP file.

    With fat binaries, the kernel needs to know which parts of the ELF file it's supposed to load. Where as with ZIP files (or tar.gz or Loki Installer .run), only the installer needs to care about which file is the right one.

    The LKML people apparently believe that the job is best left to the installer.

  138. Lets to the accounting here... by Anonymous Coward · · Score: 0

    Lets to the accounting here. From Ryan himself there were these groups:

    1) Some got the idea and disagreed,

    2) some didn't seem to hear what I was saying,

    3) and some showed up just to be rude.

    So if #1 were more than the number who liked the idea, the idea is generally unwanted and grounding it isn't wrong.

    NOTHING ELSE MATTERS.

    Who CARES if someone turned up to be rude or just gainsay everything? Ignore them and you still have a reason to fail the project. Group 2 can be construed as "they didn't understand me cos they're thick" but could also be explained by "I didn't sell the idea well". And group 3 seems to be "I'm being unfairly harangued". Guess what, kid? This is the internet. Live with it. People being rude is no reason for the project to fail, so why bring it up? Bring up "stop being rude" under "how to listen to ideas". Not "Why we're pulling the project" because the rudeness shouldn't have had an impact on it and if it did, then you're the problem there.

  139. 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.
  140. Re:Wait, what does Con Kolivas have to do with thi by Anonymous Coward · · Score: 0

    "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." But Linux doesn't WANT to be a threat to windows.

    Linux wants to exist despite windows efforts to kill it.

    That's all.

    90% windows and easy interoperability between heterogenous windows/linux/other networks and linux is fine. It doesn't NEED 50% linux or even 10%. It needs to be allowed to exist.

  141. 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.
  142. Prove Ulrich wrong by Anonymous Coward · · Score: 0

    Prove Ulrich wrong.

    "When you drop an apple it will fall down"

    -- Sir Isaac Newton

    "640k ought to be enough for anybody."

    -- Sir Bill Gates

    (one is right one is wrong. That one is wrong doesn't make the other wrong).

  143. 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.
  144. 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.
  145. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    What do you mean "sound editing"? There are some very good synthesis programs and audio editors availiable for easy installation from most distro's repositories. I've used sweep as an audio editor for a long time, some VO's I know use audacity on OSX and windows and they do so in preference to bias peak, sound booth, pro-tools and audition.

    Apples app store works quite well and androids app store should do similarly. I understand games are now being distributed via "Steam" and other online repositories. If the model of distribution employed by linux is so bad, why then is it the emerging trend in the proprietry software industry? Fat binaries would IMHO be a step backwards for software installation under linux. Surely what you meant to say was...

    And then people wonder why there are no good third party viruses for desktop Linux

    And you'd have a point, but not one that I care to see addressed. All of this ignores the fact that it's been possible to wrap binaries for more than one arch in a single "fat" shell script for decades.

  146. Re:Story of binary compatibility is short and trag by Anonymous Coward · · Score: 0

    Mod parent up. I've done the exact same thing he outlines many times and he's precisely correct. The only caveat is using libraries that have an explicit GPL license, GPL rather than LGPL is applied on purpose to some libraries to force any software made with those libraries to be released as open source simply by linking UNLESS you obtain a separate license. This is actually a very good thing, and I should note most libraries I've dealt that were GPL when we needed a seperate license were obtained for a cheaper licensing fee than their straight up commercial counterparts. Closed source commercial software is easily a possibility on Linux, and it is not much harder to achieve than open sourced commercial software.

  147. 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.
  148. 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.)

  149. 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.

  150. 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.
  151. 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.

  152. 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.

  153. 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.
  154. 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.