almiteycow

Linux Project Development

122 posts in this topic

xD hey post the offer on ebay :D LOL

p.s don't go spending your allowence all in one place thou :P

Share this post


Link to post
Share on other sites

And update topic title, if really $130...

Share this post


Link to post
Share on other sites

Urgh. Looks like almost all of SharedFileStream.cpp needs to be rewritten for Linux. This is just the tip of the iceberg:

client/SharedFileStream.cpp:42: error: 
Edited by almiteycow

Share this post


Link to post
Share on other sites

best way to do it is to look at a more updated sourcecode like linuxdc++ valknut is old and not very stable no need to further the buggy betas of valknut there is a couple of others dc clients for linux dont remeber their names right now but i bet stay with linuxdc++ source if u wanna make a good client

Share this post


Link to post
Share on other sites

Hi all :) I have a little interest in DC++ working on linux

so I think I can help in part of network code I am not a GUI man :)

I've got tarball and have a look into ... :stuart: Is it compiled on Windowz?

about

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

commenting out this line is bad idea it must return pointer to FileChunksInfo::Ptr

Missed some files anyway, it seems.

Getting a new compiler error:

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

To Port:

FileChunksInfo.cpp

SharedFileStream.cpp

Text.cpp?

TraceManager.cpp

Then gotta fix random linker errors.

Share this post


Link to post
Share on other sites

I can help to port network code

but I need some things :)

1, access to cvs/svn server where code is

2. a contact with person who knows DC stuff and can answer on my question about DC protocol and other

3. tips how to check that ported code not just compiled but works....

My first question can dc client works without gui? can we check that it's work before gui is ported?

BR

Share this post


Link to post
Share on other sites

Forgive for commenting on this, but IMHO why not? Like:

/join (connect, whatever) dc.some.test.hub:411

*Connected

/listurs Ana* 3 share

*Ana 80GB

*Anabel 30GB

*Anana 10GB

/getfl Ana

*Done

/openfl Ana

Bla Bla Bla.bs (content)

/getfn Bla Bla Bla.bs C:\Testing

*File saved to C:\Testing

Is this what you want, some way to test basic functionality? If not, well, as GUI so and so will be needed, why not make it now? This may answer to point 3. as well.

Share this post


Link to post
Share on other sites

If you guys can help port the network side, I can do the gui stuff.

As long as there's a way to pass raw DC commands, we can test it. I'll post more tomorrow.

Share this post


Link to post
Share on other sites

I'd really like to have a decent DC++ client on Linux... Porting ApexDC++ to Linux sounds like an ambitious task -- at least there is a working linuxdc++ now as a starting point...

Actually, I might be able to help a bit -- but time is rare... My knowledge of DC++ internals is also very limited...

EDIT: Maybe those FILE_SHARE Blah and junk relate to this somehow? MO_IRUSR|MO_IWUSR|MO_IRGRP|MO_IROTH

GENERIC_READ and GENERIC_WRITE are equivalent to O_RDONLY, O_WRONLY, O_RDRW access modes.

that FILE_SHARE_* junk is used to specify whether the file may be read/written/deleted by other handles. AFAIK sharing is enabled by default on Linux systems.

MO_IRUSR|MO_IWUSR|MO_IRGRP|MO_IROTH <-- these are for specifying permissions when creating files

(correct me if I'm wrong)

hope this helps...

Share this post


Link to post
Share on other sites

that's right :D file create/access stuff must be rewritten

Why GTK is planned as GUI framework? Why not use QT?

In case of QT it could be cross platform in future ... with shared codebase.

I do not like having two source tree for one application.

One more comment I do not realy see any reason to use python make (scons) it introduces new dependency

may be it is better migrate to autotools (autoconf/automake).

I this case people who wants install apexDC++ do not need having python/scons installed.

I can autotoolize package :D

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

almitey i can arrange that if needed... just say a word (and tell me your SF nick :D)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Hi I have been looked into this code already and the main problem with THIS is ObjectC code with some strong dependencies on macOS X.

I do not know ObjectC :) at least it can be compiled gcc has support of Object C but still all GUI code is not usable for not mac os users. And

last problem is building. It uses some "project" files like visual C projects so we can not compile and run it to check is it work.

IMHO this is not a good start point :).

Share this post


Link to post
Share on other sites

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

Edited by almiteycow

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Great news! I am starting with preparation of some crappy Linux box to play with. :P

P. S. This is the alphiest software version I've ever seen, you're cool man! :P

Share this post


Link to post
Share on other sites

Nice almiteycow. Let's hope most of the features aren't too difficult.

I've updated the announcement to reflect the current situation.

Share this post


Link to post
Share on other sites

I'll have to install Ubuntu in April or whenever after the next main release, when it'll hopefully support my motherboard a bit better, and try this. Hopefully we'll have some features in too by then. :P

Share this post


Link to post
Share on other sites

SF cvs, though not much have been done yet as far as I know, please address almiteycow for further details (after reading what's posted on forums first tho.)

Share this post


Link to post
Share on other sites

Can sameone explain a little bit clearer? Firstly, where can I get apexdc linux? In sourceforge I can not find apex for linux, only for windows, and in cvs, I do not see download button

Share this post


Link to post
Share on other sites

Can sameone explain a little bit clearer? Firstly, where can I get apexdc linux? In sourceforge I can not find apex for linux, only for windows, and in cvs, I do not see download button

As far as I know there is only cvs access for apexdc linux

Share this post


Link to post
Share on other sites