nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix

42 lines
1.4 KiB
Nix

{ lib, makeWrapper, symlinkJoin, gnome3, plugins }:
symlinkJoin {
name = "evolution-with-plugins";
paths = [ gnome3.evolution-data-server ] ++ plugins;
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
for i in $out/bin/* $out/libexec/**; do
if [ ! -d $i ]; then
echo wrapping $i
wrapProgram $i \
--set LD_LIBRARY_PATH "$out/lib" \
--set EDS_ADDRESS_BOOK_MODULES "$out/lib/evolution-data-server/addressbook-backends/" \
--set EDS_CALENDAR_MODULES "$out/lib/evolution-data-server/calendar-backends/" \
--set EDS_CAMEL_PROVIDER_DIR "$out/lib/evolution-data-server/camel-providers/" \
--set EDS_REGISTRY_MODULES "$out/lib/evolution-data-server/registry-modules/" \
--set EVOLUTION_MODULEDIR "$out/lib/evolution/modules"
fi
done
fixSymlink () {
local link=$1
local target=$(readlink $link);
local newtarget=$(sed "s@/nix/store/[^/]*/@$out/@" <<< "$target")
if [[ $target != $newtarget ]] && [[ -d $newtarget ]]; then
echo fixing link to point to $newtarget instead of $target
rm $link
ln -s $newtarget $link
fi
}
fixSymlink $out/share/dbus-1/service
fixSymlink $out/lib/systemd/user
for i in $out/share/dbus-1/services/*.service $out/lib/systemd/user/*.service; do
echo fixing service file $i to point to $out
sed -i "s@/nix/store/[^/]*/@$out/@" $i
done
'';
}