1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-26 02:15:33 +02:00
jami-client-qt/extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec

129 lines
3.4 KiB
RPMSpec
Raw Normal View History

%define name jami-daemon
%define version RELEASE_VERSION
%define release 0
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
Summary: Daemon component of Jami
Group: Applications/Internet
License: GPLv3+
Vendor: Savoir-faire Linux Inc.
URL: https://jami.net/
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
Source: jami-%{version}.tar.gz
Requires: jami-daemon = %{version}
# Build dependencies
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: which
BuildRequires: yasm
# Build and runtime dependencies. Requires directives are
# automatically made to linked shared libraries via RPM, so there's no
# need to explicitly relist them.
%if 0%{?fedora} >= 32
BuildRequires: NetworkManager-libnm-devel
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: dbus-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
%else
BuildRequires: gnutls-devel
%endif
BuildRequires: alsa-lib-devel
BuildRequires: jsoncpp-devel
BuildRequires: libXext-devel
BuildRequires: libXfixes-devel
BuildRequires: libuuid-devel
BuildRequires: libva-devel
BuildRequires: libvdpau-devel
BuildRequires: pcre-devel
BuildRequires: uuid-devel
BuildRequires: yaml-cpp-devel
%description
This package contains the daemon of Jami, a free software for
universal communication which respects the freedoms and privacy of its
users.
%prep
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
%setup -n jami-%{version}
%build
CFLAGS="${CFLAGS} -fno-lto"
CXXFLAGS="${CXXFLAGS} -fno-lto"
# Configure the Jami bundled libraries (ffmpeg & pjproject).
mkdir -p daemon/contrib/native
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
cd %{_builddir}/jami-%{version}/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 && \
make %{_smp_mflags} V=1 .ffmpeg
# Configure the daemon.
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
cd %{_builddir}/jami-%{version}/daemon && \
./autogen.sh && \
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir}
# Build the daemon.
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
make -C %{_builddir}/jami-%{version}/daemon %{_smp_mflags} V=1
pod2man %{_builddir}/jami-%{version}/daemon/man/jamid.pod \
> %{_builddir}/jami-%{version}/daemon/jamid.1
%install
DESTDIR=%{buildroot} make -C daemon install
packaging: Update release tarball name and version scheme. * extras/packaging/gnu-linux/scripts/release-version.sh: Add script for deriving (reproducibly) a release version. The format will follow a 'YYYYMMDD.X' scheme, where 'YYYYMMDD' is the date of the last commit on the current branch, and 'X' the number of releases tagged that day, starting from zero. Example: the first stable release with a newest commit date of 2023-01-02 would have a version of '20230102.0', the subsequent one '20230102.1', and so on. This is derived by counting the number of git tags with the prefix 'TYPE/YYYYMMDD', where 'TYPE' is the release type: either 'stable', 'beta', or 'nightly'. * extras/packaging/gnu-linux/Jenkinsfile: Call the above new script to derive the release version to use for tagging. * extras/packaging/gnu-linux/Makefile: Switch from the previous 'jami_YYYYMMDD.hhmm.COMMIT.tar.gz' tarball filename format to 'jami-YYYYMMDD.X.tar.gz'. The new format is shorter, omits the unnecessary and confusing commit id, and uses dash instead of underscore. Also, it contains everything in a top-level directory with the same name as the tarball (without the .tar.gz extensions), so that 'jami-YYYYMMDD.X.tar.gz' nicely extracts to 'jami-YYYYMMDD.X'. With these changes, our release tarballs will follow more closely the related instructions from the GNU maintainers manual: https://www.gnu.org/prep/maintain/html_node/Distribution-tar-Files.html Lastly, this change inadvertently 'fixes' a recent issue where the 'extras/ci/client-qt-gnulinux' subdirectory and its contents would be moved to top-level in the tarball due to one of the tarball transforms matching the 'client-qt' in the directory's name, replacing the 'extras/ci/client-qt' prefix with 'client-qt', thereby resulting in 'client-qt-gnulinux' being moved to the tarball's top-level. * .gitignore: Ignore several packaging-related directories and files. * extras/packaging/gnu-linux/rules/rpm/jami-daemon.spec: * extras/packaging/gnu-linux/rules/rpm/jami-libclient.spec: * extras/packaging/gnu-linux/rules/rpm/jami-qt.spec: * extras/packaging/gnu-linux/rules/rpm/jami.spec: Update the expected release tarball filename pattern in the 'Source' field. Also replace references to previous top-level directory name 'client-qt' with the new one 'jami-%{version}' where needed. * extras/packaging/gnu-linux/rules/rpm/jami-libqt.spec: Update the 'Source' field to follow new tarball name consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-rpm.sh: Update the tarball top-level directory pattern for the new format, now passing the --wildcards option to GNU Tar. Also use a name for the jami-libqt source tarball that is more consistent with the main Jami release tarball. * extras/packaging/gnu-linux/scripts/build-package-snap.sh: Update the top-level directory pattern for the new format. * extras/packaging/gnu-linux/tarballs.manifest: Drop file accidentally checked into git. Change-Id: I2695f560c0bc5e61fb99dc0244f8fbb8e7026a62
2023-01-25 21:27:01 -05:00
cp %{_builddir}/jami-%{version}/daemon/jamid.1 \
%{buildroot}/%{_mandir}/man1/jamid.1
rm -rfv %{buildroot}/%{_libdir}/*.a
rm -rfv %{buildroot}/%{_libdir}/*.la
%files
%defattr(-,root,root,-)
%{_libdir}/libjami.so*
%{_libdir}/pkgconfig/jami.pc
# XXX: Use %%{_libexecdir}/jamid after there's no more OpenSUSE Leap
# < 16 (see https://en.opensuse.org/openSUSE:Specfile_guidelines).
/usr/libexec/jamid
%{_datadir}/jami/ringtones
%{_datadir}/dbus-1/services/*
%{_datadir}/dbus-1/interfaces/*
%doc %{_mandir}/man1/jamid*
%package devel
Summary: Development files of the Jami daemon
%description devel
This package contains the header files for using the Jami daemon as a library.
%files devel
%{_includedir}/jami
%post
/sbin/ldconfig
%postun
/sbin/ldconfig