## 1. Project Overview & Quickstart (hbons/SparkleShare)

## File: README.md

# [SparkleShare](https://www.sparkleshare.org/)

> [!NOTE]
> Please read 🌱 [issue #2006](https://github.com/hbons/SparkleShare/issues/2006) for the future of this project.

> [!IMPORTANT]
> Hello! Hylke here. I was recently [laid off](https://www.theguardian.com/technology/2025/may/13/microsoft-layoffs). I'd love to work full-time creating **apps for Linux** and contributing **design for FOSS projects**. I hope to gather enough [monthly sponsors](https://github.com/sponsors/hbons) for a minimum wage. Every little helps. Thank you.



[SparkleShare](https://www.sparkleshare.org/) is a file sharing and collaboration app. It works just like Dropbox, and you can run it on your own server. It's available for Linux distributions, macOS, and Windows.



You can support this project through [💕 GitHub Sponsors](https://github.com/sponsors/hbons).

## How does it work?

SparkleShare creates a special folder on your computer. You can add remotely hosted folders (or "projects") to this folder. These projects will be automatically kept in sync with both the host and all of your peers when someone adds, removes or edits a file.

## Install on Ubuntu or Fedora

You can install the package from your distribution (likely old and not updated often), but we recommend to get our Flatpak with automatic updates to always enjoy the latest and greatest:

```bash
flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.sparkleshare.SparkleShare
```

Now you can run SparkleShare from the apps menu.

**Note:** by default SparkleShare uses an AppIndicator status icon on Linux. If you use GNOME on a distribution other than Ubuntu, please install the [AppIndicator extension](https://extensions.gnome.org/extension/615/appindicator-support/). If you don't use GNOME, you can start SparkleShare with `--status-icon=gtk`.


## Install on macOS

Download the app from the [releases page](https://github.com/hbons/SparkleShare/releases).


## Set up a host

Under the hood SparkleShare uses the version control system [Git](https://git-scm.com/) and the large files extension [Git LFS](https://git-lfs.github.com), so setting up a host yourself is relatively easy. Using your own host gives you more privacy and control, as well as lots of cheap storage space and higher transfer speeds. We've made a simple [script](https://github.com/hbons/Dazzle) that does the hard work for you. If you need to manage a lot of projects and/or users we recommend hosting a [GitLab Community Edition](https://about.gitlab.com/installation/) instance.


## Build from source
`SparkleShare` is Free and Open Source software and licensed under the [GNU GPLv3 or later](LICENSE.md). You are welcome to change and redistribute it under certain conditions. Its library `Sparkles` is licensed under the [GNU LGPLv3 or later](LICENSE_Sparkles.md).

Here are instructions to build SparkleShare on [Linux distributions](SparkleShare/Linux/README.md), [macOS](SparkleShare/Mac/README.md), and [Windows](SparkleShare/Windows/README.md).


## Useful links
- [sparkleshare.org](https://www.sparkleshare.org/)
- [@hbons on Mastodon](https://mastodon.social/@hbons)
- [Wiki](https://www.github.com/hbons/SparkleShare/wiki)


Have fun, make awesome. :)

---

## File: SparkleShare/Mac/README.md

## Building on macOS

You can build SparkleShare from source or download the SparkleShare bundle.


### Installing build requirements

  Install [Xcode](https://itunes.apple.com/gb/app/xcode/id497799835?mt=12) from the macOS App Store, or [download](https://developer.apple.com/xcode/) it manually.
  Install [Visual Studio](https://www.visualstudio.com/vs/visual-studio-mac/).

For building the distribution release, where Mono libraries are merged into SparkleShare, we need 
 the `autoconf` and `pkg-config`. You can install these in several ways, here's how it's done using [Homebrew](https://brew.sh/):

```bash
brew install autoconf automake libtool pkg-config
```

### Building

There are three build configurations available:

* DebugMac

  with debug symbols and having the Symbol DEBUG defined. Requires an installed Mono framework.
  
* Release

  without debug symbols. Requires an installed Mono framework.
  
* ReleaseMac

  without debug symbols, the Mono framework is linked statically into the binary, so it does not require an installed Mono framework.

To build any of these configurations,

* open `./SparkleShare.sln` in Visual Studio
* select the SparkleShare.Mac project in the Solution view
* select the required configuration
* select `Build`, then `"Build SparkleShare.Mac"` from the menu

To build SparkleShare from a command line (e.g. for using a CI system), use this command:

```bash
 /Applications/Visual\ Studio.app/Contents/MacOS/vstool build "--configuration:ReleaseMac" "SparkleShare.sln"
```


### Resetting SparkleShare settings

```
rm -Rf ~/SparkleShare
rm -Rf ~/.config/org.sparkleshare.SparkleShare
```


### Uninstalling

Simply remove the SparkleShare bundle.

---

## File: SparkleShare/Linux/README.md

# SparkleShare for Linux

## Building with Flatpak

If you want to test SparkleShare from Git, it's easiest to build a flatpak locally using [this spec](
https://github.com/hbons/org.sparkleshare.SparkleShare/) and run it.


## Building on Linux

### Common build requirements

You will need the packages listed below for the most used Linux distributions:

```shell
# On Ubuntu 16.04:

# Run requirements
sudo apt-get install \
  curl \
  git \
  git-lfs \
  gvfs  

# Build requirements
sudo apt-get install \
  desktop-file-utils \
  gtk-sharp3-gapi \
  libappindicator3-0.1-cil-dev \
  libdbus-glib2.0-cil-dev \
  libgtk3.0-cil-dev \
  libnotify3.0-cil-dev \
  libsoup2.4-dev \
  libtool-bin \
  libwebkit2gtk-4.0 \
  meson \
  mono-devel \
  mono-mcs \
  xsltproc


# On Fedora 27:

# Run requirements
sudo dnf install \
  curl \
  git \
  git-lfs \
  gvfs

# Build requirements
sudo dnf install \
  gtk-sharp3-devel \
  gtk-sharp3-gapi \
  libtool \
  meson \
  notify-sharp3-devel \
  webkitgtk4-devel \
  webkit2-sharp
```


### Additional source build requirements

Install these `soup-sharp` and `webkit2gtk-sharp` bindings:

```bash
git clone https://github.com/hbons/soup-sharp
cd soup-sharp/
./autogen.sh
make
sudo make install
```

```bash
git clone https://github.com/hbons/webkit2-sharp
cd webkit2-sharp/
./autogen.sh
make
sudo make install
```

On Ubuntu, also install these `appindicator-sharp` bindings:

```bash
sudo apt-get install libappindicator3-dev
git clone https://github.com/hbons/appindicator-sharp
cd appindicator-sharp/
./autogen.sh
make
sudo make install
```


### Start the build

You can build and install SparkleShare with `meson` like this:

```bash
meson build/
ninja -C build/
sudo ninja install -C build/
```


If your distribution has an out of date `meson` package, you can install the latest version using the Python package manager:

```bash
# Install pip using your system's package manager
sudo apt-get install python3-pip # Ubuntu
sudo dnf install python3-pip # Fedora

pip3 install meson
```


### Uninstall

```bash
sudo ninja uninstall
```


### Reset SparkleShare settings

```bash
rm -Rf ~/SparkleShare
rm -Rf ~/.config/org.sparkleshare.SparkleShare
```

---

## File: SparkleShare/Windows/README.md

## Windows
You can choose to build SparkleShare from source or to run the Windows installer.


### Installing build requirements

Install version 4.0 of the [.NET Framework](http://www.microsoft.com/download/en/details.aspx?id=17851) if you haven't already.

Install [msysGit](https://github.com/msysgit/msysgit/releases) and copy the contents of the install folder
(`C:\Program Files (x86)\Git` by default) to `C:\path\to\SparkleShare-sources\bin\msysgit\` (create the "bin"-folder in the SparkleShare source directory).

Open a command prompt and execute the following:

```
cd C:\path\to\SparkleShare-sources
cd SparkleShare\Windows
build
```

`C:\path\to\SparkleShare-sources\bin` should now contain `SparkleShare.exe`, which you can run.


### Creating a Windows installer

To create an installer package, install [WiX 3.7](http://wix.codeplex.com/releases/view/99514), restart Windows and run:

```
cd C:\path\to\SparkleShare-sources\SparkleShare\Windows\
build installer
```

This will create `SparkleShare.msi` in the same directory.


### Resetting SparkleShare settings

Remove `My Documents\SparkleShare` and `AppData\Roaming\org.sparkleshare.SparkleShare` (`AppData` is hidden by default).


### Uninstalling

You can uninstall SparkleShare through the Windows Control Panel.

## 2. Official Technical Reference & Guides (hbons/org.sparkleshare.SparkleShare)

# SparkleShare [Flatpak](http://flatpak.org/) spec

This spec is used to make SparkleShare [available on Flathub](https://flathub.org/apps/details/org.sparkleshare.SparkleShare). If you just want to use the latest stable release, it's easiest to install SparkleShare from there.

If you're interested in installing the latest nightly SparkleShare version, do read on.


## Install dependencies and build the flatpak

First, run `git submodule update --init`.


```bash
# Install the GNOME runtime and SDK
flatpak --user remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
flatpak --user install gnome org.gnome.Platform 3.28
flatpak --user install gnome org.gnome.Sdk 3.28

# Build or update the latest nightly SparkleShare from master
flatpak-builder --repo=./repo ./app org.sparkleshare.SparkleShare.Nightly.yml
```

It may take a while to build the flatpak (around 30 minutes on my computer), this is normal.


## Install the built flatpak from the repo

```bash
flatpak --user remote-add --no-gpg-verify sparkleshare ./repo
flatpak --user install sparkleshare org.sparkleshare.SparkleShare
```

You can now start SparkleShare from the apps menu or by running `flatpak run org.sparkleshare.SparkleShare`.

I've added two scripts to automate the build and installation steps after you've installed the GNOME runtime and SDK. `./build-stable.sh` builds the last released version, and `./build-nightly.sh` builds the last commit on [master](https://www.github.com/hbons/SparkleShare/tree/master). Simply run the script again to build any new commits.