Commit graph

480 commits

Author SHA1 Message Date
Nick Bolton
9315b089c8
Improve UI design and reduce over-use of #ifdef (#7413)
* Rename `LicenseManager` to `License`

* Rename `LicenseManager` to `License`

* Move License class to gui lib

* Rename license related classes

* Refactor serial key parsing

* Don't fail fast on containers

* Move licensed product name from config to code

* Fixed formatting

* Update code coverage generator and fixed args

* WIP: Converting license to chrono

* WIP: Fixed compile errors, tests failing

* Fixed all serial key and license tests

* Disable verbose logging

* Add missing </p>

* Add missing include

* Revert code coverage config

* Handle parse errors

* Move more classes into the new gui lib and improve license/serial object ownership

* WIP: Fixing signal/slots in MainWindow

* Fixed slot for about to quit

* Rename manual slots to solve auto-connection warnings

* Fixed logging issue

* By default, don't close to tray

* Add .env support and furthe refactor license code, also fixed some copyright dates

* Remove test code

* Fixed memory error in .env parser and refactor more licensing display code

* Fixed color inconsistencies

* Fixed link colors and made log view expand

* Disable server components rather than hiding

* Reset years of blind UI layout fiddling

* Fixed clean Qt task

* Only show notice when time limited

* Fixed main window layout

* Show connected clients

* Set 15 spacing

* Auto connect on start

* More intentional screen size

* Fixed tests related to license

* Tests for expiry notifications

* Reorg tests and remove death test

* Update gtest

* Tests for dotenv parser

* Test command process

* What the heck is that doing there?

* Merge constants headers

* Fixed magic includes

* Remove helper function

* Remove comment

* Remove extern decl

