<?xml version="1.0" encoding="UTF-8"?>
<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="4">
<package pkgid="fb3a3e0e72ee8ab69545d27c7f01ff5fa257f738fee293874fab7251a1a9a5a4" name="termland-client" arch="src">
  <version epoch="0" ver="0.6.1" rel="2.el9"/>
  <changelog author="John Boero - 0.3.0-1" date="1776254400">- v0.3.0 release
- AV1 decoding with auto-fallback (QSV &gt; CUVID &gt; dav1d)
- Decoder reinit on resize (handles CUVID dimension change)
- Opus audio playback at 48kHz stereo via cpal
- SSH subsystem transport + direct TCP with TLS
- Live window resize, client-side cursor, data rate overlay
- Menubar toggle (F10), fullscreen toggle (F11)
- Shell completions for bash, zsh, fish</changelog>
  <changelog author="John Boero - 0.4.0-1" date="1783684800">- v0.4.0 release
- Multi-codec decoding with automatic fallback: AV1, VP9, VP8, H.265/HEVC, H.264
- Codec negotiation: advertises decodable codecs to the server and builds the
  decoder deterministically for the codec announced in SessionReady, instead of
  guessing from the bitstream (falls back to auto-detect with older servers)
- Decoder prefers CUVID/VA-API/V4L2 over Intel QSV on non-Intel systems to avoid
  wasting the opening frames on a doomed QSV context</changelog>
  <changelog author="John Boero - 0.4.1-1" date="1783684801">- Fix inverted vertical mouse scroll (winit up = Wayland down)</changelog>
  <changelog author="John Boero - 0.4.1-2" date="1783684802">- Build offline from vendored crate deps (COPR/mock build roots have no network)</changelog>
  <changelog author="John Boero - 0.4.2-1" date="1783684803">- Fix HEVC/H.264 software decode fallback: use the native "hevc"/"h264" decoders
  (were pointed at encoder-only libx265/libx264); a hardware decoder dying
  mid-session now falls through to software instead of stalling
- Add --codec to force a specific codec (av1/vp9/vp8/h265/h264), with shell
  completion of the codec names
- Hold Ctrl while resizing to scale the frame (local zoom) instead of resizing
  the remote session</changelog>
  <changelog author="John Boero - 0.5.0-1" date="1783684804">- Resume persistent sessions: --attach &lt;id&gt; reconnects to a running session;
  --list-sessions and --close &lt;id&gt; manage them from the CLI
- --tray: a global system-tray session manager (StatusNotifierItem via ksni)
  that lists, resumes, closes, and starts sessions for a host</changelog>
  <changelog author="John Boero - 0.6.0-1" date="1785931200">- Desktop session manager (--manager): saved multi-host connection profiles
  in a real window (egui), with a live per-host session list and
  resume/new/close, replacing the old one-host-per-launch tray-only flow.
- Seamless reconnect: auto-retry with backoff and reattach to the same
  session after an unexpected connection drop, instead of exiting.
- Bidirectional clipboard sync, including file transfer via clipboard paste.
- Real cursor-shape sync in client-side-cursor mode (actual compositor
  cursor bitmap, not a placeholder).
- Embedded SSH (russh) and QUIC transports (--quic), the latter now with Q2
  split video/audio planes.
- --list-sessions and --close gain the new session-owner semantics from
  server-side session isolation.</changelog>
  <changelog author="John Boero - 0.6.1-1" date="1785931201">- Packaging fix only (COPR source-fetch + an aarch64-only server-side
  build fix); no client behavior change.</changelog>
  <changelog author="John Boero - 0.6.1-2" date="1786017600">- Same packaging fixes as termland-server 0.6.2 (debuginfo generation
  disabled for EL8, portable /usr/bin/perl BuildRequires for Mageia); no
  client behavior change.</changelog>
</package>
<package pkgid="4763e0fc0476365bdb9b8406346ad86bdcbdf3bfaf8db3a77497d188f0e82097" name="termland-client" arch="x86_64">
  <version epoch="0" ver="0.6.1" rel="2.el9"/>
  <changelog author="John Boero - 0.3.0-1" date="1776254400">- v0.3.0 release
