Skip to content
Snippets Groups Projects
Unverified Commit 59d2e9a5 authored by Sébastien Blin's avatar Sébastien Blin Committed by Maxim Cournoyer
Browse files

packaging: package client-qt on opensuse

also de-duplicate code

Change-Id: I3ea9fedec5b4520e74489f3f4e03a533130d9e83
parent 5515e1c5
No related branches found
No related tags found
No related merge requests found
Showing
with 101 additions and 729 deletions
...@@ -73,6 +73,6 @@ RUN dnf install -y \ ...@@ -73,6 +73,6 @@ RUN dnf install -y \
qt5-qtwebengine-devel \ qt5-qtwebengine-devel \
sqlite-devel sqlite-devel
ADD scripts/build-package-fedora.sh /opt/build-package-fedora.sh ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD /opt/build-package-fedora.sh CMD /opt/build-package-rpm.sh
...@@ -73,6 +73,6 @@ RUN dnf install -y \ ...@@ -73,6 +73,6 @@ RUN dnf install -y \
qt5-qtwebengine-devel \ qt5-qtwebengine-devel \
sqlite-devel sqlite-devel
ADD scripts/build-package-fedora.sh /opt/build-package-fedora.sh ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD /opt/build-package-fedora.sh CMD /opt/build-package-rpm.sh
...@@ -73,6 +73,6 @@ RUN dnf install -y \ ...@@ -73,6 +73,6 @@ RUN dnf install -y \
qt5-qtwebengine-devel \ qt5-qtwebengine-devel \
sqlite-devel sqlite-devel
ADD scripts/build-package-fedora.sh /opt/build-package-fedora.sh ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD /opt/build-package-fedora.sh CMD /opt/build-package-rpm.sh
...@@ -29,7 +29,6 @@ RUN zypper --non-interactive up -y && \ ...@@ -29,7 +29,6 @@ RUN zypper --non-interactive up -y && \
libQt5DBus-devel \ libQt5DBus-devel \
pcre-devel \ pcre-devel \
yaml-cpp-devel \ yaml-cpp-devel \
boost-devel \
libdbus-c++-devel \ libdbus-c++-devel \
libQt5DBus-devel \ libQt5DBus-devel \
libXext-devel \ libXext-devel \
...@@ -40,7 +39,6 @@ RUN zypper --non-interactive up -y && \ ...@@ -40,7 +39,6 @@ RUN zypper --non-interactive up -y && \
chrpath \ chrpath \
check \ check \
astyle \ astyle \
uuid-devel \
gettext-devel \ gettext-devel \
gcc-c++ \ gcc-c++ \
which \ which \
...@@ -72,17 +70,27 @@ RUN zypper --non-interactive up -y && \ ...@@ -72,17 +70,27 @@ RUN zypper --non-interactive up -y && \
sqlite-devel \ sqlite-devel \
libQt5Sql-devel \ libQt5Sql-devel \
libQt5Gui-devel \ libQt5Gui-devel \
libQt5Widgets-devel \
libqt5-qtdeclarative-devel \
libqt5-qtquickcontrols \
libQt5Concurrent-devel \
libQt5QuickControls2-devel \
libqt5-qtmultimedia-devel \
libqt5-qtsvg-devel \
libqt5-qtbase-devel \
libqt5-qttools \
libQt5Concurrent-devel \
libqt5-qtwebengine-devel \
ffmpeg-4-libavutil-devel \ ffmpeg-4-libavutil-devel \
gtk3-devel\ gtk3-devel\
qrencode-devel \ qrencode-devel \
python3-python-dateutil \ python3-python-dateutil \
libqt5-linguist-devel \ libqt5-linguist-devel \
libsndfile-devel \ libsndfile-devel
evolution-devel
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 50 RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 50
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50 RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50
ADD scripts/build-package-opensuse-leap.sh /opt/build-package-opensuse-leap.sh ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD /opt/build-package-opensuse-leap.sh CMD /opt/build-package-rpm.sh
...@@ -27,7 +27,6 @@ RUN zypper --non-interactive up -y && \ ...@@ -27,7 +27,6 @@ RUN zypper --non-interactive up -y && \
libQt5DBus-devel \ libQt5DBus-devel \
pcre-devel \ pcre-devel \
yaml-cpp-devel \ yaml-cpp-devel \
boost-devel \
libdbus-c++-devel \ libdbus-c++-devel \
libQt5DBus-devel \ libQt5DBus-devel \
libXext-devel \ libXext-devel \
...@@ -70,6 +69,15 @@ RUN zypper --non-interactive up -y && \ ...@@ -70,6 +69,15 @@ RUN zypper --non-interactive up -y && \
sqlite-devel \ sqlite-devel \
libQt5Sql-devel \ libQt5Sql-devel \
libQt5Gui-devel \ libQt5Gui-devel \
libqt5-qtdeclarative-devel \
libqt5-qtquickcontrols \
libQt5Concurrent-devel \
libQt5QuickControls2-devel \
libqt5-qtmultimedia-devel \
libqt5-qtsvg-devel \
libqt5-qtwebengine-devel \
libQt5Sql-devel \
libQt5Gui-devel \
ffmpeg-4-libavutil-devel \ ffmpeg-4-libavutil-devel \
gtk3-devel\ gtk3-devel\
qrencode-devel \ qrencode-devel \
...@@ -78,6 +86,6 @@ RUN zypper --non-interactive up -y && \ ...@@ -78,6 +86,6 @@ RUN zypper --non-interactive up -y && \
libsndfile-devel \ libsndfile-devel \
evolution-devel evolution-devel
ADD scripts/build-package-opensuse-leap.sh /opt/build-package-opensuse-leap.sh ADD scripts/build-package-rpm.sh /opt/build-package-rpm.sh
CMD /opt/build-package-opensuse-leap.sh CMD /opt/build-package-rpm.sh
#!/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].
JAMI_REPO_BASE="https://dl.jami.net/nightly"
# Jami release key.
JAMI_KEY_FINGERPRINT="A295D773307D25A33AE72F2F64CD5FA175348F84"
JAMI_KEY="\
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
mQENBFVSdlcBCAC9zC1rp12O2K08PGozI14Y+t4qC931eHicvkuEMF1B9gAhjdRF
aIJS+UXwgQzoamDIHenxz1Q3fXUjKCMXytjGymB/0LUKccSbtH0Rcsl8kZ2z57KN
E+GLS7SvlP93ZOxco7eAEBWF/fvMrCsm10sNI6bW7UK0bgql9iIetd6Wrp9xXFVs
gmoV8Av714OlswsthSNtN+xQls3ozQ/dVGsOkZEyDbBzi88/rQEtuIDztTSWyD0V
x7WaY5+mVRwsJKzyPlgvsXpbP7A41IFykeOzPKh+vYz3k7dcLIRdOwse79oT2RXt
2VYEyTyTZIQlCJjGNTJYsU7GVffU4LnI7p/bABEBAAG0QFJpbmcgLSBTYXZvaXIt
RmFpcmUgTGludXgsIEluYyA8cmluZ0BsaXN0cy5zYXZvaXJmYWlyZWxpbnV4Lm5l
dD6JATkEEwEIACMFAlVSdlcCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAK
CRBkzV+hdTSPhMqSB/9aaKXVByoE7zwPM8DDSntS/jYhhaV1CcZ78WeC1LY2UnHL
R/yvABnDMikgqbMHBDu1R9dnjgZNntp7p0blxcT6ScxdZ6FpMZG6ZW5YNZIVctnF
jdExStcdpcbbycW8GeCmQdVcKLBl8G55mick02ayVNOH5ETtWahPwBvMWk5hSaH3
E18yvnmdqa9nCEST4UKvBOpmn58mwJDIR2YLdEFcL8z4FkxQUNkx/hiHSn+YLorZ
H3iBrf9y9vSYhQ5pxx7seWkoaGAQBgfktRCUKvVY6E1oSZ/WR1WsR1ftDO/RD0E8
APKzibVynUEQrCcQX16uDOa/YgavVkts9HmR7Vf7iQEcBBABCAAGBQJVUoJZAAoJ
EFZ3uE+o8K8j0RkH/2sv4L3X0hPIwAzf3CUJZQuHihUOPRAoru5RqW/5nWqsroa1
WChJq79uDEecDAizTA1MvaTFmLxTjCkJso+5UHMSHi6LARvYXSOeBPFizEJT4qZZ
CXti5zh9d5z1u6L986mrnArA39IZ2F+9wV2q0VIDnq1Tt6+cJ745zSeZmbM6jip4
oEBsKbCkAhq78sqCc7DIilsGbd2tgrLsh3fitvamEJCTCYKdDMog3TP0+EekQTA2
Qp4jG0Uf7Gg1YvDDcsawXyNDrMBXEFPVhBNnRisX+YQBRWgDE58+fpsQfeTkblL5
UaLWhDGlyfAc1ebL3InzhUWJswjt0BN3GPoP55m5AQ0EVVJ2VwEIAMXhg0w1IM0C
rGXMGayaJ3EWd9YXkqq0sAN7b75tD0cOimyPNafnzChG9//3tt82aPRm8fG5Lk5U
fwCS2MSt2Ml8UZeujmEBnvU9hsJBWcGgzXhtBQwZqzmV2vQg8436nTFY5L24TFBc
QNOUJNzSy/dqps0SxcYleE57o24KHlW6ICBaEhz0JoZHv5+7GtYz6XN2D7pkwTPY
UIahyt4dY3geFrkuMzZdTS4qyFb8EE/Ypi/WgewO9ib53kt7FBrxmm0l+d9GR4jH
CKGqaYjm8xzTsNa3m2C0Cf/C13bOaQVicgntfQ32IjjZdaDMlRLQluYNQ0ETA1FE
9+EVvrQYZ+kAEQEAAYkBHwQYAQgACQUCVVJ2VwIbDAAKCRBkzV+hdTSPhMIaB/9D
CrIZBDy7YOK3gdnNm57jemJRz6Cum7RTUiqCQ8ivSmEgv1KmMIqMpjmnKKP43iHO
mR4i7XDml6RBGynPys6cQcAlBWSuhOv9PGpRCaGyjJ4vmQUsYhyD/+tCDZVdBuGg
CxteSMbawxtMHESqX7dDlctc+njDjBcbcGj73sj36qoFIjorjymZlT5IdK39oXVM
Hi1TssiWPOU0hQgn4BIreYnEZUA6xuFX10C7k2DVRFZrXF7lpNgPQ8eNZTnQBIuw
HUFCGSHO3/kzxSlkE1PBUX3IZ8PSFijyopBnWUhlSXuyRjte8OR7Fl/Rlf0IaOD1
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"
JAMI_UPDATE_MANAGER_ID="jami"
JAMI_UPDATE_MANAGER_CFG="${JAMI_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/jami.pub.key
enabled=1'
# Set-up Jami repository end tag
if [ "${PLATFORM_ID}" = "opensuse-leap:15.2" ]; then
ENDTAG="opensuse-leap_15.2"
REPO_FILE="/etc/zypp/repos.d/jami-main.repo"
GPG_FILE="/tmp/RPM-GPG-KEY-JAMI"
elif [ "${PLATFORM_ID}" = "opensuse-tumbleweed" ]; then
ENDTAG="opensuse-tumbleweed"
REPO_FILE="/etc/zypp/repos.d/jami-main.repo"
GPG_FILE="/tmp/RPM-GPG-KEY-JAMI"
# Remove releasever for tumbleweed as it's a rolling release
JAMI_REPO='
[jami]
name='"${NAME}"' $basearch - Jami
baseurl='"${JAMI_REPO_BASE}"/"${ID}"'
gpgcheck=1
gpgkey=https://dl.jami.net/jami.pub.key
enabled=1'
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.2" ] || [ "${ENDTAG}" = "opensuse-tumbleweed" ]; 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
%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 .gnutls
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
%define name jami
%define version RELEASE_VERSION
%define release 0
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}
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.
%package daemon
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
%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 .gnutls
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
%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*
%files daemon
%defattr(-,root,root,-)
%{_libdir}/ring/dring
%{_datadir}/ring/ringtones
%{_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
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
%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
...@@ -61,7 +61,7 @@ HUFCGSHO3/kzxSlkE1PBUX3IZ8PSFijyopBnWUhlSXuyRjte8OR7Fl/Rlf0IaOD1 ...@@ -61,7 +61,7 @@ HUFCGSHO3/kzxSlkE1PBUX3IZ8PSFijyopBnWUhlSXuyRjte8OR7Fl/Rlf0IaOD1
# In general: you will not need to modify these variables. # In general: you will not need to modify these variables.
# WARNING: When modifying the paths, keep in mind that the corresponding # WARNING: When modifying the paths, keep in mind that the corresponding
# postrm paths should be modified as well # postrm paths should be modified as well
YUM_FILE="/etc/yum.repos.d/jami-main.repo" REPO_FILE="/etc/yum.repos.d/jami-main.repo"
GPG_FILE="/etc/pki/rpm-gpg/RPM-GPG-KEY-JAMI" GPG_FILE="/etc/pki/rpm-gpg/RPM-GPG-KEY-JAMI"
is_distribution_supported() { is_distribution_supported() {
...@@ -78,8 +78,8 @@ is_distribution_supported() { ...@@ -78,8 +78,8 @@ is_distribution_supported() {
. /etc/os-release . /etc/os-release
case ${ID}_${VERSION_ID%.*} in case ${ID}_${VERSION_ID%.*} in
rhel_8|fedora_32|fedora_33|fedora_34) rhel_8|fedora_32|fedora_33|fedora_34|opensuse-leap_15.2|opensuse-tumbleweed)
return 0;; return 0
esac esac
return 1 return 1
...@@ -90,17 +90,44 @@ is_distribution_supported() { ...@@ -90,17 +90,44 @@ is_distribution_supported() {
############################################################################### ###############################################################################
if is_distribution_supported; then if is_distribution_supported; then
CAN_ADD_YUM_SOURCE=true CAN_ADD_REPO_SOURCE=true
else else
CAN_ADD_YUM_SOURCE=false CAN_ADD_REPO_SOURCE=false
fi fi
if command -v rpm > /dev/null; then if command -v rpm > /dev/null; then
# RPM is required to add the key. # RPM is required to add the key.
CAN_ADD_YUM_SOURCE=false CAN_ADD_REPO_SOURCE=false
fi fi
if [ "${CAN_ADD_YUM_SOURCE}" = "true" ]; then JAMI_REPO='
[jami]
name='"${NAME}"' $releasever - $basearch - Jami
baseurl='"${JAMI_REPO_BASE}"/"${ID}"'_$releasever
gpgcheck=1
gpgkey=https://dl.jami.net/jami.pub.key
enabled=1'
# Set-up Jami repository end tag
if [ "${PLATFORM_ID}" = "opensuse-leap:15.2" ]; then
ENDTAG="opensuse-leap_15.2"
REPO_FILE="/etc/zypp/repos.d/jami-main.repo"
GPG_FILE="/tmp/RPM-GPG-KEY-JAMI"
elif [ "${PLATFORM_ID}" = "opensuse-tumbleweed" ]; then
ENDTAG="opensuse-tumbleweed"
REPO_FILE="/etc/zypp/repos.d/jami-main.repo"
GPG_FILE="/tmp/RPM-GPG-KEY-JAMI"
# Remove releasever for tumbleweed as it's a rolling release
JAMI_REPO='
[jami]
name='"${NAME}"' $basearch - Jami
baseurl='"${JAMI_REPO_BASE}"/"${ID}"'
gpgcheck=1
gpgkey=https://dl.jami.net/jami.pub.key
enabled=1'
fi
if [ "${CAN_ADD_REPO_SOURCE}" = "true" ]; then
# Add the key to the trusted keyring. # Add the key to the trusted keyring.
echo "$JAMI_KEY" > "$GPG_FILE" echo "$JAMI_KEY" > "$GPG_FILE"
...@@ -111,12 +138,7 @@ if [ "${CAN_ADD_YUM_SOURCE}" = "true" ]; then ...@@ -111,12 +138,7 @@ if [ "${CAN_ADD_YUM_SOURCE}" = "true" ]; then
# XXX: The NAME and ID variables are set as a side-effect of # XXX: The NAME and ID variables are set as a side-effect of
# sourcing the /etc/os-release file in the above # sourcing the /etc/os-release file in the above
# is_distribution_supported call. # is_distribution_supported call.
cat > "$YUM_FILE" <<EOF cat > $REPO_FILE <<EOF
[jami] $JAMI_REPO
name=$NAME \$releasever - \$basearch - Jami
baseurl=${JAMI_REPO_BASE}/${ID}_\$releasever
gpgcheck=1
gpgkey=https://dl.jami.net/jami.pub.key
enabled=1
EOF EOF
fi fi
...@@ -27,25 +27,29 @@ BuildRequires: yasm ...@@ -27,25 +27,29 @@ BuildRequires: yasm
# Build and runtime dependencies. Requires directives are # Build and runtime dependencies. Requires directives are
# automatically made to linked shared libraries via RPM, so there's no # automatically made to linked shared libraries via RPM, so there's no
# need to explicitly relist them. # need to explicitly relist them.
%if 0%{?fedora} >= 32
BuildRequires: NetworkManager-libnm-devel BuildRequires: NetworkManager-libnm-devel
BuildRequires: alsa-lib-devel
BuildRequires: dbus-devel BuildRequires: dbus-devel
BuildRequires: expat-devel BuildRequires: expat-devel
BuildRequires: opus-devel
BuildRequires: pulseaudio-libs-devel
%endif
%if %{defined suse_version}
BuildRequires: libdbus-c++-devel
BuildRequires: libexpat-devel
BuildRequires: libopus-devel
BuildRequires: libpulse-devel
%endif
BuildRequires: alsa-lib-devel
BuildRequires: gnutls-devel BuildRequires: gnutls-devel
BuildRequires: jsoncpp-devel BuildRequires: jsoncpp-devel
BuildRequires: libXext-devel BuildRequires: libXext-devel
BuildRequires: libXfixes-devel BuildRequires: libXfixes-devel
BuildRequires: libupnp-devel
BuildRequires: libuuid-devel BuildRequires: libuuid-devel
BuildRequires: libva-devel BuildRequires: libva-devel
BuildRequires: libvdpau-devel BuildRequires: libvdpau-devel
BuildRequires: nettle-devel
BuildRequires: opus-devel
BuildRequires: pcre-devel BuildRequires: pcre-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: uuid-c++-devel
BuildRequires: uuid-devel BuildRequires: uuid-devel
BuildRequires: webkitgtk4-devel
BuildRequires: yaml-cpp-devel BuildRequires: yaml-cpp-devel
%description %description
......
...@@ -21,15 +21,22 @@ BuildRequires: gettext-devel ...@@ -21,15 +21,22 @@ BuildRequires: gettext-devel
# Build and runtime dependencies. # Build and runtime dependencies.
BuildRequires: glib2-devel BuildRequires: glib2-devel
%if 0%{?fedora} >= 32
BuildRequires: dbus-devel BuildRequires: dbus-devel
BuildRequires: libnotify-devel BuildRequires: libnotify-devel
BuildRequires: libappindicator-gtk3-devel
BuildRequires: webkitgtk4-devel
%endif
%if %{defined suse_version}
BuildRequires: libdbus-c++-devel
BuildRequires: libappindicator-devel
BuildRequires: webkit2gtk3-devel
%endif
BuildRequires: clutter-devel BuildRequires: clutter-devel
BuildRequires: clutter-gtk-devel BuildRequires: clutter-gtk-devel
BuildRequires: gtk3-devel BuildRequires: gtk3-devel
BuildRequires: libappindicator-gtk3-devel
BuildRequires: libcanberra-devel BuildRequires: libcanberra-devel
BuildRequires: qrencode-devel BuildRequires: qrencode-devel
BuildRequires: webkitgtk4-devel
%description %description
This package contains the GNOME desktop client of Jami. Jami is a free This package contains the GNOME desktop client of Jami. Jami is a free
......
...@@ -14,13 +14,21 @@ Source: jami_%{version}.tar.gz ...@@ -14,13 +14,21 @@ Source: jami_%{version}.tar.gz
Requires: jami-daemon = %{version} Requires: jami-daemon = %{version}
# Build dependencies # Build dependencies
BuildRequires: NetworkManager-libnm-devel
BuildRequires: cmake BuildRequires: cmake
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: jami-daemon-devel = %{version} BuildRequires: jami-daemon-devel = %{version}
BuildRequires: make BuildRequires: make
%if 0%{?fedora} >= 32
BuildRequires: NetworkManager-libnm-devel
BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qttools-devel BuildRequires: qt5-qttools-devel
%endif
%if %{defined suse_version}
BuildRequires: libQt5Sql-devel
BuildRequires: libQt5Gui-devel
BuildRequires: libqt5-qtbase-devel
BuildRequires: libqt5-qttools
%endif
%description %description
This package contains the client library of Jami, a free software for This package contains the client library of Jami, a free software for
......
...@@ -19,10 +19,11 @@ Obsoletes: jami < %{version}-%{release} ...@@ -19,10 +19,11 @@ Obsoletes: jami < %{version}-%{release}
BuildRequires: cmake BuildRequires: cmake
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: make BuildRequires: make
BuildRequires: qt5-qttools-devel
# Build and runtime dependencies. # Build and runtime dependencies.
BuildRequires: qrencode-devel BuildRequires: qrencode-devel
%if 0%{?fedora} >= 32
BuildRequires: qt5-qttools-devel
BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtdeclarative-devel BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-qtmultimedia-devel BuildRequires: qt5-qtmultimedia-devel
...@@ -30,10 +31,10 @@ BuildRequires: qt5-qtquickcontrols ...@@ -30,10 +31,10 @@ BuildRequires: qt5-qtquickcontrols
BuildRequires: qt5-qtquickcontrols2-devel BuildRequires: qt5-qtquickcontrols2-devel
BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qtsvg-devel
BuildRequires: qt5-qtwebengine-devel BuildRequires: qt5-qtwebengine-devel
# Runtime dependencies not automatically registered by RPM. # Runtime dependencies not automatically registered by RPM.
Requires: qt5-qtquickcontrols Requires: qt5-qtquickcontrols
Requires: qt5-qtgraphicaleffects Requires: qt5-qtgraphicaleffects
%endif
%description %description
This package contains the Qt desktop client of Jami. Jami is a free This package contains the Qt desktop client of Jami. Jami is a free
......
plugins @ 7bfad26a
Subproject commit 9dcf4309a37d32ff8fc349cd96a9c54363530b4b Subproject commit 7bfad26ae4eeb656733d409aa88cf0fcae69d7a5
#!/usr/bin/env bash
#
# Copyright (C) 2016-2019 Savoir-faire Linux Inc.
#
# Author: Alexandre Viau <alexandre.viau@savoirfairelinux.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script is used in the packaging containers to build packages on
# rpm-based distros.
#
set -e
# import the spec file
mkdir -p /opt/ring-project
cd /opt/ring-project
cp /opt/ring-project-ro/packaging/rules/opensuse-leap/* .
#create tree for build
rpmdev-setuptree
# place the source
cp /opt/ring-project-ro/jami_*.tar.gz /root/rpmbuild/SOURCES
# Set the version
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"
# build the package
rpmbuild -ba jami.spec
# move to 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
...@@ -27,7 +27,7 @@ set -e ...@@ -27,7 +27,7 @@ set -e
# Import the spec file. # Import the spec file.
mkdir -p /opt/ring-project mkdir -p /opt/ring-project
cd /opt/ring-project cd /opt/ring-project
cp /opt/ring-project-ro/packaging/rules/fedora/* . cp /opt/ring-project-ro/packaging/rules/rpm/* .
# Prepare the build tree. # Prepare the build tree.
rpmdev-setuptree rpmdev-setuptree
...@@ -40,10 +40,6 @@ sed -i "s/RELEASE_VERSION/${RELEASE_VERSION}/g" *.spec ...@@ -40,10 +40,6 @@ sed -i "s/RELEASE_VERSION/${RELEASE_VERSION}/g" *.spec
rpmdev-bumpspec --comment="Automatic nightly release" \ rpmdev-bumpspec --comment="Automatic nightly release" \
--userstring="Jenkins <jami@lists.savoirfairelinux.net>" *.spec --userstring="Jenkins <jami@lists.savoirfairelinux.net>" *.spec
# TODO: We could use mock to build Fedora/RHEL packages in minimal
# chroots matching the environment defined in the spec files. It also
# has a --chain option to chain the build of dependent packages.
# Build the daemon and install it. # Build the daemon and install it.
rpmbuild -ba jami-daemon.spec rpmbuild -ba jami-daemon.spec
rpm --install /root/rpmbuild/RPMS/x86_64/jami-daemon-* rpm --install /root/rpmbuild/RPMS/x86_64/jami-daemon-*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment