Drop winemenubuilder-Desktop_Icon_Path patchset

This commit is contained in:
Alistair Leslie-Hughes 2023-06-13 14:04:26 +10:00
parent 117d2b2107
commit f14d68c258

View File

@ -1,67 +0,0 @@
From 38af730d23f017ce256d3f2cc81e96402112ca7b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 24 Sep 2014 21:13:59 +0200
Subject: [PATCH] winemenubuilder: Create desktop shortcuts with absolute wine
path.
When having multiple wine versions installed (for example regular wine and wine staging), the desktop
shortcuts will always run regular wine, even if the app was installed with wine staging. This patch
changes the behaviour to use the absolute wine path in desktop shortcuts. The patch only modifies the
behaviour on Linux, because some other distros are a bit special (FreeBSD requires a wrapper to start
wine, and so on ...).
---
programs/winemenubuilder/Makefile.in | 1 +
programs/winemenubuilder/winemenubuilder.c | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/programs/winemenubuilder/Makefile.in b/programs/winemenubuilder/Makefile.in
index 12326d1e4e2..07191b56d82 100644
--- a/programs/winemenubuilder/Makefile.in
+++ b/programs/winemenubuilder/Makefile.in
@@ -1,5 +1,6 @@
MODULE = winemenubuilder.exe
IMPORTS = uuid windowscodecs shell32 shlwapi ole32 user32 advapi32
+EXTRADEFS = -DBINDIR="\"${bindir}\""
EXTRADLLFLAGS = -mwindows -municode
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index ab8798a88b5..31c97107802 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -97,6 +97,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(menubuilder);
#define IS_OPTION_TRUE(ch) \
((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1')
+/* On linux we create all menu item entries with an absolute path to wine,
+ * in order to allow using multiple wine versions at the same time. */
+#ifdef __linux__
+ static const char wine_path[] = BINDIR "/wine";
+#else
+ static const char wine_path[] = "wine";
+#endif
+
/* link file formats */
#include "pshpack1.h"
@@ -1275,7 +1283,7 @@ static BOOL write_desktop_entry(const WCHAR *link, const WCHAR *location, const
fprintf(file, "env WINEPREFIX=\"%s\" ", path);
heap_free( path );
}
- fprintf(file, "wine %s", escape(path));
+ fprintf(file, "%s %s", wine_path, escape(path));
if (args) fprintf(file, " %s", escape(args) );
fputc( '\n', file );
fprintf(file, "Type=Application\n");
@@ -1985,7 +1993,7 @@ static BOOL write_freedesktop_association_entry(const WCHAR *desktopPath, const
if (prefix)
{
char *path = wine_get_unix_file_name( prefix );
- fprintf(desktop, "Exec=env WINEPREFIX=\"%s\" wine start /ProgIDOpen %s %%f\n", path, escape(progId));
+ fprintf(desktop, "Exec=env WINEPREFIX=\"%s\" %s start /ProgIDOpen %s %%f\n", path, wine_path, escape(progId));
heap_free( path );
}
else
--
2.34.1