- AV1 decoding with auto-fallback (QSV &gt; CUVID &gt; dav1d)
- Decoder reinit on resize (handles CUVID dimension change)
- Opus audio playback at 48kHz stereo via cpal
- SSH subsystem transport + direct TCP with TLS
- Live window resize, client-side cursor, data rate overlay
- Menubar toggle (F10), fullscreen toggle (F11)
- Shell completions for bash, zsh, fish</changelog>
  <changelog author="John Boero - 0.4.0-1" date="1783684800">- v0.4.0 release
- Multi-codec decoding with automatic fallback: AV1, VP9, VP8, H.265/HEVC, H.264
- Codec negotiation: advertises decodable codecs to the server and builds the
  decoder deterministically for the codec announced in SessionReady, instead of
  guessing from the bitstream (falls back to auto-detect with older servers)
- Decoder prefers CUVID/VA-API/V4L2 over Intel QSV on non-Intel systems to avoid
  wasting the opening frames on a doomed QSV context</changelog>
  <changelog author="John Boero - 0.4.1-1" date="1783684801">- Fix inverted vertical mouse scroll (winit up = Wayland down)</changelog>
  <changelog author="John Boero - 0.4.1-2" date="1783684802">- Build offline from vendored crate deps (COPR/mock build roots have no network)</changelog>
  <changelog author="John Boero - 0.4.2-1" date="1783684803">- Fix HEVC/H.264 software decode fallback: use the native "hevc"/"h264" decoders
  (were pointed at encoder-only libx265/libx264); a hardware decoder dying
  mid-session now falls through to software instead of stalling
- Add --codec to force a specific codec (av1/vp9/vp8/h265/h264), with shell
  completion of the codec names
- Hold Ctrl while resizing to scale the frame (local zoom) instead of resizing
  the remote session</changelog>
  <changelog author="John Boero - 0.5.0-1" date="1783684804">- Resume persistent sessions: --attach &lt;id&gt; reconnects to a running session;
  --list-sessions and --close &lt;id&gt; manage them from the CLI
- --tray: a global system-tray session manager (StatusNotifierItem via ksni)
  that lists, resumes, closes, and starts sessions for a host</changelog>
  <changelog author="John Boero - 0.6.0-1" date="1785931200">- Desktop session manager (--manager): saved multi-host connection profiles
  in a real window (egui), with a live per-host session list and
  resume/new/close, replacing the old one-host-per-launch tray-only flow.
- Seamless reconnect: auto-retry with backoff and reattach to the same
  session after an unexpected connection drop, instead of exiting.
- Bidirectional clipboard sync, including file transfer via clipboard paste.
- Real cursor-shape sync in client-side-cursor mode (actual compositor
  cursor bitmap, not a placeholder).
- Embedded SSH (russh) and QUIC transports (--quic), the latter now with Q2
  split video/audio planes.
- --list-sessions and --close gain the new session-owner semantics from
  server-side session isolation.</changelog>
  <changelog author="John Boero - 0.6.1-1" date="1785931201">- Packaging fix only (COPR source-fetch + an aarch64-only server-side
  build fix); no client behavior change.</changelog>
  <changelog author="John Boero - 0.6.1-2" date="1786017600">- Same packaging fixes as termland-server 0.6.2 (debuginfo generation
  disabled for EL8, portable /usr/bin/perl BuildRequires for Mageia); no
  client behavior change.</changelog>
</package>
<package pkgid="386a454660f30314af35501328556a4d63248c7c23282620e06d86f6db5569eb" name="termland-server" arch="src">
  <version epoch="0" ver="0.6.1" rel="2.el9"/>
  <changelog author="John Boero - 0.3.0-1" date="1776254400">- v0.3.0 release
- AV1 video encoding (QSV/NVENC/AMF/VA-API/SVT-AV1 auto-detect)
- AV1 decoding (QSV/CUVID/dav1d auto-fallback)
- Opus audio forwarding via PulseAudio null sink per session
- SSH subsystem transport (sshd drop-in config included)
- Direct TCP with TLS (auto-generated self-signed certs) + PAM auth
- Desktop mode (labwc) and app kiosk mode (cage)
- Live window resize with compositor + encoder reinit
- Client-side cursor, data rate overlay, menubar (F10)
- Shell completions for bash, zsh, fish
- systemd service + documented environment config</changelog>
  <changelog author="John Boero - 0.4.0-1" date="1783684800">- v0.4.0 release
- Multi-codec video with automatic fallback: AV1, VP9, VP8, H.265/HEVC, H.264
- Codec negotiation: client advertises decodable codecs in SessionCreate;
  server picks the best its hardware supports and announces it in SessionReady;
  every VideoFrame is codec-tagged (backward compatible with older peers)
