diff --git a/Jenkinsfile b/Jenkinsfile index 91fb94028c9d0180544c6c4a30ddcb5f263adefd..7f58dfdc66c66beb5e28249785e03e83a86a33cc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -32,7 +32,7 @@ // - Allow publishing from any node, to avoid relying on a single machine. // Configuration globals. -def SUBMODULES = ['daemon', 'lrc', 'lrc-gnome', 'client-gnome', 'client-qt'] +def SUBMODULES = ['daemon', 'lrc', 'client-qt'] def TARGETS = [:] def REMOTE_HOST = env.SSH_HOST_DL_RING_CX def REMOTE_BASE_DIR = '/srv/repository/ring' diff --git a/Makefile b/Makefile index 59a7600328ac64ccd5a473ad9a243272529f84f3..9703ede77a54ad5c6cc0296b18a46c1d5adfed92 100644 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ $(RELEASE_TARBALL_FILENAME): tarballs.manifest rm -f "$@" mkdir $(TMPDIR)/jami-project git archive HEAD | tar xf - -C $(TMPDIR)/jami-project - for m in daemon lrc lrc-gnome client-gnome client-qt; do \ + for m in daemon lrc client-qt; do \ (cd "$$m" && git archive --prefix "$$m/" HEAD \ | tar xf - -C $(TMPDIR)/jami-project); \ done @@ -165,6 +165,7 @@ DISTRIBUTIONS := \ ubuntu_20.04 \ ubuntu_21.04 \ ubuntu_21.10 \ + ubuntu_22.04 \ fedora_33 \ fedora_34 \ fedora_35 \ diff --git a/client-qt b/client-qt index bef42fb1ce9b4cbd1418bae539d0ac8f75e8a590..92829ad3e14dc85cf20d1125ad9fda80887c8290 160000 --- a/client-qt +++ b/client-qt @@ -1 +1 @@ -Subproject commit bef42fb1ce9b4cbd1418bae539d0ac8f75e8a590 +Subproject commit 92829ad3e14dc85cf20d1125ad9fda80887c8290 diff --git a/daemon b/daemon index 0c98f2b1ffd8528ec26a0d4abc67a6de3067263a..dca2eaaa4bb672e3e7c2f69ad02c88c0af15c9a2 160000 --- a/daemon +++ b/daemon @@ -1 +1 @@ -Subproject commit 0c98f2b1ffd8528ec26a0d4abc67a6de3067263a +Subproject commit dca2eaaa4bb672e3e7c2f69ad02c88c0af15c9a2 diff --git a/docker/Dockerfile_ubuntu_18.04 b/docker/Dockerfile_ubuntu_18.04 index 62b3032c8a3ca4589dca44ccebe969a4f129530d..ecce72f6caf0e1c78cd340ee6a62b1d7a7c53d69 100644 --- a/docker/Dockerfile_ubuntu_18.04 +++ b/docker/Dockerfile_ubuntu_18.04 @@ -12,6 +12,7 @@ RUN apt-get update && \ g++-8 \ clang \ clang-tools \ + libarchive-dev \ software-properties-common \ libarchive-dev \ wget diff --git a/docker/Dockerfile_ubuntu_22.04 b/docker/Dockerfile_ubuntu_22.04 new file mode 100644 index 0000000000000000000000000000000000000000..957dd686756e476cc1ae999679b90ae2159c95cc --- /dev/null +++ b/docker/Dockerfile_ubuntu_22.04 @@ -0,0 +1,29 @@ +FROM ubuntu:22.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get clean +RUN apt-get update && \ + apt-get install -y -o Acquire::Retries=10 \ + devscripts \ + equivs \ + python-is-python3 \ + wget + +ADD scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh + +COPY packaging/rules/debian-qt/control /tmp/builddeps/debian/control +RUN /opt/prebuild-package-debian.sh qt-deps + +COPY packaging/rules/debian/control /tmp/builddeps/debian/control +RUN /opt/prebuild-package-debian.sh jami-deps + +# Install CMake 3.19 for Qt 6 +ADD scripts/install-cmake.sh /opt/install-cmake.sh +RUN /opt/install-cmake.sh +# nodejs +RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - +RUN apt install nodejs -y + +ADD scripts/build-package-debian.sh /opt/build-package-debian.sh +CMD ["/opt/build-package-debian.sh"] diff --git a/lrc b/lrc index 0c88ebafe0f640afd74c215533f9315f171e0d8d..492ff0fec3f9f880a923faaae9ca112e560109c9 160000 --- a/lrc +++ b/lrc @@ -1 +1 @@ -Subproject commit 0c88ebafe0f640afd74c215533f9315f171e0d8d +Subproject commit 492ff0fec3f9f880a923faaae9ca112e560109c9 diff --git a/packaging/rules/debian/control b/packaging/rules/debian/control index f8219c37711c305add456b6bf414cba738c4d7c9..420a851ce09f1fbff9e46ed3e8591876f39b9858 100644 --- a/packaging/rules/debian/control +++ b/packaging/rules/debian/control @@ -86,8 +86,7 @@ Conflicts: jami, libqt-jami Description: One-click install package for Jami This package only exists to provide an easy installation user experience. - To install the default client, install the 'jami' package. To install - the GNOME client, install the 'jami-gnome' package. + To install the default client, install the 'jami' package. Package: jami Architecture: any @@ -109,7 +108,8 @@ Package: jami-gnome Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - jami-libclient-gnome (=${binary:Version}) + jami-libclient-gnome (=${binary:Version}), + libqt-jami (>= 6.2.3) Description: Secure and distributed voice, video and chat platform - desktop client Jami (jami.net) is a secure and distributed voice, video and chat communication platform that requires no centralized server and leaves the power of privacy diff --git a/packaging/rules/debian/jami-all.postinst b/packaging/rules/debian/jami-all.postinst index e2267b10c0023e25f2e7964f2c242852c4673ab9..28a72969449bec76cdbba16118e9eb22be51b910 100755 --- a/packaging/rules/debian/jami-all.postinst +++ b/packaging/rules/debian/jami-all.postinst @@ -105,6 +105,8 @@ if [ -f /etc/os-release ]; then ENDTAG="ubuntu_21.04" elif [ "${UBUNTU_CODENAME}" = "impish" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.10" ]; then ENDTAG="ubuntu_21.10" + elif [ "${UBUNTU_CODENAME}" = "jammy" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_22.04" ]; then + ENDTAG="ubuntu_22.04" elif [ "${ID}" = "debian" ] && \ [ "$(command -v lsb_release)" ] && \ [ "$(lsb_release -rs)" = "testing" ]; then diff --git a/packaging/rules/debian/rules b/packaging/rules/debian/rules index 5d1b451c025c56af9d9dd6191f286a631e0fa66d..7759146bc45de767527e61474cf9f3df7c99f03b 100755 --- a/packaging/rules/debian/rules +++ b/packaging/rules/debian/rules @@ -24,9 +24,7 @@ endif # Binary package names JAMI_ALL_IN_ONE_PKG_NAME="jami-all" JAMI_CLIENT_PKG_NAME="jami" -JAMI_CLIENT_GNOME_PKG_NAME="jami-gnome" JAMI_LIB_CLIENT_PKG_NAME="jami-libclient" -JAMI_LIB_CLIENT_GNOME_PKG_NAME="jami-libclient-gnome" JAMI_DAEMON_PKG_NAME="jami-daemon" # Bundled packages from contrib @@ -36,7 +34,7 @@ ifeq (debian_10,$(findstring debian_10, $(DISTRIBUTION))) BUNDLED_PKGS="--disable-libarchive" endif ifeq (ubuntu_18.04,$(findstring ubuntu_18.04, $(DISTRIBUTION))) -# Daemon's bundled libarchive does not build on Debian 10 +# Daemon's bundled libarchive does not build on Ubuntu 18.04 BUNDLED_PKGS="--disable-libarchive" endif ifeq (raspbian_10_armhf,$(findstring raspbian_10_armhf, $(DISTRIBUTION))) @@ -109,38 +107,9 @@ override_dh_auto_build: -DCMAKE_INSTALL_LIBDIR=lib \ $(CMAKE_OPTIONS) .. - # Libringclient configure (for GNOME client) - cd lrc-gnome && \ - mkdir build && \ - cd build && \ - cmake \ - -DRING_BUILD_DIR=$(CURDIR)/daemon/src \ - -DENABLE_LIBWRAP=true \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - $(CMAKE_OPTIONS) .. - # libringclient build make -C lrc/build -j$(NO_CPUS) V=1 - # libringclient build (for GNOME client) - make -C lrc-gnome/build -j$(NO_CPUS) V=1 - - # GNOME client configure - cd client-gnome && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DLibRingClient_PROJECT_DIR=/$(CURDIR)/lrc-gnome \ - -DGSETTINGS_LOCALCOMPILE=OFF \ - $(CMAKE_OPTIONS) .. - - # GNOME client build - cd client-gnome/web && \ - for f in ../../lrc-gnome/src/web-chatview/*.*; do ln -sf "$$f" .; done - make -C client-gnome/build LDFLAGS="-lpthread" -j$(NO_CPUS) V=1 - # Qt client configure and build cd client-qt && \ mkdir build && \ @@ -160,23 +129,6 @@ override_dh_auto_clean: rm -rfv daemon/contrib/native rm -rfv daemon/jamid.1 - ######################### - ## libringclient clean ## - ######################### - # CMake build system has no distclean target, so use clean. - [ -f lrc/build/Makefile ] && make -C lrc/build clean || true - rm -rfv lrc/build - [ -f lrc-gnome/build/Makefile ] && make -C lrc-gnome/build clean || true - rm -rfv lrc-gnome/build - - ########################### - ##### gnome client clean ## - ########################### - # CMake build system has no distclean target, so use clean. - [ -f client-gnome/build/Makefile ] && \ - make -C client-gnome/build clean || true - rm -rfv client-gnome/build - ##################### ## qt client clean ## ##################### @@ -199,22 +151,13 @@ override_dh_auto_install: ## LibRingClient cd lrc/build && make DESTDIR=$(CURDIR)/debian/$(JAMI_LIB_CLIENT_PKG_NAME) install rm -rfv $(CURDIR)/debian/$(JAMI_LIB_CLIENT_PKG_NAME)/usr/include - ## LibRingClient (for GNOME client) - cd lrc-gnome/build && make DESTDIR=$(CURDIR)/debian/$(JAMI_LIB_CLIENT_GNOME_PKG_NAME) install - rm -rfv $(CURDIR)/debian/$(JAMI_LIB_CLIENT_GNOME_PKG_NAME)/usr/include # This is a symlink, should be in -dev package rm -v $(CURDIR)/debian/$(JAMI_LIB_CLIENT_PKG_NAME)/usr/lib/libringclient.so - rm -v $(CURDIR)/debian/$(JAMI_LIB_CLIENT_GNOME_PKG_NAME)/usr/lib/libringclient.so # cmake files rm -rfv $(CURDIR)/debian/$(JAMI_CLIENT_PKG_NAME)/usr/lib/cmake - ## GNOME client - cd client-gnome/build && \ - make DESTDIR=$(CURDIR)/debian/$(JAMI_CLIENT_GNOME_PKG_NAME) install - rm -rfv $(CURDIR)/debian/$(JAMI_CLIENT_GNOME_PKG_NAME)/usr/bin/jami - ## Qt client cd client-qt/build && \ make DESTDIR=$(CURDIR)/debian/$(JAMI_CLIENT_PKG_NAME) install @@ -251,7 +194,10 @@ override_dh_auto_install: make DESTDIR=$(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME) install override_dh_shlibdeps: - dh_shlibdeps -- -x$(JAMI_ALL_IN_ONE_PKG_NAME) + dh_shlibdeps -- \ + -x$(JAMI_ALL_IN_ONE_PKG_NAME) \ + -x$(JAMI_LIB_CLIENT_PKG_NAME) \ + -x$(JAMI_LIB_CLIENT_GNOME_PKG_NAME) tmpdir:= $(shell mktemp -d) workdir:= $(shell pwd) diff --git a/packaging/rules/rpm/jami-gnome.spec b/packaging/rules/rpm/jami-gnome.spec deleted file mode 100644 index 4f9f7284ffe947c3a8c4a18a708ccbfe445d1741..0000000000000000000000000000000000000000 --- a/packaging/rules/rpm/jami-gnome.spec +++ /dev/null @@ -1,69 +0,0 @@ -%define name jami-gnome -%define version RELEASE_VERSION -%define release 0 - -Name: %{name} -Version: %{version} -Release: %{release}%{?dist} -Summary: GNOME desktop client for Jami -Group: Applications/Internet -License: GPLv3+ -Vendor: Savoir-faire Linux -URL: https://jami.net/ -Source: jami_%{version}.tar.gz -Requires: jami-libclient-gnome = %{version} - -# Build dependencies. -BuildRequires: make -BuildRequires: gettext-devel - -# Build and runtime dependencies. -BuildRequires: glib2-devel -%if 0%{?fedora} >= 32 -BuildRequires: gcc -BuildRequires: cmake -BuildRequires: dbus-devel -BuildRequires: libnotify-devel -BuildRequires: libappindicator-gtk3-devel -BuildRequires: webkitgtk4-devel -%endif -BuildRequires: clutter-devel -BuildRequires: clutter-gtk-devel -BuildRequires: gtk3-devel -BuildRequires: libcanberra-devel -BuildRequires: qrencode-devel - -%description -This package contains the GNOME desktop client of Jami. Jami is a free -software for universal communication which respects freedoms and -privacy of its users. - -%prep %setup -n jami-project - -%build -cd %{_builddir}/jami-project/client-gnome && \ - mkdir build && cd build && \ - cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ - -DCMAKE_BUILD_TYPE=Debug \ - -DGSETTINGS_LOCALCOMPILE=OFF \ - .. -make -C %{_builddir}/jami-project/client-gnome/build \ - LDFLAGS="-lpthread" %{_smp_mflags} V=1 - -%install -DESTDIR=%{buildroot} make -C %{_builddir}/jami-project/client-gnome/build install -# Only keep /bin/jami-gnome for the GNOME client. -rm -rfv %{buildroot}/%{_bindir}/jami - -%files -%defattr(-,root,root,-) -%{_bindir}/jami-gnome -%{_datadir}/applications/jami-gnome.desktop -%{_datadir}/glib-2.0/schemas/net.jami.Jami.gschema.xml -%{_datadir}/icons/hicolor/scalable/apps/jami-gnome.svg -%{_datadir}/icons/hicolor/scalable/apps/jami-gnome-new.svg -%{_datadir}/jami-gnome -%{_datadir}/locale/* -%{_datadir}/metainfo/jami-gnome.appdata.xml -%{_datadir}/sounds/jami-gnome diff --git a/packaging/rules/rpm/jami-libclient-gnome.spec b/packaging/rules/rpm/jami-libclient-gnome.spec deleted file mode 100644 index 91dd86550dab8c07db2235d75c8abb99dd68d526..0000000000000000000000000000000000000000 --- a/packaging/rules/rpm/jami-libclient-gnome.spec +++ /dev/null @@ -1,71 +0,0 @@ -%define name jami-libclient-gnome -%define version RELEASE_VERSION -%define release 0 - -Name: %{name} -Version: %{version} -Release: %{release}%{?dist} -Summary: Client library for Jami GNOME -Group: Applications/Internet -License: GPLv3+ -Vendor: Savoir-faire Linux -URL: https://jami.net/ -Source: jami_%{version}.tar.gz -Requires: jami-daemon = %{version} - -# Build dependencies -BuildRequires: jami-daemon-devel = %{version} -Requires: jami-libqt -BuildRequires: make -%if 0%{?fedora} >= 32 -BuildRequires: NetworkManager-libnm-devel -BuildRequires: cmake -BuildRequires: gcc-c++ -%endif - -%description -This package contains the client library of Jami GNOME, a free -software for universal communication which respects freedoms and -privacy of its users. - -%prep -%setup -n jami-project - -%build -# Qt-related variables -cd %{_builddir}/jami-project/lrc-gnome && \ - mkdir build && cd build && \ - cmake -DRING_BUILD_DIR=%{_builddir}/jami-project/daemon/src \ - -DENABLE_LIBWRAP=true \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ - -DCMAKE_BUILD_TYPE=Release \ - .. -make -C %{_builddir}/jami-project/lrc-gnome/build %{_smp_mflags} V=1 - -%install -DESTDIR=%{buildroot} make -C lrc-gnome/build install - -%files -%defattr(-,root,root,-) -%{_libdir}/libringclient.so.1.0.0 -%{_datadir}/libringclient - -%package devel -Summary: Development files of the Jami GNOME client library - -%description devel -This package contains the header files and the unversioned shared -library for developing with the Jami client library. - -%files devel -%{_includedir}/libringclient -%{_libdir}/cmake/LibRingClient -# The following is a symbolic link. -%{_libdir}/libringclient.so - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig diff --git a/scripts/build-package-rpm.sh b/scripts/build-package-rpm.sh index 82644546019b99be898e489f31ba937e1f28e3fb..e43130d0731892ae0eafdde5636edd1a831e6401 100755 --- a/scripts/build-package-rpm.sh +++ b/scripts/build-package-rpm.sh @@ -132,13 +132,6 @@ rpmbuild --define "debug_package %{nil}" -ba jami-libclient.spec rpm --install /root/rpmbuild/RPMS/x86_64/jami-libclient-* rpmbuild --define "debug_package %{nil}" -ba jami-qt.spec -# Uninstall the client library, build and install the client library -# version specific to the GNOME client, and build the GNOME client. -rpm --erase $(rpm --query --all 'jami-libclient*') -rpmbuild --define "debug_package %{nil}" -ba jami-libclient-gnome.spec -rpm --install /root/rpmbuild/RPMS/x86_64/jami-libclient-gnome-* -rpmbuild --define "debug_package %{nil}" -ba jami-gnome.spec - # Move the built packages to the output directory. mv /root/rpmbuild/RPMS/*/* /opt/output touch /opt/output/.packages-built diff --git a/scripts/update-submodules.sh b/scripts/update-submodules.sh index 6c565e03113cccff19f13afd464630c67771c32b..4b787c39698f135909d40dc80390626e61ce4021 100755 --- a/scripts/update-submodules.sh +++ b/scripts/update-submodules.sh @@ -2,7 +2,6 @@ git submodule foreach "git pull origin master" git add client-android \ - client-gnome \ client-ios \ client-macosx \ client-qt \