@@ -97,27 +97,43 @@ stdenv.mkDerivation (finalAttrs: {
9797 '' }
9898 '' ;
9999
100- postInstall = ''
100+ postInstall = ''
101101 # Move the redirected to proper directory.
102102 # There appear to be no references to the install directories
103103 # so changing them does not cause issues.
104104 mv "$out/nix/store"/*/* "$out"
105105 rmdir "$out/nix/store"/* "$out/nix/store" "$out/nix"
106- mv "$out/lib/plv8-${ finalAttrs . version } .so" "$out/lib/plv8.so"
107- ln -s "$out/lib/plv8.so" "$out/lib/plv8-${ finalAttrs . version } .so"
108- sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plv8.control"
109- sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plcoffee.control"
110- sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plls.control"
111- ${ lib . optionalString stdenv . isDarwin ''
112- install_name_tool -add_rpath "${ v8 } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
113- install_name_tool -add_rpath "${ postgresql } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
114- install_name_tool -add_rpath "${ stdenv . cc . cc . lib } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
115- install_name_tool -change @rpath/libv8_monolith.dylib ${ v8 } /lib/libv8_monolith.dylib $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
116- '' }
117106
118- ${ lib . optionalString ( ! stdenv . isDarwin ) ''
119- ${ patchelf } /bin/patchelf --set-rpath "${ v8 } /lib:${ postgresql } /lib:${ stdenv . cc . cc . lib } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
120- '' }
107+ # Handle different PostgreSQL versions
108+ if [ "${ lib . versions . major postgresql . version } " = "15" ]; then
109+ mv "$out/lib/plv8-${ finalAttrs . version } .so" "$out/lib/plv8.so"
110+ ln -s "$out/lib/plv8.so" "$out/lib/plv8-${ finalAttrs . version } .so"
111+ sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plv8.control"
112+ sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plcoffee.control"
113+ sed -i 's|module_pathname = '"'"'$libdir/plv8-[0-9.]*'"'"'|module_pathname = '"'"'$libdir/plv8'"'"'|' "$out/share/postgresql/extension/plls.control"
114+
115+ ${ lib . optionalString stdenv . isDarwin ''
116+ install_name_tool -add_rpath "${ v8 } /lib" $out/lib/plv8.so
117+ install_name_tool -add_rpath "${ postgresql } /lib" $out/lib/plv8.so
118+ install_name_tool -add_rpath "${ stdenv . cc . cc . lib } /lib" $out/lib/plv8.so
119+ install_name_tool -change @rpath/libv8_monolith.dylib ${ v8 } /lib/libv8_monolith.dylib $out/lib/plv8.so
120+ '' }
121+
122+ ${ lib . optionalString ( ! stdenv . isDarwin ) ''
123+ ${ patchelf } /bin/patchelf --set-rpath "${ v8 } /lib:${ postgresql } /lib:${ stdenv . cc . cc . lib } /lib" $out/lib/plv8.so
124+ '' }
125+ else
126+ ${ lib . optionalString stdenv . isDarwin ''
127+ install_name_tool -add_rpath "${ v8 } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
128+ install_name_tool -add_rpath "${ postgresql } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
129+ install_name_tool -add_rpath "${ stdenv . cc . cc . lib } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
130+ install_name_tool -change @rpath/libv8_monolith.dylib ${ v8 } /lib/libv8_monolith.dylib $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
131+ '' }
132+
133+ ${ lib . optionalString ( ! stdenv . isDarwin ) ''
134+ ${ patchelf } /bin/patchelf --set-rpath "${ v8 } /lib:${ postgresql } /lib:${ stdenv . cc . cc . lib } /lib" $out/lib/plv8-${ finalAttrs . version } ${ postgresql . dlSuffix }
135+ '' }
136+ fi
121137 '' ;
122138
123139 meta = with lib ; {
0 commit comments