File wechat.spec of Package wechat

#
# spec file for package wechat
#

%global debug_package %{nil}
%global __requires_exclude ^lib.*$
%define program_version 4.0.1

Name:           wechat
Version:        %{program_version}
Release:        1
Summary:        Wechat from Tencent
License:        SUSE-NonFree
Group:          Productivity/Office/Suite
URL:            https://linux.weixin.qq.com/
Source0:        WeChatLinux_x86_64.rpm
Source1:        wechat.rpmlintrc
AutoProv:       no
BuildRequires:  cpio
BuildRequires:  desktop-file-utils
BuildRequires:  hicolor-icon-theme
BuildRequires:  chrpath
BuildRequires:  fdupes
ExclusiveArch:  x86_64

%description
Wechat from Tencent

%prep

%build

%install
# Extract rpm file
# -i: extract
# -d: create directory when necessary
# -m: preserve modification time
rpm2cpio %{SOURCE0} | cpio -idm -D %{buildroot}

# Fix invalid RPATH
# bad example: /data/devops-wconan-component/workspace/p-7b54498edf6c4de19e8362189ec5d6be/src/ilink_network/1f865947_1722482465/ilink-network/libs/Release/linux-x86_64-gcc-7.5.0/libs

STRIP_FILE_LIST=$(find %{buildroot}/opt/ -type f -name "*.so*" -o -type f -name wechat -o -name crashpad_handler -o -name WeChatAppEx -o -name "*.node" -o -name wxocr -o -name wxplayer)

for f in ${STRIP_FILE_LIST}
do
    RPATH_DIR_LIST=$(chrpath -l ${f}|cut -d' ' -f2|cut -d'=' -f2|tr ':' '\n')
# No RPATH
    [ "${RPATH_DIR_LIST}" = "no" ] && continue
    RPATH_DIR=""

    for p in ${RPATH_DIR_LIST}
    do
        [ -z "${p}" ] && continue
        [[ "${p}" =~ "/home" ]] && continue
        [[ "${p}" =~ "/data" ]] && continue
        [ -z "${RPATH_DIR}" ] && RPATH_DIR=${p} || RPATH_DIR=${RPATH_DIR}":"${p}
    done
# Remove invalid RPATH
    [ -z "${RPATH_DIR}" ] && chrpath --delete ${f} && continue
    chrpath -r "${RPATH_DIR}" ${f}
done

echo 'StartupWMClass=wechat' >> %{buildroot}%{_datadir}/applications/wechat.desktop
echo 'Keywords=wechat;weixin;' >> %{buildroot}%{_datadir}/applications/wechat.desktop

%if 0%{?suse_version} || 0%{?fedora} || 0%{?mageia}
%fdupes -s %{buildroot}/opt/
%endif

# DISABLE RPath Check
export NO_BRP_CHECK_RPATH=true

%files
%{_datadir}/applications/wechat.desktop
%{_bindir}/wechat
/opt/wechat

%changelog
openSUSE Build Service is sponsored by