- Jun 29, 2021
-
-
Maxim Cournoyer authored
* build.py (run_run) <dring>: Adjust file name. * packaging/rules/rpm/jami-daemon.spec (%install): Likewise. Change-Id: Iedc4e0803bda19d139b29a4ccc669dcc8cc3fb9f
-
- Jun 28, 2021
-
-
Maxim Cournoyer authored
This is a follow up to commit 4ee93922, which introduced partial deployments. The unstash operation also needs to be handled specially, as it may now fail attempting to unstash an item that could not be stashed previously. * Jenkinsfile ('Sign & deploy packages'): Skip target deployment when it fails to be unstashed. Change-Id: I59341e4c3bb007125402f4b28979d0e8e963757d
-
Maxim Cournoyer authored
Change-Id: I98725b2669b357fb86dc653cb7d7ead6f34cb355
-
Maxim Cournoyer authored
This change normalizes the hanging indent to 2 spaces. Change-Id: I98bd6919eae547b946af2c59a14cbee96ee50a9d
-
Maxim Cournoyer authored
Use the recommended exec syntax for the CMD directive in the Dockerfiles, which invokes the command directly rather than through an intermediate shell. Also provide the -i option, but conditionally as Docker checks if there is a real TTY to connect to, which is not the case in Jenkins. * scripts/make-packaging-target.py (PACKAGE_*_DOCKER_RUN_COMMAND) [IS_SHELL_INTERACTIVE]: Conditionally provide the '-i' option. (package-*-interactive) <DOCKER_EXTRA_ARGS>: Remove target-specific variable. (DOCKER_EXTRA_ARGS): Move/rename variable to ... * Makefile (DOCKER_RUN_EXTRA_ARGS): ... here/this. (IS_SHELL_INTERACTIVE): New variable. The rest of this change was automated using the command: $ git grep -l CMD | xargs sed -i -E 's,CMD (.*)$,CMD ["\1"],g' Change-Id: I93ba9ad8115541a7c7f02421384ae01a5b0650ad
-
Maxim Cournoyer authored
This avoids invalidating the cache when changing the rules file of the packages, for example. Automated via: $ git ls-files | grep Dockerfile | xargs sed -i 's,packaging/rules/debian-qt/\* /tmp/builddeps/debian/,packaging/rules/debian-qt/control /tmp/builddeps/debian/control,g' $ $ git ls-files | grep Dockerfile | xargs sed -i 's,packaging/rules/debian/\* /tmp/builddeps/debian/,packaging/rules/debian/control /tmp/builddeps/debian/control,g' Change-Id: Ic33d7af4c022ed9de53df245c861a31d2786fc96
-
Maxim Cournoyer authored
Workaround <https://bugreports.qt.io/browse/QTBUG-94800>. This is to avoid out of memory conditions during the build, which requires up to about 2 GiB of memory per parallel process. There was also a problem with how the MAKEFLAGS was passed, which led qtwebengine to be built using all the CPU cores even when specifying a lesser NO_CPUS value. * packaging/rules/debian-qt/rules (min, max): New functions. (NO_CPUS): Express in terms of max. (AVAILABLE_MEMORY, MEMORY_REQUIRED_PER_CORE, COMPUTED_JOB_COUNT) (JOB_COUNT, MAX_PARALLEL_BUILDS): New variables. (override_dh_auto_build): Override to manually control job count. Specify NINJAFLAGS for the Chromium build. * packaging/rules/rpm/jami-libqt.spec (min, max, cpu_count) (available_memory, computed_job_count, job_count): New macros. (%build): Re-indent and use the above 'job_count' variable as the number of parallel jobs. (%install): Likewise. Change-Id: I9134c1e63e92104a1da8435670e2919ce692040c
-
Maxim Cournoyer authored
Also make the script more readable by factoring out variables to avoid repeating ourselves. Change-Id: I30e85fb7b0a1207a8eff3a89d8c7ab4f455e0c4a
-
Maxim Cournoyer authored
Change-Id: Ib5ad6c091560f7fc4ee9734ca283e78c90d9d769
-
Maxim Cournoyer authored
* scripts/build-package-debian.sh: Revert glob pattern to *deb and add comment. * scripts/deploy-packages.sh (package_deb): Rename .ddeb to .deb. Change-Id: I46bd9855bec451102a5ef5046f9ac52b161559c5
-
- Jun 25, 2021
-
-
Maxim Cournoyer authored
Change-Id: I5cbc06d5f7b245bf49578914819a8154c9d2cd6e
-
Maxim Cournoyer authored
* packaging/rules/rpm/jami-all.postinst (is_distribution_supported): Make version agnostic. (has_rpm, is_opensuse): New procedures. (CAN_ADD_REPO_SOURCE, JAMI_REPO, ENDTAG): Delete variable. (jami_repo_name, jami_repo_base_url): New variables. Change-Id: I01ee72da39a1a8377ec70ae9dc3ef218d0837633
-
Maxim Cournoyer authored
When a packaging target fails to build, deploy the successful builds to the repository anyway. * Jenkinsfile (BUILD_OWN_QT): Remove parameter. The Qt builds are now implicitly made as part of the regular packaging targets. (Build packages): Wrap make invocation in a catchError so that the stage appears as failed while the build is marked as a success, which allows the 'Sign & deploy packages' stage to run despite packaging errors. Change-Id: I5785d154f5e1963aa824576f7f0f62043446456a
-
Maxim Cournoyer authored
* Jenkinsfile (properties): New definition. GitLab: jami-packaging#98 Change-Id: I3406f20027cafe8ab6a5743860b470d92e8455cb
-
Maxim Cournoyer authored
* Jenkinsfile (Deploy packages): New stage. GitLab: jami-packaging#98 Change-Id: I36a555312e0569549316370878244c3267f8149a
-
Maxim Cournoyer authored
* Jenkinsfile (submodules): New variable. [parameters]{WITH_MANUAL_SUBMODULES}: New parameter. (Fetch submodules): Adapt the message to the parameter's value. Add the '--remote' option to 'git submodule' unless WITH_MANUAL_SUBMODULES is true. GitLab: jami-packaging#98 Change-Id: Ie5f0521bed16303e751e8e19174f18a90bccefcc
-
Maxim Cournoyer authored
The default is to build all the packaging targets (minus the *_qt and *_arm ones). Add a PACKAGING_TARGETS parameter that allows specifying which targets to build. * Jenkinsfile: (PACKAGING_TARGETS): New parameter. ('Build packages'): Use it unless it's the empty string. GitLab: jami-packaging#98 Change-Id: Idf1b4460a0edac7cbe6a82b9db1d204af78de801
-
Maxim Cournoyer authored
This follows commit 2afa99fd1 in the daemon. * build.py (run_run) <dring>: Adjust file name. * packaging/rules/rpm/jami-daemon.spec (%install): Likewise. Hard code the jamid binary location as /usr/libexec/dring, to not argue with OpenSUSE Leap's %{_libexecdir}. Change-Id: Iea6bf3cc6c4dce853f0b7c92861dfee7b8a07bbe
-
- Jun 09, 2021
-
-
Sébastien Blin authored
GitLab: #1259 Change-Id: I9c81a366737a9805dc80a9db577b730633caec04
-
- Jun 08, 2021
-
-
Since the introduction of libqt-jami deb packages, they were built using quite an ugly hack on the Jenkins side. This patch reworks all of that so that libqt-jami is built for each distro version if it was not already previously built, or if a force rebuild is specified. Change-Id: Ib74b747628a007cd0d61b068e0ff9ed80006b93d
-
- Jun 04, 2021
-
-
Adrien Béraud authored
Change-Id: Icf5de11a027f9a66b7edbd108be69f9b5d4838bf
-
Amin Bandali authored
Support for package repositories is no longer experimental, and the --enable-experimental-package-repositories flag has been removed as of Snapcraft 4.8. Change-Id: Ie095aaef7806a13ba765941bed480a25f8cae552
-
- Jun 03, 2021
-
-
Sébastien Blin authored
This give some performance drop and can cause crash. Change-Id: I1a82d52972704cb66d34712a81a8e0bb6d051ae4
-
- Jun 02, 2021
-
-
Amin Bandali authored
Change-Id: Ie938153fd4581e6007c4c2c65b82649c56c31e4c
-
Maxim Cournoyer authored
Otherwise it wouldn't be in effect when using the '--remote-ssh-identity' option of the script. * scripts/deploy-packages.sh (fetch_qt_deb) <RSYNC_RSH>: Export. (deploy) <RSYNC_RSH>: Likewise. Change-Id: Ia738402a16dad4eed3557137c82a3cdb6bbdeeef
-
- Jun 01, 2021
-
-
Amin Bandali authored
Change-Id: Icff500f88094c5a904095c228f68824514c157ce
-
- May 27, 2021
-
-
Maxim Cournoyer authored
* scripts/deploy-packages.sh <SSH_IDENTIY_FILE>: Replace with SSH_IDENTITY_FILE. Change-Id: Ibbdc21710b902f0a5e963c645dfbc5f62dff1be6
-
This resolves the following error: ImportError: /usr/lib64/libgobject-2.0.so.0: undefined symbol: g_memdup2 * docker/Dockerfile_opensuse-tumbleweed: Do not update and install stuff in various steps. * docker/Dockerfile_opensuse-leap_15.2: Likewise. Change-Id: I286576cddd5226cf40fd1bec997be36b2142e355
-
- May 25, 2021
-
-
This enables building Jami in a development setting on any GNU/Linux distribution, provided Guix is installed. It supports building both the Qt and the GNOME clients. It uses ffmpeg and pjproject from the contribs. Change-Id: I1bf0c9f3f9c08361b9016fe04581902ec27f2312
-
Maxim Cournoyer authored
Seeing which commands are executed during the build is useful to debug when something goes wrong. Change-Id: I2acec49b519c9070fbfa2d18d14e2b459c9bc76f
-
Maxim Cournoyer authored
The CMake flags list is now built dynamically, allowing to share the common flags between the clients and the conditional branches. Quote more arguments as reported by 'shellcheck'. Change-Id: I0cd845ec733fb8389c4cd9bd74455ba86a602fee
-
Maxim Cournoyer authored
Running autogen.sh invalidates the build artifacts, causing them to be rebuilt every time the 'install' action is invoked, which is wasteful. Only invoke autogen.sh when the configure script is missing. Change-Id: Ib92b3d14e9f44f465f467ee0948fe3fceb5d3bea
-
Maxim Cournoyer authored
Change-Id: Iba8aac10fa36e4404b07beab9dfe9ed3d8c5c1a2
-
Maxim Cournoyer authored
This hastens the build when using the ./build.py script. The debug symbols are now also kept for the built contribs when the --debug option is provided along --install. Change-Id: Ia5a68456213e8984f5ac8f050131356b324d9777
-
Maxim Cournoyer authored
Instead, use Bash from PATH. This approach works more reliably on distributions not strictly adhering to the File Hierarchy Standard (FHS) such as Guix System or NixOS. Change-Id: Ic7b168d0f4d73f3a1cb1085e9a84600a25d153c5
-
There is no gdb.gdb init file in the repo, never was. Change-Id: Ia1020ff037b5c6f36143cf63816027b0878f5b78
-
Maxim Cournoyer authored
While it's not possible to automatically check and configure the dependencies for unknown/unsupported distributions, build.py still provides a convenient experience to checkout the sources and install Jami locally. In this mode of operation, the user is expected to configure their environment by their own means. * build.py: Rename Ring to Jami in the document string. Remove unused 'signal' import. (choose_distribution): Do not crash when the '/etc/os-release' does not exist; return 'Unknown' instead. (validate_args): Allow disabling the distribution check when the user provides 'no-check' as the value of the --distribution argument, or defines the JAMI_BUILD_NO_CHECK environment variable. Update the help documentation. * scripts/install.sh (priv_install): Document the arguments. Change-Id: I41ba2da05771feb6e3f9bc7c087206596063ba81
-
Maxim Cournoyer authored
When a .tarball-version file containing the version string is present, it is taken for granted that the source tarball is present. This allows to lift the requirement on a Git checkout to use the source tarball. This makes it easy and cheap to sync this tarball and accompanying .tarball-version file across different Jenkins agents to distribute the packaging jobs, bring the total build time from about 1 h 40 to 40 minutes. * Makefile (TARBALL_VERSION): New variable. When defined, do not do not invoke Git to derive the version string, simply use it. [RELEASE_TARBALL_FILENAME]: Do not compute prerequisites when TARBALL_VERSION is defined; assume the tarball is present. * .gitignore: Ignore .tarball-version. * Jenkinsfile: (Generate release tarball): Generate a .tarball-version file, and stash it along the release tarball. Explicit this should run on a 'guix' agent. (Build packages): Forward to any 'linux-builder' agent, clean the workspace, unstash and extract the tarball and build. GitLab: jami-packaging#98 Change-Id: I13088b75c9ccd5166662a84b7c5f8d4e8b7b65da
-
Maxim Cournoyer authored
* Jenkinsfile [parameters]: New directive. (Build packages): Skip building custom Qt or ARM packages depending on the parameter values. GitLab: jami-packaging#98 Change-Id: Ic68af873483ac92319061baf5f14ef7323a27a26
-
Maxim Cournoyer authored
AFAICT, this was made to clear some supposedly non-redistributable files in the sources according to Debian policy. If there's some cleanup to do, we should do so at the level of the common source tarball, not in a Debian-specific way. * packaging/rules/debian/rules (override_dh_auto_configure): Remove code repacking tarballs. (override_dh_clean, get-orig-source): Remove. * packaging/rules/debian/copyright (Files-Excluded): Remove. Also streamline the listing of copyrights to the files part of our tree, not in bundled libraries. Debian-specific requirements can stay in the Debian-maintained corresponding packages. * scripts/build-package-debian.sh: Streamline, making the release tarball the sole input of the process. Do not build source packages, for simplicity (dpkg-source doesn't like our source tarball as-is). Change-Id: I78a482ab3362e9bba8ffdc0ab60324f94715bfb8
-