- Encoder/decoder probe is hardware-first (open-source codecs first within each
  tier), so GPUs without AV1 encode (e.g. Volta/GV100) use hardware HEVC/H.264
  instead of falling back to software AV1
- Decoder skips the Intel QSV backend ahead of CUVID/VA-API/V4L2 to avoid
  wasting the opening frames on a doomed QSV context on non-Intel systems</changelog>
  <changelog author="John Boero - 0.4.1-1" date="1783684801">- Version bump to keep server/client in lockstep (client scroll-direction fix;
  no server-side changes)</changelog>
  <changelog author="John Boero - 0.4.1-2" date="1783684802">- Build offline from vendored crate deps (COPR/mock build roots have no network)</changelog>
  <changelog author="John Boero - 0.4.2-1" date="1783684803">- Version bump in lockstep with the client (client-side decode/codec/UX fixes;
  no server behavior changes)
- Shared codec crate: fixed HEVC/H.264 software decode fallback</changelog>
  <changelog author="John Boero - 0.5.0-1" date="1783684804">- Persistent detachable sessions (X2Go/NX-style): a session keeps running on the
  server after the client disconnects and can be resumed later. Daemon-free —
  each session is a detached compositor (setsid) tracked in a filesystem
  registry under $XDG_RUNTIME_DIR/termland/sessions, so even a stateless SSH
  subsystem connection can list and resume it.
- Session control protocol: list / attach / close; session_id in SessionReady.
- Disconnect detaches (session persists); explicit close terminates it.</changelog>
  <changelog author="John Boero - 0.6.0-1" date="1785931200">- Session isolation: setuid into the PAM-authenticated user after --auth,
  instead of every session running as the server's own (root) user; sessions
  now also record and enforce an owner so one authenticated user cannot
  list, attach to, or close another's session.
- Embedded SSH (russh) and QUIC transports, the latter now with Q2 (video on
  its own reliable QUIC stream, audio on datagrams) so a lost video packet
  no longer head-of-line-blocks control/input.
- Bidirectional clipboard sync, including file transfer via clipboard paste.
- Real cursor-shape sync (actual compositor cursor bitmap, not a placeholder).
- Seamless reconnect: auto-retry with backoff and reattach to the same
  session after an unexpected connection drop.
- --list-sessions / --close-session admin CLI (registry-only, no running
  server process required).
- Desktop session manager (--manager): saved multi-host connection profiles
  with a live per-host session list, resume/new/close.
- First Android client (termland-mobile-core + native Kotlin/Compose app):
  hardware keyboard/mouse as primary input, touch as secondary, audio
  playback, session resume list.</changelog>
  <changelog author="John Boero - 0.6.1-1" date="1785931201">- Fix aarch64 build failure in session isolation: getpwnam_r's buffer was
  declared Vec&lt;i8&gt;, but libc's buffer type follows the platform's c_char
  (signed on x86_64, unsigned on aarch64) - failed to compile at all on
  aarch64. Now Vec&lt;libc::c_char&gt;.
- Source1 (vendored crates, needed for the offline COPR build) is now a
  real URL (a GitHub release asset) instead of a bare filename, so a plain
  spec-URL COPR build submission works without a local SRPM upload.</changelog>
  <changelog author="John Boero - 0.6.1-2" date="1786017600">- Disable debuginfo package generation (%global debug_package %{nil}):
  find-debuginfo produces an empty debugsourcefiles.list for this Rust
  binary, which EL8's rpmbuild treats as a hard error.
- BuildRequires the real /usr/bin/perl binary instead of the
  perl-interpreter virtual-provide, which is a Fedora/RHEL-only naming
  convention Mageia doesn't recognize.</changelog>
</package>
<package pkgid="f53e393c50bb40c5b9a00f173d441746b278e9eab733c7afd84240ab420ecd55" name="termland-server" arch="x86_64">
  <version epoch="0" ver="0.6.1" rel="2.el9"/>
  <changelog author="John Boero - 0.3.0-1" date="1776254400">- v0.3.0 release
