Date: 20 Apr 2000 01:51:25 -0700 From: asami@freebsd.org (Satoshi - Ports Wraith - Asami) To: Roger Hardiman <roger@cs.strath.ac.uk> Cc: ports@freebsd.org Subject: Re: ports dependencies problem on bento with bison ports Message-ID: <vqcya6940ky.fsf@silvia.hip.berkeley.edu> In-Reply-To: Roger Hardiman's message of "Sun, 16 Apr 2000 18:54:34 %2B0100" References: <38F9FE5A.C6BCFE84@cs.strath.ac.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
* From: Roger Hardiman <roger@cs.strath.ac.uk> * i've found a ports dependencies problem which causes * bento to fail to build one of my ports. * So, opengatekeeper causes openh323 to build. * But it does not install bison, even though * openh323 says it needs it in the openh323 makefile. Yes, this is a known problem that have been plaguing us for quite some time now. Unfortunately, nobody has been able to come up with a solution. Let me explain the problem first. bento (actually the package building cluster) reads the index and uses it to install prerequisite ports from packages. Two fields in index, build-time dependencies and run-time dependencies, are statically calculated and mean, "immediate build-deps and their run-deps" and "immedeate run-deps and their run-deps", respectively. Immediate build-deps are {FETCH,BUILD,LIB}_DEPENDS plus DEPENDS and immediate run-deps are {LIB,RUN}_DEPENDS plus DEPENDS. bento installs them both (although a lot of them don't actually need run-deps to package, but that's another story) before attempting to build the package for a certain port. This works reasonably well *except* the case like Roger described here, when one of the build-deps actually require the dependency to be built, not just run. (I.e., when you have ":build" or something tacked to the end of *_DEPENDS lines.) Then we need build-deps of the build-deps too, but we don't have that field in index. You may have noticed the lines in the opengatekeeper failure logs: ======= : ===> openh323-1.1.a1 depends on executable: bison - not found ===> Verifying /usr/bin/true for bison in /usr/ports/devel/bison `/usr/bin/true' is up to date. : ======= The weird "true is up to date" message is because I define DEPENDS_TARGET to /usr/bin/true in the package building scripts to catch incompatible dependencies. For instance, if port A has the line "BUILD_DEPENDS=foo:.../fooport" and fooport doesn't actually install any "foo", then I can find it in the logs with this distinct message. Anyway, that was the description of the problem. Clearly the only real solution is to rectify the index generation code in bsd.port.mk and Tools/make_index to read the extra field in *_DEPENDS and include build-deps of build-deps when it says anything other than "install", but nobody has been able to untangle the code sufficiently to get that to work. Of course, I can implement some workarounds (like using another variable to turn off DEPENDS_TARGET selectively so bison will be built from source while building opengatekeeper) but those have their own problems and I'd rather make the index fields correct. Satoshi To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vqcya6940ky.fsf>