1. 25 Jun, 2021 4 commits
    • 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
  2. 09 Jun, 2021 1 commit
  3. 08 Jun, 2021 1 commit
    • Amin Bandali's avatar
      packaging: simplify build of libqt-jami deb packages · 027bd5e2
      Amin Bandali authored and Sébastien Blin's avatar Sébastien Blin committed
      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
  4. 04 Jun, 2021 2 commits
    • Adrien Béraud's avatar
      remove obsolete repo · 8b900aa8
      Adrien Béraud authored
      Change-Id: Icf5de11a027f9a66b7edbd108be69f9b5d4838bf
    • Amin Bandali's avatar
      packaging: fix snap build · a392a4af
      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
  5. 03 Jun, 2021 1 commit
  6. 02 Jun, 2021 2 commits
  7. 01 Jun, 2021 1 commit
  8. 27 May, 2021 2 commits
  9. 25 May, 2021 13 commits
    • Maxim Cournoyer's avatar
      build.py: Add support for Guix. · e55531c9
      Maxim Cournoyer authored and Maxim Cournoyer's avatar Maxim Cournoyer committed
      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
      Change-Id: I1bf0c9f3f9c08361b9016fe04581902ec27f2312
    • Maxim Cournoyer's avatar
      build.py: Build with verbosity. · f47e94cb
      Maxim Cournoyer authored
      Seeing which commands are executed during the build is useful to debug
      when something goes wrong.
      Change-Id: I2acec49b519c9070fbfa2d18d14e2b459c9bc76f
    • Maxim Cournoyer's avatar
      scripts: Reduce code duplication for the install.sh script. · 2a0cb09a
      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's avatar
      build.py: Do not rebuild the daemon every time. · e098ac56
      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's avatar
      build.py: Add a clean action. · 6b364a9f
      Maxim Cournoyer authored
      Change-Id: Iba8aac10fa36e4404b07beab9dfe9ed3d8c5c1a2
    • Maxim Cournoyer's avatar
      build.py: Build contribs with multiple cores and with debug symbols. · 2f250c14
      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's avatar
      scripts: Do not hard-code /bin/bash. · 1551a85e
      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
    • Maxim Cournoyer's avatar
      build.py: Streamline the gdb invocation. · d0342d2e
      Maxim Cournoyer authored and Maxim Cournoyer's avatar Maxim Cournoyer committed
      There is no gdb.gdb init file in the repo, never was.
      Change-Id: Ia1020ff037b5c6f36143cf63816027b0878f5b78
    • Maxim Cournoyer's avatar
      build.py: Allow skipping the operating system check. · f69e9fa2
      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's avatar
      ci: Spread builds across multiple nodes. · 566bd6e8
      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 t...
    • Maxim Cournoyer's avatar
      Jenkinsfile: Add parameters to allow skipping Qt, ARM packages. · f79926bd
      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's avatar
      packaging: debian: Do not alter the source tarball. · 9d5387f0
      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
    • Maxim Cournoyer's avatar
      build: Improvements to the generation of the release tarballs. · 6e0a3002
      Maxim Cournoyer authored
      The phony tarball-producing targets will now always clear the
      tarballs.manifest file before generating a new release tarball,
      ensuring it doesn't contain stale information.
      A new 'portable-release-tarball' target is also added to offer an easy
      to use target that was previously implemented ad-hoc in the CI.  Move
      this logic here as a portable release tarball is useful for packagers
      wanting to test locally with the various supported platforms.  The
      Jenkinsfile now makes use of it.
      * Makefile (daemon/contrib/native/Makefile): New target.
      (tarballs.manifest): Add the above target as a prerequisite and remove
      invocation to bootstrap script.  Invoke make with --no-print-directory
      to prevent entering/leaving directory messages from appearing in the
      output (it's supposed to be on when using --silent, but when the make
      invocation is nested, it doesn't seem to be the case).
      (release-tarball): Also clear the tarballs.manifest when invoked.
      (purge-release-tarballs, portable-release-tarball): New targets.
      * guix/minimal-manifest.scm: New file.
      * Jenkinsfile ('Generate release tarball): Use it to spawn the
      container used to build the release tarball.  Also expose /usr/bin/env
      in the container.  Use the new 'portable-release-tarball' target to
      simplify things.  Fix the shebang line; it needs to be the first line
      of the script.
      GitLab: jami-packaging#98
      Change-Id: I3b55e25933108ae9930bc9fcc867f9fa51d796f2
  10. 21 May, 2021 3 commits
    • Maxim Cournoyer's avatar
      packaging: Remove unused targets. · 7e29582b
      Maxim Cournoyer authored
      This further reduces the targets set to what the CI currently uses.
      The native ARM (armhf, aarch64) builds are dropped as we are not
      equipped in terms of native hardware to build them and QEMU user
      emulation is too slow.  The remaining i386 builds are removed as they
      are not used by the CI and have or are being phased out by their
      * scripts/make-packaging-target.py
      [debian_10]: Use it.
      [debian_10_i386, debian_10_armhf, debian_10_arm64]
      [ubuntu_18.04_i386, ubuntu_18.04_qt_i386]: Delete targets.
      [rhel_8]: Comment out target for now.
      [debian_testing]: Use the above variable.
      [ubuntu_20.04, ubuntu_20.10, ubuntu_21.04]: Likewise.
      * docker/Dockerfile_debian_10_arm64: Delete file.
      * docker/Dockerfile_debian_10_armhf: Likewise.
      * docker/Dockerfile_debian_10_i386: Likewise.
      * docker/Dockerfile_ubuntu_18.04_i386: Likewise.
      * docker/Dockerfile_ubuntu_18.04_qt_i386: Likewise.
      Change-Id: Iabb840e7f9a2111afe822e2c05797a651d55e21d
    • Maxim Cournoyer's avatar
      doc: Replace mentions of make-ring.py by build.py. · 8bac4661
      Maxim Cournoyer authored
      * README.rst <make-ring.py>: Replace by build.py.
      * docs/source/dev/compiling_and_installing/ring-project.rst: Likewise.
      * build.py: Replace 'Ring' by 'Jami'.
      Change-Id: I0231ddf541b2622f6042a12ed3ac7ad724b317ae
    • Maxim Cournoyer's avatar
      build: package-snap: Default SNAP_PKG_NAME to 'jami'. · b87dfe4c
      Maxim Cournoyer authored
      This variable is set on the CI; it's nice to have it default to
      something rather than fail.
      * scripts/make-packaging-target.py (run_generate_all): Expand
      SNAP_PKG_NAME to 'jami' if unset or null.
      Change-Id: Iacc6edd62388c0e803928863e6e53ddd7314379a
  11. 17 May, 2021 1 commit
  12. 13 May, 2021 4 commits
  13. 12 May, 2021 4 commits
  14. 11 May, 2021 1 commit