Problems with ".if HAVE_GNOME" tests because of installation order

Heiner h.eichmann at gmx.de
Mon Jan 26 11:09:23 PST 2004


Hi!

Please send responses cc: to h.eichmann at gmx.de as I do not read 
gnome at freebsd.org!

On Monday 26 January 2004 13:39, Alexander Leidinger wrote:
> Hi,
>
> I haven't digged into this, it may be a portupgrade problem, not a
> problem of the ports collection.

No! See this session. At the beginning, the ports cdrdao (or cdrdao-gnome), 
gnomelib, gtkmm and k3b are NOT installed. k3b depends on cdrdao; cdrdao 
dedends dynamically on gtkmm if gnomelibs ist installed.

Comments start with @@@

7of9# cd /usr/ports/sysutils/cdrdao/
7of9# rm -r work
7of9# make package-depends-list
7of9# make all-depends-list
/usr/ports/converters/libiconv
/usr/ports/devel/gettext-old
/usr/ports/devel/gmake
/usr/ports/devel/libtool13
/usr/ports/textproc/expat2

@@@ cdrdao does not depend on gtkmm, as gnomelibs is not installed!

7of9# make install

You may use the following build options:

WITHOUT_SCGLIB=yes      builds without Joerg Schilling's SCSI library
WITH_PTHREADS=yes       enables usage of POSIX threads for the ring buffers
                        (not recommended, increases risk of buffer-underruns)
WITH_TOC2MP3=yes        builds toc2mp3 (requires audio/lame)

This port builds the gcdmaster frontend if x11/gnomelibs is installed (also
requires x11-toolkits/gtk-- and x11-toolkits/gnome--).

===>  Extracting for cdrdao-1.1.7_4

@@@ stuff deleted

===>   Registering installation for cdrdao-1.1.7_4

@@@ Lets see the dependencies

7of9# pkg_info -r cdrdao-1.1.7_4
Information for cdrdao-1.1.7_4:

Depends on:

@@ Nothing. Okay, lets install gnomelibs:

7of9# cd /usr/ports/x11/gnomelibs/
7of9# rm -r work
rm: work: No such file or directory
7of9# make install

@@@ stuff deleted

===>   Registering installation for gnomelibs-1.4.2_1
===> SECURITY REPORT:
      This port has installed the following binaries which execute with
      increased privileges.
/usr/X11R6/bin/gnome-pty-helper

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.gnome.org/

@@@ Now back to the cdrdao dependencies:

7of9# cd /usr/ports/sysutils/cdrdao/
7of9# pkg_info -r cdrdao-1.1.7_4
Information for cdrdao-1.1.7_4:

Depends on:

@@@ Still nothing

7of9# make package-depends-list
gtkmm-1.2.8_1 /usr/ports/x11-toolkits/gtk-- x11-toolkits/gtk--

@@@ Most lines deleted. Now it depends on many ports! Note, that gktmm or 
gtk-- is still not installed! Now install something, which depends on cdrdao:

7of9# cd /usr/ports/sysutils/k3b
7of9# make install

@@@ stuff deleted

===>   Registering installation for k3b-0.10.3

@@@ check its dependencies (most lines deleted):

7of9# make package-depends-list
cdrdao-1.1.7_4 /usr/ports/sysutils/cdrdao sysutils/cdrdao
gtkmm-1.2.8_1 /usr/ports/x11-toolkits/gtk-- x11-toolkits/gtk--
7of9# pkg_info -r k3b-0.10.3
Information for k3b-0.10.3:

Depends on:
Dependency: gtkmm-1.2.8_1
Dependency: cdrdao-1.1.7_4

7of9# pkgdb -F
--->  Checking the package registry database
Stale dependency: k3b-0.10.3 -> gtkmm-1.2.8_1 (x11-toolkits/gtk--):
Skip this? ([y]es/[n]o/[a]ll) [yes]

@@@ All three show, that k3b now depends on gtkmm, which does not exist on my 
machine. Further note, that pkgdb was the first command from the portupgrade 
package. The whole session was make/pkg_info only!


Conclusion: Such ports with dynamic dependencies might corrupt the package 
database.

For cdrdao I recommend to split it into two ports: cdrdao (without gnome 
support) and cdrdao-gnome, which depends on cdrdao and all the required gnome 
ports.



Heiner



More information about the freebsd-gnome mailing list