RSS/Atom feed Twitter
Site is read-only, email is disabled

Dependencies between gimp-1.2.4 and gimp-print

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

9 of 9 messages available
Toggle history

Please log in to manage your subscriptions.

Dependencies between gimp-1.2.4 and gimp-print Rapha 21 Jun 17:43
  Dependencies between gimp-1.2.4 and gimp-print Rapha 21 Jun 17:55
   Dependencies between gimp-1.2.4 and gimp-print Sven Neumann 21 Jun 18:19
  Dependencies between gimp-1.2.4 and gimp-print Sven Neumann 21 Jun 18:20
   Dependencies between gimp-1.2.4 and gimp-print Roger Leigh 22 Jun 00:14
  Dependencies between gimp-1.2.4 and gimp-print Robert L Krawitz 22 Jun 00:49
  Dependencies between gimp-1.2.4 and gimp-print Robert L Krawitz 22 Jun 22:25
   Dependencies between gimp-1.2.4 and gimp-print Rapha 04 Jul 11:01
    Dependencies between gimp-1.2.4 and gimp-print Robert L Krawitz 04 Jul 21:10
Rapha
2002-06-21 17:43:00 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

I have just tried compiling gimp-1.2.4-pre1 on Solaris, and I had some problems because of the new dependency on gimp-print (which was part of the GIMP package until 1.2.3).

I tried to see that from the point of view of a novice user who does not know exactly what is provided by each package, instead of taking the point of view of a GIMP developer who knows the history of both packages. And at first sight, it looks like there is a circular dependency: in order to build the GIMP, you need libgimpprint, which is part of the gimp-print package (and you need a version >= 4.2.0). But in order to build gimp-print, you need the GIMP!

At least, that's how it looks like at first sight, and unfortunately the way to solve this problem is not explained clearly in the INSTALL file of the GIMP. I think that two solutions are possible: - build the GIMP first with --disable-print, install it, and then build and install gimp-print (later, the GIMP can be upgraded with --enable-print since libgimpprint will be found) - build gimp-print with the option --without-gimp, install it, and then build and install the GIMP (later, gimp-print can be upgraded --with-gimp since the GIMP will be found)

This is a bit confusing. In fact, I am wondering if it was really a good idea to remove the files from the GIMP distribution and to introduce an external dependency... That's why I am posting this question here.

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:

./configure --prefix=/Local --without-cups --without-foomatic --without-ijs --without-gimp

Then I built it and installed it. Then I tried to configure the GIMP again, hoping that it would now recognize libgimpprint. But here is what I got:

