Commit Graph

37 Commits

Author SHA1 Message Date
94d9baca2d Use vcpkg to manage openssl dep instead of choco (#7471)
* Brighter red

* Move openssl to vcpkg.exe

* Revert "Move openssl to vcpkg.exe"

This reverts commit 36f39d916f3cc2c8ce779442bd964bd6af7edd69.

* Add missing copyright

* Fix copyright dates

* Remove openssl from choco

* Install openssl using vcpkg

* Add deps for vcpkg

* Add missing vcpkg manifest

* Revert "Add deps for vcpkg"

This reverts commit c266d29c2cec4474a181b89c2f759b62ed67db10.

* Make vcpkg Windows only

* Improve comment about vcpkg

* Remove unused var

* Add caching for vcpkg

* Reorg launch.json

* Remove static env var for openssl on Windows

* Add openssl dep to vcpkg

* Update ChangeLog

* Add OpenSSL include dir

* Remove pointless choco cache

* Remove vcpkg downloads

* Remove wixtoolset for CI already installed on GitHub runners

* Use `Remove-Item` instead of `rmdir`

* Move cmake and ninja out of choco

* Revert "Move cmake and ninja out of choco (winget not supported on GitHub runner)"

This reverts commit a65c02d275e58705b8cd86fac72629284191d737.

* Move cmake and ninja to winget and don't use choco on CI

* Remove winget action

* Use scoop on CI and winget locally

* Use `seanmiddleditch/gha-setup-ninja` for Ninja

* Improve comments

* Install Ninja before deps

* Use system vcpkg if installed

* Revert "Use system vcpkg if installed"

This reverts commit 4ddee1c66e8cace458c047285a70d2f98cf9d82c.

* Add comment about why we're using local vcpkg

* Fixed comment about VC++

* Improve config comments

* Delete dead code

* Improve comment about vcpkg/buildtrees
2024-09-04 16:52:37 +01:00
b128863c67 Load server or client args from synergy-config.toml (#7467)
* Load args from .toml file

* Remove .toml files

* Handle _ arg as no key

* Remove dotenv-cpp

* Treat special last arg specially

* Improve restart warning

* Remove rogue include

* Move TOML config loader to new class

* Merge config files into one

* Add override to virtual functions

* Tidy up App decl and add missing overrides

* Add comments to organize function types

* Fixed: config.h doesn't work on Windows

* Move var position

* Improve includes in app classes

* Update ChangeLog

* Restore position of configure_file call

* Remove new entries in .in file
2024-09-02 23:48:57 +01:00
85b8b83a53 Implement safer memory use, improve dev env, fixed GUI bugs (#7407)
* Improve dev script for daemon

* Ignore `.user` files created by Qt

* Add `FORCE_DESKTOP_PROCESS` option

* Catch errors related to getting profile dir

* Disable IPC entirely if forced desktop

* Use in-class init for AppConfig members

* Refactor config to use safer memory management

* Improve launch config to make OS-specific debugger usage clearer

* Re-enable MainWindowTests on Windows, further refactor for memory safety, fixed some include orders

* Remove dead singleton code

* Swap order of tests

* Use HTTPs for URLs

* Fixed compile errors for `SYNERGY_ENABLE_LICENSING` compile path

* Restore exec function call

* Remove extra link in cancel dialog

* Fixed broken link on activation cancel UI

* Close dialog if activated

* Fixed macOS enum ref to kCurrentProcess

* Improve wording on cancel activation dialog

* WIP - Test timeout (compile error)

* Finished timeout logic (with smart pointer)

* Include string_view

* Switch to thread from jthread (maybe not supported by macOS compiler?)

* Improve comment

* Disable test on Windows

* Add TODO related to jthread on macOS

* Refactor settings and paths on Windows

* Launch in desktop mode on Windows

* Remove arg quote wraps which break desktop mode

* Fixed qFatal on Linux

* Remove test value

* Follow original `AppConfig` accessor convention

* Disable service checkbox if not Windows

* Simplify TLS control enable logic

* Update command and Git ignore

* Fixed code style

* Fixed include consistency

* Fixed includes in validator

* Fixed lint errors

* Update ChangeLog

* Use smart pointer for core process

* Remove unneccesary default operators

* Don't halt on stderr
2024-07-22 17:48:02 +01:00
f81901f633 Migrate scripts from requirements.txt to pyproject.toml (#7406)
* Migrate from `requirements.txt` to `pyproject.toml`

* Lower Python to 3.9 for GitHub Windows runner

* Increase timeout for valgrind

* Update ChangeLog
2024-07-19 10:35:10 +01:00
6399feb324 Solve low hanging reliability and maintainability issues (#7403)
* Add missing atom ctor init

* Init members with `None`

* Use in-class init and delcare getter inside if init

* Temp revert of changes ahead of unit test repair

* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test

* Suppress sonar for undefs

* Remove base dir include

* Revert "Temp revert of changes ahead of unit test repair"

This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.

* Use new accessor

* Use default dtor

* Beef up to 32 core

* Use enum class

* Make IPC protocol headers const at all levels

* Use enum class and const char for better type safety

* Use unique_ptr for m_clipboard

* Use `-j` instead of `-j8` to utilize full parallelism

* Increase thread count for sonar-scanner

* Use 32 threads

* Use in-class init for IpcClientProxy members

* Use const instead of #define

* Remove ctor member inits

* Use unique_ptr on win

* Implement temp bin dir for windows with more robust post-build copy

* Fixed missing iostream

* Add warning about copy errors

* Only run clean-gcda on Linux

* Use in-class init for IPC mutex

* Do no-op on Windows

* Hide clean-gcda task

* Move flakey test to integtests

* Delete dead code

* Test

* Temp disable post_config_all

* Disable post config step

* Revert "Disable post config step"

This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.

* Revert "Temp disable post_config_all"

This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.

* Restore -j8

* Simplify error handling

* Use const for test port

* Remove python check

* Update changelog

* Fixed order

* Fixed bad issue number

* Fixed bin copy source path

* Remove redundant except
2024-07-18 08:04:39 +01:00
bfaea34291 Re-implement packaging for GitHub workflows (Linux ARM) (#7369)
* Debian 12 ARM64 target

* Fixed comments

* Don't check for server name when exiting because of args

* Exit with success when using `--version`, `--help`, etc

* Test Linux installation

* Add Windows ARM builder

* Extract magic string

* Use proper arch name

* Swap arch order

* Fixed test

* Bootstrap Windows ARM runner

* Install winget

* Conditionally install winget

* Winget take 2

* Use shell: pwsh

* Try `powershell`

* Try cmd to install winget

* Only build distro once

* Use enum for clarity

* Remove shell

* Back out Windows ARM testing

* Attempt arch matrix

* Add Fedora arm64

* Label all -amd64

* Special case for zypper

* Fixed bad var name on Windows

* Add missing /bin ignore

* Disable GPG check on OpenSUSE

* Fixed typo

* Update ChangeLog
2024-07-08 09:32:55 +00:00
865063b77c Re-implement packaging for GitHub workflows (macOS) (#7353)
* Restore Azure macOS dist scripts

* Move steps to workflow for testing

* Always upload to GitHub

* Add codesign ID

* Echo codesign ID

* Add cert import code

* Stub file for Mac

* Self-install pyyaml and choco

* Auto add env var on Windows

* Auto add CMAKE_PREFIX_PATH to .zshrc

* Shorter var names

* Append env var instead of replace

* Only set env var if not CI

* Improve function names and print output

* Simplify Linux package command

* Support continuation sequence

* Add note about Windows

* Remove dead doc file

* Tidy up version file and move to .env format

* Use Python venv for deps

* Only use venv on Mac

* Rename package script for all OS

* Add package and dist steps, and use common upload

* Remove version source

* Fixed vars not available

* Fixed python paths

* Use RuntimeError which is sufficient

* Remove dead code

* Add extras command for Linux

* Always install deps on Linux

* Move Python deps to CI

* More env bootstrapping, ugh

* Forgot to return!

* Simplify code

* Use shell

* Simplify command

* Skip sudo if no sudo

* Update package managers

* Fixed Fedora package name

* Tidy up commands

* Use newer upload artifact

* Strip don't trim!

* Check for version file and reduce log verbosity

* Remove CentOS 7.6

* Print more info about return code and log more to stderr

* Install certificate on macOS

* Better errors for no env var

* Implement Mac signing and notary

* Move dmgbuild load

* Simplify notary

* Rename dist files to same as dest

* Fixed paths for dist

* Move checked-in dist files to res (dist is meant to be a temp dir)

* Fixed Mac path in CMake

* Fixed dmg path

* Format Python

* Ignore import warnings and move function

* Fixed cmake paths

* Add missing env var secrets

* Remove extensions from GH upload

* Make deps.yml general purpose config

* Add cspell config

* Pass codesign ID

* Use new general config file

* Sign bundle on Mac

* Move imports to functions

* Escape chars in docs

* Fixed config key accessor

* Change module import order

* Move file to tmp dir in workflow dir

* Persist temp dir

* Add tmp dir to ignore

* Flush stdio before running process

* Trying quotes around env values

* Add codesigning certificate validation for Mac signing

* Revert "Trying quotes around env values"

This reverts commit 0dd741e8cd6fde21e69d4fb871e835a5f4fa1a23.

* Extract codesign verify

* Fixed version number

* Ignore .cache dir

* Fix macro name

* Package name with version number and arch

* Improve package function readability

* Change order of vars

* Testing upload to GDrive

* Add missing return code

* Use positional args and declare error

* Use machine instead of arch and remove build from filename

* Remove redundant build jobs

* Replace massively over-complicated `build_version.py` script

* Move version info to env module

* Use version info script

* Fixed: too many values to unpack

* Chmod version script

* Use shebang

* Don't check return code on Linux

* Fixed function name

* Convert to GitHub specific script

* Env vars must be after configure

* Fixed Windows env var command

* Remove && from deps command so it's not conditional

* Fixed position of set env

* Change order of env script

* Only upload when not draft

* Test

* Tweak config

* Fixed if condition

* Don't package in draft (Windows and Linux)
2024-06-24 09:36:30 +00:00
d0a4c3d7a0 Use deps script to make life easier for contribs (#7351)
* Use deps script to make life easier for contribs

* Make readme more developer friendly

* YAML file to describe Linux deps

* Silent fail for yaml module (Python 3.6+)

* Move Qt install to deps script

* Update readme to add Windows command

* Fixed Linux package name

* Simplify env vars for workflow

* Exclude scripts from SonarCloud

* Move all deps config to .yml file

* Fixed exclude glob

* Simplify quickstart

* Fixed macOS deps config key name

* Fixed bug in Linux config read

* Use backslash for consistency

* Change SonarCloud path to /build/

* Fixed dep name

* Exclude scripts in CMake coverage

* Move script coverage exclusion to online config

* Use try/except instead of checking return value

* Fixed comment typo
2024-06-14 15:32:47 +00:00
d4133d1110 Use C++20 and CMake presets (#7322)
* Create tasks.json

* Delete gui.pro

* Swallow any exceptions from stopDesktop

* Upgrade to C++20

* Update ChangeLog

* Remove old versions of Ubuntu

* Ignore VS Code workspace

* Restore original CodeQL job name

* Add problem matcher and suppress warnings from within old CMake lib

* Bump CMake min version to 3.5

* Remove useless cmake_minimum_required

* HACK: temp comment out failing code

* Bump Qt to 5.12.6

* Delete tasks.json

* Create CMakePresets.json

* Fixed Qt link error: The input line is too long.

* Fixed invalid call to map erase

* Fixed incorrect use of RegCreateKeyEx

* Add VS Code tasks.json for cmake build

* Store `desktop` in char buf before using it

* Generate compile_commands.json

* Restore indentation

* Revert "Restore indentation"

This reverts commit d9f495460f337c37e8a01d8853b317e949ea085a.

* Restore original indentation (for now)

* Create extensions.json
2024-01-11 00:26:39 +00:00
cae96765cb flatpack workflow to build flatpak installer (#7177)
* flatpack workflow to build flatpak installer

* rename flatpak build name

* changing job-build-flatpak, disabling other job-tests meanwhile

* update apt before attempting to install flatpak

* changing install command

* adding logs for installing flatpak

* running installation as root

* running installation as root - for each command

* attempting to use github action to build flatpak

* fix typo on name

* typo in image

* adding privilege option and fixing manifest path

* changing manifest-path

* uploading bundle to artifact

* changing synergy.desktop for flatpak build

* adding versioning to flatpak bundle and upload to bin storage on release

* version info fix

* running build_version as root

* adding __w to safe directory

* adding git config safe directory command to builder

* testing which part of version info is breaking

* falling back to local build of flatpak

* running only the normal synergy

* investigating build_version.py

* investigating build_version.py 2

* investigating build_version.py 3

* checking if raspberry pi build is working correctly

* get subprocess error

* printing subprocess error

* disabling try catch in version

* running git rev-list --tags command

* running git rev-list --tags command

* disabling other tests

* trying to run extra step in gitaction

* trying to remove extra step in gitaction

* fixing issues with subprocess

* try to run git rev-list

* test

* ignore versioning

* run original flatpak

* testing various build options

* attempting to run flatpak through raspberry

* raspberry flatpak installation 1

* fixing tabs in flatpak build

* trying apt over apt-get

* removing sudo from build process

* removing apt update

* trying to build without versioning

* testing build without publish

* testing

* adding fetch-depth in checkout

* checking out with v3

* getting flatpak to run without github action

* using ubuntu20.04 container

* attempting to add __w into safe directory

* adding dependencies installation

* remove sudo from installing dependencies

* removing all sudo commands from flatpak install

* moving all the apt-get installs in dependencies job

* add yes response to flatpak platform & sdk install

* proper install command for flatpak builder

* flathub input yes to flatpak builder install

* check if flatpak folder exist

* adding flatpak using apt-get

* add privilege option in docker

* removing flatpak finalize build / remove com.symless.Synergy

* listing flatpak dir

* testing to publish flatpak

* checking the directory for flatpak file

* correcting the path for scp action

* attempting to create a specific file in scp

* flatpak workflow cleanup

* cleaning up

* adding changelog info and changing flatpak patch files location

* fedora add safe directory

* creating business/enterprise YAML to replace based on env var

* build test

* disabling tests

* fixing YAML struct

* disabling replace action to see if its causing issue

* changing cp command without backslash

* checking if condition syntax

* uncommenting error at build_version

* fixing file location

* cleaning up actions

* changing workkflow to use .yml file without copying

* finalizing git action

* Remove git safe directory

* Add final line to missing files

* Move safe directory workaround

* Minor cleanup for flatpak files

Co-authored-by: Daun Chung <daunchung@github.com>
Co-authored-by: Kyle Bloom <kyle@symless.com>
2022-05-27 15:42:01 +01:00
70d67040b7 Revert openssl changes (#6926)
* Revert "Core builds (#6908)"

This reverts commit 4c7456d3cc.

* Re-add minor gitignore changes

* Re-add buildCoreWindows script

* Re-add synergy no legacy flag

* Minor format fix

* Revert openssl checksums

* Remove enhancement

* Install python-pip for gcovr

* Fix mixed tabs and spaces
2021-01-26 13:36:39 +02:00
4c7456d3cc Core builds (#6908)
* Fix formatting in CMakeLists

* Add SYNERGY_NO_LEGACY environment flag

* Add build script for Windows

* Find_package for OpenSSL

* Move build scrits to scripts folder

* Add macOS and Linux build scripts

* Add environment variable

* Compile core with static openssl

* Default builds to Release

* Streamline OpenSSL dependancies

* Remove openssl from repo

* Change actions to test actions

* Add zip creation to build scripts

* Re-add original tests

* Add action value output

* Build per platform on release

* Fix path for core build

* Temporarily keep artifacts

* Set execute flag

* Zip before archiving

* Static build only for windows

* Remove -m flag from zip

* Change zip to tar

* Fix workflow name

* Add hints to openssl on mac

* Fix zip files

* Fix verbose flag on tar

* Remove path on download artifacts

* Try an array of build targets

* Extract action binaries

* Install full openssl

* Add 32bit openssl

* Modify installer to use the openssl.exe from ext

* Install OpenSSL full for windows release build

* Add openssl installation during windows CI

* Modify changelog

* Add enhancments section

* Remove bottom line in changelog
2021-01-20 14:47:56 +00:00
0394249c4b adjusted .gitignore 2020-11-04 12:04:51 +07:00
b924c2d52d #6661 Removed stored version of gtest and gmock 2020-06-30 16:53:04 +01:00
04504c59bb #6666 Updated git ignore and Readme 2020-04-30 10:27:32 +01:00
e2802eee52 #6666 Added Doxy config and Azure build job 2020-04-21 16:21:52 +01:00
8c0101405a #6497 Fixed problem with windows version variables not working in cmd 2019-05-09 17:52:59 +01:00
82edfe087c Ignore idea files 2018-03-20 10:13:39 +00:00
d37920364d Unzip GTest and GMock and remove zip handling code 2017-02-07 01:24:32 +00:00
817f8f2bcb Updated git ignore list 2016-10-13 11:11:37 +01:00
9fd210b3a5 Update git ignore list 2015-11-19 13:46:47 -08:00
54ca552aa6 added gvim swap files to gitignore 2015-04-29 11:42:15 -07:00
25cce186dd Adding VIM temp files to the gitignore 2015-04-28 10:37:40 -07:00
a1977fa009 Updated ignore list 2015-04-28 13:22:02 +01:00
b9c5eb2e6f added certificate generate #4168 2015-02-11 17:28:56 +00:00
12c2acf37a ignored openssl output dir 2015-01-06 14:15:13 +00:00
34d8de4c3b ignored setup .suo 2014-11-11 14:14:46 +00:00
35e8c88887 Updated ignored list on Mac 2014-10-27 12:00:18 +00:00
e707b426cf Ignore Qt Creator user's settings file 2014-10-23 13:22:51 +01:00
972922607b cleaned up .gitignore (removed old files) 2014-10-21 16:14:29 +01:00
38718a362f Enable drag and drop by default #4122
Remove premium login from GUI
2014-10-15 14:57:28 +01:00
488241850c moving 1.4 to trunk 2012-06-10 16:50:54 +00:00
e65886857d removed trunk; please commit to (and build patches against) release branches instead. 2011-10-05 00:10:22 +00:00
acc558bcdd Update gitignore for doxygen 2010-09-05 23:36:24 +00:00
6278a8fb14 Updated .gitignore based on svn ignore rules 2010-06-01 18:49:51 +00:00
6c63e83e99 Added more excludes to .gitignore
Some more commenting also
2010-05-23 21:15:01 +00:00
e421f71208 Created gitignore based on svn exclude
Used git svn create-ignore
2010-05-23 21:14:55 +00:00