Slashdot Mirror


LimeWire Goes Open-Source

The famous Anonymous Coward writes: "I saw over on Gnutella News that LimeWire LLC announced that they're releasing the LimeWire codebase under the GPL license and that they've setup limewire.org as a site dedicated to Gnutella and LimeWire development. LimeWire's codebase is currently being used by two of the most popular Gnutella clients: LimeWire and SwapNut. As far as I know, this is the first time a formerly closed-source file-sharing codebase this popular has been open-sourced." gtk-gnutella is coming along nicely for Linux, but more competition is always better.

32 of 180 comments (clear)

  1. Works great on Windows. by Mustang+Matt · · Score: 2

    I've been using the Windows version for a while now.

    They keep adding improvements fairly steadily. Each release is more stable and has better features than the last.

    They really had nothing to lose going open source.

    --
    The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
    1. Re:Works great on Windows. by brunes69 · · Score: 2

      Just to clarify, there is no "Windows version", "Linux version", or "Mac version". It is a 100% Java pprogram, and all versions are identical. You can run the LimeWire.jar file from an JVM and see the exact same client. The only difference between prepackaged versions is they wrap the JAR file in an executable launcher for that platform ( A .EXE for Windows, ELF for Linux, etc.)

    2. Re:Works great on Windows. by Enahs · · Score: 3, Informative
      Hello,



      Like many other closed-source Java apps, LimeWire is prepackaged for different platforms to make it easier for one to install the client on various platforms. For Linux, one gets a nice Bash script that allegedly makes running LimeWire easier. ;-) Similarly, the MacOS version has a nice installer and a nice script that makes starting the client much easier to start up.



      Hope that clears things up a bit.

      --
      Stating on Slashdot that I like cheese since 1997.
    3. Re:Works great on Windows. by brunes69 · · Score: 2

      Just because the installer is different doesn't make the client any different. What I said still applys.

  2. wow cool by jon_c · · Score: 3, Interesting

    limewire is one of my favorite gnutella clients, also the first decent windowed java app I've seen. I commend them for doing this, but have to wonder how this fits into there business plane. They just made a deal with File Metrics Inc to brand Limewire tech as SwapNut. but why would they make there source (read: IP) free if there business plane is to license there IP?

    -Jon

    --
    this is my sig.
    1. Re:wow cool by Enahs · · Score: 2
      limewire is one of my favorite gnutella clients

      Wow, I wonder if you would have said that before this annoucement.

      Don't know about the original poster, but I would have. Lots of nice features that other clients lack. On the worst end, I'd put Mactella. I use LimeWire at home on my Linux box, and at work on my Mac box. Nice li'l app.

      --
      Stating on Slashdot that I like cheese since 1997.
  3. Reply to Poster Commentary by dragons_flight · · Score: 2

    gtk-gnutella is coming along nicely for Linux, but more competition is always better.

    No offense Michael, but I disagree. I don't know how it is with file sharing systems on Linux, but Windows is glutted with the things. I've used a few and my college roommate experimented with tons of the things. I don't want a lot of variety, I just want a simple interface and a simple system that finds what I want and is relatively lawsuit proof.

    Google is the ideal for web searching and something approaching that caliber for file searching would be wonderful. Make it easy, stable to use, and uncomplicated, then get everyone to use it (or make it interoperable with other networks) so that you have the best chance of finding what you want.

    1. Re:Reply to Poster Commentary by Drakino · · Score: 2
      No offense Michael, but I disagree. I don't know how it is with file sharing systems on Linux, but Windows is glutted with the things.

      Limewire supports and uses the gnutella network. The competition he was discussing was with the different gnutella programs, just like Eudora, Netscape Mail, Outlook and many others support the same standards, but provide different interfaces and features.

      I do agree though that the peer to peer file sharing needs to be standardized. It's just as bad at the network file sharing protocals, like NFS, SMB, Appletalk, etc... I've seen EDonkey, Gnutella, Napster, and several others I can't remember. Some introduce nice ideas, but the overall community would be better off if that energy went into one standard. Why can't Gnutella be adapted to support EDonkeys fragemented download prcedure?

      Oh well, it's yet another example of how the software industry can't learn from the mistakes of the hardware side. Standards have greatly improved the hardware market, imagine what will happen when almost the entire software market sees it this way.

  4. Re:Not to rip on the limewire people, but... by dangermouse · · Score: 2
    So, look at it this way... just like I already have GTK on my system, I already have a JDK/JRE.

    I download Limewire (3.44MB vs 157k is a negligible difference these days) and unzip the distribution. Then I run a shell script that sets up the environment and runs the app where it sits. It takes a little time to fire up the JVM, but then it's just fine as far as speed goes.

    With a GTK client, I have to compile and install it, then I get to run it.

    I don't really see much advantage in either app over the other.

  5. Java vs. Gtk+ clients by mj6798 · · Score: 4, Informative
    Well, several points:
    • If it wasn't written in Java, you wouldn't be getting it at all, since it would be Windows-only (or, at best, FLTK or wxWindows).
    • The download isn't 3.4M, it's about 1M.
    • The Java runtime download isn't 14M, it's about 9M.
    • You seem to be assuming that Gnome/Gtk is somehow free while Java needs to be downloaded. Why? The Gnome/Gtk libraries, as well as the C support libraries, are huge downloads. I remember last time I installed a basic Gnome desktop, I needed to download about 20-30M.
    • Sun's Java runtime isn't slow, although the Java GUI libraries are clearly less efficient than Gtk+. But, then, Gtk+ is also hugely less efficient than Xaw. As machines get faster, we create and use toolkits that are more convenient and less efficient. The Java toolkits have a lot more functionality and are generally easier to program and more robust than Gtk+.
    1. Re:Java vs. Gtk+ clients by mj6798 · · Score: 2
      Yeah, but they do come pre-installed on most distributions.

      I don't know what "pre-installed" is supposed to mean. Gnome/Gtk+ are optional packages in almost all distributions.

      Java doesn't. I just wonder why that is so.

      You might ask why Java isn't part of the RedHat or Debian package systems. There is actually lots of demand, but unfortunately, Sun's licensing policies make this difficult. It's too bad Sun can't market themselves out of a paper bag. However, the Sun JDK is trivial to install. Also, Debian, RedHat, and other systems include several other Java implementations.

      Could it be that *gasp* Java is not popular?!

      Java, while clearly not perfect, is wildly popular: it is taught widely in colleges, is part of the AP exam, is used extensively in research, and is one of the most popular platforms for building enterprise appliactions. It's a shame that the most vocal Linux proponents seem to be so hostile to it. And it's particularly regrettable that people like de Icaza are off on a wild goose chase with a less mature Java clone called "C#".

    2. Re:Java vs. Gtk+ clients by mj6798 · · Score: 2
      libgtk1.2 is ~615k while libglib1.2 (required by gtk) is ~61k. Plus the dev .debs, probably not much bigger.

      You are comparing a minimal set of Gtk+ runtime libraries with the JRE, but that's comparing apples and oranges. The JRE isn't just a bunch of GUI libraries, its a huge set of powerful libraries, a runtime compiler and optimizer, and a lot of other stuff that you couldn't get for Gnome if you wanted to. In real life, people install "the Gnome environment" and "the JRE", and those are the sizes you need to compare.

      My main gripe I guess is that no one is programming things like microsoft office or photoshop for java. Why is that? Too slow? Licensing too restrictive? Because the public (like me) wouldn't accept it as a real competitor? People see it as an additional thing to insta/run? Too big of a memory footprint? Or What?

      Well, who is going to do the programming? People on the Gnome and KDE projects seem quite anti-Java because they have some belief in the superiority of C and C++. (Now the Gnome people are going off on a C# tangent, which, being a Java clone, I suppose is better than C, but it's too little too late.) And why would any commercial vendor bother?

      After awhile of fighting, I figured out that I need to add the jre bin dir to my path to make limewire run.

      For the Windows (and probably MacOS) version of the JDK, you just click on it to install it.

      The filesizes that I posted are right for linux versions, and are correct.

      Well, then the Linux packaging isn't very good.

      And the speed all matters on how fast of a computer your linux box is. Some of still don't have exactly top notch hardware,

      Of course, you can always aim low and try to produce software for older computers. But how is open source ever supposed to lead with that kind of attitude?

      Now I'm not saying that gtk-gnutella is the perfect program, far from it.

      Far from it, actually. The UI has numerous serious problems. I mean, come on, using a list box for tabs? Truncated text labels? Using list boxes for displaying statistics? A window that won't resize to anything narrower than 1027 pixels (how are people on older laptops supposed to use it)? No menu bar? Why didn't the author use the right kinds of widgets for the job and make the window resize properly? Gtk-Gnutella could be a poster child for how making programming too hard leads to serious design and implementation problems, and Gtk+ C code is intrinsically so interwoven that these kinds of problems are hard to fix.

      Now, I'm not saying that Java is the perfect programming language, or that LimeWire is the perfect Gnutella client. But Java is a whole lot better than Gtk+ in terms of programmability and portability.

      Something like Gtk-Gnutella should be written in Python, Tcl, or Java, not a low-level language like C. Python or Tcl are great for single programmer projects (they allow very rapid development), while Java is better for large multi-programmer (programming in Java is much slower, but it's quite a bit easier to coordinate among many programmers).

  6. Re:Why open source has no future by BitwizeGHC · · Score: 2

    Junior high students at least go to the library and do a little research.

    This is a trull. Ignore it.

    --
    N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
  7. Windows JRE is 8.9M (both 1.4b2 and 1.3.1) by mj6798 · · Score: 2

    The Linux download appears to be larger, but that must be something related to the Linux packaging (worse or no compression perhaps?).

  8. Re:Not to rip on the limewire people, but... by jilles · · Score: 2

    "and just doesn't fit in with all the other UI apps I use (it won't follow themes or UI conventions). "

    It's funny that you should mention this in a discussion on gui applications for linux. If there's such a thing as a standard look and feel for linux I have yet to encounter it. There's several desktop environments each of which come with their own widget sets, their own way of theming them, their own component models (if any at all) and their own look and feel. Generally you need all of them in order to run common desktop applications. There's no way you can target all those environments as a programmer. And applications written for one environment integrate extremely poor with the other environments (beyond the point of being able to display the user interface).

    With Java you want to abstract away from it all so that it works on all platforms. That means you can't rely on native things to work consistently everywhere.

    Limewire has achieved that. It's a simple, elegantly designed UI that works the same on each platform. Most of the native competitors pale in comparison and look clumsy when compared. It being crossplatform is vital since gnutella works better if there are more hosts that share files. The limewire people just have to design the GUI once and can focus on adding new features (which they do).

    Admittedly there's a problem with integration with the native platform. However, on linux it is absolutely unclear what exactly this native platform is. Should sun integrate the JDK with Gnome, with KDE, with motif with X? Should they create separate jdk's for each environment? What about versions of each environment? The problem is that there is no standard and consequently all sun can do is target the most common denominator. They don't have that problem on mac os X or win32. The JDKs on these platforms generally integrate much nicer. They use file dialogs, the printing facilities, the native 3d, 2d and multimedia libraries, the clipboard and so on. Achieving the same on linux is nearly impossible since there are multiple implementations of each of those components. However, that is a linux problem and not a java problem. IMHO this is the primary reason that linux on the desktop is still not happening outside the developer community. Also I am very pessimistic about these issues being addressed in the near future.

    --

    Jilles
  9. Even better than gtk-gnutella by Moritz+Moeller+-+Her · · Score: 5, Informative
    OK, I have used Limewire in the past and I like it a lot, but the CPU load makes me cry. If you share a lot of files, the CPU load becomes unbearable and slows down your system. I have looked at gtk-gnutella, I have toyed with Phex (another Java client), I have compiled gnut and so on. But only recently I found the right app for my KDE desktop:
    QTELLA.

    size below 200 k nice interface (like limewire but prettier -> KDE2 conforming)
    Screenshots here!

    Has all the features one would need. Of course it is a lot faster than Limewire.

    Finally one thin I would like to see: A pure and true gnutella server daemon. No GUI. No nothing. Even gnut requires logging in. So how can I start a gnutella client by ssh? How do I control it ? Not possible, the program clkoses as soon as I drop the ssh connection. Now that would be a nice feature in a gnutella client.

    --
    Moritz
    1. Re:Even better than gtk-gnutella by tshak · · Score: 2

      I have used Limewire in the past and I like it a lot, but the CPU load makes me cry.

      It's written in Java. Not a flame on Java but it's the truth. The coders are extremely talented and have done an incredible job, but there's only so much you can do (performance wise) for windowed Java apps.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    2. Re:Even better than gtk-gnutella by PatJensen · · Score: 2
      Chris,

      Thanks for your work on LimeWire, it's a great Gnutella client! I enjoy using it on MacOS 9.2.1, it is nice and fast and usable.

      What can you tell us about the MacOS X 10.0.4 support? It is the exact opposite, slow to load, slow to run and consumes massive amounts of CPU. That and the widgets look funky, buttons don't line up with Aqua title bars and when you resize it splatters everywhere.

      Again, thanks for your help! Have a nice weekend.

      -Pat

    3. Re:Even better than gtk-gnutella by WolfWithoutAClause · · Score: 2

      This isn't exactly true. Java and C/C++ are very similar in performance if you use them the same way.

      There's no reason that I am aware of why Java and C can't have identical speed if coded carefully. However people use Java because they don't have to and don't want to code that way.
      (There is some handwaving above- some of the Java I/O libraries are a bit slow; that's a library issue, rather than a language issue though.)

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    4. Re:Even better than gtk-gnutella by Ian+Bicking · · Score: 2
      The performance I've seen has suggested that the problem isn't Java, but simply poor programming. The searches are essentially full-text searches of a lot of rather small texts. Limewire starts taking up significant CPU time with text on the range of a very small website, like 3000 words. I suspect it doesn't have any optimizations of the search algorithm, but just walks through the words checking one-by-one for a match.

      Admittedly, maybe you could get by with this in C/C++. But the blame still doesn't lie with Java.

  10. -1 CannedText on the MQR standard by MarkusQ · · Score: 2
    Why open source has no future...

    In the spirit of free-as-in-chaos, I have instituted my own private moderation system. Under this system, I hereby give you -1 for CannedText.

    How many times are you going to post this silly FUD? You could at least write something fresh each time, and rise to the status of FlameBait.

    -- MarkusQ

  11. Re:Beta != low quality by stikves · · Score: 3, Informative
    "Beta" == not ready for production use. Despite what you want it to mean in your little fantasy world.

    Beta == Complete, but not heavily tested software. It may contain bugs, it its supposed not to do so.


    What's your point? Didn't have the guts to compare to an NT-kernel based Windows?

    Comparing NT to linux...

    • NT is crashes more often. (CNet had a test for web servers. Over one year two Linux servers did not require "reboot", where NT based servers had to be rebooted every two weeks)
    • NT is less scalable (try to run Win2K on 486!)
      But Linux can run on handleds to IBM supercomputers
    • Linux is POSIX compilant where NT is "trying to be" POSIX compiant. (UNIX is the one true way TM)
    • Linux is open, one can change it to his special needs and exploits can be fixed much quickly. (You do not have to wait for one year for service pack 7)

    "Microsoft sponsering Windows helps improving it"

    I think you did not get it. Sun distributes some set of standard tools (c compiler, shells, etc). Where most of the Sun admins do not use their Sun versions but install GNU versions instead. because they are more robust, they have more features. This is like everyone installing WinAmp instead of WM7 crap, because it loads faster and it has more features.

  12. Re:Why open source has no future by jchristopher · · Score: 2
    I know it's a troll, but...

    The steep learning curve compared to about any other operating system out there is a major factor in Linux' cost.

    Sadly, true. Unfortunately, you can't fix it without admitting that there is a problem, and I haven't had any luck convincing anyone that Linux has serious user-friendliness flaws. Can't see the forest for the trees, I suppose...

  13. Re:Why open source has no future by tzanger · · Score: 3, Informative

    Linux requires a *lot* of maintenance, work doable only by the relatively few high-paid Linux administrators that put themselves - of course willingly - at a great place in the market.

    Bullshit, plain and simple. Get the services installed, leave everything else off and the systems just run. Witness our RADIUS server, numerous fileservers and firewalls (all with hundreds of days of uptime and the only maintenance is a script which rotates logfiles and emails unusual activity) -- all with hundreds of days of uptime.

    Like any other OS, the admin is responsible for monitoring the security mailing lists and installing patches. And like any other OS, you get what you pay for in an admin.

    Linux' native file system, EXT2FS, is known to lose data like a firehose spouts water when the file system isn't unmounted properly.

    That's a bold-faced flat-out lie. I run Linux on this laptop and have NUMEROUSLY had the volume level down too low to hear the battery alarm crying out. I've lost power at least three or four dozen times this year with no data loss.

    Where EXT2 does lose data badly is when the metadata store gets corrupted (power dies when it's being updated or the drive gets bad sectors in those areas) -- However I also know that Reiser, NTFS and VFAT will die horribly under those cirumcstances too.

    Factor in also the fact that crashes happen much more often on Linux than on other unices.

    Let's see some hard numbers. I've been running 2.2.x kernels for literally YEARS without crashes. Quit running alpha drivers and unstable kernels and your stability will increase. This is just common sense.

    The steep learning curve compared to about any other operating system out there is a major factor in Linux' cost.

    So you consider a Win32 admin someone who can go to windowsupdate.microsoft.com? Or a SCO admin someone who can call the support hotline they pay for? I don't understand (nor have you given proof) for increased TCO for Linux.

    (an aside: The Code Red fix wasn't included in any patches available from there. So whose fault is that, Microsoft for not making security a priority, or the click-happy "admin" for not knowing better?)

    I could go on and on and on, but the conclusion is clear. Linux is not an option for any one who seeks a professional OS with high performance, scalability, stability, adherence to standards, etc.

    I dunno, I've had no problems setting up and casually[1] admining firewalls, SMTP/IMAP/POP servers, LDAP servers, web servers and plain old fileservers. Like I said, once it is up and running, there is next to zero maintenance. This can be done with any unix; For me, Linux makes the most sense and none of my clients have had complaints about "increased costs of their Linux servers." I don't know whether you're a Win2k, SCO, Sun, QNX or *BSD troll, and frankly I don't care. Your post is so full of shit that I just had to feed you. FUD is FUD.

    [1] - I use the term "casually admin" to describe what I do: monitor the security lists, provide updates as necessary and receive the emailled logs. The only time I ssh in is to change the configuration based on a customer's request or perform security updates. To me, this is exactly what server administration should be.

  14. Re:Not to rip on the limewire people, but... by dangermouse · · Score: 2
    Ah, well, there's the rub... I have other uses for the JDK/JRE. I actually have fewer uses for GTK, come to think of it.

    Ain't diversity grand? :)

  15. Cool. This means I can hack on it. by WolfWithoutAClause · · Score: 2

    One thing I've always wanted was to just specify a file and leave it to go get it and download it itself.

    In particular if 5 sites have the file I should be able to connect to all 5 of them (or try to) and download different parts of the file in parallel; the protocol allows you to start wherever you want to.

    The total load on the network is the same because I'm only connected to each server for 1/5 the time, but I would usually get it faster.

    Of course sometimes, one of the files is corrupted or something- it's possible to check the ends of the fragments and splice them correctly or ignore any bits that don't fit.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
    1. Re:Cool. This means I can hack on it. by WolfWithoutAClause · · Score: 2

      Yes, this concept isn't new- although as you say I don't think it is available for gnutella yet.

      Another thing that Gnutella doesn't make use of right now is the partial downloads. If I've downloaded 1/2 the file, it usually doesn't appear on anyones search. If fragments are stored in the searchable directory we can effectively get more results, which means better download speed for everyone, cos there's probably lots of upload bandwidth out there right now going spare.

      I don't think this will necessarily make it more bandwidth efficient however, but it would make it much, much, more useful.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    2. Re:Cool. This means I can hack on it. by sjames · · Score: 2

      In particular if 5 sites have the file I should be able to connect to all 5 of them (or try to) and download different parts of the file in parallel; the protocol allows you to start wherever you want to.

      I was just thinking abouit that last night. What is needed is for clients to include a globally unique id for each file (perhaps length combined with an MD5 of the data) along with the name. That way, searches could quickly and easily determine exactly which servers had the same file (even if naming was different).

      The user would enter a name. Client displays search returns. User picks one. Client then searches on the GUID of the file to get a list of all servers having exactly that file. Now, go to download.

      That approach brings several advantages:

      • Multi-source downloads can now be done with confidence that the file won't be corrupted in the process.
      • When a transfer is resumed, the file won't be corrupted even if it resumes from a different server.
      • Servers having only a portion of the file can usefully offer the part that they have (by providing a byte range with the search return) In that case, the GUID would be that of the entire file, not just the portion actually available.

      The first two features should interoperate quite nicely with existing clients. The last would need to send a different search result packet type so existing clients don't get confused.

      As a side benefit for more automated seek and download, the user supplies a list of desired search terms, the client send out the search request, and allows some time for results to come in. It can then choose the most common GUID returned for some assurance that it isn't grabbing a mis-identified or corrupt file. (surely, most users will delete or rename such files that they download).

    3. Re:Cool. This means I can hack on it. by WolfWithoutAClause · · Score: 2

      A GUID would be good, so would a hash. However if a file gets truncated a simple hash gets all messed up.

      I don't think the file will be corrupted if it comes from different servers. By ensuring you have an overlap in the fragments you collect you can ensure that they are the same file. The chances of two different files being the same over say, 128 consecutive bytes is very low for most files (mp3, mpeg, binaries).

      Also, if you introduce some randomness in where you start requesting each fragment, it becomes more difficult for someone to deliberately construct files that only match in the middle, but all the other bits sound like a cuckoo clock...

      The best system is actually a heirarchical hash. First you hash all the 256 byte blocks. Then you write the hashes consecutively and hash each 256 byte block of that, write them consecutively and hash that and so on, until you have a single hash of the hashed hashes. That is the file GUID.

      All this gets prepended to the file, and then people can then download the blocks in any order and be sure they've got it all right.

      I think this is how MojoNation works, but I haven't checked. The protocol is proof against deliberate tampering with the file, although it isn't proof against people misrepresenting a file's contents in the first place- still you can always play the file before you've finished with most browsers.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
  16. Re:NOWHERE near as good as GNOTELLA by ShaunC · · Score: 2

    >(bearshare permanently monitors your internet
    > usage with backgroud tasks).

    No it doesn't, and that statement is pure FUD.

    The third party programs included with BearShare are optional (all you have to do is un-check the checkboxes during installation) and they do not monitor your internet usage any more than Macromedia does. When you visit a web page with Flash content, the Flash plugin "knows" this and displays the movie. Similarly, when you visit a web page which is cooperating with one of BearShare's third party programs, the program "knows" this and displays an ad.

    For the last fucking time, Onflow does not send your browser history to the NSA! Please stop spreading paranoia.

    Shaun

    --
    Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
  17. Re:Java is just bytecode by SimonK · · Score: 2

    Only temporary variable names are lost, unless the author used a scrambling program. Class, field and method names are preserved, because the link process for Java occurs at load time, and they are needed for this.

  18. Re:Java is just bytecode by dstone · · Score: 2

    LimeWire, being a java app, was halfway open source already.

    It's illegal (or at least ignorant) comments like this that give the open source movement a bad name. By your reasoning, every OS and binary ever released is halfway to open source, since it disassembles easily into assembly code. And plenty of people are fluent in assembly to take the "project" over from there.

    Being "open" takes intent on the part of the creator/releaser/licenser.