Bug 275567

Summary: x11-toolkits/gtk30: Update to 3.24.38
Product: Ports & Packages Reporter: Nuno Teixeira <eduardo>
Component: Individual Port(s)Assignee: Dimitry Andric <dim>
Status: Closed FIXED    
Severity: Affects Only Me CC: arrowd, chalpin, discipline, eduardo, george, grahamperrin, jcfyecrayz, o.hushchenkov, robbak, rozhuk.im, vvd
Priority: --- Flags: bugzilla: maintainer-feedback? (desktop)
antoine: exp-run+
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/NEWS?ref_type=heads
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269963
Bug Depends on: 269963    
Bug Blocks:    
Attachments:
Description Flags
v0
none
v1: activate DEBUG option
none
v2: fix CUPS option, Makefile cleanup
none
v3: remove ATK_BRIDGE option
none
v4: restore ATK_BRIDGE; add DOCS
none
v5: add TEST option
none
v6: remove TEST option none

Description Nuno Teixeira freebsd_committer freebsd_triage 2023-12-06 12:00:20 UTC
Created attachment 246817 [details]
v0

- Switch to meson build (requirement since 3.24.36)
- Group BROADWAY, X11 and WAYLAND options into BACKEND multi option (at least one backend needed to build)
- Docs, manuals and examples build are disabled by default (meson)
- ATK_BRIDGE option disabled for now as I can't find a config option for it.[1][2]
- Organized Makefile vars to match gtk40 (for comparison)
- Patches that are not used by port were moved to files.OFF (temporarily)


[1]
NEWS: v3.5.6
The accessibility bridge code that exports accessible objects
on the bus is used by default (atk-bridge has been converted into
a library that GTK+ links against). To avoid the linking, you can
pass --without-atk-bridge when configuring GTK+.

[2]
Also there is a PR related that might be important:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269963

In time, other PRs could be linked to this PR:
https://bugs.freebsd.org/bugzilla/buglist.cgi?quicksearch=gtk30&list_id=657983
Comment 1 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-06 12:05:00 UTC
Run test on ports that I maintain: OK

cad/gtkwave
deskutils/gsimplecal
editors/lapce
archivers/xarchiver
graphics/birdfont
graphics/drawing
editors/xmlcopyeditor
games/exult
graphics/mtpaint
science/gramps
x11-clocks/xdaliclock
www/bluefish
graphics/zathura-cb
x11-toolkits/gtkdatabox
security/picocrypt

Thinking doing a exp-run myself on:

`git grep -e 'GNOME.*gtk30' -e 'x11-toolkits/gtk30'`

