1. 25 May, 2021 10 commits
    • 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
      e098ac56
    • Maxim Cournoyer's avatar
      build.py: Add a clean action. · 6b364a9f
      Maxim Cournoyer authored
      Change-Id: Iba8aac10fa36e4404b07beab9dfe9ed3d8c5c1a2
      6b364a9f
    • 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
      2f250c14
    • 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
      1551a85e
    • Maxim Cournoyer's avatar
      build.py: Streamline the gdb invocation. · d0342d2e
      Maxim Cournoyer authored
      There is no gdb.gdb init file in the repo, never was.
      
      Change-Id: Ia1020ff037b5c6f36143cf63816027b0878f5b78
      d0342d2e
    • 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
      f69e9fa2
    • 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 the tarball and build.
      
      GitLab: jami-packaging#98
      Change-Id: I13088b75c9ccd5166662a84b7c5f8d4e8b7b65da
      566bd6e8
    • 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
      f79926bd
    • 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
      9d5387f0
    • 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
      6e0a3002
  2. 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
      upstreams.
      
      * scripts/make-packaging-target.py
      (DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS): New variable.
      [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
      7e29582b
    • 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
      8bac4661
    • 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
      b87dfe4c
  3. 17 May, 2021 1 commit
  4. 13 May, 2021 4 commits
  5. 12 May, 2021 4 commits
  6. 11 May, 2021 1 commit
  7. 04 May, 2021 4 commits
    • Amin Bandali's avatar
      snap: update the jami-gnome svg icon file name · 484218d5
      Amin Bandali authored
      Change-Id: I51f28ee6e8d739ee73a775e4421e47e34aede336
      484218d5
    • Sébastien Blin's avatar
      misc: final cleanup for opensuse and debian · 47c61dff
      Sébastien Blin authored
      Change-Id: I07cf920ed99f460bffe1d8a16f3444706f4572c3
      47c61dff
    • Sébastien Blin's avatar
      ubuntu: package client-qt on 21.04 · 6cd87423
      Sébastien Blin authored
      Change-Id: Iaf5f84533e2eb6d7efc9f52b1aab3846152d9ae8
      6cd87423
    • Maxim Cournoyer's avatar
      packaging: Add jami-libqt to the jami-all package. · 4e969701
      Maxim Cournoyer authored
      This makes the current 'jami-all' package the one used for the
      one-click install package.
      
      * packaging/rules/debian/rules (OCI_INSTALL_DIR): New variable.
      (override_dh_auto_install): Extend rule to install the files of the
      jami-libqt package.  Do not include the jami-gnome in jami-all.
      * packaging/rules/debian/control (jami-all): Update description.
      * packaging/rules/debian-one-click-install: Delete directory.
      * packaging/rules/debian-one-click-install/jami-all.postinst: Move to ...
      * packaging/rules/debian/jami-all.postinst: ... here.
      * scripts/make-packaging-target.py: Remove all OCI-specific targets.
      * scripts/deploy-packages.sh (package_deb) [jami-all]: Do not add
      package to the apt repository.
      [manual-download]: Look for the jami-all package from the main
      distribution directory, not in a '_oci' suffixed version.
      
      GitLab: jami-client-qt#263
      Change-Id: I4cacf26355c767d1c77b1ce478b184023481b674
      4e969701
  8. 01 May, 2021 7 commits
    • Maxim Cournoyer's avatar
      maint: Completely get rid of OVERRIDE_PACKAGING_DIR. · 7ae79f80
      Maxim Cournoyer authored
      This is a follow-up to commit
      47b1b0151d6c3703ee25c0050cd2031ab7edae4c, which removed it from the
      make-packaging-target.py script.
      
      * docker/Dockerfile_debian_10: Remove support code for
      OVERRIDE_PACKAGING_DIR.
      * docker/Dockerfile_debian_10_arm64: Likewise.
      * docker/Dockerfile_debian_10_armhf: Likewise.
      * docker/Dockerfile_debian_10_i386: Likewise.
      * docker/Dockerfile_debian_10_qt: Likewise.
      * docker/Dockerfile_ubuntu_18.04: Likewise.
      * docker/Dockerfile_ubuntu_18.04_i386: Likewise.
      * docker/Dockerfile_ubuntu_18.04_qt: Likewise.
      * docker/Dockerfile_ubuntu_18.04_qt_i386: Likewise.
      * docker/Dockerfile_ubuntu_20.04: Likewise.
      * docker/Dockerfile_ubuntu_20.04_qt: Likewise.
      * docker/Dockerfile_ubuntu_20.10: Likewise.
      * docker/Dockerfile_ubuntu_20.10_qt: Likewise.
      * scripts/build-package-debian-qt.sh: Likewise.
      * scripts/build-package-debian.sh: Likewise.
      
      Change-Id: Ia15961fe1ccc05222d43da2bdded819f95315aae
      7ae79f80
    • Maxim Cournoyer's avatar
      maint: Fix typos, shebang and simplify a conditional. · 98b22dff
      Maxim Cournoyer authored
      * scripts/deploy-packages.sh: Use /usr/bin/env as the shebang as it is
      more susceptible to work on all systems (e.g. Guix System).  Fix typo
      in header comment.
      (package_deb) [qt]: Use a Bash regexp test and an if instead of a case.
      
      Change-Id: Ifa986ddb3bcbea8bacc6af8e510dc64b938588f4
      98b22dff
    • Maxim Cournoyer's avatar
      maint: Fix typo in deploy script. · c20cb478
      Maxim Cournoyer authored
      Via: sed 's/REPOSITOIRY/REPOSITORY/g'. scripts/deploy-packages.sh
      Change-Id: I875ce951e7696f8778acea80b994e95435990f85
      c20cb478
    • Maxim Cournoyer's avatar
      maint: Cleanup debian control file. · 1e59bef6
      Maxim Cournoyer authored
      Remove commented code and deprecated packages (it's bee more than a
      year).
      
      Change-Id: Ie7224c831405c07a33018ccc951a73bc05a93599
      1e59bef6
    • Maxim Cournoyer's avatar
      maint: Remove debian_packaging_override arguments. · e93afd48
      Maxim Cournoyer authored
      These are no longer supported by the script and cause errors.
      
      * scripts/make-packaging-target.py (run_generate_all)
      [debian_packaging_override]: Remove arguments.
      
      Change-Id: I5211a8f6e67cd52e1e1a136acf1e58fbe37ec76b
      e93afd48
    • Amin Bandali's avatar
      debian: build and package client-qt · 6d0caec2
      Amin Bandali authored
      Also remove unused DEBIAN_PACKAGING_OVERRIDE.
      
      Change-Id: Ida109a811bebd1fb46fd1a8b90fb5463518382c0
      6d0caec2
    • Amin Bandali's avatar
      debian: build and package our own Qt · 019583c0
      Amin Bandali authored
      Change-Id: I983607f226476c32a6862a41b55ca1b13a2c010b
      019583c0
  9. 30 Apr, 2021 6 commits