# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} # Switch to Clang due LTO regression in GCC # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114501 %global toolchain clang %global forgeurl https://github.com/SevenTV/%{name} %global uuid com.chatterino.chatterino %global chatterino_git_commit e57eba779dab05fbd3e47dcadacd0b841d8959a7 %global chatterino_git_shortcommit %(c=%{chatterino_git_commit}; echo ${c:0:7}) %global tarball_version %%(echo %{version} | tr '~' '-') # Git submodules # * libcommuni %global commit2 2979eb96262756047a8dca47f2e509168138c0d0 %global shortcommit2 %(c=%{commit2}; echo ${c:0:7}) # * settings %global commit3 c141a40d2d493646cd8f0b1e06251a828dfdfdd2 %global shortcommit3 %(c=%{commit3}; echo ${c:0:7}) # * signals %global commit4 d06770649a7e83db780865d09c313a876bf0f4eb %global shortcommit4 %(c=%{commit4}; echo ${c:0:7}) # * serialize %global commit5 17946d65a41a72b447da37df6e314cded9650c32 %global shortcommit5 %(c=%{commit5}; echo ${c:0:7}) # * magic_enum %global commit9 e55b9b54d5cf61f8e117cafb17846d7d742dd3b4 %global shortcommit9 %(c=%{commit9}; echo ${c:0:7}) # * sanitizers-cmake %global commit10 0573e2ea8651b9bb3083f193c41eb086497cc80a %global shortcommit10 %(c=%{commit10}; echo ${c:0:7}) # * miniaudio %global commit11 350784a9467a79d0fa65802132668e5afbcf3777 %global shortcommit11 %(c=%{commit11}; echo ${c:0:7}) # * sol2 %global commit12 2b0d2fe8ba0074e16b499940c4f3126b9c7d3471 %global shortcommit12 %(c=%{commit12}; echo ${c:0:7}) # * lua %global commit13 1ab3208a1fceb12fca8f24ba57d6e13c5bff15e3 %global shortcommit13 %(c=%{commit13}; echo ${c:0:7}) # * expected-lite %global commit14 54ca18bcea8e39c41650d82268077d559c695aa5 %global shortcommit14 %(c=%{commit14}; echo ${c:0:7}) # * certify %global commit15 a448a3915ddac716ce76e4b8cbf0e7f4153ed1e2 %global shortcommit15 %(c=%{commit15}; echo ${c:0:7}) Name: chatterino7 Version: 7.5.3 %forgemeta Release: 1 Summary: Chat client for https://twitch.tv # Boost Software License (v1.0) Boost Software License 1.0 # ----------------------------------------------------------------------- # resources/licenses/boost_boost.txt # # BSD 3-clause "New" or "Revised" License # --------------------------------------- # lib/libcommuni/ # # Expat License # ------------- # lib/serialize/ # lib/signals/ # resources/ # # Mozilla Public License (v1.1) GNU General Public License (v2 or later) or GNU Lesser General Public License (v2.1 or later) # --------------------------------------------------------------------------------------------------------------------------- # lib/libcommuni/ # # zlib/libpng license Aladdin Free Public License # ----------------------------------------------- # lib/websocketpp/ # License: MIT and BSL-1.0 and BSD-3-Clause and zlib and GPL-2.0-or-later and LGPL-2.1-or-later and MPL-1.1 URL: %{forgeurl} Source0: %{forgesource} Source2: https://github.com/hemirt/libcommuni/archive/%{commit2}/libcommuni-%{shortcommit2}.tar.gz Source3: https://github.com/pajlada/settings/archive/%{commit3}/settings-%{shortcommit3}.tar.gz Source4: https://github.com/pajlada/signals/archive/%{commit4}/signals-%{shortcommit4}.tar.gz Source5: https://github.com/pajlada/serialize/archive/%{commit5}/serialize-%{shortcommit5}.tar.gz Source9: https://github.com/Neargye/magic_enum/archive/%{commit9}/magic_enum-%{shortcommit9}.tar.gz Source10: https://github.com/arsenm/sanitizers-cmake/archive/%{commit10}/sanitizers-cmake-%{shortcommit10}.tar.gz Source11: https://github.com/mackron/miniaudio/archive/%{commit11}/miniaudio-%{shortcommit11}.tar.gz Source12: https://github.com/ThePhD/sol2/archive/%{commit12}/sol2-%{shortcommit12}.tar.gz Source13: https://github.com/lua/lua/archive/%{commit13}/lua-%{shortcommit13}.tar.gz Source14: https://github.com/martinmoene/expected-lite/archive/%{commit14}/expected-lite-%{shortcommit14}.tar.gz Source15: https://github.com/Chatterino/certify/archive/%{commit15}/certify-%{shortcommit15}.tar.gz BuildRequires: boost-devel BuildRequires: clang BuildRequires: clang-tools-extra BuildRequires: cmake BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: make BuildRequires: qt6-qtbase-private-devel BuildRequires: cmake(Qt6Concurrent) BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6Gui) BuildRequires: cmake(Qt6Keychain) BuildRequires: cmake(Qt6LinguistTools) BuildRequires: cmake(Qt6Multimedia) BuildRequires: cmake(Qt6Network) BuildRequires: cmake(Qt6Svg) BuildRequires: cmake(Qt6Widgets) BuildRequires: cmake(Qt6Core5Compat) BuildRequires: cmake(RapidJSON) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(websocketpp) BuildRequires: pkgconfig(xkbcommon) Requires: hicolor-icon-theme Requires: qt6-qtsvg Requires: qt6-qtimageformats # Current submodules patched so not possible to build with system packages # * https://github.com/Chatterino/chatterino2/issues/1444 Provides: bundled(certify) = 0~git%{shortcommit15} Provides: bundled(expected-lite) = 0.8.0~git%{shortcommit14} Provides: bundled(libcommuni) = 3.7.0~git%{shortcommit2} Provides: bundled(lua) = 5.4.7~git%{shortcommit13} Provides: bundled(magic_enum) = 0.9.5~git%{shortcommit9} Provides: bundled(miniaudio) = 0.11.21~git%{shortcommit11} Provides: bundled(sanitizers-cmake) = 0~git%{shortcommit10} Provides: bundled(serialize) = 0~git%{shortcommit5} Provides: bundled(settings) = 0~git%{shortcommit3} Provides: bundled(signals) = 0.1.0~git%{shortcommit4} Provides: bundled(sol2) = 3.5.0~git%{shortcommit12} %description Chatterino 2 is a chat client for Twitch.tv. The Chatterino 2 wiki can be found https://wiki.chatterino.com/. %prep %forgesetup %setup -n %{name}-%{tarball_version} -q -D -T -a2 %setup -n %{name}-%{tarball_version} -q -D -T -a3 %setup -n %{name}-%{tarball_version} -q -D -T -a4 %setup -n %{name}-%{tarball_version} -q -D -T -a5 %setup -n %{name}-%{tarball_version} -q -D -T -a9 %setup -n %{name}-%{tarball_version} -q -D -T -a10 %setup -n %{name}-%{tarball_version} -q -D -T -a11 %setup -n %{name}-%{tarball_version} -q -D -T -a12 %setup -n %{name}-%{tarball_version} -q -D -T -a13 %setup -n %{name}-%{tarball_version} -q -D -T -a14 %setup -n %{name}-%{tarball_version} -q -D -T -a15 mv libcommuni-%{commit2}/* lib/libcommuni mv settings-%{commit3}/* lib/settings mv signals-%{commit4}/* lib/signals mv serialize-%{commit5}/* lib/serialize mv magic_enum-%{commit9}/* lib/magic_enum mv miniaudio-%{commit11}/* lib/miniaudio mv sol2-%{commit12}/* lib/sol2 mv lua-%{commit13}/* lib/lua/src mv certify-%{commit15}/* lib/certify mv expected-lite-%{commit14}/* lib/expected-lite mv sanitizers-cmake-%{commit10}/* cmake/sanitizers-cmake %build export GIT_COMMIT=%{chatterino_git_commit} export GIT_HASH=%{chatterino_git_shortcommit} export GIT_RELEASE=%{version} %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_WITH_QT6=ON \ -DUSE_PRECOMPILED_HEADERS=OFF \ -DUSE_SYSTEM_QTKEYCHAIN=ON \ -DBUILD_WITH_QTKEYCHAIN=ON \ -DCHATTERINO_PLUGINS=ON \ %{nil} %cmake_build %install %cmake_install install -Dpm 0644 resources/%{uuid}.appdata.xml \ %{buildroot}%{_metainfodir}/%{uuid}.appdata.xml install -Dpm 0644 resources/icon.png \ %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/chatterino.png %check appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files %license LICENSE %doc README.md BUILDING_ON_LINUX.md docs/ %{_bindir}/chatterino %{_datadir}/applications/*.desktop %{_datadir}/icons/hicolor/*/*/*.png %{_metainfodir}/*.xml %changelog %autochangelog