Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Nov 2005 21:33:53 +0200
From:      Vasil Dimov <vd@datamax.bg>
To:        Pav Lucistnik <pav@FreeBSD.org>
Cc:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/89164: [PATCH] /var/db/pkg/{portname}/+CONTENTS files sometimes contain wrong data
Message-ID:  <20051117193353.GA53615@qlovarnika.bg.datamax>
In-Reply-To: <1132245985.79514.32.camel@localhost>
References:  <200511171540.jAHFeJSL017500@freefall.freebsd.org> <200511170807.46482.ringworm01@gmail.com> <1132244794.79514.28.camel@localhost> <200511170832.06601.ringworm01@gmail.com> <1132245985.79514.32.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help

--wac7ysb48OaltWcw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 17, 2005 at 05:46:25PM +0100, Pav Lucistnik wrote:
>=20
> Yes, there is a long standing problem and we're aware of it. Sadly, no
> workable solution was submitted so far (at least I haven't found any PR
> filed against it).
>=20

Hmmz, what about the following:

--- bsd.port.mk_dep.diff begins here ---
--- bsd.port.mk.orig	Thu Nov 17 21:04:11 2005
+++ bsd.port.mk.dep	Thu Nov 17 21:18:21 2005
@@ -4638,7 +4638,7 @@
 		dir=3D$$(${REALPATH} $$dir); \
 		if [ -d $$dir ]; then \
 			if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \
-				childout=3D$$(cd $$dir; ${MAKE} CHILD_DEPENDS=3Dyes PARENT_CHECKED=3D"=
$$checked" package-depends-list); \
+				childout=3D$$(cd $$dir ; pkgnm=3D`${MAKE} -V PKGNAME` ; if [ -d ${PKG_=
DBDIR}/$$pkgnm ] ; then for p in $$pkgnm `${PKG_INFO} -qr ${PKG_DBDIR}/$$pk=
gnm |${CUT} -f 2 -d ' '` ; do porigin=3D`pkg_info -qo /var/db/pkg/$$p` ; ${=
ECHO_CMD} "$$p ${PORTSDIR}/$$porigin $$porigin" ; done ; else ${MAKE} CHILD=
_DEPENDS=3Dyes PARENT_CHECKED=3D"$$checked" package-depends-list; fi); \
 				set -- $$childout; \
 				childdir=3D""; \
 				while [ $$\# !=3D 0 ]; do \
@@ -4651,7 +4651,7 @@
 		else \
 			${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list inco=
mplete" >&2; \
 		fi; \
-	done
+	done | ${SORT} -u
=20
 # Print out package names.
=20
--- bsd.port.mk_dep.diff ends here ---

The idea is to check if the port is installed and get necessary
info with `pkg_info -r', instead of `make package-depends-list'

Looks quite ugly, some part of the sh code can be extracted
into separate make variable or at least that 380+ bytes line can be
broken down into shorter lines.

--=20
Vasil Dimov

--wac7ysb48OaltWcw
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----

iD8DBQFDfNsgFw6SP/bBpCARAkrmAKCmBaSfTCQB78K9yDiEKudVDKiAVwCfQ9xc
dP8222xV33wQLxw8OaEgRiU=
=lJbj
-----END PGP SIGNATURE-----

--wac7ysb48OaltWcw--



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