Re: [gtk-osx-users] CodeSigning and Catalina security issue.






For the demo program you might see if you can set enough of the environment in Info.plis using https://developer.apple.com/documentation/bundleresources/information_property_list/lsenvironment to get it to run. For your actual program the easiest solution is to rewrite your launcher in python and put it in Resources, compile python-launcher.c and use the result as the main-binary.

I don't know how it works with python gtk+ apps, but with C/C++ apps it's quite easy to avoid using a launcher script, I have a setup_paths() function that I run before gtk_init(), that does a job similar to the launcher script, it has the advantage over the LSEnvorinment stuff to be able to bind the resources to the current app bundle path, I'm sharing it here if someone is interested:

void
setup_paths()
{
char execpath[MAXPATHLEN+1];
char path[MAXPATHLEN * 4], *c;

uint32_t pathsz = sizeof (execpath);
_NSGetExecutablePath (execpath, &pathsz);

// if we are not in a bundle let's use the system GTK enviroment...
if (!strstr(execpath, ".app")) {
ILOG << "Not in bundle, doing normal startup";
return;
}

fprintf(stderr, "EXECPATH: %s\n", execpath);
c = strrchr(execpath, '/');
*c = 0;
strcat(execpath, "/../Resources");
chdir(execpath);
getcwd(path, sizeof(path));
fprintf(stderr, "CWD: %s\n", path);

strcpy(path, execpath);
strcat(path, "/lib/gtk-2.0");
setenv ("GTK_PATH", path, 1);
strcpy(path + strlen(execpath), "/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache");
setenv ("GDK_PIXBUF_MODULE_FILE", path, 1);
// pango prefix
strcpy(path + strlen(execpath), "/etc");
setenv("PANGO_SYSCONFDIR", path, 1);
strcpy(path + strlen(execpath), "/lib");
setenv("PANGO_LIBDIR", path, 1);
ILOG << "OSX GTK resource setup completed";
// strcpy(path + strlen(execpath), "/../Resources/share/themes");
// setenv ("GTK_DATA_PREFIX", path, 1);
} 
 
--
Bye,
 Gabry



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]