Date: Mon, 31 Aug 2009 01:38:05 -0400 From: CmdLnKid <cmdlnkid@gmail.com> To: Doug Barton <dougb@freebsd.org> Cc: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-ports@freebsd.org Subject: Re: portmaster is not always recursive Message-ID: <alpine.BSF.2.00.0908310128170.333@qvzrafvba.5c.ybpny> In-Reply-To: <alpine.BSF.2.00.0908301307540.11734@qbhto.arg> References: <4A89CB20.3000408@quip.cz> <4A8E2121.6040507@FreeBSD.org> <4A8E8ACA.3060705@quip.cz> <4A8EF583.8090806@FreeBSD.org> <4A9966FE.7060509@quip.cz> <4A998242.80005@FreeBSD.org> <4A999B4A.3000603@quip.cz> <alpine.BSF.2.00.0908300952370.43298@qbhto.arg> <4A9ADAE6.70506@quip.cz> <alpine.BSF.2.00.0908301307540.11734@qbhto.arg>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 30 Aug 2009 16:17 -0000, dougb wrote: > On Sun, 30 Aug 2009, Miroslav Lachman wrote: > >> Doug Barton wrote: >>> Ok, I found the problem, but the bad news is that I don't know what the >>> solution is going to be. I've cc'ed ale since what I'm seeing is weird >>> behavior by the php5-mcrypt slave port. >>> >>> What portmaster does by default when looking for dependencies is to run >>> 'make build-depends-list run-depends-list | sort -u' to get the list of >>> things to check. I used to just do all-depends-list by default but users >>> complained that it was creating problems by recursing so far down the >>> tree. >> >> Does it mean that portmaster checks only first level dependencies unless -t >> is given? (Maybe it is good behavior, I am just asking it to be sure that I >> understand it well) > > That's not exactly right, but it's about 90% right so close enough. :) The > discrepancy relates to how individual ports report their dependencies, but > for almost all purposes that is correct, yes. > >> real world example: >> If I do `portmaster amavisd-new-2.6.4_1,1` and there will be available >> update for archivers/p5-Compress-Raw-Bzip2 but not for dependencies >> between, it will not be updated, because it is too deep? > > Assuming that the latter is not listed as a dependency by amavisd-new, then > no, it will not be updated that way. > >> I don't know the exact definition of "slave port", but can it be that there >> are 2 types of slave ports? >> Where one type is for example proftpd-mysql, which conflicts with master >> port proftpd (only one of them can be installed) >> The second type is php5-mcrypt, which is only extension for master port and >> cannot be installed alone? > > I suspect that you are correct here, but I do not claim comprehensive > knowledge of slave ports. :) I will add that there is at least one more > type, e.g., editors/pico-alpine and mail/alpine where the former is a slave > of the latter because it uses the same distfiles, same basic OPTIONS, etc; > although they install totally different programs. > >>> Miroslav, for your specific problem you can add the -t option to >>> portmaster to force it to do all-depends-list, which will cause portmaster >>> to "see" the apache dependency. Other than that I'm not sure how to >>> proceed. I suppose that I could force all-depends-list if MASTERDIR is set >>> in a Makefile, but I'm kind of hesitant to do that unless it becomes >>> obvious that the problem is more widespread. >>> >>> >>> hope this helps, >> >> Yes, it really helps. Now I know my favorite ports mgmt tool better then >> before and as more I think about {build|run}-depends-list versus >> all-depends-list it seems that current behavior is better. And if someone >> wants all-depends-list, there is -t options. So all is fine. > > FWIW, there is always the -a option to update everything that needs it. > >> Maybe this difference can be explained in portmasters manual. (stating that >> normally {build|run}-depends-list is used and only first level of >> dependencies are checked/updated and if someone wants really recursive >> check, the -t option must be used) > > I get two complaints about the manual. The first is that it does not cover > enough of the details, the second is that it's too long. I don't know how to > make both groups happy. :) I will think about adding something to the man > page about this though. > Ideas & road-maps. 1). Make the manual shorter and geared toward uncommon non-technical users. 2). a manual page for advanced topics portmaster-advanced(8) 3). Write a technical manual as you go around the functions in portmaster and what they do. portmaster-technical(3) This would at least keep all groups happy while getting across the real features of the ports-mgmt tool in every area. Also allowing ( man -a portmaster* ) to get it all. > I should also point out that -t does not mean "really recursive check." > Portmaster is always recursive, the difference is not necessarily how deep it > goes, it can also be how "wide" it goes as well. > >> So the last thought is some new option for portmaster to force reinstall of >> all intermediate dependencies between A and E, even if there are no updates >> for them. > > The -f option already does this. > >> Thank you again for you explanation of the problem. It is really >> educational to me. > > Glad to help. > > Doug > > -- - (2^(N-1))
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0908310128170.333>