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
135 lines
2.3 KiB
Nix
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
|
|
)
|