Suggestion: disabling Perl-Fu installation if Gtk-Perl is not present

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

 



This has been suggested before, but I would like to bring it up
again...  I think that it would be better to disable the installation
of all Perl-Fu scripts if any of the required modules (Gtk, PDL,
Data::Dumper, Parse::RecDescent) are not detected by the configure
script or, more exactly, by Makefile.PL.

The argument for installing the scripts anyway is that the user can
install the missing modules later.  However, I think that it currently
does more harm than good.

Note that I am not criticizing the Gimp-Perl plug-in itself, only the
way the Perl-Fu scripts are installed.  I have installed the Gimp on
many systems (Linux and Solaris) and the Perl-Fu scripts are working
fine on the systems that have perl and all the required modules.  But
on the systems that do not have perl (it comes with all Linux distros
but it is optional) or those that do not have the required modules
(because the user did not download them from CPAN), the Perl-Fu
scripts crash when the Gimp is started or when they are accessed from
the menus.  This makes a bad impression and the best solution is
usually to uninstall everything, then re-configure with
--disable-perl, re-compile and re-install.  This extra hassle should
not be necessary.

Here are a few reasons why I think that the configure script should
skip the installation of the Perl-Fu scripts if any of the required
modules is missing:

- All other plug-ins take the "safe" approach of not installing
  themselves if any dependency is not satisfied.  As far as I know,
  the Perl plug-in is the only one that tries to install everything
  and hope that the user will install the missing things later.

- I think that most users are updating the Gimp (re-compiling,
  re-installing) more frequently than they are updating Perl (even if
  it is only some modules).  So there is no reason to force the
  installation of the Perl-Fu scripts if they could easily be
  installed later, after having installed the missing modules.  One
  reason for updating the Gimp more frequently is that it is easier to
  get a single tar file for the Gimp than to have to search for
  separate modules on CPAN, especially on a computer that has no
  direct connection to the Internet.  Another example: on a multi-user
  system, the user may not have the required priviledges for
  installing the Perl modules in the system directories (although the
  modules could be installed in a private directory if the users take
  care of modifying their environment.)

- The Gimp takes 5 to 6 seconds longer to start if the required Perl
  modules are missing, because some Perl-Fu scripts crash during
  start-up and are queried again every time.  See the first example
  included below.  Besides, these crashes are not very informative for
  the user if he is not the one who installed the software and who
  knows what these messages mean.

- The modules that do not crash during start-up will fail anyway when
  they are used.  Except for some things such as the Perl Server, I
  haven't found a script that was usable without Gtk-Perl.  When I
  attempted to use these scripts, they all started by popping up a
  dialog box that warns about the missing module, then start some
  operations and crash before producing any result (which brings
  another dialog box for reporting the error).  Again, for a user who
  is not the installer, it only makes the Gimp look bad because the
  menus are cluttered with unusable entries that do nothing else than
  popping up error boxes.  See the second example below.

For these reasons, I think that it would be better to use the "safe"
method: do not install any (or most of the) Perl-Fu scripts if the
required modules are missing during the "configure" phase.  And rely
on the fact that the person who installed the Gimp will re-install it
easily if the Perl modules are installed later.

-Raphael


---------- Example 1 ----------
Here are the messages that are displayed every time the Gimp starts,
taking 5-6 seconds on a Linux PC that has perl but does not have the
required modules from CPAN:

Can't locate Gtk.pm in @INC (@INC contains: /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .) at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/gimp/1.1/plug-ins/avi line 10.

** WARNING **: wire_read: unexpected EOF (plug-in crashed?)
Can't locate Gtk.pm in @INC (@INC contains: /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .) at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/gimp/1.1/plug-ins/colorhtml line 9.

** WARNING **: wire_read: unexpected EOF (plug-in crashed?)
Can't locate Gtk.pm in @INC (@INC contains: /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .) at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/gimp/1.1/plug-ins/dataurl line 10.

** WARNING **: wire_read: unexpected EOF (plug-in crashed?)
Can't locate Gtk.pm in @INC (@INC contains: /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .) at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.005/i586-linux/Gimp/UI.pm line 5.
BEGIN failed--compilation aborted at /usr/lib/gimp/1.1/plug-ins/miff line 10.

** WARNING **: wire_read: unexpected EOF (plug-in crashed?)
---------- End of example 1 ----------

The second example shows some errors that occur when I attempt to
start some Perl-Fu scripts.  They all result in at least two dialog
boxes popping up: the first one warning me about the missing Gtk-Perl
module and saying that the script will run with default values, and
the second one reporting a fatal error.  Most scripts crash with a PDB
error, but some others crash for other reasons.  None of them
generates any results.  Also, the "fire" script ran for about 4
minutes after displaying the first warning, until it eventually
crashed like the others.  I tried several other scripts besides the
ones shown here, and none of them worked without the Gtk module.  Note
that I have no problem with these scripts on another system that has
all Perl modules installed.

---------- Example 2 ----------
sethspin: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_seth_spin)
sethspin: Unable to grok '' as colour specifier at /usr/lib/gimp/1.1/plug-ins/sethspin line 149 (ERROR)

randomart1: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_random_art_1)
randomart1: gimp_image_new: procedural database execution failed at /usr/lib/gimp/1.1/plug-ins/randomart1 line 38 (ERROR)

bricks: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_do_bricks)
bricks: gimp_patterns_set_pattern: procedural database execution failed at /usr/lib/gimp/1.1/plug-ins/bricks line 27 (ERROR)

font_table: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_font_table)
font_table: Font Table: Size parameter () is invalid at /usr/lib/gimp/1.1/plug-ins/font_table line 37. (ERROR)

fire: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_fire)
** WARNING **: a calling error occured while trying to run: "gimp_selection_float"
** WARNING **: a calling error occured while trying to run: "gimp_selection_float"
fire: function/macro "map_to_gradient" not found in Gimp::Drawable at /usr/lib/gimp/1.1/plug-ins/fire line 31 (ERROR)

perlotine: the gtk perl module is required to open a dialog
window, running with default values (perl_fu_perlotine)
perlotine: No horizontal or vertical guides found. Aborted. at /usr/lib/gimp/1.1/plug-ins/perlotine line 176. (ERROR)
---------- End of example 2 ----------



[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux