From 36923e16461bc15086c84187790dbcb5f0a5030f Mon Sep 17 00:00:00 2001 From: Dany Thinnes Date: Tue, 18 Aug 2026 07:34:20 +0200 Subject: [PATCH] =?UTF-8?q?-=20Grafische=20Ausgabe=20kann=20nun=20als=20Vi?= =?UTF-8?q?deo=20aufgezeichnet=20werden=20-=20Verbindung=20=C3=BCber=20TCP?= =?UTF-8?q?/IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 4 +- include/connectdialog.h | 21 + include/serialworker.h | 34 +- include/videowidget.h | 21 + src/connectdialog.cpp | 71 ++- src/main.cpp | 2 +- src/mainwindow.cpp | 66 ++- src/serialworker.cpp | 140 ++++- src/videowidget.cpp | 154 ++++++ uartscope-git/PKGBUILD | 2 +- uartscope-git/pkg/uartscope/.BUILDINFO | 510 +++++++++--------- uartscope-git/pkg/uartscope/.MTREE | Bin 468 -> 462 bytes uartscope-git/pkg/uartscope/.PKGINFO | 6 +- uartscope-git/pkg/uartscope/usr/bin/uartscope | Bin 340336 -> 348528 bytes uartscope-git/src/uartscope | 2 +- uartscope-git/uartscope/FETCH_HEAD | 2 +- 16 files changed, 724 insertions(+), 311 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 22ca2cd..5ed10e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(UARTScope VERSION 1.0.0 LANGUAGES CXX) +project(UARTScope VERSION 1.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -12,6 +12,7 @@ find_package(Qt6 REQUIRED COMPONENTS Gui Widgets SerialPort + Network ) set(SOURCES @@ -49,6 +50,7 @@ target_link_libraries(uartscope PRIVATE Qt6::Gui Qt6::Widgets Qt6::SerialPort + Qt6::Network ) # V4L2 uses Linux kernel headers directly (linux/videodev2.h) diff --git a/include/connectdialog.h b/include/connectdialog.h index e63c8a3..7e637ef 100644 --- a/include/connectdialog.h +++ b/include/connectdialog.h @@ -4,16 +4,31 @@ #include #include #include +#include +#include #include #include struct SerialConfig { + // Which transport to use: a real/virtual serial port, or a plain TCP + // connection (e.g. for emulators/firmware that stream their debug + // UART over the network, such as FS-UAE piped through socat). + enum class ConnectionType { Serial, Network }; + ConnectionType connectionType = ConnectionType::Serial; + + // Serial-specific QString portName; qint32 baudRate = 115200; QSerialPort::DataBits dataBits = QSerialPort::Data8; QSerialPort::Parity parity = QSerialPort::NoParity; QSerialPort::StopBits stopBits = QSerialPort::OneStop; QSerialPort::FlowControl flowControl = QSerialPort::NoFlowControl; + + // Network-specific + QString networkHost; + quint16 networkPort = 0; + + // Common QString logFilePath; }; @@ -32,11 +47,17 @@ private slots: private: void addPtyPorts(); + QTabWidget *m_modeTabs = nullptr; + QComboBox *m_portCombo = nullptr; QComboBox *m_baudCombo = nullptr; QComboBox *m_dataBitsCombo = nullptr; QComboBox *m_parityCombo = nullptr; QComboBox *m_stopBitsCombo = nullptr; QComboBox *m_flowCombo = nullptr; + + QLineEdit *m_hostEdit = nullptr; + QSpinBox *m_portSpin = nullptr; + QLineEdit *m_logPathEdit = nullptr; }; diff --git a/include/serialworker.h b/include/serialworker.h index 7375f4e..5e6f9f4 100644 --- a/include/serialworker.h +++ b/include/serialworker.h @@ -2,17 +2,27 @@ #include #include #include +#include +#include #include #include #include #include -// SerialWorker lives in its own QThread and owns the QSerialPort. +// SerialWorker lives in its own QThread and owns the actual data source, +// which is either a QSerialPort (real/virtual serial device) or a +// QTcpSocket (for firmware/emulators that send their debug UART over a +// TCP connection, e.g. FS-UAE's serial-over-socat setup). Both are +// QIODevice subclasses, so the byte-parsing pipeline below (line +// buffering, ANSI stripping, tag detection, logging) is shared as-is +// between the two transports; only opening/closing/reconnect handling +// differs. +// // It emits newLine() for every complete line received, // tagDetected() when a line contains a recognised tag like [WDG], // and clearScreen() when an ANSI clear-screen sequence is received. -// Auto-reconnect: if the port drops unexpectedly, the worker retries -// every reconnectIntervalMs until success or closePort(). +// Auto-reconnect: if the connection drops unexpectedly, the worker +// retries every reconnectIntervalMs until success or closePort(). class SerialWorker : public QObject { Q_OBJECT @@ -30,6 +40,7 @@ public slots: QSerialPort::Parity parity, QSerialPort::StopBits stopBits, QSerialPort::FlowControl flowControl); + void openNetwork(const QString &host, quint16 port); void closePort(); void setLogFile(const QString &path); void stopLogging(); @@ -46,16 +57,28 @@ signals: private slots: void onReadyRead(); void onPortError(QSerialPort::SerialPortError err); + void onSocketConnected(); + void onSocketDisconnected(); + void onSocketError(QAbstractSocket::SocketError err); void tryReconnect(); void flushScanTail(); private: + enum class ConnectionMode { Serial, Network }; + void processRawData(const QByteArray &data); void appendToLineBuffer(const QByteArray &toProcess); void processLine(const QString &line); void scheduleReconnect(); + ConnectionMode m_mode = ConnectionMode::Serial; + QSerialPort *m_port = nullptr; + QTcpSocket *m_socket = nullptr; + // Points at whichever of m_port/m_socket is the currently active data + // source; onReadyRead() reads from this without caring which it is. + QIODevice *m_device = nullptr; + QFile *m_logFile = nullptr; QTextStream *m_logStream = nullptr; QString m_buffer; @@ -77,10 +100,15 @@ private: int m_reconnectIntervalMs = 2000; int m_reconnectAttempt = 0; + // Serial-specific connection parameters QString m_portName; qint32 m_baudRate = 115200; QSerialPort::DataBits m_dataBits = QSerialPort::Data8; QSerialPort::Parity m_parity = QSerialPort::NoParity; QSerialPort::StopBits m_stopBits = QSerialPort::OneStop; QSerialPort::FlowControl m_flowControl = QSerialPort::NoFlowControl; + + // Network-specific connection parameters + QString m_networkHost; + quint16 m_networkPort = 0; }; diff --git a/include/videowidget.h b/include/videowidget.h index 3606caa..34c5b6b 100644 --- a/include/videowidget.h +++ b/include/videowidget.h @@ -1,15 +1,22 @@ #pragma once #include #include +#include #include #include #include #include #include #include +#include #include "v4l2worker.h" +// VideoWidget shows the live V4L2 preview and can additionally record it +// to an MP4 file. Recording works by piping raw BGRA frames into an +// external `ffmpeg` process (via QProcess/stdin), which encodes them to +// H.264/MP4 - this avoids reimplementing video encoding and just needs +// ffmpeg to be installed and on PATH. class VideoWidget : public QWidget { Q_OBJECT @@ -29,6 +36,7 @@ private slots: void onStartStop(); void onFreeze(bool frozen); void onScreenshot(); + void onRecordToggled(bool checked); void refreshDeviceList(); protected: @@ -40,6 +48,9 @@ private: void startCapture(); void stopCapture(); void updateScaled(); + void startRecording(); + void stopRecording(); + void writeRecordingFrame(const QImage &frame); QThread *m_thread = nullptr; V4l2Worker *m_worker = nullptr; @@ -54,5 +65,15 @@ private: QPushButton *m_startBtn = nullptr; QPushButton *m_freezeBtn = nullptr; QPushButton *m_screenshotBtn = nullptr; + QPushButton *m_recordBtn = nullptr; QLabel *m_infoLabel = nullptr; + + // Recording state. m_recordProcess is the running ffmpeg instance (or + // nullptr when not recording); m_recordSize is the frame size the + // recording was started with, so a mid-stream resolution change (which + // ffmpeg's raw pipe can't handle) can be detected and the recording + // stopped cleanly instead of corrupting the output file. + QProcess *m_recordProcess = nullptr; + bool m_recording = false; + QSize m_recordSize; }; diff --git a/src/connectdialog.cpp b/src/connectdialog.cpp index 75e873d..5a5ec2d 100644 --- a/src/connectdialog.cpp +++ b/src/connectdialog.cpp @@ -10,24 +10,28 @@ ConnectDialog::ConnectDialog(QWidget *parent) : QDialog(parent) { - setWindowTitle(tr("Connect to UART")); - setMinimumWidth(360); + setWindowTitle(tr("Connect to UARTScope input")); + setMinimumWidth(380); - auto *form = new QFormLayout(); + m_modeTabs = new QTabWidget(this); + + // ── "Seriell" tab: real or virtual (PTY) serial port ──────────────── + auto *serialTab = new QWidget(m_modeTabs); + auto *form = new QFormLayout(serialTab); form->setRowWrapPolicy(QFormLayout::DontWrapRows); form->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); auto *portRow = new QHBoxLayout(); - m_portCombo = new QComboBox(this); + m_portCombo = new QComboBox(serialTab); m_portCombo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - auto *refreshBtn = new QPushButton(tr("↻"), this); + auto *refreshBtn = new QPushButton(tr("↻"), serialTab); refreshBtn->setMaximumWidth(30); connect(refreshBtn, &QPushButton::clicked, this, &ConnectDialog::refreshPorts); portRow->addWidget(m_portCombo, 1); portRow->addWidget(refreshBtn); form->addRow(tr("Port:"), portRow); - m_baudCombo = new QComboBox(this); + m_baudCombo = new QComboBox(serialTab); const QList bauds = {1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600}; for (int b : bauds) @@ -35,7 +39,7 @@ ConnectDialog::ConnectDialog(QWidget *parent) m_baudCombo->setCurrentText("115200"); form->addRow(tr("Baud rate:"), m_baudCombo); - m_dataBitsCombo = new QComboBox(this); + m_dataBitsCombo = new QComboBox(serialTab); m_dataBitsCombo->addItem("5", QSerialPort::Data5); m_dataBitsCombo->addItem("6", QSerialPort::Data6); m_dataBitsCombo->addItem("7", QSerialPort::Data7); @@ -43,7 +47,7 @@ ConnectDialog::ConnectDialog(QWidget *parent) m_dataBitsCombo->setCurrentText("8"); form->addRow(tr("Data bits:"), m_dataBitsCombo); - m_parityCombo = new QComboBox(this); + m_parityCombo = new QComboBox(serialTab); m_parityCombo->addItem(tr("None"), QSerialPort::NoParity); m_parityCombo->addItem(tr("Even"), QSerialPort::EvenParity); m_parityCombo->addItem(tr("Odd"), QSerialPort::OddParity); @@ -51,18 +55,52 @@ ConnectDialog::ConnectDialog(QWidget *parent) m_parityCombo->addItem(tr("Mark"), QSerialPort::MarkParity); form->addRow(tr("Parity:"), m_parityCombo); - m_stopBitsCombo = new QComboBox(this); + m_stopBitsCombo = new QComboBox(serialTab); m_stopBitsCombo->addItem("1", QSerialPort::OneStop); m_stopBitsCombo->addItem("1.5", QSerialPort::OneAndHalfStop); m_stopBitsCombo->addItem("2", QSerialPort::TwoStop); form->addRow(tr("Stop bits:"), m_stopBitsCombo); - m_flowCombo = new QComboBox(this); + m_flowCombo = new QComboBox(serialTab); m_flowCombo->addItem(tr("None"), QSerialPort::NoFlowControl); m_flowCombo->addItem(tr("RTS/CTS"), QSerialPort::HardwareControl); m_flowCombo->addItem(tr("XON/XOFF"), QSerialPort::SoftwareControl); form->addRow(tr("Flow control:"), m_flowCombo); + m_modeTabs->addTab(serialTab, tr("Seriell")); + + // ── "Netzwerk (TCP)" tab: e.g. FS-UAE's serial-over-socat output ──── + auto *networkTab = new QWidget(m_modeTabs); + auto *netForm = new QFormLayout(networkTab); + netForm->setRowWrapPolicy(QFormLayout::DontWrapRows); + netForm->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + + m_hostEdit = new QLineEdit(networkTab); + m_hostEdit->setPlaceholderText(tr("z. B. localhost oder 192.168.1.50")); + m_hostEdit->setText("localhost"); + netForm->addRow(tr("Host / IP:"), m_hostEdit); + + m_portSpin = new QSpinBox(networkTab); + m_portSpin->setRange(1, 65535); + m_portSpin->setValue(1234); + netForm->addRow(tr("Port:"), m_portSpin); + + auto *netInfoLabel = new QLabel( + tr("Für Emulatoren/Firmware, die die UART-Ausgabe über TCP senden " + "statt über ein echtes serielles Gerät (z. B. FS-UAE, dessen " + "serielle Schnittstelle per socat auf einen TCP-Port " + "gelegt wird): hier Host und Port statt eines seriellen Ports " + "angeben. Baudrate/Parität etc. spielen dabei keine Rolle."), + networkTab); + netInfoLabel->setWordWrap(true); + netInfoLabel->setStyleSheet("color: gray; font-size: 10px;"); + netForm->addRow(netInfoLabel); + + m_modeTabs->addTab(networkTab, tr("Netzwerk (TCP)")); + + // ── shared: log file (applies to either transport) ────────────────── + auto *logForm = new QFormLayout(); + logForm->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); auto *logRow = new QHBoxLayout(); m_logPathEdit = new QLineEdit(this); m_logPathEdit->setPlaceholderText(tr("(optional) path/to/output.log")); @@ -71,7 +109,7 @@ ConnectDialog::ConnectDialog(QWidget *parent) connect(browseBtn, &QPushButton::clicked, this, &ConnectDialog::browseLogFile); logRow->addWidget(m_logPathEdit, 1); logRow->addWidget(browseBtn); - form->addRow(tr("Log file:"), logRow); + logForm->addRow(tr("Log file:"), logRow); auto *buttons = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); @@ -79,7 +117,8 @@ ConnectDialog::ConnectDialog(QWidget *parent) connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); auto *mainLayout = new QVBoxLayout(this); - mainLayout->addLayout(form); + mainLayout->addWidget(m_modeTabs); + mainLayout->addLayout(logForm); mainLayout->addWidget(buttons); refreshPorts(); @@ -146,12 +185,20 @@ void ConnectDialog::browseLogFile() SerialConfig ConnectDialog::config() const { SerialConfig cfg; + cfg.connectionType = (m_modeTabs->currentIndex() == 1) + ? SerialConfig::ConnectionType::Network + : SerialConfig::ConnectionType::Serial; + cfg.portName = m_portCombo->currentData().toString(); cfg.baudRate = m_baudCombo->currentData().toInt(); cfg.dataBits = static_cast(m_dataBitsCombo->currentData().toInt()); cfg.parity = static_cast(m_parityCombo->currentData().toInt()); cfg.stopBits = static_cast(m_stopBitsCombo->currentData().toInt()); cfg.flowControl = static_cast(m_flowCombo->currentData().toInt()); + + cfg.networkHost = m_hostEdit->text().trimmed(); + cfg.networkPort = static_cast(m_portSpin->value()); + cfg.logFilePath = m_logPathEdit->text().trimmed(); return cfg; } diff --git a/src/main.cpp b/src/main.cpp index e96c677..98e4b2f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,7 +7,7 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setApplicationName("UARTScope"); - app.setApplicationVersion("1.0.0"); + app.setApplicationVersion("1.1.0"); app.setOrganizationName("ChicaDev"); app.setStyle(QStyleFactory::create("Fusion")); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c9e9b00..77867cf 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -117,6 +117,7 @@ void MainWindow::setupUi() void MainWindow::setupToolBar() { auto *tb = addToolBar(tr("Main")); + tb->setObjectName("mainToolBar"); // required by QMainWindow::saveState() tb->setMovable(false); m_connectAction = tb->addAction(tr("Connect…")); @@ -199,9 +200,17 @@ void MainWindow::onConnectClicked() return; m_lastConfig = dlg.config(); - if (m_lastConfig.portName.isEmpty()) { - QMessageBox::warning(this, tr("No port"), tr("Please select a valid serial port.")); - return; + + if (m_lastConfig.connectionType == SerialConfig::ConnectionType::Serial) { + if (m_lastConfig.portName.isEmpty()) { + QMessageBox::warning(this, tr("No port"), tr("Please select a valid serial port.")); + return; + } + } else { + if (m_lastConfig.networkHost.isEmpty()) { + QMessageBox::warning(this, tr("No host"), tr("Please enter a host/IP to connect to.")); + return; + } } if (!m_lastConfig.logFilePath.isEmpty()) @@ -216,14 +225,21 @@ void MainWindow::onConnectClicked() m_worker->setReconnectInterval(interval); }, Qt::QueuedConnection); - QMetaObject::invokeMethod(m_worker, "openPort", - Qt::QueuedConnection, - Q_ARG(QString, m_lastConfig.portName), - Q_ARG(qint32, m_lastConfig.baudRate), - Q_ARG(QSerialPort::DataBits, m_lastConfig.dataBits), - Q_ARG(QSerialPort::Parity, m_lastConfig.parity), - Q_ARG(QSerialPort::StopBits, m_lastConfig.stopBits), - Q_ARG(QSerialPort::FlowControl, m_lastConfig.flowControl)); + if (m_lastConfig.connectionType == SerialConfig::ConnectionType::Serial) { + QMetaObject::invokeMethod(m_worker, "openPort", + Qt::QueuedConnection, + Q_ARG(QString, m_lastConfig.portName), + Q_ARG(qint32, m_lastConfig.baudRate), + Q_ARG(QSerialPort::DataBits, m_lastConfig.dataBits), + Q_ARG(QSerialPort::Parity, m_lastConfig.parity), + Q_ARG(QSerialPort::StopBits, m_lastConfig.stopBits), + Q_ARG(QSerialPort::FlowControl, m_lastConfig.flowControl)); + } else { + QMetaObject::invokeMethod(m_worker, "openNetwork", + Qt::QueuedConnection, + Q_ARG(QString, m_lastConfig.networkHost), + Q_ARG(quint16, m_lastConfig.networkPort)); + } } void MainWindow::onDisconnectClicked() @@ -238,10 +254,17 @@ void MainWindow::onPortOpened() m_stateLabel->setText(tr("● Connected")); m_stateLabel->setStyleSheet("color: #4ec94e;"); m_reconnectLabel->clear(); - m_portLabel->setText( - QStringLiteral("%1 @ %2 baud") - .arg(m_lastConfig.portName) - .arg(m_lastConfig.baudRate)); + if (m_lastConfig.connectionType == SerialConfig::ConnectionType::Network) { + m_portLabel->setText( + QStringLiteral("%1:%2 (TCP)") + .arg(m_lastConfig.networkHost) + .arg(m_lastConfig.networkPort)); + } else { + m_portLabel->setText( + QStringLiteral("%1 @ %2 baud") + .arg(m_lastConfig.portName) + .arg(m_lastConfig.baudRate)); + } statusBar()->clearMessage(); } @@ -299,12 +322,15 @@ void MainWindow::clearAllViews() void MainWindow::showFormatReference() { - static const QString referenceText = R"( + static const QString referenceText = R"UARTSCOPE( # UARTScope – Output Format Reference # Give this text to your AI assistant to generate compatible UART output. -UARTScope reads from a serial UART port and interprets the incoming text in -three parallel ways. You can use any combination. +UARTScope reads from either a serial UART port OR a plain TCP connection +(see the "Netzwerk (TCP)" tab in the Connect dialog - handy for emulators +like FS-UAE whose debug UART is piped through socat to a TCP port) and +interprets the incoming text in three parallel ways. You can use any +combination. ──────────────────────────────────────────────────────────── 1. RAW OUTPUT (always active) @@ -397,7 +423,7 @@ void uart_status_update(void) { // Clear screen from firmware when you want a fresh start: // uart_printf("\033[2J\033[H"); -)"; +)UARTSCOPE"; auto *dlg = new QDialog(this); dlg->setWindowTitle(tr("UARTScope – Format Reference")); @@ -546,7 +572,7 @@ void MainWindow::showAbout() grid->addWidget(v, row, 1); }; - addRow(0, tr("Version"), "1.0.0"); + addRow(0, tr("Version"), "1.1.0"); addRow(1, tr("Entwickler"), "Dany Thinnes"); addRow(2, tr("Projekt"), "Projekt Hirnfrei"); addRow(3, tr("Framework"), QString("Qt %1").arg(QT_VERSION_STR)); diff --git a/src/serialworker.cpp b/src/serialworker.cpp index 3ab4405..4cf4a18 100644 --- a/src/serialworker.cpp +++ b/src/serialworker.cpp @@ -5,6 +5,7 @@ SerialWorker::SerialWorker(QObject *parent) : QObject(parent) , m_port(new QSerialPort(this)) + , m_socket(new QTcpSocket(this)) , m_idleFlushTimer(new QTimer(this)) , m_reconnectTimer(new QTimer(this)) { @@ -16,6 +17,11 @@ SerialWorker::SerialWorker(QObject *parent) connect(m_port, &QSerialPort::readyRead, this, &SerialWorker::onReadyRead); connect(m_port, &QSerialPort::errorOccurred, this, &SerialWorker::onPortError); + + connect(m_socket, &QTcpSocket::readyRead, this, &SerialWorker::onReadyRead); + connect(m_socket, &QTcpSocket::connected, this, &SerialWorker::onSocketConnected); + connect(m_socket, &QTcpSocket::disconnected, this, &SerialWorker::onSocketDisconnected); + connect(m_socket, &QTcpSocket::errorOccurred, this, &SerialWorker::onSocketError); } SerialWorker::~SerialWorker() @@ -32,6 +38,7 @@ void SerialWorker::openPort(const QString &portName, qint32 baudRate, QSerialPort::StopBits stopBits, QSerialPort::FlowControl flowControl) { + m_mode = ConnectionMode::Serial; m_portName = portName; m_baudRate = baudRate; m_dataBits = dataBits; @@ -41,6 +48,10 @@ void SerialWorker::openPort(const QString &portName, qint32 baudRate, m_userDisconnected = false; m_reconnectAttempt = 0; + // Make sure any previous connection (of either transport) is torn down + // before switching to serial mode. + if (m_socket->state() != QAbstractSocket::UnconnectedState) + m_socket->abort(); if (m_port->isOpen()) m_port->close(); @@ -57,6 +68,7 @@ void SerialWorker::openPort(const QString &portName, qint32 baudRate, scheduleReconnect(); return; } + m_device = m_port; m_idleFlushTimer->stop(); m_buffer.clear(); m_scanTail.clear(); @@ -64,15 +76,54 @@ void SerialWorker::openPort(const QString &portName, qint32 baudRate, emit portOpened(); } +void SerialWorker::openNetwork(const QString &host, quint16 port) +{ + m_mode = ConnectionMode::Network; + m_networkHost = host; + m_networkPort = port; + m_userDisconnected = false; + m_reconnectAttempt = 0; + + // Make sure any previous connection (of either transport) is torn down + // before switching to network mode. + if (m_port->isOpen()) + m_port->close(); + if (m_socket->state() != QAbstractSocket::UnconnectedState) + m_socket->abort(); + + m_idleFlushTimer->stop(); + m_buffer.clear(); + m_scanTail.clear(); + + // connectToHost() is asynchronous - the outcome (success or failure) + // arrives later via the connected()/errorOccurred() signals, handled + // in onSocketConnected()/onSocketError() below. + m_socket->connectToHost(host, port); +} + void SerialWorker::closePort() { m_userDisconnected = true; m_reconnectTimer->stop(); m_idleFlushTimer->stop(); + + bool wasOpen = false; if (m_port && m_port->isOpen()) { m_port->close(); - emit portClosed(); + wasOpen = true; } + if (m_socket && m_socket->state() != QAbstractSocket::UnconnectedState) { + // abort() tears the connection down immediately (no graceful + // shutdown handshake needed for a debug/monitor connection like + // this one) and reliably triggers disconnected() right away. + m_socket->abort(); + wasOpen = true; + } + m_device = nullptr; + + if (wasOpen) + emit portClosed(); + stopLogging(); } @@ -117,11 +168,14 @@ void SerialWorker::stopLogging() void SerialWorker::onReadyRead() { - processRawData(m_port->readAll()); + if (m_device) + processRawData(m_device->readAll()); } void SerialWorker::onPortError(QSerialPort::SerialPortError err) { + if (m_mode != ConnectionMode::Serial) + return; if (err == QSerialPort::NoError) return; @@ -130,6 +184,7 @@ void SerialWorker::onPortError(QSerialPort::SerialPortError err) if (fatal) { m_port->close(); + m_device = nullptr; emit portClosed(); if (m_autoReconnect && !m_userDisconnected) { scheduleReconnect(); @@ -139,6 +194,52 @@ void SerialWorker::onPortError(QSerialPort::SerialPortError err) } } +void SerialWorker::onSocketConnected() +{ + if (m_mode != ConnectionMode::Network) + return; + + m_device = m_socket; + m_idleFlushTimer->stop(); + m_buffer.clear(); + m_scanTail.clear(); + m_reconnectAttempt = 0; + emit portOpened(); +} + +void SerialWorker::onSocketDisconnected() +{ + if (m_mode != ConnectionMode::Network) + return; + + m_device = nullptr; + + // If this disconnect was requested by us (closePort()), that function + // has already emitted portClosed() and handles all cleanup - nothing + // more to do here, and reconnecting would be wrong. + if (m_userDisconnected) + return; + + emit portClosed(); + if (m_autoReconnect) + scheduleReconnect(); +} + +void SerialWorker::onSocketError(QAbstractSocket::SocketError) +{ + if (m_mode != ConnectionMode::Network) + return; + + const QString msg = m_socket->errorString(); + m_device = nullptr; + + if (m_autoReconnect && !m_userDisconnected) { + scheduleReconnect(); + } else { + emit errorOccurred(msg); + } +} + void SerialWorker::tryReconnect() { if (m_userDisconnected) @@ -147,21 +248,30 @@ void SerialWorker::tryReconnect() ++m_reconnectAttempt; emit reconnecting(m_reconnectAttempt); - m_port->setPortName(m_portName); - m_port->setBaudRate(m_baudRate); - m_port->setDataBits(m_dataBits); - m_port->setParity(m_parity); - m_port->setStopBits(m_stopBits); - m_port->setFlowControl(m_flowControl); + if (m_mode == ConnectionMode::Serial) { + m_port->setPortName(m_portName); + m_port->setBaudRate(m_baudRate); + m_port->setDataBits(m_dataBits); + m_port->setParity(m_parity); + m_port->setStopBits(m_stopBits); + m_port->setFlowControl(m_flowControl); - if (m_port->open(QIODevice::ReadOnly)) { - m_idleFlushTimer->stop(); - m_buffer.clear(); - m_scanTail.clear(); - m_reconnectAttempt = 0; - emit portOpened(); + if (m_port->open(QIODevice::ReadOnly)) { + m_device = m_port; + m_idleFlushTimer->stop(); + m_buffer.clear(); + m_scanTail.clear(); + m_reconnectAttempt = 0; + emit portOpened(); + } else { + scheduleReconnect(); + } } else { - scheduleReconnect(); + // Network: connectToHost() is asynchronous. Success/failure is + // reported later via onSocketConnected()/onSocketError(), which + // either finish this attempt or schedule the next one. + m_socket->abort(); + m_socket->connectToHost(m_networkHost, m_networkPort); } } diff --git a/src/videowidget.cpp b/src/videowidget.cpp index e308b01..6f613f5 100644 --- a/src/videowidget.cpp +++ b/src/videowidget.cpp @@ -7,6 +7,7 @@ #include #include #include +#include static QStringList enumerateVideoDevices() { @@ -40,12 +41,16 @@ VideoWidget::VideoWidget(QWidget *parent) m_running = false; m_startBtn->setText(tr("▶ Start")); m_infoLabel->setText(tr("Stopped")); + if (m_recording) + stopRecording(); update(); }); connect(m_worker, &V4l2Worker::errorOccurred, this, [this](const QString &msg) { m_infoLabel->setText(tr("Error: %1").arg(msg)); m_running = false; m_startBtn->setText(tr("▶ Start")); + if (m_recording) + stopRecording(); }); m_thread->start(); @@ -57,6 +62,9 @@ void VideoWidget::shutdown() return; m_shutdownDone = true; + if (m_recording) + stopRecording(); + m_worker->stopCapture(); if (m_thread && m_thread->isRunning()) { @@ -104,11 +112,18 @@ void VideoWidget::setupUi() m_screenshotBtn->setMaximumWidth(32); connect(m_screenshotBtn, &QPushButton::clicked, this, &VideoWidget::onScreenshot); + m_recordBtn = new QPushButton(tr("⏺ Record"), this); + m_recordBtn->setCheckable(true); + m_recordBtn->setMaximumWidth(80); + m_recordBtn->setToolTip(tr("Record the live preview to an MP4 file (requires ffmpeg)")); + connect(m_recordBtn, &QPushButton::toggled, this, &VideoWidget::onRecordToggled); + ctrlRow->addWidget(m_deviceCombo, 1); ctrlRow->addWidget(refreshBtn); ctrlRow->addWidget(m_startBtn); ctrlRow->addWidget(m_freezeBtn); ctrlRow->addWidget(m_screenshotBtn); + ctrlRow->addWidget(m_recordBtn); layout->addLayout(ctrlRow); m_infoLabel = new QLabel(tr("No device started"), this); @@ -151,6 +166,14 @@ void VideoWidget::onScreenshot() void VideoWidget::onNewFrame(const QImage &frame) { + // Feed the recorder regardless of freeze state, so pausing the preview + // doesn't also pause/corrupt the recording - recording tracks the real + // incoming stream, not what's currently shown on screen. + if (m_recording && m_recordProcess && + m_recordProcess->state() == QProcess::Running) { + writeRecordingFrame(frame); + } + if (m_frozen) return; m_frame = frame; @@ -237,3 +260,134 @@ void VideoWidget::resizeEvent(QResizeEvent *event) QWidget::resizeEvent(event); updateScaled(); } + +// ── Recording (raw frames piped into ffmpeg, encoded to MP4) ────────────── + +void VideoWidget::onRecordToggled(bool checked) +{ + if (checked) + startRecording(); + else + stopRecording(); +} + +void VideoWidget::startRecording() +{ + if (m_frame.isNull()) { + QMessageBox::warning(this, tr("No signal"), + tr("Start the video capture first before recording.")); + m_recordBtn->setChecked(false); + return; + } + + const QString defaultName = + QStandardPaths::writableLocation(QStandardPaths::MoviesLocation) + + "/uartscope_" + + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + + ".mp4"; + + const QString path = QFileDialog::getSaveFileName( + this, tr("Save recording as"), defaultName, + tr("MP4 Video (*.mp4)")); + if (path.isEmpty()) { + m_recordBtn->setChecked(false); + return; + } + + // Frames are piped in as raw BGRA (matching QImage::Format_RGB32's + // in-memory byte layout on little-endian systems) at whatever + // resolution capture is currently running at; a resolution change + // mid-recording would corrupt ffmpeg's raw input stream, so + // writeRecordingFrame() watches for that and stops the recording if + // it happens (see there). + m_recordSize = m_frame.size(); + + m_recordProcess = new QProcess(this); + + connect(m_recordProcess, &QProcess::errorOccurred, this, [this](QProcess::ProcessError) { + m_infoLabel->setText(tr("Recording error: %1").arg(m_recordProcess->errorString())); + stopRecording(); + }); + connect(m_recordProcess, + QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus) { + if (exitCode != 0 && m_recordProcess) + m_infoLabel->setText(tr("ffmpeg exited with code %1").arg(exitCode)); + if (m_recordProcess) { + m_recordProcess->deleteLater(); + m_recordProcess = nullptr; + } + }); + + // -use_wallclock_as_timestamps: frames don't arrive at a strictly + // constant rate (V4L2 delivers whatever the device/driver produces), + // so we let ffmpeg timestamp each frame using the system clock at the + // moment it's read from the pipe rather than assuming a fixed + // framerate. That keeps the resulting MP4's real-time duration + // correct even if the capture rate varies or briefly stalls. + const QStringList args = { + "-y", + "-f", "rawvideo", + "-pixel_format", "bgra", + "-video_size", QStringLiteral("%1x%2").arg(m_recordSize.width()).arg(m_recordSize.height()), + "-use_wallclock_as_timestamps", "1", + "-i", "-", + "-c:v", "libx264", + "-pix_fmt", "yuv420p", + "-preset", "veryfast", + "-movflags", "+faststart", + path + }; + + m_recordProcess->start("ffmpeg", args); + if (!m_recordProcess->waitForStarted(3000)) { + QMessageBox::critical(this, tr("Recording failed"), + tr("Could not start ffmpeg. Is it installed and available on PATH?")); + m_recordProcess->deleteLater(); + m_recordProcess = nullptr; + m_recordBtn->setChecked(false); + return; + } + + m_recording = true; + m_recordBtn->setText(tr("⏹ Stop")); + m_infoLabel->setText(tr("Recording to %1").arg(path)); +} + +void VideoWidget::stopRecording() +{ + m_recording = false; + m_recordBtn->setChecked(false); + m_recordBtn->setText(tr("⏺ Record")); + + if (m_recordProcess) { + // Closing stdin signals ffmpeg there's no more input; it then + // finishes encoding/muxing and exits on its own. The finished() + // handler connected in startRecording() cleans the QProcess up + // once that happens. + m_recordProcess->closeWriteChannel(); + if (!m_recordProcess->waitForFinished(3000)) + m_recordProcess->terminate(); + } +} + +void VideoWidget::writeRecordingFrame(const QImage &frame) +{ + if (frame.size() != m_recordSize) { + // The capture device changed resolution mid-recording (shouldn't + // normally happen, but e.g. a device re-negotiating format could + // trigger it). Feeding ffmpeg mismatched frame sizes on a raw pipe + // would desync/corrupt the output, so stop cleanly instead. + stopRecording(); + m_infoLabel->setText(tr("Recording stopped: frame size changed")); + return; + } + + // Format_RGB32 stores each pixel as 0xffRRGGBB in host byte order, + // which on little-endian systems (the overwhelming majority of + // desktop/embedded targets) is byte-for-byte BGRA - matching the + // "-pixel_format bgra" we told ffmpeg to expect above. + const QImage bgra = frame.convertToFormat(QImage::Format_RGB32); + m_recordProcess->write(reinterpret_cast(bgra.constBits()), + static_cast(bgra.sizeInBytes())); +} diff --git a/uartscope-git/PKGBUILD b/uartscope-git/PKGBUILD index b8d872c..b3b860b 100644 --- a/uartscope-git/PKGBUILD +++ b/uartscope-git/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: diabolus pkgname=uartscope -pkgver=1.0.0.r5.g1422efd +pkgver=1.0.0.r6.ga942f83 pkgrel=1 pkgdesc="Qt6-based UART serial monitor with tag monitoring, table view and auto-reconnect" arch=('x86_64' 'aarch64') diff --git a/uartscope-git/pkg/uartscope/.BUILDINFO b/uartscope-git/pkg/uartscope/.BUILDINFO index c745e96..459019b 100644 --- a/uartscope-git/pkg/uartscope/.BUILDINFO +++ b/uartscope-git/pkg/uartscope/.BUILDINFO @@ -1,11 +1,11 @@ format = 2 pkgname = uartscope pkgbase = uartscope -pkgver = 1.0.0.r5.g1422efd-1 +pkgver = 1.0.0.r6.ga942f83-1 pkgarch = x86_64 -pkgbuild_sha256sum = 8242aa269f493268004722051e566533f096b179edde83066e021265ee1edd3e +pkgbuild_sha256sum = 838e01d91a8df5c30e4be619acfc3fe42d6b58ec89f227d9df94874ebfbed8c0 packager = Unknown Packager -builddate = 1786450603 +builddate = 1787005573 builddir = /home/diabolus/Arbeit/Projekt-Hirnfrei/uartscope/uartscope-git startdir = /home/diabolus/Arbeit/Projekt-Hirnfrei/uartscope/uartscope-git buildtool = makepkg @@ -72,7 +72,7 @@ installed = android-ndk-r29-3-x86_64 installed = android-pkg-config-3-1-any installed = android-sdk-26.1.1-2-x86_64 installed = android-sdk-build-tools-r37.0.0-2-x86_64 -installed = android-sdk-platform-tools-37.0.0-1-x86_64 +installed = android-sdk-platform-tools-37.0.1-1-x86_64 installed = android-sdk-platform-tools-debug-36.0.0-1-x86_64 installed = android-tools-37.0.0-2-x86_64 installed = android-udev-20260423-1-any @@ -82,11 +82,11 @@ installed = aom-3.14.1-1-x86_64 installed = apache-2.4.68-1-x86_64 installed = apache-orc-2.3.1-1-x86_64 installed = apparmor-4.1.7-1-x86_64 -installed = appstream-1.1.5-1-x86_64 +installed = appstream-1.1.6-1-x86_64 installed = appstream-glib-0.8.4-1-x86_64 -installed = appstream-qt-1.1.5-1-x86_64 +installed = appstream-qt-1.1.6-1-x86_64 installed = apr-1.7.6-1-x86_64 -installed = apr-util-1.6.4-1-x86_64 +installed = apr-util-1.6.5-1-x86_64 installed = arandr-0.1.11-6-any installed = arch-install-scripts-31-2-any installed = archlinux-appstream-data-20260722-1-any @@ -101,7 +101,7 @@ installed = aribb24-1.0.3-4-x86_64 installed = arm-linux-gnueabihf-binutils-2.45+r8+g09be88bfb653-1-x86_64 installed = arm-linux-gnueabihf-linux-api-headers-6.15.1-1-any installed = arm-none-eabi-binutils-2.47-1-x86_64 -installed = arm-none-eabi-gcc-16.1.0-1-x86_64 +installed = arm-none-eabi-gcc-16.2.0-1-x86_64 installed = arm-none-eabi-newlib-4.6.0.20260123-1-any installed = arrow-24.0.0-6-x86_64 installed = asar-4.2.1-1-any @@ -114,7 +114,7 @@ installed = atkmm-2.28.5-2-x86_64 installed = atril-1.28.3-1-x86_64 installed = attica-6.28.0-1-x86_64 installed = attr-2.6.0-1-x86_64 -installed = audacity-1:3.7.8-3-x86_64 +installed = audacity-1:3.7.8-4-x86_64 installed = audiofile-0.3.6-12-x86_64 installed = audit-4.2.1-1-x86_64 installed = aurorae-6.7.4-1-x86_64 @@ -149,7 +149,7 @@ installed = babl-0.1.128-1-x86_64 installed = baloo-6.28.0-1-x86_64 installed = baloo-widgets-26.04.3-1-x86_64 installed = baobab-50.0-1-x86_64 -installed = barecode-git-r5.cb66172-1-x86_64 +installed = barecode-1.1.0-1-x86_64 installed = base-3-3-any installed = base-devel-1-2-any installed = bash-5.3.15-1-x86_64 @@ -157,7 +157,7 @@ installed = bash-completion-2.18.0-1-any installed = bc-1.08.2-1-x86_64 installed = benchmark-1.9.5-2-x86_64 installed = bigsh0t-2.7-2-x86_64 -installed = binutils-2.47-1-x86_64 +installed = binutils-2.47-4-x86_64 installed = bison-3.8.2-8-x86_64 installed = blas-3.12.1-2-x86_64 installed = blender-bin-5.2.0-1-x86_64 @@ -169,11 +169,11 @@ installed = bluez-libs-5.87-2-x86_64 installed = bluez-obex-5.87-2-x86_64 installed = bluez-utils-5.87-2-x86_64 installed = bogofilter-db-1.2.5-12-x86_64 -installed = bolt-0.9.11-2-x86_64 +installed = bolt-0.9.11-3-x86_64 installed = boost-1.91.0-2-x86_64 installed = boost-libs-1.91.0-2-x86_64 installed = brasero-3.12.3+r44+gdea4990b-1-x86_64 -installed = brave-bin-1:1.93.129-1-x86_64 +installed = brave-bin-1:1.93.136-1-x86_64 installed = breeze-6.7.4-1-x86_64 installed = breeze-cursors-6.7.4-1-x86_64 installed = breeze-icons-6.28.0-1-x86_64 @@ -188,7 +188,7 @@ installed = bubblewrap-0.11.2-1-x86_64 installed = bzip2-1.0.8-6-x86_64 installed = c-ares-1.34.8-1-x86_64 installed = ca-certificates-20240618-1-any -installed = ca-certificates-mozilla-3.126-1-x86_64 +installed = ca-certificates-mozilla-3.127-1-x86_64 installed = ca-certificates-utils-20240618-1-any installed = cabextract-1.11-3-x86_64 installed = cairo-1.18.4-1-x86_64 @@ -199,7 +199,7 @@ installed = calendarsupport-26.04.3-1-x86_64 installed = cantarell-fonts-1:0.311-1-any installed = capstone-5.0.9-1-x86_64 installed = cargo-c-0.10.24-1-x86_64 -installed = cauchy-0.9.0-5-x86_64 +installed = cauchy-0.9.0-6-x86_64 installed = cblas-3.12.1-2-x86_64 installed = ccache-4.13.6-1-x86_64 installed = cccl-3.4.2-1-any @@ -208,10 +208,10 @@ installed = cdrdao-1.2.6-3-x86_64 installed = cdrtools-3.02a09-6-x86_64 installed = cef-minimal-obs-bin-2:127.3.4+ga0ca18e+chromium_127.0.6533.100_6-1-x86_64 installed = ceres-solver-2.2.0-5-x86_64 -installed = cfitsio-1:4.6.4-1-x86_64 +installed = cfitsio-1:4.7.0-1-x86_64 installed = chmlib-0.40-10-x86_64 installed = chromaprint-1.6.1-2-x86_64 -installed = chromium-151.0.7922.108-1-x86_64 +installed = chromium-151.0.7922.137-1-x86_64 installed = chrpath-0.18-1-x86_64 installed = cifs-utils-7.5-1-x86_64 installed = cinnamon-6.6.9-1-x86_64 @@ -243,8 +243,10 @@ installed = compiler-rt21-21.1.8-1-x86_64 installed = composefs-1.0.8-1-x86_64 installed = composer-2.10.2-1-any installed = confuse-3.3-5-x86_64 -installed = containerd-2.3.3-1-x86_64 +installed = containerd-2.3.4-1-x86_64 installed = convertlit-1.8-13-x86_64 +installed = coolercontrol-4.3.1-2-x86_64 +installed = coolercontrold-4.3.1-2-x86_64 installed = coqui-tts-0.27.5-2-any installed = coreutils-9.11-2-x86_64 installed = cpio-2.15-3-x86_64 @@ -262,7 +264,7 @@ installed = cura-bin-5.13.0-1-x86_64 installed = curl-8.21.0-1-x86_64 installed = curl-impersonate-2.1.0-1-x86_64 installed = curlftpfs-0.9.2-10-x86_64 -installed = curseforge-1.312.1_36055-1-x86_64 +installed = curseforge-1.316.0_37372-1-x86_64 installed = cutecom-0.60.0_RC1-2-x86_64 installed = cutecom-debug-0.60.0_RC1-1-x86_64 installed = cython-3.2.9-1-x86_64 @@ -278,10 +280,10 @@ installed = dconf-editor-49.0-1-x86_64 installed = ddcutil-2.2.7-1-x86_64 installed = debhelper-14.3-1-any installed = debtap-3.6.3-1-any -installed = debugedit-5.3-1-x86_64 -installed = debuginfod-0.195-2-x86_64 +installed = debugedit-5.3-2-x86_64 +installed = debuginfod-0.195-8-x86_64 installed = default-cursors-3-1-any -installed = dejagnu-1.6.3-19-any +installed = dejagnu-1.6.3-21-any installed = deno-2.9.5-1-x86_64 installed = desktop-file-utils-0.28-1-x86_64 installed = device-mapper-2.03.42-1-x86_64 @@ -290,7 +292,7 @@ installed = dhcpcd-10.5.0-1-x86_64 installed = dialog-1:1.3_20260721-1-x86_64 installed = diffutils-3.12-2-x86_64 installed = ding-libs-0.7.0-1-x86_64 -installed = discord-1:1.0.152-1-x86_64 +installed = discord-1:1.0.154-1-x86_64 installed = discount-3.0.1.3-1-x86_64 installed = djvulibre-3.5.30.1-1-x86_64 installed = dkms-3.4.2-1-any @@ -300,18 +302,18 @@ installed = dnsmasq-2.93-1-x86_64 installed = docbook-xml-4.5-11-any installed = docbook-xsl-1.79.2-9-any installed = docker-1:29.7.2-1-x86_64 -installed = docker-buildx-0.36.0-1-x86_64 +installed = docker-buildx-0.36.1-1-x86_64 installed = docker-compose-5.4.0-1-x86_64 installed = dolphin-26.04.3-1-x86_64 installed = dos2unix-7.5.6-1-x86_64 installed = dosbox-0.74.3-4-x86_64 installed = dosfstools-4.2-5-x86_64 installed = dotconf-1.4.1-1-x86_64 -installed = dotnet-host-10.0.10.sdk110-1-x86_64 -installed = dotnet-runtime-10.0-10.0.10.sdk110-1-x86_64 +installed = dotnet-host-10.0.11.sdk111-1-x86_64 +installed = dotnet-runtime-10.0-10.0.11.sdk111-1-x86_64 installed = dotnet-runtime-6.0-6.0.36.sdk136-2-x86_64 -installed = dotnet-sdk-10.0-10.0.10.sdk110-1-x86_64 -installed = dotnet-targeting-pack-10.0-10.0.10.sdk110-1-x86_64 +installed = dotnet-sdk-10.0-10.0.11.sdk111-1-x86_64 +installed = dotnet-targeting-pack-10.0-10.0.11.sdk111-1-x86_64 installed = double-conversion-3.4.0-1-x86_64 installed = doxygen-1.16.1-3-x86_64 installed = dpkg-1.23.7-1-x86_64 @@ -338,14 +340,14 @@ installed = egl-x11-1.0.5-1-x86_64 installed = eglexternalplatform-1.2.1-1-any installed = eigen-5.0.1-2-x86_64 installed = electron-1:43-1-any -installed = electron43-43.3.0-1-x86_64 +installed = electron43-43.4.0-1-x86_64 installed = elementary-icon-theme-8.2.0-2-any -installed = elfutils-0.195-2-x86_64 +installed = elfutils-0.195-8-x86_64 installed = embree-4.4.1-1-x86_64 installed = enca-1.22-1-x86_64 installed = enchant-2.8.15-2-x86_64 installed = engrampa-1.28.3-1-x86_64 -installed = epiphany-50.5-1-x86_64 +installed = epiphany-50.6-1-x86_64 installed = epson-inkjet-printer-escpr-1.8.8-1-x86_64 installed = espeak-ng-1.52.0-1-x86_64 installed = eventviews-26.04.3-1-x86_64 @@ -361,7 +363,7 @@ installed = exempi-2.6.6-3-x86_64 installed = exfat-utils-1.4.0-4-x86_64 installed = exiv2-0.28.8-2-x86_64 installed = exo-4.20.0-2-x86_64 -installed = expat-2.8.2-1-x86_64 +installed = expat-2.8.3-1-x86_64 installed = expect-5.45.4-5-x86_64 installed = extra-cmake-modules-6.28.0-1-any installed = eza-0.23.5-2-x86_64 @@ -372,7 +374,7 @@ installed = faad2-2.11.2-1-x86_64 installed = fakeroot-1:1.37.2-3-x86_64 installed = feather-wallet-bin-2.8.1-2-x86_64 installed = ffcall-2.5-1-x86_64 -installed = ffmpeg-2:9.0-5-x86_64 +installed = ffmpeg-2:9.0.1-1-x86_64 installed = ffmpeg4.4-4.4.8-3-x86_64 installed = ffmpegthumbs-26.04.3-3-x86_64 installed = ffnvcodec-headers-13.1.15.0-1-any @@ -383,17 +385,17 @@ installed = file-roller-44.7-1-x86_64 installed = filesystem-2025.10.12-1-any installed = findutils-4.11.0-1-x86_64 installed = fio-3.42-1-x86_64 -installed = firefox-153.0.3-2-x86_64 +installed = firefox-153.0.4-1-x86_64 installed = firestorm-bin-7.2.4.80712-1-x86_64 installed = flac-1.5.0-1-x86_64 installed = flameshot-14.0.0-1-x86_64 installed = flashrom-1.7.0-1-x86_64 installed = flat-remix-gnome-20250926-1-any -installed = flatpak-1:1.18.0-1-x86_64 +installed = flatpak-1:1.18.1-1-x86_64 installed = flex-2.6.4-6-x86_64 installed = fltk-1.4.5-1-x86_64 installed = fltk1.3-1.3.11-4-x86_64 -installed = fluidsynth-2.5.7-1-x86_64 +installed = fluidsynth-2.6.0-1-x86_64 installed = fmt-12.2.0-1-x86_64 installed = fontconfig-2:2.18.3-1-x86_64 installed = foomatic-db-engine-5:20200131-2-x86_64 @@ -406,13 +408,13 @@ installed = freeglut-3.8.0-1-x86_64 installed = freeoffice-1234-1-x86_64 installed = freerdp-2:3.30.0-2-x86_64 installed = freetype2-2.14.3-1-x86_64 -installed = frei0r-plugins-3.2.3-2-x86_64 +installed = frei0r-plugins-3.3.0-1-x86_64 installed = fribidi-1.0.16-2-x86_64 -installed = fritzing-1.0.7-3-x86_64 +installed = fritzing-1.0.8-1-x86_64 installed = fs-uae-3.2.35-2-x86_64 installed = fs-uae-launcher-3.2.35-2-any installed = ftgl-2.4.0-3-x86_64 -installed = ftxui-7.0.1-1-x86_64 +installed = ftxui-7.0.3-1-x86_64 installed = fuse-common-3.18.2-1-x86_64 installed = fuse2-2.9.9-5-x86_64 installed = fuse3-3.18.2-1-x86_64 @@ -425,11 +427,11 @@ installed = garcon-4.20.0-2-x86_64 installed = gavl-2.0.1-2-x86_64 installed = gawk-5.4.1-1-x86_64 installed = gc-8.2.12-1-x86_64 -installed = gcc-16.1.1+r595+g171d15ac6959-1-x86_64 -installed = gcc-ada-16.1.1+r595+g171d15ac6959-1-x86_64 -installed = gcc-d-16.1.1+r595+g171d15ac6959-1-x86_64 -installed = gcc-fortran-16.1.1+r595+g171d15ac6959-1-x86_64 -installed = gcc-libs-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = gcc-16.2.1+r23+gd564253eb6c8-1-x86_64 +installed = gcc-ada-16.2.1+r23+gd564253eb6c8-1-x86_64 +installed = gcc-d-16.2.1+r23+gd564253eb6c8-1-x86_64 +installed = gcc-fortran-16.2.1+r23+gd564253eb6c8-1-x86_64 +installed = gcc-libs-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = gcc14-14.3.1+r516+g5998566829ee-1-x86_64 installed = gcc14-libs-14.3.1+r516+g5998566829ee-1-x86_64 installed = gcc15-15.3.0+r0.g4db0e8df15be-2-x86_64 @@ -476,8 +478,8 @@ installed = glib-networking-1:2.80.1-1-x86_64 installed = glib2-2.88.3-1-x86_64 installed = glib2-devel-2.88.3-1-x86_64 installed = glib2-docs-2.88.3-1-x86_64 -installed = glibc-2.44+r5+g7cba77790f32-1-x86_64 -installed = glibmm-2.66.9-1-x86_64 +installed = glibc-2.44+r24+g16be1518495f-1-x86_64 +installed = glibmm-2.66.10-1-x86_64 installed = glibmm-2.68-2.88.1-1-x86_64 installed = glm-1.0.3-1-x86_64 installed = glslang-1:1.4.357.0-1-x86_64 @@ -514,8 +516,8 @@ installed = gnome-remote-desktop-50.2-1-x86_64 installed = gnome-session-50.1-1-x86_64 installed = gnome-settings-daemon-50.1-1-x86_64 installed = gnome-shell-1:50.4-1-x86_64 -installed = gnome-shell-extension-appindicator-1:64-1-any -installed = gnome-shell-extensions-50.2-1-any +installed = gnome-shell-extension-appindicator-1:65-1-any +installed = gnome-shell-extensions-50.3-1-any installed = gnome-software-50.3-1-x86_64 installed = gnome-system-monitor-50.0-1-x86_64 installed = gnome-text-editor-50.1-1-x86_64 @@ -526,14 +528,15 @@ installed = gnome-user-share-48.3-1-x86_64 installed = gnome-weather-50.0-1-any installed = gnu-free-fonts-20120503-9-any installed = gnulib-l10n-20241231-1-any -installed = gnupg-2.4.9-2-x86_64 +installed = gnupg-2.4.9-3-x86_64 installed = gnutls-3.8.13-2-x86_64 -installed = go-2:1.26.5-1-x86_64 +installed = go-2:1.26.6-1-x86_64 +installed = go-md2man-2.0.7-2-x86_64 installed = go-tools-4:0.48.0-1-x86_64 installed = gobject-introspection-1.86.0-2-x86_64 installed = gobject-introspection-runtime-1.86.0-2-x86_64 installed = gom-0.5.6-1-x86_64 -installed = google-chrome-151.0.7922.71-1-x86_64 +installed = google-chrome-151.0.7922.137-1-x86_64 installed = google-earth-pro-7.3.7.1155-1-x86_64 installed = google-glog-0.7.1-2-x86_64 installed = goverlay-1.8.11-1-x86_64 @@ -543,12 +546,12 @@ installed = gperftools-2.18.1-1-x86_64 installed = gpgme-2.1.2-1-x86_64 installed = gpgmepp-2.1.0-1-x86_64 installed = gpm-1.20.7.r38.ge82d1a6-6-x86_64 -installed = gradle-9.6.1-1-any +installed = gradle-9.7.0-1-any installed = grantleetheme-26.04.3-1-x86_64 installed = graphene-1.10.8-2-x86_64 installed = graphicsmagick-1.3.48-1-x86_64 installed = graphite-1:1.3.15-1-x86_64 -installed = graphviz-15.1.1-1-x86_64 +installed = graphviz-16.0.0-1-x86_64 installed = grep-3.12-2-x86_64 installed = grilo-0.3.19-2-x86_64 installed = grilo-plugins-1:0.3.18-3-x86_64 @@ -622,11 +625,11 @@ installed = gzip-1.14-2-x86_64 installed = handbrake-1.11.2-1-x86_64 installed = hardinfo2-2.2.16-2-x86_64 installed = hardinfo2-debug-2.2.13-1-x86_64 -installed = harfbuzz-14.3.0-1-x86_64 -installed = harfbuzz-icu-14.3.0-1-x86_64 +installed = harfbuzz-14.3.1-1-x86_64 +installed = harfbuzz-icu-14.3.1-1-x86_64 installed = haveged-1.9.26-1-x86_64 installed = hdf5-2.2.0-1-x86_64 -installed = heroic-games-launcher-bin-2.22.0-1-x86_64 +installed = heroic-games-launcher-bin-2.22.1-1-x86_64 installed = hicolor-icon-theme-0.18-1-any installed = hidapi-0.15.0-1-x86_64 installed = highway-1.4.0-1-x86_64 @@ -634,7 +637,7 @@ installed = hiredis-1.3.0-1-x86_64 installed = hplip-1:3.26.4-1-x86_64 installed = hspell-1.4-6-x86_64 installed = htdig-3.2.0b6-11.1-x86_64 -installed = htop-3.5.2-1-x86_64 +installed = htop-3.5.3-1-x86_64 installed = http-parser-2.9.4-2-x86_64 installed = hunspell-1.7.3-1-x86_64 installed = hwdata-0.410-1-any @@ -670,7 +673,8 @@ installed = intel-oneapi-openmp-2026.0.0_947-1-x86_64 installed = intel-oneapi-tbb-2023.0.0_724-1-x86_64 installed = intel-oneapi-tcm-1.5.0_489-1-x86_64 installed = intel-oneapi-umf-1.1.0_340-2-x86_64 -installed = intel-ucode-20260512-1-any +installed = intel-ucode-20260812-1-any +installed = intel-undervolt-1.7-3-x86_64 installed = intltool-0.51.0-6-any installed = intltool-debian-1:0.35.0+20060710.6-1-any installed = iperf3-3.21-1-x86_64 @@ -694,7 +698,7 @@ installed = jdk8-openjdk-8.502.u07-1-x86_64 installed = jemalloc-1:5.3.1-3-x86_64 installed = joyutils-1.8.1-4-x86_64 installed = jq-1.8.2-1-x86_64 -installed = jre-26.0.1-1-x86_64 +installed = jre-26.0.2-1-x86_64 installed = jre8-openjdk-8.502.u07-1-x86_64 installed = jre8-openjdk-headless-8.502.u07-1-x86_64 installed = js115-115.31.0-1-x86_64 @@ -834,7 +838,7 @@ installed = kwayland-6.7.4-1-x86_64 installed = kwayland5-5.116.0-2-x86_64 installed = kwidgetsaddons-6.28.0-1-x86_64 installed = kwidgetsaddons5-5.116.0-2-x86_64 -installed = kwin-6.7.4-3-x86_64 +installed = kwin-6.7.4-5-x86_64 installed = kwindowsystem-6.28.0-1-x86_64 installed = kwindowsystem5-5.116.0-2-x86_64 installed = kxmlgui-6.28.0-1-x86_64 @@ -847,7 +851,7 @@ installed = layer-shell-qt-6.7.4-1-x86_64 installed = lazarus-4.8-1-x86_64 installed = lcms-1.19-7.1-x86_64 installed = lcms2-2.19.1-1-x86_64 -installed = ldb-2:4.24.5-1-x86_64 +installed = ldb-2:4.24.6-1-x86_64 installed = ldc-3:1.42.0-1-x86_64 installed = leancrypto-1.8.0-1-x86_64 installed = lensfun-1:0.3.4-6-x86_64 @@ -871,25 +875,25 @@ installed = lib32-curl-8.21.0-1-x86_64 installed = lib32-dbus-1.16.2-1-x86_64 installed = lib32-duktape-2.7.0-7-x86_64 installed = lib32-e2fsprogs-1.47.4-1-x86_64 -installed = lib32-expat-2.8.2-1-x86_64 +installed = lib32-expat-2.8.3-1-x86_64 installed = lib32-flac-1.5.0-1-x86_64 installed = lib32-fontconfig-2:2.18.3-1-x86_64 installed = lib32-freetype2-2.14.3-1-x86_64 installed = lib32-fribidi-1.0.16-2-x86_64 -installed = lib32-gcc-libs-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = lib32-gcc-libs-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = lib32-gdk-pixbuf2-2.44.7-1-x86_64 installed = lib32-gettext-1.0-1-x86_64 installed = lib32-giflib-6.1.3-1-x86_64 installed = lib32-glib-networking-1:2.80.1-1-x86_64 installed = lib32-glib2-2.88.3-1-x86_64 -installed = lib32-glibc-2.44+r5+g7cba77790f32-1-x86_64 +installed = lib32-glibc-2.44+r24+g16be1518495f-1-x86_64 installed = lib32-gmp-6.3.0-2-x86_64 installed = lib32-gnutls-3.8.13-3-x86_64 installed = lib32-gpm-1.20.7.r38.ge82d1a6-2-x86_64 installed = lib32-gst-plugins-base-libs-1.28.5-1-x86_64 installed = lib32-gstreamer-1.28.5-1-x86_64 installed = lib32-gtk3-1:3.24.52-1-x86_64 -installed = lib32-harfbuzz-14.3.0-1-x86_64 +installed = lib32-harfbuzz-14.3.1-1-x86_64 installed = lib32-icu-78.3-1-x86_64 installed = lib32-imlib2-1.12.6-1-x86_64 installed = lib32-json-c-0.19-1-x86_64 @@ -961,27 +965,27 @@ installed = lib32-libxcursor-1.2.3-1-x86_64 installed = lib32-libxdamage-1.1.7-1-x86_64 installed = lib32-libxdmcp-1.1.5-1-x86_64 installed = lib32-libxext-1.3.7-1-x86_64 -installed = lib32-libxfixes-6.0.1-2-x86_64 +installed = lib32-libxfixes-6.0.2-1-x86_64 installed = lib32-libxft-2.3.9-1-x86_64 installed = lib32-libxi-1.8.3-1-x86_64 installed = lib32-libxinerama-1.1.6-1-x86_64 installed = lib32-libxkbcommon-1.13.2-1-x86_64 installed = lib32-libxml2-2.15.3-1-x86_64 installed = lib32-libxrandr-1.5.5-1-x86_64 -installed = lib32-libxrender-0.9.11-2-x86_64 +installed = lib32-libxrender-0.9.12-1-x86_64 installed = lib32-libxshmfence-1.3.3-1-x86_64 installed = lib32-libxss-1.2.5-1-x86_64 installed = lib32-libxtst-1.2.5-2-x86_64 -installed = lib32-libxv-1.0.12-2-x86_64 -installed = lib32-libxxf86vm-1.1.5-2-x86_64 +installed = lib32-libxv-1.0.13-1-x86_64 +installed = lib32-libxxf86vm-1.1.7-1-x86_64 installed = lib32-llvm-libs-1:22.1.8-1-x86_64 installed = lib32-lm_sensors-1:3.6.2-2-x86_64 -installed = lib32-mesa-1:26.1.6-1-x86_64 +installed = lib32-mesa-1:26.1.7-1-x86_64 installed = lib32-mpg123-1.33.7-1-x86_64 installed = lib32-ncurses-6.6-2-x86_64 installed = lib32-nettle-4.0-2-x86_64 installed = lib32-nspr-4.40-1-x86_64 -installed = lib32-nss-3.126-1-x86_64 +installed = lib32-nss-3.127-1-x86_64 installed = lib32-nvidia-utils-610.57.04-1-x86_64 installed = lib32-openal-1.25.2-1-x86_64 installed = lib32-openssl-1:3.6.3-1-x86_64 @@ -1026,12 +1030,12 @@ installed = libajantv2-debug-1:18.0.0-1-x86_64 installed = libao-1.2.2-7-x86_64 installed = libappindicator-12.10.1-1-x86_64 installed = libarchive-3.8.9-1-x86_64 -installed = libasan-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libasan-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libass-0.17.5-1-x86_64 installed = libassuan-3.0.0-1-x86_64 installed = libasyncns-1:0.8+r3+g68cd5af-3-x86_64 installed = libatasmart-0.19-8-x86_64 -installed = libatomic-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libatomic-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libavc1394-0.5.4-7-x86_64 installed = libavif-1.4.2-1-x86_64 installed = libavtp-0.2.0-3-x86_64 @@ -1100,7 +1104,7 @@ installed = libebml-1.4.5-3-x86_64 installed = libebur128-1.2.6-2-x86_64 installed = libedit-20260512_3.1-1-x86_64 installed = libei-1.6.0-1-x86_64 -installed = libelf-0.195-2-x86_64 +installed = libelf-0.195-8-x86_64 installed = libepoxy-1.5.10-3-x86_64 installed = libev-4.33-5-x86_64 installed = libevdev-1.13.6-1-x86_64 @@ -1121,16 +1125,16 @@ installed = libftdi-1.5-10-x86_64 installed = libfyaml-0.9.6-3-x86_64 installed = libgadu-1.12.2-14-x86_64 installed = libgbinder-1.1.52-1-x86_64 -installed = libgcc-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libgcc-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libgcrypt-1.12.2-1-x86_64 installed = libgdata-0.18.1-5-x86_64 installed = libgdiplus-6.2-1-x86_64 installed = libgdm-50.2-1-x86_64 installed = libgee-0.20.8-1-x86_64 installed = libgexiv2-0.14.7-1-x86_64 -installed = libgfortran-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libgfortran-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libgirepository-1.86.0-2-x86_64 -installed = libgit2-1:1.9.6-1-x86_64 +installed = libgit2-1:1.9.7-1-x86_64 installed = libglade-2.6.4-9-x86_64 installed = libglibutil-1.0.82-1-x86_64 installed = libglibutil-debug-1.0.80-1-x86_64 @@ -1139,10 +1143,10 @@ installed = libgme-0.6.5-1-x86_64 installed = libgnome-keyring-1:3.12.0+r14+g23438cc-1-x86_64 installed = libgnomekbd-1:3.28.1-2-x86_64 installed = libgoa-3.58.1-1-x86_64 -installed = libgomp-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libgomp-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libgovirt-2:0.3.11-1-x86_64 installed = libgpg-error-1.61-1-x86_64 -installed = libgphobos-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libgphobos-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libgphoto2-2.5.34-1-x86_64 installed = libgpod-0.8.3-20-x86_64 installed = libgravatar-26.04.3-1-x86_64 @@ -1155,9 +1159,9 @@ installed = libgxps-0.3.2-5-x86_64 installed = libhandy-1.8.3-2-x86_64 installed = libharu-2.4.6-1-x86_64 installed = libheif-1.23.1-4-x86_64 -installed = libhwasan-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libhwasan-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libibus-1.5.34-1-x86_64 -installed = libical-4.0.4-1-x86_64 +installed = libical-4.0.5-1-x86_64 installed = libice-1.1.2-1-x86_64 installed = libiconv-1.19-1-x86_64 installed = libid3tag-0.16.4-1-x86_64 @@ -1200,19 +1204,19 @@ installed = liblouis-3.38.0-1-x86_64 installed = liblphobos-3:1.42.0-1-x86_64 installed = liblqr-0.4.3-1-x86_64 installed = liblrdf-0.6.1-5-x86_64 -installed = liblsan-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = liblsan-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libltc-1.3.2-2-x86_64 installed = liblxqt-2.4.0-1-x86_64 installed = liblzf-3.6-5-x86_64 installed = libmad-0.15.1b-10-x86_64 -installed = libmakepkg-dropins-20-1-any +installed = libmakepkg-dropins-20-2-any installed = libmalcontent-0.14.0-4-x86_64 installed = libmanette-0.2.13-2-x86_64 installed = libmatroska-1.7.2-2-x86_64 installed = libmbim-1.34.0-1-x86_64 installed = libmd-1.2.0-1-x86_64 installed = libmediaart-1.9.7-2-x86_64 -installed = libmediainfo-26.05-1-x86_64 +installed = libmediainfo-26.05-2-x86_64 installed = libmfx-23.2.2-6-x86_64 installed = libmicrodns-0.2.0-2-x86_64 installed = libmicrohttpd-1.0.10-1-x86_64 @@ -1254,10 +1258,10 @@ installed = libnotify-0.8.8-1-x86_64 installed = libnsl-2.0.1-2-x86_64 installed = libnss_nis-3.4-1-x86_64 installed = libntfs-3g-2026.7.7-1-x86_64 -installed = libnvidia-container-1.19.1-1-x86_64 +installed = libnvidia-container-1.20.0-1-x86_64 installed = libnvme-1.16.2-2-x86_64 installed = liboauth-1:1.0.3+r16+gc26f038-2-x86_64 -installed = libobjc-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libobjc-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libodfgen-0.1.8-5-x86_64 installed = libofx-0.10.9-2-x86_64 installed = libogg-1.3.6-1-x86_64 @@ -1276,7 +1280,7 @@ installed = libpciaccess-0.19-1-x86_64 installed = libpeas-1.38.1-1-x86_64 installed = libpgm-5.3.128-4-x86_64 installed = libphobos-1:2.112.1-2-x86_64 -installed = libphonenumber-1:9.0.36-2-x86_64 +installed = libphonenumber-1:9.0.37-1-x86_64 installed = libpipeline-1.5.8-1-x86_64 installed = libpipewire-1:1.6.8-1-x86_64 installed = libplacebo-7.360.1-6-x86_64 @@ -1298,13 +1302,13 @@ installed = libqalculate-5.12.0-1-x86_64 installed = libqmi-1.38.0-1-x86_64 installed = libqrtr-glib-1.4.0-1-x86_64 installed = libqtxdg-4.4.0-2-x86_64 -installed = libquadmath-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libquadmath-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libraqm-0.11.0-1-x86_64 installed = libraw-0.22.2-1-x86_64 installed = libraw1394-2.1.2-4-x86_64 installed = librest-0.10.2-1-x86_64 installed = librevenge-0.0.6-1-x86_64 -installed = librist-0.2.17-1-x86_64 +installed = librist-0.2.20-1-x86_64 installed = librsvg-2:2.62.3-1-x86_64 installed = libsamplerate-0.2.2-3-x86_64 installed = libsasl-2.1.28-5-x86_64 @@ -1336,10 +1340,10 @@ installed = libssc-0.4.4-1-x86_64 installed = libssh-0.12.2-1-x86_64 installed = libssh2-1.11.1-7-x86_64 installed = libstarfish-0.0.6-2-x86_64 -installed = libstdc++-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libstdc++-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libstemmer-3.1.1-1-x86_64 installed = libsynctex-2026.0-2-x86_64 -installed = libsysprof-capture-50.0-4-x86_64 +installed = libsysprof-capture-50.0-6-x86_64 installed = libtar-1.2.20-8-x86_64 installed = libtasn1-4.21.0-1-x86_64 installed = libtatsu-1.0.5-1-x86_64 @@ -1350,12 +1354,12 @@ installed = libtiff-4.7.2-1-x86_64 installed = libtiff5-4.4.0-2-x86_64 installed = libtirpc-1.3.7-1-x86_64 installed = libtommath-1.3.0-2-x86_64 -installed = libtool-2.6.2-3-x86_64 +installed = libtool-2.6.2-5-x86_64 installed = libtpms-0.10.2-1-x86_64 installed = libtraceevent-1:1.9.0-1-x86_64 installed = libtracefs-1.8.3-1-x86_64 -installed = libtsan-16.1.1+r595+g171d15ac6959-1-x86_64 -installed = libubsan-16.1.1+r595+g171d15ac6959-1-x86_64 +installed = libtsan-16.2.1+r23+gd564253eb6c8-1-x86_64 +installed = libubsan-16.2.1+r23+gd564253eb6c8-1-x86_64 installed = libunibreak-7.0-1-x86_64 installed = libunistring-1.4.2-1-x86_64 installed = libunwind-1.8.2-1-x86_64 @@ -1384,7 +1388,7 @@ installed = libvorbis-1.3.7-4-x86_64 installed = libvpl-2.17.0-1-x86_64 installed = libvpx-1.16.0-3-x86_64 installed = libwacom-2.19.1-1-x86_64 -installed = libwbclient-2:4.24.5-1-x86_64 +installed = libwbclient-2:4.24.6-1-x86_64 installed = libwebp-1.6.0-2-x86_64 installed = libwireplumber-0.5.15-1-x86_64 installed = libwireplumber-4.0-compat-0.4.17-2-x86_64 @@ -1411,7 +1415,7 @@ installed = libxdp-1.6.3-2-x86_64 installed = libxext-1.3.7-1-x86_64 installed = libxfce4ui-4.20.2-1-x86_64 installed = libxfce4util-4.20.1-1-x86_64 -installed = libxfce4windowing-4.20.6-1-x86_64 +installed = libxfce4windowing-4.20.7-1-x86_64 installed = libxfixes-6.0.2-1-x86_64 installed = libxfont2-2.0.9-1-x86_64 installed = libxft-2.3.9-1-x86_64 @@ -1447,33 +1451,33 @@ installed = libyuv-r2426+464c51a03-1-x86_64 installed = libzen-0.4.41-3-x86_64 installed = libzip-1.11.4-1-x86_64 installed = licenses-20240728-1-any -installed = lightdm-1:1.32.0-9-x86_64 +installed = lightdm-1:1.33.0-1-x86_64 installed = lightdm-gtk-greeter-1:2.0.9-2-x86_64 installed = lightdm-gtk-greeter-settings-1.2.3-5-any installed = lightdm-settings-2.1.1-1-any installed = lightdm-slick-greeter-2.2.7-1-x86_64 installed = lilv-0.28.0-1-x86_64 installed = linphone-desktop-appimage-6.1.2-1-x86_64 -installed = linux-7.1.7.arch1-1-x86_64 +installed = linux-7.1.8.arch1-3-x86_64 installed = linux-api-headers-7.1-1-x86_64 -installed = linux-firmware-20260622-1-any -installed = linux-firmware-amdgpu-20260622-1-any -installed = linux-firmware-atheros-20260622-1-any -installed = linux-firmware-broadcom-20260622-1-any -installed = linux-firmware-cirrus-20260622-1-any -installed = linux-firmware-intel-20260622-1-any -installed = linux-firmware-mediatek-20260622-1-any -installed = linux-firmware-nvidia-20260622-1-any -installed = linux-firmware-other-20260622-1-any -installed = linux-firmware-radeon-20260622-1-any -installed = linux-firmware-realtek-20260622-1-any -installed = linux-firmware-whence-20260622-1-any -installed = linux-headers-7.1.7.arch1-1-x86_64 -installed = linux-zen-7.1.7.zen1-1-x86_64 -installed = linux-zen-headers-7.1.7.zen1-1-x86_64 +installed = linux-firmware-20260810-2-any +installed = linux-firmware-amdgpu-20260810-2-any +installed = linux-firmware-atheros-20260810-2-any +installed = linux-firmware-broadcom-20260810-2-any +installed = linux-firmware-cirrus-20260810-2-any +installed = linux-firmware-intel-20260810-2-any +installed = linux-firmware-mediatek-20260810-2-any +installed = linux-firmware-nvidia-20260810-2-any +installed = linux-firmware-other-20260810-2-any +installed = linux-firmware-radeon-20260810-2-any +installed = linux-firmware-realtek-20260810-2-any +installed = linux-firmware-whence-20260810-2-any +installed = linux-headers-7.1.8.arch1-3-x86_64 +installed = linux-zen-7.1.8.zen1-3-x86_64 +installed = linux-zen-headers-7.1.8.zen1-3-x86_64 installed = lirc-1:0.10.2-6-x86_64 installed = litehtml-0.10-1-x86_64 -installed = litehtml0.9-0.9-2-x86_64 +installed = litehtml0.9-0.9-3-x86_64 installed = lksctp-tools-1.0.21-1-x86_64 installed = lld-22.1.8-1-x86_64 installed = lld21-21.1.8-1-x86_64 @@ -1538,7 +1542,7 @@ installed = manifold-3.4.1-1-x86_64 installed = mariadb-12.3.2-4-x86_64 installed = mariadb-clients-12.3.2-4-x86_64 installed = mariadb-libs-12.3.2-4-x86_64 -installed = masterpdfeditor-5.9.98-2-x86_64 +installed = masterpdfeditor-5.9.99-3-x86_64 installed = masterpdfeditor-debug-5.9.94-1-x86_64 installed = masterpdfeditor-free-4.3.89-1-x86_64 installed = mate-desktop-1.28.2-2-x86_64 @@ -1546,19 +1550,20 @@ installed = mate-system-monitor-1.28.1-3-x86_64 installed = materialx-1.39.5-1-x86_64 installed = mathjax2-2.7.9-2-any installed = maturin-1.14.1-1-x86_64 -installed = mbedtls-3.6.5-1-x86_64 +installed = mbedtls-4.2.0-1-x86_64 installed = mbedtls2-2.28.10-1-x86_64 +installed = mbedtls3-3.6.7-1-x86_64 installed = md4c-0.5.3-1-x86_64 installed = mdadm-4.6-2-x86_64 installed = media-player-info-26-1-any installed = mediainfo-26.05-1-x86_64 installed = menu-cache-1.1.1-2-x86_64 -installed = mercurial-7.2.3-1-x86_64 -installed = mesa-1:26.1.6-1-x86_64 +installed = mercurial-7.2.4-1-x86_64 +installed = mesa-1:26.1.7-1-x86_64 installed = mesa-utils-9.0.0-7-x86_64 installed = meson-1.12.0-1-any installed = messagelib-26.04.3-1-x86_64 -installed = micromamba-bin-2.8.1.0-1-x86_64 +installed = micromamba-bin-2.9.0.0-1-x86_64 installed = micropolis-git-r113.f46cb0f-1-x86_64 installed = milou-6.7.4-1-x86_64 installed = mingw-w64-binutils-2.46.0-1-x86_64 @@ -1571,7 +1576,7 @@ installed = miniupnpc-2.3.3-3-x86_64 installed = minizip-1:1.3.2-3-x86_64 installed = minizip-ng-4.2.2-1-x86_64 installed = mjpegtools-2.2.1-4-x86_64 -installed = mkinitcpio-41-4-any +installed = mkinitcpio-41.1-1-any installed = mkinitcpio-busybox-1.36.1-1-x86_64 installed = mlt-7.40.0-3-x86_64 installed = mobile-broadband-provider-info-20251101-1-any @@ -1600,11 +1605,11 @@ installed = mutter-50.4-1-x86_64 installed = mypaint-brushes-2.0.2-2-any installed = mypaint-brushes1-1.3.1-2-any installed = namcap-3.6.0-3-any -installed = nanobind-2.14.0-1-any +installed = nanobind-2.15.0-1-any installed = nasm-3.02-1-x86_64 installed = nautilus-50.2.2-1-x86_64 installed = nautilus-python-4.1.0-3-x86_64 -installed = nccl-2.30.7-1-x86_64 +installed = nccl-2.31.2-1-x86_64 installed = ncurses-6.6-2-x86_64 installed = ndctl-85-1-x86_64 installed = nemo-6.6.4-1-x86_64 @@ -1623,7 +1628,7 @@ installed = networktablet-1.5-3-x86_64 installed = nextcloud-34.0.2-1-any installed = nextcloud-app-spreed-1:24.0.3-1-any installed = nextcloud-app-talk_matterbridge-1.33.1026000-1-any -installed = nextcloud-client-2:34.0.1-2-x86_64 +installed = nextcloud-client-2:34.0.1-3-x86_64 installed = nfs-utils-2.9.2-1-x86_64 installed = nfsidmap-2.9.2-1-x86_64 installed = nftables-1:1.1.6-3-x86_64 @@ -1644,19 +1649,19 @@ installed = npm-12.0.2-1-any installed = npth-1.8-1-x86_64 installed = nrg2iso-0.4.1-3-x86_64 installed = nspr-4.40-1-x86_64 -installed = nss-3.126-1-x86_64 +installed = nss-3.127-1-x86_64 installed = nss-mdns-0.15.1-2-x86_64 installed = ntfs-3g-2026.7.7-1-x86_64 installed = ntp-4.2.8.p18-6-x86_64 installed = ntsync-autoload-1-1-any installed = numactl-2.0.19-1-x86_64 -installed = nvidia-container-toolkit-1.19.1-1-x86_64 +installed = nvidia-container-toolkit-1.20.0-1-x86_64 installed = nvidia-open-dkms-610.57.04-1-x86_64 installed = nvidia-settings-610.57.04-1-x86_64 installed = nvidia-utils-610.57.04-1-x86_64 installed = nvm-0.40.5-1-any installed = obconf-qt-0.16.6-1-x86_64 -installed = obs-studio-git-32.1.2.r109.g84b8d16-1-x86_64 +installed = obs-studio-32.2.2-1-x86_64 installed = obs-teleport-debug-0.7.5-1-x86_64 installed = obs-vkcapture-1.5.6-1-x86_64 installed = obs-vkcapture-debug-1.5.3-1-x86_64 @@ -1693,7 +1698,7 @@ installed = opensc-0.27.1-2-x86_64 installed = openscad-2021.01-22-x86_64 installed = openshadinglanguage-1.15.3.0-1-x86_64 installed = opensp-1.5.2-11-x86_64 -installed = openssh-10.4p1-4-x86_64 +installed = openssh-10.5p1-1-x86_64 installed = openssl-3.6.3-1-x86_64 installed = openssl-1.1-1.1.1.w-11-x86_64 installed = opensubdiv-3.7.0-1-x86_64 @@ -1741,7 +1746,7 @@ installed = pcmanfm-qt-2.4.0-1-x86_64 installed = pcre-8.45-5-x86_64 installed = pcre2-10.47-1-x86_64 installed = pcsclite-2.5.1-1-x86_64 -installed = perl-5.42.2-1-x86_64 +installed = perl-5.42.2-2-x86_64 installed = perl-alien-build-2.84-5-any installed = perl-alien-libxml2-0.20-5-any installed = perl-archive-cpio-0.10-12-any @@ -1757,7 +1762,7 @@ installed = perl-crypt-random-seed-0.03-13-any installed = perl-crypt-ssleay-0.73_06-7-x86_64 installed = perl-cryptx-0.091-1-x86_64 installed = perl-data-optlist-0.114-7-any -installed = perl-dbi-1.651-1-x86_64 +installed = perl-dbi-1.652-1-x86_64 installed = perl-digest-hmac-1.05-3-any installed = perl-digest-sha1-2.13-22-x86_64 installed = perl-encode-locale-1.05-15-any @@ -1870,18 +1875,18 @@ installed = popt-1.19-2-x86_64 installed = portaudio-1:19.7.0-4-x86_64 installed = portmidi-1:2.0.8-1-x86_64 installed = portsmf-234-3-x86_64 -installed = postgresql-18.4-3-x86_64 -installed = postgresql-libs-18.4-3-x86_64 +installed = postgresql-18.6-1-x86_64 +installed = postgresql-libs-18.6-1-x86_64 installed = potrace-1.16-5-x86_64 installed = power-profiles-daemon-0.30-1-x86_64 installed = powerdevil-6.7.4-1-x86_64 installed = ppp-2.5.3-1-x86_64 installed = prison-6.28.0-1-x86_64 -installed = procps-ng-4.0.6-3-x86_64 +installed = procps-ng-4.0.7-1-x86_64 installed = projectm-3.1.12-5-x86_64 installed = protobuf-35.1-1-x86_64 installed = protobuf-c-1.5.2-12-x86_64 -installed = proton-ge-custom-bin-1:GE_Proton10_34-1-x86_64 +installed = proton-ge-custom-bin-1:GE_Proton11_5-1-x86_64 installed = protontricks-1.14.1-1-any installed = prrte-3.0.14-1-x86_64 installed = psensor-1.2.1-4-x86_64 @@ -1899,7 +1904,7 @@ installed = pyalpm-0.11.1-1-x86_64 installed = pybind11-3.1.0-1-any installed = pyside6-6.11.1-4-x86_64 installed = pystring-1.2.0-1-x86_64 -installed = python-3.14.6-1-x86_64 +installed = python-3.14.7-1-x86_64 installed = python-aaf2-1.7.1-4-any installed = python-aiohappyeyeballs-2.6.1-4-any installed = python-aiohttp-3.13.5-1-x86_64 @@ -1944,7 +1949,7 @@ installed = python-contourpy-1.3.3-4-x86_64 installed = python-coqpit-config-0.2.0-1-any installed = python-coqui-trainer-0.3.2-1-any installed = python-coverage-7.13.5-1-x86_64 -installed = python-cryptography-49.0.0-1-x86_64 +installed = python-cryptography-50.0.0-1-x86_64 installed = python-cssselect-1.5.0-1-any installed = python-curl-adapter-1.2.1-2-any installed = python-curl_cffi-0.16.0-2-x86_64 @@ -1996,7 +2001,7 @@ installed = python-html5lib-1.1-18-any installed = python-httpcore-1.0.9-3-any installed = python-httpx-0.28.1-7-any installed = python-huggingface-hub-1:1.27.0-1-any -installed = python-hypothesis-6.165.2-1-x86_64 +installed = python-hypothesis-6.165.3-1-x86_64 installed = python-idna-3.18-1-any installed = python-imagesize-2.0.0-1-any installed = python-importlib-metadata-9.0.0-1-any @@ -2022,9 +2027,9 @@ installed = python-lark-parser-1.3.1-2-any installed = python-lazy-loader-0.5-1-any installed = python-legacy-cgi-2.6.4-2-any installed = python-lhafile-0.3.1-2-x86_64 -installed = python-librosa-0.11.0-2-any +installed = python-librosa-1.0.0-1-any installed = python-license-expression-30.4.4-2-any -installed = python-llvmlite-0.48.0-1-x86_64 +installed = python-llvmlite-0.49.0-1-x86_64 installed = python-lockfile-0.12.2-15-any installed = python-lsp-jsonrpc-1.1.2-6-any installed = python-lsp-server-1.15.0-1-any @@ -2051,7 +2056,7 @@ installed = python-narwhals-2.24.0-1-any installed = python-networkx-3.6.1-1-any installed = python-nose-1.3.7-19-any installed = python-num2words-0.5.14-3-any -installed = python-numba-0.66.0-1-x86_64 +installed = python-numba-0.67.0-1-x86_64 installed = python-numpy-2.5.2-1-x86_64 installed = python-opencv-5.0.0-9-x86_64 installed = python-opengl-3.1.10-3-any @@ -2062,7 +2067,7 @@ installed = python-pandas-2.3.3-2-x86_64 installed = python-parso-1:0.8.6-1-any installed = python-pathspec-1.1.1-1-any installed = python-patiencediff-0.2.19-1-x86_64 -installed = python-pbr-7.0.3-3-any +installed = python-pbr-7.1.0-1-any installed = python-peewee-4.0.4-1-x86_64 installed = python-pexpect-4.9.0-7-any installed = python-pillow-12.3.0-1-x86_64 @@ -2131,7 +2136,7 @@ installed = python-scenedetect-0.6.5-1-any installed = python-scikit-learn-1.9.0-2-x86_64 installed = python-scipy-1.18.0-1-x86_64 installed = python-semantic-version-2.10.0-9-any -installed = python-sentry_sdk-2.66.1-1-any +installed = python-sentry_sdk-2.68.0-1-any installed = python-serpent-1.43-1-any installed = python-setproctitle-1.3.7-2-x86_64 installed = python-setuptools-1:84.0.0-1-any @@ -2172,7 +2177,7 @@ installed = python-tinycss2-1.5.1-2-any installed = python-tldextract-5.3.2-1-any installed = python-tokenizers-0.23.1-1-x86_64 installed = python-torchaudio-2.11.0-1-x86_64 -installed = python-torchcodec-0.15.0-3-x86_64 +installed = python-torchcodec-0.16.0-1-x86_64 installed = python-tqdm-4.70.0-1-any installed = python-transformers-5.12.1-1-any installed = python-trio-0.33.0-1-any @@ -2180,16 +2185,16 @@ installed = python-trio-websocket-0.12.2-4-any installed = python-trove-classifiers-2026.6.1.19-1-any installed = python-typeguard-4.6.0-1-any installed = python-typer-0.27.1-1-any -installed = python-typing-inspection-0.4.3-1-any +installed = python-typing-inspection-0.4.4-1-any installed = python-typing_extensions-4.16.0-1-any installed = python-typogrify-2.1.0-2-any installed = python-tzlocal-1:5.4.4-1-any installed = python-uc-micro-py-2.0.0-1-any installed = python-ujson-5.13.0-1-x86_64 installed = python-urllib3-2.7.0-1-any -installed = python-urwid-4.0.8-2-any +installed = python-urwid-4.0.9-1-any installed = python-userpath-1.9.2-4-any -installed = python-uv-build-0.12.3-1-x86_64 +installed = python-uv-build-0.12.5-1-x86_64 installed = python-vcs-versioning-2.2.4-1-any installed = python-vdf-4.0-5-any installed = python-virtualenv-21.7.4-1-any @@ -2198,11 +2203,11 @@ installed = python-webencodings-0.5.1-13-any installed = python-websocket-client-1.9.0-3-any installed = python-websockets-16.1.1-1-x86_64 installed = python-werkzeug-3.1.8-1-any -installed = python-wheel-0.47.0-1-any +installed = python-wheel-0.48.0-1-any installed = python-wsproto-1.3.2-1-any installed = python-wxpython-1:4.2.5-1-x86_64 installed = python-xapp-3.0.3-1-any -installed = python-xlib-0.33-6-any +installed = python-xlib-0.33-7-any installed = python-xmltodict-1.0.4-1-any installed = python-xxhash-3.8.1-1-x86_64 installed = python-yaml-6.0.3-2-x86_64 @@ -2211,92 +2216,91 @@ installed = python-zipp-3.21.0-4-any installed = python-zope-event-6.2-1-any installed = python-zope-interface-8.5-1-x86_64 installed = python-zstandard-0.25.0-3-x86_64 -installed = python310-3.10.19-1-x86_64 -installed = python311-3.11.14-1-x86_64 -installed = qca-qt5-2.3.10-7-x86_64 -installed = qca-qt6-2.3.10-7-x86_64 +installed = python310-3.10.21-1-x86_64 +installed = python311-3.11.16-1-x86_64 +installed = qca-qt5-2.3.10-8-x86_64 +installed = qca-qt6-2.3.10-8-x86_64 installed = qcoro-0.13.0-2-x86_64 installed = qcustomplot-2.1.1-2-x86_64 -installed = qemu-audio-alsa-11.0.3-1-x86_64 -installed = qemu-audio-dbus-11.0.3-1-x86_64 -installed = qemu-audio-jack-11.0.3-1-x86_64 -installed = qemu-audio-oss-11.0.3-1-x86_64 -installed = qemu-audio-pa-11.0.3-1-x86_64 -installed = qemu-audio-pipewire-11.0.3-1-x86_64 -installed = qemu-audio-sdl-11.0.3-1-x86_64 -installed = qemu-audio-spice-11.0.3-1-x86_64 -installed = qemu-base-11.0.3-1-x86_64 -installed = qemu-block-curl-11.0.3-1-x86_64 -installed = qemu-block-dmg-11.0.3-1-x86_64 -installed = qemu-block-gluster-11.0.3-1-x86_64 -installed = qemu-block-iscsi-11.0.3-1-x86_64 -installed = qemu-block-nfs-11.0.3-1-x86_64 -installed = qemu-block-ssh-11.0.3-1-x86_64 -installed = qemu-chardev-baum-11.0.3-1-x86_64 -installed = qemu-chardev-spice-11.0.3-1-x86_64 -installed = qemu-common-11.0.3-1-x86_64 -installed = qemu-desktop-11.0.3-1-x86_64 -installed = qemu-docs-11.0.3-1-x86_64 -installed = qemu-emulators-full-11.0.3-1-x86_64 -installed = qemu-full-11.0.3-1-x86_64 -installed = qemu-hw-display-qxl-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-gl-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-pci-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-pci-gl-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-pci-rutabaga-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-gpu-rutabaga-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-vga-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-vga-gl-11.0.3-1-x86_64 -installed = qemu-hw-display-virtio-vga-rutabaga-11.0.3-1-x86_64 -installed = qemu-hw-s390x-virtio-gpu-ccw-11.0.3-1-x86_64 -installed = qemu-hw-uefi-vars-11.0.3-1-x86_64 -installed = qemu-hw-usb-host-11.0.3-1-x86_64 -installed = qemu-hw-usb-redirect-11.0.3-1-x86_64 -installed = qemu-hw-usb-smartcard-11.0.3-1-x86_64 -installed = qemu-img-11.0.3-1-x86_64 -installed = qemu-pr-helper-11.0.3-1-x86_64 -installed = qemu-system-aarch64-11.0.3-1-x86_64 -installed = qemu-system-alpha-11.0.3-1-x86_64 -installed = qemu-system-alpha-firmware-11.0.3-1-x86_64 -installed = qemu-system-arm-11.0.3-1-x86_64 -installed = qemu-system-arm-firmware-11.0.3-1-x86_64 -installed = qemu-system-avr-11.0.3-1-x86_64 -installed = qemu-system-hppa-11.0.3-1-x86_64 -installed = qemu-system-hppa-firmware-11.0.3-1-x86_64 -installed = qemu-system-loongarch64-11.0.3-1-x86_64 -installed = qemu-system-m68k-11.0.3-1-x86_64 -installed = qemu-system-microblaze-11.0.3-1-x86_64 -installed = qemu-system-microblaze-firmware-11.0.3-1-x86_64 -installed = qemu-system-mips-11.0.3-1-x86_64 -installed = qemu-system-or1k-11.0.3-1-x86_64 -installed = qemu-system-ppc-11.0.3-1-x86_64 -installed = qemu-system-ppc-firmware-11.0.3-1-x86_64 -installed = qemu-system-riscv-11.0.3-1-x86_64 -installed = qemu-system-riscv-firmware-11.0.3-1-x86_64 -installed = qemu-system-rx-11.0.3-1-x86_64 -installed = qemu-system-s390x-11.0.3-1-x86_64 -installed = qemu-system-s390x-firmware-11.0.3-1-x86_64 -installed = qemu-system-sh4-11.0.3-1-x86_64 -installed = qemu-system-sparc-11.0.3-1-x86_64 -installed = qemu-system-sparc-firmware-11.0.3-1-x86_64 -installed = qemu-system-tricore-11.0.3-1-x86_64 -installed = qemu-system-x86-11.0.3-1-x86_64 -installed = qemu-system-x86-firmware-11.0.3-1-x86_64 -installed = qemu-system-xtensa-11.0.3-1-x86_64 -installed = qemu-tests-11.0.3-1-x86_64 -installed = qemu-tools-11.0.3-1-x86_64 -installed = qemu-ui-curses-11.0.3-1-x86_64 -installed = qemu-ui-dbus-11.0.3-1-x86_64 -installed = qemu-ui-egl-headless-11.0.3-1-x86_64 -installed = qemu-ui-gtk-11.0.3-1-x86_64 -installed = qemu-ui-opengl-11.0.3-1-x86_64 -installed = qemu-ui-sdl-11.0.3-1-x86_64 -installed = qemu-ui-spice-app-11.0.3-1-x86_64 -installed = qemu-ui-spice-core-11.0.3-1-x86_64 -installed = qemu-user-11.0.3-1-x86_64 -installed = qemu-vhost-user-gpu-11.0.3-1-x86_64 -installed = qemu-vmsr-helper-11.0.3-1-x86_64 +installed = qemu-audio-alsa-11.1.0-1-x86_64 +installed = qemu-audio-dbus-11.1.0-1-x86_64 +installed = qemu-audio-jack-11.1.0-1-x86_64 +installed = qemu-audio-oss-11.1.0-1-x86_64 +installed = qemu-audio-pa-11.1.0-1-x86_64 +installed = qemu-audio-pipewire-11.1.0-1-x86_64 +installed = qemu-audio-sdl-11.1.0-1-x86_64 +installed = qemu-audio-spice-11.1.0-1-x86_64 +installed = qemu-base-11.1.0-1-x86_64 +installed = qemu-block-curl-11.1.0-1-x86_64 +installed = qemu-block-dmg-11.1.0-1-x86_64 +installed = qemu-block-iscsi-11.1.0-1-x86_64 +installed = qemu-block-nfs-11.1.0-1-x86_64 +installed = qemu-block-ssh-11.1.0-1-x86_64 +installed = qemu-chardev-baum-11.1.0-1-x86_64 +installed = qemu-chardev-spice-11.1.0-1-x86_64 +installed = qemu-common-11.1.0-1-x86_64 +installed = qemu-desktop-11.1.0-1-x86_64 +installed = qemu-docs-11.1.0-1-x86_64 +installed = qemu-emulators-full-11.1.0-1-x86_64 +installed = qemu-full-11.1.0-1-x86_64 +installed = qemu-hw-display-qxl-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-gl-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-pci-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-pci-gl-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-pci-rutabaga-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-gpu-rutabaga-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-vga-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-vga-gl-11.1.0-1-x86_64 +installed = qemu-hw-display-virtio-vga-rutabaga-11.1.0-1-x86_64 +installed = qemu-hw-s390x-virtio-gpu-ccw-11.1.0-1-x86_64 +installed = qemu-hw-uefi-vars-11.1.0-1-x86_64 +installed = qemu-hw-usb-host-11.1.0-1-x86_64 +installed = qemu-hw-usb-redirect-11.1.0-1-x86_64 +installed = qemu-hw-usb-smartcard-11.1.0-1-x86_64 +installed = qemu-img-11.1.0-1-x86_64 +installed = qemu-pr-helper-11.1.0-1-x86_64 +installed = qemu-system-aarch64-11.1.0-1-x86_64 +installed = qemu-system-alpha-11.1.0-1-x86_64 +installed = qemu-system-alpha-firmware-11.1.0-1-x86_64 +installed = qemu-system-arm-11.1.0-1-x86_64 +installed = qemu-system-arm-firmware-11.1.0-1-x86_64 +installed = qemu-system-avr-11.1.0-1-x86_64 +installed = qemu-system-hppa-11.1.0-1-x86_64 +installed = qemu-system-hppa-firmware-11.1.0-1-x86_64 +installed = qemu-system-loongarch64-11.1.0-1-x86_64 +installed = qemu-system-m68k-11.1.0-1-x86_64 +installed = qemu-system-microblaze-11.1.0-1-x86_64 +installed = qemu-system-microblaze-firmware-11.1.0-1-x86_64 +installed = qemu-system-mips-11.1.0-1-x86_64 +installed = qemu-system-or1k-11.1.0-1-x86_64 +installed = qemu-system-ppc-11.1.0-1-x86_64 +installed = qemu-system-ppc-firmware-11.1.0-1-x86_64 +installed = qemu-system-riscv-11.1.0-1-x86_64 +installed = qemu-system-riscv-firmware-11.1.0-1-x86_64 +installed = qemu-system-rx-11.1.0-1-x86_64 +installed = qemu-system-s390x-11.1.0-1-x86_64 +installed = qemu-system-s390x-firmware-11.1.0-1-x86_64 +installed = qemu-system-sh4-11.1.0-1-x86_64 +installed = qemu-system-sparc-11.1.0-1-x86_64 +installed = qemu-system-sparc-firmware-11.1.0-1-x86_64 +installed = qemu-system-tricore-11.1.0-1-x86_64 +installed = qemu-system-x86-11.1.0-1-x86_64 +installed = qemu-system-x86-firmware-11.1.0-1-x86_64 +installed = qemu-system-xtensa-11.1.0-1-x86_64 +installed = qemu-tests-11.1.0-1-x86_64 +installed = qemu-tools-11.1.0-1-x86_64 +installed = qemu-ui-curses-11.1.0-1-x86_64 +installed = qemu-ui-dbus-11.1.0-1-x86_64 +installed = qemu-ui-egl-headless-11.1.0-1-x86_64 +installed = qemu-ui-gtk-11.1.0-1-x86_64 +installed = qemu-ui-opengl-11.1.0-1-x86_64 +installed = qemu-ui-sdl-11.1.0-1-x86_64 +installed = qemu-ui-spice-app-11.1.0-1-x86_64 +installed = qemu-ui-spice-core-11.1.0-1-x86_64 +installed = qemu-user-11.1.0-1-x86_64 +installed = qemu-vhost-user-gpu-11.1.0-1-x86_64 +installed = qemu-vmsr-helper-11.1.0-1-x86_64 installed = qgpgme-2.2.0-1-x86_64 installed = qhexedit2-0.8.9-2-x86_64 installed = qhull-2020.2-5-x86_64 @@ -2388,8 +2392,8 @@ installed = rmapi-0.0.34-2-x86_64 installed = rnnoise-1:0.2-1-x86_64 installed = robin-map-1.4.1-1-x86_64 installed = rpcbind-1.2.9-1-x86_64 -installed = rpi-imager-2.0.9-1-x86_64 -installed = rsync-3.4.4-1-x86_64 +installed = rpi-imager-2.0.11-2-x86_64 +installed = rsync-3.5.0-1-x86_64 installed = rtkit-0.14-1-x86_64 installed = rtmpdump-1:2.6-2-x86_64 installed = rubberband-4.0.0-2-x86_64 @@ -2447,7 +2451,7 @@ installed = rygel-1:45.2-1-x86_64 installed = s-tui-1.4.0-1-any installed = s2n-tls-1.7.2-1-x86_64 installed = safecopy-1.7-1-x86_64 -installed = samba-2:4.24.5-1-x86_64 +installed = samba-2:4.24.6-1-x86_64 installed = sane-1.4.0-4-x86_64 installed = sassc-3.6.2-5-x86_64 installed = sbc-2.2-1-x86_64 @@ -2478,24 +2482,24 @@ installed = sed-4.10-2-x86_64 installed = semver-7.8.5-1-any installed = serd-0.32.10-1-x86_64 installed = serf-1.3.10-2-x86_64 -installed = sg3_utils-1.48-1-x86_64 +installed = sg3_utils-1.49-1-x86_64 installed = sgml-common-0.6.3-9-any installed = shaderc-2026.3-1-x86_64 installed = shadow-4.20.0.arch1-1-x86_64 installed = shared-mime-info-2.5.1-2-x86_64 -installed = shelly-3.0.1+1-2-x86_64 +installed = shelly-3.0.6-1-x86_64 installed = shiboken6-6.11.1-4-x86_64 installed = signon-kwallet-extension-26.04.3-1-x86_64 installed = signon-plugin-oauth2-0.25-4-x86_64 installed = signon-ui-0.17+20231016-4-x86_64 installed = signond-8.61-4-x86_64 installed = simde-0.8.2-1-any -installed = simdjson-1:4.6.6-1-x86_64 +installed = simdjson-1:4.6.7-1-x86_64 installed = simple-scan-50.0-1-x86_64 installed = sip4-4.19.25-7-x86_64 installed = slang-2.3.3-4-x86_64 installed = smartmontools-7.5-1-x86_64 -installed = smbclient-2:4.24.5-1-x86_64 +installed = smbclient-2:4.24.6-1-x86_64 installed = snapd-glib-1.72-1-x86_64 installed = snapd-glib-debug-1.70-1-x86_64 installed = snappy-1.2.2-3-x86_64 @@ -2541,7 +2545,7 @@ installed = strip-nondeterminism-1.15.1-1-any installed = subversion-1.14.5-5-x86_64 installed = sudo-1.9.17.p2-6-x86_64 installed = suil-0.10.26-1-x86_64 -installed = suitesparse-7.13.0-1-x86_64 +installed = suitesparse-7.14.0-1-x86_64 installed = supertuxkart-1.5-1-x86_64 installed = sushi-50.0-1-x86_64 installed = svt-av1-4.2.0-1-x86_64 @@ -2750,7 +2754,7 @@ installed = tde-twin-style-suse2-14.1.6-1-x86_64 installed = tde-universal-indent-gui-tqt-14.1.6-1-x86_64 installed = tde-xdg-desktop-portal-tde-14.1.6-1-x86_64 installed = tde-yakuake-14.1.6-1-x86_64 -installed = teams-for-linux-2.13.0-1-x86_64 +installed = teams-for-linux-2.15.0-1-x86_64 installed = tecla-50.0-1-x86_64 installed = terminator-2.1.5-2-any installed = terminus-font-4.49.1-8-any @@ -2799,7 +2803,7 @@ installed = tor-0.4.9.11-1-x86_64 installed = torsocks-2.5.0-1-x86_64 installed = totem-43.2-5-x86_64 installed = totem-pl-parser-3.26.7-1-x86_64 -installed = tpm2-tss-4.1.3-1-x86_64 +installed = tpm2-tss-4.2.0-2-x86_64 installed = transmission-gtk-4.1.3-2-x86_64 installed = tree-2.3.2-1-x86_64 installed = tslib-1.24-1-x86_64 @@ -2816,7 +2820,7 @@ installed = ttf-ubuntu-font-family-1:0.83-2-any installed = tumbler-4.20.2-1-x86_64 installed = twolame-0.4.0-4-x86_64 installed = tzdata-2026c-1-x86_64 -installed = uartscope-1.0.0.r4.g72a2b7e-1-x86_64 +installed = uartscope-1.0.0.r5.g1422efd-1-x86_64 installed = uchardet-0.0.8-4-x86_64 installed = udisks2-2.11.2-1-x86_64 installed = unifdef-2.12-4-x86_64 @@ -2834,11 +2838,11 @@ installed = usd-26.05-4-x86_64 installed = uthash-2.3.0-3-any installed = util-linux-2.42.2-1-x86_64 installed = util-linux-libs-2.42.2-1-x86_64 -installed = uv-0.12.3-1-x86_64 +installed = uv-0.12.5-1-x86_64 installed = v4l-utils-1.32.0-2-x86_64 installed = v4l2loopback-dkms-0.15.4-2-any -installed = vala-0.56.19-1-x86_64 -installed = valgrind-3.25.1-7-x86_64 +installed = vala-0.56.19-2-x86_64 +installed = valgrind-3.25.1-9-x86_64 installed = vamp-plugin-sdk-1:2.10-1-x86_64 installed = vapoursynth-77-2-x86_64 installed = vde2-2.3.3-9-x86_64 @@ -2856,9 +2860,9 @@ installed = virtiofsd-1.14.0-1-x86_64 installed = virtualbox-7.2.14-1-x86_64 installed = virtualbox-guest-iso-7.2.14-1-any installed = virtualbox-host-dkms-7.2.14-1-x86_64 -installed = virtualgl-3.1.4-1-x86_64 -installed = visual-studio-code-bin-1.131.0-1-x86_64 -installed = vivaldi-8.1.4087.62-1-x86_64 +installed = virtualgl-3.1.5-1-x86_64 +installed = visual-studio-code-bin-1.133.0-1-x86_64 +installed = vivaldi-8.1.4087.66-1-x86_64 installed = vivaldi-ffmpeg-codecs-150.0.7871.120-1-x86_64 installed = vlc-3.0.23_2-10-x86_64 installed = vlc-cli-3.0.23_2-10-x86_64 @@ -2927,7 +2931,7 @@ installed = wireplumber-0.5.15-1-x86_64 installed = wmctrl-1.07-6-x86_64 installed = woff2-1.0.2-6-x86_64 installed = wolfssl-5.9.2-1-x86_64 -installed = wpa_supplicant-2:2.11-5-x86_64 +installed = wpa_supplicant-2:2.12-1-x86_64 installed = wps-office-all-dicts-win-languages-11.1.0.11704-0-any installed = wps-office-bin-12.1.2.22571-1-x86_64 installed = wps-office-mui-de-de-11.1.0.11704-1-any @@ -2937,7 +2941,7 @@ installed = wxwidgets-common-3.2.11-2-x86_64 installed = wxwidgets-gtk3-3.2.11-2-x86_64 installed = x264-3:0.165.r3222.b35605a-2-x86_64 installed = x265-4.3-1-x86_64 -installed = xapian-core-1:2.0.0-2-x86_64 +installed = xapian-core-1:2.1.0-1-x86_64 installed = xapp-3.2.2-1-x86_64 installed = xapp-symbolic-icons-1.1.0-1-any installed = xawtv-3.107-3-x86_64 @@ -2952,7 +2956,7 @@ installed = xcb-util-keysyms-0.4.1-5-x86_64 installed = xcb-util-renderutil-0.3.10-2-x86_64 installed = xcb-util-wm-0.4.2-2-x86_64 installed = xcb-util-xrm-1.3-4-x86_64 -installed = xdg-dbus-proxy-0.1.7-1-x86_64 +installed = xdg-dbus-proxy-0.1.8-1-x86_64 installed = xdg-desktop-portal-1.22.1-2-x86_64 installed = xdg-desktop-portal-gnome-50.0-1-x86_64 installed = xdg-desktop-portal-gtk-1.15.3-1-x86_64 @@ -3017,7 +3021,7 @@ installed = yakuake-26.04.3-1-x86_64 installed = yaml-cpp-0.9.0-1-x86_64 installed = yarn-1.22.22-2-any installed = yasm-1.3.0-9-x86_64 -installed = yay-git-13.0.1.r35.g2d52ad47-1-x86_64 +installed = yay-git-13.0.1.r37.g328f4b49-1-x86_64 installed = yaz-5.37.3-1-x86_64 installed = yelp-49.2-1-x86_64 installed = yelp-tools-42.1-2-any @@ -3033,7 +3037,7 @@ installed = zeromq-4.3.5-3-x86_64 installed = zig-0.16.0-1-x86_64 installed = zimg-3.0.6-2-x86_64 installed = zint-2.16.0-2-x86_64 -installed = zip-3.0-13-x86_64 +installed = zip-3.0-14-x86_64 installed = zita-convolver-4.0.3-5-x86_64 installed = zix-0.8.2-1-x86_64 installed = zlib-1:1.3.2-3-x86_64 diff --git a/uartscope-git/pkg/uartscope/.MTREE b/uartscope-git/pkg/uartscope/.MTREE index 4c46c3a6729c74b41ab6b0ec0c7131415c60060d..cf84c22b15efa6ac017327c4c61f6ac303dac660 100644 GIT binary patch literal 462 zcmV;<0Wtm`iwFP!000001Eo^SjuSx)yyq)M;+|=D+wS%u7lc475OCoG+^_72JVu#` z1bjW6>>@}MU|A0BmaMYNf%YOOt z)7`sQckf?+=;mQtR^Wp-hRD06>89aZ%UJLZy6IjmaURxXnpcHWbduCl#zY1Pvq(sp zYlC8mDyW$_B(9p32uP|1wa(cTIq`}3!fO=iwIb)tF~k zuj9BGlFq|^H$A83r_yCE)8~0V-stk7`1at8PJ?c401VE>Jxp1^)-@4t#q8-3o)7ae}_V%)9& z>H~Si>kE{e$r~viU62ZlqAh0yy>CV+NQfG0G7^lnp;phC)rV{ng7>=k4xws1tZoDV E0I+N3CjbBd literal 468 zcmV;_0W1C=iwFP!000001Eo{RjubHrz0X&a#Jwwv?Zk(^AOsqLfD0esBu-C>UP@in z67cn;dj>(Fh8c!Kr6R}nd(X>@-F#HN=_j4L`Rl0bI&8H&4P|Y*&E?!3imnOZX4S7= ze!6}4>h}HX58XWMbZtW+a8|K{wqN}TKA=W{}p_$=<_%)GW^nu zald)A4;TRAvJ>1E6oX+6;3HQ{z|w4OX+mg?5X&)1TO-5KI2UUTR7l#KnhZ7sx%m!9 K2oCse1ONb{v*UyS diff --git a/uartscope-git/pkg/uartscope/.PKGINFO b/uartscope-git/pkg/uartscope/.PKGINFO index 417c629..552012e 100644 --- a/uartscope-git/pkg/uartscope/.PKGINFO +++ b/uartscope-git/pkg/uartscope/.PKGINFO @@ -3,12 +3,12 @@ pkgname = uartscope pkgbase = uartscope xdata = pkgtype=pkg -pkgver = 1.0.0.r5.g1422efd-1 +pkgver = 1.0.0.r6.ga942f83-1 pkgdesc = Qt6-based UART serial monitor with tag monitoring, table view and auto-reconnect url = https://git.projekt-hirnfrei.de/diabolus/uartscope -builddate = 1786450603 +builddate = 1787005573 packager = Unknown Packager -size = 397937 +size = 406129 arch = x86_64 license = MIT conflict = uartscope diff --git a/uartscope-git/pkg/uartscope/usr/bin/uartscope b/uartscope-git/pkg/uartscope/usr/bin/uartscope index 13c160d4b260114c4ad0b44b215d76e93db63fa8..d4383c6e9f5582603a0363db8794c09ef0ae79c7 100755 GIT binary patch delta 130861 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 VdrPM3$%$Zhi#_QybLcl&` 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 diff --git a/uartscope-git/src/uartscope b/uartscope-git/src/uartscope index 1422efd..a942f83 160000 --- a/uartscope-git/src/uartscope +++ b/uartscope-git/src/uartscope @@ -1 +1 @@ -Subproject commit 1422efdc2f14d71edf3c7accec15966f5aa81c07 +Subproject commit a942f8385b8b05f5ec9a097ebbb3ba61ad0690f6 diff --git a/uartscope-git/uartscope/FETCH_HEAD b/uartscope-git/uartscope/FETCH_HEAD index d7f4b72..2587804 100644 --- a/uartscope-git/uartscope/FETCH_HEAD +++ b/uartscope-git/uartscope/FETCH_HEAD @@ -1,2 +1,2 @@ -1422efdc2f14d71edf3c7accec15966f5aa81c07 not-for-merge branch 'main' of https://git.projekt-hirnfrei.de/diabolus/uartscope +a942f8385b8b05f5ec9a097ebbb3ba61ad0690f6 not-for-merge branch 'main' of https://git.projekt-hirnfrei.de/diabolus/uartscope cc102c93eb17f7b910d8e74c3505f198bed77f10 not-for-merge tag 'v1.0.0' of https://git.projekt-hirnfrei.de/diabolus/uartscope