Skip to content
Snippets Groups Projects
  1. Jan 28, 2022
  2. Jan 14, 2022
    • Amin Bandali's avatar
      Bump Qt up to 6.2.2, add missing nodejs build-dep for libqt-jami · 880936d2
      Amin Bandali authored
      * Makefile (QT_PATCH): Bump up to 2.
      (QT_TARBALL_CHECKSUM): Update to Qt 6.2.2 release tarball's sha256sum.
      * docker/Dockerfile_ubuntu_18.04: Move the nodejs installation earlier
      in the Dockerfile, as it needs to already be installed by the time we
      want to install libqt-jami's build dependencies.
      * packaging/rules/debian-qt/control (libqt-jami) <Build-Depends>: Add
      missing nodejs (>= 10.19) dependency.
      
      jami-packaging#111
      Change-Id: Ie15a1f4c7cfb274dc6a1784ce41f5b7383002abe
      880936d2
  3. Jan 12, 2022
    • Maxim Cournoyer's avatar
      build: Use guix shell. · ebe0ec02
      Maxim Cournoyer authored and Sébastien Blin's avatar Sébastien Blin committed
      The recently introduced 'guix shell' command automatically manages a
      cached profile for us; prefer it to 'guix environment', and do away
      with a channels file, given fixes in Guix have now been incorporated
      in the main branch.
      
      * Makefile (portable-release-tarball)<guix environment>: Replace by
      'guix shell'.
      * build.py (run_dependencies)[guix]: Likewise, and do not use a
      channels.scm file.
      (run_install): Likewise, and provide a hint when TARBALLS is not set.
      * guix/channels.scm: Delete file.
      * guix/manifest.scm: Adjust comment.
      
      Change-Id: I50ca99e51f0ebca136c9bbc5a0ca3063075432b4
      ebe0ec02
  4. Jan 10, 2022
    • Maxim Cournoyer's avatar
      tarball: Rename top directory from ring-project to jami-project. · 21d9f320
      Maxim Cournoyer authored
      Change-Id: I2c7ae1349a69fb24f65ea435fa57fa7cc547c631
      Unverified
      21d9f320
    • Maxim Cournoyer's avatar
      Jenkinsfile: Publish release artifacts for release branches. · 0739ac22
      Maxim Cournoyer authored
      Previously, the Jenkinsfile did not publish anything except for the
      repositories: the release tarball would not get copied to
      https://dl.jami.net for stable channel, and no commit nor tag would be
      published for the release.
      
      This change addresses these shortcomings with the following changes:
      
      1. Tarballs can be published for the stable channel.
      2. Release commits/tags can be published to their corresponding
      branch (stable/nightly).
      
      The RELEASE_VERSION string is also once again derived in a
      deterministic fashion, from the date of the last commit.
      
      * Jenkinsfile (SSH_PRIVATE_KEY): Remove variable.
      (RING_PUBLIC_KEY_FINGERPRINT): Rename to...
      (JAMI_PUBLIC_KEY_FINGERPRINT): ... this.
      (GIT_USER_EMAIL, GIT_USER_NAME, GIT_PUSH_URL)
      (JENKINS_SSH_KEY, DL_SSH_KEY): New variables.
      (params.DEPLOY): Fix description.
      (Checkout channel branch): New stage.
      (Generate release tarball): Also commit and tag.
      (Publish release artifacts): New stage to publish conditionally based on the
      DEPLOY parameter and the selected channel.
      (Sign & deploy packages): Use the 'sshagent' step to setup SSH access.
      <--remote-ssh-identity-file>: Remove argument.
      <--keyid>: Adjust variable name.
      * scripts/deploy-packages.sh (package_snap): Simplify.
      
      Change-Id: I9008ecc2a4ef9820dbc96e26c966ae72110d897d
      Unverified
      0739ac22
  5. Dec 28, 2021
  6. Dec 07, 2021
  7. Nov 04, 2021
  8. Oct 22, 2021
    • Maxim Cournoyer's avatar
      packaging: Add the deb-pack-x86_64 and deb-pack-i686 targets. · 977919b9
      Maxim Cournoyer authored
      The deb-pack targets build a Guix pack of the jami-qt client in the
      .deb format, ready to be installed on any dpkg-based GNU/Linux
      distribution.
      
      * Makefile (RELEASE_VERSION, RELEASE_TARBALL_FILENAME): Export
      variables.
      (has-guix-p): New target, to be used as a predicate.
      (portable-release-tarball): Rewrite in terms of the above.
      (SUPPORTED_GNU_ARCHS, DEB_PACKS, DEB_PACK_TARGETS): New variables.
      (guix-pack-command, define-deb-pack-rule): Likewise.
      (deb-pack-x86_64, deb-pack-i686): New targets.
      (PACKAGE-TARGETS): Register them.
      * guix/guix-pack-manifest.scm: New file.
      * guix/guix-pack-deb.postinst: Likewise.
      * guix/manifest.scm: Specify qtbase to be at version 5, as Guix now
      has version 6 too.
      * packaging/rules/debian/jami-all.postinst: Harmonize.
      * scripts/deploy-packages.sh (package): Simplify and register the
      'guix-deb-pack' distribution.
      * Jenkinsfile (Sign & deploy packages): Simplify to deploy all the
      packages subdirectories.  This makes it easier to handle multi-arch
      packages for the same distribution, and removes the need to encode the
      distribution information in the target name.
      
      Change-Id: Id6f69e7a5872a39b4b8f50fa09c8ec3475e9c896
      Unverified
      977919b9
  9. Sep 29, 2021
  10. Aug 21, 2021
    • Maxim Cournoyer's avatar
      Makefile: Repatriate the definition of packaging targets. · 004fda67
      Maxim Cournoyer authored and Amin Bandali's avatar Amin Bandali committed
      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
      underscores.
      * 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
      004fda67
  11. Aug 20, 2021
  12. Aug 09, 2021
  13. Jul 06, 2021
    • 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
      Unverified
      09a5cd14
  14. Jun 28, 2021
    • 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
      Unverified
      420b205d
  15. May 25, 2021
    • 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
      Unverified
      566bd6e8
    • 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
      Unverified
      6e0a3002
  16. May 04, 2021
    • Maxim Cournoyer's avatar
      packaging: Add jami-libqt to the jami-all package. · 4e969701
      Maxim Cournoyer authored and Sébastien Blin's avatar Sébastien Blin committed
      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
  17. May 01, 2021
  18. Mar 31, 2021
  19. Feb 26, 2021
    • Maxim Cournoyer's avatar
      build: Add support to use cached tarballs for packaging targets. · 01bbc0cc
      Maxim Cournoyer authored
      Previously, the only way to ensure a clean release tarball was to
      start from scratch, fetching all the contrib sources from the
      network (> 1 GiB).  This change leverages the new 'list-tarballs'
      targets of the contrib build system to allow reusing the relevant
      tarballs from the cache when available, which translates to faster
      builds.
      
      It also constructs the pristine source release archive via
      git-archive, which guards against including unwanted files.  Since
      only the required tarballs are included in the source archive, its
      size is reduced from 1.4 GiB to 72 MiB.
      
      GitLab: jami-packaging#55
      Change-Id: I4993b269f3b97f6a4b6b8592aa8b5f4eb5448943
      Unverified
      01bbc0cc
    • Maxim Cournoyer's avatar
      packaging: Do not purge cached tarballs on every packaging target invocation. · a242f991
      Maxim Cournoyer authored
      Some tarballs are expensive to generate.  It's useful to be able to
      reuse those.  The cleanup is moved to the clean target.
      
      Change-Id: Ibe2b379be60dbb4b5c4eea9f0eeae4be84ccdb16
      Unverified
      a242f991
    • Maxim Cournoyer's avatar
      maint: Remove the qemu-static hack. · a233b433
      Maxim Cournoyer authored
      This hack is no longer necessary.  The Jenkins nodes are running Docker 19.
      
      Change-Id: I8e41e1295a49ebe48b2fca9fa6c91158f49f16c9
      Unverified
      a233b433
    • Maxim Cournoyer's avatar
      maint: Remove packaging files for EOL distributions. · 8462564e
      Maxim Cournoyer authored
      Debian 9 packaging is removed as well, not because it is EOL, but
      because it doesn't have the runtime required to run Jami (the daemon
      requires C++17 but GCC 6 in Debian stretch doesn't support it).
      
      A 'list-package-targets' Make target is also added; it'll be used by
      the CI.
      
      Change-Id: I87a26b14ea48bd17ebccb536f23a5f2637f28743
      Unverified
      8462564e
    • Maxim Cournoyer's avatar
      Rename Makefile.packaging to Makefile. · 627d63b9
      Maxim Cournoyer authored
      Rename Makefile.packaging to Makefile, as it's the only one.
      Makefile.packaging symlinks to it, to preserve backward compatibility
      for now.
      
      Change-Id: I136d01342e9779e9bb7a21b22dd10f54b6ac7064
      Unverified
      627d63b9
  20. Feb 05, 2021
  21. Feb 03, 2021
  22. Dec 09, 2020
  23. Nov 18, 2020
  24. Oct 22, 2020
  25. Oct 19, 2020
  26. Oct 09, 2020
  27. Apr 28, 2020
  28. Apr 17, 2020
  29. Jan 13, 2020
    • Fredy Pulido's avatar
      packaging: adds debian 10 and raspbian arm · b20faf61
      Fredy Pulido authored and Sébastien Blin's avatar Sébastien Blin committed
      Adds:
      * Debian 9 armhf
      * Debian 9 arm64
      * Debian 10 armhf
      * Debian 10 arm64
      * Raspbian 10 armhf
      * The One Click Install (oci) version for all this items
      
      This commit also fix the --generate option in the generated makefile by
      scripts/make-packaging-target.py and remove the --architecture option
      there because was not used at any part of the script.
      
      Because our builder docker can not docker build with ARM we implemented
      a workaround called dirty qemu-static is documented and we have a issue
      to sovle it.
      
      The pipeline for packaging-deploy-gnulinux-generic got changed to add
      the support for the ARM architecture but the OCI build is not enabled
      because the build including the oci takes long (5 hours or plus).
      
      Warning: require companion changes in daemon (topic debian-arm)
      to ensure the right compilation flags
      
      Change-Id: I905bbd4660824670d7de836129886f3d7f1dc83b
      b20faf61
  30. Nov 15, 2019
  31. Nov 14, 2019
Loading