# EiskaltDC++ – file sharing using DC and ADC protocols

Website: https://sourceforge.net/projects/eiskaltdcpp/
Sources: https://github.com/eiskaltdcpp/eiskaltdcpp

Public chat room: https://gitter.im/eiskaltdcpp/eiskaltdcpp
Wiki: https://github.com/eiskaltdcpp/eiskaltdcpp/wiki

## License

This program is licensed under the GNU General Public License. See the COPYING file for more information.

## Description

EiskaltDC++ is a cross-platform program that uses the Direct Connect (DC) and Advanced Direct Connect (ADC) protocols. It is compatible with DC++, FlylinkDC++, LinuxDC++ and other DC clients. EiskaltDC++ also interoperates with all common DC hub software.

Currently supported systems (in order of decreasing importance): GNU/Linux, macOS, MS Windows, FreeBSD, GNU/Hurd and Haiku.

Currently supported features (not full list):

- 1
- 2
- 3

## Versions history

See ChangeLog.txt file.

## Installation

See INSTALL file.

## Development

During the development EiskaltDC++ in past years we have used different CVS (Subversion first and then Git) and different development models. Currently the process looks like this:

- All development of is done in git `work` branch or special (feature) branches detached from `work` branch.
- Change log file should be updated together with changes in source code. It may be done in a same git commit or in a separate git commit depending on situation. Just use common sense for this. (There were no rule of updating change log in the past which leads to significant delaying of stable releases.)
- Once the changes from `work` branch are ready for usage and build of program is tested for most important systems (Linux, macOS, Windows) they may be merged to `master` branch.
- Daily builds of program for testers, active users and just curious people should be done from git `master` branch.
- Version scheme for builds from git snapshots should look like: `<major>.<minor>.<patch>-<commits>-<hash>` (where `<major>`, `<minor>` and `<patch>` are not digits but numbers). `<major>.<minor>.<patch>` is last git tag (for stable release), `<commits>` – the number of commits since last git tag and `<hash>` – short hash of current git commit.
- Once there is noticeable amount of changes since last stable release or if there are very important bug fixes which should be quickly delivered to users new git tag (`v<major>.<minor>.<patch>`) is created and tarballs with sources are uploaded to SourceForge.
- There is no strict limitation of type of changes suitable for new releases: even "minor" or "patch" version may contain new features and significant changes in GUI.
- In case of noticeable changes in Core of program (library libeiskaltdcpp) the `<major>` part of program version should be changed.
- In case of significant changes (for example, total code refactoring) in any part of program the `<major>` part of program version should be changed.
- In case when where are very few changes since last stable release, but they are important and should be quickly delivered to users the `<patch>` part of program version should be changed.

## Developers

### Main developers

- Main developers of EiskaltDC++ are listed in AUTHORS file.
- Program contains source code from other free and and open-source projects. All copyright information from them is pedantically documented in special file.
- Part of program with GTK+ UI contains additional Credits.txt file. (This is just a list of contributors from LinuxDC++ and FreeDC++ projects, not all of them are copyright holders.)

### Other contributors

There are a lot of people who were involved into EiskaltDC++ development. Some of them are listed in license headers in source files, some of them might be found only in the history of commits in our git repository. Also there are translators, testers and just active users. We are thankful to all them!

## How you can help

### Bug reports

If you found a bug please report about it in our Bug Tracker.

### Beta testing

You may use daily builds of program or program compiled from sources by yourself (from git `master` branch) for testing and suggesting of new features, and for reporting about new bugs (if they happen).

### Comments and wishes

We like constructive comments and wishes to functions of program. You may contact with us in public chat room for discussing of your ideas. Some of them will be drawn up as feature requests in our Bug Tracker.

### Translations

The work of translators is quite routine and boring. People who do it usually lose interests and their translations become incomplete. If you see such situation for translation to your native language, please join to our translations team. It is extremely welcome!

Some useful notes about translation process you may find at special wiki page.

### Graphics

There are many ways to contribute to the EiskaltDC++ project, if you think you can do a better job with any of the EiskaltDC++ graphics, then go right ahead!

### Programming

Patches are welcome! Contact to EiskaltDC++ developers if you are working on them.

### Packaging

Currently we have active package maintainers for Debian and Ubuntu distros, for macOS and MS Windows. If you have suggestions about improving of packaging, just contact with them.

If you want to prepare personal builds of EiskaltDC++ for MS Windows and macOS systems, it is very welcome! We may add links to them into our documentation. Becoming an official maintaner for these systems is more complicated, but also possible.

For other GNU/Linux and *BSD systems the situation is quite clear: just update packages (pkgbuilds, ebuild, etc.) in official repositories of your favorite distributions or make a Personal Package Archive (PPA) with them. We will add links to them into our documentation.

### Donations

We do not accept donations for EiskaltDC++ project as a whole, because there are no expenditures for infrastructure and such like. (Thanks to owners of GitHub, SourceForge, Transifex and Travis CI services for their support of FOSS projects!)

But you may send donations to project contributors (developers, maintainers, translators, etc.) on personal basis. Just contact with them using the contact information from AUTHORS file.

## Packages and installers

- Official PPA for Ubuntu and distros based on it (stable releases)
- Official PPA for Ubuntu and distros based on it (daily builds)
- Official builds for Windows
- Official builds for macOS
- Official builds for Haiku
- Official packages in Debian
- Official packages in Ubuntu
- Official packages in Fedora
- Official packages in Gentoo Linux
- Official packages in ALT Linux
- Official packages in FreeBSD
- Packages for openSUSE (official and unofficial)
- Packages for Arch Linux (in AUR)
- Packages for different Linux distros (small aggregator of links)
- Packages for different Linux distros (the best aggregator of links)
- Unofficial PPA for Debian and Ubuntu (maintained by Alex_P)

## Extra links

- Project statistics on GitHub
- Project statistics on OpenHub
- Project FreeDC++ (was basis of eiskaltdcpp-gtk) (sources)
- Official Web UI for eiskaltdcpp-daemon (sources)
- Alternative Web UI for eiskaltdcpp-daemon (sources)
- Old screenshots (in English)
- Old screenshots (in Russian)
- Old notes about EiskaltDC++ (in Russian)
- Old notes about FreeDC++ (in Russian)
- Old FAQ about EiskaltDC++ (in Russian)
- Setting up interception of magnet links from web browsers (in Russian)
- Review of DC clients for Linux (in Russian)
- DC++ and programs based on it at Wikipedia (in English)
- DC++ and programs based on it at Wikipedia (in Russian)
- Valknut and programs based on it at Wikipedia (in English)
- EiskaltDC++ at Wikipedia (in Russian)

Have fun!