Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Dec 2007 00:18:15 -0500
From:      Alex Goncharov <alex-goncharov@comcast.net>
To:        Paul Schmehl <pauls@utdallas.edu>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: (Very) bogus package dependencies
Message-ID:  <E1J0VbL-0006bi-6S@[24.61.20.41]>
In-Reply-To: <8B6AA93E1BD6BB1C2A23236A@paul-schmehls-powerbook59.local> (message from Paul Schmehl on Thu, 06 Dec 2007 22:41:27 -0600)
References:  <E1J0Q3W-0000NQ-D9@[24.61.20.41]> <20071207001315.GA58050@owl.midgard.homeip.net> <E1J0TxL-000J4O-8V@[24.61.20.41]> <8B6AA93E1BD6BB1C2A23236A@paul-schmehls-powerbook59.local>

next in thread | previous in thread | raw e-mail | index | archive | help
,--- 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
 */




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1J0VbL-0006bi-6S>