From owner-freebsd-ports@FreeBSD.ORG Mon Aug 31 06:09:58 2009 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A7D2106566B for ; Mon, 31 Aug 2009 06:09:58 +0000 (UTC) (envelope-from cmdlnkid@gmail.com) Received: from mail-yx0-f195.google.com (mail-yx0-f195.google.com [209.85.210.195]) by mx1.freebsd.org (Postfix) with ESMTP id 378188FC18 for ; Mon, 31 Aug 2009 06:09:58 +0000 (UTC) Received: by yxe33 with SMTP id 33so1523069yxe.7 for ; Sun, 30 Aug 2009 23:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :in-reply-to:message-id:references:user-agent:x-openpgp-key-id :x-openpgp-key-fingerprint:mime-version:content-type; bh=mHjOstiy8zyfhIoCe2EHPRw1JD9zMLE8IIJbu6qoaRw=; b=w9UD2soKR3Ml9aguowiCZmCdUDaGUeSkLiMdUVhlTfPTIMTx7NmlMvSv8IUe1BkvqS DtwMOg9znKCXIHwtQJRXCCYEleW98q23HOGBV1NrTk6s4OfWTF82jqgkOrD4or50S+5L Sm3xjBZLzq6KOMzB+G9r/q2+uji3iIadzjGlQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:x-openpgp-key-id:x-openpgp-key-fingerprint:mime-version :content-type; b=FurY6bmKuGF/wGkcbDfbAYwdYYh+2sZsf7/0b78M633PZbTB6Y6egIwS33Ln+sXbnc 9pX6t29e4ArRnwnAL0txI1q99Ik3yLqvJbhHdh+rFxRUmHn/Fm+FZBZ0eYQ+ILJzDVZj d0GduEtkHm/uoXIVqZ1q/kVDRDXwLnb6dSsoQ= Received: by 10.91.148.11 with SMTP id a11mr3738048ago.14.1251697095126; Sun, 30 Aug 2009 22:38:15 -0700 (PDT) Received: from firewall.5p.local (adsl-99-190-84-138.dsl.klmzmi.sbcglobal.net [99.190.84.138]) by mx.google.com with ESMTPS id 7sm3998052aga.27.2009.08.30.22.38.12 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 30 Aug 2009 22:38:13 -0700 (PDT) Date: Mon, 31 Aug 2009 01:38:05 -0400 From: CmdLnKid To: Doug Barton In-Reply-To: Message-ID: 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> <4A9ADAE6.70506@quip.cz> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) X-OpenPGP-Key-ID: 0xDFFDD218 X-OpenPGP-Key-Fingerprint: 2924 1C72 A6C2 852A 2094 25EE 9968 2636 DFFD D218 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-ports@freebsd.org Subject: Re: portmaster is not always recursive X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2009 06:09:58 -0000 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))