WANT_GNOME Causes Automatic Dependencies

A.J. Kehoe IV (Nanoman) nanoman at nanoman.ca
Fri Aug 31 03:20:35 UTC 2012


Jeremy Messenger wrote:
>On Thu, Aug 30, 2012 at 4:43 PM, A.J. Kehoe IV (Nanoman)
><nanoman at nanoman.ca> wrote:
>> Jeremy Messenger wrote:
>>>
>>> On Thu, Aug 30, 2012 at 1:22 PM, A.J. Kehoe IV (Nanoman)
>>> <nanoman at nanoman.ca> wrote:
>>>>
>>>> WANT_GNOME causes automatic dependencies.  This causes problems for port
>>>> and
>>>> package management, as described in the FreeBSD Porter's Handbook on the
>>>> "Dependencies" page under "Problems Caused by Automatic Dependencies":
>>>>
>>>>
>>>> http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-depend.html
>>>
>>>
>>> I agree, I have got rid of it in bsd.mate.mk.
>>
>>
>> Awesome!  Automatic dependencies have been causing me grief for about a
>> decade, so this makes me happy.
>
>I wanted to clean up all of issues for long time and finally did it in
>the bsd.mate.mk (copied from bsd.gnome.mk). Here's what I did. I have
>removed the features:
>
> -HAVE:Mfoo, A lot of users don't know, hide and lacking OPTIONS stuff.
> It's not difficult to add autocheck in the Makefile without that
> HAVE:Mfoo anyway if configure doesn't provide option to disable.
>
> -foo_USE_GNOME_IMPL, we do not maintain it very well. Also it was not
> easy to track it down for the other maintainers to figure where the
> dependencies come from. I think it's best to put a complete
> dependencies in the ports rather than having IMPL doing it for you.
>
> -Remove the gnomeprefix and replace it to something like
> GCONFPREFIX=--gconf=...., so you can put ${GCONFPREFIX} in the
> Makefile's CONFIGURE_ARGS. Because not all ports have the
> same flags.
>
> -Remove the referencehack, yes it works great but it's ugly in the
> every Makefile.
>
>I think that's all. Only a feature that has been added is :build and
>:run. If anyone have something in mind to improvement or else, let me
>know and I will see what I can do. I plan to copy all of improvement
>from bsd.mate.mk to bsd.gnome.mk, which I already did with :build and
>:run and will doing more later when I have time permit. Unless someone
>can help me with it.

Does anyone maintain a dependencies map for GNOME?  I'm thinking of something like this, but parsable, legible, and current:

http://people.freebsd.org/~adamw/gnome_kde_deps/gnome2-lite.png

It would also need to indicate how optional components fit together.

[...]

>> I'm not fond of my misc/gnome-components method either, so any alternative
>> ideas are very welcome.  All I've done thus far is created a Makefile with
>> an OPTIONS list for the 97 components from bsd.gnome.mk.
>>
>> What do you suggest for a real fix/clean?  Based on your response, the ideal
>> fix has at least two attributes:
>>
>> 1. No automatic dependencies.
>>
>> 2. An option to disable specific components.
>
>I meant by remove the HAVE_GNOME from port Makefile then switch to either:
>
>1) automatic dependency by using exists() or
>2) OPTIONS if the port's configure provides flag to disable.
>
>It is unnecessary to make it complicates with gnome-components when
>the standard solution available in our ports tree. As for the #1, yes,
>it has to be there because a few configure files do that without
>option to disable (blame it on upstream).

I'm not opposed to writing patches that will make the WANT_GNOME ports declare their dependencies predictably.  There are approximately 183 ports using WANT_GNOME, so writing these patches is going to take me several days, followed by weeks of waiting for maintainer updates.  I might be able to get through this faster by asking the maintainers to assist me, but I expect to have to do most on my own.

I'm absolutely willing to abort my misc/gnome-components plan in favour of a better idea.  If writing patches for roughly 183 ports is considered a better idea, then this is what I will do instead.

It is indeed a problem when a port doesn't respect configure arguments to enable or disable optional features, but exists() causes automatic dependencies.  Fortunately, there are two solutions:

A. Convince the upstream source that they need to fix this at their end.  Sending them a patch is the best way.

B. Write a patch that fixes this within the FreeBSD Ports Collection.  Such a patch may require upkeep by the port maintainer.

>> I'm trying to get this issue resolved as quickly as possible, but I want the
>> fix to be done well.  Again, any suggestions or alternative solutions are
>> welcome.
>
>I don't see why you are in such of hurry when we have that issue for
>years (longer than I became committer). When doing it in hurry always
>make messy, complicate or whatever. Hences for gnome-components.
>
>Cheers,
>Mezz

I'm responsible for hundreds of FreeBSD systems, each with its own unique set of packages installed.  Automatic dependencies make my job much more labour intensive than it needs to be, and the added work increases my chances of making a mistake.  pkgng 1.0 was released today, and FreeBSD 9.1 will be released soon, so I'll soon have a lot of upgrading to do.

I've grown exceedingly weary of dealing with the problems caused by automatic dependencies, and I just don't want to tolerate it any longer.  It's only a tiny minority of ports that declare their dependencies using this unpredictable method, so I've decided to weed them out to make my life easier.

-- 
A.J. Kehoe IV (Nanoman)     |  /"\  ASCII Ribbon Campaign
Nanoman's Company           |  \ /   - No HTML/RTF in E-mail
E-mail: nanoman at nanoman.ca  |   X    - No proprietary attachments
WWW: http://www.nanoman.ca/ |  / \   - Respect for open standards
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3855 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-gnome/attachments/20120831/fa9372ad/smime.bin


More information about the freebsd-gnome mailing list