summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-02-28Create Debian packages using DockerThanos Doukoudakis
This patch will setup Docker containers to build the source and Debian packages. The script will use the private key under gpg-keys folder to sign the Debian packages. If the folder is not there or doesn’t exist then the build will fail. Keys are expected to be in .asc format, unencrypted and not password protected. Added .dockerignore file to avoid copying the cache files to the container. The output is stored in out/ folder and the folder structure is ready for update_debian_repo.sh script. SWIFT_PACKAGE_PLATFORMS defines the platforms that it will be build for. Default values are: ubuntu:bionic ubuntu:cosmic debian:stretch debian:sid. DOCKERRUNEXTRAFLAGS variable can set additional flags for Docker builders. Currently is set to --privileged to avoid an issue during build with Qt5.11.1 https://bugreports.qt.io/browse/QTBUG-64490. Updated the Debian repo scripts to new distributions and Docker changes. Test-Information: Run the script and created source & binaries for all the distributions. Verified that changelog, compact, control, copyright, rules and source/format exist under the Debian folder when building the Debian package. Created tags and generated dev builds, rc builds, and release builds to test the output of the different release channels. Created a container, tested the Swift and Swiften packages, and the installations: Tested the following debs with piuparts in a docker container of the system they are build for. No errors raised and a few warnings related with chroot (which fails within a docker container) *libswiften-dev-dbgsym*.deb, *libswiften-dev_*.deb *libswiften5-dbgsym_*.deb *libswiften5_*.deb *swift-im-dbgsym_*.deb *swift-im_*.deb Installed the above packages and verified the install with swift-im –version, headers exist in /usr/include/Swiften/ and libSwiften.so under /usr/lib/. Verified the gpg signatures on the .changes and .buildinfo files. Tested the output with the update_debian_repo.sh and the import was successful. Verified the .changes and .buildinfo files with lintion which reported the following errors and warnings (there are differences between different channels release, beta, development): E: swift-im changes: bad-distribution-in-changes-file development E: swift-im changes: multiple-distributions-in-changes-file beta development W: libswiften5: new-package-should-close-itp-bug W: libswiften-dev: new-package-should-close-itp-bug W: swift-im: new-package-should-close-itp-bug Tested that the man page exists after installing in a docker container (ubuntu xenial, debian stetch, debian sid). Change-Id: Ic28d2731bbca34716645e76e7e7e7e8183dea4f8
2019-02-26Fix library search path for man page generationThanos Doukoudakis
This patch will fix an issue that occurs when generating the man pages for swift-im. The man page is generated from the Swiften library using help2man. The issue occurs when the library cannot be found during build time and help2man is generating a man page with the output of that error, ignoring the return error code from swift-im. To avoid this happening in future builds, swift-im --help is run before generating the page and checked if the execution was successful. If yes we proceed with the generation, if not we stop the build and throw an error. swiften-config man page generation was not affected by this issue. Test-Information: Build with ubuntu 18.04 on a machine that hasn’t got Swift or Swiften installed. Build the Debian package for Debian stretch with pbuilder, and installed on a clean docker container (Debian stretch). Repeated the test with Debian sid but with packages build from docker containers. Change-Id: Icf8a84ba7f4810c87e5835e5ac1a91d1324ddac8
2019-01-15Merge tag 'swift-4.x' into masterTobias Markmann
* branch 'swift-4.x': Update for Debian Don't crash on missing bookmark result Add missing include for QAbstractItemModel Update Debian changelog Fix convertToWindowsVersion() function to handle more RCs Fix error response handling when requesting VCards Test-Information: ./scons test=all succeeded on macOS 10.14.2. Change-Id: I99d20a8b0e1b0be501fbbe95adebbff15f510184
2019-01-07Update for Debianswift-4.0.3Tobias Markmann
Fix UTF-8 handling issues in BuildTools/SCons/Tools/textfile.py . Test-Information: Tested that ./scons test=unit Swift works on Debain Unstable (sid) and macOS 10.14.2. Tested that build_for_debian.sh runs successfully on latest Debian Unstable (sid). Change-Id: I29d8c97ce3b4eb3e4fd680bdc814fb0c911262ff
2018-07-12Fix Python 3 compatibility of our SCons and tooling Python codeTobias Markmann
For the upcoming update to Scons 3, which works with Python 2 and Python 3, this change makes our code compatible with Python 3 so that it still works with Python 2. Test-Information: Tested these changes with SCons 3.0.1 on macOS 10.13.6 with Python 2.7.15 and Python 3.7.0. Change-Id: Idb5207b179a79a0dbe89d7e620d182a7d2f1ca6c
2018-04-10Update Debian changelogTobias Markmann
Closed two further bugs from the Debian bug tracker in the changelog entry for 4.0.2. Test-Information: None. Change-Id: I74dd7350990ddd1627b2b9c64b322ed84f3a6186
2018-03-20Merge branch 'swift-4.x'swift-5.0alpha2Tobias Markmann
* swift-4.x: (44 commits) Test-Information: Builds on macOS 10.13.3 with clang trunk. Change-Id: If50381f103b0ad18d038b920d3d43537642141cb
2018-03-12Enable per user installations on WindowsThanos Doukoudakis
This patch will allow the installer to perform per-user installations that doesn't require elevated rights. If the Visual Studio prerequisites are missing, the installer will ask the user if he wants to install them. If the user chooses not to, the installer will deploy the necessary files in the installation folder. Installations for all users (per machine) are still available. Upon upgrading in per-user installs from previous versions, the user can still access the settings that were stored in the registry, but not the settings stored in system-settings.xml. Test-Information: Build and tested with Wix3.11, Qt 5.8 and Visual Studio 2015 on Windows 10 and Windows 7. Tested fresh install and upgrade, for per-machine and per-user installations. Tested the vcredist install and the dll deployment when the installation is not present. Verified that the installer uses the registry settings in per-user installations. Change-Id: I1879e2fb7ee347dab58852eb73d4ddddec15b35d
2018-03-05Update the debian and ubuntu distributionsThanos Doukoudakis
This patch updates the build scripts and documentation for newer distributions of Debian (9) and Ubuntu (17.10). Test-Information: Tested packaging scripts on Ubuntu 16.04.4 for Debian stretch and Ubuntu artful distributions. Change-Id: Id567d75bdf3c6abe3cf08a2fd617363a5c1c987f
2018-03-02Fix an issue with help2man and debian packagingThanos Doukoudakis
This patch fixes an issue that occurs with help2man when building the debian package. It appears that swifts output is interpreted as invalid, so we are adding the no-discard-stderr to bypass the error. Test-Information: Tested packaging scripts on Ubuntu 16.04.4 for jessie and stretch distributions. Change-Id: I87f48c720e0132aeaad00e6accd37eee44cdcb7b
2018-02-09Move man page generation from package.sh to sconsTobias Markmann
Pass help2man=1 to have scons build man page sources via help2man. Adjusted package.sh to use scons to build man pages. Test-Information: Tested on Ubuntu 16.04 and it generated man page sources when help2man=1. Tested package_all_platforms on Ubuntu 16.04. The build does not fail due to missing man pages anymore. Change-Id: I6c62bc3f666ffd9f926038045672eb6e456082e5
2018-01-05Fix the debian repository update scriptThanos Doukoudakis
This will use the distro_version instead of the distro_name variable in the script. This fixes an error that was introduced in commit 2b185f0b25aede6e2f40a678647c78bb8e7f8638 Test-Information: None Change-Id: I943a680c49f70310ff525ee60f31b23641ccb2f5
2017-12-20Allow define the debian repositories to uploadThanos Doukoudakis
This patch uses SWIFT_PACKAGE_PLATFORMS variable and only updates the repositories that are defined there. Test-Information Tested the script on Ubuntu 16.04 when the variable is/not defined Change-Id: Ie8f65441f558e3ac663eb8493cedd8c0d2630753
2017-12-14Will allow defining packaging platformsThanos Doukoudakis
This patch introduces SWIFT_PACKAGE_PLATFORMS variable which defines the platforms that package_all_platforms.sh will package Swift. If not defined, it will default to xenial yakkety jessie sid. Test-Information Tested the script on Ubuntu 16.04 when the variable is/not defined Change-Id: I9ba4fbd68ad18e28cbd2d8c1feb50e6d63e44e06
2017-11-27Make the Windows installer remove older versions of Swift componentsThanos Doukoudakis
This patch will make the installer remove each file component, before deploying the new version of the file. This is to avoid potentials issues with the installer, when trying to deploy a new version of a file that happens to have the same version information as the original file. The default behaviour of the MSI installer in a case like this is to skip the deployment of the new file. This issue occurs when Visual Studio gets upgraded, and we need to redeploy 3rd party components of the same version but build with the new version of the compiler. Test-information: Generated an installer and tested fresh install and upgrade from Swift 3.0. Tested with Windows 10 and Windows 7, normal and quiet installations. Verified that the Qt DLLs deployed have the correct VS redist dependencies. Change-Id: I6f68126ee63968aad066901704a409b6ebada14f
2017-06-16Add scripts that test Debian packagesThanos Doukoudakis
Adding two scripts that will test Ubuntu(xenial – yakkety) and Debian(jessie - sid) distributions. The script will create a base system of the distribution and then add the swift distribution channels. It will then test the version of the binary and source packages that are available in the channel, and then it will attempt to install swift and all its dependencies. Test-Information: Tested on Ubuntu 16.04 (host) Change-Id: I977e72223a4688672d64b39c22c966aa143bc060
2017-06-14Update build_appimage.py for CentOS 6 supportTobias Markmann
* Adjust script to support older Python version, 2.6.6 * Add ability to include arbitrary libs in AppImage * Make debuglink via objcopy optional Test-Information: Tested on 64-bit CentOS 6.9 with non-system g++ 4.9.4 and tested generated AppImage on 64-bit Ubuntu 16.04. Change-Id: Ib75b07b30e1b1cdf875ec0b45c9f7bab91c59fbf
2017-06-13Add build_appimage.py for Linux packaging as AppImageTobias Markmann
Run this script to generate a self-contained AppImage that will run on any Linux distribution that has the same or newer Linux kernel and the same or newer GLib. The script will generate an AppImage for the same architecture it is executed on. By default it will use Qt5. Specify --qt5=False to create an AppImage with Qt4. The resulting .appimage and .debug files are copied to ./Packages/Swift Test-Information: Latest iteration of the script was tested with building an AppImage on 64-bit Ubuntu 16.04 and running it on 64-bit Debian Sid. Earlier version of the script was tested on 32-bit SUSE Linux Enterprise 11. Change-Id: I14477ada3558109fe73a77f7e7fe1ee8ef629d5f
2017-05-12Allow creation of a Swift appimage on CentOSKevin Smith
This provides two mechanisms, one via Docker and one via copying and running scripts. The Dockerfile will build with 64bit CentOS 6.8 only, which isn't useful for truly ancient systems. The scripts are tested on 32bit CentOS 6.0. In both cases they provide an appimage that runs on some systems. Change-Id: I84ca453e355eb2653d3cd703d2c6c8bb60340ec0
2017-05-03Add workaround for adding sid packages to apt repo via repreproTobias Markmann
Test-Information: Tested the changes on our repository server. It removes the dbgsym packages, that debuild automatically builds since sid, from the .changes file. This way reprepro will not complain about them and add the usual packages to the repository. Change-Id: I1e4d956ecdc76bd9256cf502bd561abcd0968252
2017-05-03Add update_debian_repo.sh scriptTobias Markmann
The purpose of the script is as follows: Based on an incoming folder of Debian binary and source packages for multiple distributions and versions structured as incoming_folder/$distribution/$version, the script will create apt repositories using reprepro and fill it with packages from the incoming folder structure. If the repositories are already present, they will be updated instead of created. Test-Information: Tested it on Debian 8.7 with Swift development packages produced by our CI machine. Change-Id: Ic0270bc954ec9609c0567d2707825fbab89e7b3a
2017-03-15Add automatic man generation to the Linux build for SwiftJoanna Hulboj
Test-Information: Tested under CentOS. Run script to generate a package under Linux, swift-im.1 and swiften-config.1 are generated. Change-Id: Idf0b159a94e05349b196f019bbc91127095a1d16
2017-02-07Remove trusty and add yakkety to package_all_platforms.shTobias Markmann
Test-Information: None. Change-Id: Iaa0bad47c104b9407329d69329f3409af0d62e6d
2016-12-16Add missing libqt5svg5-dev to debian/config.inTobias Markmann
Test-Information: Tested this manually on our Debian builder. With this fix it stops complaining about missing Qt packages. Change-Id: I5fb25714f7e1b726f893f9475fded17c36677cef
2016-12-15Merge branch 'swift-3.x’Tobias Markmann
* swift-3.x: - Fix building Swift on 32-bit Linux distributions - Remove optional_fwd.hpp use; workaround for Boost Bug #12179 - Split COPYING.thirdparty in contributions/dependencies - Fixes for building packages on Debian Conflicts: BuildTools/SCons/SConstruct Sluift/Console.h Sluift/ITunesInterface.h Sluift/Terminal.h Swift/Packaging/Debian/debian/control.in Swift/QtUI/SConscript Swiften/Elements/Stanza.h Swiften/FileTransfer/FileTransferTransporter.h Swiften/FileTransfer/IBBReceiveSession.h Swiften/JID/JID.h Swiften/Network/BoostConnectionServer.h Swiften/Network/ConnectionServer.h Swiften/Parser/AttributeMap.h Test-Information: Builds on macOS 10.12.1 with clang trunk. Change-Id: I9f41ab199f227bc106721627ea994313c68e5cfe
2016-11-22Add missing dependency for Debian unstable/sid in control.inswift-3.xTobias Markmann
Test-Information: Ran package.sh on Debian unstable/sid. Without this fix, building in package.sh failed due to missing zlib header files. With this patch it complains about missing zlib1g-dev package, and after installation of it successfully builds Swiften/Swift. Change-Id: I9babcd1a5f9e21c01b9c6e9a51a80200d7998538
2016-10-21Fix package generation on macOS 10.12Tobias Markmann
This removes resource forks from our template disk image. Add custom InstallWithSymLinks command that does behave similar to the default env.Install command, however preserves relative symbolic links inside an installed directory. This is needed because the Sparkle.framework internally uses symbolic links and codesign utility fails if these links are replaced by copies of the original files. Test-Information: Verified dist=1 builds with and without code signing on macOS 10.12. Verified that on change of presence of the codesign_identity SCons argument or its value, a new package is build. If it does not change nothing is built again. Change-Id: Iade94811b7d608cb7520662e2820be3b128ee90b
2016-10-05Update tag version 3.0.4 for Debian buildingKevin Smith
Change-Id: If5a6acae4beaf29334536ab1481550b28bf02f83
2016-10-03Update tag version for Debian buildingKevin Smith
Change-Id: I9ece784373b5d019cd635d9e33593fb3fa2e4fc6
2016-10-03Update tag version for Debian buildingKevin Smith
Change-Id: I9ece784373b5d019cd635d9e33593fb3fa2e4fc5
2016-08-17Optionally create GPG signature for generated tarballTobias Markmann
If the gpg tool is found in the PATH and a key exists for Swift's signing identity, package.sh will generated a GPG signature (.asc) file alongside the tarball. Test-Information: Created a new GPG key with Swift's signing identity, ran package.sh script and correctly verified the generated signature with GPG. Tested both with and without --nosign flag. Tested on Debian 8.5 with GPG 1.4.18. Change-Id: I7e6c8b6a7c900b68e53ece97a59eba33a2de565d
2016-08-17Enable hunspell support for Debian packagesTobias Markmann
Test-Information: Verified that ./package.sh builds a Swift package with spellchecking support enabled on Debian 8. Change-Id: I31bce4be6a3cc35e9c9bbeca1ec146ec179a3bb8
2016-08-15Remove DocBook fonts and commit-msg Git hook for debian packagesTobias Markmann
Test-Information: Tested that package.sh generates .deb packages on Debian 8. Change-Id: I6a75cb186c00f6c8f19a7dbfc34e1d8d153fa57f
2016-08-09Fix SVG rendering related packaging issuesTobias Markmann
Added Qt image format plugin packages and Qt SVG image format plugin to InstallSwiftDependencies.sh script and Debian packaging. Test-Information: Tested that macdeployqt now adds the image format plugin for SVG to the deployable app bundles. Change-Id: Id1ce265073cb8adb9315cb40da032ee11ea8761d
2016-07-13Fix copyright year in Swift/Packaging/Debian/debian/copyrightTobias Markmann
Test-Information: None. Change-Id: I22ce5f200d156856d67f902b28ac07f091019101
2016-07-06Stop building packages for Ubuntu 15.10, build for 16.04Kevin Smith
15.10 wasn't LTS, so no need to keep building Change-Id: Id395dadab3a1523c3eaeb9e2e1f5d89d187405e3
2016-07-05Update Debian building ready for shipping 3.0 to themKevin Smith
Change-Id: If42f50bf0ffbabee5e2c03fd99b3154362230189
2016-06-30Add initial support for code signing on OS XTobias Markmann
See DEVELOPMENT.md for instructions. Test-Information: Tested using a self-signed code signing certificate created using Keychain Access.app. Compared the output of 'codesign -vvv -d' on Swift.app with preinstall apps. The output looks much the same except for the signing authority. Change-Id: Idbb3209ad917091c371ced61ec8a77e3e5d18884
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-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-02-04Anonymise owner and group in source tar packageEdwin Mons
Requires GNU tar, which isn't installed by default on OS X. Test-Information: Tested on Debian 8 and OS X 10.11 with Homebrew gnu-tar. Change-Id: I2165654489bd01223f1366a71f62fd7fe4187e11
2015-11-11Break out of .deb packaging on errorKevin Smith
Test-Information: Ran the script until it started building (then cancelled it). Change-Id: I803f8aae2b042dea9870491dfd46bbc5a6fd88f6
2015-11-11Update .deb platformsKevin Smith
Test-Information: Built using the script Change-Id: Id4f6dd0d36e975341b5b30298db4541fbe018b2e
2015-11-10Update .deb packaging for Qt5Kevin Smith
Test-Information: Generated (unsigned) debs on Ubuntu 15.10 Change-Id: Ibacee5d63c0662d2a9cfbc61e0d0f2c48fd93736
2015-10-27Remove debuging symbols from packaged Swift.appTobias Markmann
Test-Information: Verified that the debug symbols are gone from the Swift.app bundle in the packaged DMG image. Change-Id: Iefb2a5b8eb18587f35143ff344336acb2e69fa1a
2015-09-16Increase template OS X installation disk image sizeTobias Markmann
Our packaging procedure temporarily needs more space on the disk image as it first copies the application bundle and frameworks on the image and afterwards removes debugging symbols and other files not required by the end user. The package.sh script reported this error of not having enough space left on the disk image. Test-Infromation: Verified that the disk image is still build, the package.sh error is gone and the packaged Swift.app works. Change-Id: Iba853bd30eb63f74f07cdda08b93e76dd89368bb
2015-09-16Remove Qt bearer plugins from Swift bundle in installation packageTobias Markmann
This is a workaround for QTBUG-34641. The Qt bearer API for detecting network changes will poll for available wireless networks every 30 seconds or so, resulting in needless CPU load. This patch removes the plugins for this API from the installation package, which will disable the constant polling for available wireless networks. Test-Information: Verified that the plugins are removed from the application bundle in the final installation DMG. Change-Id: If46d03ca5623885879ecc10e06a29cec96e7caa4
2015-03-27Improve Windows MSI installer upgrade experienceTobias Markmann
Previously every time WiX heat.exe ran it generated new GUIDs for all the file components that MSI was going to install. Windows installer deletes components if there is no software/component left that is referencing it. This patch uses the -ag flag instead of the -gg flag for heat.exe so it will generate deterministic GUIDs based on the filename and other things instead of completely random new one on each run. In addition we schedule the upgrade to run after the new version has been installed. This way old files are first replaced with the new ones, shortcuts remain and are not deleted, pinned shortcuts remain usable. Afterwards MSI uninstalls the old version, specifically the components that are not reference anymore. Test-Information: Tested (a) two version upgrade with this patch and (b) an upgrade from a version without this patch to a version with this patch. a) The upgrade works as expected. MSI installs the new version and then uninstalls the old version. The pinned shortcut stays alive and works. b) In this case during the deinstallation files of the new installation are deleted, since there are two components with different GUIDs which however use the same filenames. Running a repair on this installation, or first deinstalling the old version and then the new one manually fixes this. Change-Id: I842a288d837962e77efaa15b17d3877e923c7e49
2014-12-15Update Copyright in SwiftKevin Smith
Change-Id: Idb6ef5fa191b1465c0bf46c47e63b695de07fa0b
2014-06-11Fix vcredist bundling in WIX installer.Richard Maudsley
Change-Id: I499db0b68cc5e492a35d931b146094446e183682