./configure --prefix=/Local [...]
checking for gtkdoc-mkdb... false
checking for sendmail... /usr/lib/sendmail checking for gimpprint-config... /Local/bin/gimpprint-config checking for gimpprint >= 4.2.0... /Local/bin/gimpprint-config: syntax error at line 27: `;' unexpected expr: syntax error
configure: warning:
*** libgimpprint version is too old. *** You need at least version 4.2.0. configure: error:
*** Check for libgimpprint failed. You can download it from *** http://gimp-print.sourceforge.net/ or you can build without it by passing *** --disable-print to configure (but you won't be able to print then).

There are two (probably trivial) problems: a syntax error in gimpprint-config (works with bash but not with the standard /bin/sh) and an incorrect diagnostic from the gimp's configure script. These problems can probably be solved easily (I don't have the time to do that now but I will try next week) but it is a pity that the first impression of 1.2.4-pre1 on Solaris is not as positive as I was hoping for. Building with --disable-print works, but it's a pity to loose support for printing.

I would prefer to have some parts of gimp-print back into the main GIMP package. This would not be the latest and greatest version and it may not support all printing systems, but at least it would work with that version of the GIMP and the users would always have the option to upgrade gimp-print separately. I think that it would be better to have one package that provides the basic stuff including printing support without having circular dependencies between two packages (even if the workaround is easy).

-Raphaël

Rapha
2002-06-21 17:55:37 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

On Fri, 21 Jun 2002 17:43:00 +0200, "Raphaël Quinet" wrote: [...]

I would prefer to have some parts of gimp-print back into the main GIMP package. This would not be the latest and greatest version and it may not support all printing systems, but at least it would work with that version of the GIMP and the users would always have the option to upgrade gimp-print separately. I think that it would be better to have one package that provides the basic stuff including printing support without having circular dependencies between two packages (even if the workaround is easy).

I forgot to add something: another option is to remove the print plug-in completely from the GIMP package, which would also remove the dependency on libgimpprint. Then everything needed for print support would be only in the gimp-print package and there would be no mismatch between the parts of the code provided by in the GIMP package and in the gimp-print package.

-Raphaël

Sven Neumann
2002-06-21 18:19:17 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

Hi,

RaphaXl Quinet writes:

I forgot to add something: another option is to remove the print plug-in completely from the GIMP package, which would also remove the dependency on libgimpprint. Then everything needed for print support would be only in the gimp-print package and there would be no mismatch between the parts of the code provided by in the GIMP package and in the gimp-print package.

the goal however is to remove the gimp plug-in from gimp-print.

Salut, Sven

Sven Neumann
2002-06-21 18:20:57 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

Hi,

RaphaXl Quinet writes:

I have just tried compiling gimp-1.2.4-pre1 on Solaris, and I had some problems because of the new dependency on gimp-print (which was part of the GIMP package until 1.2.3).

I tried to see that from the point of view of a novice user who does not know exactly what is provided by each package, instead of taking the point of view of a GIMP developer who knows the history of both packages. And at first sight, it looks like there is a circular dependency: in order to build the GIMP, you need libgimpprint, which is part of the gimp-print package (and you need a version >= 4.2.0). But in order to build gimp-print, you need the GIMP!

I was told that latest versions of gimp-print don't build the gimp plug-in by default and thus do not need depend on gimp to be installed.

Salut, Sven

Roger Leigh
2002-06-22 00:14:48 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

On Fri, Jun 21, 2002 at 06:20:57PM +0200, Sven Neumann wrote:

I was told that latest versions of gimp-print don't build the gimp plug-in by default and thus do not need depend on gimp to be installed.

That is correct. This is not yet in an official release though (it will be in 4.2.2).

Regards,
Roger

Robert L Krawitz
2002-06-22 00:49:25 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

Please copy gimp-print-devel on all of this.

From: Raphaël Quinet Date: Fri, 21 Jun 2002 17:43:00 +0200

I have just tried compiling gimp-1.2.4-pre1 on Solaris, and I had some problems because of the new dependency on gimp-print (which was part of the GIMP package until 1.2.3).

I tried to see that from the point of view of a novice user who does not know exactly what is provided by each package, instead of taking the point of view of a GIMP developer who knows the history of both packages. And at first sight, it looks like there is a circular dependency: in order to build the GIMP, you need libgimpprint, which is part of the gimp-print package (and you need a version >= 4.2.0). But in order to build gimp-print, you need the GIMP!

I suppose that one option would be to distribute libgimpprint as a separate package, with each layered product (Gimp plugin, CUPS driver, old-style Ghostscript driver, Ghostscript IJS driver, foomatic data generator) as a separate package, but that's unwieldly in its own right. As Roger noted, though, we're going to turn off the default-on behavior for the Gimp plugin.

Sven wants us to remove the Gimp Print plugin entirely from Gimp-print. I'm not entirely certain how much I like that idea, at least right now, but one option might be for us to distribute that particular piece as a layered add-on rather than as part of the core package.

Mike Sweet has other ideas entirely about the plugin; I think that he'd like to make it PPD-based, and the plugin wouldn't generate raw printer output. This would have a lot of advantages overall; we could get rid of the Postscript driver in libgimpprint (which is of no use whatsoever except for the Gimp plugin), it would make the Gimp play a lot better with printing systems in general, and so forth. Of course, in that case the plugin really wouldn't be part of Gimp-print at all, and we'd certainly remove it. He can say more about that.

At least, that's how it looks like at first sight, and unfortunately the way to solve this problem is not explained clearly in the INSTALL file of the GIMP. I think that two solutions are possible: - build the GIMP first with --disable-print, install it, and then build and install gimp-print (later, the GIMP can be upgraded with --enable-print since libgimpprint will be found) - build gimp-print with the option --without-gimp, install it, and then build and install the GIMP (later, gimp-print can be upgraded --with-gimp since the GIMP will be found)

This is a bit confusing. In fact, I am wondering if it was really a good idea to remove the files from the GIMP distribution and to introduce an external dependency... That's why I am posting this question here.

I see it the other way around: the problem is that we haven't managed to completely separate the two.

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:

Please do report this bug!

./configure --prefix=/Local --without-cups --without-foomatic --without-ijs --without-gimp

Then I built it and installed it. Then I tried to configure the GIMP again, hoping that it would now recognize libgimpprint. But here is what I got:

./configure --prefix=/Local [...]
checking for gtkdoc-mkdb... false checking for sendmail... /usr/lib/sendmail checking for gimpprint-config... /Local/bin/gimpprint-config checking for gimpprint >= 4.2.0... /Local/bin/gimpprint-config: syntax error at line 27: `;' unexpected expr: syntax error
configure: warning:
*** libgimpprint version is too old. *** You need at least version 4.2.0. configure: error:
*** Check for libgimpprint failed. You can download it from *** http://gimp-print.sourceforge.net/ or you can build without it by passing *** --disable-print to configure (but you won't be able to print then).

There are two (probably trivial) problems: a syntax error in gimpprint-config (works with bash but not with the standard /bin/sh) and an incorrect diagnostic from the gimp's configure script. These problems can probably be solved easily (I don't have the time to do that now but I will try next week) but it is a pity that the first impression of 1.2.4-pre1 on Solaris is not as positive as I was hoping for. Building with --disable-print works, but it's a pity to loose support for printing.

I would prefer to have some parts of gimp-print back into the main GIMP package. This would not be the latest and greatest version and it may not support all printing systems, but at least it would work with that version of the GIMP and the users would always have the option to upgrade gimp-print separately. I think that it would be better to have one package that provides the basic stuff including printing support without having circular dependencies between two packages (even if the workaround is easy).

-Raphaël

Robert L Krawitz
2002-06-22 22:25:31 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

From: Raphaël Quinet
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.

Rapha
2002-07-04 11:01:56 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

On Sat, 22 Jun 2002 16:25:31 -0400, "Robert L Krawitz" wrote:

From: Raphaël Quinet
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

Robert L Krawitz
2002-07-04 21:10:09 UTC (almost 22 years ago)

Dependencies between gimp-1.2.4 and gimp-print

Thanks for your report. It looks like there are some real issues here that we'll need to look at.