Page MenuHomeFreeBSD

New ports devel/g-wrap, graphics/guile-cairo, x11-toolkits/guile-gnome-platform: enables the use of the Gnome GUI from Guile scripts
ClosedPublic

Authored by andrew_tao173.riddles.org.uk on Oct 30 2019, 5:04 AM.

Details

Summary

This set of ports enables the use of the Gnome GUI from Guile scripts. The real work is in the guile-gnome-platform one, the other two are just dependencies.

Test Plan

Tested for build + successful run of nontrivial example programs on:

FreeBSD 11-stable, amd64
FreeBSD 12-stable, amd64, armv7, i386

(I have no other platforms available)

portlint - passes.

poudriere testport - passes

port options were all tested individually and in significant combinations, but not all combinations tested

install packages and run example program - passes

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

linimon retitled this revision from New ports devel/g-wrap, graphics/guile-cairo, x11-toolkits/guile-gnome-platform to New ports devel/g-wrap, graphics/guile-cairo, x11-toolkits/guile-gnome-platform: enables the use of the Gnome GUI from Guile scripts.Oct 30 2019, 11:41 AM

Ugh, build does break for some option combinations due to hidden dependency on gettext-tools (for aclocal/lib-link.m4). Will post new patch after next round of tests.

Add build dependency on gettext-tools, to get some stuff (gnulib's lib-link.m4) that actually has nothing to do with gettext :-(

Fix unneeded dependency on guile-cairo when CAIRO option is off.

Reorg some variables a bit.

This revision was not accepted when it landed; it landed in state Needs Review.Apr 7 2020, 6:22 AM
This revision was automatically updated to reflect the committed changes.
koobs added a subscriber: koobs.

Approval for FLAVORS for x11-toolkits/guile-gnome-platform please portmgr

I just noticed that the diff here had been replaced by the one from the first commit, so I'm re-uploading the diff of just the uncommitted part for ease of further review.

Is it possible to have the flavors not conflict with each other? Like, the full flavor only install the bits that are enabled by the options.

Also, could you please run the port through portclippy, or read the chapter on how a Makefile should be ordered, everything is mixed and it is very hard to follow.

x11-toolkits/guile-gnome-platform/Makefile
16 ↗(On Diff #70925)
USES=gettext-tools
48–50 ↗(On Diff #70925)

You should not be mixing options and flavors. You should enable/didsable the "things" that you need for each flavor using .if ${FLAVOR} == xxx blocks.

If you really really mean to be mixing them, you should use OPTIONS_SLAVE to enable the three options when the flavor is full.

138 ↗(On Diff #70925)

Extra \ at the end here.

In D22189#557452, @mat wrote:

Is it possible to have the flavors not conflict with each other? Like, the full flavor only install the bits that are enabled by the options.

Not trivially - I hadn't actually considered trying to make it two separate ports before, but comparing the generated code for some of the modules common to both builds, there are in fact differences (I don't know why, or whether they are significant, and finding out would not be easy).

New patch in progress to address some of the other issues.

With regard to portclippy, I do not understand the logic of its suggestion to prefix variables with '_'. It seems to me that this is more likely to cause conflicts with the framework, which uses variables with _ prefixes internally all over the place.

x11-toolkits/guile-gnome-platform/Makefile
48–50 ↗(On Diff #70925)

I'd intended it to work along the lines of a normal "lite" slave port, where using OPTIONS_EXCLUDE to exclude the heavy options is the normal approach.

But on further examination, the problem with this is that slave ports get their own OPTIONS_FILE while flavors don't, which seems to me to be a rather important difference that maybe should be noted in the handbook (or indeed fixed?).

accept wrt flavors.

guile-gnome-platform/Makefile
49 ↗(On Diff #74102)

You don't need :Ulite here, FLAVOR is always defined.

I've added the following post-patch target locally to address the build breakage on -CURRENT that I mentioned, let me know if you'd prefer to do it otherwise -- I think sed'ing it is OK if it's not worth upstreaming the expression change. I've test-built on -CURRENT/amd64 and 12.1/i386, with 11.3/amd64 in progress:

post-patch:
    @${REINPLACE_CMD} -e '/grep/s,\^ {|,^ \\{|,' ${WRKSRC}/gconf/gnome/gw/Makefile.in \
        ${WRKSRC}/gconf/gnome/overrides/Makefile.in \
        ${WRKSRC}/gconf/gnome/Makefile.in \
        ${WRKSRC}/libgnome/gnome/gw/Makefile.in \
        ${WRKSRC}/libgnome/gnome/Makefile.in \
        ${WRKSRC}/libgnome/gnome/overrides/Makefile.in \
        ${WRKSRC}/defs/gnome/defs/Makefile.in \
        ${WRKSRC}/defs/Makefile.in \
        ${WRKSRC}/gtk/Makefile.in \
        ${WRKSRC}/gtk/gnome/gw/Makefile.in \
        ${WRKSRC}/gtk/gnome/gtk/Makefile.in \
        ${WRKSRC}/gtk/gnome/overrides/Makefile.in \
        ${WRKSRC}/gtk/gnome/contrib/Makefile.in \
        ${WRKSRC}/gtk/gnome/Makefile.in \
        ${WRKSRC}/libgnomeui/Makefile.in \
        ${WRKSRC}/libgnomeui/gnome/overrides/Makefile.in \
        ${WRKSRC}/libgnomeui/gnome/gw/Makefile.in \
        ${WRKSRC}/libgnomeui/gnome/Makefile.in \
        ${WRKSRC}/libgnomecanvas/gnome/gw/Makefile.in \
        ${WRKSRC}/libgnomecanvas/gnome/Makefile.in \
        ${WRKSRC}/libgnomecanvas/gnome/overrides/Makefile.in \
        ${WRKSRC}/libglade/gnome/overrides/Makefile.in \
        ${WRKSRC}/libglade/gnome/gw/Makefile.in \
        ${WRKSRC}/libglade/gnome/Makefile.in \
        ${WRKSRC}/pango/gnome/Makefile.in \
        ${WRKSRC}/pango/gnome/overrides/Makefile.in \
        ${WRKSRC}/pango/gnome/gw/Makefile.in \
        ${WRKSRC}/glib/gnome/Makefile.in \
        ${WRKSRC}/glib/gnome/gobject/Makefile.in \
        ${WRKSRC}/glib/gnome/overrides/Makefile.in \
        ${WRKSRC}/glib/gnome/gw/Makefile.in \
        ${WRKSRC}/glib/gnome/gw/support/Makefile.in \
        ${WRKSRC}/glib/Makefile.in \
        ${WRKSRC}/glib/bin/Makefile.in \
        ${WRKSRC}/glib/test-suite/Makefile.in \
        ${WRKSRC}/common.mk \
        ${WRKSRC}/cairo/gnome/gw/Makefile.in \
        ${WRKSRC}/cairo/gnome/Makefile.in \
        ${WRKSRC}/atk/gnome/overrides/Makefile.in \
        ${WRKSRC}/atk/gnome/gw/Makefile.in \
        ${WRKSRC}/atk/gnome/Makefile.in
This revision was not accepted when it landed; it landed in state Needs Review.Sep 17 2020, 5:47 PM
This revision was automatically updated to reflect the committed changes.