Add BUILD.md to get people started (#7479)

* Add `BUILD.md` file

* Improve wording

* Add note about broken packages

* Reorg package instructions

* Reorg package instructions (macOS first)

* Correct broken to outdated

* Fixed formatting

* Sync info with README

* Improve wording around development of the code

* Fixed typo

* Update ChangeLog
This commit is contained in:
Nick Bolton 2024-09-06 10:52:21 +01:00 committed by GitHub
parent ad330d7fba
commit ca49855fc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 158 additions and 53 deletions

50
BUILD.md Normal file
View file

@ -0,0 +1,50 @@
# Build Synergy
## Developer Quick Start
Synergy 1 Community Edition is free and open source software, and anyone is welcome to build it,
run it, tinker with it, redistribute it as part of their own app, etc.
These instructions will build Synergy 1 Community Edition, which doesn't require a license
or serial key. Check the [Developer Guide](https://github.com/symless/synergy/wiki/Developer-Guide)
wiki page if you have problems.
**1. Dependencies:**
*Linux, macOS, or BSD-derived:*
```
./scripts/install_deps.sh
```
*Windows:*
```
python scripts/install_deps.py
```
**2. Configure:**
*Linux, macOS, or BSD-derived:*
```
cmake -B build
```
*Windows:*
```
cmake -B build --preset=windows-release
```
**3. Build:**
```
cmake --build build -j8
```
**4. Test:**
```
./build/bin/unittests
./build/bin/integtests
```
**5. Run**
```
./build/bin/synergy
```

View file

@ -1 +1,12 @@
See our wiki for information on contributing code: https://github.com/symless/synergy/wiki # Contributing to Synergy
Hello future community member!
Synergy 1 Community Edition is free and open source software, and anyone is welcome to build it,
run it, tinker with it, redistribute it as part of their own app, etc.
See our wiki page on [contributing](https://github.com/symless/synergy/wiki/Contributing) for more
information. We look forward to reviewing your PR!
Thanks,
The Synergy community

View file

@ -15,6 +15,7 @@ Enhancements:
- #7471 Use `vcpkg` to manage `openssl` dep instead of `choco` - #7471 Use `vcpkg` to manage `openssl` dep instead of `choco`
- #7473 Simplify `vcpkg` caching and use system `vcpkg` - #7473 Simplify `vcpkg` caching and use system `vcpkg`
- #7474 FreeBSD GitHub runner with `vmactions/freebsd-vm@v1` - #7474 FreeBSD GitHub runner with `vmactions/freebsd-vm@v1`
- #7479 Add `BUILD.md` to get people started
# 1.15.1 # 1.15.1

143
README.md
View file

@ -6,21 +6,29 @@
[![SonarCloud Analysis](https://github.com/symless/synergy/actions/workflows/sonarcloud-analysis.yml/badge.svg)](https://github.com/symless/synergy/actions/workflows/sonarcloud-analysis.yml) [![SonarCloud Analysis](https://github.com/symless/synergy/actions/workflows/sonarcloud-analysis.yml/badge.svg)](https://github.com/symless/synergy/actions/workflows/sonarcloud-analysis.yml)
[![Build containers](https://github.com/symless/synergy/actions/workflows/build-containers.yml/badge.svg)](https://github.com/symless/synergy/actions/workflows/build-containers.yml) [![Build containers](https://github.com/symless/synergy/actions/workflows/build-containers.yml/badge.svg)](https://github.com/symless/synergy/actions/workflows/build-containers.yml)
[Synergy](https://symless.com/synergy) is a keyboard and mouse sharing app. Use the keyboard, mouse, or trackpad of one computer to control nearby computers, and work seamlessly between them. [Synergy](https://symless.com/synergy) is a keyboard and mouse sharing app.
Use the keyboard, mouse, or trackpad of one computer to control nearby computers,
and work seamlessly between them.
This project contains the source code for _Synergy 1 Community Edition_ which is actively maintained, free to use, and does not require a license or serial key. This project contains the source code for _Synergy 1 Community Edition_ which is actively
maintained.
Synergy 1 Community Edition is free and open source software, and anyone is welcome to build it,
run it, tinker with it, redistribute it as part of their own app, etc.
**Wayland support:** Wayland now has experimental support (GNOME 46 is required, KDE TBD). **Wayland support:** Wayland now has experimental support (GNOME 46 is required, KDE TBD).
![Synergy 1 Community Edition](https://github.com/user-attachments/assets/faf5bd69-336c-4bd0-ace3-e911f199d961) ![Synergy 1 Community Edition](https://github.com/user-attachments/assets/faf5bd69-336c-4bd0-ace3-e911f199d961)
To use the community edition, install the `synergy` package with your favorite package manager or build it yourself using the Developer Quick Start instructions below. To use the community edition, install the `synergy` package with your favorite package manager
or build it yourself using the Developer Quick Start instructions below.
## Goals and Philosophy ## Goals and Philosophy
Version 1.15 brings a new philosophy of being more approachable to the open-source community instead of wholly focusing on commercial interests. Version 1.15 brings a new philosophy of being more approachable to the open-source community
We still have customers to support the development of the code, but we are committed to maintaining and improving Synergy 1 Community Edition instead of wholly focusing on commercial interests.
for years to come and we're excited to work with the community to improve the code for the benefit of everyone. We still have customers in order to finance the development of the code, but we are committed to
maintaining and improving Synergy 1 Community Edition for years to come and we're excited to work
with our community of open source users to improve the code for the benefit of everyone.
## Operating Systems ## Operating Systems
@ -29,7 +37,7 @@ We support all major operating systems, including Windows, macOS, Linux, and Uni
All Linux distributions are supported, primarily focusing on: All Linux distributions are supported, primarily focusing on:
Debian, Ubuntu, Linux Mint, Fedora, RHEL, AlmaLinux, Rocky Linux, Arch Linux, openSUSE, Gentoo. Debian, Ubuntu, Linux Mint, Fedora, RHEL, AlmaLinux, Rocky Linux, Arch Linux, openSUSE, Gentoo.
We officially support FreeBSD, we would also like to support: OpenBSD, NetBSD, DragonFly BSD, Solaris. We officially support FreeBSD, and would also like to support: OpenBSD, NetBSD, DragonFly, Solaris.
## Ways to get involved ## Ways to get involved
@ -46,7 +54,12 @@ Here are a few ways to join in with the project and get involved:
## Developer Quick Start ## Developer Quick Start
How to build Synergy 1 Community Edition. Check the [Developer Guide](https://github.com/symless/synergy/wiki/Developer-Guide) wiki page if you have problems. Synergy 1 Community Edition is free and open source software, and anyone is welcome to build it,
run it, tinker with it, redistribute it as part of their own app, etc.
These instructions will build Synergy 1 Community Edition, which doesn't require a license
or serial key. Check the [Developer Guide](https://github.com/symless/synergy/wiki/Developer-Guide)
wiki page if you have problems.
**1. Dependencies:** **1. Dependencies:**
@ -62,21 +75,16 @@ python scripts/install_deps.py
**2. Configure:** **2. Configure:**
*Linux, macOS, or BSD-derived:*
```
cmake -B build
```
*Windows:* *Windows:*
``` ```
cmake -B build --preset=windows-release cmake -B build --preset=windows-release
``` ```
*macOS:*
```
cmake -B build --preset=macos-release
```
*Linux:*
```
cmake -B build --preset=linux-release
```
**3. Build:** **3. Build:**
``` ```
cmake --build build -j8 cmake --build build -j8
@ -85,6 +93,12 @@ cmake --build build -j8
**4. Test:** **4. Test:**
``` ```
./build/bin/unittests ./build/bin/unittests
./build/bin/integtests
```
**5. Run**
```
./build/bin/synergy
``` ```
## How to install (packages) ## How to install (packages)
@ -93,43 +107,54 @@ Synergy 1 Community Edition is packaged by the community (status shown below).
Synergy 2 is no longer in development and we recommend that package maintainers do not provide it. Synergy 2 is no longer in development and we recommend that package maintainers do not provide it.
Synergy 3 and Synergy 1 (licensed) are available to download from the [official packages](https://symless.com/synergy/download). Synergy 3 and Synergy 1 (licensed) are available to download from the
[official packages](https://symless.com/synergy/download).
**Community edition:** **Community edition:**
*Windows:*
```
choco install synergy
```
*macOS:* *macOS:*
``` ```
brew install synergy brew install synergy
``` ```
*Debian, Ubuntu, etc:*
```
sudo apt install synergy
```
*Fedora, Red Hat, etc:* *Fedora, Red Hat, etc:*
``` ```
sudo dnf install synergy sudo dnf install synergy
``` ```
*Debian, Ubuntu, etc:*
*(temporarily broken)*
```
sudo apt install synergy
```
*Arch, Manjaro, etc:* *Arch, Manjaro, etc:*
*(temporarily broken)*
``` ```
sudo pacman -S synergy sudo pacman -S synergy
``` ```
*Windows:*
*(very outdated)*
```
choco install synergy
```
**Note:** Some packages are temporarily broken. We have reached out to the package maintainers to
resolve this. If you're a package maintainer and have a question for us,
[please let us know](ttps://github.com/symless/synergy/wiki/Contact-the-team).
## Package Maintainers ## Package Maintainers
Synergy is already available through most package managers as `synergy`, and we would love to see the latest version of Synergy is already available through most package managers as `synergy`, and we would love to see
Synergy 1 Community Edition on every package manager for every OS we support (Windows, macOS, Linux, Unix-like BSD-derived, etc). the latest version of Synergy 1 Community Edition on every package manager for every OS we support
(Windows, macOS, Linux, Unix-like BSD-derived, etc).
Package maintainers can use `scripts/package.py` to see how we build packages, Package maintainers can use `scripts/package.py` to see how we build packages,
but most package maintainers will create a packaging script rather than use our scripts (which is fine by us). but most package maintainers will create a packaging script rather than use our scripts
If you're a package maintainer and have a question, please [get in touch](https://github.com/symless/synergy/wiki/Contact-the-team). (which is fine by us).
If you're a package maintainer and have a question, please
[get in touch](https://github.com/symless/synergy/wiki/Contact-the-team).
Good packages: Good packages:
- [Fedora](https://packages.fedoraproject.org/pkgs/synergy/synergy/) - [Fedora](https://packages.fedoraproject.org/pkgs/synergy/synergy/)
@ -144,9 +169,10 @@ Broken packages:
- [Debian](https://tracker.debian.org/pkg/synergy) - [Debian](https://tracker.debian.org/pkg/synergy)
- [Chocolatey](https://community.chocolatey.org/packages/synergy) - [Chocolatey](https://community.chocolatey.org/packages/synergy)
It appears that the `synergy` package has been removed or discontinued from some package repositories. It appears that the `synergy` package has been removed or discontinued from some package
There are many reasons why this may happen, but sometimes if a package maintainer steps down or leaves the project repositories. There are many reasons why this may happen, but sometimes if a package maintainer
without finding a replacement, the package might lose support, leading to its removal. steps down or leaves the project without finding a replacement, the package might lose support,
leading to its removal.
This can also happen when there are difficulties updating the package to the latest version, This can also happen when there are difficulties updating the package to the latest version,
and communication has broken down between the package maintainer and the upstream developers. and communication has broken down between the package maintainer and the upstream developers.
If you're a package maintainer and would like to bring the `synergy` package back to life, please If you're a package maintainer and would like to bring the `synergy` package back to life, please
@ -156,37 +182,50 @@ If you're a package maintainer and would like to bring the `synergy` package bac
### Has Synergy moved beyond its goals from the 1.x era? ### Has Synergy moved beyond its goals from the 1.x era?
Our goal for Synergy 1 (including the community edition) has always been and will always be to make a simple, reliable, and feature-rich Our goal for Synergy 1 (including the community edition) has always been and will always be to
mouse and keyboard-sharing tool. We do maintain another product called Synergy 3, but as this uses Synergy 1 Core (the server and client make a simple, reliable, and feature-rich mouse and keyboard-sharing tool. We do maintain another
part of Synergy), we depend on Synergy 1 to remain stable and modern which is why we continue to develop and improve the product. product called Synergy 3, but as this uses Synergy 1 Core (the server and client part of Synergy),
we depend on Synergy 1 to remain stable and modern which is why we continue to develop and improve
the product.
### If I want to solve issues in Synergy do I need to contribute to a fork? ### If I want to solve issues in Synergy do I need to contribute to a fork?
We welcome PRs (pull requests) from the community. If you'd like to make a change, please feel free to We welcome PRs (pull requests) from the community. If you'd like to make a change, please feel
[start a discussion](https://github.com/symless/synergy/discussions) or [open a PR](https://github.com/symless/synergy/wiki/Contributing). free to [start a discussion](https://github.com/symless/synergy/discussions) or
It's great that people spin up rebranded forks of Synergy, power to them. However, it's not necessary if you want to make changes. [open a PR](https://github.com/symless/synergy/wiki/Contributing).
If you're thinking of starting your own rebranded fork of Synergy, it might be because we're doing something wrong so please It's great that people spin up re-branded forks of Synergy, power to them. However, it's not
[let us know](https://github.com/symless/synergy/wiki/Contact-the-team) what we can do to let you feel welcome in our community. necessary if you want to make changes.
If you're thinking of starting your own re-branded fork of Synergy, it might be because we're
doing something wrong so please
[let us know](https://github.com/symless/synergy/wiki/Contact-the-team) what we can do to let
you feel welcome in our community.
### Is clipboard sharing supported? ### Is clipboard sharing supported?
Absolutely. The clipboard-sharing feature is a cornerstone feature of the product and we are committed to maintaining and improving that feature. Absolutely. The clipboard-sharing feature is a cornerstone feature of the product and we are
committed to maintaining and improving that feature.
### Is Wayland for Linux supported? ### Is Wayland for Linux supported?
Yes! Wayland (the Linux display server protocol aimed to become the successor of the X Window System) is an important platform for us. Yes! Wayland (the Linux display server protocol aimed to become the successor of the X Window
The [`libei`](https://gitlab.freedesktop.org/libinput/libei) and [`libportal`](https://github.com/flatpak/libportal) libraries enable System) is an important platform for us.
Wayland support for Synergy. We would like to give special thanks to Peter Hutterer (@whot), who is the author of `libei`, a major contributor The [`libei`](https://gitlab.freedesktop.org/libinput/libei) and
to `libportal`, and the author of the Wayland implementation in Synergy. Others such as Olivier Fourdan helped with the Wayland implementation, [`libportal`](https://github.com/flatpak/libportal) libraries enable
and we rely on the work of our community of developers to continue the development of Wayland support. Wayland support for Synergy. We would like to give special thanks to Peter Hutterer (@whot),
who is the author of `libei`, a major contributor to `libportal`, and the author of the Wayland
implementation in Synergy. Others such as Olivier Fourdan helped with the Wayland implementation,
and we rely on the work of our community of developers to continue the development of Wayland
support.
### Where did it all start? ### Where did it all start?
Synergy was first created in 2001 by Chris Schoeneman. Synergy was first created in 2001 by Chris Schoeneman.
Read about the [history of the project](https://github.com/symless/synergy/wiki/History) on our Wiki. Read about the [history of the project](https://github.com/symless/synergy/wiki/History) on our
wiki.
## Repology ## Repology
Repology monitors a huge number of package repositories and other sources comparing package versions across them and gathering other information. Repology monitors a huge number of package repositories and other sources comparing package
versions across them and gathering other information.
[![Repology](https://repology.org/badge/vertical-allrepos/synergy.svg?exclude_unsupported=1)](https://repology.org/project/synergy/versions) [![Repology](https://repology.org/badge/vertical-allrepos/synergy.svg?exclude_unsupported=1)](https://repology.org/project/synergy/versions)

View file

@ -41,6 +41,7 @@
"Oleksandr", "Oleksandr",
"Olena", "Olena",
"outputdir", "outputdir",
"pacman",
"Petroules", "Petroules",
"Pixmap", "Pixmap",
"Poschta", "Poschta",
@ -48,6 +49,7 @@
"pyproject", "pyproject",
"qputenv", "qputenv",
"Regen", "Regen",
"Repology",
"runas", "runas",
"Sbârnea", "Sbârnea",
"Schoeneman", "Schoeneman",
@ -58,10 +60,12 @@
"synergyc", "synergyc",
"synergyd", "synergyd",
"synergys", "synergys",
"trackpad",
"unittests", "unittests",
"Valgrind", "Valgrind",
"vcpkg", "vcpkg",
"Volker", "Volker",
"whot",
"winget" "winget"
], ],
"ignoreWords": [], "ignoreWords": [],