Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2009 17:07:38 +0000 (UTC)
From:      Brian Somers <brian@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/usr.sbin/pkg_install/add perform.c src/usr.sbin/pkg_install/create perform.c src/usr.sbin/pkg_install/info perform.c src/usr.sbin/pkg_install/lib lib.h pen.c url.c
Message-ID:  <200906191707.n5JH7pPA072221@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
brian       2009-06-19 17:07:38 UTC

  FreeBSD src repository

  Modified files:
    usr.sbin/pkg_install/add perform.c 
    usr.sbin/pkg_install/create perform.c 
    usr.sbin/pkg_install/info perform.c 
    usr.sbin/pkg_install/lib lib.h pen.c url.c 
  Log:
  SVN rev 194497 on 2009-06-19 17:07:38Z by brian
  
  When running pkg_add -r, check & install our dependencies for each
  package rather than expecting our top level package to get all of
  the dependencies correct.
  
  Previously, the code depended on the top level package having all
  of the pkgdep lines in +CONTENTS correct and in the right order,
  but that doesn't always happen due to code such as this (in
  security/gnutls/Makefile):
  
      .if (defined(WITH_LZO) || exists(${LOCALBASE}/lib/liblzo2.so)) && !defined(WITHOUT_LZO)
      LIB_DEPENDS+=           lzo2:${PORTSDIR}/archivers/lzo2
      ....
  
  With such conditional dependencies, my 'sophox-packages' package won't
  install.  The dependency tree looks like this:
  
      sophox-packages
        ...
        x11/gnome2
          x11/gnome-applets
            net/libgweather
              devel/libsoup
                security/gnutls
                  security/libgcrypt
                    security/libgpg-error
        ...
        x11/gnome2
          archivers/file-roller
            archivers/gtar
              archivers/lzop
                archivers/lzo2
        ...
  
  gnutls doesn't depend on lzo2 initially, but lzo2 is dragged into the
  mix via other dependencies and is built by the initial 'make'.  The
  subsequent package generation for gnutls adds a pkgdep line for lzo2
  to gnutls' +CONTENTS but the pkgdeps in sophox-packages' +CONTENTS
  has gnutls *before* lzo2.
  
  As a result, sophox-packages cannot install; gnutls fails because lzo2
  is missing, 82 more packages fail because gnutls is missing and the
  whole thing spirals into a super-confusing mess!
  
  MFC after:      3 weeks
  
  Revision  Changes    Path
  1.87      +49 -13    src/usr.sbin/pkg_install/add/perform.c
  1.84      +1 -2      src/usr.sbin/pkg_install/create/perform.c
  1.56      +2 -4      src/usr.sbin/pkg_install/info/perform.c
  1.74      +3 -3      src/usr.sbin/pkg_install/lib/lib.h
  1.44      +23 -20    src/usr.sbin/pkg_install/lib/pen.c
  1.11      +3 -2      src/usr.sbin/pkg_install/lib/url.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906191707.n5JH7pPA072221>