PantheraProject
Language:en

Shareaza developer quick guide

Where the Shareaza source code lives (SourceForge Subversion), what it's written in (C++, MFC, Boost), and safe advice for exploring a legacy Windows codebase.

Last updated: 1 min read By: Panthera Project Editorial Team

On this page
  1. Historical overview
  2. Getting the source today
  3. Modern guidance for a legacy MFC codebase
  4. Where to talk to the project

This page replaces the old wiki page Developers.GettingStarted.QuickGuide. The original step-by-step instructions are not recoverable and toolchains have changed since, so we split this into a historical overview and modern, generic guidance. Neither part is official project documentation.

Historical overview

  • Language and frameworks: C++ with Microsoft Foundation Classes (MFC) and the Boost libraries.
  • Platform: Windows desktop application.
  • Version control: Subversion, hosted by SourceForge. Wikipedia lists the repository as svn.code.sf.net/p/shareaza/code/.
  • License: GPL-2.0-or-later since the 2.0 source release on 1 June 2004.
  • Releases: stable versions plus revision-numbered debug builds for testers, for example the 2.4.0.x builds in early 2009. See the 2.4 changelog page.

Getting the source today

# Read-only checkout of the official repository (Subversion)
svn checkout https://svn.code.sf.net/p/shareaza/code/trunk shareaza-trunk

If trunk isn’t the layout you expect, browse the repository on SourceForge first and check for branches and tags.

Modern guidance for a legacy MFC codebase

  1. Build in a disposable environment. Use a Windows virtual machine with the Visual Studio C++ workload and the MFC component installed. Legacy projects often need older platform toolsets or project upgrades.
  2. Expect dependency drift. Old Boost and third-party library versions may not compile with current compilers. Pin versions rather than upgrading everything at once.
  3. Treat network code as hostile-input code. P2P parsers handle untrusted data from the internet. Enable compiler hardening (/GS, ASLR, DEP, Control Flow Guard) and fuzz parsers before running a modified build on a public network.
  4. Don’t redistribute unofficial builds as “Shareaza”. Use a different name for forks to avoid confusing users, which was the core harm of the fake Shareaza sites.
  5. Respect the GPL. If you distribute binaries, provide the corresponding source.

Where to talk to the project

Use the official channels listed on our support page.

Sources

  1. Shareaza - Wikipedia (infobox: language, repository)
  2. Shareaza code on SourceForge

Related