bootchk / resynthesizer

Suite of gimp plugins for texture synthesis
GNU General Public License v3.0
1.45k stars 163 forks source link

Python scripts are not executable in GIMP Registry package #48

Open raxod502 opened 6 years ago

raxod502 commented 6 years ago

Contents of the package found at http://registry.gimp.org/node/27986:

Permissions Size User     Date Modified Name
.rw-r--r--@ 6.6k raxod502 13 Apr  2011  plugin-heal-selection.py
.rw-r--r--@ 3.2k raxod502 13 Apr  2011  plugin-heal-transparency.py
.rw-r--r--@  17k raxod502 13 Apr  2011  plugin-map-style.py
.rw-r--r--@ 7.7k raxod502 13 Apr  2011  plugin-render-texture.py
.rw-r--r--@ 3.3k raxod502 13 Apr  2011  plugin-resynth-enlarge.py
.rw-r--r--@ 3.6k raxod502 15 Apr  2011  plugin-resynth-fill-pattern.py
.rw-r--r--@ 3.3k raxod502 13 Apr  2011  plugin-resynth-sharpen.py
.rw-r--r--@ 6.0k raxod502 13 Apr  2011  plugin-uncrop.py
.rwxr-xr-x@  62k raxod502 15 Apr  2011  resynthesizer
.rwxr-xr-x@  53k raxod502 15 Apr  2011  resynthesizer-gui

This is wrong, and as a result the plugin cannot be loaded by GIMP, as I found out by asking the mailing list. The Python scripts need to be made executable; after I fixed this it worked fine.

How about fixing the issue in the Registry package?

bootchk commented 6 years ago

That site went static years ago. AFAIK it is not possible for anyone to update it.

A better fix might be for someone to fix GIMP itself. This is a long-standing gotcha, as you probably found on the mailing list: many people know the issue exists and how to solve it. AFAIK, no other app requires python scripts to have executable permissions. I could be wrong, maybe there is a valid reason GIMP requires it.

raxod502 commented 6 years ago

Perhaps we can link to a correct release tarball from the README, rather than the outdated Registry? How about using GitHub Releases?

Also, I'm concerned that the Registry is apparently obsolete and yet there is no message to that effect. I guess that's another issue for the GIMP folks.

bootchk commented 6 years ago

Willing to work on it, it could be better. I have no experience with Github releases, would need to learn. I am not a packager.

AFAIK the other provider, package gimp-plugin-registry) is reliable and available from Debian.

The GIMP Registry never was part of the GIMP project. Like the Resynthesizer itself, a third party contributions.

bzed commented 5 years ago

... and bugs in the debian package should be opened in the Debian bug tracker.... or nobody will notice them.

bzed commented 5 years ago

@raxod502

bzed@think ..stry/resynthesizer/resynthesizer-2.0.3 (git)-[master] % ls -la /usr/lib/gimp/2.0/plug-ins/plugin-*
-rwxr-xr-x 1 root root  6606 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-heal-selection.py
-rwxr-xr-x 1 root root  3204 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-heal-transparency.py
-rwxr-xr-x 1 root root 17224 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-map-style.py
-rwxr-xr-x 1 root root  7684 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-render-texture.py
-rwxr-xr-x 1 root root  3303 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-resynth-enlarge.py
-rwxr-xr-x 1 root root  3609 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-resynth-fill-pattern.py
-rwxr-xr-x 1 root root  3262 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-resynth-sharpen.py
-rwxr-xr-x 1 root root  6040 Jun 25 23:54 /usr/lib/gimp/2.0/plug-ins/plugin-uncrop.py

Can't see the issue in the current package in Debian testing.

raxod502 commented 5 years ago

It sounds like the README should be updated to point there, then, instead of to the outdated Registry.

bootchk commented 5 years ago

Yes, I will update the README to point to the Debian package, very soon.

I will link to the page I found using search. Unless someone knows a link to a more friendly page. The page I found seemed daunting for most users.

Note that there IS a bug reported on the Debian tracking site. I should check that the Debian package actually works before I link to it. Although the bug seems to report an issue with Python installation, not with the package itself (from my brief look at the bug report.)

Note that the name is confusing. There WAS a website called "GIMP Registry" that apparently has died. The Debian package also uses the word "registry" but the package is just an agglomeration of GIMP plugins ( contains the resynthesizer among other plugins.)

As I said in other threads, I hope to study the changing world of packaging technologies, including snap, creating a Debian package just for resynthesizer, and Github Releases.

raxod502 commented 5 years ago

That sounds great. It would be really nice if there were a way to download a release for OS X. Currently, it is basically impossible to use Resynthesizer on OS X without downloading a special hacked version of GIMP that includes it—since you have to compile Resynthesizer from source, which requires gimp-dev, which isn't packaged in Homebrew, so that you have to compile GIMP from source, which requires about a zillion dependencies.

bzed commented 5 years ago

@bootchk back in the time the package got its plugins from the registry, that's where the name comes from.

@raxod502 you should open a bug against homebrew then. Not shipping development files makes it almost impossible to build a proper plugin. Rebuilding the sources in the exact same way all the times does not make sense.

raxod502 commented 5 years ago

Currently, Homebrew doesn't provide any way to install GIMP from source. I don't know why this is the case, but from my experience (1) they don't like to build graphical applications from source, and (2) the project is not friendly to feature requests unless you provide a pull request.

I certainly can't blame you for that, though, and I don't have the time nor energy to start arguing with somebody on the Homebrew team, so I'm just going to leave this be.

ambimom commented 1 year ago

According to the proposed fix... When I did this: cd /Applications/GIMP-2.10.app/Contents/Resources/lib ln -s libintl.8.dylib libintl.9.dylib

the switch took place libintl.9.dylib is now on the list. But resynthesizer still didn't work. So I copied libintl.9.dylib and put into the plugin file. still didn't work

This is the error message image Traceback (most recent call last): File "/Applications/GIMP.app/Contents/Resources/lib/gimp/2.0/python/gimpfu.py", line 741, in response dialog.res = run_script(params) File "/Applications/GIMP.app/Contents/Resources/lib/gimp/2.0/python/gimpfu.py", line 362, in run_script return apply(function, params) File "/Users/arlenehorowitz/Library/Application Support/GIMP/2.10/plug-ins/plugin-heal-selection.py", line 148, in heal_selection pdb.plug_in_resynthesizer(timg, tdrawable, 0,0, useBorder, work_drawable.ID, -1, -1, 0.0, 0.117, 16, 500) error: procedure not found