* Update ChangeLog
2024-07-26 23:53:52 +01:00
Nick Bolton
ce3f8869e7
Reduce GUI compile time by building a GUI library (#7412)
* Call ensure_in_venv before all imports

* Create `gui` lib and link to `synergy` and test bins

* Move GUI IPC code to GUI lib

* Improve `AppConfig` members and change `minimizeOnClose` to `closeToTray`

* Group getters and setters

* Add missing `m_CloseToTray` load

* Fixed lint issue

* Add TODO comment for main window integ test

* Remove redundant comments and add override

* Remove dead code

* Update ChangeLog

* Fixed activation related compile errors

* Disable concurrency cancel jobs

* Disable fail-fast for matrix
2024-07-23 20:17:40 +01:00
Nick Bolton
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
Nick Bolton
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
Nick Bolton
6f411e4ab8
Restore integtests and add to CI as warning comment on failure (#7404)
* Add coverage for both targets

* Use var for test bins

* Disable cmake-format comment fiddling

* Refactor GUI source config

* Use bin var for tests

* Remove unused member

* Add integration tests to CI

* Use modern cmake args

* Use max threads for build

* Use better var name for CPU core count

* Split build and configure steps

* Combine tests into action and add a PR comment

* Fixed yaml indentation in action

* Pass GITHUB_TOKEN

* Update coverage paths for SonarCloud

* Don't ignore return codes

* Add shell

* Run Valgrind on integ tests

* Use header for tests

* Save test results in table

* Move setup step outside of action

* Change logic of creating PR comment

* Remove header formatting

* Use emojis for simplicity

* Run build wrapper in build dir

* Use default make target

* Pass secrets

* Fixed SonarScanner warnings

* Don't allow unit tests to fail

* Fixed typo

* Update sonar scanner paths

* Fixed line endings

* Use step output

* Improve exclusion glob

* Exclude files from coverage

* Restore simpler pattern

* Set temp file path

* Coverage tests

* Re-create comment at start of job

* Append table header

* Add setup action

* Checkout before action

* Re-add projectBaseDir

* Restore original sonar scanner

* Use bash syntax for if

* Remove unused `shell`

* Add missing shell for valgrind action

* Restore new sonar scanner config

* Add missing shell

* Run only MainWindowTests

* Test with big change

* More changes

* Move to correct dir

* Remove test code

* Disable broken integ tests

* Switch coverage to front of filename

* Remove filter

* Refactor status step

* Disable segfault test

* Fixed: No status showing

* Add link to workflows

* Add test code for coverage

* Revert "Add test code for coverage"

This reverts commit c42309349b64f7828f2ca89149b30c5b0f93478a.

* Get workflow run URL

* Add missing shell

* Use dynamic URL in valgrind comment

* Revert "Revert "Add test code for coverage""

This reverts commit 9cff58b7ea5c581681ae6d6660c073bd76ba99aa.

* Test with commented out code

* Reintroduce 6 lines for coverage

* Test code to pass scanner

* Test code to pass scanner (take 2)

* Simplify to 2 new lines

* Add another line

* Trim changes to only 3 lines

* Add task for all tests

* Surface warning on failure

* Simplify build-wrapper step and move settings from web UI to CI

* Add missing line delims

* Also run tests action on Windows and macOS

* Add names to action steps

* Add timeout for test steps

* Add failure warning for integ tests

* Remove space

* Disable failing test on macOS

* Disable problem matcher

* Simplify names

* Disable freezing test on Windows

* Disable failing integ test on Windows

* Add build-kill task

* Ignore kill result on Windows

* Delete test code

* Update ChangeLog

* Move timeout to workflow step
2024-07-18 17:51:06 +01:00
Nick Bolton
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
Nick Bolton
47849db4d9
Run Valgrind on unit tests in CI to detect memory leaks (#7401)
* Move QApplication out of main to reduce memory impact when running individual tests

* Add --valgrind arg and colorize output when command returns non-zero exit code

* Fixed: colorama not always available

* Test multiple Qt tests

* Fixed: Windows Qt test failing due to missing QCoreApplication

* Simplify fake args for Qt

* Use --ci-env arg

* Create Valgrind analysis workflow

* Rename vars for fake args

* Parse and output valgrind summary

* Add build mode to comment

* Use GITHUB_OUTPUT to output summary

* Merge valgrind comment

* Improve comment

* Use `tee` instead of `--log-file` to also print stdout

* Improve comment about debug and release

* Simplify output writing in parse step

* Improve step name

* Correct comment about summaries

* Remove commented out code

* Better var name

* Missing copyright

* Rename global to shared

* Remove space

* Revert change to ConfigTests.cpp
2024-07-17 09:22:46 +01:00
Nick Bolton
50d29edd05
Solve SonarCloud security hotspots and bugs (#7383)
* Test: allocLockCursorToScreenInfo_withState_setsState

* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues

* Remove header wrappers for gmock/gtest

* Convenience wrapper script for tests

* Use `std::copy` instead of `strcpy`

* Use `std::ranges::copy` instead of `stdcpy`

* Delete dead code

* Add guitests VS Code config and test wrapper

* Revert "Delete dead code"

This reverts commit aa40f5cd35a22b4b69acfd1876aceea053088060.

* Build guitests with CMake

* Run all tests

* Don't use --gtest_filter for Qt tests

* Undo skip for GUI tests

* Coverage for `IpcClient::sendCommand`

* Remove provider and proxy

* Use lamda for StreamProvider to reduce boilerplate

* Restore version checker tests

* Remove activation souces

* Tasks for current/all tests

* Change command for tasks

* Mock QNetworkAccessManager

* Create core app to satisfy Qt assertations

* Use `std::copy` instead of `std::ranges::copy`

* Remove integtests

* Merge guitests into unittests

* Use std::string::length

* Remove include (resolves to root)

* Fix memory leaks

* Disable sigsegv tests

* Fixed formatting

* Remove guitests from CI

* New MainWindowTests

* Passing test for MainWindowTests

* Use alternative to strlen in MainWindow::checkSecureSocket

* Passing test for Log::print

* Fixed dtor call order

* Fixed var name typo

* Use proxy instead of `#define protected public`

* Add args test for log

* Add license ctor

* Fixed log test for release

* Add error log test

* Init qt with -platform offscreen

* Back-out initQt function

* Use QT_QPA_PLATFORM

* Try QT_QPA_PLATFORM=offscreen

* Use more readable env node

* Set QT_QPA_PLATFORM in CI and CodeQL

* Remove env not needed

* Modernize Log::print

* Calculate the length of the format string fmt during the initial scan loop

* More direct and efficient alterative to `strlen`

* Fixed major maint issues in AppConfig

* New clang and cmake rules

* Set `max_pargs_hwrap` to 4

* Undo clang format for now

* Fix missing `Setting::`

* Fixed missing `m_S` on Windows

* Re-add accidental dep resolution (fix later)

* Fixed missing buffer position increment

* Turn on errors

* Fixed tests and improve error message

* Fixed segfault on log refactor

* Extract log time to function

* Copyright date

* Update ChangeLog
2024-07-16 08:30:35 +00:00
Nick Bolton
4d3f0c820e
Correct Qt macOS target and drop Core5Compat lib (#7389)
* Remove Core5Compat

* Remove hack

* Update ChangeLog

* Revert "Remove hack"

This reverts commit dda3ad05818d346fdfcbb41944b9e731a4b547c0.

* Set `add_compile_definitions` for Qt

* Revert "Set `add_compile_definitions` for Qt"

This reverts commit 0258d2d226a76081068f4e565855f37993953be5.

* Use arm64_monterey bottle

* Revert "Use arm64_monterey bottle"

This reverts commit a46d743dc6883c925e2328b9628231189cb34367.

* Use aqt to install Qt on Mac

* Append env var instead of overwrite

* Fixed filename

* Use GITHUB_PATH

* Restore original GITHUB_ENV logic

* Use newer cache action

* Update ChangeLog
2024-07-15 12:57:39 +01:00
Nick Bolton
481680d072
Run install_deps.py script when building containers weekly (#7384)
* Don't run CodeQL in PR draft

* Speed up analysis workflows

* Run install deps on Debian

* Add badge to readme

* Fixed copy and use workdir

* Use mount instead of copy

* Fixed unwanted && and changed workdir

* Split deps and deps-full

* Fixed context

* Use /app dir

* Use copy instead

* Revert to --mount and use .py (not .sh)

* Test

* Add `./scripts/install_deps.py` to all platforms

* Add missing syntax

* Fixed Python dep for OpenSUSE

* Temp remove WORKDIR for OpenSUSE

* Re-add workdir

* Increase timeout

* Delete `zypper --non-interactive remove busybox-which`

* Restore python3

* Test

* Rename to `lint-source-code`

* Beef up analysis runners

* Fixed workflow runs-on

* Use deps script

* Try pipx for gcovr

* Use containers with deps

* Add -y arg

* Install curl

* Merge deps step

* Add unzip dep

* Make Git dir safe

* Add .local/bin to env

* Improve step name

* Use `pipx ensurepath`

* Install gcovr with apt

* Use Ubuntu 22 with pip

* Update ChangeLog

* Use 16-core for Windows

* Use choco cache

* Test

* Use 8-core for Windows (picked up quicker, more available?)
2024-07-11 15:26:38 +01:00
Nick Bolton
a4e1beb79d
Re-run macdeployqt6 to copy missing Qt 6 dependencies (#7382)
* Remove bundle on build and back out install_name_tool

* Add hack to fix Qt bundle bug

* Improve comment

* Update ChangeLog
2024-07-11 14:03:17 +01:00
Nick Bolton
a6ac8a1946
Set macOS min version to macOS 12.0 (#7381)
* Set macOS min version to 12

* Update ChangeLog
2024-07-10 15:22:16 +00:00
Nick Bolton
d8acb36e8d
Resolve Qt framework path with install_name_tool (#7379)
* Add comment about EXC_BAD_ACCESS

* Optional certificate install

* Improve log output

* Move team ID arg

* Change position of arg

* Set PATH in .zshrc and use bash command substitution

* Simplified macdeployqt find logic

* Formatting

* Minor tweaks to Qt cmake config

* Resolve framework path with install_name_tool

* Update ChangeLog
2024-07-10 15:11:32 +00:00
Nick Bolton
16c0472d4d
Add qt6-qpa-plugins Qt dependency for Debian (#7380)
* Add qt6-qpa-plugins

* Update ChangeLog
2024-07-10 14:48:27 +01:00
Nick Bolton
e9557b8c19
Improve workflow triggers to ensure correct run time (#7378)
* Improve workflow triggers to ensure correct run time

* Update ChangeLog
2024-07-09 18:50:54 +01:00
Nick Bolton
22d8ee9cd0
Automated weekly build of Docker images for Linux runners (#7376)
* Change tag name

* Change tag name

* Add ARM64 containers and Fedora 40

* Use dnf for Fedora

* Dist upgrade on Debian

* Upgrade and clean on Fedora

* Add name

* Fixed typo and use platform in Dockerfile

* Use matrix instead for arch

* Use config dir in matrix

* Fixed wrong var

* Specify base image in workflow

* Re-add platform

* Use slim images

* Run on Buildjet

* Use new images

* Add comment

* Remove QEMU (not needed because of Buildjet)

* Finish Dockerfile for Arch and OpenSUSE

* Use new containers

* Use correct config dir names

* Fixed config for Manjaro

* Missing zypper arg

* Clean Arch and OpenSUSE

* Update ChangeLog

* Elaborate on comment
2024-07-09 18:08:09 +01:00
Nick Bolton
00f9b8751f
Add missing dependencies to Debian package (#7374)
* Use `CPACK_DEBIAN_PACKAGE_SHLIBDEPS`

* Fixed copyright

* Update ChangeLog

* Add file dep

* Move file dep to deb
2024-07-09 11:12:44 +01:00
Nick Bolton
6e82f64ec8
Upgrade from Qt5 to Qt6 for more modern UI (#7373)
* Use Qt 6

* Fixed some Qt6 deps

* Fixed minor compile issues for Qt6

* Drop Debian 11 support (no Qt6 lib)

* Move Debian to top

* Delete expensive to maintain code that yeilds low UX gain

* Unpack all values

* Use %lld instead of %u

* Minor UI improvements

* Add deps for Fedora, OpenSUSE, and Arch

* Fixed CMake lint issue

* Use package name from build.opensuse.org

* Used `zypper search` to find correct package names
2024-07-08 15:37:51 +01:00
Nick Bolton
d1abddde84
Add Git SHA to about screen and --version (#7372)
* Add Git SHA to about screen

* Update ChangeLog

* Fixed formatting

* Use `GIT_SHA` for Git SHA

* Add `GIT_SHA` env var

* Use env var `GIT_SHA`

* Shorten the Git SHA to 8 chars for readability

* Shorten Git SHA to 8 chars

* Increase Linux timeout (Fedora 39 is always slow at deps)

* Update ChangeLog

* Revert "Update ChangeLog"

This reverts commit ac52777763571e9512e1c9b73b5cac23658d5ed2.
2024-07-08 11:40:22 +01:00
Nick Bolton
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
Nick Bolton
d67d171be3 Updated ChangeLog 2024-07-04 21:13:08 +01:00
Nick Bolton
4690b61551
Simplify compile options and use comprehensive edition logic (#7365)
* Simplify options

* Use more sensible edition logic

* Use set instead of option for string

* Improve macro for product name

* Add tests launch config

* Restore unregistered state

* Reorganize cases for title and improve function name

* Code coverage on by default

* Fixed copyright

* Improve code coverage and test readability

* Separate build-all and build-coverage

* Back out coverage on by default

* Fixed bad var in cmake

* More verbose logging for coverage

* Restore tasks

* Restore preLaunchTask

* Use default comparitor

* Move temp files to temp dir

* Add tasks for tests

* Support for wstring

* Upgrade sonar-scanner to 6 on Debian 12

* Use modern pip install

* Install python for sonarcloud

* Use Ubuntu and install deps

* Fixed sonar-scanner URL

* Fix exported dir

* Persist build dir

* Don't use venv for pip install gcovr

* Fixed another path

* Update actions/checkout to v4 for SonarCloud analysis workflow

* Add coverage task

* Improve coverage for SerialKeyEdition.cpp

* Enable licensing for builds

* Fixed invalid macro names, missing arguments, etc

* Fixed more copyright

* Fixed incorrect use of "enterprise"

* Fixed incorrect use of "business"

* Experiment with environment

* Make package prefix variable

* Add environment matrix to all OS

* Improve job names

* Make job names easier to read

* Roll back environment matrix (too much noise)

* Fixed: default should override required

* Refactor CI with vars

* Fixed arg for env.get_env
2024-07-04 10:14:54 +01:00
Nick Bolton
37bb0f989e
Format all source with Clang and introduce lint workflow (#7364)
* Lint script with CLang format

* Use `-i` for `clang-format` and add more logging for lint scripts

* Apply LLVM CLang formatting

* Fixed comment

* Update ChangeLog

* Fixed bad return code logic

* Improve output for linters

* Fixed re-used var in clang lint

* Fixed include order for tests and use `#if 0` instead of commenting out code

* Use full Clang format dump

* Dump Ubuntu Clang format

* Dump Clang format from Debian

* Dumped from: clang-format version 18.1.8

* Revert "Dumped from: clang-format version 18.1.8"

This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.

* Remove BasedOnStyle

* Restore base Clang format file

* Use clang-format from pip

* Apply Clang format 18 style

* Add clang_format deps

* Fixed include order issues and *some* accidental includes
2024-07-02 20:07:06 +01:00
Nick Bolton
f2cc964b3d
Schedule CI daily at 5am to detect code rot early (#7363)
* Schedule CI daily at 5am

* Package but don't upload when cron

* Update ChangeLog

* Comment explaining CI use
2024-07-02 16:36:54 +01:00
Nick Bolton
c8d9707857
Re-implement packaging for GitHub workflows (Linux) (#7361)
* Reorganize CMake Packaging module

* Match if statements to function order

* Cleanup root, res, and doc dirs

* Move deps to requirements.txt file

* Reorganize and format CMake files

* Rename changelog lint

* Add reccomended extension

* Workflow to lint CMake files

* Move CMake lint to script

* Try lighter dep

* Use venv

* Add --format arg

* Format all CMake files

* Convert bash script to Python

* Set CMake line ending format

* Restore formatting

* Add pyyaml dep

* Remove unused arg

* Rename config file

* Remove comment

* Repair copyrights (broken by defualt cmake-format)

* Restore 3rd party copyright

* Break up libs config into smaller macros

* Better macro name

* Load config after venv

* Make intentional noop clearer

* Only use upload step if required (make skip clearer)

* Use CPack for deb and rpm packaging

* Add upload step for Linux

* Remove cpack dep, doesn't exist

* Roll back presets version

* Fixed distro like match

* Update ChangeLog

* Legacy checkout for some distros

* All distros support v4

* Trying out newer Linux distros

* Install Git on Docker images

* Install without actions (not available before checkout)

* Delete useless action

* Install Python

* Support for Arch and OpenSUSE

* Add Arch and OpenSUSE to deps

* Name steps

* Full OpenSUSE names

* Mark Git dir safe

* Add pkgconf

* Legacy CMake for Debian 11

* Add OpenSSL to OpenSUSE

* Drop OpenSUSE Leap (no C++20 support)

* Skip packaging for Arch and OpenSUSE (for now)

* Shorten Arch/OpenSUSE names

* Clearer step name

* SImpler bootstrap

* Shell not needed

* Update apt

* Don't check return code

* Simplify python deps commands

* Add STGZ/.sh package type

* Prevent input prompt

* Only config git safe dir when needed

* Try cache v4

* Safe dir for Ubuntu

* Safe dir for Arch

* All Docker images seem to need safe dir config

* Refactor env var getters

* Make Ubuntu build extra packages

* Condense bootstep to single step

* Fixed var name

* Fixed bootstrap logic

* Simplify logic for upload condition (Windows and macOS)

* Make package/upload condition easier to understand

* Add Manjaro

* Generic names for Linux .tar.gz and .sh packages

* Add Manjaro deps

* Swap macOS matrix entries

* Add Red Hat UBI

* Remove RHEL subscription manager

* Throw on unsupported package distro

* Conditionally install pip and venv

* Remove extra pip arg

* Add config for RHEL

* Install EPEL for RHEL

* Back-out RHEL as EPEL requires subscription

* Restore Python deps logic

* Fixed bug: Packacking run twice

* Testing arm32v7 and arm64v8

* Revert "Testing arm32v7 and arm64v8"

This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.

* Re-add icon and shortcut file for Linux to package

* Support OpenSUSE RPM build

* Check return code

* Add `rpm-build` for OpenSUSE

* Reorg packages

* Remove busybox-which

* Add --non-interactive

* Move --non-interactive to correct position

* Experiment with makepkg

* Check and print package commands

* Make distro version optional

* Use 8 cores to build

* Default to distro name only

* Fixed bad PKGBUILD filename

* Use 4-part version for Arch

* Remove comma from conflicts

* Use .tar.gz from cwd

* Generate checksum for Arch

* Fixed file extension

* Use shell to print output

* Don't use shell

* Gaurd against bad cmd_utils.run

* Fixed bad import

* Use list command

* Fixed unable to run list commands

* Use source file name

* Simplify PKGBUILD to use make install

* Change install prefix

* Use DESTDIR

* Copy .desktop and .png to build dir

* Restore original `install(FILES...`

* Improving comments

* Fixed: makepkg runs from `src` by default

* Move error after command print

* Remove shell arg

* Package as a user instead of root (makepkg can't run as root)

* Fixed codesign runs in shell

* Allow list commands in shell on windows

* Don't use sudo on arch

* Install sudo on Arch

* Fixed typo

* Fix ownership of build directory for package user

* Improve example .env

* Change to depend on libstdc++6

* Add TODO

* Fixed Fedora version

* Remove libstdc++ deps (names vary between distros)

* Roll back to Fedora 40 and 39

* Improve comment

* Remove unneccesary default
2024-07-02 11:23:56 +01:00
Nick Bolton
bec38ab47b
Re-implement packaging for GitHub workflows (Windows) (#7360)
* Add new version env vars to example

* Remove test file

* Move CMake packaging to separate module and configure OpenSSL path for Windows

* Make VS Code CMake build task default

* Generate Microsoft-friendly 4-digit version number

* Update macOS bundle .plist with build year variable

* Use correct OpenSSL path and fixed various MSI variables

* Use correct rest/dist dir for MSI

* Add version .rc file for Windows

* Use macro instead of over-complicated version query command

* Made cmd_utils more secure by defaulting to no-shell and no-print

* Add certificate management module

* Implement packaging script on Windows

* Refactor Mac packaging script to use new cmd_utils args and new cert module

* Update ChangeLog

* Change PFX env vars and add to CI

* Use import as instead of from lib to solve resolve issue

* Allow custom certificate extensions

* Check for package version when using gdrive

* Make version number required

* Add missing shell

* Add missing gdrive value in test

* Find OpenSSL dir based on openssl binary

* Only use first OpenSSL entry

* More verbose logging

* Improve logging

* Only use env var if not empty

* Fixed wrong var

* Fixed macOS GitHub artefact name

* Change filename format to match new convention
2024-06-28 09:35:18 +00:00
Nick Bolton
7103bbed6d
Re-implement CI auto version increment for packaging (#7354)
* Only install Python deps with deps script

* Remove hard-coded Qt version in CI

* Add example .env

* Improve comments in .env file

* Simplify config reader and Choco CI config

* Actually return the config value

* Move deps before Qt version env call

* Remove `self.`

* Move venv ensure to main

* Fixed arg

* Move config import to function

* Move ensure_module to function

* Simplify over-complicated `Version.cmake`

* Move code to `github` module

* Use `symless/next-version-action`

* Make CMake version file even simpler

* Set version from tag

* Create release when master or release branch

* Don't run CI on master push, only release

* Fixed bac macro

* Use new version values

* Handle empty version env var

* Also strip version file value

* Remove quotes

* Add @master to action

* Read version from file

* Simplify version file read

* Fixed typo in env var

* Remove unused var

* Delete legacy build number action

* Fixed env var

* Version file read shouldn't be needed

* Remove weird and unnecessary include path

* Update ChangeLog

* Remove unused config value

* Better name for changelog check

* Delete broken Flatpak CI

* Run stale issue cron at midnight

* Update ChangeLog

* Add version input for manual run

* Print next version

* Fetch all tags

* Use more idiomatic approach

* Set to pre-release when master

* Remove unnecessary `commitish`

* Fixed wrong ID

* More specific IDs

* Reduce config needed for upload

* Only /release can be non-pre-release

* More discreet package path for gdrive

* Try without setting path

* Remove seemly unused step

* Better name for Qt version step

* Fixed bad var ref

* Better name for package dir

* Fixed bad input name

* Add missing shell

* Workflow to test upload action

* Remove fetch tags

* Use bash to cut version

* Remove name and make conditional

* Replace deprecated set-output

* Fixed env var name

* Missing dir sep char

* Add comment to test workflow

* Improve input descriptions

* Replace deprecated set-output
2024-06-26 15:46:42 +00:00
Nick Bolton
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
Nick Bolton
8f13ce8e7a
Combine GitHub workflows to reduce config duplication (#7352)
* First attempt merging CI test

* Remove older versions of Linux

* Blend Docker containers and GitHub runners

* Test older configure/build method for Windows

* Re-add old Windows workflow

* Use legacy CMake method for more distros

* Rename image to container

* Reduce config dupe

* Fixed logic for configure

* Use newer build command for Windows

* Move full container name back to matrix (yuk)

* Move GIT_COMMIT to common env

* Use more specific Windows runner name

* Fine-grained timeouts for Mac

* Fixed unit test path for Windows

* Rename CI workflow

* Beginning of macOS dist action

* Update ChangeLog

* More triggers for CI workflow

* Attempt to fix test path on Windows

* Move dist-macos action

* Add dir command for testing

* Remove `test-` job prefix

* Bump msbuild action and try modern cmake again

* Composite actions don't support defaults... grr

* Remove dir diag command

* Trying to use Choco again for VS dep

* Don't skip ninja

* Flush stdout

* Add cl to PATH

* Trying out ilammy/msvc-dev-cmd@v1

* Use @v3 checkout for older Linux

* Fixed comment typo

* Remove dead scripts

* Improve env var names

* Run strip from build dir

* Split out deps script to lib files

* Remove stub action

* Remove dist step for now
2024-06-19 17:48:18 +01:00
Nick Bolton
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
Nick Bolton
6bace0d575
Add C++ and LLDB to VS Code recommendations (#7336)
* Add C++ and LLDB to VS Code recommendations

* Update CL
2024-01-24 20:02:39 +00:00
Nick Bolton
9bb458bff2
Clickable debug source paths and new launch target (#7335)
* Add rebuild launch target for daemon

* Change debug source path to be clickable in VS Code

* Shorten launch targets for readability in UI

* Update CL
2024-01-24 16:02:07 +00:00
Nick Bolton
9e2fc6150e
Implement hello back in IPC protocol (#7334)
* Update VS Code config for Windows daemon debugging

* Update CL

* Implement hello back in IPC protocol

* Update CL
2024-01-23 22:20:53 +00:00
Nick Bolton
fb908d6e17
Update VS Code config for Windows daemon debugging (#7333)
* Update VS Code config for Windows daemon debugging

* Update CL
2024-01-23 18:05:51 +00:00
Nick Bolton
bcf701ebae
Static link OpenSSL libs in CMake preset for Windows (#7332)
* Static link OpenSSL libs

* Update CL

* Move to env vars
2024-01-19 16:19:02 +00:00
Nick Bolton
ef31d3e21b
Script to install deps (Windows only for now) (#7331)
* Script to install deps (Windows only for now)

* Set runner temp dir for choco

* Add missing os import

* Modify for CI

* Update CL

* Improve logging

* Update workflow to install deps via script

* Explain 3.1.1 version lock
2024-01-19 14:44:50 +00:00
Nick Bolton
4211fce112
Split CMake presets into debug and release (#7330)
* Split presets into debug and release

* Update CL
2024-01-18 17:45:39 +00:00
Nick Bolton
29e66773c8
Reset error state before calling Process32Next (#7328)
* Convenience script to install daemon

* Use -p when re-launching with runas to keep window open

* Align new script with PEP 8

* Add more args for flexibility

* Add task to reinstall Windows daemon

* Fixed mistake in continue message

* Close task window after running script

* Reset error state before calling Process32Next

* Update CL

* Increase Windows CI timeout

* Bump timeout again due to choco
2024-01-16 17:16:26 +00:00
Nick Bolton
831ee44eb1
Only use Ninja to build on Windows (#7327)
* Only use Ninja for Windows and Linux

* Use make on Linux for now

* Update ChangeLog
2024-01-15 18:36:46 +00:00
Nick Bolton
668c3193e7
Restore lpDesktop assignment in Windows daemon (#7326)
* Restore previous lpDesktop assignment

* Use static string buffer for desktop name

* Update ChangeLog

* Reword ChangeLog
2024-01-15 17:53:57 +00:00
Nick Bolton
d34d9eef86
Add timeout to all GitHub workflows (#7325)
* Add 10 min timeout to all workflows

* Update ChangeLog

* Set analysis jobs to 20 min timeouts

* Update ChangeLog
2024-01-11 17:44:42 +00:00
Nick Bolton
5c0de7ea49
Bump version to 1.15.0 (#7324)
* Add Linux CMake preset

* Add macOS preset

* Update ChangeLog

* Add missing launch.json

* Bump version to 1.15.0
2024-01-11 17:11:35 +00:00
Nick Bolton
83175d3e45
Add Linux and macOS CMake presets (#7323)
* Add Linux CMake preset

* Add macOS preset

* Update ChangeLog
2024-01-11 11:05:56 +00:00
Nick Bolton
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
Nick Bolton
55f68ed3e9
Switch to GitHub hosted Mac M1 runner (#7321)
* Switch to macos-latest-xlarge

* Improve job names

* Update create-release.yml

* Fixed workflow job names

* Further improve workflow naming

* Remove double checkout

* Rename Mac 11 workflow

* Remove redundant word

* Update ChangeLog

* Add matrix names for macOS

* Create test

* Delete test
2024-01-09 16:21:13 +00:00
Nick Bolton
69e77dcb54
Move build_version.py script to scripts dir (#7320)
* Delete job-build-raspberry-pi.yaml

* Update ChangeLog

* Delete job-test-raspberry-pi.yaml

* Restore CI/build_version.py

* Move build_version.py to scripts dir

* Update refs to build_version.py

* Update ChangeLog
2024-01-09 12:55:55 +00:00
Nick Bolton
fe8f405fe8
Remove workflows for slow self-hosted RPi runners (#7319)
* Delete job-build-raspberry-pi.yaml

* Update ChangeLog

* Delete job-test-raspberry-pi.yaml
2024-01-09 12:21:06 +00:00
Nick Bolton
daf9292c80
Remove Azure Pipelines config entirely (#7318)
* Remove Azure Pipelines

* Update ChangeLog
2024-01-09 12:13:11 +00:00
Nick Bolton
4c1d5daa00
Bump sonar-scanner-cli to 5.0.1.3006 (#7317)
* Bump sonar-scanner-cli to 5.0.1.3006

* Update ChangeLog
2024-01-09 11:46:01 +00:00
Nick Bolton
31775622f3
Fix CodeQL workflow: Failed to perl 404 Not Found (#7313)
* Try running apt-get update first

* Update ChangeLog
2024-01-09 10:06:46 +00:00
Kyle Bloom
ee19a40bef
Catch standard exceptions on unexpected exit (#7282)
* Catch standard exceptions on unexpected exit

* Update changelog
2023-09-27 14:01:30 +01:00
Serhii Hadzhilov
7d803071ca
Change session ID info log message to DEBUG2 (#7284)
* Change error to debug2 and add additional info

* Update ChangeLog

* Improved wording in ChangeLog for 1.14.7

* Apply markdown formatting to ChangeLog

* Fixed merge gone wrong

* Fixed further merge mistake

* Fixed order of new ChangeLog lines

---------

Co-authored-by: Nick Bolton <nick@symless.com>
2023-09-26 12:49:18 +01:00
Nick Bolton
ed4680264a
Apply markdown formatting to ChangeLog (#7285)
* Apply markdown formatting to ChangeLog

* Make CI change notes platform agnostic
2023-09-26 12:41:34 +01:00
Kyle Bloom
446b0a2e95
Update workflows (#7283)
* Update test actions

* Format stale issues

* Format jira issues workflow

* Format changelog check workflow

* Format build workflows

* Format create build

Also add make full action to remove core installs

* Format codeql analysis

* Add .nvmrc

* Update changelog

* Add concurrency group to CodeQL

* sudo install

* Update to windows latest

* Upgrade fedora distro list

* Add arch to runtime matrix

* Fix path for m1 builds

* Add enterprise and business flags
2023-09-25 17:26:06 +01:00
Serhii Hadzhilov
1a810ccdd7
Change core start errors to fatal (#7277)
* Change core start error to FATAL

* Update ChangeLog

---------

Co-authored-by: Serhii Hadzhilov <serhii-external@symless.com>
2023-08-16 09:20:24 +01:00
Kyle Bloom
3d621c6ee2
Build unified core or separate server and client (#7274)
* Only build unified core when specified

* Update changelog
2023-08-07 09:45:27 +01:00
Nick Bolton
2fce545c17
Reword file drag drop error to debug message (#7269)
* Reword error message

* Fix indentation

* Fix code style

* Update ChangeLog
2023-07-27 10:36:44 +01:00
Nick Bolton
71539170ff
Remove redundant Build.properties file and comment Version.cmake (#7268)
* Delete Build.properties

* Update Version.cmake

* Update ChangeLog

* Update cmake/Version.cmake

* Move line so comment is clearer
2023-07-27 10:32:39 +01:00
Serhii Hadzhilov
5e8e874e03
Remove extra key press traces for Linux (#7265)
* Remove extra key press traces for Linux

* Update ChangeLog
2023-06-02 09:35:37 +01:00
Serhii Hadzhilov
c6e838bb00
Fix backward compatibility for m1 build (#7262)
* Fix backward compatibility for m1 build

* Update ChangeLog
2023-05-09 11:33:37 +03:00
Serhii Hadzhilov
8587dda4ad
Add ability to bind synergy client to network interface (#7254)
* Switch client help to use dynamic buffer

* Add the new param into client help

* Parse the new param as a generic param

* Add additional member to store server address

* Bind client socket to network interface

* Update Changelog

* Fix code smell
2023-03-29 09:39:49 +01:00
Kyle Bloom
2d434838dc
Add new fedora pipelines (#7250)
* Add new fedora pipelines

* Add changelog
2023-03-17 09:47:50 +00:00
Serhii Hadzhilov
f7a38ea240
Add firewall exception for synergy client (#7248)
* Update Product.wxs

* Update ChangeLog
2023-03-08 10:12:59 +00:00
Serhii Hadzhilov
400d87936d
Fix tls certificate generation for flatpak (#7242)
* Fix tls certificate generation for flatpak

* Update ChangeLog
2023-01-06 11:17:07 +02:00
Kyle Bloom
dcd18eebda
Upgrade the default hashing algorithm (#7241)
* Upgrade the default hashing algorithm

Upgrade the default hashing algorithm for message digests from md5 to sha256.

* Update changelog
2022-12-15 16:22:42 +00:00
Serhii Hadzhilov
aff2b717fd
Single app for server and client (#7239)
* Remove unused files

* Add synergy-core

* Update ChangeLog

* Fix compilation

* Fix code smell

* Add ability to run synergy-core using synergyd for windows
2022-11-29 21:00:37 +02:00
Jonathan Anderson
b2b887cf43
Fix crash due to out-of-order frees. (#7208)
* Fix crash due to out-of-order frees.

Don't free the kdbDescr until we've freed the names it contains. This
fixes a SIGBUS crash on FreeBSD (and maybe other platforms too?) when
pressing special keys (e.g., the Windows key) on a client.

* Update ChangeLog

Co-authored-by: Serhii Hadzhilov <serhii-external@symless.com>
2022-10-11 17:52:32 +03:00
Nick Bolton
82b3696b1b
Update ChangeLog 2022-09-29 10:08:22 +01:00
Serhii Hadzhilov
c06a20d093
Initiate TLS connection from server (#7225)
* Add SecureClientSocket

* Add SecureServerSocket

* SecureServerSocket code cleanup

* Refactoring for SecureClientSocket

* Change base class for SecureClientSocket to InverseClientSocket

* Change base class for SecureServerSocket to InverseServerSocket

* Small refactoring

* Fix Linux compilation

* Fix code smells

* Refactoring

* Update ChangeLog

* Fix code smells

Co-authored-by: Serhii Hadzhilov <serhii@symless.com>
2022-09-29 11:35:27 +03:00
Serhii Hadzhilov
c37b0d2fcf
Add ability to initiate connection from server (#7222)
* Add a new hidden readonly option "initiateConnectionFromServer"

* Add option "clientHostMode"

* Add host mode to the client GUI

* Hide main window controls for the client host mode

* Store client address into the server config file

* Add client mode the server

* Pass option --host into the client

* Add --host parameter into the synergyc

* Add InverseSocketFactory

* Add InverseClientSocket

* Add InverseServerSocket

* Add AutoArchSocket

* Add listener on the client side

* Add connection from the server side

* Fix code smells

* Additional code smells

* Requested changes

Co-authored-by: Serhii Hadzhilov <serhii@symless.com>
2022-09-22 11:12:13 +03:00
Serhii Hadzhilov
452c631d6e
Release v1.14.5 (#7219)
* Update Version.cmake

* Add TLS to Synergy (Lite edition) (#7202)

* Add TLS to synergy light

* Requested changes

* License registration for Business edition (#7203)

* License registration for business

* Rename register to registry

* Add email into the request

* Add decoded serial key into the request

* Revert "Add decoded serial key into the request"

This reverts commit 0e18c8941664e86ae2264bbef072df68cab07751.

* Revert "Add email into the request"

This reverts commit 8dff01bc242769008897947d66187cb726fb34bf.

* Change field guid_generated to guid_type

* Update ChangeLog

* Update ChangeLog

* Fix build issue for ubuntu16 and ubuntu18 (#7204)

* Fix issue with settings

* Custom about screen for Elite Backers (#7211)

* Hide irrelevant information from the About screen for B2B

* Fix size for Windows and Linux

* Requested changes

* Fix Enterprise

* Revert "Fix Enterprise"

This reverts commit befd8d2ce36b6ca903250bada62293491f0b56a2.

* Revert "Requested changes"

This reverts commit 5f728e00aaeb4bed3e3c006539d380f74d3aff76.

* Change features based on edition (#7212)

* Change features based on edition

* Fix enterprise build

* Update window titles and about screen (#7214)

* Fix About screen for Business edition

* Change dialog title

* Refactored upgrade prompt for TLS and hotkeys (#7215)

* Prompt Basic users to upgrade to Pro to access TLS encryption

* Fixed Enterprise build

* Fix code smells

* Fix sonar bug
2022-09-13 18:31:45 +03:00
Kyle Bloom
a0560e5d87
Update azure pipelines to use latest macos image (#7213)
* Update azure pipelines to use latest macos image

* Update changelog
2022-08-10 10:52:06 +01:00
Kyle Bloom
14513c8c48
Update macos workflow to use macos-latest (#7210)
* fix: Update macos workflow to use macos-latest

* chore: Update changelog
2022-08-04 09:43:31 +01:00
Serhii Hadzhilov
268b0f660f
Special contributor mentions on the about screen (#7197)
* Remove obsolete data

* Add section "Key contributors"

* Add "Elite Backers" label

* Add Elite Backers

* Remove borders for Elite backers section

* Add link "Become an Elite Backer"

* Become an Elite Backer as a separate label

* Add link to the credits page

* Fix for macOS

* Fix fonts and spaces for Windows

* Fix window size for Linux

* Loading credits using API

* Update ChangeLog

* Fix code smells

* Requested changes

* Change URL

* Update AboutDialogBase.ui

Co-authored-by: Serhii Hadzhilov <serhii@symless.com>
2022-06-30 14:48:26 +03:00
Serhii Hadzhilov
bcfeb251a9
Support for maintenance licenses in China (#7193)
* Adds China maintenance licenses

* Update ChangeLog

* Requested changes
2022-06-23 15:54:44 +03:00
Serhii Hadzhilov
8a509f4ba9
SYNERGY1-1555 maintenance licences (#7190)
* SYNERGY1-1555 Remove unused files

* SYNERGY1-1555 Remove unused function isPermanent

* SYNERGY1-1555 Update SerialKeyType with maintenance type

* SYENRGY1-1555 Add method isMaintenance into SerialKey

* SYNERGY1-1555 Check maintenance licenses

* SYNERGY1-1555 Replace obsolete functions

* SYNERGY1-1555 Fix Linux builds

* Update ChangeLog

* SYNERGY1-1555 Requested changes
2022-06-15 13:55:41 +03:00
Serhii Hadzhilov
de48bb20b7
SYNERGY1-1545 Accept business licenses in basic/pro builds (#7188)
* SYNERGY1-1545 Accept business licenses in basic/pro builds

* Update ChangeLog
2022-06-08 21:46:22 +03:00
Kyle Bloom
0d7bc0dce9
Change flatpak name (#7187)
* Change flatpak name

* Update changelog

* Remove PR build

* Remove SYNERGY_DEB_VERSION creation
2022-06-08 15:59:50 +03:00
Nick Bolton
2dfeecf40e Fixed minor typos in ChangeLog 2022-06-08 11:44:35 +01:00
Nick Bolton
a1573d4f3f Very minor tidy up of ChangeLog 2022-06-08 11:35:54 +01:00
Serhii Hadzhilov
ae541c170f
SYNERGY1-1544 Issue with TLS options when user switches to system profile (#7185)
* SYNERGY1-1544 Issue with TLS options when user switches to system profile

* Update ChangeLog

* Update ChangeLog
2022-06-07 14:44:49 +03:00
Serhii Hadzhilov
660853d1ac
SYNERGY1-1511 Refactoring for v3 licenses (#7183)
* SYNERGY1-1511 Refactor SerialKey constructor

* SYNERGY1-1511 Refactor SerialKey::parse

* SYNERGY1-1511 Remove unused includes

* SYNERGY1-1511 Remove key generation

* SYNERGY1-1511 Remove "using namespace std;"

* SYNERGY1-1511 Add struct SerialKeyData

* SYNERGY1-1511 Replace member with the new DTO

* SYNERGY1-1511 Rename members

* SYNERGY1-1511 Add a new class SerialKeyParser

* SYNERGY1-1511 Use SerialKeyParser

* Add SerialKeyParserV3

* Add setters and remove unused fields

* Fix return type

* Add comments

* Fix compilation

* Fix code smels

* Update ChangeLog
2022-06-01 18:17:02 +03:00
Serhii Hadzhilov
31c6e99258
SYNERGY1-963 Remove TLS unused options from the GUI on Synergy Client (#7182)
* SYNERGY1-963 Remove TLS unused options from the GUI on Synergy Client

* SYNERGY1-983 Update ChangeLog.txt
2022-06-01 15:36:44 +03:00
Daun Chung
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
Kyle Bloom
bd82dc39e9
Add fedora 36 build (#7181)
* Add fedora 36 build

* Update changelog

* Add fedora 36 test
2022-05-27 15:39:42 +01:00
Serhii Hadzhilov
a08149aae7
SYNERGY1-1536 Disable drag and drop by default (#7179)
* SYNERGY1-1536 Disable drag and drop by default

* Update ChangeLog
2022-05-24 15:47:26 +01:00
Serhii Hadzhilov
c92ac1a71e
SYNERGY1-1497 Fix memory leak on macOS (#7178)
* SYNERGY1-1497 Fix memory leak on macOS

* Update ChangeLog

* Fix Fedora build
2022-05-24 12:36:06 +01:00
Serhii Hadzhilov
95ee948f26
SYNERGY1-1497 Memory leaks in copy/paste and drag and drop functionality (#7175)
* SYNERGY1-1497 Fix memory leak in copy/paste functionality

* SYNERGY1-1497 Memory leaks with function CFStringRefToUTF8String

* SYNERGY1-1497 Fix memory leak in Server::sendDragInfo

* SYNERGY1-1497 Fix memory leak in Server::sendFileToClient

* SYNERGY1-1497 Fix memory leak in Server::sendDragInfoThread

* SYNERGY1-1497 Fix code smells

* SYNERGY1-1497 Fix builds

* SYNERGY1-1497 Fix additional code smells
2022-05-19 18:29:11 +03:00
Kyle Bloom
d3ab180df6
Show all Raspberry PI builds (#7174)
* Try adding full matrix

* Remove PR build

* Update changelog

* Reset indentation
2022-05-19 11:57:13 +03:00
Kyle Bloom
bb31d11deb
Fix build issue with raspberry pi's (#7173)
* Minor change to deb-changelog

* Fix bash commands

* Update changelog

* Add comment explaining pass
2022-05-18 10:57:29 +03:00
Serhii Hadzhilov
5b6f5df6ea
SYNERGY1-1497 memory leaks in synergyc on mac os (#7170)
* SYNERGY1-1497 Fix memory leak in screen saver functionality

* SYNERGY1-1497 Fix memory leak in ArchNetworkBSD::nameToAddr

* SYNERGY1-1497 Fix memory leak in TLS for synergyc

* SYNERGY1-1497 Fix code smells

* Update ChangeLog

* SYNERGY1-1497 Fix meory leak in ArchNetworkWinsock::nameToAddr

* Update ChangeLog as it was requested
2022-05-16 19:00:16 +03:00
Kyle Bloom
fc29ec91a9
Extract 3 segment version from long version string (#7168)
* Extract 3 segment version from long version string

* Update changelog

* Fix for older versions of python
2022-05-13 18:27:42 +03:00
Kyle Bloom
37301d70a3
Remove tmpdir from dh to fix builds on 22.04 (#7169)
* Remove tmpdir from dh to fix builds on 22.04

* Update changelog
2022-05-13 16:07:42 +03:00
Kyle Bloom
5711a5346f
Add changelogs to deb's (#7167)
* Add changelogs to deb's

* Update changelog

* Fix code smell
2022-05-12 09:27:59 +01:00
Serhii Hadzhilov
322e583917
SYNERGY-1-1494 Replace notifications with logs (#7166)
* SYNERGY-1-1494 Replace notifications with logs

* Update ChangeLog
2022-05-11 12:22:17 +03:00
Serhii Hadzhilov
4d13d52710
SYNERGY1-1497 Fix memory leaks (#7164)
* SYNERGY1-1497 Fix problem with memory leak

* SYNERGY1-1497 Fix memory leak for TLS

* Update ChangeLog

* SYNERGY-1-1497 Update ChangeLog and Copyright info
2022-05-06 21:55:06 +03:00
Serhii Hadzhilov
7bc2d76e1b
SYNERGY1-1478 Fix compilation issues (#7163)
* SYNERGY1-1478 Fix compilation issues

* Update ChangeLog
2022-05-04 12:09:23 +03:00
Kyle Bloom
a12cc175eb
Synergy3-1505 Add new distros to CI (#7162)
* Add new distros to CI

* Update testing workflows

* Checkout repo recursively

* Update changelog

* Github issue
2022-05-03 20:04:21 +03:00
Pedro Navarro
21b0f233c7
Address issues with modifiers and dead keys (#7149)
* After getting a dead key from ToUnicodeEx, add an additional VK_SPACE
to the keyboard state so we reset the dead key flag and subsequent
calls with modifiers, like shift, return the right result (-1) instead
of 1.

This happened because without reseting the dead key status
the new one was attempted to be composed with the old one, which failed
and the end result was a single unicode codepoint not marked as a dead
key.

This opens the door to potentially use the returned unicode from the
second call as the key character instead of maintaining the
getDeadKey function.

* Update ChangeLog

Co-authored-by: Pedro Navarro <pnavarro@netflix.com>
Co-authored-by: Serhii Hadzhilov <serhii-external@symless.com>
Co-authored-by: Serhii Hadzhilov <71632867+SerhiiGadzhilov@users.noreply.github.com>
2022-05-02 21:13:15 +03:00
Kyle Bloom
90847d064a
Brew bundle (#7161)
* use brew bundle to cleanly install macos deps

* use brew bundle to install deps

* Update changelog

* Update changelog for #7144

Co-authored-by: Stephen <stephengroat@users.noreply.github.com>
2022-04-28 18:53:00 +03:00