42 lines
1.4 KiB
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
|
|
'';
|
|
}
|