-
DinoX v2.3.0
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 55sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 48m8sBuild / Build AppImage (push) Successful in 1h11m12sBuild / Build Flatpak (push) Successful in 41m13sreleased this
2026-08-26 20:43:41 +02:00 | 40 commits to master since this releaseDinoX v2.3.0
Modern XMPP client with extended features.
What's New
Highlights
- Reliable calls across devices and reconnects: One-to-one Google/libwebrtc calls now implement the current XEP-0353 signalling lifecycle, including ringing, final call state, simultaneous-call tie-breaking, active-device migration and passive reconstruction from Carbons and MAM. Archived signalling never starts media or rings again, and private-room MUJI calls remain on their separate lifecycle.
- Room avatars before joining: Bookmarked rooms can obtain and verify their XEP-0486 avatar before the first join without delaying room lists or starting unbounded network work.
Added
- Room avatars before joining: Bookmarked rooms can obtain their XEP-0486 avatar from
muc#roominfo_avatarhashand the room vCard before the first join. Image bytes are accepted only when their SHA-1 hash was advertised by the room. Status code 104 refreshes changed or removed avatars after joining. - Complete XEP-0353 0.8.0 signalling: One-to-one Google/libwebrtc calls support
ringingandfinishalongside the existing proposal actions, including final reasons, migration metadata and the required message-storage hints. Malformed or conflicting events are rejected while known legacy wire variants remain accepted for interoperability.
Changed
- Bounded room-avatar discovery: Pre-join discovery runs one room at a time after a short low-priority delay, deduplicates account/room work, caps server-provided representations, and fences disconnects and superseded results. Bounded batches refill from the authoritative bookmark set instead of dropping rooms above the active queue limit, and reconnects discard freshness state from the previous stream. Image decoding, hashing and encrypted cache I/O stay off the UI thread; conference and member lists continue to read only from the local avatar cache.
- Room-avatar interoperability: Live ejabberd and Gajim tests cover discovery before joining, joined-room refreshes, publication and removal. The smoke test showed no visible UI stalls; it was not a large-room timing benchmark.
- Persistent multi-device call state: Call ownership is scoped by account, peer and session ID, survives restarts, and expires bounded recovered proposals. MAM and Carbon replay is ordered, deduplicated and passive; another own device accepting or ending a call settles the local state without allocating a media worker. The production call engine remains Google/libwebrtc, with RTP disabled.
Fixed
- Attachment actions after transfer completion: File, image and video rows retain their exact backing message across restart and archive replay. Reply, reaction and delete actions update as soon as the message identifiers become available instead of remaining unavailable or targeting transport metadata.
- Visible attachment controls on Windows: Disabled symbolic message-action icons remain visible in compact attachment toolbars, while their unavailable state is still clearly dimmed.
- Inline MP4 playback startup: Preview generation and playback use separate generation ownership, bounded startup timeouts and deterministic temporary-file cleanup. Starting playback while a thumbnail is still being prepared no longer leaves a stale pipeline, and Windows packages now verify the complete MP4/H.264/AAC playback runtime.
- Contact conversation selection: Opening the contact chooser no longer treats the first visible contact as an implicit selection. The start button becomes available only after an explicit selection, avoiding a disabled button for a row that merely appeared selected.
- Legacy GTK file drops on X11: DinoX removes only GTK's conflicting private root-window drop controller on affected native X11 versions. The application COPY target, portal drops, Wayland and Windows behavior remain unchanged.
Known issues
- Repeated file drops on X11: The open GTK issue #3755 can log a
gdk_drop_set_actionscritical from the second file drop onwards. File sending continues normally and DinoX release launchers do not make GLib criticals fatal. Wayland and Windows are not affected by this X11-specific GTK bug; developer runs that explicitly enable fatal criticals can terminate on the assertion.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.3.0_*.deb.sha256 sudo apt install ./dinox_2.3.0_*.debAppImage
sha256sum -c DinoX-2.3.0-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.3.0-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.3.0-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.3.0.tar.gz cd dinox-2.3.0 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dgoogle-libwebrtc-tests=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
DinoX v2.2.9
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 55sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 44m48sBuild / Build AppImage (push) Successful in 1h5m10sBuild / Build Flatpak (push) Successful in 37m13sreleased this
2026-08-25 05:14:44 +02:00 | 55 commits to master since this releaseDinoX v2.2.9
Modern XMPP client with extended features.
What's New
Added
- Read-state synchronisation between devices: An optional XEP-0490 setting synchronises the latest displayed position through the account server for one-to-one chats, group chats, and private MUC messages. This remains separate from contact-visible read receipts, uses server assistance only when advertised, and otherwise falls back to regular private PEP storage.
- Private-room read receipts: Read receipts can now be configured per private room. Sent messages show how many verified room participants have read them without folding different readers into one room-wide state.
Changed
- Stable displayed-marker references: XEP-0333 markers use sender stanza IDs for one-to-one chats and MUC private messages, and room-assigned XEP-0359 IDs for group-chat messages. Read pointers move forward only. Early one-to-one and MUC-private markers are applied after the matching live or archived message appears, while unknown group-chat targets are rejected.
- Bounded avatar loading: Avatar cache reads run outside the GTK main thread, duplicate requests share one load, and memory use is bounded. Large rooms fetch participant avatars on demand with bounded prefetching instead of starting an unbounded burst.
Fixed
- Account avatar publication: The independent XEP-0084 and vCard/XEP-0153 publication paths are coordinated across initial connection and reconnect, including directed room presence. Transient vCard fetch failures no longer overwrite the stored avatar, and interrupted or superseded publication attempts cannot restore stale state.
- Avatar state isolation: Avatar assignments, source priorities, waiters, observers, and room occupants remain scoped to the exact account and JID, while validated image bytes are deduplicated by content hash. Live room updates cannot be replaced by an older membership snapshot. Explicit removals clear the mapped avatar, while invalid metadata is ignored without changing verified state.
- Delivery and read indicators: Receipts continue to match when a server rewrites an outer stanza ID, when a receipt arrives before its message, or when a MUC echo supplies the authoritative room ID.
- Private-room encryption startup: Incoming encrypted messages now wait for an already-running room-information query before applying the conversation encryption policy, instead of being discarded while a newly opened private room still temporarily reports no encryption.
- Read-receipt privacy and lifecycle: Delivery and displayed responses are limited to eligible, unblocked contacts or current room occupants. Malformed, ambiguous, cross-account, and wrong-room references are rejected; reconnects fence stale operations, and remote read-state updates no longer clear unrelated notifications.
- Persistent read pointers: Message and content-item read positions are stored together and reconciled when an attachment item arrives after its message, avoiding read-state regressions after restart or history catch-up.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.9_*.deb.sha256 sudo apt install ./dinox_2.2.9_*.debAppImage
sha256sum -c DinoX-2.2.9-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.9-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.9-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.9.tar.gz cd dinox-2.2.9 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dgoogle-libwebrtc-tests=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
5 downloads
-
DinoX v2.2.8
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 47sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 43m38sBuild / Build AppImage (push) Successful in 1h5m34sBuild / Build Flatpak (push) Successful in 15m17sreleased this
2026-08-23 15:39:15 +02:00 | 62 commits to master since this releaseDinoX v2.2.8
Modern XMPP client with extended features.
What's New
Added
- Private-room audio and video group calls: Joined private rooms can start and receive standards-based MUJI calls, add eligible participants from an active call, and keep one shared call alive as individual peers join or leave.
- Manual provider-directory refresh: Account creation still opens immediately with the bundled offline provider snapshot. A refresh action can explicitly download, validate, cache, and display the newest directory without making dialog startup depend on the network; failures leave the usable bundled or cached list intact.
- Manual version check: The application menu can check for a newer DinoX release on demand. It understands complete semantic versions across future major releases, reports when no update exists, and offers a release link only when a newer version is available; no automatic check or redirect occurs.
Changed
- Shared Google/libwebrtc call worker: Existing one-to-one and private-room calls reuse one lazily created external media worker. Each MUJI participant adds only a peer connection, while group video uses one worker-owned capture and optional effect pipeline for all peer sessions, with exact full-JID ownership and bounded publisher handover instead of opening one worker or camera path per participant.
- Google/libwebrtc ABI 38 / IPC 8 / video ring 6: Linux and Windows packages now use immutable, content-addressed ABI 38 runtimes carrying local-source frame diagnostics, five independent bounded frame slots, and the shared-pipeline fan-out capability required by group video. Older ABI 37 assets remain available for reproducible builds of previous source tags.
- Strict package validation: Production package builds no longer include WebRTC smoke-only sources, while dedicated strict test builds still compile and run the complete Linux and Windows smoke suites. This removes false unused-method release failures without weakening warning gates.
Fixed
- Interoperable group-call signaling: XEP-0272 ready presences use the standard MUJI content namespace and required content creator, preserve the room's selected conference content names on every associated Jingle leg, and keep those wire identities separate from libwebrtc's internal SDP MIDs; XEP-0482 groupchat actions use only the room-assigned XEP-0359 stanza ID, wait for the authoritative MUC echo when necessary, reject ambiguous duplicate IDs, and scope accept, reject, retract, and left actions to the exact account, room, target, and resource.
- Group-call lifecycle races: Bounded preparing waits, private-room ownership checks, transactional Direct-to-MUJI rollback, exact peer teardown, cached-membership fencing, and standard MUJI facet removal prevent duplicate calls, stale joins, accidental room destruction, and terminal actions leaking to unrelated invitees.
- Private-room call controls: The title-bar audio/video control now recognizes the Google/libwebrtc plugin's separate direct-call and MUJI engine facets, so eligible joined private rooms expose their call actions instead of incorrectly reporting that no group-call engine is available.
- One-to-one call isolation: Private-room orchestration keeps direct JMI/Jingle content names, payload mapping, media controls, worker ownership and teardown behavior isolated, with dedicated regression coverage for concurrent direct and group calls.
- File-send target ownership: File-selection callbacks and completed voice or video recordings remain bound to the conversation in which they started, preventing a later conversation switch or overlapping asynchronous action from sending to the wrong contact or dereferencing stale UI state.
- Malformed HTTP upload servers: XEP-0363 slot URLs and received HTTP URLs are validated as usable HTTP(S) network addresses before libsoup message construction. Invalid or incomplete server responses now fail as a transfer error instead of reaching a crash-prone path, while concurrent HTTP and Jingle transfers keep independent cancellation state.
- Room-wide history deletion: Normal and private group-chat clear-history dialogs now offer separate local and global actions. Global deletion retracts each eligible own message with XEP-0424 while received or non-retractable items are removed only locally; the confirmation text no longer repeats the same irreversible-action warning.
- Linux accessibility-bus diagnostics: Debian and AppImage launchers now test whether the advertised AT-SPI bus actually responds instead of trusting a stale socket, preserve a healthy accessibility bridge, and constrain optional per-user repair to the exact accessibility processes.
- Reproducible AppImage source staging: Corresponding sources are fetched directly from the configured pinned Ubuntu snapshot, avoiding obsolete archive-pool URLs while retaining exact source-version and checksum validation.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.8_*.deb.sha256 sudo apt install ./dinox_2.2.8_*.debAppImage
sha256sum -c DinoX-2.2.8-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.8-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.8-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.8.tar.gz cd dinox-2.2.8 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dgoogle-libwebrtc-tests=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads
-
DinoX v2.2.7
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 4m55sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 1h9m8sBuild / Build AppImage (push) Successful in 1h34m50sBuild / Build Flatpak (push) Successful in 22m55sreleased this
2026-08-20 20:42:18 +02:00 | 88 commits to master since this releaseDinoX v2.2.7
Modern XMPP client with extended features.
What's New
Added
- Warm-tone video-call effect: One-to-one video calls now offer an optional Warm tone camera effect alongside Grayscale. Effects remain off by default, are selected per call, and share the existing bounded worker-isolated processing path.
- Per-room member status messages: Routine MUC role and affiliation messages are now hidden by default and can be enabled separately for each room. Kicks, bans, membership removals, room destruction, and their reasons remain visible regardless of this setting.
- Reply-aware deletion: The delete dialog can optionally include all currently known direct replies in full. DinoX validates the complete selection before deletion and reports complete, partial, or failed results explicitly.
Changed
- Verified OMEMO recipients in private rooms: DinoX now derives encrypted-room recipients only from a complete, current server-backed member, administrator, and owner snapshot. Every other member's OMEMO device readiness is verified before message input or queued encrypted messages are released. The check is restarted after joins, room reconfiguration, or membership changes, and a previously unsupported member is rechecked when devices become available.
- Cross-platform attachment input: Copied files, clipboard images, Unicode Windows filenames, and drag-and-drop attachments now use one conversation-scoped send flow. Flatpak prefers FileTransfer portal grants, while native Linux and Windows use the stable GTK file-drop path; plain text still goes to the message composer.
- Pinned and measured video-effect runtimes: Packaged Linux and Windows builds now use the immutable Google/libwebrtc ABI 37 / IPC 7 runtime required by Warm tone. Deterministic Direct, Off, Grayscale, and Warm tone baselines cover frame delivery, CPU, memory, watchdog, and bounded-buffer behavior.
Fixed
- Authoritative private-room membership state: Concurrent member, administrator, and owner queries are coalesced, stale or partial results cannot replace current state, and explicit refreshes supersede older join work. This prevents duplicate retries, stale recipient lists, and premature resend of encrypted MUC messages.
- Moderated-room input permissions: Asynchronous encryption checks no longer override visitor or muted-member restrictions or reopen the composer before both room permissions and encryption readiness are current.
- MUC avatars without an existing vCard: Room owners can set, replace, or remove an avatar even when the server reports that no room vCard exists yet.
- MUC stable message identifiers: DinoX recognizes the standardized stable-stanza-ID feature in room discovery and retains authoritative room IDs from live echoes, improving cross-client reply and retraction targeting.
- Reply identity across senders and corrections: Sender-scoped reply resolution prevents colliding stanza IDs from linking to another participant's message. Corrected replies keep their explicit parent, and group-chat replies retain the correct room-assigned target ID.
- Complete deletion of edited own messages: Deleting for everyone now retracts every known physical revision of an edited message in one-to-one chats and MUCs. Incomplete or ambiguous correction chains fail closed instead of leaving older revisions visible.
- Unambiguous message actions: Hovering an embedded quote no longer exposes actions for the surrounding reply row. The action toolbar and destructive confirmation identify the actual sender and message preview, preventing accidental deletion of a reply instead of the intended message.
- Message editing and widget focus: Focus is cleared before corrected or deleted message widgets are replaced, preventing the
gtk_widget_is_ancestorcritical and the associated crash. - Clipboard-image sending and cleanup: Pasted images use an explicit private plaintext lease instead of being mistaken for encrypted DinoX-managed storage, fixing the checksum failure reported in issue #33 and ensuring temporary data is removed after cancellation or sending.
- File-send dialog behavior: Available direct-transfer and server-upload choices appear progressively without resetting the user's selection, unreadable Flatpak drops offer an explicit reselection path, and image previews remain within the dialog's breakpoint dimensions.
- Dismissible non-anonymous-room warning: The real-JID visibility warning can be closed for the current join and is shown again after leaving and rejoining or when the room's visibility state changes.
- Portable Windows icons: OMEMO and OpenPGP trust states, group-call status, sticker actions, join-room branding, and other symbolic actions now use icons included in the Windows distribution instead of missing-image placeholders.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.7_*.deb.sha256 sudo apt install ./dinox_2.2.7_*.debAppImage
sha256sum -c DinoX-2.2.7-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.7-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.7-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.7.tar.gz cd dinox-2.2.7 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads
-
DinoX v2.2.6
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 52sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 46m10sBuild / Build AppImage (push) Successful in 1h7m33sBuild / Build Flatpak (push) Successful in 15m37sreleased this
2026-08-10 09:54:38 +02:00 | 111 commits to master since this releaseDinoX v2.2.6
Modern XMPP client with extended features.
What's New
Fixed
- Unicode-safe local bot integrations: Botmother API responses, bot message and update JSON, AI-provider requests, Telegram payloads, ejabberd requests, and related error text now preserve Cyrillic, umlauts, CJK, and emoji. Invalid UTF-8 is sanitized, and text limits no longer split multibyte characters.
- Bot API JSON input hardening: Requests containing raw or decoded NUL characters are rejected before persistence, while a literal
\\u0000string remains valid. - OpenPGP VKS Unicode requests: keys.openpgp.org upload and verification JSON now preserves non-ASCII key text, verification data, and internationalized addresses while retaining RFC 8259 escaping.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.6_*.deb.sha256 sudo apt install ./dinox_2.2.6_*.debAppImage
sha256sum -c DinoX-2.2.6-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.6-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.6-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.6.tar.gz cd dinox-2.2.6 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
22 downloads
-
DinoX v2.2.5
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 58sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 47m36sBuild / Build AppImage (push) Successful in 1h17m33sBuild / Build Flatpak (push) Successful in 16m30sreleased this
2026-08-10 02:45:53 +02:00 | 115 commits to master since this releaseDinoX v2.2.5
Modern XMPP client with extended features.
What's New
Fixed
- Windows Unicode paths: Portable builds now run reliably from profiles and install paths containing Cyrillic and other non-ASCII characters. The mandatory distribution checker covers translations, TLS certificates, encrypted backup and restore, Tor, OpenSSL, and deferred reset/wipe operations under Unicode paths.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.5_*.deb.sha256 sudo apt install ./dinox_2.2.5_*.debAppImage
sha256sum -c DinoX-2.2.5-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.5-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.5-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.5.tar.gz cd dinox-2.2.5 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
15 downloads
-
Source code (TAR.GZ)
4 downloads
-
DinoX v2.2.4
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 3m30sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 44m17sBuild / Build AppImage (push) Successful in 1h6m53sBuild / Build Flatpak (push) Successful in 1h24m31sreleased this
2026-08-09 20:48:20 +02:00 | 117 commits to master since this releaseDinoX v2.2.4
Modern XMPP client with extended features.
What's New
Highlights
- First opt-in video-call effect and an extensible effects foundation: One-to-one video calls now offer an optional grayscale effect backed by a capability-driven, worker-isolated effects pipeline. Effects remain off by default. This release establishes the UI, lifecycle, native ABI and IPC foundation for more effects; background blur, replacement and face accessories are not part of 2.2.4 yet.
- More efficient and responsive video calls: Bounded latest-frame-wins delivery, coalesced worker wakeups, a one-frame effect mailbox, reusable frame buffers and bounded teardown prevent stale video work from accumulating, reduce avoidable CPU and memory pressure, and keep calls responsive while effects are switched.
- Durable legacy OMEMO sessions across restarts: Ratchet sessions, pre-keys and device identities now use checked, fail-closed persistence and transactional recovery. Tested clean restarts and abrupt process termination no longer require sending a message first before new encrypted messages can be decrypted.
Added
- Video-effect controls and diagnostics: The call window exposes supported outgoing-camera effects and keeps the local preview aligned with the processed frame sent to the peer. Revision-bound state and bounded diagnostics make later effect implementations possible without moving frame processing into GTK or the main DinoX process.
- OMEMO device-key review: When a known device presents a changed identity key, DinoX keeps it blocked and offers a direct, factual review action instead of silently accepting the replacement.
Changed
- Isolated video-effect processing: Effect work runs inside the external Google/libwebrtc worker on a dedicated bounded executor. The normal effects-off path does not start an effect thread or allocate effect-owned frame buffers.
- Pinned media runtimes: Linux and Windows package paths now require the immutable Google/libwebrtc ABI 36 / IPC 6 runtime used by the effects pipeline, and the Windows builder accepts the canonical vendor archive layout.
- Pinned legacy OMEMO dependency: Normal Linux source builds, Flatpak and Windows builds use the verified libomemo-c 0.5.1 baseline while OMEMO 2 remains disabled in stable builds.
Fixed
- Audio after a previous video call: Reinitializing the shared Google/libwebrtc audio device now installs the new VoiceEngine transport correctly, so a later call no longer starts with zero captured or decoded audio after an earlier video session was closed.
- Video-frame backlog and post-toggle stutter: Preview and received-video shared-memory delivery now replaces unread real-time frames and reuses an already pending wakeup instead of accumulating stale frame events.
- Video-effect lifecycle cleanup: Rapid effect changes, call teardown, worker failure and slow optional processing now have bounded cancellation, generation fencing and resource cleanup without blocking the GTK main thread.
- OMEMO database consistency: Session, pre-key and signed-pre-key callbacks now propagate database failures to libomemo; authenticated identity and session transitions roll back to the previous valid state on failure, and acknowledged ratchet updates use full SQLite durability.
- OMEMO reconnect and archive safety: Account connections and MAM catch-up wait for a ready encrypted store, abort safely if readiness is lost, and no longer advance archive state through an unavailable OMEMO store.
- OMEMO identity-change safety: Malformed or unauthenticated pre-key messages and invalid bundles can no longer replace a working session or identity before cryptographic validation; account removal also clears persisted and in-memory OMEMO state consistently.
- Windows libwebrtc rebuilds: Corrected runtime rebuild gates and archive normalization so the documented clean Windows distribution build consumes the same effects-capable runtime layout as Linux packaging.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.4_*.deb.sha256 sudo apt install ./dinox_2.2.4_*.debAppImage
sha256sum -c DinoX-2.2.4-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.4-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.4-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.4.tar.gz cd dinox-2.2.4 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
DinoX v2.2.3
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 54sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 44m56sBuild / Build AppImage (push) Successful in 1h9m43sBuild / Build Flatpak (push) Successful in 35m51sreleased this
2026-08-01 13:31:53 +02:00 | 130 commits to master since this releaseDinoX v2.2.3
Modern XMPP client with extended features.
What's New
Highlights
- Proxy-first SOCKS5 and I2P account setup: Custom XMPP endpoints and per-account SOCKS5 proxies, including an I2P router's SOCKS5 endpoint, can now be configured before the first connection, removing the previous bootstrap workaround for services reachable only through a proxy.
- Configurable chat typography: Users can select an installed chat font and scale message, quote, and composer text from 100% to 200% on Linux and Windows without enlarging the complete application interface.
Added
- Call duration display: Active audio and video calls now show their elapsed duration directly in the call window, including calls longer than one hour.
Changed
- Proxy-aware initial connections: The sign-in flow validates and stores the complete proxy configuration per account, including optional proxy credentials, before attempting the XMPP connection.
Fixed
- New group-chat creation: MUC joins now publish the complete available own affiliation, role, identity, and occupant state before completing, preventing newly created rooms from racing room configuration and appearing only temporarily.
- HTTP upload cancellation: Cancelling a transfer while DinoX waits for an XEP-0363 upload slot now ends the pending request immediately; stream disconnects also stop the request instead of leaving an endless spinner.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.3_*.deb.sha256 sudo apt install ./dinox_2.2.3_*.debAppImage
sha256sum -c DinoX-2.2.3-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.3-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.3-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.3.tar.gz cd dinox-2.2.3 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 mkdir -p .vendor-deps curl --proto '=https' --tlsv1.2 --fail --location --show-error https://git.dinox.im/dinoxim/dinox/releases/download/vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz -o .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz printf '%s %s\n' de6241a78b33d9b324d9315e874bc6dc484d2d8726f899b9f5011eceb32af9e6 .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz | sha256sum -c - rm -rf .vendor-deps/libwebrtc-m150-linux-x86_64-runtime tar -xzf .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz -C .vendor-deps export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads
-
DinoX v2.2.2
StableSome checks failedBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 58sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 44m54sBuild / Build AppImage (push) Failing after 1h10m53sBuild / Build Flatpak (push) Has been skippedreleased this
2026-07-30 12:38:59 +02:00 | 137 commits to master since this releaseDinoX v2.2.2
Modern XMPP client with extended features.
What's New
Highlights
- Google/libwebrtc media engine: DinoX now uses an isolated Google/libwebrtc M150 worker for Jingle/JMI audio and video calls on Linux and Windows. Native device handling, mute and camera controls, VP8 video, ICE/STUN/TURN, and call teardown no longer depend on the former GStreamer RTP/WebRTC call backend.
- Voice and video messages on the new capture stack: Microphone and camera capture now run through the same isolated libwebrtc engine. Linux uses FFmpeg and Windows uses Media Foundation for encoding and muxing, while GStreamer remains responsible for media-file demuxing, decoding, playback, previews, and metadata.
- Major MUC administration and member-state overhaul: Room configuration, affiliations, roles, moderation, kicks, bans, Hats, JID visibility, mediated invitations, moderated-room voice requests, avatars, and live member grouping now share one lifecycle-aware server-backed state path.
- Production-ready release packaging: Debian, AppImage, Flatpak, and the canonical portable Windows build now validate the complete plugin, Google/libwebrtc, helper-program, translation, runtime, and license closure before an artifact is accepted.
Added
- Google/libwebrtc device controls and diagnostics: Audio/video settings can enumerate and test libwebrtc microphones, cameras, and speakers and expose separate call and media-message device choices.
- Moderated-room voice-request chat flow: Visitors can request permission to speak directly from the chat input, while moderators receive a persistent in-chat approval or rejection action instead of relying on a short-lived desktop notification.
- MUC occupant reducer and worker: Immutable, account- and room-scoped occupant snapshots now reconcile presence, affiliations, roles, Hats, real-JID visibility, and avatar state before the member list is updated.
- Canonical Windows build, validation, and ZIP tools: The documented Windows flow now creates a fresh portable
dist/, verifies every packaged plugin and runtime dependency, inventories bundled licenses, and produces a checked ZIP plus SHA-256 file.
Changed
- Large-room and roster responsiveness: Virtualized contact and roster models, batched occupant commits, bounded member presentation, prioritized visible-room autojoin, and background cache-only avatar loading keep large rooms and contact lists responsive.
- MUC close, leave, and bookmark semantics: Closing a room, leaving it temporarily, and leaving permanently now update the conversation, live room state, and bookmark consistently without stale rejoin continuations.
- Reconnect and MUC recovery: Reconnect, MAM catch-up, server-administration discovery, presence snapshots, room configuration, and member-list activation are fenced to the current stream and recover without requiring a DinoX restart.
- Portable Windows runtime: Windows packages now support non-ASCII checkout and runtime paths, use a frozen validated dependency baseline, and include all required GnuPG, Tor, Lyrebird, Google/libwebrtc, GStreamer, font, icon, schema, and translation data.
- Linux package production profile: Deb, AppImage, and Flatpak builds use the pinned Google/libwebrtc runtime, keep the legacy RTP call plugin disabled, separate small binary artifacts from source-compliance sidecars, and fail closed on incomplete media or license inventories.
Fixed
- OMEMO sessions during archive replay: Old undecryptable MAM pre-key messages no longer replace current device identities or destroy working OMEMO sessions, preventing later live messages from requiring an outgoing message before decryption resumes.
- MQTT topic bridges: Bridge subscriptions are reconciled immediately after rule changes, MQTT wildcards follow protocol semantics, and retained-message deduplication no longer suppresses explicit bridge delivery.
- Concurrent file transfers: HTTP, Jingle, sticker, and account-scoped transfer traffic no longer share cancellable request state that could let one transfer close or cancel another.
- Conversation-switch memory growth: Repeated switching between large chats no longer retains obsolete media rows, message widgets, signal owners, and deferred UI work indefinitely.
- MUC role and visitor grouping: Muted occupants move into the visitor section immediately and return to their assigned role after voice is restored; live role, affiliation, Hat, and visibility changes now refresh the correct member-list section.
- MUC invitations: Room invitation controls now follow the server's mediated-invitation and
occupants_may_invitepolicy instead of presenting a misleading client-only restriction. - Packaged media lifecycle: Audio/video calls and media-message recording shut down their libwebrtc worker sessions cleanly in Deb, AppImage, Flatpak, and Windows package layouts.
- Windows OpenPGP key lookup: The portable package includes
dirmngr.exe, starts and reaches it through an isolated GnuPG home, requests helper shutdown throughgpgconf, and fails the distribution build if GnuPG helpers or dependencies are incomplete. - UI lifecycle warnings and stale callbacks: Contact dialogs, MUC member popovers, conversation details, message rows, media widgets, and preference pages now disconnect account- and widget-scoped callbacks before their owners disappear.
- Provider-directory refresh: Provider data refreshes in the background without delaying the add-account dialog.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.2_*.deb.sha256 sudo apt install ./dinox_2.2.2_*.debAppImage
sha256sum -c DinoX-2.2.2-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.2-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.2-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.2.tar.gz cd dinox-2.2.2 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 mkdir -p .vendor-deps curl --proto '=https' --tlsv1.2 --fail --location --show-error https://git.dinox.im/dinoxim/dinox/releases/download/vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz -o .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz printf '%s %s\n' de6241a78b33d9b324d9315e874bc6dc484d2d8726f899b9f5011eceb32af9e6 .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz | sha256sum -c - rm -rf .vendor-deps/libwebrtc-m150-linux-x86_64-runtime tar -xzf .vendor-deps/libwebrtc-m150-linux-x86_64-runtime.tar.gz -C .vendor-deps export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
3 downloads
-
DinoX 2.2.2 Windows prerelease Pre-release
released this
2026-07-27 18:01:20 +02:00 | 154 commits to master since this releaseWindows-only prerelease for testing. Linux packages are intentionally not part of this prerelease. The Windows ZIP and SHA256 checksum will be uploaded manually.
At the moment, the version number is still 2.2.1 – a bit confusing, but that doesn’t matter for the pre-release version being tested; it just needs to be tested properly so that the actual release, 2.2.2, can be released without any major bugs. Thanks New at 17:20 Europe/Berlindeb pre can load at: https://git.dinox.im/dinoxim/dinox/actions/runs/228/jobs/0/attempt/1
appimage pre can load at: https://git.dinox.im/dinoxim/dinox/actions/runs/227/jobs/0/attempt/1
Flatpak pre can load at: https://git.dinox.im/dinoxim/dinox/actions/runs/229/jobs/0/attempt/1Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)