* gnu/packages/patches/gnome-shell-polkit-autocleanup.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gnome.scm (gnome-shell)[source](patches): New field.
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Don't redefine G_DEFINE_AUTOPTR_CLEANUP_FUNC when available in polkit.
 | |
| 
 | |
| Taken from upstream:
 | |
| 
 | |
|   https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/1d0a08b5e25fea7b0e792ec9798e68a7c5606a75
 | |
| 
 | |
| diff --git a/config.h.meson b/config.h.meson
 | |
| index b93fda8727..ff355d3062 100644
 | |
| --- a/config.h.meson
 | |
| +++ b/config.h.meson
 | |
| @@ -33,3 +33,6 @@
 | |
|  
 | |
|  /* Define if fdwalk is available in libc */
 | |
|  #mesondefine HAVE_FDWALK
 | |
| +
 | |
| +/* Define if polkit defines autocleanup functions */
 | |
| +#mesondefine HAVE_POLKIT_AUTOCLEANUP
 | |
| diff --git a/meson.build b/meson.build
 | |
| index 42ec01c566..778a34c6ef 100644
 | |
| --- a/meson.build
 | |
| +++ b/meson.build
 | |
| @@ -169,6 +169,13 @@ cdata.set('HAVE_FDWALK',
 | |
|            cc.has_function('fdwalk')
 | |
|  )
 | |
|  
 | |
| +polkit_has_autocleanup = cc.compiles(
 | |
| +  '#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
 | |
| +  #include <polkitagent/polkitagent.h>
 | |
| +  void main(void) { g_autoptr(PolkitAgentListener) agent = NULL; }',
 | |
| +  dependencies: polkit_dep)
 | |
| +cdata.set('HAVE_POLKIT_AUTOCLEANUP', polkit_has_autocleanup)
 | |
| +
 | |
|  buildtype = get_option('buildtype')
 | |
|  if buildtype != 'plain'
 | |
|    all_warnings = [
 | |
| diff --git a/src/shell-polkit-authentication-agent.h b/src/shell-polkit-authentication-agent.h
 | |
| index 55b46af110..4f14749563 100644
 | |
| --- a/src/shell-polkit-authentication-agent.h
 | |
| +++ b/src/shell-polkit-authentication-agent.h
 | |
| @@ -14,8 +14,10 @@
 | |
|  
 | |
|  G_BEGIN_DECLS
 | |
|  
 | |
| +#ifndef HAVE_POLKIT_AUTOCLEANUP
 | |
|  /* Polkit doesn't have g_autoptr support, thus we have to manually set the autoptr function here */
 | |
|  G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitAgentListener, g_object_unref)
 | |
| +#endif
 | |
|  
 | |
|  #define SHELL_TYPE_POLKIT_AUTHENTICATION_AGENT (shell_polkit_authentication_agent_get_type())
 | |
|  
 |