or ask for an exp-run when this port is ready.
Comment 2 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-06 12:26:49 UTC
(In reply to Nuno Teixeira from comment #1)
(...)
- DEBUG is currently disabled (commented), not tested yet
Comment 3 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-07 10:45:50 UTC
Created attachment 246850 [details]
v1: activate DEBUG option

- Activate DEBUG option: (DEBUG_MESON_ON=--buildtype=debug)
    ...
    buildtype         : debug
    optimization      : plain
    strip             : true
    ...
Comment 4 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-07 10:52:34 UTC
(In reply to Nuno Teixeira from comment #3)
(...)
###
gtk_debug_cflags = []
debug = get_option('debug')
optimization = get_option('optimization')
if debug
  gtk_debug_cflags += '-DG_ENABLE_DEBUG'
  if optimization in ['0', 'g']
    gtk_debug_cflags += '-DG_ENABLE_CONSISTENCY_CHECKS'
  endif
elif optimization in ['2', '3', 's']
  gtk_debug_cflags += '-DG_DISABLE_CAST_CHECKS'
endif
###

- We could change 'optimization' for better debug.
- How to disable 'stripping'. I was thinking that DEBUG when turned on, disabled optimized cflags and strip...
Comment 5 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-10 11:15:20 UTC
Created attachment 246952 [details]
v2: fix CUPS option, Makefile cleanup

- Switch to DISTVERSION
- Move port innitioal comment to the front of DISTVERSION (like in gtk2)
- Fix CUPS option
- Use shebangfix on .py files instead of BINARY_ALIAS
- Pet portlint, portclippy and portfmt
Comment 6 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-10 11:21:50 UTC
Created attachment 246953 [details]
v3: remove ATK_BRIDGE option

-remove ATK_BRIDGE option, closes #269963
Comment 7 Corey Halpin 2023-12-10 14:32:33 UTC
(In reply to Nuno Teixeira from comment #6)

The ATK_BRIDGE option is pretty important for those of us who do not want dbus on our systems. Historically the ports tree has been flexible enough to accommodate that use case. It would be a shame for that flexibility to go away - it is one of the great strengths of ports.

I'm not entirely following what the motivation is for removing it. Is it technically difficult to maintain with the new version?

Are you concerned that it's not sufficiently tested? And if that's the issue, is there testing I could provide to address those concerns?
Comment 8 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-10 17:03:58 UTC
(In reply to Corey Halpin from comment #7)

Could you take a look at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269963 ?
Please tell me if it needs to be reopened.

There is no meson opion to control it but I can re-test it again with:
ATK_BRIDGE_LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core
Comment 9 Corey Halpin 2023-12-10 17:28:02 UTC
In pkgsrc they have a patch-meson.build to add such a meson flag: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/x11/gtk3/patches/patch-meson.build?rev=1.3&content-type=text/x-cvsweb-markup

Could that be used here too?
Comment 10 Jan Beich freebsd_committer freebsd_triage 2023-12-10 20:02:06 UTC
See also bug 251647 for the previous attempt. When switching build systems it's easy to introduce regressions. With Git changes can be split into separate commits, facilitating post-push review, blame and bisection.

(In reply to Corey Halpin from comment #9)
Meson option was already part of files/patch-atk-bridge-option but disabled here. Rebasing is trivial: remove hunks affecting configure, config.h.in and config.h.meson.
Comment 11 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-10 20:31:04 UTC
Nice! I'm taking a look a pkgsrc meson patch:

+atkbridge_enabled      = get_option('atk_bridge')
(...)

Tomorrow I will apply it.

Related to mans and docs, any sugestions if we should installed them with a DOCS option?

MESON_ARGS+= -Dgtk_doc=true -Dman=true

as they are set to false by default.

Thanks
Comment 12 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-11 08:18:02 UTC
(In reply to Jan Beich from comment #10)
Hello Jan,

Yes, I really missed this patch.
I've removed unused chunks like you said.

Just a difference from NetBSD patch that might be of importance:

Our patch:

-#ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
 #include <atk-bridge.h>
 #endif

pkgsrc patch:

 #ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
 #include <atk-bridge.h>
 #endif
+#endif

What do you think?
For now I will use our patch and make tests.

Thanks
Comment 13 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-11 09:19:57 UTC
(In reply to Nuno Teixeira from comment #12)
(...)

Also, our patch does this:

> +  if atkbridge_dep.found()
> +    atk_pkgs += ['atk-bridge-2.0']
> +    cdata.set('HAVE_ATK_BRIDGE', 1)

that causes to activate a run dep with atk-bridge true or false.

pkgsrc patch fixes it with:

< +  if atkbridge_enabled
<    atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
< +  cdata.set('HAVE_ATK_BRIDGE', 1)
< +  endif
Comment 14 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-11 11:24:48 UTC
Created attachment 246974 [details]
v4: restore ATK_BRIDGE; add DOCS

- Restore ATK_BRIDGE option:
  using pkgsrc slightly different patch, fixes true/false option on run detection

- Add DOCS option to include docs and mans (as actual port do)
Comment 15 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-12 08:48:05 UTC
Will ask for an exp-run in 24 hours
Comment 16 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-13 10:48:13 UTC
Created attachment 247027 [details]
v5: add TEST option

- Add TEST option (default off) to not build tests (meson on by default)
- Remove (USES) GL=egl dependency on WAYLAND option because it lib_depends on
  libwayland-egl.so:graphics/wayland
Comment 17 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-13 13:16:14 UTC
(In reply to Nuno Teixeira from comment #16)
(...)
- Add ATK_BRIDGE_IMPLIES=X11 as it only links to libatk-bridge-2.0.so if X11
  is present
Comment 18 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-14 08:31:25 UTC
Proposed bump consumers list will be
$ `git grep -e 'GNOME.*gtk30' -e 'x11-toolkits/gtk30'`
Comment 19 Antoine Brodin freebsd_committer freebsd_triage 2023-12-19 10:07:58 UTC
There is a problem with the TEST option in the patch.

Either it changes the content of the package (which doesn't seem to be the case) and it can be an option.

Or it doesn't change the content of the package and it can't be an option,  it must be hooked to the test framework.
Comment 20 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-19 11:50:52 UTC
(In reply to Antoine Brodin from comment #19)

meson build tests are on by default and it causes to add more code to build.
TEST option was a way to turn it off by default but giving user the change to turn it on if needed.

We could remove TEST option and let meson uses its default value
or
we can force building tests to off with MESON_ARGS and save some building time.

Since this issue doesn't affects port funcionality, maybe it's best to just remove the TEST option.

Could I have your opinion on this?

Thanks
Comment 21 Antoine Brodin freebsd_committer freebsd_triage 2023-12-19 12:22:12 UTC
(In reply to Nuno Teixeira from comment #20)
my personal opinion is to have it on in MESON_ARGS if the port uses the test framework,  or to have it off in MESON_ARGS otherwise.
Comment 22 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-19 14:26:05 UTC
Created attachment 247160 [details]
v6: remove TEST option

- Remove TEST option:
  meson build tests are on by default and port uses test framework.

Here is the result of `make test`:

###
Summary of Failures:

 48/192 gtk+:gtk / window                                                FAIL             0.33s   killed by signal 6 SIGABRT

Ok:                 191
Expected Fail:      0
Fail:               1
Unexpected Pass:    0
Skipped:            0
Timeout:            0
###

=================================== 49/192 ===================================
test:         gtk+:gtk / window
start time:   14:20:39
duration:     0.31s
result:       killed by signal 6 SIGABRT
command:      ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 GTK_CSD=1 GSK_RENDERER=cairo LD_LIBRARY_PATH=/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/subprojects/proxy-libintl:/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/gtk:/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/gdk GTK_TEST_MESON=1 G_TEST_BUILDDIR=/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/testsuite/gtk GIO_USE_VOLUME_MONITOR=unix GSETTINGS_SCHEMA_DIR=/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/gtk MALLOC_PERTURB_=87 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 GSETTINGS_BACKEND=memory G_TEST_SRCDIR=/home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/testsuite/gtk G_ENABLE_DIAGNOSTIC=0 /home/nunotex/Work/freebsd/ports/main/x11-toolkits/gtk30/work/gtk+-3.24.38/_build/testsuite/gtk/window --tap -k
----------------------------------- stdout -----------------------------------
TAP version 13
# random seed: R02S817f898b345751f22197a4d4cf8c6cd8
1..7
# Start of window tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
not ok /window/default-size - ERROR:../testsuite/gtk/window.c:88:test_default_size: assertion failed (w == 300): (476 == 300)
Bail out!
----------------------------------- stderr -----------------------------------
**
ERROR:../testsuite/gtk/window.c:88:test_default_size: assertion failed (w == 300): (476 == 300)
==============================================================================
Comment 23 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-21 09:07:11 UTC
tests: only build tests when `make test` is asked (ala x11-toolkits/gtk40)

Further improvements to port related to build tests could be:

- build without building tests
- use a 'pre-test' to build them when `make test` is executed:

###
MESON_ARGS= -Dtests=false

pre-test:
  ${RM} ${CONFIGURE_COOKIE} ${BUILD_COOKIE}
  ${MAKE} -C${.CURDIR} build MESON_ARGS="${MESON_ARGS} --reconfigure -Dtests=true"
###

This way, port build will save around 1500 -> 1000 lines of code to build.

Any thoughts?
Comment 24 Antoine Brodin freebsd_committer freebsd_triage 2023-12-21 21:53:30 UTC
Exp-run looks fine
Comment 25 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-22 08:35:44 UTC
(In reply to Antoine Brodin from comment #24)

Thank you very much Antoine!
Comment 26 commit-hook freebsd_committer freebsd_triage 2023-12-23 18:15:30 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0a1dd69c3167141ace3cb39e897fd6e6ee0026c1

commit 0a1dd69c3167141ace3cb39e897fd6e6ee0026c1
Author:     Nuno Teixeira <eduardo@FreeBSD.org>
AuthorDate: 2023-12-23 12:56:37 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2023-12-23 18:14:13 +0000

    x11-toolkits/gtk30: Update to 3.24.38

    - Switch to DISTVERSION
    - Switch to meson build
    - Fix ATK_BRIGDE option (deps run detection: #PR269963)
    - Group backends into multi option (at least one backend needed to build)
    - Pet portlint, portclippy and portfmt

    ChangeLog:      https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/NEWS
    PR:             269963, 275567
    Exp-run by:     antoine

 x11-toolkits/gtk30/Makefile                        |  107 +-
 x11-toolkits/gtk30/distinfo                        |    6 +-
 x11-toolkits/gtk30/files/patch-Makefile.in (gone)  |   11 -
 x11-toolkits/gtk30/files/patch-atk-bridge-option   |  124 +-
 x11-toolkits/gtk30/files/patch-configure (gone)    |   28 -
 .../gtk30/files/patch-docs_Makefile.in (gone)      |   20 -
 .../patch-docs_reference_gtk_Makefile.in (gone)    |   10 -
 .../patch-docs_reference_gtk_meson.build (new)     |   10 +
 .../gtk30/files/patch-gtk_gtkbuilderparser.c       |    8 +-
 .../gtk30/files/patch-gtk_updateiconcache.c        |    6 +-
 x11-toolkits/gtk30/pkg-plist                       | 1397 ++++++++++----------
 11 files changed, 820 insertions(+), 907 deletions(-)
Comment 27 Oleh Hushchenkov 2023-12-23 20:06:50 UTC
After this update I can't run gtk3 based programs.
The lib and programs built from ports.

zathura
ld-elf.so.1: /usr/local/lib/libgtk-3.so.0: Undefined symbol "g_libintl_bindtextdomain"

gtk3-demo
ld-elf.so.1: /usr/local/bin/gtk3-demo: Undefined symbol "g_libintl_gettext"
Comment 28 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-23 20:48:34 UTC
(In reply to Oleh Hushchenkov from comment #27)

> zathura
> ld-elf.so.1: /usr/local/lib/libgtk-3.so.0: Undefined symbol
> "g_libintl_bindtextdomain"
Running OK
libgtk-3.so.0 => /usr/local/lib/libgtk-3.so.0 (0x294800800000)

> gtk3-demo
> ld-elf.so.1: /usr/local/bin/gtk3-demo: Undefined symbol "g_libintl_gettext"
Runing OK
Samples OK

Dirty enviroment building?
Comment 29 Ivan Rozhuk 2023-12-24 00:40:52 UTC
(In reply to Nuno Teixeira from comment #28)
No.
Someone miss
lib/libgdk-3.so
lib/libgdk-3.so.0
lib/libgdk-3.so.%%LIBVERSION%%
lib/libgtk-3.so
lib/libgtk-3.so.0
lib/libgtk-3.so.%%LIBVERSION%%
lib/libintl.a
lib/libintl.so
^^^^^^^^^^^^^^^^^
on make makeplist generation output.

Or as usual no tests done on real env and some AUTO build deps trigered.
Here is mine make configure output:

# make configure
===>  License LGPL20 accepted by the user
===>   gtk3-3.24.38 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by gtk3-3.24.38 for building
===>  Extracting for gtk3-3.24.38
=> SHA256 Checksum OK for gnome/gtk+-3.24.38.tar.xz.
===>  Patching for gtk3-3.24.38
===>  Applying FreeBSD patches for gtk3-3.24.38 from /usr/ports/x11-toolkits/gtk30/files
===>   gtk3-3.24.38 depends on package: gettext-runtime>=0.22_1 - found
===>   gtk3-3.24.38 depends on executable: msgfmt - found
===>   gtk3-3.24.38 depends on executable: g-ir-scanner - found
===>   gtk3-3.24.38 depends on executable: meson - found
===>   gtk3-3.24.38 depends on executable: ninja - found
===>   gtk3-3.24.38 depends on package: pkgconf>=1.3.0_1 - found
===>   gtk3-3.24.38 depends on file: /usr/local/bin/python3.9 - found
===>   gtk3-3.24.38 depends on package: perl5>=5.36<5.37 - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xcomposite.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xcursor.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xdamage.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xfixes.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xi.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xinerama.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xrandr.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/libdata/pkgconfig/xrender.pc - found
===>   gtk3-3.24.38 depends on file: /usr/local/bin/ccache - found
===>   gtk3-3.24.38 depends on shared library: libepoxy.so - found (/usr/local/lib/libepoxy.so)
===>   gtk3-3.24.38 depends on shared library: libfontconfig.so - found (/usr/local/lib/libfontconfig.so)
===>   gtk3-3.24.38 depends on shared library: libfribidi.so - found (/usr/local/lib/libfribidi.so)
===>   gtk3-3.24.38 depends on shared library: libharfbuzz.so - found (/usr/local/lib/libharfbuzz.so)
===>   gtk3-3.24.38 depends on shared library: libatk-bridge-2.0.so - found (/usr/local/lib/libatk-bridge-2.0.so)
===>   gtk3-3.24.38 depends on shared library: libcups.so - found (/usr/local/lib/libcups.so)
===>   gtk3-3.24.38 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>   gtk3-3.24.38 depends on shared library: libatk-1.0.so - found (/usr/local/lib/libatk-1.0.so)
===>   gtk3-3.24.38 depends on shared library: libcairo.so - found (/usr/local/lib/libcairo.so)
===>   gtk3-3.24.38 depends on shared library: libgdk_pixbuf-2.0.so - found (/usr/local/lib/libgdk_pixbuf-2.0.so)
===>   gtk3-3.24.38 depends on shared library: libglib-2.0.so - found (/usr/local/lib/libglib-2.0.so)
===>   gtk3-3.24.38 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>   gtk3-3.24.38 depends on shared library: libpango-1.0.so - found (/usr/local/lib/libpango-1.0.so)
===>  Configuring for gtk3-3.24.38
WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug. Using both is redundant since they override each other. See: https://mesonbuild.com/Builtin-options.html#build-type-options
The Meson build system
Version: 1.3.0
Source dir: /tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38
Build dir: /tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38/_build
Build type: native build
Project name: gtk+
Project version: 3.24.38
C compiler for the host machine: cc (clang 16.0.6 "FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)")
C linker for the host machine: cc ld.lld 16.0.6
Host machine cpu family: x86_64
Host machine cpu: x86_64
Has header "crt/externs.h" : NO 
Has header "dlfcn.h" : YES 
Has header "ftw.h" : YES 
Has header "inttypes.h" : YES 
Has header "linux/memfd.h" : NO 
Has header "linux/input.h" : YES 
Has header "dev/evdev/input.h" : YES 
Has header "locale.h" : YES 
Has header "memory.h" : YES 
Has header "stdint.h" : YES 
Has header "stdlib.h" : YES 
Has header "string.h" : YES 
Has header "strings.h" : YES 
Has header "sys/mman.h" : YES 
Has header "sys/param.h" : YES 
Has header "sys/stat.h" : YES 
Has header "sys/sysinfo.h" : YES 
Has header "sys/systeminfo.h" : NO 
Has header "sys/time.h" : YES 
Has header "sys/types.h" : YES 
Has header "unistd.h" : YES 
Library m found: YES
Checking for function "dcgettext" with dependency -lm: NO 
Checking for function "getpagesize" with dependency -lm: YES 
Checking for function "getresuid" with dependency -lm: YES 
Checking for function "lstat" with dependency -lm: YES 
Checking for function "mmap" with dependency -lm: YES 
Checking for function "nearbyint" with dependency -lm: YES 
Checking for function "posix_fallocate" with dependency -lm: YES 
Checking for function "_lock_file" with dependency -lm: NO 
Checking for function "flockfile" with dependency -lm: YES 
Checking for function "mkstemp" with dependency -lm: YES 
Checking for function "mallinfo" with dependency -lm: NO 
Checking for function "round" with dependency -lm: YES 
Checking for function "rint" with dependency -lm: YES 
Checking for function "log2" with dependency -lm: YES 
Checking for function "exp2" with dependency -lm: YES 
Checking for function "sincos" with dependency -lm: YES 
Checking for function "trunc" with dependency -lm: YES 
Checking for function "localtime_r" with dependency -lm: YES 
Checking for function "fmin" with dependency -lm: YES 
Header "math.h" has symbol "isinf" : YES 
Header "math.h" has symbol "isnan" : YES 
Compiler for C supports arguments -fno-strict-aliasing: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Wimplicit-function-declaration: YES 
Compiler for C supports arguments -Wformat=2: YES 
Compiler for C supports arguments -Wformat-security: YES 
Compiler for C supports arguments -Wnested-externs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wunused: YES 
Compiler for C supports arguments -Wcast-align: YES 
Compiler for C supports arguments -Wmissing-noreturn: YES 
Compiler for C supports arguments -Wmissing-format-attribute: YES 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wignored-qualifiers: YES 
Compiler for C supports arguments -Wno-discarded-qualifiers: NO 
Compiler for C supports arguments -Werror=implicit: YES 
Compiler for C supports arguments -Werror=nonnull: YES 
Compiler for C supports arguments -Werror=init-self: YES 
Compiler for C supports arguments -Werror=main: YES 
Compiler for C supports arguments -Werror=missing-braces: YES 
Compiler for C supports arguments -Werror=sequence-point: YES 
Compiler for C supports arguments -Werror=return-type: YES 
Compiler for C supports arguments -Werror=trigraphs: YES 
Compiler for C supports arguments -Werror=array-bounds: YES 
Compiler for C supports arguments -Werror=write-strings: YES 
Compiler for C supports arguments -Werror=address: YES 
Compiler for C supports arguments -Werror=int-to-pointer-cast: YES 
Compiler for C supports arguments -Werror=pointer-to-int-cast: YES 
Compiler for C supports arguments -Werror=empty-body: YES 
Compiler for C supports arguments -Werror=write-strings: YES (cached)
Checking if "-Wl,-Bsymbolic" : links: YES 
Checking if "-Wl,-z,relro" : links: YES 
Checking if "-Wl,-z,now" : links: YES 
Found pkg-config: YES (/usr/local/bin/pkgconf) 2.0.3
Run-time dependency glib-2.0 found: YES 2.78.3
Run-time dependency gobject-2.0 found: YES 2.78.3
Run-time dependency gio-unix-2.0 found: YES 2.78.3
Run-time dependency gmodule-2.0 found: YES 2.78.3
Run-time dependency cairo found: YES 1.17.4
Run-time dependency cairo-gobject found: YES 1.17.4
Run-time dependency pango found: YES 1.50.14
Run-time dependency fribidi found: YES 1.0.13
Run-time dependency pangoft2 found: YES 1.50.14
Run-time dependency freetype2 found: YES 26.1.20
Run-time dependency pangocairo found: YES 1.50.14
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.10
Run-time dependency epoxy found: YES 1.5.9
Run-time dependency atk found: YES 2.50.0
Run-time dependency harfbuzz found: YES 8.3.0
Run-time dependency xkbcommon found: YES 1.6.0
Run-time dependency iso-codes found: YES 4.15.0
Run-time dependency cairo-xlib found: YES 1.17.4
Run-time dependency xrandr found: YES 1.5.2
Dependency xrandr found: YES 1.5.2 (cached)
Run-time dependency x11 found: YES 1.8.7
Run-time dependency xrender found: YES 0.9.10
Run-time dependency xi found: YES 1.8
Run-time dependency xext found: YES 1.3.4
Run-time dependency xcursor found: YES 1.2.0
Run-time dependency xdamage found: YES 1.1.6
Run-time dependency xfixes found: YES 6.0.0
Run-time dependency xcomposite found: YES 0.4.6
Run-time dependency fontconfig found: YES 2.14.2
Run-time dependency atk-bridge-2.0 found: YES 2.50.0
Checking for function "XkbQueryExtension" with dependency x11: YES 
Checking for function "XSyncQueryExtension" with dependency xext: YES 
Checking for function "XGetEventData" with dependency x11: YES 
Has header "X11/extensions/XInput2.h" with dependency xi: YES 
Checking for function "XIAllowTouchEvents" with dependency xi: YES 
Checking whether type "XIScrollClassInfo" has member "number" with dependency xi: YES 
Checking whether type "XIGesturePinchEvent" has member "type" with dependency xi: YES 
Run-time dependency xinerama found: YES 1.1.4
Header "X11/extensions/Xinerama.h" has symbol "XineramaQueryExtension" with dependency xinerama: YES 
Checking for function "ngettext" : NO 
Library intl found: NO
Checking for function "bind_textdomain_codeset" with dependency -lintl: NO 
Looking for a fallback subproject for the dependency (anonymous)
Cloning into 'proxy-libintl'...
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 39 (delta 5), reused 7 (delta 3), pack-reused 25
Receiving objects: 100% (39/39), 21.70 KiB | 600.00 KiB/s, done.
Resolving deltas: 100% (16/16), done.
HEAD is now at e792f40 Include a leaner windows.h which avoids a lot of useless stuff

Executing subproject proxy-libintl 

proxy-libintl| Project name: proxy-libintl
proxy-libintl| Project version: 1
proxy-libintl| C compiler for the host machine: cc (clang 16.0.6 "FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)")
proxy-libintl| C linker for the host machine: cc ld.lld 16.0.6
proxy-libintl| WARNING: extract_all_objects called without setting recursive
proxy-libintl| keyword argument. Meson currently defaults to
proxy-libintl| non-recursive to maintain backward compatibility but
proxy-libintl| the default will be changed in the future.

proxy-libintl| Build targets in project: 2
proxy-libintl| Subproject proxy-libintl finished.

Dependency (anonymous) from subproject subprojects/proxy-libintl found: YES 1
Program g-ir-scanner found: YES (/usr/local/bin/g-ir-scanner)
Program gen-gdk-gresources-xml.py found: YES (/usr/local/bin/python3.9 /tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38/gdk/gen-gdk-gresources-xml.py)
Configuring gdk.gresource.xml with command
Build-time dependency gio-2.0 found: YES 2.78.3
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-genmarshal found: YES (/usr/local/bin/glib-genmarshal)
Configuring gdkconfig.h using configuration
Configuring gdkversionmacros.h using configuration
Run-time dependency gobject-introspection-1.0 found: YES 1.78.1
Dependency gobject-introspection-1.0 found: YES 1.78.1 (cached)
Program /usr/local/bin/g-ir-scanner found: YES (/usr/local/bin/g-ir-scanner)
Dependency gobject-introspection-1.0 found: YES 1.78.1 (cached)
Program /usr/local/bin/g-ir-compiler found: YES (/usr/local/bin/g-ir-compiler)
Program gen-gtk-gresources-xml.py found: YES (/usr/local/bin/python3.9 /tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38/gtk/gen-gtk-gresources-xml.py)
Configuring gtk.gresources.xml with command
Program sassc found: YES (/usr/local/bin/sassc)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/gdbus-codegen found: YES (/usr/local/bin/gdbus-codegen)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-genmarshal found: YES (/usr/local/bin/glib-genmarshal)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-mkenums found: YES (/usr/local/bin/glib-mkenums)
Program gentypefuncs.py found: YES (/usr/local/bin/python3.9 /tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38/gtk/gentypefuncs.py)
Configuring gtkversion.h using configuration
Dependency x11 found: YES 1.8.7 (cached)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Has header "langinfo.h" : YES 
Header "langinfo.h" has symbol "_NL_MEASUREMENT_MEASUREMENT" : NO 
Header "langinfo.h" has symbol "_NL_PAPER_HEIGHT" : NO 
Header "langinfo.h" has symbol "_NL_PAPER_WIDTH" : NO 
Header "langinfo.h" has symbol "_NL_TIME_FIRST_WEEKDAY" : NO 
Configuring de.gresource.xml using configuration
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Configuring fr.gresource.xml using configuration
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Configuring es.gresource.xml using configuration
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Configuring zh.gresource.xml using configuration
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Run-time dependency cups found: YES 2.4.7
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Header "hb-ot.h" has symbol "hb_ot_var_get_axis_count" with dependency harfbuzz: YES 
Program geninclude.py found: YES (/tmp/ports/usr/ports/x11-toolkits/gtk30/work/gtk+-3.24.38/demos/gtk-demo/geninclude.py)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Configuring config.h using configuration
Configuring gail-3.0.pc using configuration
Configuring gdk-3.0.pc using configuration
Configuring gdk-x11-3.0.pc using configuration
Configuring gtk+-3.0.pc using configuration
Configuring gtk+-x11-3.0.pc using configuration
Configuring gtk+-unix-print-3.0.pc using configuration
Program msgfmt found: YES (/usr/local/bin/msgfmt)
Program msginit found: YES (/usr/local/bin/msginit)
Program msgmerge found: YES (/usr/local/bin/msgmerge)
Program xgettext found: YES (/usr/local/bin/xgettext)
Program xsltproc found: YES (/usr/local/bin/xsltproc)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/glib-compile-schemas found: YES (/usr/local/bin/glib-compile-schemas)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/gio-querymodules found: YES (/usr/local/bin/gio-querymodules)
Dependency gio-2.0 found: YES 2.78.3 (cached)
Program /usr/local/bin/gio-querymodules found: YES (/usr/local/bin/gio-querymodules)
Program gtk4-update-icon-cache found: YES (/usr/local/bin/gtk4-update-icon-cache)
Message: 
------
GTK+ 3.24.38 (3.0)

  Display backends: x11 [disabled: broadway quartz wayland win32]
    Print backends: file lpr cups [disabled: papi test]
     Cloud support: false
    Colord support: no
          Profiler: false
     Introspection: true
     Documentation: false
         Man pages: false
       Build tests: false
   Installed tests: false
             Demos: true
          Examples: true
Directories:
            prefix: /usr/local
        includedir: /usr/local/include
            libdir: /usr/local/lib
           datadir: /usr/local/share
------

Build targets in project: 358
NOTICE: Future-deprecated features used:
 * 1.1.0: {'"boolean option" keyword argument "value" of type str'}

gtk+ 3.24.38

  Subprojects
    proxy-libintl     : YES 1 warnings

  User defined options
    auto_features     : enabled
    buildtype         : debug
    infodir           : share/info
    mandir            : man
    optimization      : plain
    prefix            : /usr/local
    strip             : true
    python.bytecompile: -1
    b_colorout        : never
    atk_bridge        : true
    broadway_backend  : false
    colord            : no
    gtk_doc           : false
    man               : false
    print_backends    : cups,file,lpr
    tests             : false
    wayland_backend   : false
    x11_backend       : true

Found ninja-1.11.1 at /usr/local/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
Comment 30 Ivan Rozhuk 2023-12-24 00:44:14 UTC
===>   gtk3-3.24.38 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>   gtk3-3.24.38 depends on shared library: libatk-1.0.so - found (/usr/local/lib/libatk-1.0.so)
===>   gtk3-3.24.38 depends on shared library: libcairo.so - found (/usr/local/lib/libcairo.so)
===>   gtk3-3.24.38 depends on shared library: libgdk_pixbuf-2.0.so - found (/usr/local/lib/libgdk_pixbuf-2.0.so)
===>   gtk3-3.24.38 depends on shared library: libglib-2.0.so - found (/usr/local/lib/libglib-2.0.so)
===>   gtk3-3.24.38 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)

libintl.so found twice by portmaster and not found by meson:

Library intl found: NO
Checking for function "bind_textdomain_codeset" with dependency -lintl: NO 
Looking for a fallback subproject for the dependency (anonymous)
Cloning into 'proxy-libintl'...
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 39 (delta 5), reused 7 (delta 3), pack-reused 25
Receiving objects: 100% (39/39), 21.70 KiB | 600.00 KiB/s, done.
Resolving deltas: 100% (16/16), done.
HEAD is now at e792f40 Include a leaner windows.h which avoids a lot of useless stuff

Executing subproject proxy-libintl
Comment 31 Ivan Rozhuk 2023-12-24 00:49:52 UTC
Also please disable:
             Demos: true
          Examples: true
Comment 32 Vladimir Druzenko freebsd_committer freebsd_triage 2023-12-24 00:56:30 UTC
Same here.

Look at this:
3.24.38:
$ readelf -d /usr/local/lib/libgtk-3.so | grep libintl
 0x0000000000000001 NEEDED               Shared library: [libintl.so]
$ pkg info gtk3 | grep libintl
        libintl.so.8
        libintl.so

3.24.34_1:
$ readelf -d /usr/local/lib/libgtk-3.so | grep libintl
 0x0000000000000001 NEEDED               Shared library: [libintl.so.8]
$ pkg info gtk3 | grep libintl
        libintl.so.8
Comment 33 Ivan Rozhuk 2023-12-24 01:42:03 UTC
localbase -> localbase:ldflags

Checking for function "ngettext" : NO 
Library intl found: YES
Checking for function "bind_textdomain_codeset" with dependency -lintl: YES 

fix for me.
Comment 34 Ivan Rozhuk 2023-12-24 01:44:11 UTC
(In reply to Vladimir Druzenko from comment #32)

I suspect this is because autotools->meson migration.
Autotools handle LIBS env var, meson work with LDFLAGS, this come from localbase.mk
Comment 35 Vladimir Druzenko freebsd_committer freebsd_triage 2023-12-24 02:10:30 UTC
(In reply to Ivan Rozhuk from comment #33)
> localbase -> localbase:ldflags
This change fixed issue for me - readelf look good and dependent ports build without these error.
Comment 36 robbak 2023-12-24 05:51:46 UTC
I can report success as well. I take it that the build system is not detecting the installed libintl, so it builds the bundled proxy-libintl, which the ports system doesn't install?

--- a/x11-toolkits/gtk30/Makefile
+++ b/x11-toolkits/gtk30/Makefile
@@ -19,7 +19,7 @@ LIB_DEPENDS=  libepoxy.so:graphics/libepoxy \
 RUN_DEPENDS=   adwaita-icon-theme>=0:x11-themes/adwaita-icon-theme \
                hicolor-icon-theme>=0:misc/hicolor-icon-theme
 
-USES=          compiler:c11 cpe gettext gnome localbase meson ninja pathfix \
+USES=          compiler:c11 cpe gettext gnome localbase:ldflags meson ninja pathfix \
                perl5 pkgconfig python shebangfix tar:xz
 CPE_VENDOR=    gnome
 USE_GNOME=     atk cairo gdkpixbuf2 gtk-update-icon-cache pango \
Comment 37 commit-hook freebsd_committer freebsd_triage 2023-12-24 09:05:46 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3c7613413c0d40ed6428e2918beeb38f81698dcd

commit 3c7613413c0d40ed6428e2918beeb38f81698dcd
Author:     Nuno Teixeira <eduardo@FreeBSD.org>
AuthorDate: 2023-12-24 09:01:14 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2023-12-24 09:04:33 +0000

    x11-toolkits/gtk30: Fix detecting system libintl

    Use localbase:ldflags to detect system libintl. Without it, bundled is
    built instead.

    PR:             275567

 x11-toolkits/gtk30/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Comment 38 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-24 09:09:28 UTC
(In reply to commit-hook from comment #37)

Fixed and PORTREVISION bumped since it changes build pkg.

Thanks all for spoting this!
Comment 39 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-24 09:13:51 UTC
(In reply to Ivan Rozhuk from comment #31)

I did think on that or at least create an option for it.
I choose the path of keep it because old version port install it by default.
gtk2 and gtk4 do the same.
Also, gtk-demo is nice for a quick system check.
Comment 40 George Mitchell 2023-12-24 15:36:59 UTC
(In reply to Oleh Hushchenkov from comment #27)
I had the exact same problem and tried rebuilding gtk3 without first checking here in bugzilla.  (When will I learn?)  After pulling the latest commit AND THEN rebuilding gtk3, I'm happy to confirm that the problem was solved.  Thanks to all (and thanks to bugzilla too)!
Comment 41 John Hein 2023-12-27 19:01:44 UTC
(In reply to Nuno Teixeira from comment #38)
Just for "lessons learned" posterity, why was this problem not noticed with the original commit?  Did the bundled libintl get installed to LOCALBASE for those who were testing the update?  Something else?
Comment 42 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-27 19:24:29 UTC
(In reply to John Hein from comment #41)
In my tests, poudriere builds were fine and run tests were based on install pkgs from that poudriere repo. Bundled lintl worked fine in all run testing of consumers. The problem was detected on local builds outside poudriere.
Comment 43 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-27 19:26:21 UTC
Thinking closing this PR soon.
Comment 44 George Mitchell 2023-12-27 19:33:43 UTC
Closing it works for me, speaking as an unofficial representative of the non-poudriere contingent of FreeBSD users who still build ports.  I do occasionally worry about how soon that group will be disavowed altogether, though.
Comment 45 Ivan Rozhuk 2023-12-28 00:53:06 UTC
(In reply to George Mitchell from comment #44)
poudriere is too heavy to use it in small env.

I can make PoC script that will create chroot from current installed system using mtree+nullfs, install only required packages to it (pkg create + pkg install / pkg install if exist in /ports/packages / build + install in chroot) and build target port.

But I need some one who will integrate it into portmaster.

Also it will require root to run or some hacks, like suid bit on mount/unmount, chroot apps or MAC module to allow users call relevant syscalls.
Comment 46 Gleb Popov freebsd_committer freebsd_triage 2023-12-28 06:12:38 UTC
(In reply to Ivan Rozhuk from comment #45)
You'd better just learn Poudriere rather than reinventing it. Poudriere-devel has an option to download binary packages for heavy dependencies instead of recompiling them.
Comment 47 Nuno Teixeira freebsd_committer freebsd_triage 2023-12-28 11:27:21 UTC
(In reply to Gleb Popov from comment #46)
small correction:
>Poudriere-devel has an option to download binary packages
There's no need to use -devel for that. 3.4.0 have it already.
Comment 48 commit-hook freebsd_committer freebsd_triage 2023-12-30 14:10:21 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=542123d1faa2879d0e6d546dbb82c7cbefeb3745

commit 542123d1faa2879d0e6d546dbb82c7cbefeb3745
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-12-30 14:05:25 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-12-30 14:09:40 +0000

    x11-toolkits/gtk30: fix pkg-plist with BROADWAY option disabled

    After the update to 3.24.38, with the BROADWAY option disabled, the port
    fails to package, with:

      pkg-static: Unable to access file /wrkdirs/share/dim/ports/x11-toolkits/gtk30/work/stage/usr/local/man/man1/broadwayd.1.gz:No such file or directory

    Add %%BROADWAY%% prefixes to more broadway-related files in pkg-plist
    (broadwayd.1.gz, broadwayd.html and gtk-broadway.html).

    PR:             275567
    Fixes:          0a1dd69c3167

 x11-toolkits/gtk30/pkg-plist | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Comment 49 Mark Linimon freebsd_committer freebsd_triage 2024-01-10 07:11:51 UTC
^Triage: assign to committer that resolved.