Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25778,6 +25778,12 @@
githubId = 144952;
name = "Suvash Thapaliya";
};
svecco = {
email = "chenrui@sve.moe";
github = "Svecco";
githubId = 246923954;
name = "Svecco";
};
sveitser = {
email = "sveitser@gmail.com";
github = "sveitser";
Expand Down
44 changes: 44 additions & 0 deletions pkgs/by-name/di/dingtalk/darwin.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
pname,
version,
src,
meta,
stdenvNoCC,
undmg,
unzip,
lib,
xar,
cpio,
gzip,
pbzx,
xarMinimal,
}:

stdenvNoCC.mkDerivation {
inherit
pname
version
src
meta
;

nativeBuildInputs = [
cpio
pbzx
undmg
xarMinimal
];
postUnpack = ''
xar -x -f DingTalkInstaller.pkg
pbzx -n ./DingTalk.pkg/Payload | cpio -i
'';
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -r ./Applications/DingTalk.app $out/Applications/
runHook postInstall
'';

passthru.updateScript = ./update.sh;
}
172 changes: 172 additions & 0 deletions pkgs/by-name/di/dingtalk/linux.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
pname,
version,
src,
meta,
stdenv,
autoPatchelfHook,
makeWrapper,
qt5,
dpkg,
copyDesktopItems,
makeDesktopItem,
lib,
alsa-lib,
apr,
aprutil,
at-spi2-atk,
at-spi2-core,
cups,
gtk3,
libpulseaudio,
libgbm,
nspr,
nss,
glib,
gdk-pixbuf,
freetype,
fontconfig,
libdrm,
libxkbcommon,
libGLU,
libglvnd,
udev,
libuuid,
libappindicator-gtk3,
libdbusmenu-gtk3,
libXt,
libXmu,
pango,
libx11,
libxcb,
libxcomposite,
libxcursor,
libxdamage,
libxext,
libxfixes,
libxi,
libxinerama,
libxrandr,
libxrender,
libxscrnsaver,
libxtst,
}:

