From owner-freebsd-ports@FreeBSD.ORG Fri Dec 7 05:44:51 2007 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C35216A41A for ; Fri, 7 Dec 2007 05:44:51 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.134]) by mx1.freebsd.org (Postfix) with ESMTP id 2765713C459 for ; Fri, 7 Dec 2007 05:44:51 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.141] (may be forged)) by mxout1.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id lB75inns032186 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 6 Dec 2007 21:44:50 -0800 X-Auth-Received: from dzihan.cs.washington.edu (dzihan.cs.washington.edu [128.208.4.96]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id lB75im7w031171 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 6 Dec 2007 21:44:49 -0800 Message-ID: <4758DDD0.1030305@u.washington.edu> Date: Thu, 06 Dec 2007 21:44:48 -0800 From: Garrett Cooper User-Agent: Thunderbird 2.0.0.6 (X11/20071003) MIME-Version: 1.0 To: Alex Goncharov , ports@freebsd.org References: <20071207001315.GA58050@owl.midgard.homeip.net> <8B6AA93E1BD6BB1C2A23236A@paul-schmehls-powerbook59.local> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version: 5.3.3.310218, Antispam-Engine: 2.5.2.313940, Antispam-Data: 2007.12.6.213024 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='__CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __USER_AGENT 0' Cc: Subject: Re: (Very) bogus package dependencies 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: Fri, 07 Dec 2007 05:44:51 -0000 Alex Goncharov wrote: > ,--- You=Paul (Thu, 06 Dec 2007 22:41:27 -0600) ----* > | > | > -------------------- > | ># find /usr/ports/sysutils/hal -type f -exec grep -Hn 'cdrtools' {} \;| > | ># wc -l > | > 0 > | > -------------------- > | > | That's because you're not looking in the right place. Open the Makefile > | for hal and you find: > | USE_CDRTOOLS= yes > > The place was right -- the character case was not: with `-i' I would > have seen it: > > -------------------- > # find /usr/ports/sysutils/hal -type f -exec grep -Hni 'cdrtools' {} \;| wc -l > 1 > -------------------- > > But thank you -- that's exactly the information I was looking for. > > | Now, why cdrtools is required to build the port is a question that is > | answered by going to /usr/ports/Mk/bsd.port.mk and reading the section on > | USE_CDRTOOLS. Then continue to trace from there, and you will find that > | hal won't build without some file or files that are installed by cdrecord. > > Excellent -- thank you! > > | (No, I'm not going to do that for you.) > > That's a bit disappointing... > > Just kidding -- I'll do it *gladly*, now that you directed me to the > right places. > > | > So, is it that a port maintainer creates `/var/db/pkg/PKG/*' files > | > by hand? Based on individual ideas? Not on really "must-to-have" > | > things, like dependencies on shared libraries? > | > > | Absolutely not! /var/db/pkg/portname is built by the ports system based > | upon how the port is built. Most maintainers (including me!) would have > | no clue what's in the CONTENTS page without looking at it, because we have > | "nothing" to do with its creation (other than the fact that we created the > | port.) > > OK. > > | > 2. (Conceptual): How reasonable are these dependencies? > | > > | I doubt seriously any port maintainer just picks dependencies willy-nilly. > | They're chosen because the source code docs cite them as requirements > | and/or because the port won't build without them. > | > | > In this case, `/usr/sbin/burncd' is all I need to burn CD's. I > | > have no practical reason to have `cdrtools' on my computer. > | > > | Of course you do. Otherwise it wouldn't be there. > > I'll read `/usr/ports/Mk/bsd.port.mk' and may agree with you :-) > > | > Why would the "Hardware Abstraction Layer for simplifying device > | > access" depend on a specific set of "CD/CD-R[W] and ISO-9660 image > | > creation and extraction tools" -- on this set and not on another? > | > > | It most likely doesn't. It depends upon a file or files that are > | installed by cdrtools. > > Interesting. > > | Look at one of my ports, security/barnyard. It depends on snort. > | Why? Because that's the only thing it's designed to work with. > | Without snort, there's no reason to have barnyard on your system. > | Another port, devel/byacc, has no dependencies at all. Another one, > | security/sguil-server, has multiple dependencies, some because > | they're required for proper operation, others because the port won't > | build without those libraries. > > That approach I understand... `cdrtools' was a mystery -- and it gave > me a reason to ask the questions that I had long had in my head. > > | If you want to spend time figuring all that out, be my guest, but > | the maintainers have already done all that work for you, and the > | committers have verified that it's required and that it works as > | expected. > > | That's the beauty of ports. > > I won't dispute the word "beauty" here -- I like the system very much. > But coming from some eight years of using Debian, I am still mystified > about the underling mechanics of ports. > > Your answers definitely help -- thank you! > > -- Alex -- alex-goncharov@comcast.net -- > > /* > * Keep cool, but don't freeze. > * > * -- Hellman's Mayonnaise > */ > > _______________________________________________ > freebsd-ports@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-ports > To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org" > Look for USE_CDRTOOLS in "/usr/ports/sysutils/hal/Makefile"; that's where the pkg dependency is coming from. If you don't want that option you can roll your own package you know. 'cd /usr/ports/sysutils/hal && make config package' (I believe.. don't have my FBSD machine in front of me) might yield the knob disabling that you desire.. Cheers, -Garrett