summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-04-25Require a configured TLS backend to buildTobias Markmann
Converted relevant SCons files from hard tabs to space based indentation with 4 spaces width. Test-Information: Tested that build failed with misconfigured OpenSSL backend (providing tls_backend=openssl on OS X and no information on where to find it). Tested that build succeeds on OS X 10.11.4. Change-Id: I17f85ca3194f100f63361a8c94667d7aa76e811a
2016-04-14Set QT_SELECT environment variable during scons buildTobias Markmann
This enables building on Gentoo. Test-Information: A user successfully built with this patch and both Qt4 and Qt5 installed. Change-Id: I81ada408d34208bbba22d30de5f4ecd0060e223f
2016-04-11Add missing dependency to InstallSwiftDependenciesMichael Vetter
On openSUSE python-xml is needed for scons during build time. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Change-Id: Ie93221df781b142b4c9b07e5b7ad716bd9185341
2016-04-07Fix building with system boost on Debian 8.4Tobias Markmann
The signals library is still called signals and not signals2. Test-Information: Builds and unit tests pass on Debian 8.4 with system GCC. Change-Id: I1d1b3f6bade979bc8a181915176b84be0ddf6597
2016-04-06Add distcc support to our SCons scriptTobias Markmann
Just pass distcc=1 and set cxx=distcc clang++ and cc=distcc clang and use an appropriate parallelization argument (-j). Converted hard tabs to spaces in the process. Test-Information: Used distcc with -j 10 to build the whole Swift project with unit tests in 13 minutes across 2 hosts. Change-Id: Ib6b63b5079872632a11c0fd28eb90b8901b956df
2016-04-05Migrate to Boost.Signals2 from Boost.SignalsTobias Markmann
Boost.Signals was deprecated and is not improved further. This patch removes Boost.Signals from 3rdParty and adds Boost.Signals2 and its dependencies. Also removed the Qt signals compatibility file Swiften/Base/boost_bsignals.h. Test-Information: Build and ran unit tests on OS X 10.11.4. Confirmed successful login using Swift client. Change-Id: Ie6e3b2d15aac2462cda95401582f5287a479fb54
2016-04-01Specifically handle Slimber/Limber in FixIncludes.pyTobias Markmann
Additionally improve handling of the corresponding header. Test-Information: This version of FixIncludes has been used in the recent include fixing of all source files in the repository. Change-Id: I70c8ef0a51d8e1a3b458fbd6f886c7d5b5259949
2016-03-31Convert tabs to 4 spaces for all source filesTobias Markmann
Removed trailing spaces and whitespace on empty lines in the process. Changed CheckTabs.py tool to disallow hard tabs in source files. Test-Information: Manually checked 30 random files that the conversion worked as expected. Change-Id: I874f99d617bd3d2bb55f02d58f22f58f9b094480
2016-03-17Put Sluift headers in their own group with FixIncludes.pyTobias Markmann
Test-Information: Ran FixIncludes over some Sluift files and it sorted them as expected, meaning not grouped together with project external includes. Change-Id: I035381f4560b3c13f1a1feaefad7ecd8e268640b
2016-03-14Build all Swift projects as C++11Tobias Markmann
Added a SCons compiler test so that the build process fails early if C++11 is not supported. Remove C++11 checks as we now default to C++11 and they are not needed anymore. Ignore a Clang warning if building 3rdParty Boost. Test-Information: Tested build and unit tests on OS X 10.11.3. Change-Id: Icbecbd1e25e8d8bbe5f402f75355373a86b5f8a1
2016-03-09Fix FixIncludes.py script to handle Objective C (.mm)Tobias Markmann
Test-Information: Ran it on Slimber/Cocoa/CocoaMenulet.mm. It was sorted correctly. Change-Id: I197e84c9bfb5ec2619c43f98fcaa927f85425083
2016-03-09Fix using external OpenSSL on Mac OS XTobias Markmann
This commit changes our TLS backend configuration behavior. It introduces the tls_backend Scons argument, which defaults to the native backend, but can also explicitly set to 'openssl' to use a project external OpenSSL installation or 'openssl_bundled' to build and configure with the OpenSSL source in the 3rdParty directory. Test-Information: Tested on OS X 10.11.3. ./scons ends up using Secure Transport. ./scons tls_backend=openssl \ openssl_include=/usr/local/opt/openssl/include \ openssl_libdir=/usr/local/opt/openssl/lib \ openssl=/usr/local/opt/openssl successfully builds with openssl from Homebrew. ./scons tls_backend=openssl_bundled successfully builds with OpenSSL in 3rdParty. Change-Id: I4fb0ef9d197609afe793554f86e54fe67fc1cab5
2016-02-29Fix scons2ninja toolingTobias Markmann
scons2ninja was broken since our last update to SCons in 3rdParty. This commit fixes it. This also includes a workaround to AppBundle.py working around an SCons encoding bug. Test-Information: Successfully run ./BuildTools/scons2ninja.py followed by ninja. Change-Id: I2f9dbbb33dc559ca339bb26ba11b885b39135011
2016-02-26Fixed a typo in InstallSwiftDependencies.shbarun511
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. The file displayed Unspupported System when you ran ./BuildTools/InstallSwiftDependencies.sh on a system not included in the Unix Distribution. The typo was fixed, and it now shows Unsupported System. Change-Id: I1a57f0d3e33d58b21b27e76bdd52c57f9831df50
2016-02-25Disable Hunspell support by default as it is not finished yetTobias Markmann
Our Hunspell support has not been finished and thoroughly tested yet. This commit disabled building with Hunspell by default, even if the dependencies for it are installed on the system. Remove libhunspell-dev from the build depends in Debian packaging. Test-Information: Tested on Debian 8. Tested with and without the hunspell_enable=True flag. With the spellchecking options are shown and however spell checking is not stable. Without it the spellchecking options are not shown and spellchecking is disabled in general, as expected. Change-Id: I100582852cbe128149fdb2e2a28d4ae407398be6
2016-02-15Improve SCons reporting on missing Qt toolsTobias Markmann
This will print errors like missing Qt linguist tools. Test-Information: Tested on Fedora 22 and OS X 10.11.3. Change-Id: I0817f368920b839805597d8eb2f3297b1fbd90e6
2016-02-11Add support for Fedora to InstallSwiftDependencies.shTobias Markmann
Test-Information: Tested on clean Fedora 22 system and successfully built Swift afterwards. Change-Id: I7451d03e1d88907d8356e4b43b837d5514bf32a0
2016-02-04Remove abandoned Swiftob subprojectswift-3.0rc1Tobias Markmann
Swifttob used to be an initial approach of a XMPP bot using Swiften. Today such a bot would probably use Sluift. Test-Information: ./scons test=system passes on OS X 10.11.3. Change-Id: I976f26d906f3007b4395e90fdd966e2c00cb1c2c
2016-01-16Remove warning about undefined QTDIR environment variableTobias Markmann
It used to be a common way to use the QTDIR environment variable to tell SCons the location of the Qt installation on the system. Swift however uses the 'qt' SCons config variable for the location and the 'qt5' variable for the version of Qt to use. On Unix/Linux systems with pkg-config, SCons will use it to detect the Qt installation and its flags. The QTDIR environment variable is rarely used and tested so the warning about missing environment variable is removed. Test-Information: Tested on Debian 8. Change-Id: I2cd793f12b8607743db2848765011cc719b106aa
2016-01-15Silence Boost Signals deprecation warning if using system BoostTobias Markmann
Test-Information: Tested on Debian 8 with system Boost packages. Change-Id: Ice6a98dc8ba3f09502d79e704c3e1b744d829d5d
2016-01-15Always link secur32.lib to Swiften on WindowsTobias Markmann
Even when using the OpenSSL TLS backend for Swiften secur32.lib is required by Swiften/SASL/WindowsAuthentication. This also adds additional flags needed to build a bundled OpenSSL on Windows. Test-Information: Tested on Windows 8 with VS 2013. Change-Id: I51da79cfa7931c07c8da3f0c5d941a637ac26d0c
2016-01-07Default to Qt5 for building SwiftTobias Markmann
Updated documentation accordingly. Test-Information: Build and ran unit tests on OS X 10.11.2. Change-Id: Iec4e82d3b63a6b0d24b854734879dd2fbfe17d79
2016-01-06Add openSUSE to InstallSwiftDependencies scriptMichael Vetter
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Change-Id: I31a731d0fb5142f1ec23c5c2e9f0ca60f5f9a288
2015-12-17Update SCons to version 2.4.0Tobias Markmann
Test-Information: Tested build works with upcoming fixes with VS 2015 Community. Change-Id: Ia4f78cc9efdae56ef78a2b7ae09f11fa1bd8bc37
2015-11-09Fix a syntax error in InstallSwiftDependencies.shKevin Smith
Thanks to https://github.com/damianb-03. Test-Information: Inspection Change-Id: I68de7fe5c3206dd24dc6443e6bf54e881e9c5b6a
2015-10-30Add support for OS X Secure Transport TLS backendTobias Markmann
Added integration tests for certificate validation and revocation behavior checking. Test-Information: Tested client login over TLS against Prosody and M-Link. Verified client certificate authentication works against M-Link. Change-Id: I6ad870f17adbf279f3bac913a3076909308a0021
2015-10-26Add Ubuntu support to InstallSwiftDependencies.sh scriptTobias Markmann
Test-Information: Tested script on Ubuntu 15.04. Change-Id: I7fdf700a3cc943c1cb517b6d33a91548c682cb0d
2015-10-16Do not require complete Qt installation when building SwiftenTobias Markmann
Previously, if a base installation of Qt was available but not all Qt modules required by Swift are available Scons would fail configuration. If a basic Qt installation is available SCons will try to configure Swift even if you only want to build Swiften. This commit changes the hard failure in Swift configuration to a warning. This allows only Swiften to be build. In addition, the warning now lists the Qt packages required by Swift. Test-Information: Tested on Arch Linux. Change-Id: I220ea61a7e4af849912e1fb1ae66cbecf5136d29
2015-09-24Always include Qt5 audio plugins for Windows packagesTobias Markmann
At some point during the Qt5 timeline they moved platform dependent audio playback code into a plugin. This fix will ensure that audio plugins are always shipped with out packages. Test-Information: Tested playing sound works on Windows 7 and Windows 8. Change-Id: I8976f1c1fb85d5efaadec5db26adec907a0a9f7b
2015-09-18Add support for Arch distributions in InstallSwiftDependencies.shTobias Markmann
Test-Information: Tested on an updated Arch Linux. Change-Id: I12bc9ebea6363a48025b5ab856b62e6bd2232a59
2015-09-18Add script for installing 3rdParty dependencies on UNIX/LinuxTobias Markmann
This script detects the system type and distribution and installs dependencies to build Swift with Qt5. Currently, it only supports Debian, but will be extended to more systems in future. Test-Information: Tested on Debian 8. Change-Id: I56f8fe5738f057cff519755fe2f823eac721d318
2015-09-02Restrict pre-commit copyright check to added filesTobias Markmann
Previously the pre-commit would require a correct copyright header on all files, including modified files that only have a couple lines changed. Now, a correct copyright file header is only required on new files added to the repository. Test-Information: Changed git author information to a new user and tried committing a changed file, and afterwards a new file. Only the commit of a new file failed due to missing copyright header. It was accepted after setting BSD header. Change-Id: I8e1324846fd904a72728e7c01da4c98f49a77282
2015-08-11Add 'check_headers' flag to scons for missing include detectionTobias Markmann
Running './scons check_headers=1 will compile each header file as an object file. Test-Information: Tested on OS X 10.9.5 and Elementary OS 0.2. Change-Id: Ia429ccc6dc0a5bd76c08a2c2e91bf192c6ad2901
2015-07-24Add missing includes for dependencies in public header filesTobias Markmann
Added Swiften/Base/Concat.h to the exception list for <algorithm> include, as Concat.h uses std::copy, defined in <algorithm>. Added Swiften/FileTransfer/S5BTransportSession.h to the exception list for <boost/bind.hpp> include, as S5BTransportSession.h declares a template class using boost::bind. Test-Information: Tested that each of Swiften's public header files compiles on its own. Change-Id: Iac794b6e0f5959cd8261888a67761813b710fe85
2015-07-07Use environment variables for addresses used in NetworkTestTobias Markmann
Introducing SWIFT_NETWORK_TEST_IPV4 and SWIFT_NETWORK_TEST_IPV6 for the host addresses used in BoostConnectionTest.cpp. Passing these variables and ASAN/LSAN_OPTIONS for memory leak detection when calling the test from SCons. Test-Information: Tested on Elementary OS with correct available hosts and unavailable hosts. In both cases the behavior is the same as before. Change-Id: I24128c766642c5a2ee273f7c11624525ae33e270
2015-07-07Fix './scons --help' if no Qt installation can be foundTobias Markmann
Test-Information: Tested on Elementary OS 0.2. Change-Id: Ieae4fc2a2c6fdfaaac9895153b09c9504ef71495
2015-06-29Add WindowsServicePrincipalName classMili Verma
Test-information: Tested on Windows using WIP GSSAPI code. Unit tests pass. Change-Id: If872863d6a8b5a164f8ebec4f88e9939b4e73c62
2015-06-25Fix qt4.py tool for ArchTobias Markmann
The tool had syntax errors (missing subprocess. in front of PIPE) and SCons errors (missing conf.Finish() calls). Test-Information: Tested on Arch Linux 1.4. Change-Id: Ibab23e1dc776ee9fe96de45221c4fb9659f4a185
2015-06-18Have SCons qt4 tool check for real moc or qtchooserTobias Markmann
Some platforms, e.g. KUbuntu, provide a wrapper around Qt's commands that allow easy switching between different Qt versions. With this change SCons will execute the found moc tool and check whether it works or not. Test-Information: Tested with correctly installed Qt and uninstalled Qt on KUbuntu 14.04. Change-Id: I88f0a36af462e909829c30115aa5481abdcd3ac6
2015-06-14Add support for updating copyright on files in Copyrighter.py scriptTobias Markmann
Refactored the code to handle the following cases nicely: - no copyright for current user present yet - outdated copyright for current user present (with and without range) - copyright present and up to date Test-Information: Tested with SWIFT_LICENSE_CONFIG set to "Isode Limited|default". Change-Id: I4df475f7ecd55aebe892411b2323da50fcbca525
2015-06-14Fix SCons qt4 tool pkg-config detectionTobias Markmann
Correctly use pkg-config to test for Qt, if no qt path is specified in config.py. 'Import(…)' at the top caused an error which was hidden by try/catch at upper layer. Test-Information: Tested on Kubuntu 14.04, with and w/o qt path set and verified that no exception is thrown if Qt is registered at pkg-config. Change-Id: I82800c23e9f75bd5f6b136fe384a70165a92bb45
2015-06-02Fix qt4.py Scons module pkg-config support in case Qt is not presentTobias Markmann
Test-Information: Tested on Elementary OS 0.2.1 with all Qt components uninstalled. Previously it would abort configuration and build. Now it simply builds without Swift and other parts depending on Qt. Change-Id: I84c91985a0ba1fdab98e97f80621cd41e0a7507b
2015-05-26Have cl.exe write debug info to independent files for reliable parallel buildsTobias Markmann
By default cl.exe writes debug info to a static file name resulting in all cl.exe trying to write to the same file when using parallel builds. This leads to race conditions and can have parallel builds fail. This only takes effect if parallel builds are made by scons. Test-Information: Tested with VS 2013. Change-Id: I8ea7e9370f5b149ded608e4c6f5e66a3fc6301c4
2015-05-26Fix SCons architecture detection on FreeBSD 10Tobias Markmann
Test-Information: Tested on FreeBSD 10.0. Change-Id: Ic1c8a1637f0fbc9128973b41d6988a8afd61e387
2015-05-19Consolidate Python and SCons files to tab based indentationTobias Markmann
Test-Information: Verified that SCons still runs on OS X. Change-Id: I7e9b97f90ee5581a691a959b6f2c999d93e0be53
2015-05-19Enforce tab-only indentation in Python and SCons filesTobias Markmann
This also converts CheckTabs.py script to tab indentation. Test-Information: Ran the script over all files in our repo and it detected space and mixed indented Python files. Change-Id: Ifed86d64c8e87ed55e85ef4d35157e312b937291
2015-05-19Gracefully handle pkg-config when Qt is not installedTobias Markmann
Test-Information: Tested on Elementary OS 0.2.0. Without this patch scons crashed if not all required Qt libs are installed. Now it marks Qt as unavailable and will configure a build without Swift. Change-Id: I5aa28ab8438e4c326d16413deb3a3fa739c94480
2015-05-07Add support for Qt 5.4.1 to build and distribution process on WindowsTobias Markmann
Test-Information: Tested with Qt 5.3.2 and Qt 5.4.1 from qt.io website. Change-Id: Iada3e64e530d8a5b53b8b5c8943bcafbd9bd6c64
2015-05-05Fix scons2ninja.py for WindowsTobias Markmann
shlex.split has a 3rd parameter specifying whether or not to run in POSIX mode, which defaults to True. This breaks splitting of Windows paths so it is set to False on Windows. Test-Information: Tested on OS X 10.9.5 and Windows 8. Change-Id: Icdc9fc07e89a80249526daa8f13dba081f957670
2015-05-04Correctly handle full paths when detecting Clang/GCC compilersTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: I887b85b78bfe5210844e0ea31f496fdbc8c21fa0