1. 13 Sep, 2021 1 commit
  2. 02 Sep, 2021 2 commits
  3. 01 Sep, 2021 2 commits
  4. 25 Aug, 2021 2 commits
  5. 21 Aug, 2021 1 commit
    • Maxim Cournoyer's avatar
      Makefile: Repatriate the definition of packaging targets. · 004fda67
      Maxim Cournoyer authored
      Prior to this change, the Makefile packaging targets were generated by
      a Python script, supposedly to reduce boilerplate.  Make is able to
      programmatically define rules, so use its features instead.
      The packaging targets 'package-' prefix is dropped, making the targets
      names match the distribution directly, such as 'ubuntu_20.04'.
      The docker *-ro bind mounts are dropped; instead only the release
      tarball file name is exposed to the containers as *the* source, which
      makes it unambiguous as to which sources are used.
      The files related to RHEL builds are removed, as the RHEL build is
      known to be broken and isn't being used.
      * Makefile (DISTRIBUTIONS): New variable.
      (make-docker-package-target): New function.
      (docker/Dockerfile-snap): Adjust accordingly.
      docker/*: Standardize to use hyphens instead of a mix of hyphens and
      * docker/Dockerfile_rhel_8: Delete file.
      * docker/profile-seccomp-fedora_28.json: Delete file.
      * scripts/make-packaging-target.py: Delete file.
      * Jenkinsfile: Adjust accordingly.
      Change-Id: I2dc42b489a54b177ad038398a9d23a2a7e3007ec
  6. 20 Aug, 2021 3 commits
  7. 19 Aug, 2021 2 commits
  8. 16 Aug, 2021 1 commit
  9. 09 Aug, 2021 1 commit
  10. 30 Jul, 2021 1 commit
    • Maxim Cournoyer's avatar
      scripts: deploy: Upgrade to newer createrepo_c. · c2194e4c
      Maxim Cournoyer authored
      The old 'createrepo' has been deprecated and is no longer offered in
      current distributions.  Its replacement should be mostly backward
      * scripts/deploy-packages.sh: List requirements.
      (enabled)<createrepo>: Adjust to use createrepo_c'.
      Change-Id: Ie3e658dd1ea685558b07d6c9b969be7ad3a98050
  11. 23 Jul, 2021 1 commit
  12. 14 Jul, 2021 1 commit
  13. 13 Jul, 2021 1 commit
    • Maxim Cournoyer's avatar
      Jenkinsfile: Correctly set pipeline status on a build failure. · cc8569f3
      Maxim Cournoyer authored
      Otherwise the pipeline cannot be meaningfully used as a validation
      job, as it'd always return success, even upon encountering one or more
      build failures.
      * Jenkinsfile: In case a packaging target failed building, set the
      build result to failure.
      Change-Id: I47c8b09936b088b27a02173aa94a0adb0f04dcb4
  14. 06 Jul, 2021 1 commit
    • Maxim Cournoyer's avatar
      Makefile: Make the tarball release reproducible. · 09a5cd14
      Maxim Cournoyer authored
      * Makefile (TAR_REPRODUCIBILITY_OPTIONS): New variable.
      $(RELEASE_TARBALL_FILENAME): Invoke tar with the above options.
      Invoke gzip with '--no-name', to prevent keeping the file name and
      time stamp.
      Change-Id: I64cac307c69cbfbdb7132b1f567f1c3f18baad8c
  15. 30 Jun, 2021 1 commit
    • Maxim Cournoyer's avatar
      Jenkinsfile: Migrate properties to declarative options/triggers. · 60e5ba58
      Maxim Cournoyer authored
      Properties is a scripted pipeline concept and doesn't work correctly
      in the context of a *declarative* pipeline.
      * Jenkinsfile: Add 'ansicolor' to the list of requirements in the top
      (properties): Remove.
      (triggers): New directive.
      Change-Id: Idceff87a005a935ff6af2931fd0ed466d0e73911
  16. 29 Jun, 2021 2 commits
    • Maxim Cournoyer's avatar
      packaging: Adjust following the relocation of the ringtones. · 15dd42ec
      Maxim Cournoyer authored
      This is a follow up to the f0fb8148ba7f453d73e31e1cece2dcffae68e878
      commit (Use the PROGSHAREDIR macro to refer to the custom datadir) in
      the daemon, that moved the ringtones from a hard-coded location of
      /usr/share/ring/ringtones to $datadir/jami/ringtones.
      * packaging/rules/rpm/jami-daemon.spec (%files): Adjust accordingly.
      * scripts/install.sh (client_cmake_flags) <DRINGTONE_DIR>: Likewise.
      Change-Id: Ia9d3403f5600a4ab4eefe28ee20611afc3f5e8b0
    • Maxim Cournoyer's avatar
      packaging: Adjust for the 'dring' command renaming. · 5c3c23d5
      Maxim Cournoyer authored
      * build.py (run_run) <dring>: Adjust file name.
      * packaging/rules/rpm/jami-daemon.spec (%install): Likewise.
      Change-Id: Iedc4e0803bda19d139b29a4ccc669dcc8cc3fb9f
  17. 28 Jun, 2021 9 commits
    • Maxim Cournoyer's avatar
      Jenkinsfile: Partial deployment, follow up. · 27be9f50
      Maxim Cournoyer authored
      This is a follow up to commit 4ee93922, which introduced partial
      The unstash operation also needs to be handled specially, as it may
      now fail attempting to unstash an item that could not be stashed
      * Jenkinsfile ('Sign & deploy packages'): Skip target deployment when
      it fails to be unstashed.
      Change-Id: I59341e4c3bb007125402f4b28979d0e8e963757d
    • Maxim Cournoyer's avatar
      guix: manifest: Add libgit2. · a9ae457f
      Maxim Cournoyer authored
      Change-Id: I98725b2669b357fb86dc653cb7d7ead6f34cb355
    • Maxim Cournoyer's avatar
      packaging: Normalize debian/rules indentation. · 7be07615
      Maxim Cournoyer authored
      This change normalizes the hanging indent to 2 spaces.
      Change-Id: I98bd6919eae547b946af2c59a14cbee96ee50a9d
    • Maxim Cournoyer's avatar
      docker: Allow interrupting packaging jobs with C-c. · 420b205d
      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's avatar
      docker: Only copy the control files in the container. · 6f86ab42
      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's avatar
      packaging: Limit the number of parallel jobs when building Qt. · 78c6b88a
      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.
      (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's avatar
      build-package-rpm: Cache Qt tarball. · 3725c504
      Maxim Cournoyer authored
      Also make the script more readable by factoring out variables to avoid
      repeating ourselves.
      Change-Id: I30e85fb7b0a1207a8eff3a89d8c7ab4f455e0c4a
    • Maxim Cournoyer's avatar
      packaging: Do not install a ring.cx symbolic link. · f236d5f6
      Maxim Cournoyer authored
      Change-Id: Ib5ad6c091560f7fc4ee9734ca283e78c90d9d769
    • Maxim Cournoyer's avatar
      packaging: Deploy the Ubuntu debug symbol packages. · c9803565
      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
  18. 25 Jun, 2021 8 commits
    • Maxim Cournoyer's avatar
      packaging: Add OpenSUSE Leap 15.3. · 766ac63e
      Maxim Cournoyer authored
      Change-Id: I5cbc06d5f7b245bf49578914819a8154c9d2cd6e
    • Maxim Cournoyer's avatar
      packaging: Streamline jami-all.postinst script. · 8d3e1a4e
      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's avatar
      Jenkinsfile: Allow partial deployments. · 4ee93922
      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
      Change-Id: I5785d154f5e1963aa824576f7f0f62043446456a
    • Maxim Cournoyer's avatar
      Jenkinsfile: Specify the Gerrit triggers configuration as code. · 06b6cb35
      Maxim Cournoyer authored
      * Jenkinsfile (properties): New definition.
      GitLab: jami-packaging#98
      Change-Id: I3406f20027cafe8ab6a5743860b470d92e8455cb
    • Maxim Cournoyer's avatar
      Jenkinsfile: Add a deploy stage. · 27755242
      Maxim Cournoyer authored
      * Jenkinsfile (Deploy packages): New stage.
      GitLab: jami-packaging#98
      Change-Id: I36a555312e0569549316370878244c3267f8149a
    • Maxim Cournoyer's avatar
      Jenkinsfile: Add the ability to opt out of updating submodules. · 94f976b8
      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's avatar
      Jenkinsfile: Allow specifying packaging targets. · 854d54ba
      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's avatar
      packaging: Adjust jami-daemon.spec to use libexec. · 7138430e
      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