Fix exe, py and scm script support

This commit is contained in:
Hernan Martinez
2023-01-25 00:53:10 -07:00
committed by Christoph Reiter
parent 3bfd8af966
commit bd41acf9c5
3 changed files with 53 additions and 5 deletions

View File

@@ -0,0 +1,37 @@
diff -bur gimp-2.99.14-c/app/main.c gimp-2.99.14/app/main.c
--- gimp-2.99.14-c/app/main.c 2023-01-24 18:49:00.342793400 -0700
+++ gimp-2.99.14/app/main.c 2023-01-24 18:49:33.030776800 -0700
@@ -637,6 +637,33 @@
SetDllDirectoryW (w_bin_dir);
+ /* Add ourself to system path */
+ {
+ int result = 0;
+ static char progpath[PATH_MAX] = {'\0'};
+ char *path = getenv("PATH");
+ result = GetModuleFileNameA(NULL, progpath, PATH_MAX);
+ if (path) {
+ /* Add path of executable to system path. */
+ char *module_path = progpath;
+ char *new_path = alloca(strlen("PATH=")+strlen(module_path)+1+strlen(path)+1);
+ if (new_path) {
+ strcpy( new_path, "PATH=" );
+ strcat( new_path, module_path );
+ char *slashes = strchr( new_path, '/' );
+ while (slashes) {
+ *slashes = '\\';
+ slashes = strchr( slashes+1, '/' );
+ }
+ char *end = strrchr(new_path, '\\') ? strrchr(new_path, '\\') : new_path + strlen(new_path);
+ end[0] = ';';
+ end[1] = '\0';
+ strcat( new_path, path );
+ putenv( new_path );
+ }
+ }
+ }
+
out:
if (w_bin_dir)
g_free (w_bin_dir);

View File

@@ -58,14 +58,15 @@ options=('strip' 'makeflags')
source=("https://download.gimp.org/pub/gimp/v2.99/gimp-${pkgver}.tar.xz"
0001-clang-rc-files-fix.patch
0002-skip-test-env.patch
0003-mingw-add-ModuleFileName-dir-to-PATH.patch
0004-clang-windres.patch
https://gitlab.gnome.org/GNOME/gimp/-/commit/9b517fbf7d629fb940344719eddf9421f013569b.patch
)
sha256sums=('313a205475d1ff03c5c4d9602f09f5c975ba6c1c79d8843e2396f9fe2abdf7a8'
'54b3abc136b78fd2ae9b7d2acd202fb91bf3b6c248b131f1629ca50ef2493fbe'
'511a2a969d1ff3254b4f2453cdfbc3a86a60e2379adf9f6ed5735454a45ef6ee'
'ca612aeec8ae33e1fdcc70262aa65feefc4c0e391a9fda600b44aebfdd5f8cf5'
'af745ee612a83f5f9744ea9c0efe83326996c2a817ca1dc1bf6d73018e2cf78a')
'b24786f6f0e38457f7d7582dc632aa127fad74eed4927888edc03c14afef17a9'
'ca612aeec8ae33e1fdcc70262aa65feefc4c0e391a9fda600b44aebfdd5f8cf5')
apply_patch_with_msg() {
for _patch in "$@"
@@ -79,7 +80,8 @@ prepare() {
cd "${srcdir}/gimp-${pkgver}"
apply_patch_with_msg \
0001-clang-rc-files-fix.patch \
0002-skip-test-env.patch
0002-skip-test-env.patch \
0003-mingw-add-ModuleFileName-dir-to-PATH.patch
# Workaround for https://github.com/llvm/llvm-project/issues/57334
apply_patch_with_msg \
@@ -123,9 +125,14 @@ package() {
cd "${srcdir}"/build-${MSYSTEM}
${MINGW_PREFIX}/bin/meson.exe install --destdir="${pkgdir}"
sed -e "s|${MINGW_PREFIX}/bin/python3|python3w.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/lib/gimp/2.99/interpreters/pygimp.interp
# Adjust the python interpreter path
sed -e "s|\=.*|\=python3w.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/lib/gimp/2.99/interpreters/pygimp.interp
sed -e "s|::python3|::python3w.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/lib/gimp/2.99/interpreters/pygimp.interp
rm -f "${pkgdir}${MINGW_PREFIX}/lib/gimp/2.0/modules/*.dll.a"
# Create the scm scripts interpreter path (Only created by the installer in Windows)
cp "${srcdir}"/../gimp-script-fu-interpreter.interp "${pkgdir}${MINGW_PREFIX}"/lib/gimp/2.99/interpreters
rm -f "${pkgdir}${MINGW_PREFIX}/lib/gimp/2.99/modules/*.dll.a"
install -Dm644 "${srcdir}/gimp-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
install -Dm644 "${srcdir}/gimp-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"

View File

@@ -0,0 +1,4 @@
gimp-script-fu-interpreter=gimp-script-fu-interpreter-3.0.exe
gimp-script-fu-interpreter-3.0=gimp-script-fu-interpreter-3.0.exe
/usr/bin/gimp-script-fu-interpreter=gimp-script-fu-interpreter-3.0.exe
:ScriptFu:E::scm::gimp-script-fu-interpreter-3.0.exe: