almiteycow

Member
  • Content count

    67
  • Joined

  • Last visited

Posts posted by almiteycow


  1. If the client and GUI can be separated, people could make multiple front-ends for it. I'm not a pro-coder by any means, so I've gotta work with what I know... GTK.

    It uses scons, because that's what the linuxdc++ code that I'm merging with uses. If you'd like to autotool it, go for it.

    I'm going to see about sourceforging the files, so we can have a cvs to work off of.


  2. Woohoo! Thanks guys! It looks like we're generating some good attention to the project, from the buzz I'm hearing various places on the net.

    LinuxDC++ is the port of regular DC++, but I've heard rumours that they'll probably not work with us. They're working on porting the base DC++ only, no special Apex features and that sort of thing. Difference of opinions I guess (but that's the beauty of open source software, choice), best of luck to them anyway. It's a good baseline to work off, but some of the more advanced features we offer in Apex are derived from RevConnect, which seems to be really linux unfriendly code.

    Let us know what you find out, Anarion.

    Once again, thanks for the support, both monetary and kind words.


  3. Well, after a nice little break, I've picked the project back up again. Kinda lost track of where I am, but I think I can figure it out.

    Looks like I was working on fixing linker errors, like these:

    /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start':

    (.text+0x18): undefined reference to `main'

    build/client/DownloadManager.o: In function `DownloadManager::prepareFile(UserConnection*, long long, bool)':

    DownloadManager.cpp:(.text+0x2afe): undefined reference to `SharedFileStream::SharedFileStream(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long long, long long, bool)'

    build/client/FavoriteManager.o: In function `FavoriteManager::load(SimpleXML&)':

    FavoriteManager.cpp:(.text+0x6ff9): undefined reference to `Util::fileExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

    build/client/FileChunksInfo.o: In function `FileChunksInfo::doLastVerify(MerkleTree<TigerHash, 1024u> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':

    Here's the latest source folder I'm using. Too lazy to clean it up, everything should be here, minus the dependencies.

    http://almiteycow.homeip.net/pub/linuxdcpp.tar.gz

    EDIT: Ah, nope, still working on porting those last 4. The scons file has 3 of them commented out.... they need to be put back in, and they throw the usual errors.

    EDIT: I found this! It should make life a lot easier for me.


  4. Bingo Greg. That's what I'm hoping for here. You said what I was trying to say, better than I said it.

    I don't even know if I'll get a usable client out of what I'm doing (though that's what I'm hoping for), but hopefully we'll get some attention in the Linux community and one of them will come help us out. If not, I'll do the best I can until then, but don't expect beyond what the Windows client offers... if that.

    Notice we don't have a Feature Requests section for Linux? :P


  5. Missed some files anyway, it seems.

    Getting a new compiler error:

    client/FileChunksInfo.cpp: In static member function ‘static Pointer<FileChunksInfo> FileChunksInfo::Get(const TTHValue*)’:

    client/FileChunksInfo.cpp:40: error: operands to ?: have different types

    Argh.. RevConnect code is driving me nuts...

    To Port:

    FileChunksInfo.cpp

    SharedFileStream.cpp

    Text.cpp?

    TraceManager.cpp

    Then gotta fix random linker errors.


  6. Progress:

    Client is better, seems to be building alright, but that doesn't mean it's bugfree by any means, I know I've broken more than a few things.

    Now for the GUI...

    Things to check out before final release:

    Major:

    Need someone to audit the code, is there stuff that's obviously not going to work in the code? any glaring bugs? do i just plain suck at porting?

    Minor:

    PG support has been removed. It will need to be readded.

    Removed memcpy_amd, it doesn't like linux too much. This
    could
    cause problems later though.

    Removed webserver, will need to be readded.

    Changed RevConnect code - Will it work? Who knows?

    Morale: It be time to swab th' poop deck mateys!


  7. Yup, Merry Christmas to you all.

    Being that I'm one of those last time zones to have Christmas, who knows how big the turkey is, or what I got. :) I'll know tomorrow. I do know that it'll probably never snow though. :) Best wishes from my warm desert.


  8. Progress: (Slowly losing my mind)

    Even though I may have cleared a big hurdle with that RevConnect code, I'm continuing the $50 offer to anyone who wants to/has enough skill to A) Double-check my code so far and B ) Help with difficult porting problems, such as the one in this quote/error below. Post here with what you've got.

    We've got a few minor devs willing to help, which will definitely be handy while debugging the code, doing the GUI, and porting new features (and the ones I've had to remove) into future versions of Apex for Linux.

    I'm going to take a few days off from this, being on holiday and all if anyone wants to continue the project in the meantime, download the file posted earlier (apologies for the slow speeds, but it's coming off my home network), and overwrite the client folder with the one attached here, if all goes well and dependencies are met, you should receive this error:

    g++ -o build/client/ShareManager.o -c -pthread -I. -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_DATADIR='"/usr/local/share"' client/ShareManager.cpp

    client/ShareManager.cpp: In member function ‘void ShareManager::addDirectory(const std::string&, const std::string&)’:

    client/ShareManager.cpp:427: error: ‘slist’ was not declared in this scope

    client/ShareManager.cpp:427: error: expected primary-expression before ‘>’ token

    client/ShareManager.cpp:427: error: ‘removeMap’ was not declared in this scope

    client/ShareManager.cpp:447: error: expected primary-expression before ‘>’ token

    client/ShareManager.cpp:447: error: ‘::const_iterator’ has not been declared

    client/ShareManager.cpp:447: error: expected `;' before ‘i’

    client/ShareManager.cpp:447: error: ‘i’ was not declared in this scope

    client/ShareManager.cpp: In member function ‘void ShareManager::refresh(bool, bool, bool)’:

    client/ShareManager.cpp:786: error: ‘safeExchange’ is not a member of ‘Thread’

    scons: *** [build/client/ShareManager.o]Error 1

    Things to check out before final release:

    Major:

    I don't know of an ADC hub for testing, need someone to find one and test for me.

    Need someone to audit the code, is there stuff that's obviously not going to work in the code? any glaring bugs? do i just plain suck at porting?

    Minor:

    PG support has been removed. It will need to be readded.

    Removed memcpy_amd, it doesn't like linux too much. This
    could
    cause problems later though.

    Removed webserver, will need to be readded.

    Changed RevConnect code - Will it work? Who knows?

    Morale: Argh, I be sippin' on the old grog, aye, I have. :)

    Oh! and ....

    Have a Great Christmas/Holiday Season/Whatever! :P


  9. Support for both is already going to be hell... Especially since I don't know what I'm doing. As Grogs (deliberately [in]correct) said, I'm stripping out a bunch of stuff that can't be ported easily, as porting is already hard enough for me. I don't even know if I'll be able to keep up with Crise and his features on the regular client. I'd say that most likely it'll be the same as the basic Apex, if we're lucky and find a really good linux dev.


  10. I've got plenty of money. I can send it via PayPal, check, money order... hell, if you take credit card even... You'll get the money.

    Also, yeah, I know I'm offering money on an open source project; consider it a "bounty" as they have other places. I want this feature implemented, and I'm willing to pay.

    We may need to expand outside of our userbase though for this help. So, if you know any devs from other places/forums/hubs, let them know. If they don't get this one, I'm sure I'll have other challenges as well :) The more linux coders we can get in general, the better we are.


  11. http://www-128.ibm.com/developerworks/eser...2linux-sem.html

    Looks like it'll fix these errors in DownloadManager.cpp:

    client/SharedFileStream.h:26: error: ‘HANDLE’ does not name a type

    client/SharedFileStream.h: In destructor ‘SharedFileHandle::~SharedFileHandle()’:

    client/SharedFileStream.h:33: error: ‘handle’ was not declared in this scope

    client/SharedFileStream.h:33: error: ‘CloseHandle’ was not declared in this scope

    client/SharedFileStream.h: In member function ‘virtual size_t SharedFileStream::flush(bool)’:

    client/SharedFileStream.h:60: error: ‘struct SharedFileHandle’ has no member named ‘handle’

    client/SharedFileStream.h:60: error: ‘FlushFileBuffers’ was not declared in this scope

    client/SharedFileStream.h:61: error: ‘GetLastError’ was not declared in this scope

    client/SharedFileStream.h: In member function ‘virtual int64_t SharedFileStream::getSize()’:

    client/SharedFileStream.h:70: error: ‘DWORD’ was not declared in this scope

    client/SharedFileStream.h:70: error: expected `;' before ‘x’

    client/SharedFileStream.h:71: error: expected `;' before ‘l’

    client/SharedFileStream.h:73: error: ‘l’ was not declared in this scope

    client/SharedFileStream.h:73: error: ‘INVALID_FILE_SIZE’ was not declared in this scope

    client/SharedFileStream.h:73: error: ‘GetLastError’ was not declared in this scope

    client/SharedFileStream.h:73: error: ‘NO_ERROR’ was not declared in this scope

    client/SharedFileStream.h:76: error: ‘l’ was not declared in this scope

    client/SharedFileStream.h:76: error: ‘x’ was not declared in this scope

    I don't know enough C++ to understand what's going on, but I'll give it a try. If anyone can take a closer look, it'll be a big help.

    Basically, it looks like the RevConnect (or wherever it's from, but that's where it seems to be) code isn't so... portable. I'm going to post up what I've got for source sometime soon, and start a contest. Whoever can port that RevConnect code first gets $50


  12. Progress: 27 files out of ~134

    Working on SSL right now, in the CryptoManager.cpp file. YASSL? may be a problem.

    Tomorrow, I'll see if I can find a place on the web to drop my source, so others can take a crack at certain things.

    Gave up on working on porting Apex features to LDCPP. Porting Apex straight to Linux, fixing build errors and removing windows code when necessary.

    Things to check out before final release:

    Major:

    I don't know of an ADC hub for testing, need someone to find one and test for me.

    Minor:

    PG support has been removed. It will need to be readded.

    Removed memcpy_amd, it doesn't like linux too much. This could cause problems later though.

    EDIT:

    Removed webserver, will need to be readded.

    Morale: Higher than the crow's nest, yarr! :)


  13. Those mean that you need to add those to StringDefs.h or equivalent (note zero knowledge of linux programming)

    Gotcha, easy fix. StringDefs.h seems to be StringDefs.h still.

    Basically the difference between the linux c++ code and windows c++ code, is that all that stuff that just tosses warnings in windows, causes errors in linux. Or at least it seems that way.


  14. Pending a Linux area for me to type this in.... Gotta keep notes for myself or my head might explode.

    Progress: 5 files out of ~134

    Things to check out before final release:

    Major:

    I don't know of an ADC hub for testing, need someone to find one and test for me.

    Minor:

    AdcHub.cpp has some *ahem* interesting stuff going on at the bottom of it. Code may work, may not. If someone wants to take a look at it, I'll post the source.

    Figure out what's up with the names of the "Maximum & minimum file sizes (in bytes)." area of ADLSearch.h I can't get it to match Apex's code. Kibibytes are fine for now... but they bother me so.

    Here's my error:
    client/ADLSearch.h: In member function ‘tstring ADLSearch::SizeTypeToDisplayString(ADLSearch::SizeType)’:

    client/ADLSearch.h:161: error: ‘KB’ is not a member of ‘ResourceManager’

    client/ADLSearch.h:162: error: ‘MB’ is not a member of ‘ResourceManager’

    client/ADLSearch.h:163: error: ‘GB’ is not a member of ‘ResourceManager’

    scons: *** [build/client/ADLSearch.o]Error 1

    Morale: Well as it'll be. The crew be singin' bawdy songs whilst they be workin' and the first mate be wantin' to swab the deck. Arr, mateys! :blushing:


  15. Well,

    I've decided to come back, pending Apex admin's approval.

    I noticed Linux development stopped, correct me if I'm wrong.

    Right now, I'm working on porting Apex's Preview 3 core to LinuxDC++. GUI to be done later. It'll be a GTK application, using Glade to do the GUI. The core of Apex is done in C++. The core should be portable to Linux. If I treat them separately, just maybe something will work.

    I'm no developer... So, if I'm doing something wrong, someone's going to have to let me know. If I'm going about porting it the wrong way, tell me. I'm going to try to be as open as possible with the development, that way, if anyone knows better, they can help fix it.

    It's a tedious process, and I need help.

    Right now, I'm attempting to do it source file by source file. LinuxDC++ will build and run on my computer, just fine. So, I'm stealing the modifications done to Apex and adding them to LinuxDC++ one file/modification at a time, then testing to see if it builds and runs. Once I get caught up to preview 3, I'll toss on the GUI modifications and then start work on porting any new changes.

    As I mentioned, I need help. If you're interested in comparing code between ApexDC++ and LinuxDC++, let me know. It should be relatively easy, just takes a while.

    DCTC and DC-GUI/Valknut may be helpful to look at while porting. I also suggest looking at this documentation: Ldcpp Developer information.

    Basically, I need a small group of people to help me with this part of the project. If nothing else, maybe I and whoever helps will learn something new. :blushing:

    ...or maybe I'm crazy. :D