This commit is contained in:
2026-10-20 23:20:15 +08:00
commit 0426212c71
4 changed files with 158 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
/result
/result-*
*.deb
+20
View File
@@ -0,0 +1,20 @@
# Tuanjie Hub For Nix
Tuanjie Hub 1.4.7,重打包自deb包
## 使用
```sh
nix build
nix run
```
安装到用户环境:
```sh
nix profile add .#tuanjiehub
```
软件包提供 `tuanjiehub` 命令、应用菜单条目、图标和 `tuanjiehub://` 协议关联。在 NixOS 或 Home Manager 配置中,将此项目作为 flake 输入,并将 `inputs.tuanjiehub.packages.x86_64-linux.default` 加入 `environment.systemPackages` 或 `home.packages`。
+35
View File
@@ -0,0 +1,35 @@
{
description = "Tuanjie Hub 1.4.7 repackaged from the official Debian release";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
tuanjiehub-deb = {
url = "file+https://public-cdn.tuanjie.cn/hub/prod/tuanjiehub-amd64.deb";
flake = false;
};
};
outputs =
{ nixpkgs, tuanjiehub-deb, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
hub = pkgs.callPackage ./package.nix { src = tuanjiehub-deb; };
in
{
packages.${system} = {
default = hub;
tuanjiehub = hub;
};
apps.${system}.default = {
type = "app";
program = "${hub}/bin/tuanjiehub";
meta.description = "Tuanjie Hub";
};
checks.${system}.tuanjiehub = hub;
formatter.${system} = pkgs.nixfmt;
};
}
+100
View File
@@ -0,0 +1,100 @@
{
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 ];
};
}