Skip to content

Commit

Permalink
net-im/dingtalk: add 7.1.0.31017
Browse files Browse the repository at this point in the history
  • Loading branch information
liangyongxiang committed Nov 10, 2023
1 parent 78b9f8c commit 42c61e4
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-im/dingtalk/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ DIST cairo-1.17.4-5-x86_64.pkg.tar.zst 651201 BLAKE2B 7657769ce48cfd3cde35fe71d0
DIST com.alibabainc.dingtalk_1.4.0.20909_amd64.deb 233899420 BLAKE2B 50d575240000077c01d700ae3157ceb0c58e21e67a1f63f69fa8215b18c1186439e0d2e0d4ed313f5967164df45604f34ea44657e93d1df21802f82d18dc0b7b SHA512 acf4150268e88ea6d3c2c7c6359417143c22a4ac6a5c9f853f05bbfe9798e3962a6aa9ec7c7f4a3708e1ff1b89e726ceb75b48483bf5e4ff32b926e44ffce761
DIST com.alibabainc.dingtalk_1.7.0.30424_amd64.deb 246177912 BLAKE2B 3a568f5f3a6f3f0eded8213d964594ab1c78f355a732f05154b32494e0ef1b1cb9161eec52edbdbb795104d3b659dc0548f23a1bf3abf03b7875b5fc9b9e601a SHA512 7ac80fce6f65b6d6cdbc38f740d31a8d0bceeb284bed341a0641d901fe46b9534699b25f0f2f3420ddfce5779f612777c5215ed4ad9e8f9a14c45445183e3cdc
DIST com.alibabainc.dingtalk_7.0.40.30706_amd64.deb 248740444 BLAKE2B 3bf677efe06da1f3ddf1ed45097ad8c62b599a9037705cc582a3e0d69ae6f8a67cff29b01ceef475c8f6faadcf96505bf479bd3e5e95522bfc37046bcc93bdcc SHA512 cb6b5617a6026378c04f2ac6c3fc20b67cae0741669ec5df3718d1e170720fd391921b85a211fe786138cffd65dc7f1519d3a15589b718c76f83691659463d3a
DIST com.alibabainc.dingtalk_7.1.0.31017_amd64.deb 263272704 BLAKE2B 19de380ee37b2c387d5808f4cc09897ff9f5f08ddd371d99624bd7aeb12869d50dd85d7101efa6f1b7ac2e86ad5a6d23c3d6dc49891bd9cf22ab12407a769d92 SHA512 d3507ba93c51b74cd64022802348ccb452b32193d413da635befb8c71dc97719732c8b2e8820a183002c593b033ed8d950ab17069e0870aaf534afa55c04dc7d
126 changes: 126 additions & 0 deletions net-im/dingtalk/dingtalk-7.1.0.31017.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

MY_PGK_NAME="com.alibabainc.dingtalk"
inherit desktop unpacker xdg

DESCRIPTION="Communication platform that supports video and audio conferencing"
HOMEPAGE="https://gov.dingtalk.com"
SRC_URI="https://dtapp-pub.dingtalk.com/dingtalk-desktop/xc_dingtalk_update/linux_deb/Release/com.alibabainc.${PN}_${PV}_amd64.deb"

LICENSE="all-rights-reserved"
SLOT="0"
KEYWORDS="-* ~amd64"

RESTRICT="strip mirror bindist"

RDEPEND="
dev-libs/libthai
dev-qt/qtgui
media-libs/tiff-compat:4
media-libs/libpulse
media-video/rtmpdump
net-misc/curl
net-nds/openldap
sys-libs/glibc
sys-libs/zlib
sys-process/procps
x11-libs/gtk+:2
x11-libs/gtk+:3
x11-libs/libXScrnSaver
virtual/libcrypt
"

DEPEND="${RDEPEND}"

BDEPEND="dev-util/patchelf"

S=${WORKDIR}

QA_PREBUILT="*"

src_install() {
# Install scalable icon
doicon -s scalable "${FILESDIR}"/dingtalk.svg
# Remove the libraries that break compatibility in modern systems
# Dingtalk will use the system libs instead
MY_VERSION=$(cat "${S}"/opt/apps/"${MY_PGK_NAME}"/files/version)
# Use system stdc++
rm -f "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}"/libstdc++* || die
# Use system glibc
rm -f "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}"/libm.so* || die
# Use system zlib
rm -f "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}"/libz* || die
# Use system libcurl, fix preserved depend problem
rm -f "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}"/libcurl.so* || die
# use system freetype, fix undefined symbol: FT_Get_Color_Glyph_Layer
rm -rf "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}"/libfreetype.so* || die

# Set RPATH for preserve-libs handling
pushd "${S}"/opt/apps/"${MY_PGK_NAME}"/files/"${MY_VERSION}" || die
local x
for x in $(find) ; do
# Use \x7fELF header to separate ELF executables and libraries
[[ -f ${x} && $(od -t x1 -N 4 "${x}") == *"7f 45 4c 46"* ]] || continue
local RPATH_ROOT="/opt/apps/${MY_PGK_NAME}/files/${MY_VERSION}"
patchelf --set-rpath "${RPATH_ROOT}/:${RPATH_ROOT}/swiftshader/:${RPATH_ROOT}/platforminputcontexts/:${RPATH_ROOT}/imageformats/" "${x}" || \
die "patchelf failed on ${x}"
done
popd || die
# fix ldd pattern error
sed -i 's/libc_version=.*/libc_version=`ldd --version | grep ldd | rev | cut -d" " -f1 | rev`/g' "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh || die
# Fix fcitx5
sed -i "s/export XMODIFIERS/#export XMODIFIERS/g" "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh || die
sed -i "s/export QT_IM_MODULE/#export QT_IM_MODULE/g" "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh || die

cat >> "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.head <<- EOF || die
#!/bin/sh
if [ -z "\${QT_IM_MODULE}" ]
then
if [ -n "\$(pidof fcitx5)" ]
then
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
elif [ -n "\$(pidof ibus-daemon)" ]
then
export XMODIFIERS="@im=ibus"
export QT_IM_MODULE=ibus
elif [ -n "\$(pidof fcitx)" ]
then
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
fi
fi
EOF

cat "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.head "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh > "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.new || die
cat "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.new > "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh || die
rm "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.head "${S}"/opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh.new || die

# Add dingtalk command
mkdir -p "${S}"/usr/bin/ || die
ln -s /opt/apps/"${MY_PGK_NAME}"/files/Elevator.sh "${S}"/usr/bin/dingtalk || die

# Fix file path and desktop files
sed -E -i 's/^Icon=.*$/Icon=dingtalk/g' "${S}"/opt/apps/"${MY_PGK_NAME}"/entries/applications/*.desktop || die

mkdir -p usr/share/applications || die
mv "${S}"/opt/apps/"${MY_PGK_NAME}"/entries/applications/"${MY_PGK_NAME}".desktop usr/share/applications/ || die

# Install package and fix permissions
insinto /opt/apps
doins -r opt/apps/${MY_PGK_NAME}
insinto /usr
doins -r usr/*

pushd "${S}" || die
for x in $(find "opt/apps/${MY_PGK_NAME}") ; do
# Fix shell script permissions
[[ "${x: -3}" == ".sh" ]] && fperms 0755 "/${x}"
# Use \x7fELF header to separate ELF executables and libraries
[[ -f ${x} && $(od -t x1 -N 4 "${x}") == *"7f 45 4c 46"* ]] && fperms 0755 "/${x}"
done
popd || die
}

0 comments on commit 42c61e4

Please sign in to comment.