Files
TuanjieHubForNix/package.nix
T
2026-10-20 23:20:15 +08:00

101 lines
2.0 KiB
Nix

{
lib,
stdenvNoCC,
libarchive,
buildFHSEnv,
src,
}:
let
version = "1.4.7";
unpacked = stdenvNoCC.mkDerivation {
pname = "tuanjiehub-unpacked";
inherit version src;
nativeBuildInputs = [ libarchive ];
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
installPhase = ''
runHook preInstall
mkdir -p "$out"
bsdtar --extract --to-stdout --file "$src" data.tar.bz2 \
| bsdtar --extract --file - --no-same-owner --directory "$out"
runHook postInstall
'';
};
in
buildFHSEnv {
pname = "tuanjiehub";
inherit version;
targetPkgs =
pkgs: with pkgs; [
alsa-lib
at-spi2-core
cairo
cups
dbus
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
icu
libappindicator-gtk3
libdrm
libgbm
libGL
libnotify
libsecret
libuuid
libx11
libxcb
libxcomposite
libxcursor
libxdamage
libxext
libxfixes
libxi
libxinerama
libxkbcommon
libxrandr
libxrender
libxscrnsaver
libxtst
nspr
nss
openssl
pango
stdenv.cc.cc.lib
udev
xdg-utils
zlib
];
extraBuildCommands = ''
mkdir -p "$out/opt"
cp -a "${unpacked}/opt/". "$out/opt/"
ln -s /opt/tuanjiehub/tuanjiehub "$out/usr/bin/tuanjiehub"
'';
runScript = "/opt/tuanjiehub/tuanjiehub";
extraInstallCommands = ''
mkdir -p "$out/share"
cp -a "${unpacked}/usr/share/". "$out/share/"
substituteInPlace "$out/share/applications/tuanjiehub.desktop" \
--replace-fail 'Exec=/opt/tuanjiehub/tuanjiehub %U' "Exec=$out/bin/tuanjiehub %U"
'';
meta = {
description = "The official Tuanjie Hub";
homepage = "https://tuanjie.cn/";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
mainProgram = "tuanjiehub";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
}