yep, more dotfiles

feat: add two broken packages greenlight and overlayed

Changed files
+222 -8
pkgs
+5 -3
pkgs/default.nix
···
{ self, system, ... }@pkgs:
let
-
inherit (self.inputs) git-leave radicle;
in
{
-
thorium = pkgs.callPackage ./thorium.nix { };
greenlight = pkgs.callPackage ./greenlight.nix { };
# Replace with custom crafted package
findUnicode = pkgs.callPackage ./findUnicode.nix { };
# Import packages defined in foreign repositories
-
# IDEA: move to a NUR repository
inherit (git-leave.packages.${system}) git-leave;
inherit (radicle.packages.${system}) radicle-cli radicle-remote-helper radicle-httpd radicle-node;
}
···
{ self, system, ... }@pkgs:
let
+
inherit (self.inputs) agenix git-leave mind radicle;
in
{
greenlight = pkgs.callPackage ./greenlight.nix { };
+
overlayed = pkgs.callPackage ./overlayed.nix { };
+
thorium = pkgs.callPackage ./thorium.nix { };
# Replace with custom crafted package
findUnicode = pkgs.callPackage ./findUnicode.nix { };
# Import packages defined in foreign repositories
+
inherit (agenix.packages.${system}) agenix;
inherit (git-leave.packages.${system}) git-leave;
+
inherit (mind.packages.${system}) mind;
inherit (radicle.packages.${system}) radicle-cli radicle-remote-helper radicle-httpd radicle-node;
}
+79 -5
pkgs/greenlight.nix
···
-
{ dpkg, fetchurl, lib, stdenv }: stdenv.mkDerivation rec {
pname = "greenlight";
-
version = "2.0.0-beta15";
src = fetchurl {
url = "https://github.com/unknownskl/greenlight/releases/download/v${version}/greenlight_${version}_amd64.deb";
-
hash = "sha256-0MYd3tsKwy/xtXULrPfwznKqBRiVqGfcMCJ+I0u8JJw=";
};
-
unpackPhase = "dpkg-deb -x $src $out";
-
nativeBuildInputs = [ dpkg ];
meta = with lib; {
homepage = "https://github.com/unknownskl/greenlight";
···
+
{ dpkg
+
, fetchurl
+
, lib
+
, stdenv
+
# Libraries
+
, glib
+
, nss
+
, nspr
+
, at-spi2-atk
+
, cups
+
, dbus
+
, libdrm
+
, gtk3
+
, pango
+
, cairo
+
, xorg
+
, mesa
+
, expat
+
, libxkbcommon
+
, alsa-lib
+
, libglvnd
+
}:
+
+
let
+
rpath = lib.makeLibraryPath [
+
glib
+
nss
+
nspr
+
at-spi2-atk
+
cups
+
dbus
+
libdrm
+
gtk3
+
pango
+
cairo
+
xorg.libX11
+
xorg.libXcomposite
+
xorg.libXdamage
+
xorg.libXext
+
xorg.libXfixes
+
xorg.libXrandr
+
mesa
+
expat
+
xorg.libxcb
+
libxkbcommon
+
alsa-lib
+
+
libglvnd
+
];
+
in
+
stdenv.mkDerivation
+
rec {
pname = "greenlight";
+
version = "2.0.1";
src = fetchurl {
url = "https://github.com/unknownskl/greenlight/releases/download/v${version}/greenlight_${version}_amd64.deb";
+
hash = "sha256-Qr5CVAzfIssXvWchy573KpIiHH6UbC9kJ+4yfAreF+o=";
};
+
nativeBuildInputs = [ dpkg ];
+
unpackPhase = ''
+
mkdir -p $out
+
dpkg-deb -x $src $out
+
cp -av $out/usr/* $out
+
cp -av $out/opt/Greenlight $out/share/greenlight
+
rm -rf $out/opt $out/usr
+
+
mkdir -p $out/bin
+
ln -s "$out/share/greenlight/greenlight" "$out/bin/greenlight"
+
+
# Otherwise it looks "suspicious"
+
chmod -R g-w $out
+
'';
+
+
postFixup = ''
+
for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do
+
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+
patchelf --set-rpath ${rpath}:$out/share/greenlight $file || true
+
done
+
+
# Fix the desktop link
+
substituteInPlace $out/share/applications/greenlight.desktop \
+
--replace /usr/bin/ ""
+
'';
meta = with lib; {
homepage = "https://github.com/unknownskl/greenlight";
+138
pkgs/overlayed.nix
···
···
+
{ lib
+
, stdenv
+
, stdenvNoCC
+
, rustPlatform
+
, fetchFromGitHub
+
, wrapGAppsHook
+
, cargo
+
, rustc
+
, cargo-tauri
+
, pkg-config
+
, nodePackages
+
, esbuild
+
, buildGoModule
+
, jq
+
, moreutils
+
, libayatana-appindicator
+
, gtk3
+
, webkitgtk
+
, libsoup
+
, openssl
+
, xdotool
+
, cacert
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "overlayed";
+
version = "0.2.0";
+
+
src = fetchFromGitHub {
+
# owner = "Hacksore";
+
owner = "mrnossiom";
+
repo = pname;
+
# rev = "v${version}";
+
# rev = "f6d5ce8695253e1189e25234c895ac487ee7cde1";
+
rev = "ce9a82feb552e5da588487ff0a9e10a55bfc82ca";
+
hash = "sha256-IA9jERrU3s5N7lzfR4/in1KZojOB1Exyb26pFmzucU4=";
+
};
+
+
sourceRoot = "${src.name}/apps/desktop/src-tauri";
+
+
postPatch = ''
+
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
+
--replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
+
'';
+
+
pnpmDeps = stdenvNoCC.mkDerivation {
+
pname = "${pname}-pnpm-deps";
+
inherit src version;
+
+
nativeBuildInputs = [
+
jq
+
moreutils
+
nodePackages.pnpm
+
cacert
+
];
+
+
installPhase = ''
+
export HOME=$(mktemp -d)
+
pnpm config set store-dir $out
+
# use --ignore-script and --no-optional to avoid downloading binaries
+
# use --frozen-lockfile to avoid checking git deps
+
pnpm install --frozen-lockfile --no-optional --ignore-script
+
+
# Remove timestamp and sort the json files
+
rm -rf $out/v3/tmp
+
for f in $(find $out -name "*.json"); do
+
sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
+
jq --sort-keys . $f | sponge $f
+
done
+
'';
+
+
dontFixup = true;
+
outputHashMode = "recursive";
+
outputHash = "sha256-uml2jIwQmwj8JoScuebl04526mff+7+8gSUZwO/p9fc=";
+
};
+
+
cargoDeps = rustPlatform.importCargoLock {
+
lockFile = "${src}/apps/desktop/src-tauri/Cargo.lock";
+
outputHashes = {
+
"tauri-plugin-websocket-0.0.0" = "sha256-pxAqQHpSORuPIxxZnVsfQRc0CTKvyGD5PRnb7B2kt70=";
+
};
+
};
+
+
nativeBuildInputs = [
+
rustPlatform.cargoSetupHook
+
cargo
+
rustc
+
cargo-tauri
+
wrapGAppsHook
+
nodePackages.pnpm
+
pkg-config
+
];
+
+
buildInputs = [
+
gtk3
+
libsoup
+
libayatana-appindicator
+
openssl
+
webkitgtk
+
xdotool
+
];
+
+
ESBUILD_BINARY_PATH = "${lib.getExe (esbuild.override {
+
buildGoModule = args: buildGoModule (args // rec {
+
version = "0.18.20";
+
src = fetchFromGitHub {
+
owner = "evanw";
+
repo = "esbuild";
+
rev = "v${version}";
+
hash = "sha256-mED3h+mY+4H465m02ewFK/BgA1i/PQ+ksUNxBlgpUoI=";
+
};
+
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
+
});
+
})}";
+
+
preBuild = ''
+
export HOME=$(mktemp -d)
+
pnpm config set store-dir ${pnpmDeps}
+
chmod -R +w ../../..
+
pnpm install --offline --frozen-lockfile --no-optional --ignore-script
+
chmod -R +w ../../../node_modules
+
pnpm rebuild
+
# Use cargo-tauri from nixpkgs instead of pnpm tauri from npm
+
cargo tauri build -b deb
+
'';
+
+
preInstall = ''
+
mv target/release/bundle/deb/*/data/usr/ $out
+
'';
+
+
meta = with lib; {
+
description = "A cross-platform translation software";
+
homepage = "https://pot.pylogmon.com";
+
platforms = platforms.linux;
+
license = licenses.gpl3Only;
+
maintainers = with maintainers; [ "mrnossiom" ];
+
};
+
}