portinstall dependency calculation mishap

Matthew Pounsett matt at conundrum.com
Tue Jun 14 23:04:49 UTC 2011


I've run into an odd problem where portinstall seems to want to double-install a package when portinstall is run from inside a bash script.  The case I ran into was trying to install the postgres84-server port.  In the dependencies is devel/pkg-config.  When run from inside a shell script, portinstall tries to install pkg-config a second time after the postgres install is complete.  If I run it outside a shell script (from my prompt) it works fine.  

I ran into this using my personal environment and sudo, but I've repeated it with a bare tcsh login as well as a direct login to root's account from the console, so I'm confident this isn't due to interference from something in my environment.

I can work around this by installing pkg-config directly before installing postgres, but thought this was odd enough to warrant an email to the list.

Repeatability is trivial on a freshly installed 8.0-RELEASE as well as on 8.2-RELEASE-p2 system with an up-to-date ports tree.

> cat >> testscript <<EOF
#!/usr/local/bin/bash

portinstall databases/postgresql84-server
EOF

> chmod a+x testscript
> sudo ./testscript

I've trimmed the config/cc/etc output from a log of my shell and included it below so that the order of operations can be seen.

[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 22 packages found (-3 +0) (...) done]
[Gathering depends for databases/postgresql84-server ............... done]
--->  Installing 'postgresql-client-8.4.8' from a port (databases/postgresql84-client)
--->  Building '/usr/ports/databases/postgresql84-client'
===>  Cleaning for libxml2-2.7.8_1
===>  Cleaning for pkg-config-0.25_1
===>  Cleaning for postgresql-client-8.4.8
===>  Vulnerability check disabled, database not found
===>  License check disabled, port has not defined LICENSE
===>  Found saved configuration for postgresql-client-8.4.8
===>  Extracting for postgresql-client-8.4.8
=> SHA256 Checksum OK for postgresql/postgresql-8.4.8.tar.bz2.
===>  Patching for postgresql-client-8.4.8
===>  Applying FreeBSD patches for postgresql-client-8.4.8
===>   postgresql-client-8.4.8 depends on executable: gmake - found
===>   postgresql-client-8.4.8 depends on shared library: xml2.5 - not found
===>    Verifying install for xml2.5 in /usr/ports/textproc/libxml2
===>  Vulnerability check disabled, database not found
===>  License check disabled, port has not defined LICENSE
===>  Extracting for libxml2-2.7.8_1
=> SHA256 Checksum OK for gnome2/libxml2-2.7.8.tar.gz.
===>  Patching for libxml2-2.7.8_1
===>  Applying FreeBSD patches for libxml2-2.7.8_1
===>   libxml2-2.7.8_1 depends on executable: gmake - found
===>   libxml2-2.7.8_1 depends on executable: pkg-config - not found
===>    Verifying install for pkg-config in /usr/ports/devel/pkg-config
===>  Vulnerability check disabled, database not found
===>  License check disabled, port has not defined LICENSE
===>  Extracting for pkg-config-0.25_1
=> SHA256 Checksum OK for gnome2/pkg-config-0.25.tar.gz.
===>  Patching for pkg-config-0.25_1
===>  Applying FreeBSD patches for pkg-config-0.25_1
===>   pkg-config-0.25_1 depends on executable: gmake - found
===>  Configuring for pkg-config-0.25_1
===>  Building for pkg-config-0.25_1
===>  Installing for pkg-config-0.25_1
===>   Generating temporary packing list
===>  Checking if devel/pkg-config already installed
===>   Compressing manual pages for pkg-config-0.25_1
===>   Registering installation for pkg-config-0.25_1
===>   Returning to build of libxml2-2.7.8_1
===>   libxml2-2.7.8_1 depends on shared library: iconv.3 - found
===>  Configuring for libxml2-2.7.8_1
===>  Building for libxml2-2.7.8_1
===>  Installing for libxml2-2.7.8_1
===>   libxml2-2.7.8_1 depends on executable: pkg-config - found
===>   Generating temporary packing list
===>  Checking if textproc/libxml2 already installed
===>   Compressing manual pages for libxml2-2.7.8_1
===>   Running ldconfig
===>   Registering installation for libxml2-2.7.8_1
===>   Returning to build of postgresql-client-8.4.8
===>   postgresql-client-8.4.8 depends on shared library: intl - found
===>  Configuring for postgresql-client-8.4.8
===>  Building for postgresql-client-8.4.8
===>  Installing for postgresql-client-8.4.8
===>   postgresql-client-8.4.8 depends on shared library: xml2.5 - found
===>   postgresql-client-8.4.8 depends on shared library: intl - found
===>   Generating temporary packing list
===>  Checking if databases/postgresql84-client already installed
===>   Compressing manual pages for postgresql-client-8.4.8
===>   Running ldconfig
===>   Registering installation for postgresql-client-8.4.8
===>  Cleaning for libxml2-2.7.8_1
===>  Cleaning for pkg-config-0.25_1
===>  Cleaning for postgresql-client-8.4.8
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 25 packages found (-0 +3) ... done]
--->  Installing 'pkg-config-0.25_1' from a port (devel/pkg-config)
--->  Building '/usr/ports/devel/pkg-config'
===>  Cleaning for pkg-config-0.25_1
===>  Vulnerability check disabled, database not found
===>  License check disabled, port has not defined LICENSE
===>  Extracting for pkg-config-0.25_1
=> SHA256 Checksum OK for gnome2/pkg-config-0.25.tar.gz.
===>  Patching for pkg-config-0.25_1
===>  Applying FreeBSD patches for pkg-config-0.25_1
===>   pkg-config-0.25_1 depends on executable: gmake - found
===>  Configuring for pkg-config-0.25_1
=== configuring in glib-1.2.10 (/usr/ports/devel/pkg-config/work/pkg-config-0.25/glib-1.2.10)
===>  Building for pkg-config-0.25_1
===>  Installing for pkg-config-0.25_1
===>   Generating temporary packing list
===>  Checking if devel/pkg-config already installed
===>   pkg-config-0.25_1 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of devel/pkg-config
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/devel/pkg-config.
*** Error code 1

Stop in /usr/ports/devel/pkg-config.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portinstall20110613-33090-gl4acg-0 env make reinstall
** Fix the installation problem and try again.
--->  Skipping 'textproc/libxml2' because a requisite port 'devel/pkg-config' failed (specify -k to force)
--->  Skipping 'databases/postgresql84-server' because a requisite port 'textproc/libxml2' failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
	! devel/pkg-config	(install error)
	* textproc/libxml2
	* databases/postgresql84-server



More information about the freebsd-ports mailing list