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