diff --git a/packaging/rules/debian/control b/packaging/rules/debian/control index 72d443a375f86db82f6589a1d7b5954489692b58..7dd91c2f58cfd76654be8ec5c2ad387d8919c2c5 100644 --- a/packaging/rules/debian/control +++ b/packaging/rules/debian/control @@ -83,10 +83,12 @@ Package: jami Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - jami-libclient (=${binary:Version}), + jami-daemon (=${binary:Version}), libqt-jami (>= 6.2.3) Provides: jami-qt -Replaces: jami-all +Replaces: jami-all, + jami-libclient (<= 20220516.0214.9b42ad3~dfsg1-1) +Breaks: jami-libclient (<= 20220516.0214.9b42ad3~dfsg1-1) Conflicts: jami-all Description: Secure and distributed voice, video and chat platform - desktop client Jami (jami.net) is a secure and distributed voice, video and chat communication @@ -95,19 +97,15 @@ Description: Secure and distributed voice, video and chat platform - desktop cli . This package contains the jami-qt desktop client. +# Made into a transitional package on 2022-06-21, after libjamiclient +# was merged into src/libclient under jami-client-qt.git, to provide +# an upgrade path to existing users. Feel free to remove this package +# later into the future, some time after 2023-06-21 perhaps. Package: jami-libclient Architecture: any -Depends: ${shlibs:Depends}, - ${misc:Depends}, - jami-daemon (=${binary:Version}), - libqt-jami (>= 6.2.3) -Conflicts: jami-libclient-gnome -Description: Secure and distributed voice, video and chat platform - daemon - 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 - in the hands of the user. - . - This package contains the Jami client library, lrc, for the Qt client. +Description: transitional package for jami + This is a transitional package. Jami libclient has been merged into + the jami-qt client code-base, and this package can be safely removed. Package: jami-daemon Architecture: any diff --git a/packaging/rules/debian/rules b/packaging/rules/debian/rules index d5464d7035f0256b0d00d9e8fa249f1064e824e4..57f04daa8172790f05b65f76b10c235aec0a9802 100755 --- a/packaging/rules/debian/rules +++ b/packaging/rules/debian/rules @@ -24,7 +24,6 @@ endif # Binary package names JAMI_ALL_IN_ONE_PKG_NAME="jami-all" JAMI_CLIENT_PKG_NAME="jami" -JAMI_LIB_CLIENT_PKG_NAME="jami-libclient" JAMI_DAEMON_PKG_NAME="jami-daemon" # Bundled packages from contrib @@ -70,7 +69,7 @@ override_dh_auto_build: # Daemon contribs build + configure mkdir -p daemon/contrib/native cd daemon/contrib/native && \ - ../bootstrap \ + ../bootstrap \ --host=${HOST_ARCH} \ --disable-downloads \ --no-checksums \ @@ -96,76 +95,37 @@ override_dh_auto_build: make -C daemon -j$(NO_CPUS) V=1 pod2man daemon/man/jamid.pod > daemon/jamid.1 - # Libringclient configure - cd lrc && \ - 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 - # Qt client configure and build cd client-qt && \ mkdir build && \ cd build && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DLRC=$(CURDIR)/lrc \ + -DLIBJAMI_BUILD_DIR=$(CURDIR)/daemon/src \ + -DENABLE_LIBWRAP=true \ $(CMAKE_OPTIONS) .. make -C client-qt/build -j$(NO_CPUS) V=1 override_dh_auto_clean: - ####################### - ## Daemon clean ## - ####################### + # Daemon clean [ -f daemon/contrib/native/Makefile ] && \ make -C daemon/contrib/native distclean || true 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 - - ##################### - ## qt client clean ## - ##################### + # Qt client clean # CMake build system has no distclean target, so use clean. [ -f client-qt/build/Makefile ] && make -C client-qt/build clean || true rm -rfv client-qt/build override_dh_auto_install: - ######################### - ## Daemon install ## - ######################### + # Daemon install cd daemon && make DESTDIR=$(CURDIR)/debian/$(JAMI_DAEMON_PKG_NAME) install rm -rfv $(CURDIR)/debian/$(JAMI_DAEMON_PKG_NAME)/usr/include rm -rfv $(CURDIR)/debian/$(JAMI_DAEMON_PKG_NAME)/usr/lib/*.a rm -rfv $(CURDIR)/debian/$(JAMI_DAEMON_PKG_NAME)/usr/lib/*.la - ######################### - ## Jami client 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 - - # This is a symlink, should be in -dev package - rm -v $(CURDIR)/debian/$(JAMI_LIB_CLIENT_PKG_NAME)/usr/lib/libringclient.so - - # cmake files - rm -rfv $(CURDIR)/debian/$(JAMI_CLIENT_PKG_NAME)/usr/lib/cmake - - ## Qt client + # Qt client install cd client-qt/build && \ make DESTDIR=$(CURDIR)/debian/$(JAMI_CLIENT_PKG_NAME) install @@ -177,33 +137,18 @@ override_dh_auto_install: cp "$$file_name" "$(OCI_INSTALL_DIR)$$file_name"; \ done - ###################### - ## Jami AiO install ## - ###################### - ## daemon + # Jami all-in-one install + # Daemon cd daemon && make DESTDIR=$(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME) install rm -rfv $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/include rm -rfv $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/lib/*.a rm -rfv $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/lib/*.la - - ## LibRingClient - cd lrc/build && make DESTDIR=$(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME) install - rm -rfv $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/include - - # This is a symlink, should be in -dev package - rm -v $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/lib/libringclient.so - - # cmake files - rm -rfv $(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME)/usr/lib/cmake - - ## Qt client + # Qt client cd client-qt/build && \ make DESTDIR=$(CURDIR)/debian/$(JAMI_ALL_IN_ONE_PKG_NAME) install override_dh_shlibdeps: - dh_shlibdeps -- \ - -x$(JAMI_ALL_IN_ONE_PKG_NAME) \ - -x$(JAMI_LIB_CLIENT_PKG_NAME) + dh_shlibdeps -- -x$(JAMI_ALL_IN_ONE_PKG_NAME) tmpdir:= $(shell mktemp -d) workdir:= $(shell pwd) diff --git a/packaging/rules/rpm/jami-libclient.spec b/packaging/rules/rpm/jami-libclient.spec index d2c6d9c3c4e52d3b01dfcb7625c1b4f526eb82c9..003e311611c6f87f674480ba5118a16ae675c5a6 100644 --- a/packaging/rules/rpm/jami-libclient.spec +++ b/packaging/rules/rpm/jami-libclient.spec @@ -1,3 +1,8 @@ +# Made into a transitional package on 2022-06-21, after libjamiclient +# was merged into src/libclient under jami-client-qt.git, to provide +# an upgrade path to existing users. Feel free to remove this package +# later into the future, some time after 2023-06-21 perhaps. + %define name jami-libclient %define version RELEASE_VERSION %define release 0 @@ -5,84 +10,16 @@ Name: %{name} Version: %{version} Release: %{release}%{?dist} -Summary: Client library for Jami +Summary: Transitional package for Jami; can be safely removed 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, a free software for -universal communication which respects freedoms and privacy of its -users. - -%prep -%setup -n jami-project - -%build -# Configure and build bundled ffmpeg (for libavutil/avframe). -mkdir -p %{_builddir}/jami-project/daemon/contrib/native -cd %{_builddir}/jami-project/daemon/contrib/native && \ - ../bootstrap \ - --no-checksums \ - --disable-ogg \ - --disable-flac \ - --disable-vorbis \ - --disable-vorbisenc \ - --disable-speex \ - --disable-sndfile \ - --disable-gsm \ - --disable-speexdsp \ - --disable-natpmp && \ - make list && \ - make fetch && \ - make %{_smp_mflags} V=1 .ffmpeg -# Qt-related variables -cd %{_builddir}/jami-project/lrc && \ - 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/build %{_smp_mflags} V=1 - -%install -DESTDIR=%{buildroot} make -C lrc/build install +This is a transitional package. Jami libclient has been merged into +the jami-qt client code-base, and this package can be safely removed. +# Required, otherwise no rpm is generated. %files -%defattr(-,root,root,-) -%{_libdir}/libringclient.so.1.0.0 -%{_datadir}/libringclient - -%package devel -Summary: Development files of the Jami 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/packaging/rules/rpm/jami-qt.spec b/packaging/rules/rpm/jami-qt.spec index a05755d798be78fbbb1dc5e056a4010da042b8ac..411fb7badba44111374c2d41d98755165810d54f 100644 --- a/packaging/rules/rpm/jami-qt.spec +++ b/packaging/rules/rpm/jami-qt.spec @@ -11,10 +11,11 @@ License: GPLv3+ Vendor: Savoir-faire Linux URL: https://jami.net/ Source: jami_%{version}.tar.gz -Requires: jami-libclient = %{version} +Requires: jami-daemon = %{version} Requires: jami-libqt Provides: jami Obsoletes: jami < %{version}-%{release} +Obsoletes: jami-libclient <= 20220516.0214.9b42ad3-1 # Build dependencies. %if 0%{?fedora} >= 32 @@ -58,7 +59,9 @@ cd %{_builddir}/jami-project/daemon/contrib/native && \ # Qt-related variables cd %{_builddir}/jami-project/client-qt && \ mkdir build && cd build && \ - cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + cmake -DENABLE_LIBWRAP=true \ + -DLIBJAMI_BUILD_DIR=%{_builddir}/jami-project/daemon/src \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ -DCMAKE_BUILD_TYPE=Release \ .. @@ -77,4 +80,4 @@ DESTDIR=%{buildroot} make -C %{_builddir}/jami-project/client-qt/build install %{_datadir}/icons/hicolor/48x48/apps/jami.png %{_datadir}/pixmaps/jami.xpm %{_datadir}/metainfo/jami-qt.appdata.xml -%{_datadir}/ring/translations/* +%{_datadir}/jami/translations/* diff --git a/packaging/rules/snap/jami/snapcraft.yaml b/packaging/rules/snap/jami/snapcraft.yaml index 7e5d4431acdf1d7584c13b2c198f04ecf6dd86b3..0fc789f62384998b69698d40b0c8f6f7f4651659 100644 --- a/packaging/rules/snap/jami/snapcraft.yaml +++ b/packaging/rules/snap/jami/snapcraft.yaml @@ -283,27 +283,13 @@ parts: make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT DESTDIR=$SNAPCRAFT_PART_INSTALL make install - cd $SNAPCRAFT_PART_BUILD/lrc - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_PREFIX_PATH=$SNAPCRAFT_PART_INSTALL/usr \ - -DENABLE_STATIC=true -DENABLE_LIBWRAP=true \ - -DRING_BUILD_DIR=$SNAPCRAFT_PART_BUILD/daemon/src \ - -DQT6_VER=$QTVER -DQT6_PATH=$QTDIR - make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT - DESTDIR=$SNAPCRAFT_PART_INSTALL make install - - sed -i "s|/usr|$SNAPCRAFT_PART_INSTALL/usr|g" $SNAPCRAFT_PART_INSTALL/usr/lib/cmake/LibRingClient/LibRingClientConfig.cmake - cd $SNAPCRAFT_PART_BUILD/client-qt mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_PREFIX_PATH=$SNAPCRAFT_PART_INSTALL/usr \ - -DENABLE_STATIC=true \ - -DLRC=$SNAPCRAFT_PART_BUILD/lrc \ - -DLRCLIB=$SNAPCRAFT_PART_INSTALL/usr/lib \ + -DENABLE_STATIC=true -DENABLE_LIBWRAP=true \ \ + -DLIBJAMI_BUILD_DIR=$SNAPCRAFT_PART_BUILD/daemon/src \ -DQT6_VER=$QTVER -DQT6_PATH=$QTDIR make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT DESTDIR=$SNAPCRAFT_PART_INSTALL make install diff --git a/scripts/build-package-rpm.sh b/scripts/build-package-rpm.sh index ed4becf2c4ae1ff89cd4d02adcd8ce82574a4d1d..54b22a5fb76fb6ae334b7e5446824005ee7953c7 100755 --- a/scripts/build-package-rpm.sh +++ b/scripts/build-package-rpm.sh @@ -131,9 +131,10 @@ rpmdev-bumpspec --comment="Automatic nightly release" \ rpmbuild --define "debug_package %{nil}" -ba jami-daemon.spec rpm --install /root/rpmbuild/RPMS/x86_64/jami-daemon-* -# Build the client library, install it, and build the Qt client. +# Build the transitional libclient package. rpmbuild --define "debug_package %{nil}" -ba jami-libclient.spec -rpm --install /root/rpmbuild/RPMS/x86_64/jami-libclient-* + +# Build the Qt client. rpmbuild --define "debug_package %{nil}" -ba jami-qt.spec # Move the built packages to the output directory.