Files
RedBear-OS/local/recipes/qt/qtwayland/source/tests/manual/subsurface/main.cpp
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

87 lines
1.8 KiB
C++

// Copyright (C) 2015 LG Electronics Inc, author: <mikko.levonmaa@lge.com>
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QGuiApplication>
#include <QQmlEngine>
#include <QQmlFileSelector>
#include <QQmlContext>
#include <QQuickView>
#include "shmwindow.h"
class Filter : public QObject
{
Q_OBJECT
Q_PROPERTY(bool sync READ getSync NOTIFY syncChanged)
public:
Filter()
{
sync = false;
}
bool eventFilter(QObject *object, QEvent *event)
{
Q_UNUSED(object);
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == Qt::Key_Space) {
toggleSync(quick);
toggleSync(shm);
}
}
return false;
}
void toggleSync(QWindow *w)
{
}
bool getSync() const
{
return sync;
}
Q_SIGNALS:
void syncChanged();
public:
QWindow *quick;
QWindow *shm;
bool sync;
};
int main(int argc, char* argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
view.connect(view.engine(), SIGNAL(quit()), &app, SLOT(quit()));
view.setResizeMode(QQuickView::SizeRootObjectToView);
Filter f;
view.rootContext()->setContextProperty("syncStatus", &f);
view.installEventFilter(&f);
view.setSource(QUrl("qrc:/main.qml"));
view.show();
QQuickView child(&view);
child.connect(child.engine(), SIGNAL(quit()), &app, SLOT(quit()));
child.setSource(QUrl("qrc:/child.qml"));
child.setResizeMode(QQuickView::SizeRootObjectToView);
child.setGeometry(QRect(150, 70, 100, 100));
child.show();
ShmWindow shm(&view);
shm.setGeometry(QRect(30, 30, 50, 50));
shm.show();
f.quick = &child;
f.shm = &shm;
return app.exec();
}
#include "main.moc"