Skip to content
Snippets Groups Projects
  1. Aug 09, 2021
  2. 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
      09a5cd14
  3. 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
      420b205d
  4. 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
      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
      6e0a3002
  5. 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
  6. May 01, 2021
  7. Mar 31, 2021
  8. 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
      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
      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
      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
      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
      627d63b9
  9. Feb 05, 2021
  10. Feb 03, 2021
  11. Dec 09, 2020
  12. Nov 18, 2020
  13. Oct 22, 2020
  14. Oct 19, 2020
  15. Oct 09, 2020
  16. Apr 28, 2020
  17. Apr 17, 2020
  18. 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
  19. Nov 15, 2019
  20. Nov 14, 2019
  21. Nov 13, 2019
  22. Nov 12, 2019
  23. Nov 11, 2019
    • Fredy Pulido's avatar
      packaging: renaming packages from ring to jami · 553fef15
      Fredy Pulido authored
      This commit rename the tarball, debian, ubuntu and fedora packages.
      
      This commit also modify the debian post install script to add support
      our repositories for Debian 10 and Ubuntu 18.10 and 19.04 and create
      transition packages to ensure a proper nama transition in debian based
      distributions.
      
      Warning: when using reprepo to add the ring transition deb package
      this get into pool/main/j/jami. for now we think is a reprepo error
      because reads the Source: instead of Package: field.
      
      Change-Id: I47449a79c1a8bfd6ee0f3ffed618886f1dc1645a
      553fef15
  24. Nov 01, 2019
  25. Oct 31, 2019
  26. May 01, 2019
  27. Apr 29, 2019
  28. Apr 19, 2019
  29. Jan 02, 2019
  30. Nov 21, 2018
  31. Nov 08, 2018
  32. Aug 17, 2018
    • Hugo Lefeuvre's avatar
      packaging: different releases for website · cd58aca8
      Hugo Lefeuvre authored
      It has been decided that we would have different releases between
      website and apt repository. The version from the website would have
      debian revision -0 and the one from apt repositories -1.
      
      The main difference resides in the fact that the version from the
      website distributes a postinst script which installs key and apt
      source.list so that Ring gets automatically updated when installed
      via one click install. This is not the case with the one from apt
      repos.
      
      Change-Id: I7bbfdfa41b0133ebe93f16bc550aa437c8ddfa6a
      cd58aca8
Loading