Files
RedBear-OS/local/recipes/system/dbus/source/dbus/CMakeLists.txt
T
vasilito f31522130f fix: comprehensive boot warnings and exceptions — fixable silenced, unfixable diagnosed
Build system (5 gaps hardened):
- COOKBOOK_OFFLINE defaults to true (fork-mode)
- normalize_patch handles diff -ruN format
- New 'repo validate-patches' command (25/25 relibc patches)
- 14 patched Qt/Wayland/display recipes added to protected list
- relibc archive regenerated with current patch chain

Boot fixes (fixable):
- Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset)
- D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped)
- redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped)
- daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch)
- udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async)
- relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs
- greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait)
- greeter-ui: built and linked (header guard unification, sem_compat stubs removed)
- mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps
- greeter config: removed stale keymapd dependency from display/greeter services
- prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified

Unfixable (diagnosed, upstream):
- i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort
- kded6/greeter-ui: page fault 0x8 — Qt library null deref
- Thread panics fd != -1 — Rust std library on Redox
- DHCP timeout / eth0 MAC — QEMU user-mode networking
- hwrngd/thermald — no hardware RNG/thermal in VM
- live preload allocation — BIOS memory fragmentation, continues on demand
2026-05-05 20:20:37 +01:00

348 lines
9.0 KiB
CMake

