Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Aug 2012 17:10:14 -0500
From:      Jeremy Messenger <mezz.freebsd@gmail.com>
To:        nanoman@nanoman.ca
Cc:        gnome@freebsd.org
Subject:   Re: WANT_GNOME Causes Automatic Dependencies
Message-ID:  <CADLFttdT8-qZeu32RmKs0gMWH_ukbEyyk2zojnyC7G4fRDc6=w@mail.gmail.com>
In-Reply-To: <20120830214321.GD31703@nanocomputer.nanoman.ca>
References:  <20120830182257.GC31703@nanocomputer.nanoman.ca> <CADLFttdJn4LcY1xzxt6VmT4364aZoBcqakuttf4hd37RW3i4tg@mail.gmail.com> <20120830214321.GD31703@nanocomputer.nanoman.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 30, 2012 at 4:43 PM, A.J. Kehoe IV (Nanoman)
<nanoman@nanoman.ca> wrote:
> Jeremy Messenger wrote:
>>
>> On Thu, Aug 30, 2012 at 1:22 PM, A.J. Kehoe IV (Nanoman)
>> <nanoman@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.

>>> To solve this problem, I'm creating a new port called
>>> misc/gnome-components.
>>> This "meta-port" will define all the optional dependencies from
>>> Mk/bsd.gnome.mk as OPTIONS.  In Mk/bsd.gnome.mk, the whole automatic
>>> dependencies section will be replaced with one line:
>>>
>>> RUN_DEPENDS+=   gnome-components:${PORTSDIR}/misc/gnome-components
>>>
>>> I hope to have this finished by tomorrow (2012-08-31).  If anyone has any
>>> suggestions or alternative solutions, I'm very interested to hear what
>>> you
>>> have to say.
>>
>>
>> But.. I disagree with the method you are doing there. You can't just
>> do a sweep, because there is actually a few that do not provide flag
>> option to disable it. You need to do it by manual and remove the
>> HAVE_GNOME or convert it to OPTIONS if it allows you to. I prefer
>> anyone to do a real fix/clean instead of band-aid
>> (misc/gnome-components).
>>
>> Cheers,
>> Mezz
>
>
> 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 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


> --
> A.J. Kehoe IV (Nanoman)     |  /"\  ASCII Ribbon Campaign
> Nanoman's Company           |  \ /   - No HTML/RTF in E-mail
> E-mail: nanoman@nanoman.ca  |   X    - No proprietary attachments
> WWW: http://www.nanoman.ca/ |  / \   - Respect for open standards


-- 
mezz.freebsd@gmail.com - mezz@FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLFttdT8-qZeu32RmKs0gMWH_ukbEyyk2zojnyC7G4fRDc6=w>