File discord.spec of Package discord

#
# spec file for package discord
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#


# Require bash for extglob in install section.
%global _buildshell /bin/bash
%global __requires_exclude ^(libffmpeg|libnode).*
%global __provides_exclude ^(libffmpeg|libnode).*
# This is to enable build with patent encoumbered codecs. Not allowed in OBS
%bcond_with x264
Name:           discord
Version:        0.0.12
Release:        0
Summary:        Voice and Text Chat for Gamers
License:        SUSE-NonFree
Group:          Productivity/Networking/Instant Messenger
URL:            https://discordapp.com/
Source0:        https://dl.discordapp.net/apps/linux/%{version}/%{name}-%{version}.tar.gz
Source2:        discord-symbolic.svg
Source3:        https://raw.githubusercontent.com/flathub/com.discordapp.Discord/master/com.discordapp.Discord.appdata.xml
ExclusiveArch:  x86_64
BuildRequires:  desktop-file-utils
BuildRequires:  hicolor-icon-theme
BuildRequires:  update-desktop-files
BuildRequires:  unzip
Conflicts:      discord
Requires:       libgtk-2_0-0 libnotify-tools libasound2 gconf2 mozilla-nss dbus-1-glib libXtst6 libX11-6 libstdc++6 libc++1 libatomic1

#Patent free ffmpeg config
#Snippets from https://github.com/orionhealth/electron-packager-plugin-non-proprietary-codecs-ffmpeg/blob/master/src/downloadFFMPEG.js
%define electron_Ver 4.0.1
%define ffmpeg_arch x64
%define ffmpeg_platform linux
%define ffmpeg_File_Name ffmpeg-v%{electron_Ver}-%{ffmpeg_platform}-%{ffmpeg_arch}.zip
#eg. https://github.com/electron/electron/releases/download/v9.2.0/ffmpeg-v9.2.0-linux-x64.zip
Source1: https://github.com/electron/electron/releases/download/v%{electron_Ver}/%{ffmpeg_File_Name}


%description
Discord is a proprietary freeware instant messaging
and VoIP application and digital  distribution platform 
designed for creating communities
ranging from gamers to education and businesses.
Discord specializes in text, image,
video and audio communication between users in a chat channel.

%prep
%setup -q -n Discord
%setup -q -T -a 1 -c -n ffmpeg

%build
%if %{with x264}
# nothing to do
:
%else
rm %{_builddir}/Discord/libffmpeg.so
cp %{_builddir}/ffmpeg/libffmpeg.so %{_builddir}/Discord/
%endif

%install
cd %{_builddir}/Discord
install -Dm644 discord.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
desktop-file-install \
  --dir=%{buildroot}%{_datadir}/applications \
  --set-key=Exec \
  --set-value=%{_bindir}/%{name} \
  %{name}.desktop

install -Dm755 chrome-sandbox %{buildroot}%{_libdir}/%{name}/chrome-sandbox
install -Dm755 libffmpeg.so %{buildroot}%{_libdir}/%{name}/libffmpeg.so
install -Dm755 libEGL.so %{buildroot}%{_libdir}/%{name}/libEGL.so
install -Dm755 libGLESv2.so %{buildroot}%{_libdir}/%{name}/libGLESv2.so
install -Dm644 %SOURCE1 %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{name}-symbolic.svg
install -Dm644 %SOURCE2 %{buildroot}%{_datadir}/appdata/com.discordapp.Discord.appdata.xml

# install share
mkdir -p %{buildroot}%{_libdir}/%{name}
shopt -s extglob
cp -r !(discord*|*.so) %{buildroot}%{_libdir}/%{name}
shopt -u extglob

# fix missing icon in some environments
ln -sf %{_datadir}/icons/hicolor/256x256/apps/%{name}.png %{buildroot}%{_libdir}/%{name}

# Executable checks for resources in its directory so it cannot be in bin.
mkdir -p %{buildroot}%{_bindir}
ln -s %{_libdir}/%{name}/Discord %{buildroot}%{_bindir}/%{name}

%post
%if 0%{?suse_version} < 1500
%desktop_database_post
%endif
chmod 0755 %{_libdir}/%{name}/Discord

%if 0%{?suse_version} < 1500 
%postun
%desktop_database_postun
%endif

%files
%defattr(-,root,root)
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
%{_datadir}/icons/hicolor/symbolic/apps/%{name}-symbolic.svg
%{_datadir}/appdata/com.discordapp.Discord.appdata.xml
%{_libdir}/%{name}

%changelog
openSUSE Build Service is sponsored by