Merge two forks of a C++ program (rtorrent)
Budget: $350 – $600 USD
A very popular peer-to-peer program (rtorrent), has two forks with different features. They haven't diverged much and the changes are in different places, so merging is possible without a lot of work. We even have a preliminary version that doesn't work yet, but you can use it (or not) as a starting point.
Your job is to take both versions (if if you want, our current point) and merge them into a working version. Working means working, not just compiling :-)
Specifically, we care about the static binaries produced by the jesec (see below) fork, and some of the security issues in the novik work.
Also, the novik version uses an array where a hashtable would be more efficient. This should be changed as well.
jesec fork:
https://github.com/jesec/rtorrent
novik fork:
https://github.com/Novik/rtorrent
Important: Some work was done already last year, so your starting point is ahead of starting from scratch (if you prefer to start over that's OK; we will provide the current work and you can decide).
However, and this is the crucial part, in the last merge some features were removed that shouldn't have been removed.
The resulting program must work with two clients: ruTorrent, and Flood (which are respectively from the same authors).
You will need to locally install both and test.
In the jesec version you'll see that there's a great Docker-based compiler that results in a static binary with all includes. We want to keep that.
Please don't send place-holder bids. If you bid and your bid it's accepted, please be ready to start work.
Your job is to take both versions (if if you want, our current point) and merge them into a working version. Working means working, not just compiling :-)
Specifically, we care about the static binaries produced by the jesec (see below) fork, and some of the security issues in the novik work.
Also, the novik version uses an array where a hashtable would be more efficient. This should be changed as well.
jesec fork:
https://github.com/jesec/rtorrent
novik fork:
https://github.com/Novik/rtorrent
Important: Some work was done already last year, so your starting point is ahead of starting from scratch (if you prefer to start over that's OK; we will provide the current work and you can decide).
However, and this is the crucial part, in the last merge some features were removed that shouldn't have been removed.
The resulting program must work with two clients: ruTorrent, and Flood (which are respectively from the same authors).
You will need to locally install both and test.
In the jesec version you'll see that there's a great Docker-based compiler that results in a static binary with all includes. We want to keep that.
Please don't send place-holder bids. If you bid and your bid it's accepted, please be ready to start work.