• v2.2.6 34864612b7

    DinoX v2.2.6
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 52s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 46m10s
    Build / Build AppImage (push) Successful in 1h7m33s
    Build / Build Flatpak (push) Successful in 15m37s
    Stable

    Ralf released this 2026-08-10 09:54:38 +02:00 | 7 commits to master since this release

    DinoX 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 \\u0000 string 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.6-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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
  • v2.2.5 e115fbbcb7

    DinoX v2.2.5
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 58s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 47m36s
    Build / Build AppImage (push) Successful in 1h17m33s
    Build / Build Flatpak (push) Successful in 16m30s
    Stable

    Ralf released this 2026-08-10 02:45:53 +02:00 | 11 commits to master since this release

    DinoX 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.5-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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
  • v2.2.4 4ed7d94754

    DinoX v2.2.4
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 3m30s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 44m17s
    Build / Build AppImage (push) Successful in 1h6m53s
    Build / Build Flatpak (push) Successful in 1h24m31s
    Stable

    Ralf released this 2026-08-09 20:48:20 +02:00 | 13 commits to master since this release

    DinoX 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.4-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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
  • v2.2.3 acf8d33c97

    DinoX v2.2.3
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 54s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 44m56s
    Build / Build AppImage (push) Successful in 1h9m43s
    Build / Build Flatpak (push) Successful in 35m51s
    Stable

    Ralf released this 2026-08-01 13:31:53 +02:00 | 26 commits to master since this release

    DinoX 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.3-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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
  • v2.2.2 9e5cc8df95

    DinoX v2.2.2
    Some checks failed
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 58s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 44m54s
    Build / Build AppImage (push) Failing after 1h10m53s
    Build / Build Flatpak (push) Has been skipped
    Stable

    Ralf released this 2026-07-30 12:38:59 +02:00 | 33 commits to master since this release

    DinoX 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_invite policy 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 through gpgconf, 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.2-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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
  • windows-prebuild-6 dfdfbbd52c

    dinoxim released this 2026-07-27 18:01:20 +02:00 | 50 commits to master since this release

    Windows-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/Berlin

    deb 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/1

    Downloads
  • v2.2.1 c197669fdf

    DinoX v2.2.1
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Static Preflight (push) Successful in 26s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 18m54s
    Build / Build AppImage (push) Successful in 18m16s
    Build / Build Flatpak (push) Successful in 31m28s
    Stable

    Ralf released this 2026-07-06 19:13:12 +02:00 | 195 commits to master since this release

    DinoX v2.2.1

    Modern XMPP client with extended features.

    What's New

    Fixed

    • Add-account provider dialog lifecycle: The account-creation dialog now reuses a single active instance, opens without duplicate dialogs or stale close callbacks, and keeps the provider list layout responsive while the directory refresh runs asynchronously.
    • OMEMO PubSub requests for domains: DinoX no longer requests legacy OMEMO device lists from server or MUC room domains, preventing repeated service-unavailable PubSub warnings when joining, leaving, or syncing group chats.

    Installation

    Debian/Ubuntu

    sha256sum -c dinox_2.2.1_*.deb.sha256
    sudo apt install ./dinox_2.2.1_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.1-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    Flatpak

    flatpak install flathub org.gnome.Platform//50
    sha256sum -c dinox-2.2.1-x86_64.flatpak.sha256
    flatpak install --user ./dinox-2.2.1-x86_64.flatpak
    flatpak run im.dinox.dinox
    

    Build from Source

    tar xf dinox-2.2.1.tar.gz
    cd dinox-2.2.1
    ./scripts/ci-build-deps.sh
    meson setup build -Dplugin-mqtt=enabled -Dplugin-rtp=enabled -Dlocation-sharing=enabled -Dplugin-rtp-vaapi=enabled
    ./scripts/build.sh --strict
    ./build/main/dinox
    
    Downloads
  • v2.2.0 e8c0cb98bc

    DinoX v2.2.0
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Static Preflight (push) Successful in 37s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 19m37s
    Build / Build AppImage (push) Successful in 18m28s
    Build / Build Flatpak (push) Successful in 27m48s
    Stable

    Ralf released this 2026-07-06 16:48:23 +02:00 | 198 commits to master since this release

    DinoX v2.2.0

    Modern XMPP client with extended features.

    What's New

    Added

    • XMPP provider directory for account creation: Account creation now uses the validated XMPP Providers category-B directory through the DinoX mirror at https://dinox.im/data/providers/v2/providers-B.json, keeps a bundled offline snapshot, refreshes a local cache asynchronously, and routes providers either to in-app XEP-0077 registration or to their HTTPS registration website while preserving manual server entry.

    Changed

    • Provider selection UX: External provider rows now keep provider website links visible as normal links below the provider details while the row activation remains dedicated to direct account registration.

    Fixed

    • OMEMO after local history deletion: Clearing a local chat history no longer deletes OMEMO Signal sessions, device knowledge, or trust state, so incoming encrypted messages after restart can keep using the existing encrypted session.
    • External registration window handling: Opening provider registration or website links no longer depends on focus timing that could trigger GTK/GDK surface warnings.
    • Provider directory build warnings: Cleaned provider-cache loading and localized URL selection so the Windows MSYS2 build no longer emits the provider/add-account warnings seen during the release follow-up.
    • OMEMO PubSub regression stability: OMEMO test PubSub mocks now answer owner-configuration probes so delayed 0060_pubsub IQ timeouts cannot spill into later file-transfer checks.

    Installation

    Debian/Ubuntu

    sha256sum -c dinox_2.2.0_*.deb.sha256
    sudo apt install ./dinox_2.2.0_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.0-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    Flatpak

    flatpak install flathub org.gnome.Platform//50
    sha256sum -c dinox-2.2.0-x86_64.flatpak.sha256
    flatpak install --user ./dinox-2.2.0-x86_64.flatpak
    flatpak run im.dinox.dinox
    

    Build from Source

    tar xf dinox-2.2.0.tar.gz
    cd dinox-2.2.0
    ./scripts/ci-build-deps.sh
    meson setup build -Dplugin-mqtt=enabled -Dplugin-rtp=enabled -Dlocation-sharing=enabled -Dplugin-rtp-vaapi=enabled
    ./scripts/build.sh --strict
    ./build/main/dinox
    
    Downloads
  • v2.1.9 5f9757b1ba

    DinoX v2.1.9
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Static Preflight (push) Successful in 30s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 18m55s
    Build / Build AppImage (push) Successful in 18m15s
    Build / Build Flatpak (push) Successful in 27m1s
    Stable

    Ralf released this 2026-07-05 19:49:03 +02:00 | 208 commits to master since this release

    DinoX v2.1.9

    Modern XMPP client with extended features.

    What's New

    Added

    • Capability-driven server administration: Administrator accounts now discover the XEP-0050 commands advertised by their XMPP server and expose supported account, roster, and MUC operations in a dedicated administration dialog with dynamic and multi-step data forms.

    Fixed

    • Ad-hoc command discovery: Corrected service-discovery node handling so command lists are requested from the XEP-0050 node and advertised server commands are detected and executed reliably.
    • MUC participant avatar refresh: Cache-only participant rows now update when background avatar loading completes, including deferred refreshes after reopening a suspended participant popover.
    • Local account removal lifecycle: Removing a disabled or server-deleted account no longer leaves stale settings callbacks that can crash DinoX when another account is selected or added. Local deletion remains scoped to the selected account, and the reusable removal button is restored after every attempt.

    Installation

    Debian/Ubuntu

    sha256sum -c dinox_2.1.9_*.deb.sha256
    sudo apt install ./dinox_2.1.9_*.deb
    

    AppImage

    sha256sum -c DinoX-2.1.9-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    Flatpak

    flatpak install flathub org.gnome.Platform//50
    sha256sum -c dinox-2.1.9-x86_64.flatpak.sha256
    flatpak install --user ./dinox-2.1.9-x86_64.flatpak
    flatpak run im.dinox.dinox
    

    Build from Source

    tar xf dinox-2.1.9.tar.gz
    cd dinox-2.1.9
    ./scripts/ci-build-deps.sh
    meson setup build -Dplugin-mqtt=enabled -Dplugin-rtp=enabled -Dlocation-sharing=enabled -Dplugin-rtp-vaapi=enabled
    ./scripts/build.sh --strict
    ./build/main/dinox
    
    Downloads
  • v2.1.8 80ef1e8bb0

    DinoX v2.1.8
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Static Preflight (push) Successful in 3m0s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 18m2s
    Build / Build AppImage (push) Successful in 18m40s
    Build / Build Flatpak (push) Successful in 26m40s
    Stable

    Ralf released this 2026-07-04 04:26:04 +02:00 | 214 commits to master since this release

    DinoX v2.1.8

    Modern XMPP client with extended features.

    What's New

    Fixed

    • OMEMO v1 multi-device delivery: Direct encrypted messages now refresh legacy device lists, wait for every active recipient and same-account device, retry newly advertised or temporarily unavailable bundles, and rebuild stale Signal sessions before sending. Identity-key changes reset the old session and application trust in the correct order, while private MUCs retain their separate partial-delivery policy and OMEMO 2 remains disabled for stable builds.
    • New-account sign-in flow: New JIDs can now enter JID and password together, the sign-in action follows valid credential and busy state, and TLS certificate failures preserve the entered credentials for a clean retry.
    • Fresh-account PubSub state: Missing bookmark, OMEMO device-list, bundle, and obsolete bundle-item nodes are handled as expected empty state during initial synchronization instead of producing misleading warnings or blocking setup.
    • Fail-closed server account deletion: Server deletion must succeed before related data and the local account are removed. Failures keep the account configured locally with a clear error, while managed Botmother bot deletion remains an explicit server-neutral option.

    Installation

    Debian/Ubuntu

    sha256sum -c dinox_2.1.8_*.deb.sha256
    sudo apt install ./dinox_2.1.8_*.deb
    

    AppImage

    sha256sum -c DinoX-2.1.8-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    Flatpak

    flatpak install flathub org.gnome.Platform//50
    sha256sum -c dinox-2.1.8-x86_64.flatpak.sha256
    flatpak install --user ./dinox-2.1.8-x86_64.flatpak
    flatpak run im.dinox.dinox
    

    Build from Source

    tar xf dinox-2.1.8.tar.gz
    cd dinox-2.1.8
    ./scripts/ci-build-deps.sh
    meson setup build -Dplugin-mqtt=enabled -Dplugin-rtp=enabled -Dlocation-sharing=enabled -Dplugin-rtp-vaapi=enabled
    ./scripts/build.sh --strict
    ./build/main/dinox
    
    Downloads