almiteycow
Member-
Content count
67 -
Joined
-
Last visited
Posts posted by almiteycow
-
-
Hmm, interesting. I just happened to check in and see this. I'll take a look at the code and see what's up. Better late than never.
-
ahh, I didn't think only a test whether it runs correctly but also whether it compiles ;-)but I think that I need only undefine _WIN32 macro and compile it under Windows and it will behaves as it's being compiled on different platform.
That'll work for 80% of the code. 10% of the rest, I was able to port. The last 10% is RevConnect/StrongDC code: SharedFileStream, Partial File code was the stuff that wouldn't port.
If you can port the 4 or so files so they work in Linux, I don't care about the rest of the client, nor about the GUI. That is what I'll award the cash for, as I totally failed in porting those features when I tried. Final Answer. I'm confident that our members/devs/myself can write a GUI for it without much of a problem. The rest of the client runs relatively well with the core from MultiDC++. However, ApexDC++ is not the pinnacle of file-sharing without the Partial File Sharing/Segmented Downloading features implemented. I feel that this is the single strongest thing we can bring to Linux. (Yeah, I know it's been done by Valknut, but not to the standard we're used to here.)
When those files get ported, I will merge that code into our MultiDC++ base, and we can continue work. I've documented a little of the protocol that can be used for testing, no need for GUI to test. Either that, or to test, it could be merged with LinuxDC++ code as well.
-
Agree it's a bad step for Linux support, but the GUI needs to be totally rewritten anyway (for Linux). I don't think it'll affect much Linux-wise.
-
Many hubs have a message feature like you're looking for built-in.
It would probably be better done as a hub script, at any rate.
-
Been a bit busy at my job lately, but today I got a chance to do the following:
Merged with Alpha 3 of multidc++.
Uploaded to sourceforge.
-
There's a menu (maybe called system?), then you go to Install Software, easy way to install stuff. I'm not all that sure WINE is in the repositories though. You may have to add them. Just do a quick google search, like "How to install WINE on ubuntu" and you'll find exactly what you need.
-
Uploaded to sourceforge's CVS, with ZeXx86's changes.
I'll be documenting the protocol stuff for a bit, feel free to give me a hand with that or anything else.
-
Here's an updated makefile for little endian machines (x86).
Right now I'm working on throwing up a quick PHP interface for testing, when that's working, I'll upload that and start documenting protocol.
EDIT: PHP interface didn't work out so well. Telnet does though. Telnet to your server to test stuff for now.
PROTOCOL:
Commands are sent to the server int, then string. The int is the number of characters in the string, but converted from big-endian decimal to little-endian (i think).
Upon connection, the password command must be sent. If you change the number of characters in the following strings, the number in front will change.
Commands (remember to put the int in front of all commands, not just the ones that already have them):
Login(send password) - 45000000<Category>Server</Category><Type>Password</Type><Password></Password>
Retrieve General Settings - 40000000<Category>SettingsManager</Category><Type>GeneralSettings</Type>
Set Nick - <Category>SettingsManager</Category><Type>SaveGeneralSettings</Type><Nick>(Nick)</Nick>
Set email - <Category>SettingsManager</Category><Type>SaveGeneralSettings</Type><E-Mail>(E-Mail)</E-Mail>
Set description - <Category>SettingsManager</Category><Type>SaveGeneralSettings</Type><Description>(Description)</Description>
Set upload speed - <Category>SettingsManager</Category><Type>SaveGeneralSettings</Type><UploadSpeed>(UploadSpeed)</UploadSpeed>
Logout - 2C000000<Category>Server</Category><Type>Quit</Type>
-
The only client worth using in Linux is LinuxDC++. Other than that, I'd run Apex or something in WINE (remember to disable balloon popups/tooltips and progress bars). Just about all versions so far should work in WINE; well, I haven't had too many problems at least.
Seriously, try just regular Ubuntu though. It's a great one to start using until you get advanced skills. Well, even still, I'd consider myself slightly knowledgable about Linux and I still use it, just because it plain works out of the box and is easy, since I don't have much time to play around with stuff.
Other distros to try: Slackware, Gentoo, ArchLinux, Fedora, Debian all have their strong and weak points. There's more too that you'll find out about as well.
Other OSes to try: FreeBSD, it's bitchin'
-
Heh, yeah, like I said, I don't expect most of it to be in the first release. :P
-
Alright, after a few mangled attempts at porting Apex, I've got a clear direction, but I need your help.
I'm organizing a few key points that we'd like to have for a release. I'm going to try to grab a tracker for this and should be uploading to CVS shortly, to keep everything simplified. For now, if you're working on anything, just let me know, so I can know who's doing what, since there's at least a few of you that want to help.
We should keep the client part as daemon-like as possible, so we can disconnect and reconnect GUI as we please, with many different interfaces being allowed (I'm planning at least a GTK interface)
EDIT: CVS is on Sourceforge - http://sourceforge.net/projects/apexdc
checkout the apex-linux module.
Here's the list (mostly stolen from the tour page):
GENERAL:
VITAL: Document the protocol between the client and the gui. Here's what little I know at the moment.
The protocol is quite easy, the server first sends an int, which is inbig-endian, so you have to convert it to little-endian, after that the
server sends an char which has the size of the value that was in the
int.
The char that was recieved now contains an event with different
values. It's an XML-ish format on the string so if you wanna get the
current event you check for the tag <Event> and the value that is
between that and </Event> is the event.
You can always check on the server interfaces and from there you can
see what values it will send.
Fake Detector
Magnet Link Support (not sure exactly how this would be done in Linux)
CLIENT
These two are absolutely necessary, and need to be compatible with the Windows version (this is what the bounty is for, still):
Segmented DownloadsPartial File UploadsConfigurable descriptions
Share skiplist
OP Share Hiding
Speed Limiting
Auto update IP on program startup (Can retrieve external IP)
Auto-disconnect Slow Users
Avoid ISP throttling on incoming and outgoing connections
Keep stats for announcements (see GUI part)
GUI
Copy Apex's toolbar controls
/nowplaying - I think maybe it can be done with DBUS, it should support the big linux media players, Banshee/Rythymbox/Amarok/XMMS
Various hub control features - in the Window Menu
System tray controls
About menu
Check to see if your current connection settings are working
Tray Balloon popups (New PM recvd/File Complete/etc)
Sounds for events
Hide hub topics
Fancy-shmancy progress bars
Keyboard Shortcuts
Emoticon Support (hopefully using the same emoticon packs as Windows version)
User ignore options
Announcements to hub:
Ratio: type /ratio or /rUptime: type /uptime or /utPublic statistics: type /pubstatsShow statistics only to yourself: type /statsClear chat: type /clear or /cAdvertise ApexDC++: /apexdc++Use /help for a list of all commandsNote: Not all of this is planned for the first release, releases will come as significant progress is made.
Current source is attached (it's multidc++, with a linux makefile, nothing really changed)
Try to keep this thread clean, related stuff only, no feature requests and such.
-
http://www.knoppix.net/wiki/Hd_Install_HowTo
KDE is one of the available Desktop Enviroments. Gnome is another good one. If you want to over-simplify it, it's your theme + a bunch of basic apps.
-
Bingo, it runs in Linux. I think we've got our core.
Thanks to Alexander, creator of multidc++ for the tip on how to get it to link.
Now to put the features in...
I'll have to make a list of the ones that we want to have in for our first release, and then you guys can help port them in.
Attached a makefile that works. If you download the source, you'll most likely have to fix a capitalization error here and there, and another small problem that I've forgot, but it should be easy enough.
-
You may also consider upgrading your OS to Win 2000 or higher, Win 9x is just not optimized for such heavy network activity. In my experience Win 2k runs quite happy on PI 150MHz w/o MMX and 128MB RAM, if used ONLY for a router + light AV soft + eMule... But at the start it ran even with 32MB RAM, believe it or not.Not only that 9x isn't optimized, it's not safe at all. Microsoft does not support anything older than 2000, therefore no more patches for them. If there's an exploit, you're left wide open. It's crucial that you upgrade as soon as possible.
(By the way, I ran XP on a 200Mhz computer with 64MB RAM, it played movies in my living room for a while, until I got a better computer for the room)
-
I'd delete the fat32 partition if it's empty, and just leave it unpartitioned for now. The installer will see the unpartitioned space and give you an option to install it there (and not touch the windows partition).
As for the DR DOS thing, it sounds like you're trying to burn a bootable data cd maybe?
-
It's been working in WINE for a while, as far as I'm aware. You just had to disable tooltips and progressbars.
I believe there's a way to compile windows programs against the WINE libraries, so it doesn't need to run WINE before the program runs, but I feel this is not a direction I'd like to go. The better idea would be to make a proper native client.
-
-
You don't unrar it. The files you're downloading are CD iso images, you just have them set to open in winrar. ISOs are like snapshots of a CD.
Right click the file, Open with -> choose application -> Nero, or whatever burning utility you have should do the trick.
You most likely don't want the xubuntu 6.10 alternate amd 64 iso. You want the 6.10 desktop i386 version, more than likely.
Lookie: http://www.weethet.nl/english/cdrw_usingnero_iso.php
That'll work, if my other suggestion doesn't.
-
I'm aware the GUI won't work, I'm thinking there's a way to send raw commands to the server, if it'll run. The GUI is dependent on the server and the server isn't dependent on the GUI, luckily, so the server can just be built by itself.
The project files are for Xcode, for Mac, of course. I've sent the dev a suggestion to use a program that converts them to makefiles. However, can't we just build a makefile for the server portion? I think everything there should compile, I'm just not sure how to build a makefile from scratch.
---------
Used that program myself to convert the thingy to a makefile, it works, except it doesn't seem to be linking the libraries:
./BZUtils.o: In function `BZFilter::BZFilter()':BZUtils.cpp:(.text+0x530): undefined reference to `BZ2_bzCompressInit'
./ConnectionManager.o: In function `Thread::join()':
ConnectionManager.cpp:(.text._ZN6Thread4joinEv[Thread::join()]+0x22): undefined reference to `pthread_join'
./CryptoManager.o: In function `CryptoManager::decodeBZ2(unsigned char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
CryptoManager.cpp:(.text+0x6de): undefined reference to `BZ2_bzDecompressInit'
CryptoManager.cpp:(.text+0x795): undefined reference to `BZ2_bzDecompressEnd'
CryptoManager.cpp:(.text+0x827): undefined reference to `BZ2_bzDecompress'
CryptoManager.cpp:(.text+0x872): undefined reference to `BZ2_bzDecompressEnd'
./CryptoManager.o: In function `CryptoManager::loadCertificates()':
CryptoManager.cpp:(.text+0xaa0): undefined reference to `SSL_CTX_set_verify'
...and so on.
Anyone wanna lend a hand? I've attached the makefile I generated. Drop it in trunk/
EDIT: Merged Posts
-
Been a bit busy lately, but I'm back.
I have access to the SF CVS now, and was about to upload my progress so far, but I had a second thought. Due to the RevConnect issue, I'm thinking about changing the plan of attack once again.
I've taken notice of this project, MultiDC++, which has the GUI and client separated. It's based on a plain DC++ core (I think LinuxDC++, as the dev worked on that project). I'm thinking it would be a great place to start. It's only in alpha stages as it is, but I'm thinking we may still be able to work with it.
I'd like to check it out, but as you may have noticed, I'm still catching up on how to code in Linux, and can't figure out how to set up the makefile for it, just to check it out and so we can test changes and such. Can anyone give me a hand with this?
On a somewhat related note, it looks like we've managed to get a small group of people willing to help us. Thank you, I'll be figuring out how to organize what we're doing in a more constructive manner. The reward still stands, for those interested. I have a feeling the Partial File Sharing/Segmented Downloads is going to be a show-stopper, so still, whoever can port this over to the MultiDC++ core (or LinuxDC++ core, they should be close enough) gets the prize.
-
The file you most likely want ends in .ISO. Burn this using a program like Nero (or other program) following balder's linked instructions above.
-
I would have to agree on the Lee smelling bit. I can smell him from all the way in the US.
If IPB pulls it (which I doubt they would), there's always alternatives anyway.
-
I'm not one to discourage a potential linux user, but I just wanted to throw this in. Using ApexDC in linux is pretty much the same as windows at the moment. It has to be... translated (emulated) by WINE at the moment, and for it to work well, you have to disable tooltips and progress bars. Other than that, it should be close to exactly the same. This will (hopefully) change very soon though.
I do encourage you to check out linux though and Ubuntu is a great way to start using it.
-
This would be the best way of doing it... not the easiest. It'll definitely be taken into consideration. However, at the moment, much of the focus will be directed at making a version of Apex that runs natively in Linux.
EDIT:
This may actually be a good direction to go toward: http://multidcpp.sourceforge.net/
We are now hiring
in News
Posted
Substantial/Negotiable... hmm? Is there a range in mind?
Also, MinGW is primarily for compiling Linux apps in Windows, is that what you had in mind? Are you trying to drop VS?