configure_file(dbus-arch-deps.h.in ${CMAKE_CURRENT_BINARY_DIR}/dbus-arch-deps.h )
add_definitions(-DDBUS_COMPILATION)
set(dbusinclude_HEADERS
dbus.h
dbus-address.h
dbus-bus.h
dbus-connection.h
dbus-errors.h
dbus-macros.h
dbus-memory.h
dbus-message.h
dbus-misc.h
dbus-pending-call.h
dbus-protocol.h
dbus-server.h
dbus-shared.h
dbus-signature.h
dbus-syntax.h
dbus-threads.h
dbus-types.h
)
set(dbusinclude_ARCH_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/dbus-arch-deps.h
)
### source code that goes in the installed client library
### and is specific to library functionality
set(DBUS_LIB_SOURCES
dbus-address.c
dbus-auth.c
dbus-bus.c
dbus-connection.c
dbus-credentials.c
dbus-errors.c
dbus-keyring.c
dbus-marshal-header.c
dbus-marshal-byteswap.c
dbus-marshal-recursive.c
dbus-marshal-validate.c
dbus-message.c
dbus-misc.c
dbus-nonce.c
dbus-object-tree.c
dbus-pending-call.c
dbus-resources.c
dbus-server.c
dbus-server-socket.c
dbus-server-debug-pipe.c
dbus-sha.c
dbus-signature.c
dbus-syntax.c
dbus-timeout.c
dbus-threads.c
dbus-transport.c
dbus-transport-socket.c
dbus-watch.c
)
if(UNIX)
set(DBUS_LIB_SOURCES ${DBUS_LIB_SOURCES}
dbus-uuidgen.c
dbus-transport-unix.c
dbus-server-unix.c
)
else(UNIX)
set(DBUS_LIB_SOURCES ${DBUS_LIB_SOURCES}
dbus-transport-win.c
dbus-server-win.c
)
endif()
set(DBUS_LIB_HEADERS
dbus-auth.h
dbus-connection-internal.h
dbus-credentials.h
dbus-keyring.h
dbus-marshal-header.h
dbus-marshal-byteswap.h
dbus-marshal-recursive.h
dbus-marshal-validate.h
dbus-message-internal.h
dbus-message-private.h
dbus-misc.h
dbus-object-tree.h
dbus-protocol.h
dbus-resources.h
dbus-server-debug-pipe.h
dbus-server-protected.h
dbus-sha.h
dbus-timeout.h
dbus-threads.h
dbus-threads-internal.h
dbus-transport.h
dbus-transport-protected.h
dbus-uuidgen.h
dbus-watch.h
${PROJECT_BINARY_DIR}/config.h
)
if(UNIX)
set(DBUS_LIB_HEADERS ${DBUS_LIB_HEADERS}
dbus-transport-unix.h
)
else(UNIX)
set(DBUS_LIB_HEADERS ${DBUS_LIB_HEADERS}
dbus-transport-win.h
)
endif()
### source code that goes in the installed client library
### AND is generic utility functionality used by the
### daemon or test programs (all symbols in here should
### be underscore-prefixed)
set(DBUS_SHARED_SOURCES
dbus-dataslot.c
dbus-file.c
dbus-hash.c
dbus-internals.c
dbus-list.c
dbus-marshal-basic.c
dbus-memory.c
dbus-mempool.c
dbus-string.c
dbus-sysdeps.c
dbus-pipe.c
)
set(DBUS_SHARED_HEADERS
dbus-dataslot.h
dbus-file.h
dbus-hash.h
dbus-internals.h
dbus-list.h
dbus-macros-internal.h
dbus-marshal-basic.h
dbus-mempool.h
dbus-string.h
dbus-string-private.h
dbus-pipe.h
dbus-sysdeps.h
)
if(DBUS_ENABLE_INTRUSIVE_TESTS)
set(DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} dbus-test-tap.c)
set(DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS} dbus-test-tap.h)
# ... else they are in the test library instead
endif()
### source code that is generic utility functionality used
### by the bus daemon or test apps, but is NOT included
### in the D-BUS client library (all symbols in here
### should be underscore-prefixed but don't really need
### to be unless they move to DBUS_SHARED_SOURCES later)
set(DBUS_UTIL_SOURCES
dbus-asv-util.c
dbus-mainloop.c
dbus-message-util.c
dbus-shell.c
dbus-pollable-set.c
dbus-pollable-set-poll.c
dbus-string-util.c
dbus-sysdeps-util.c
)
set(DBUS_UTIL_HEADERS
dbus-asv-util.h
dbus-mainloop.h
dbus-shell.h
dbus-pollable-set.h
dbus-spawn.h
dbus-test.h
)
### platform specific settings
if(WIN32)
set(DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES}
dbus-backtrace-win.c
dbus-file-win.c
dbus-init-win.cpp
dbus-sysdeps-win.c
dbus-pipe-win.c
dbus-sysdeps-thread-win.c
)
set(DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS}
dbus-init-win.h
dbus-sockets-win.h
dbus-sysdeps-win.h
)
set(DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES}
dbus-spawn-win.c
dbus-sysdeps-util-win.c
)
if(WINCE)
set(DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES}
dbus-sysdeps-wince-glue.c
)
set(DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS}
dbus-sysdeps-wince-glue.h
)
endif()
else(WIN32)
set(DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES}
dbus-file-unix.c
dbus-pipe-unix.c
dbus-sysdeps-unix.c
dbus-sysdeps-pthread.c
dbus-userdb.c
)
set(DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS}
dbus-transport-unix.h
dbus-sysdeps-unix.h
dbus-userdb.h
)
set(DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES}
dbus-userdb-util.c
dbus-sysdeps-util-unix.c
)
if(ENABLE_TRADITIONAL_ACTIVATION)
set(DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES}
dbus-spawn-unix.c
)
endif()
endif()
if(DBUS_HAVE_LINUX_EPOLL)
set(DBUS_UTIL_SOURCES
${DBUS_UTIL_SOURCES}
dbus-pollable-set-epoll.c
)
endif()
set(libdbus_SOURCES
${DBUS_LIB_SOURCES}
${DBUS_SHARED_SOURCES}
)
set(libdbus_HEADERS
${DBUS_LIB_HEADERS}
${DBUS_SHARED_HEADERS}
)
if(DEFINED DBUS_LIBRARY_REVISION)
math(EXPR DBUS_LIBRARY_MAJOR "${DBUS_LIBRARY_CURRENT} - ${DBUS_LIBRARY_AGE}")
endif()
if(WIN32)
add_library_version_info(libdbus_SOURCES "${CMAKE_SHARED_LIBRARY_PREFIX}dbus-1-${DBUS_LIBRARY_MAJOR}")
endif()
if(MSVC_IDE)
project_source_group(${GROUP_CODE} DBUS_LIB_SOURCES DBUS_LIB_HEADERS)
project_source_group(${GROUP_CODE} DBUS_SHARED_SOURCES DBUS_SHARED_HEADERS)
project_source_group(${GROUP_CODE} DBUS_UTIL_SOURCES DBUS_UTIL_SOURCES)
endif()
# for clock_getres() on e.g. GNU/Linux (but not Android)
find_library(LIBRT rt)
# for socket() on QNX
find_library(LIBSOCKET socket)
### Client library
add_library(dbus-1 SHARED
${libdbus_SOURCES}
${libdbus_HEADERS}
)
if(WIN32)
if(DEFINED DBUS_LIBRARY_REVISION)
set_target_properties(dbus-1 PROPERTIES SUFFIX "-${DBUS_LIBRARY_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX}")
add_custom_command(TARGET dbus-1 POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:dbus-1>" "$<TARGET_FILE_DIR:dbus-1>/${CMAKE_SHARED_LIBRARY_PREFIX}dbus-1${CMAKE_SHARED_LIBRARY_SUFFIX}"
COMMENT "Create non versioned dbus-1 library for legacy applications"
)
install(FILES ${LEGACY_FILE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
if(WINCE)
target_link_libraries(dbus-1 ws2)
else(WINCE)
target_link_libraries(dbus-1 ws2_32 advapi32 netapi32 iphlpapi dbghelp)
endif()
else(WIN32)
if(DEFINED DBUS_LIBRARY_REVISION)
set_target_properties(dbus-1 PROPERTIES VERSION ${DBUS_LIBRARY_MAJOR}.${DBUS_LIBRARY_AGE}.${DBUS_LIBRARY_REVISION} SOVERSION ${DBUS_LIBRARY_MAJOR})
endif()
target_link_libraries(dbus-1 ${CMAKE_THREAD_LIBS_INIT} ${SYSTEMD_LIBRARIES})
if(LIBRT)
target_link_libraries(dbus-1 ${LIBRT})
endif()
if(LIBSOCKET)
target_link_libraries(dbus-1 ${LIBSOCKET})
endif()
if (HAVE_BACKTRACE)
target_link_libraries(dbus-1 ${Backtrace_LIBRARY})
target_include_directories(dbus-1 PRIVATE ${Backtrace_INCLUDE_DIR})
endif()
endif()
# target definitions passed to the clients
target_include_directories(dbus-1 INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/dbus-1.0>;$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}/dbus-1.0/include>)
target_compile_definitions(dbus-1 INTERFACE "")
# Assume that Linux has -Wl,--version-script and other platforms do not
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
set(SOVERSION ${DBUS_LIBRARY_MAJOR})
configure_file(Version.in ${CMAKE_CURRENT_BINARY_DIR}/Version)
set_target_properties(dbus-1 PROPERTIES LINK_FLAGS -Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/Version)
endif()
install(TARGETS dbus-1 ${INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES ${dbusinclude_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dbus-1.0/dbus)
install(FILES ${dbusinclude_ARCH_HEADERS} DESTINATION ${CMAKE_INSTALL_LIBDIR}/dbus-1.0/include/dbus)
### Internal library, used for the daemon, tools and tests, compiled statically.
add_library(dbus-internal ${DBUS_INTERNAL_ADD_LIBRARY_OPTIONS}
${DBUS_UTIL_SOURCES}
${DBUS_UTIL_HEADERS}
)
target_link_libraries(dbus-internal dbus-1)
if(WIN32)
if(WINCE)
target_link_libraries(dbus-internal ws2)
else(WINCE)
target_link_libraries(dbus-internal ws2_32 advapi32 netapi32 iphlpapi)
endif()
else(WIN32)
target_link_libraries(dbus-internal ${CMAKE_THREAD_LIBS_INIT})
if(LIBRT)
target_link_libraries(dbus-internal ${LIBRT})
endif()
if(LIBSOCKET)
target_link_libraries(dbus-internal ${LIBSOCKET})
endif()
endif()
if(UNIX)
# set version info
endif()
## mop up the gcov files
#clean-local:
#/bin/rm *.bb *.bbg *.da *.gcov .libs/*.da .libs/*.bbg || true