networkmanager: Stop using libredirect for building docs
Our gobject-introspection patches make the shared library paths absolute in the GIR files. When building docs, the library is not yet installed, though, so we need to replace the absolute path with a local one during build. Previously we used LD_PRELOAD to load libredirect and rewrite the installed paths to ones in the build directory. That was unnecessary complicated and many people spent whole night trying to figure out why it breaks some programs. Using a symlink from the installed location to the build directory fixes the issue as well, while having much less moving parts, thus being easier to grasp. The symlink will be overridden during installation.
This commit is contained in:
parent
9f4ae182c1
commit
6f7e06bd5a
2 changed files with 8 additions and 21 deletions
|
@ -58,13 +58,6 @@ in stdenv.mkDerivation rec {
|
|||
# Meson does not support using different directories during build and
|
||||
# for installation like Autotools did with flags passed to make install.
|
||||
./fix-install-paths.patch
|
||||
|
||||
# Our gobject-introspection patches make the shared library paths absolute
|
||||
# in the GIR files. When building docs, the library is not yet installed,
|
||||
# though, so we need to replace the absolute path with a local one during build.
|
||||
# We are replacing the variables in postPatch since substituteAll does not support
|
||||
# placeholders.
|
||||
./fix-docs-build.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -87,10 +80,15 @@ in stdenv.mkDerivation rec {
|
|||
postPatch = ''
|
||||
patchShebangs ./tools
|
||||
patchShebangs libnm/generate-setting-docs.py
|
||||
'';
|
||||
|
||||
substituteInPlace libnm/meson.build \
|
||||
--subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0"
|
||||
preBuild = ''
|
||||
# Our gobject-introspection patches make the shared library paths absolute
|
||||
# in the GIR files. When building docs, the library is not yet installed,
|
||||
# though, so we need to replace the absolute path with a local one during build.
|
||||
# We are using a symlink that will be overridden during installation.
|
||||
mkdir -p ${placeholder "out"}/lib
|
||||
ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- a/libnm/meson.build
|
||||
+++ b/libnm/meson.build
|
||||
@@ -262,6 +262,8 @@
|
||||
'env', '-i',
|
||||
'GI_TYPELIB_PATH=' + gi_typelib_path,
|
||||
'LD_LIBRARY_PATH=' + ld_library_path,
|
||||
+ 'LD_PRELOAD=' + '@DOCS_LD_PRELOAD@',
|
||||
+ 'NIX_REDIRECTS=' + '@DOCS_NIX_REDIRECTS@',
|
||||
]
|
||||
|
||||
name = 'nm-property-docs.xml'
|
Loading…
Reference in a new issue