1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-16 20:55:46 +02:00
jami-client-qt/extras/packaging/gnu-linux/rules/rpm/jami.spec

103 lines
3.2 KiB
RPMSpec
Raw Normal View History

%define name jami
%define version RELEASE_VERSION
%define release 0
packaging: fix AppStream issues The AppStream specification includes both a "metainfo" file format, which can be used (among other things) to provide metadata about a specific application, as well as a "catalog" file format used to provide information about the contents of a repository. This patch adds a "catalog" file for the Jami repos, which seems to be necessary in order for some graphical package management applications to be able to launch or uninstall Jami. In particular, this was an issue with GNOME Software on all the rpm-based distributions supported by Jami (Fedora, openSUSE, AlmaLinux). This patch also fixes a few minor noncompliance issues with the existing metainfo and .desktop files: - the metainfo and .desktop files were renamed so that the names' prefixes match the application's ID as defined by the <id> tag in the metainfo file (in our case "net.jami.Jami") [1]; - the <br/> tags in the metainfo file were removed (they are not supported -- metainfo files only allow a very limited number of tags, not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are now used instead; - the invalid categories "Communication" and "Productivity" were removed [3, 4]. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/ [2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description [3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories [4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html GitLab: #1842 Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
2025-01-07 16:58:21 -05:00
# The AppStream 1.0 spec says that the catalog file must be put in /usr/share/swcatalog/xml
# (see https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html).
#
# However, openSUSE Leap still uses the legacy path /usr/share/app-info/xmls as of version 15.5.
%if 0%{?sle_version} && 0%{?sle_version} <= 150500
%define appstream_catalog_dir /share/app-info/xmls
%else
%define appstream_catalog_dir /share/swcatalog/xml
%endif
# Exclude vendored Qt6 from dependency generator
%define __requires_exclude ^libQt6.*$
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
Summary: Qt client for 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}
Requires: jami-libqt
Provides: jami-qt = %{version}
Obsoletes: jami-qt < 20221010.1109.641d67d-2
Obsoletes: jami-libclient <= 20220516.0214.9b42ad3-1
# Build dependencies.
%if 0%{?fedora} >= 32
BuildRequires: cmake
BuildRequires: gcc-c++
%endif
BuildRequires: make
# For generating resources.qrc in build time.
BuildRequires: python3
# Build and runtime dependencies.
BuildRequires: qrencode-devel
%description
This package contains the Qt desktop client of Jami. Jami is a free
software for universal communication which respects 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
# Configure and build bundled ffmpeg (for libavutil/avframe).
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
mkdir -p %{_builddir}/jami-%{version}/daemon/contrib/native
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 .ffmpeg
# Qt-related variables
export CXXFLAGS="${CXXFLAGS} -fno-lto"
export CFLAGS="${CFLAGS} -fno-lto"
export LDFLAGS="$(CFLAGS) ${LDFLAGS}"
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} && \
mkdir build && cd build && \
cmake -DENABLE_LIBWRAP=true \
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
-DLIBJAMI_BUILD_DIR=%{_builddir}/jami-%{version}/daemon/src \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_INSTALL_LIBDIR=%{_libdir} \
packaging: fix AppStream issues The AppStream specification includes both a "metainfo" file format, which can be used (among other things) to provide metadata about a specific application, as well as a "catalog" file format used to provide information about the contents of a repository. This patch adds a "catalog" file for the Jami repos, which seems to be necessary in order for some graphical package management applications to be able to launch or uninstall Jami. In particular, this was an issue with GNOME Software on all the rpm-based distributions supported by Jami (Fedora, openSUSE, AlmaLinux). This patch also fixes a few minor noncompliance issues with the existing metainfo and .desktop files: - the metainfo and .desktop files were renamed so that the names' prefixes match the application's ID as defined by the <id> tag in the metainfo file (in our case "net.jami.Jami") [1]; - the <br/> tags in the metainfo file were removed (they are not supported -- metainfo files only allow a very limited number of tags, not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are now used instead; - the invalid categories "Communication" and "Productivity" were removed [3, 4]. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/ [2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description [3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories [4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html GitLab: #1842 Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
2025-01-07 16:58:21 -05:00
-DAPPSTREAM_CATALOG_DIR=%{appstream_catalog_dir} \
-DWITH_DAEMON_SUBMODULE=true \
-DCMAKE_BUILD_TYPE=Release \
..
make -C %{_builddir}/jami-%{version}/build %{_smp_mflags} V=2
%install
DESTDIR=%{buildroot} make -C %{_builddir}/jami-%{version}/build install V=2
%files
%defattr(-,root,root,-)
%{_bindir}/jami
packaging: fix AppStream issues The AppStream specification includes both a "metainfo" file format, which can be used (among other things) to provide metadata about a specific application, as well as a "catalog" file format used to provide information about the contents of a repository. This patch adds a "catalog" file for the Jami repos, which seems to be necessary in order for some graphical package management applications to be able to launch or uninstall Jami. In particular, this was an issue with GNOME Software on all the rpm-based distributions supported by Jami (Fedora, openSUSE, AlmaLinux). This patch also fixes a few minor noncompliance issues with the existing metainfo and .desktop files: - the metainfo and .desktop files were renamed so that the names' prefixes match the application's ID as defined by the <id> tag in the metainfo file (in our case "net.jami.Jami") [1]; - the <br/> tags in the metainfo file were removed (they are not supported -- metainfo files only allow a very limited number of tags, not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are now used instead; - the invalid categories "Communication" and "Productivity" were removed [3, 4]. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/ [2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description [3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories [4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html GitLab: #1842 Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
2025-01-07 16:58:21 -05:00
%{_datadir}/applications/net.jami.Jami.desktop
%{_datadir}/jami/net.jami.Jami.desktop
%{_datadir}/icons/hicolor/scalable/apps/jami.svg
%{_datadir}/icons/hicolor/48x48/apps/jami.png
%{_datadir}/pixmaps/jami.xpm
packaging: fix AppStream issues The AppStream specification includes both a "metainfo" file format, which can be used (among other things) to provide metadata about a specific application, as well as a "catalog" file format used to provide information about the contents of a repository. This patch adds a "catalog" file for the Jami repos, which seems to be necessary in order for some graphical package management applications to be able to launch or uninstall Jami. In particular, this was an issue with GNOME Software on all the rpm-based distributions supported by Jami (Fedora, openSUSE, AlmaLinux). This patch also fixes a few minor noncompliance issues with the existing metainfo and .desktop files: - the metainfo and .desktop files were renamed so that the names' prefixes match the application's ID as defined by the <id> tag in the metainfo file (in our case "net.jami.Jami") [1]; - the <br/> tags in the metainfo file were removed (they are not supported -- metainfo files only allow a very limited number of tags, not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are now used instead; - the invalid categories "Communication" and "Productivity" were removed [3, 4]. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/ [2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description [3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories [4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html GitLab: #1842 Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
2025-01-07 16:58:21 -05:00
%{_datadir}/metainfo/net.jami.Jami.metainfo.xml
%{_prefix}%{appstream_catalog_dir}/jami.xml
%{_datadir}/jami/translations/*
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
%doc %{_mandir}/man1/jami*