File stremio.spec of Package stremio

#
# spec file for package stremio
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define BUILD_DIR    build
%define INSTALL_DIR  %{_libdir}/%{name}
%define ICON_BIN     smartcode-stremio.svg
%define NON_TRAY     smartcode-stremio
%define TRAY         smartcode-stremio-tray
%define DESKTOP      smartcode-stremio.desktop
%define SERVER_JS    server.js
%define STREMIO_BIN  %{BUILD_DIR}/%{name}

%define stremioVersion 4.4.159.19.7fc675d

Name:           stremio
Version:        4.4.159
Release:        0
Summary:        A modern media center.
License:        GPL-3.0
URL:            https://github.com/Stremio/stremio-shell
Source:         %{name}-%{stremioVersion}.tar.gz
Source1:        server.js
BuildRequires:  mpv-devel libcaca-devel ncurses5-devel libQtQuick5 libQt5WebView5
BuildRequires:  SDL2-devel qt5ct messagelib-devel cmake make
BuildRequires:  libqt5-qtwebengine-devel libqt5-qtbase-devel rsvg-convert wget
BuildRequires:  libopenssl-devel rpmdevtools nodejs-default
BuildRequires:  libQt5WebChannel5-imports libQt5OpenGL-devel
BuildRequires:  libqt5-qtquickcontrols libqt5-qtquickcontrols2
Requires:       nodejs-default

%description
A modern media center that's a one-stop solution for your video entertainment. You discover, watch and organize video content from easy to install addons.

%prep
%setup -q -n %{name}-%{stremioVersion}

%build
mkdir -p %{BUILD_DIR}
cd %{BUILD_DIR} && cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%{buildroot} ..
cd ..
make -j -C %{BUILD_DIR}

%install
rm -rf %{buildroot}
make -C %{BUILD_DIR} install

install -Dm 644 %{SOURCE1} %{buildroot}/%{INSTALL_DIR}/%{SERVER_JS}

mkdir -p %{buildroot}%{_datadir}/applications
install -Dm 644 %{DESKTOP} %{buildroot}%{_datadir}/applications/%{name}.desktop

mkdir -p icons
cd icons && printf 16,22,24,32,64,128 | xargs -I^ -d, sh -c 'rsvg-convert ../images/stremio.svg -w ^ -o smartcode-stremio_^.png && rsvg-convert ../images/stremio_tray_white.svg -w ^ -o smartcode-stremio-tray_^.png'

cd ..
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{128x128,64x64,32x32,16x16,22x22,24x24}/apps
cp icons/%{TRAY}_128.png      %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
cp icons/%{NON_TRAY}_128.png  %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
cp icons/%{TRAY}_64.png       %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
cp icons/%{NON_TRAY}_64.png   %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
cp icons/%{TRAY}_32.png       %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
cp icons/%{NON_TRAY}_32.png   %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
cp icons/%{TRAY}_16.png       %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
cp icons/%{NON_TRAY}_16.png   %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
cp icons/%{TRAY}_22.png       %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{name}.png
cp icons/%{NON_TRAY}_22.png   %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{name}.png
cp icons/%{TRAY}_24.png       %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{name}.png
cp icons/%{NON_TRAY}_24.png   %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{name}.png

ln -s $(sh -c "which node") %{buildroot}%{INSTALL_DIR}/node

mkdir -p %{buildroot}%{_bindir}
mv %{buildroot}/opt/%{name}/%{name} %{buildroot}%{INSTALL_DIR}
ln -s %{INSTALL_DIR}/%{name} %{buildroot}%{_bindir}/%{name}
rmdir %{buildroot}/opt/%{name}

%files
%defattr(-,root,root)
%license LICENSE.md
%doc  README.md
%{_libdir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor
%{_datadir}/icons/hicolor/128x128
%{_datadir}/icons/hicolor/128x128/apps/*
%{_datadir}/icons/hicolor/64x64
%{_datadir}/icons/hicolor/64x64/apps/*
%{_datadir}/icons/hicolor/32x32
%{_datadir}/icons/hicolor/32x32/apps/*
%{_datadir}/icons/hicolor/16x16
%{_datadir}/icons/hicolor/16x16/apps/*
%{_datadir}/icons/hicolor/22x22
%{_datadir}/icons/hicolor/22x22/apps/*
%{_datadir}/icons/hicolor/24x24
%{_datadir}/icons/hicolor/24x24/apps/*
%{_bindir}/*

%changelog
openSUSE Build Service is sponsored by