Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jul 2018 06:27:47 -0600
From:      Adam Weinberger <adamw@adamw.org>
To:        se@freebsd.org
Cc:        meta@freebsd.org, w.schwarzenfeld@utanet.at, ruby@freebsd.org,  freebsd-ports@freebsd.org
Subject:   Re: rubgem update to 3.2.7
Message-ID:  <CAP7rwcgaqwzZa-d_3d4UPWQTBAmn3LbQkUe5Vci8VpEQdaKULA@mail.gmail.com>
In-Reply-To: <731bb6c1-a673-2f9d-37c6-17cdc96c2214@freebsd.org>
References:  <6b43fe62-daac-a4f8-89a0-66cec1f6d933@utanet.at> <20180709030456.mvwdam3gzofvv45d@icepick.vmeta.jp> <731bb6c1-a673-2f9d-37c6-17cdc96c2214@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 9, 2018 at 1:13 AM Stefan Esser <se@freebsd.org> wrote:
>
> Am 09.07.18 um 05:04 schrieb Koichiro Iwao:
> > On Mon, Jul 09, 2018 at 12:02:22AM +0200, Walter Schwarzenfeld via freebsd-ports wrote:
> >> Portmaster tries to build the update in the wrong order.
> >>
> >> Right order for me was (depend on which packages are installed):
> >>
> >> rubygem-glib2
> >> rubygem-gobject-introspection
> >> rubygem-gio2
> >> rubygem-gdk_pixbuf2
> >> rubygem-pango
> >> rubygem-gdk3
> >>
> >> rubygem-gtk3
> >>
> >> rubygem-atk
> >
> > I can also confirm the issue. I always perform portmaster in order that
> > you shown by hand when rubygem-gtk ports updated. portmaster needs to be fixed.
>
> A quick check shows that this is a problem with the port, which obviously
> declares actual build dependencies as run dependencies.
>
> Please open a PR and let the ruby maintainers fix this issue.
>
> E.g. in x11-toolkits/rubygem-gtk3/Makefile:
>
> RUN_DEPENDS=    rubygem-atk>=${PORTVERSION}:accessibility/rubygem-atk \
>                 rubygem-gdk3>=${PORTVERSION}:x11-toolkits/rubygem-gdk3 \
>                 rubygem-gdk_pixbuf2>=${PORTVERSION}:graphics/rubygem-gdk_pixbuf2 \
>                 rubygem-gio2>=${PORTVERSION}:devel/rubygem-gio2 \
>                 rubygem-glib2>=${PORTVERSION}:devel/rubygem-glib2 \
>
> rubygem-gobject-introspection>=${PORTVERSION}:devel/rubygem-gobject-introspection
> \
>                 rubygem-pango>=${PORTVERSION}:x11-toolkits/rubygem-pango
>
> Run dependencies are generally built after the port that needs them, since
> they may themselves depend on resources provided by the respective port.

That doesn't seem right. That is the reverse of a run dependency. If
vim/Makefile: RUN_DEPENDS= ncurses
then ncurses cannot possibly depend on vim as a BUILD_DEPENDS. poudriere
builds RUN_DEPENDS in advance, and RUN_DEPENDS should be rebuilt
in advance as well.

> Build dependencies OTOH provide those files that need to be updated before
> building a port. They may also be run dependencies (and often are), and in
> that case they need to be in both the BUILD_DEPENDS and RUND_DEPENDS lists.

This doesn't seem right either. Unless a ruby gem is compiling C or C++
modules, its dependencies are only needed at runtime.

> I cannot modify the behavior of portmaster (i.e. build run dependencies
> before the port that needs them, since this would break quite a number of
> other ports with correct dependency specifications: Then portmaster would
> try to build run dependencies before their prerequisites are available).
>
> So, I'm sorry, but portmaster will not be able to upgrade the rubygem ports
> in the correct order, unless the port dependencies are fixed.

I suspect this might actually be a portmaster issue.

# Adam


-- 
Adam Weinberger
adamw@adamw.org
https://www.adamw.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP7rwcgaqwzZa-d_3d4UPWQTBAmn3LbQkUe5Vci8VpEQdaKULA>