Re: [Gimp-developer] Dependencies between gimp-1.2.4 and gimp-print

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

 



On Sat, 22 Jun 2002 16:25:31 -0400, "Robert L Krawitz" <rlk@xxxxxxxxxxxx> wrote:
>    From: Raphaël Quinet <quinet@xxxxxxxxxx>
>    Date: Fri, 21 Jun 2002 17:43:00 +0200
> 
>    Unfortunately, even the procedure described above did not work too
>    well with Solaris, probably because the latest version of gimp-print
>    contains some Linuxisms that haven't been debugged yet (I will send a
>    separate bug report to the gimp-print team later).  I started by
>    configuring gimp-print 4.3.0 with the following options:
> 
> Could you try 4.2.2-pre2 (the latest 4.2 release)?  I'd *really* like
> to know if there are problems there, since that release should be
> stable.

Sorry for the delay, but I didn't have the opportunity to try again
until this morning.  I have tried with 4.2.2-pre2 as you suggested, and
it seems to work a bit better (at least it allows the GIMP to be
configured now), but unfortunately this is still far from perfect (no
working GIMP).

First, a little recap of my environment: I am trying to build the
1.2.4-pre1 version of the GIMP on several Solaris systems (Solaris 8
and 2.6).  With this new version of the GIMP, there is a new
requirement on building libgimpprint first and it is now provided only
as part of the gimp-print package, which has to be downloaded and
installed separately.  For security reasons (preventing packages from
doing stuff that they should not do), I build all packages as a
non-root user and I also install them as a non-root user by specifying
a prefix directory in which that user can install its files.

I started by configuring gimp-print as shown below.  That configure
line is excessively long, but apparently this is the only way to get
libgimpprint to build without introducing additional dependencies or
building programs or libraries that are not needed for having a
working GIMP.

./configure --prefix=/Local --without-cups --without-translated-ppds --without-ghost --without-foomatic --without-ijs --without-gimp --without-samples --without-user-guide --disable-escputil

The configure script checked for some programs and displayed some
warnings that should have been skipped since I explicitely disabled
the user's guide:

[...]
checking for perl... /Local/bin/perl
checking for convert... no
configure: warning: PostScript user's guide cannot be regenerated!
checking for texi2html... /Local/teTeX/bin/texi2html
checking for dvips... /Local/teTeX/bin/dvips
checking for db2pdf... no
configure: warning: PDF user's guide cannot be regenerated!
checking for dvipdf... /Local/bin/dvipdf
checking for db2ps... no
configure: warning: PostScript user's guide cannot be regenerated!
checking for db2html... no
configure: warning: HTML user's guide cannot be regenerated!
checking for Cygwin environment... no
checking for mingw32 environment... no
checking build system type... sparc-sun-solaris2.6
[...]

Building with "make" worked fine.  Installing with "make installed"
worked for the first few files, but stopped with the following errors:

[...]
make[2]: Leaving directory `/Local/build/gimp-print-4.2.2-pre2/src/gimp'
Making install in cups
make[2]: Entering directory `/Local/build/gimp-print-4.2.2-pre2/src/cups'
make[3]: Entering directory `/Local/build/gimp-print-4.2.2-pre2/src/cups'
/bin/sh ../../scripts/mkinstalldirs /usr/bin
/bin/sh ../../scripts/mkinstalldirs /usr/lib/cups/backend
mkdir /usr/lib/cups
mkdir: cannot make directory `/usr/lib/cups': Permission denied
mkdir /usr/lib/cups/backend
mkdir: cannot make directory `/usr/lib/cups/backend': No such file or directory
make[3]: *** [install-cupsexec_backendPROGRAMS] Error 1
make[3]: Leaving directory `/Local/build/gimp-print-4.2.2-pre2/src/cups'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/Local/build/gimp-print-4.2.2-pre2/src/cups'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/Local/build/gimp-print-4.2.2-pre2/src'
make: *** [install-recursive] Error 1

There are two problems here: first, I disabled CUPS so it should never
try to install any CUPS-related files.  Second, I specified a $prefix
directory for installing all files, so nothing should be installed in
/usr or in any directory outside that prefix (unless I specify this
with a separate option such as --with-cups-prefix=/usr or with a tool
such as pkgconfig).  This is one of the many reasons why I always
install packages as a non-root user: to detect the broken packages
that try to install or modify files that they are not supposed to
touch.

So the installation was broken, but fortunately libgimpprint was
installed just before everything stopped, so that allowed me to
configure the GIMP with the print plug-in.  Not nice, but that works.

Most of the GIMP compiled correctly, but unfortunately, the print
plug-in did not compile, due to some undefined references to
"asprintf":

mkdir .libs
gcc -g -O2 -Wall -o .libs/print print.o print-image-gimp.o gimp_color_window.o gimp_main_window.o  ../../libgimp/.libs/libgimpui.so -L/Local/lib -L/usr/openwin/lib ../../libgimp/.libs/libgimp.so /Local/lib/libgtk.so /Local/lib/libgdk.so /Local/lib/libgmodule.so /Local/lib/libglib.so -lXext -lX11 -lsocket -lnsl /Local/lib/libgimpprint.so -lm /Local/lib/libintl.so /Local/lib/libiconv.so -Wl,--rpath -Wl,/Local/lib -Wl,--rpath -Wl,/usr/openwin/lib
print.o: In function `get_system_printers':
/Local/build/gimp-1.2.4-pre1/plug-ins/print/print.c:1269: undefined reference to `asprintf'
collect2: ld returned 1 exit status
make[3]: *** [print] Error 1
make[3]: Leaving directory `/Local/build/gimp-1.2.4-pre1/plug-ins/print'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/Local/build/gimp-1.2.4-pre1/plug-ins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/Local/build/gimp-1.2.4-pre1'
make: *** [all-recursive-am] Error 2

The prototype of the function asprintf() is declared as an extern
reference in print.c (line 1147), but it does not exist in any library
(on Solaris, at least).  I think that it should be replaced by
g_strdup_printf() or something similar.

Conclusion: I don't think that introducing a new dependency on the
maintenance branch of the GIMP was a good idea.  It would have been
better to add this new requirement on the development branch only, so
that the maintenance branch is as stable as possible.  But there were
some reasons for that, so maybe that was the "least worst" option.

Also, even if the problems mentioned above are solved, I think that it
would be better to release libgimpprint as a separate package that is
easier to configure (it should not be necessary to specify so many
options in order to get only the basic library).  Also, there should
be no "hard" dependency on CUPS, foomatic or anything else.  I am
afraid that some binary distributions that would start including the
gimp-print package for the first time because of the new requirements
in gimp-1.2.4 could add too many unnecessary dependencies, and we
would end up with a GIMP package that requires CUPS, Ghostscript IJS,
foomatic, ImageMagik (convert), TeX (texi2html, dvips, dvi2pdf) and
some others.  This is not pure speculation, because I have discovered
for example that SuSE Linux 8.0 has the packages "gnome-core",
"gnome-utils", "xf86", "xf86tools" and several others depending on
"qt3".

-Raphaël


[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