* gnu/packages/glib.scm (gobject-introspection): Add patch gobject-introspection-girepository.patch.
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/girepository/gitypelib.c.orig
 | 
						|
+++ b/girepository/gitypelib.c
 | 
						|
@@ -2296,7 +2296,22 @@ _g_typelib_do_dlopen (GITypelib *typelib)
 | 
						|
         {
 | 
						|
           GModule *module;
 | 
						|
 
 | 
						|
+          /* 'gobject-introspection' doesn't store the path of shared
 | 
						|
+             libraries into '.typelib' and '.gir' files.  Shared
 | 
						|
+             libraries are searched for in the dynamic linker search
 | 
						|
+             path.  In Guix we patch 'gobject-introspection' such that
 | 
						|
+             it stores the absolute path of shared libraries in
 | 
						|
+             '.typelib' and '.gir' files.  Here, in order to minimize
 | 
						|
+             side effects, we make sure that if the library is not
 | 
						|
+             found at the indicated path location, we try with just
 | 
						|
+             the basename and the system dynamic library
 | 
						|
+             infrastructure, as per default behaviour of the
 | 
						|
+             library. */
 | 
						|
           module = load_one_shared_library (shlibs[i]);
 | 
						|
+          if (module == NULL && g_path_is_absolute (shlibs[i]))
 | 
						|
+            {
 | 
						|
+              module = load_one_shared_library (g_basename(shlibs[i]));
 | 
						|
+            }
 | 
						|
 
 | 
						|
           if (module == NULL)
 | 
						|
             {
 |