let
libraries = [
alsa-lib
apr
aprutil
at-spi2-atk
at-spi2-core
cups
gtk3
libpulseaudio
libgbm
nspr
nss
qt5.qtbase
qt5.qtmultimedia
qt5.qtsvg
qt5.qtx11extras
libx11
libxcb
libxcomposite
libxcursor
libxdamage
libxext
libxfixes
libxi
libxinerama
libxrandr
libxrender
libxscrnsaver
libxtst
glib
gdk-pixbuf
freetype
fontconfig
libdrm
libxkbcommon
libGLU
libglvnd
udev
libuuid
libappindicator-gtk3
libdbusmenu-gtk3
libXt
libXmu
pango
];
in
stdenv.mkDerivation {
inherit
pname
version
src
meta
;

nativeBuildInputs = [
autoPatchelfHook
makeWrapper
qt5.wrapQtAppsHook
copyDesktopItems
dpkg
];

buildInputs = libraries;
dontWrapQtApps = true;

installPhase = ''
runHook preInstall
mkdir -p $out/libexec/dingtalk

mv opt/apps/com.alibabainc.dingtalk/files/version $out/libexec/dingtalk/version

mv opt/apps/com.alibabainc.dingtalk/files/*-Release.*/* $out/libexec/dingtalk/

rm -f $out/libexec/dingtalk/{*.a,*.la,*.prl,dingtalk_crash_report,dingtalk_updater,libapr*,libcurl.so.*}
rm -f $out/libexec/dingtalk/{libdouble-conversion.so.*,libEGL*,libfontconfig*,libfreetype*,libfribidi*,libgdk*}
rm -f $out/libexec/dingtalk/{libGLES*,libgtk-x11-2.0.so.*,libharfbuzz*,libicu*,libidn2*,libjpeg*,libm.so.*,libnghttp2*}
rm -f $out/libexec/dingtalk/{libpango-1.0.*,libpangocairo-1.0.*,libpangoft2-1.0.*,libpcre2*,libpng*,libpsl*,libQt5*,libssh2*}
rm -f $out/libexec/dingtalk/{libstdc++.so.6,libstdc++*,libunistring*,libvk*,libvulkan*,libxcb*,libz*,libgbm*,libharfbuzz*}
rm -rf $out/libexec/dingtalk/{engines-1_1,imageformats,platform*,swiftshader,xcbglintegrations}
rm -rf $out/libexec/dingtalk/Resources/{i18n/tool/*.exe,qss/mac}

makeWrapper $out/libexec/dingtalk/com.alibabainc.dingtalk $out/bin/dingtalk \
"''${qtWrapperArgs[@]}" \
--chdir $out/libexec/dingtalk \
--unset WAYLAND_DISPLAY \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}"

install -Dm644 $out/libexec/dingtalk/Resources/image/common/about/logo.png $out/share/icons/hicolor/512x512/apps/dingtalk.png

runHook postInstall
'';

autoPatchelfIgnoreMissingDeps = [
"libgdkglext-x11-1.0.so.0"
"libpangox-1.0.so.0"
"libgtk-x11-2.0.so.0"
"libgdk-x11-2.0.so.0"
];

desktopItems = [
(makeDesktopItem {
name = "dingtalk";
desktopName = "Dingtalk";
genericName = "Enterprise Communication Tool";
categories = [ "Chat" ];
exec = "dingtalk %u";
icon = "dingtalk";
keywords = [ "dingtalk" ];
mimeTypes = [ "x-scheme-handler/dingtalk" ];
extraConfig = {
"Name[zh_CN]" = "钉钉";
"Name[zh_TW]" = "釘釘";
};
})
];
passthru.updateScript = ./update.sh;
}
38 changes: 38 additions & 0 deletions pkgs/by-name/di/dingtalk/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
callPackage,
fetchurl,
lib,
stdenv,
stdenvNoCC,
}:

let
sources = import ./sources.nix { inherit fetchurl; };
source =
sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
pname = "dingtalk";
inherit (source) version src;
in
callPackage (if stdenv.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix) {
inherit pname;
inherit (source) version src;

meta = {
description = "Enterprise-level communication platform developed by Alibaba";
homepage = "https://www.dingtalk.com";
license = lib.licenses.unfree;
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
svecco
prince213
];
mainProgram = "dingtalk";
};
}
34 changes: 34 additions & 0 deletions pkgs/by-name/di/dingtalk/sources.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Generated by ./update.sh - do not update manually.
# Last updated: 2026-02-23

{ fetchurl }:
{
aarch64-darwin = {
version = "8.2.10";
src = fetchurl {
url = "https://dtapp-pub.dingtalk.com/dingtalk-desktop/mac_dmg/Release/DingTalk_v8.2.10-Installer_52852687_arm64.dmg";
hash = "sha256-LcpK9d48w91nEGkGOtVwyPjUoHCZauxJ1RdF/z+TMZM=";
};
};
x86_64-darwin = {
version = "8.2.10";
src = fetchurl {
url = "https://dtapp-pub.dingtalk.com/dingtalk-desktop/mac_dmg/Release/DingTalk_v8.2.10-Installer_52852687_universal.dmg";
hash = "sha256-ptPZdrIbtWrx0D+cTcbDIqRhRuuYXoBofczPQxdCweg=";
};
};
aarch64-linux = {
version = "8.1.0.6021101";
src = fetchurl {
url = "https://dtapp-pub.dingtalk.com/dingtalk-desktop/xc_dingtalk_update/linux_deb/Release/com.alibabainc.dingtalk_8.1.0.6021101_arm64.deb";
hash = "sha256-SEKPcpWGmBWQDDQYZ7u9J5sOsXI2QofdeLshzt+0me8=";
};
};
x86_64-linux = {
version = "8.1.0.6021101";
src = fetchurl {
url = "https://dtapp-pub.dingtalk.com/dingtalk-desktop/xc_dingtalk_update/linux_deb/Release/com.alibabainc.dingtalk_8.1.0.6021101_amd64.deb";
hash = "sha256-7EkvEv6r7ONHAupH48/BoWSuLo2r3umwXnSjpeTeIdU=";
};
};
}
Loading
Loading