Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

135 lines
2.3 KiB
Nix

{
stdenv,
lib,
makeWrapper,
wrapGAppsHook3,
autoPatchelfHook,
dpkg,
xorg,
atk,
glib,
pango,
gdk-pixbuf,
cairo,
freetype,
fontconfig,
gtk3,
dbus,
nss,
nspr,
alsa-lib,
cups,
expat,
udev,
libnotify,
xdg-utils,
libgbm,
libglvnd,
libappindicator-gtk3,
}:
# Helper function for building a derivation for Franz and forks.
{
pname,
name,
version,
src,
meta,
extraBuildInputs ? [ ],
...
}@args:
let
cleanedArgs = removeAttrs args [
"pname"
"name"
"version"
"src"
"meta"
"extraBuildInputs"
];
in
stdenv.mkDerivation (
rec {
inherit
pname
version
src
meta
;
# Don't remove runtime deps.
dontPatchELF = true;
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
wrapGAppsHook3
dpkg
];
buildInputs =
extraBuildInputs
++ (with xorg; [
libXi
libXcursor
libXdamage
libXrandr
libXcomposite
libXext
libXfixes
libXrender
libX11
libXtst
libXScrnSaver
])
++ [
libgbm
gtk3
atk
glib
pango
gdk-pixbuf
cairo
freetype
fontconfig
dbus
nss
nspr
alsa-lib
cups
expat
stdenv.cc.cc
];
runtimeDependencies = [
libglvnd
(lib.getLib stdenv.cc.cc)
(lib.getLib udev)
libnotify
libappindicator-gtk3
];
installPhase = ''
mkdir -p $out/bin
cp -r opt $out
ln -s $out/opt/${name}/${pname} $out/bin
# Provide desktop item and icon.
cp -r usr/share $out
substituteInPlace $out/share/applications/${pname}.desktop \
--replace /opt/${name}/${pname} ${pname}
'';
dontWrapGApps = true;
postFixup = ''
# make xdg-open overridable at runtime
wrapProgramShell $out/opt/${name}/${pname} \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \
--suffix PATH : ${xdg-utils}/bin \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}" \
"''${gappsWrapperArgs[@]}"
'';
}
// cleanedArgs
)