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