diff --git a/client-android b/client-android index f70d069b82c5596471648f7b6d00c8decc80f75e..281b3dcc80726f0d5fc55088893e4d051bf9e8e4 160000 --- a/client-android +++ b/client-android @@ -1 +1 @@ -Subproject commit f70d069b82c5596471648f7b6d00c8decc80f75e +Subproject commit 281b3dcc80726f0d5fc55088893e4d051bf9e8e4 diff --git a/daemon b/daemon index aa549795b3dfaac8d9fd04c788f2e70464848617..5da0510d58d2358a762c056fd09e2b8610bf077f 160000 --- a/daemon +++ b/daemon @@ -1 +1 @@ -Subproject commit aa549795b3dfaac8d9fd04c788f2e70464848617 +Subproject commit 5da0510d58d2358a762c056fd09e2b8610bf077f diff --git a/packaging/rules/opensuse-leap/jami-all.postinst b/packaging/rules/opensuse-leap/jami-all.postinst new file mode 100755 index 0000000000000000000000000000000000000000..c6846e1841ddc19eeb1f796a2a560b1b88167c6a --- /dev/null +++ b/packaging/rules/opensuse-leap/jami-all.postinst @@ -0,0 +1,147 @@ +#!/bin/sh -e + + +############################################################################### +# JAMI PACKAGE POSTINST # +# # +# Install Jami's package repository to the trusted sources and add Jami's # +# release key to trusted keyring. # +# # +############################################################################### + + +############################################################################### +# [1] Configuration # +############################################################################### + +# All package repo urls are expected to start with this string, regardless +# of the distribution or version. The end tag is automatically appended, +# depending on the system the postinst script is run on. +# +# To update the appended end tags, modify the switch in [2]. +# FIXME As soon as the repo get renamed to /nightly fix this url +JAMI_REPO_BASE="https://dl.jami.net/ring-nightly" + +# Jami release key. +JAMI_KEY_FINGERPRINT="A295D773307D25A33AE72F2F64CD5FA175348F84" +JAMI_KEY="\ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +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 +4sRdAfS333T4Uifq4uOu +=s2aQ +-----END PGP PUBLIC KEY BLOCK-----" + +# System paths and generated variables +# In general: you will not need toopensuse-leap modify these variables. +# WARNING: When modifying the paths, keep in mind that the corresponding +# postrm paths should be modified as well +REPO_FILE="/etc/yum.repos.d/jami-main.repo" +GPG_FILE="/etc/pki/rpm-gpg/RPM-GPG-KEY-JAMI" +RING_UPDATE_MANAGER_ID="jami" +RING_UPDATE_MANAGER_CFG="${RING_UPDATE_MANAGER_ID}.cfg" + +############################################################################### +# [2] Set package repo url depending on distribution and version # +############################################################################### + +CAN_ADD_YUM_SOURCE=true + +# Detect currently running system using /etc/os-release +# Redhat-based systems are supposed to provide /etc/os-release so if it's not +# the case then we simply don't want to provide automatic updates +if [ -f /etc/os-release ]; then + . /etc/os-release + +JAMI_REPO=' +[jami] +name='"${NAME}"' $releasever - $basearch - Jami +baseurl='"${JAMI_REPO_BASE}"/"${ID}"'_$releasever +gpgcheck=1 +gpgkey=https://dl.jami.net/ring.pub.key +enabled=1' + + # Set-up Jami repository end tag + if [ "${PLATFORM_ID}" = "platform:el8" ] || [ "${ID}_${VERSION_ID%.*}" = "rhel_8" ]; then + ENDTAG="rhel_8" + elif [ "${PLATFORM_ID}" = "platform:f27" ] || [ "${ID}_${VERSION_ID}" = "fedora_27" ]; then + ENDTAG="fedora_27" + elif [ "${PLATFORM_ID}" = "platform:f28" ] || [ "${ID}_${VERSION_ID}" = "fedora_28" ]; then + ENDTAG="fedora_28" + elif [ "${PLATFORM_ID}" = "platform:f29" ] || [ "${ID}_${VERSION_ID}" = "fedora_29" ]; then + ENDTAG="fedora_29" + elif [ "${PLATFORM_ID}" = "platform:f30" ] || [ "${ID}_${VERSION_ID}" = "fedora_30" ]; then + ENDTAG="fedora_30" + elif [ "${PLATFORM_ID}" = "platform:f31" ] || [ "${ID}_${VERSION_ID}" = "fedora_31" ]; then + ENDTAG="fedora_31" + elif [ "${PLATFORM_ID}" = "opensuse-leap:15.1" ] || [ "${ID}_${VERSION_ID}" = "opensuse-leap_15.1" ]; then + ENDTAG="opensuse-leap_15.1" + REPO_FILE="/etc/zypp/repos.d/jami-main.repo" + GPG_FILE="/tmp/RPM-GPG-KEY-JAMI" + else + # Distribution is not supported. Don't provide automatic updates. + CAN_ADD_YUM_SOURCE=false + fi +else + CAN_ADD_YUM_SOURCE=false +fi + + +############################################################################### +# [3] Maintainer script main switch # +############################################################################### + + if [ "`command -v rpm`" = "" ]; then + # we can only add key if rpm is present + CAN_ADD_YUM_SOURCE=false + fi + + if [ "${CAN_ADD_YUM_SOURCE}" = "true" ]; then +# # We first add the key to the trusted keyring. + cat > $GPG_FILE <<EOF + +$JAMI_KEY +EOF + /usr/bin/rm -f /var/lib/rpm/.rpm.lock > /dev/null 2>&1 + /usr/bin/rpm --import $GPG_FILE > /dev/null 2>&1 + if [ "${ENDTAG}" = "opensuse-leap_15.1" ]; then + rm -f $GPG_FILE + fi + # Add an entry for the package repository to the trusted package + # FIXME As soon as we rename the repo use ring instead of jami + cat > $REPO_FILE <<EOF +$JAMI_REPO +EOF + fi +exit 0 diff --git a/packaging/rules/opensuse-leap/jami-one-click.spec b/packaging/rules/opensuse-leap/jami-one-click.spec new file mode 100644 index 0000000000000000000000000000000000000000..8c8d107d864fccb021fb2413e115aa924050dd31 --- /dev/null +++ b/packaging/rules/opensuse-leap/jami-one-click.spec @@ -0,0 +1,209 @@ +%define name jami-all +%define version RELEASE_VERSION +%define release 0 +%define postinst jami-all.postinst + +Name: %{name} +Version: %{version} +Release: %{release}%{?dist} +Summary: Free software for distributed and secured communication. +Group: Applications/Internet +License: GPLv3+ +URL: https://jami.net/ +Source: jami_%{version}.tar.gz +#Requires: jami-daemon = %{version} +Obsoletes: ring ring-daemon +Provides: ring +Conflicts: ring ring-daemon + +BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: cmake +BuildRequires: libcanberra-devel +BuildRequires: libtool +BuildRequires: pcre-devel +BuildRequires: yaml-cpp-devel +BuildRequires: boost-devel +BuildRequires: libXext-devel +BuildRequires: yasm +BuildRequires: speex-devel +BuildRequires: chrpath +BuildRequires: check +BuildRequires: astyle +BuildRequires: gettext-devel +BuildRequires: gcc-c++ +BuildRequires: which +BuildRequires: alsa-lib-devel +BuildRequires: systemd-devel +BuildRequires: libuuid-devel +BuildRequires: libXfixes-devel +BuildRequires: uuid-devel +BuildRequires: gnutls-devel +BuildRequires: jsoncpp-devel +BuildRequires: gcc-c++ +BuildRequires: gnome-icon-theme-symbolic +BuildRequires: clutter-gtk-devel +BuildRequires: clutter-devel +BuildRequires: glib2-devel +BuildRequires: gtk3-devel +BuildRequires: libnma-devel +BuildRequires: libva-devel +BuildRequires: libvdpau-devel + +%description +Jami is free software for universal communication which respects freedoms +and privacy of its users. +. +This package contains the desktop client: jami-gnome. + +%prep +%setup -n ring-project + +%build +########################### +## Ring Daemon configure ## +########################### +mkdir -p daemon/contrib/native +cd %{_builddir}/ring-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 -j4 V=1 && \ + make -j4 V=1 .ffmpeg + +cd %{_builddir}/ring-project/daemon && \ + ./autogen.sh && \ + ./configure \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --disable-shared + +############################# +## libringclient configure ## +############################# +cd %{_builddir}/ring-project/lrc && \ + mkdir build && \ + cd build && \ + cmake \ + -DRING_BUILD_DIR=%{_builddir}/ring-project/daemon/src \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DCMAKE_BUILD_TYPE=Debug \ + .. + +############################ +## gnome client configure ## +############################ +cd %{_builddir}/ring-project/client-gnome && \ + mkdir build && \ + cd build && \ + cmake \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DLibRingClient_PROJECT_DIR=%{_builddir}/ring-project/lrc \ + -DGSETTINGS_LOCALCOMPILE=OFF \ + .. + +####################### +## Ring Daemon build ## +####################### +make -C %{_builddir}/ring-project/daemon -j4 V=1 +pod2man %{_builddir}/ring-project/daemon/man/dring.pod > %{_builddir}/ring-project/daemon/dring.1 + +######################### +## libringclient build ## +######################### +make -C %{_builddir}/ring-project/lrc/build -j4 V=1 + +######################## +## gnome client build ## +######################## +make -C %{_builddir}/ring-project/client-gnome/build LDFLAGS="-lpthread" -j4 V=1 + + +%install +######################### +## Ring Daemon install ## +######################### +DESTDIR=%{buildroot} make -C daemon install +cp %{_builddir}/ring-project/daemon/dring.1 %{buildroot}/%{_mandir}/man1/dring.1 +rm -rfv %{buildroot}/%{_prefix}/include +rm -rfv %{buildroot}/%{_libdir}/*.a +rm -rfv %{buildroot}/%{_libdir}/*.la + +########################### +## libringclient install ## +########################### +DESTDIR=%{buildroot} make -C lrc/build install +rm -rfv %{buildroot}/%{_prefix}/include + +# This is a symlink, should be in -dev package +rm -v %{buildroot}/%{_libdir}/libringclient.so + +# cmake files +rm -rfv %{buildroot}/%{_libdir}/cmake + +########################## +## gnome client install ## +########################## +DESTDIR=%{buildroot} make -C client-gnome/build install +ln -sf %{_bindir}/jami %{buildroot}/%{_bindir}/ring.cx + +########################## +## post install script ## +########################## +cp %{_builddir}/ring-project/packaging/rules/opensuse-leap/%{postinst} %{buildroot}/%{_bindir} +chmod a+x %{buildroot}/%{_bindir}/%{postinst} + +%files +%defattr(-,root,root,-) +%{_bindir}/jami +%{_bindir}/ring.cx +%{_bindir}/jami-gnome +%{_libdir}/libringclient*.so* +%{_datadir}/glib-2.0/schemas/net.jami.Jami.gschema.xml +%{_datadir}/applications/jami-gnome.desktop +%{_datadir}/jami-gnome/jami-gnome.desktop +%{_datadir}/icons/hicolor/scalable/apps/jami.svg +%{_datadir}/metainfo/jami-gnome.appdata.xml +%{_datadir}/libringclient/* +%{_datadir}/locale/* +%{_datadir}/sounds/jami-gnome/* +%doc %{_mandir}/man1/dring* +%{_libdir}/ring/dring +%{_datadir}/ring/ringtones +%{_datadir}/dbus-1/services/* +%{_datadir}/dbus-1/interfaces/* +%{_bindir}/%{postinst} + +%post +/sbin/ldconfig +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +if [ $1 == 1 ];then + %{_bindir}/%{postinst} +fi + +%postun +/sbin/ldconfig + +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans + +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%changelog diff --git a/packaging/rules/opensuse-leap/jami.spec b/packaging/rules/opensuse-leap/jami.spec index 52b242713366e7756d067e5cf55a1176b3f7ab09..2bb44cff5fd9cfebdac780a6bdcf674c5ebcfd07 100644 --- a/packaging/rules/opensuse-leap/jami.spec +++ b/packaging/rules/opensuse-leap/jami.spec @@ -50,7 +50,7 @@ BuildRequires: libvdpau-devel %description Jami is free software for universal communication which respects freedoms and privacy of its users. -. + This package contains the desktop client: jami-gnome. %package daemon @@ -59,9 +59,19 @@ Summary: Free software for distributed and secured communication - daemon %description daemon Jami is free software for universal communication which respects freedoms and privacy of its users. -. + +This package contains the Jami daemon: dring. + +%package all +Summary: Free software for distributed and secured communication + +%description all +Jami is free software for universal communication which respects freedoms +and privacy of its users. + This package contains the Jami daemon: dring. + %prep %setup -n ring-project @@ -84,7 +94,8 @@ cd %{_builddir}/ring-project/daemon/contrib/native && \ --disable-natpmp && \ make list && \ make fetch && \ - make -j4 V=1 + make -j4 V=1 && \ + make -j4 V=1 .ffmpeg cd %{_builddir}/ring-project/daemon && \ ./autogen.sh && \ @@ -187,10 +198,37 @@ ln -sf %{_bindir}/jami %{buildroot}/%{_bindir}/ring.cx %{_datadir}/dbus-1/services/* %{_datadir}/dbus-1/interfaces/* + +%files all +%defattr(-,root,root,-) +%{_bindir}/jami +%{_bindir}/ring.cx +%{_bindir}/jami-gnome +%{_libdir}/libringclient*.so* +%{_datadir}/glib-2.0/schemas/net.jami.Jami.gschema.xml +%{_datadir}/applications/jami-gnome.desktop +%{_datadir}/jami-gnome/jami-gnome.desktop +%{_datadir}/icons/hicolor/scalable/apps/jami.svg +%{_datadir}/metainfo/jami-gnome.appdata.xml +%{_datadir}/libringclient/* +%{_datadir}/locale/* +%{_datadir}/sounds/jami-gnome/* +%doc %{_mandir}/man1/dring* +%{_libdir}/ring/dring +%{_datadir}/ring/ringtones +%{_datadir}/dbus-1/services/* +%{_datadir}/dbus-1/interfaces/* + + %post /sbin/ldconfig /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%post all +/sbin/ldconfig +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + + %postun /sbin/ldconfig @@ -199,8 +237,21 @@ if [ $1 -eq 0 ] ; then /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi +%postun all +/sbin/ldconfig + +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%posttrans all + +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + + %changelog diff --git a/scripts/build-package-opensuse-leap.sh b/scripts/build-package-opensuse-leap.sh index 999a948f22e9de75e30f99c83366dec0744bdf0f..9eddc33a53c56d5d44ad7ef113ce3eb645c8a920 100755 --- a/scripts/build-package-opensuse-leap.sh +++ b/scripts/build-package-opensuse-leap.sh @@ -26,16 +26,21 @@ set -e # import the spec file mkdir -p /opt/ring-project cd /opt/ring-project -cp /opt/ring-project-ro/packaging/rules/opensuse-leap/jami.spec . +cp /opt/ring-project-ro/packaging/rules/opensuse-leap/* . + +#create tree for build +rpmdev-setuptree # place the source -mkdir -p /root/rpmbuild/SOURCES -cp /opt/ring-project-ro/jami_*.tar.gz /usr/src/packages/SOURCES +cp /opt/ring-project-ro/jami_*.tar.gz /root/rpmbuild/SOURCES + # Set the version -sed -i "s/RELEASE_VERSION/${RELEASE_VERSION}/g" jami.spec +sed -i "s/RELEASE_VERSION/${RELEASE_VERSION}/g" *.spec rpmdev-bumpspec --comment="Automatic nightly release" --userstring="Jenkins <ring@lists.savoirfairelinux.net>" jami.spec +rpmdev-bumpspec --comment="Automatic nightly release" --userstring="Jenkins <ring@lists.savoirfairelinux.net>" jami-one-click.spec + # install build deps dnf builddep -y jami.spec || echo "ignoring dnf builddep failure" @@ -45,7 +50,21 @@ dnf builddep -y jami.spec || echo "ignoring dnf builddep failure" rpmbuild -ba jami.spec # move to output -mv /usr/src/packages/RPMS/*/* /opt/output +mv /root/rpmbuild/RPMS/*/* /opt/output touch /opt/output/.packages-built chown -R ${CURRENT_UID}:${CURRENT_UID} /opt/output +## JAMI ONE CLICK INSTALL RPM + +#copy script jami-all.postinst which add repo +mkdir -p /root/rpmbuild/BUILD/ring-project/packaging/rules/one-click-install/ +cp jami-all.postinst /root/rpmbuild/BUILD/ring-project/packaging/rules/one-click-install/ + +# build the package +rpmbuild -ba jami-one-click.spec + +# move to output +mkdir -p /opt/output/one-click-install +mv /root/rpmbuild/RPMS/*/* /opt/output/one-click-install +touch /opt/output/one-click-install/.packages-built +chown -R ${CURRENT_UID}:${CURRENT_UID} /opt/output/one-click-install