mirror of
https://github.com/Melorise/TuanjieHubForNix.git
synced 2026-11-07 14:49:34 +00:00
init
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
/result
|
||||||
|
/result-*
|
||||||
|
*.deb
|
||||||
@@ -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`。
|
||||||
|
|
||||||
|
|
||||||
@@ -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
@@ -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 ];
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user