glibd
Build times (auto-updated)
- x86_64: 1m57s (2026-09-06 17:48 UTC, serial)
Category: maintained/glibd (adopted from official Arch repos – flagged by buildmaster’s “Missing state file” checker as a candidate to move to the AUR; see https://buildmaster.archlinux32.org/checker/summary.html).
2026-09-05: adopted from official repos
- Dropped from: extra-x86_64
- Method used: B (no AUR repo existed, cloned straight from gitlab packaging repo)
- Reason dropped upstream: unknown, needs manual look
- Conflict notes: n/a (Method B, no merge performed)
2026-09-05/06: three unrelated build failures, all fixed (pkgrel 5 -> 6)
Same ldc/meson toolchain as [[gir-to-d]] and [[mustache-d]], plus two
problems unique to this package’s own .gir split and its meson.build.
- Fix 1 – ldc/LDFLAGS: same as gir-to-d/mustache-d.
unset LDFLAGSin build() instead of the-flto=auto->-flto=fullsed. - Fix 2 – GLib/Gio “-unix”
.girsplit: same upstream restructuring as [[qt5-nemo-qml-plugin-configuration]]’s cause, but affecting this package directly instead of a dependency. BothGLib-2.0.girandGio-2.0.girspun off separateGLibUnix-2.0.gir/GioUnix-2.0.girfiles upstream, stripping the redundantunix_/Unixprefix from names in the process (namespace already implies it:g_unix_error_quark-> GIR nameerror_quarkunder namespaceGLibUnix, etc.).fix-glib-unix-split.patch: addedfile: GLibUnix-2.0.girto the existingwrap: glibblock inAPILookupGLib.txt, renamed the 9move: unix_* UnixUtils ...targets to drop the now-gone prefix (unix_fd_add->fd_addetc.) – safe since these all stayed inside the sameglibpackage, no naming collision risk.fix-gio-unix-split.patch: same idea but Gio’s split is much bigger and DOES collide –GioUnix-2.0.girdeclares its ownInputStream/OutputStreamclasses (reallyGUnixInputStream/GUnixOutputStream, subclasses ofGio.InputStream/OutputStream, same namespace-strip), which would clash withGio-2.0.gir’s own same-named classes if merged into onewrap: giopackage. Fix: a brand newwrap: gio_unixpackage (own APILookupGioUnix.txt, own D module namespace) instead of extending the existing one. MigratedDesktopAppInfo’s hand-writtencreateFromFilename()override there verbatim (the class moved to GioUnix-2.0.gir entirely – Gio-2.0.gir now only has doc-comment links to it, no real class). Dropped the oldUnixMountEntry/move-based binding for mount functions entirely –MountEntry/MountPointare now real GIR records with real<method>elements in GioUnix-2.0.gir, so gir-to-d auto-generates proper methods with no customization needed at all.- First attempt used
wrap: gio_unix… no wait, usedwrap: gio-unix(hyphen) – broke immediately once compilation actually started: D doesn’t allow hyphens in module names (module gio-unix.c.functions;is a syntax error). Renamed towrap: gio_unix(underscore). Lesson: gir-to-d’s wrap package name becomes a literal D module/package identifier – must be a valid D identifier, not just a valid directory name.
- Fix 3 – real meson bug, bare relative build-tree source paths:
after fixes 1-2, hit
ninja: error: 'X', needed by 'Y', missing and no known rule to make it– but for a DIFFERENT file every time depending on list order (proved via direct testing: filtering out the failing file just shifted the error to the next one in the list; reversing the whole list moved it to the new first entry). Root cause, traced directly into this system’s meson (/usr/lib/python3.14/site-packages/mesonbuild/interpreter/interpreter.py,source_strings_to_files()): a bare relative string source whose resolved location is under the build directory takes theFile.from_built_file(subdir='', fname=<whole relative path>)path (not split into subdir/fname), soFile.absolute_path()/relative_name()later computebuild_root + '/' + fnamewherefnamealready starts withbuild/(sincemeson.buildpassedrun_command(girtod, ..., '--print-files', 'relative,' + source_root), and this project’s build dir sits directly inside its source dir as<srcdir>/build/, makingrelative-to-source_rootandrelative-to-build_rootcoincidentally look like the same shape of string) – doubling to a path that doesn’t exist. An absolute path takes a different branch (path_has_root-> true ->File.from_built_relative(), which DOESos.path.split()correctly first) and sidesteps the bug entirely. Fix:--print-files fullinstead of--print-files relative,SOURCE_ROOTin therun_command()girtod invocation (fix-generated-sources-abspath.patch) – one-line change, no meson.build restructuring needed, and it also transparently fixedgtkd/*.d(the static, non-GIR-derived filescopy:’d into the same build dir), which had hit the identical bug and no longer needs any special-casing.- This is a real meson defect (confirmed by reading its own source,
not a guess) – worth reporting upstream at some point, but out of
scope here. Ruled out extensively before finding this: reordering
sources, wrapping in
files()(whole-list and per-element, doesn’t matter –files()on a build-tree-shaped string hits the exact same code path, no protection), a separatestatic_library()warm-up target sharing the list (bug is per-target, not project-wide), and a properly-declaredcustom_target()output placed first in the same list (didn’t matter either – the bug triggers on the first entry that RESOLVES to a build-tree path lacking a real producing target, regardless of what precedes it).
- This is a real meson defect (confirmed by reading its own source,
not a guess) – worth reporting upstream at some point, but out of
scope here. Ruled out extensively before finding this: reordering
sources, wrapping in
- Built and published (2.4.3-6, x86_64).
qt5-quickcontrols-nemo’s own build (a separate package, see its own memory file) depends on this fix indirectly fornemo-qml-plugin-configuration’s Qt6->mlite chain, but glibd itself has no relation to that Qt5/Qt6 story – pure coincidence both needed the same GLib/Gio Unix.gir-split treatment around the same time.
2026-09-06: wired in the upstream test suite (pkgrel 6 -> 7)
tests/gobject/meson.build declares three real functional tests
(gobject_dclosure_test/DClosureTest.d, gobject_objectg_test/
ObjectGTest.d with G_DEBUG=fatal-warnings, gobject_value_test/
ValueTest.d) exercising the generated GObject/GLib bindings themselves,
not just compilation – these existed upstream but were never run by
this PKGBUILD before. Added a check() calling meson test
--print-errorlogs. Confirmed passing: Ok: 3 / Fail: 0. Packaging-only
change, no source patch needed, so pkgrel bump not pkgver per project
convention. Built, tested, and published (2.4.3-7, x86_64).