- AV1 video encoding (QSV/NVENC/AMF/VA-API/SVT-AV1 auto-detect)
- AV1 decoding (QSV/CUVID/dav1d auto-fallback)
- Opus audio forwarding via PulseAudio null sink per session
- SSH subsystem transport (sshd drop-in config included)
- Direct TCP with TLS (auto-generated self-signed certs) + PAM auth
- Desktop mode (labwc) and app kiosk mode (cage)
- Live window resize with compositor + encoder reinit
- Client-side cursor, data rate overlay, menubar (F10)
- Shell completions for bash, zsh, fish
- systemd service + documented environment config</changelog>
  <changelog author="John Boero - 0.4.0-1" date="1783684800">- v0.4.0 release
- Multi-codec video with automatic fallback: AV1, VP9, VP8, H.265/HEVC, H.264
- Codec negotiation: client advertises decodable codecs in SessionCreate;
  server picks the best its hardware supports and announces it in SessionReady;
  every VideoFrame is codec-tagged (backward compatible with older peers)
- Encoder/decoder probe is hardware-first (open-source codecs first within each
  tier), so GPUs without AV1 encode (e.g. Volta/GV100) use hardware HEVC/H.264
  instead of falling back to software AV1
- Decoder skips the Intel QSV backend ahead of CUVID/VA-API/V4L2 to avoid
  wasting the opening frames on a doomed QSV context on non-Intel systems</changelog>
  <changelog author="John Boero - 0.4.1-1" date="1783684801">- Version bump to keep server/client in lockstep (client scroll-direction fix;
  no server-side changes)</changelog>
  <changelog author="John Boero - 0.4.1-2" date="1783684802">- Build offline from vendored crate deps (COPR/mock build roots have no network)</changelog>
  <changelog author="John Boero - 0.4.2-1" date="1783684803">- Version bump in lockstep with the client (client-side decode/codec/UX fixes;
  no server behavior changes)
- Shared codec crate: fixed HEVC/H.264 software decode fallback</changelog>
  <changelog author="John Boero - 0.5.0-1" date="1783684804">- Persistent detachable sessions (X2Go/NX-style): a session keeps running on the
  server after the client disconnects and can be resumed later. Daemon-free —
  each session is a detached compositor (setsid) tracked in a filesystem
  registry under $XDG_RUNTIME_DIR/termland/sessions, so even a stateless SSH
  subsystem connection can list and resume it.
- Session control protocol: list / attach / close; session_id in SessionReady.
- Disconnect detaches (session persists); explicit close terminates it.</changelog>
  <changelog author="John Boero - 0.6.0-1" date="1785931200">- Session isolation: setuid into the PAM-authenticated user after --auth,
  instead of every session running as the server's own (root) user; sessions
  now also record and enforce an owner so one authenticated user cannot
  list, attach to, or close another's session.
- Embedded SSH (russh) and QUIC transports, the latter now with Q2 (video on
  its own reliable QUIC stream, audio on datagrams) so a lost video packet
  no longer head-of-line-blocks control/input.
- Bidirectional clipboard sync, including file transfer via clipboard paste.
- Real cursor-shape sync (actual compositor cursor bitmap, not a placeholder).
- Seamless reconnect: auto-retry with backoff and reattach to the same
  session after an unexpected connection drop.
- --list-sessions / --close-session admin CLI (registry-only, no running
  server process required).
- Desktop session manager (--manager): saved multi-host connection profiles
  with a live per-host session list, resume/new/close.
- First Android client (termland-mobile-core + native Kotlin/Compose app):
  hardware keyboard/mouse as primary input, touch as secondary, audio
  playback, session resume list.</changelog>
  <changelog author="John Boero - 0.6.1-1" date="1785931201">- Fix aarch64 build failure in session isolation: getpwnam_r's buffer was
  declared Vec&lt;i8&gt;, but libc's buffer type follows the platform's c_char
  (signed on x86_64, unsigned on aarch64) - failed to compile at all on
  aarch64. Now Vec&lt;libc::c_char&gt;.
- Source1 (vendored crates, needed for the offline COPR build) is now a
  real URL (a GitHub release asset) instead of a bare filename, so a plain
  spec-URL COPR build submission works without a local SRPM upload.</changelog>
  <changelog author="John Boero - 0.6.1-2" date="1786017600">- Disable debuginfo package generation (%global debug_package %{nil}):
  find-debuginfo produces an empty debugsourcefiles.list for this Rust
  binary, which EL8's rpmbuild treats as a hard error.
- BuildRequires the real /usr/bin/perl binary instead of the
  perl-interpreter virtual-provide, which is a Fedora/RHEL-only naming
  convention Mageia doesn't recognize.</changelog>
</package>
</otherdata>