File file-roller-ignore-unrar-if-wrapper.patch of Package file-roller.19862

Index: file-roller-3.32.0/src/fr-command-rar.c
===================================================================
--- file-roller-3.32.0.orig/src/fr-command-rar.c	2019-03-11 23:00:45.000000000 +0100
+++ file-roller-3.32.0/src/fr-command-rar.c	2019-03-14 20:21:40.103871799 +0100
@@ -775,6 +775,39 @@ fr_command_rar_get_mime_types (FrArchive
 	return rar_mime_type;
 }
 
+static gboolean
+unrar_is_suse_wrapper ()
+{
+  const gchar *path = g_getenv ("PATH");
+  gchar **paths;
+  gchar **pp;
+  gchar *p;
+  gchar *full_name;
+  FILE *fp;
+  char bytes[2];
+  gboolean ret = FALSE;
+
+  if (!path)
+    path = "/usr/bin";
+
+  paths = g_strsplit (path, ":", 0);
+  for (pp = paths; *pp; pp++)
+    {
+      p = *pp;
+      full_name = g_strconcat (p, "/unrar", NULL);
+      fp = fopen (full_name, "r");
+      g_free (full_name);
+      if (!fp)
+        continue;
+      bytes[0] = bytes[1] = 0;
+      fread (bytes, 2, 1, fp);
+      fclose (fp);
+      ret = (bytes[0] == '#' && bytes[1] == '!');
+      break;
+    }
+  g_strfreev (paths);
+  return ret;
+}
 
 static FrArchiveCap
 fr_command_rar_get_capabilities (FrArchive  *archive,
@@ -786,7 +819,7 @@ fr_command_rar_get_capabilities (FrArchi
 	capabilities = FR_ARCHIVE_CAN_STORE_MANY_FILES | FR_ARCHIVE_CAN_ENCRYPT | FR_ARCHIVE_CAN_ENCRYPT_HEADER;
 	if (_g_program_is_available ("rar", check_command))
 		capabilities |= FR_ARCHIVE_CAN_READ_WRITE | FR_ARCHIVE_CAN_CREATE_VOLUMES;
-	else if (_g_program_is_available ("unrar", check_command))
+	else if (_g_program_is_available ("unrar", check_command) && !unrar_is_suse_wrapper ())
 		capabilities |= FR_ARCHIVE_CAN_READ;
 
 	/* multi-volumes are read-only */
openSUSE Build Service is sponsored by