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