Subject: Re: buildlink3 and installed are older than required
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 03/08/2004 21:30:13
On Mon, 8 Mar 2004, Jeremy C. Reed wrote:

> set -x;                                  /usr/bin/touch -f
> /usr/pkg/tmp/pkgsrc/w
> ip/gramps/work.rainier/.buildlink/.buildlink_libgnomecanvas_done
> + /usr/bin/touch -f
> /usr/pkg/tmp/pkgsrc/wip/gramps/work.rainier/.buildlink/.buildlink_libgnomecanvas_done
> set -x;                                  true "=> Linking libgtkhtml files
> into
> /usr/pkg/tmp/pkgsrc/wip/gramps/work.rainier/.buildlink."
> + true => Linking libgtkhtml files into
> /usr/pkg/tmp/pkgsrc/wip/gramps/work.rainier/.buildlink.
> set -x;                                  case
> BUILDLINK_PREFIX.libgtkhtml_not_found in
> *not_found)
>                  echo "libgtkhtml is not installed; can't buildlink
> files.";  false;                                             ;;
>                          esac
> + echo libgtkhtml is not installed; can't buildlink files.
> libgtkhtml is not installed; can't buildlink files.
> + false
> *** Error code 1


Does anyone have similar problem?

To test, make a dependency in a buildlink3.mk file you use larger than the
version you have installed.

I am trying to figure this buildlink3 out:

rainier:/usr/pkgsrc/wip/gramps$ make show-var PKG_PHASE=buildlink
VARNAME=BUILDLINK_DEPENDS.nautilus
nautilus>=2.4.2nb4

rainier:/var/db/pkg$ /usr/sbin/pkg_admin -K /var/db/pkg -S lsbest
'nautilus>=2.4.2nb4'
rainier:/var/db/pkg$

rainier:/usr/pkgsrc/wip/gramps$ make show-var PKG_PHASE=buildlink
VARNAME=_BLNK_PKG_DBDIR.nautilus
_BLNK_PKG_DBDIR.nautilus_not_found

rainier:/usr/pkgsrc/wip/gramps$ make show-var PKG_PHASE=buildlink
VARNAME=BUILDLINK_PKGNAME.nautilus
_BLNK_PKG_DBDIR.nautilus_not_found

rainier:/usr/pkgsrc/wip/gramps$ make show-var PKG_PHASE=buildlink
VARNAME=BUILDLINK_PREFIX.nautilus
BUILDLINK_PREFIX.nautilus_not_found


Why does this buildlink3 just fail without telling my my installed version
of nautilus is too old?

        case ${BUILDLINK_PREFIX.${_pkg_}} in                            \
        *not_found)                                                     \
                ${ECHO} "${_pkg_} is not installed; can't buildlink files."; \
                ${FALSE};                                               \
                ;;                                                      \
        esac


This would be better to attempt to give a message that is more clear:
NAUTILUS IS INSTALLED!

Before it would build the new nautilus and fail at install time because it
is already installed.

   Jeremy C. Reed
   http://www.reedmedia.net/