Commit graph

41 commits

Author SHA1 Message Date
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
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
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
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
Kyle Bloom
5e2d355a3a
SYNERGY-1254 Fix core builds (#7103)
* SYNERGY-1254 Fix core builds

* Changelog

* Uncomment debian9

* Fix artifact name

* Fix workflow name

* Remove -j1 flag

* Turn off pull_request operations

* Add qt for ubuntu core builds

* Switch to python3-yaml

* Update ubuntu

* Cmake automatically manages include_directories

* Remove older fedora versions

* Add DBus to platform to ensure dependancy

* Change to synergy-vcpkg

* build macos

* Remove pull_request

* Add centos 8

* Change container

* Test core builds

* Remove setup

* Remove VCPKG_INSTALLATION_ROOT

* change checkout to use submodules

* Setup newer version of git for ubuntu

* Remove git requirement

* Remove pull_request event
2021-10-21 10:25:57 +03:00
Andrew Nelless
fedbcb0f3a Remove ../ includes in src/lib 2017-03-09 15:16:08 +00:00
Andrew Nelless
0cd45ba1ef Remove unused include paths 2017-03-09 14:18:39 +00:00
Andrew Nelless
f7b87e0670 Remove version number from gtest/gmock paths 2017-02-09 22:30:42 +00:00
Andrew Nelless
4263fd1717 Rename synergy library to synlib to work around conflict with GUI 2017-02-08 15:11:21 +00:00
XinyuHou
deea23f866 Apply tab to spaces filter to src folder 2017-02-07 01:24:59 +00:00
Andrew Nelless
5ea1fdc7c6 #5620 Remove deprecated NXClickTime call 2016-10-12 16:10:57 +01:00
Andrew Nelless
c3c0913633 Update company copyright notice 2016-09-26 11:58:33 +01:00
Jerry (Xinyu Hou)
de91be1035 #2765 Added unit tests for KeyMap 2016-09-26 11:58:33 +01:00
Jerry (Xinyu Hou)
17c35f53f4 Applied name convention to KeyResource #2765 2016-08-08 14:27:13 +01:00
Jerry (Xinyu Hou)
6d2040b698 Reorganised KeyResource #2765 2016-08-08 14:27:13 +01:00
Jerry (Xinyu Hou)
7f786cc884 Refactor KeyResource into own files #2765 2016-08-08 14:27:13 +01:00
Nigel Armstrong
d71304ee55 Modified header of every file COPYING to LICENSE
Modified to match the updated name of the license file
2015-05-06 22:12:44 -04:00
Nick Bolton
41d6080028 changed company name in copyright notice 2014-11-11 13:52:03 +00:00
Nick Bolton
19bcb9dfae fixed: osx compile errors from last commit 2014-02-28 13:06:25 +00:00
Nick Bolton
4675f29a4c code style fixes:
- reordered includes to prevent accidental dependencies.
- moved arch specific files into their own folder (easier to include with cmake).
- renamed non-class files to reflect new code style (lower case with underscores).
- using full relative paths for includes (easier for understanding dependencies).
- using #pragma once instead of classic-style header guards.
2014-02-28 12:36:45 +00:00
Nick Bolton
f11c660efb used glob instead of manually specifying files. cmake does not recommend this, but we always re-run cmake anyway after adding files since we use vs. 2014-02-26 17:46:02 +00:00
Nick Bolton
d09ee887d8 renamed CMSWindowsRelauncher to CMSWindowsWatchdog 2013-10-14 17:15:03 +00:00
jerry
b9016bc1ae - encapsulated Windows session
- fixed code style
2013-10-10 16:06:13 +00:00
jerry
e24afa5670 removed some unused include file dependencies and logging info only for debug 2013-09-25 10:50:11 +00:00
jerry
4816a30db3 Feature to drag a file from Windows (client) to Mac (server):
- changed the size of the window for dragging on Mac to 3 by 3 pixels.
- on server side, use a new thread to write file to the drop directory.
2013-09-24 16:29:51 +00:00
jerry
43e2535335 Feature to drag a file from Mac (client) to Windows (server):
- temporarily drop dragging file to desktop (specified by command line arg --filetransfer-des)
- on Mac side, fake an esc key while dragging off the screen does not seem to work
2013-08-30 19:49:38 +00:00
jerry
ce1b62db14 Feature to drag a file from Windows to Mac:
- On Mac client main thread is used for cocoa application in order to simulate drag.
- Send dragging file dir from Windows server to Mac client while dragging after switching screen.
- Dragging information sending is immature now (need to support multi files dragging in the future).
- Used Cocoa function to monitor dragg pasteboard.
- Changed Mac client to use another thread for event queue instead of the main thread.
- Change fileRecieveComplete to fileRecieveCompleted.
2013-08-30 14:38:43 +00:00
jerry
012fe6ddd8 - Log out dragging file's directory in Synergy (using COM shell extension)
- Change shell extension dll Main.cpp to synwinxt.cpp
2013-08-23 09:59:31 +00:00
jerry
dab838ed14 - renamed synrgyhk.dll to synwinhk.dll and moved lib code to separate folder.
- removed game device support (fallen into significant disrepair).
2013-08-02 13:21:06 +00:00
Nick Bolton
7f6eca9eb4 corrected license and author attribution (cs 2002-2012, nb 2008-2012) 2012-09-04 02:09:56 +00:00
Nick Bolton
3d6551f708 moved stream into synergy namespace (to prevent naming collision in win libs)
implemented ipc "hello" message (to identify client type)
integ tests working for hello message, but use of ipc in main program has problem with events.
2012-07-05 18:05:35 +00:00
Nick Bolton
7d5fbde71d fully replaced gui/daemon named pipes ipc with tcp ipc. 2012-07-03 14:15:05 +00:00
Nick Bolton
488241850c moving 1.4 to trunk 2012-06-10 16:50:54 +00:00
Nick Bolton
e65886857d removed trunk; please commit to (and build patches against) release branches instead. 2011-10-05 00:10:22 +00:00
Nick Bolton
2fe11744cf merged 1.4 r1043:1044 into trunk 2011-06-18 23:44:23 +00:00
Nick Bolton
bebf8c2c2c made dll copy quiet and overwrite 2011-05-13 21:32:02 +00:00
Nick Bolton
627771cf13 merged 1.3 r978:979 into trunk 2011-05-08 22:46:06 +00:00
Nick Bolton
edeae477e1 implemented google mock config and gave it a quick try (see: add_newValue_writeWasCalled) 2011-05-07 02:12:09 +00:00
Nick Bolton
8472fec34d removed 'lib' prefix from libraries (cmake does this for us automatically on UNIX) 2011-04-25 22:21:32 +00:00
Nick Bolton
66c4bdc356 fixed library linkage on linux 2011-04-25 22:10:46 +00:00
Nick Bolton
143c4cd297 restructured source code, put CMakeLists.txt in more conventional locations, and split the libraries up 2011-04-25 21:09:32 +00:00