x2gokdrive (0.0.0.3-0x2go1) unstable; urgency=medium

  [ Mike Gabriel ]
  * New upstream version (0.0.0.3):
    - {patches.xorg/,x2gokdrive.spec}: Add semi-auto-detection of latest
      available patchset and fallback to that if we don't have a patchset for
      an exact xorg-server version.
    - patches.xorg/: add 21.1.10 subdirectory for current Debian
      testing/unstable with rebased patch set.
  * debian/Jenkinsfile:
    + Add file. Initiate CI builds.
  * debian/control:
    + Prefer libgl-dev (new dev:pkg to use since bookworm) over
      libgl1-mesa-dev.
    + Prefer libxcb-util-dev over ibxcb-util0-dev (not available in Debian
      trixie anymore).
  * debian/rules:
    + Add semi-auto-detection of latest available patchset and fallback to that
      if we don't have a patchset for an exact xorg-server version.

  [ Mihai Moldovan ]
  * New upstream version (0.0.0.3):
    - x2gokdriveremote.{c,h}: use a client keepalive timeout of 120 seconds
      for the web client, keep other clients on 30 seconds. Web browsers
      throttle JavaScript timers of background tabs for energy saving reasons.
      Even though Chrome and Firefox refrain from aggressive throttling when
      tabs use WebSocket connections, this might not always work correctly.
      Since timers typically coalesce at one-minute intervals, a two-minutes
      timeout should be fine.
    - misc: pre-release date update.
  * debian/rules:
    + Fix typo: ibxcb-util0-dev => libxcb-util0-dev. Fixes builds on buster.

 -- X2Go Release Manager <git-admin@x2go.org>  Wed, 13 Mar 2024 11:59:34 +0100

x2gokdrive (0.0.0.2-0x2go1) unstable; urgency=medium

  [ Mike Gabriel ]
  * New upstream version (0.0.0.2):
    - Various typo fixes.
    - patches.xorg/: add 21.1.8 subdirectory for current Debian testing/unstable
      with rebased patch set.
  * debian/rules:
    + Unapply patches from patches.xorg/<version>/ directory before re-applying.
      Also remove quilt's .pc/ patch tracking directory before applying patches.

  [ Mihai Moldovan ]
  * New upstream version (0.0.0.2):
    - x2gokdriveremote.c: more typo fixes.
    - x2gokdrive.c: typo fix.
    - x2gokdriveinit.c: typo fix.
    - x2gokdriveselection.c: typo fixes.

 -- X2Go Release Manager <git-admin@x2go.org>  Tue, 12 Sep 2023 15:17:46 +0200

x2gokdrive (0.0.0.1-0x2go1) unstable; urgency=medium

  [ Oleksandr Shneyder ]
  * Initial release:
    - Calculate screen dimensions (in mm) according to dpi value.
      Default DPI (Xorg) is 75. User can set DPI using -dpi command
      line option.
    - Move selection functionality to separate thread. Use XCB API to manage
      selections.
    - add xcb-xfixes to deps.
    - send a receive feature versions.
    - reinit client version on new connection and awaka sending thread when
      client version received.
    - support sending and receiving selections on demand. Support reading and
      writing INCR properties.
    - move declaration of RemoteHostVars from x2gokdriveremote.h to
      x2gokdriveremote.c.
    - add some support for HTML5 client (like converting pointer cursors to
      PNG format).
    - fix crashing if client is sending unrequested selection.
    - extended clipboard support for HTML client.
    - add name of the thread to the debug output.
    - move calling of possibly thread-unsafe ospoll functions (SetNotifyFd,
      RemoveNotifyFd) to main thread.
    - (re)enable sessions debugging.
    - fix infinite loop if reading of cookie has failed.
    - improve initialization of cursor frame and cache element structures.
    - improve clearing of the frame list.
    - reiniting of frame and cursors caches by client request.
    - don't check cache data size, only amount of elements.
    - reduce amount of cache elements to save resources.
    - rootless mode for x2gokdrive.
    - improve icon handling in rootless mode.
    - don't show invisible windows.
    - sending KEYRELEASE immediately after KEYPRESS to avoid the "key
      sticking".
    - set initial geometry form the -geometry command line option.
    - change from alder32 to crc32 to avoid collisions on small frames.
    - automatically decrease the jpeg quality when to many frames in queue.
    - update the screen with png frames when no data is transmitted.
    - make screen repaint faster.
    - add command line option for initial JPEG quality.
    - fix building on Xorg <  11900000.
    - don't exit when setting command line arguments -xkb-model, -xkb-layout,
      -xkb-variant on Xorg < 11899001.
    - support for windows with type _NET_WM_WINDOW_TYPE_DND. Ignore windows
      with visibility >= 2.
    - don't ignore windows with visibility == 2. Client should hide them from
      taskbar.

  [ Mihai Moldovan ]
  * Initial release:
    - patches.legacy/README.legacy-patches.md: whitespace-only fix.
    - patches.legacy/README.legacy-patches.md: fix markdown syntax.
    - {./,patches.xorg/{common,1.18.4,1.19.{2,6},1.20.{1,4,5}}/}quilt.env: add
      new quilt environment helper mechanism. Should make using quilt a lot
      easier on the developer's machine. Requires SOURCING(!) the quilt.env
      file within a specific versioned sub-directory OR SOURCING(!) the
      top-level quilt.env file and exporting QUILT_PATCHES manually.
    - patches.xorg/common/quilt.env: add trailing slash to QUILT_PATCHES
      variable.
    - patches.xorg/1.20.4/xorg-server-configure-ac.patch: backport
      XORG_VERSION_CURRENT change from
      e0dbca73f11e9aa7a066e748e6d08ba256be69cf / 1.20.5.
    - patches.xorg/1.20.4: add missing/hw/xfree86/common/modeline2c.awk file,
      working around a bug in CentOS 7 and Fedora 30 (possibly others as
      well).
    - patches.xorg/1.20.5: likewise add missing modeline2c.awk file. Actually
      needed for Fedora 30.
    - patches.xorg/1.19.2/xorg-server-configure-ac.patch: backport
      XORG_VERSION_CURRENT change from
      e0dbca73f11e9aa7a066e748e6d08ba256be69cf / 1.20.5.
    - x2gokdrive{remote,selection}.c: warp initializer into another set of
      curly braces until the first POD is reached. Fixes compile errors on
      EPEL 7 and generally systems with older GCC versions. That warning,
      which is turned into an error later on, is generally overly strict,
      since {0} is widely used as an "universal zero initializer" in C,
      initializing all other elements that are not explicitly given in the
      list implicitly with zero. For some reason, GCC decided that it is an
      error to initialize a whole struct that way and explicitly requires that
      at least one plain-old-data type is initialized that way. Case in point,
      newer GCC versions removed that warning altogether and just blindly
      accepts the usual syntax.
    - x2gokdriveselection.c: fix compile error, the xEvent struct (made up of
      union of another struct) needs another layer of curly braces.
    - patches.xorg/: add skeleton for 1.20.3 - needed for OpenSuSE Leap 15.1.
    - patches.xorg/1.20.3: add actual (rebased) patches and potentially
      missing files.
    - patches.xorg/1.18.4: refresh against Ubuntu 16.04/xenial version.
    - x2gokdrive{.c,remote.c,init.{c,h}}: patch for X.Org 1.18.x
      compatibility, merging in the content from
      patches.legacy/osuse_42.3.patch via preprocessor defines.
    - patches.xorg/: add 1.20.6 files, essentially copied and refreshed from
      1.20.5.
    - patches.xorg/: add 1.20.7 files, essentially copied and refreshed from
      1.20.6.
    - x2gokdrive{,remote}.c: fix logic flaws.
    - x2gokdriveremote.h: remove duplicate function declaration for
      clientReadNotify ().
    - patches.xorg/1.18.4/xorg-server-configure-ac.patch: add -lpthread to
      X2GOKDRIVE_LIBS.
    - patches.xorg/1.19.6: refresh patch set for Ubuntu 18.04/bionic,
      including backporting of the XORG_VERSION_CURRENT change.
    - patches.xorg/1.18.4/xorg-server-configure-ac.patch: add -lz and also
      -ljpeg and -lpng to be on the safe side, since it seems that these
      libraries are universally missing.
    - Makefile.am: add print-debugging to figure out what is being generated
      on Ubuntu 16.04/xenial.
    - Makefile.am: revert print-debugging again.
    - patches.xorg/1.18.4/xorg-server-configure-ac.patch: correctly add
      -pthread and -lpthread references *after* the pkgconfig checks execute.
    - quilt.env: add instructions from where to run the source command, this
      got me confused two years later.
    - patches.xorg/: add 1.20.13 subdirectory for Ubuntu Focal (20.04) with
      rebased patch set.
    - patches.xorg/: add 21.1.4 subdirectory for Ubuntu Kinetic (22.10) with
      rebased patch set.
    - patches.xorg/21.1.4/xorg-server-configure-ac.patch: fix FTBFS, typo when
      applying patch.
    - patches.xorg/: add 21.1.7 subdirectory for Debian Bookworm (12) with
      rebased patch set.
    - misc: pre-release date update.
  * debian/control:
    + Grammar fix.
    + Remove dependencies that refer to disabled features.
    + Add build-dependency upon libpam-dev. It would really be libpam0g-dev
      currently, but that looks like a moving target.
    + Add B-D upon x11proto-gl-dev (or nil/hello).
    + Recommend x2goserver >= 4.1.0.4, we'll better stay on the 4.1.x line.
    + Try to pull libxfont1-dev (for old Ubuntu versions such as 16.04/xenial
      that don't support building X.Org against libXfont2) and fallback to
      libxfont-dev to retain the old, default behavior.
    + Make libxfont1-dev an entirely optional dependency and libxfont-dev a
      hard one. This should always install libxfont-dev (which typically is
      the libXfont2-version), but also the libXfont1-version if available.
      Ubuntu 16.04/xenial has X.Org Server 1.18.4 which is not compatible with
      libXfont2, but Debian 9/stretch uses X.Org Server 1.19.2, which is
      compatible with libXfont2 (and actually requires it), but also has both
      packages available.
    + Depend upon libxfont1-dev << 1.5.2 (which is the version in Debian
      9/stretch) or fall back to libxfont-dev *and* make sure that the
      libxfont1-dev version is greater than 1.4.2. This should essentially
      emulate libxfont1-dev (>> 1.4.2 << 1.5.2) | libxfont-dev (>> 1.4.2) and
      fix issues with "hello" being picked with subsequent dependencies being
      dropped (like libunwind, which is usually not optional).
  * x2gokdrive.spec:
    + Drop Debian-style formatting in description.
    + Typo fixes.
    + Remove empty line at EOF.
    + Copy summary from Debian's short description.
    + Spell out each (build) dependency on one line.
    + Whitespace-only fixes.
    + Backport changes from debian/rules.
    + Copy *.la file removal mechanism from debian/rules.
    + Pull in lsb-release on *SuSE systems and redhat-lsb otherwise for
      lsb_release, needed at package configuration time.
    + Enable hardening in a low-effort way.
    + Disable debugsource... disabling. Debug packages are actually useful!
    + Copy configure flags from debian/rules{,.flags}. Most compiler flags
      should be getting passed down automatically through the %configure
      macro, but CPPFLAGS is special and seemingly not defined in
      redhat-rpm-macros (or the *SuSE equivalent) and is hence passed-down
      manually. %{__global_ldflags} is empty and unknown on some systems, so
      copy workaround from nx-libs for that one.
    + Sync dependency lists with debian/control.
    + Rename binary package to xorg-x11-server-x2gokdrive to be consistent
      with Fedora/*SuSE package naming.
    + It's still %endif, not %fi.
    + Let description be the description of xorg-x11-server-x2gokdrive, not
      the x2gokdrive source package.
    + Add/copy Summary tag to xorg-x11-server-x2gokdrive binary package.
    + Add description for x2gokdrive (source) package. It's a slightly
      modified version of the binary package description.
    + Fix typo pkgconfig(Xau) => pkgconfig(xau).
    + Backport escaping layer change from debian/rules.
    + Fix %autosetup usage - only use it when supported. RPM 4.11.x+.
    + %autosetup (or %setup) create a top-level BUILD directory into which the
      source tarball is extracted - but we also need a BUILD sub-directory.
      Create it.
    + Use pushd instead of cd. Minor change.
    + Build-depend upon libgcrypt-devel for "older" distros that don't define
      a libgcrypt pkgconfig() virtual provide. That means: Fedora < 29, EPEL <
      8 and any *SuSE version that is not Tumbleweed. The most surprising part
      is probably *SuSE.
    + Untangle libjpeg-turbo-devel build-dependency. Recent *SuSE versions
      define a pkgconfig(libturbojpeg) virtual provide, which is unheard of in
      RHEL land. Older *SuSE versions sadly don't have any virtual provide for
      this, and, worse, don't even have libjpeg-turbo-devel packages, so we'll
      need to build-depend upon libjpeg62-devel instead and hope that this is
      actually the turbo variant. RHEL-land (including Fedora) is more
      forgiving and always ships the turbo variant, but sets the virtual
      provide to pkgconfig(libjpeg) (yes, for all versions down to RHEL 6,
      albit via the updates repository!) and do not mention "turbo" in there.
    + Rework gettext-autopoint build dependency. *SuSE uses gettext-tools
      (which provides a virtual gettext-devel package), while RHEL-land has a
      "real" gettext-devel package that virtually provides a gettext-autopoint
      package.
    + Also build-depend upon pam-devel.
    + Build verbosely. We do want to see actual compilation steps.
    + Copy xorg-server source verbosely. Matches debian/rules tar call more
      closely.
    + Use archive mode when copying xorg-server source. We probably want to
      keep stuff like timestamps to not break the Makefile dependencies.
    + *SuSE puts the xorg-server source code into /usr/src/xserver.
    + Change /usr/share/xserver to /usr/src/xserver. For real this time.
    + Add hack installing missing files into the xorg-server source tree.
    + Port change from debian/rules.flags to disable Xorg DDX building.
    + Delete old configure files that might have had the executable bit set.
      We want those to be re-generated with the correct permissions later on.
    + Port *.la file removal commenting from debian/rules.
    + Pull in pkgconfig(glproto) BR. Needed for *SuSE, that doesn't seem to
      pull it in by other means (while RHEL-land does).
    + Fix %exclude entry for protocol.txt, the new configure flags changed its
      path to %{_libexecdir}.
    + Downgrade dependency upon xorg-x11-server-common to 1.18.4. Strictly
      speaking, we'd have to define a unique dependency for each
      distro-version combination (e.g., Fedora 30 uses 1.20.5, EPEL 7
      currently uses 1.20.4 etc.), but that's too complicated - let's depend
      on at least the earliest supported version for now.
    + Work around issue on *SuSE: for some reason, Mesa-libGL-devel doesn't
      pull Mesa-devel in, leading to a compile failure. Do that manually.
    + Depend on/recommend x2goserver >= 4.1.0.4, backported from
      debian/control.
    + Change libunwind build-dependency and usage: for ppc64(be), use it when
      not on RHEL/CentOS (this includes *SuSE and Fedora) and for ppc64le, use
      it on RHEL/CentOS 8+ or when not on RHEL/CentOS.
    + Fix syntax error due to unclosed %if.
    + X11 server package is not split up into binary and common packages on
      *SuSE, so change dependency to xorg-x11-server.
  * debian/rules:
    + Remove weird empty variable reference construct.
    + Whitespace-only fixes.
    + Move options to the front of commands.
    + Drop useless use of cat.
    + Avoid backticks, use $() instead.
    + "a && b || c" doesn't really mean "if a then b else c", but something...
      more difficult: "c" does also run if "a" is false. Switch to a proper
      if-else construct.
    + Split up subshell content onto unique lines and fix bash syntax error
      near "exit 1".
    + Use printf instead of echo. Plain echo doesn't even substitute escape
      sequences for their plain char counterparts and the -e switch is
      non-portable.
    + Avoid xargs, use find's -exec feature.
    + More and better quoting.
    + Verbosely remove *.la files.
    + Add missing single quotes - two strings were merged into one by
      accident.
    + Drop additional escape layer in sed expression. This was previously only
      needed due to the weird escaping/quoting rules for code in backticks.
      The more modern and equally POSIX-compatible $() syntax makes quoting
      and escaping within subshell calls a lot easier.
    + Comment out *.la file removal. We shouldn't need that any longer since
      we don't build the Xorg DDX anymore.
  * debian/rules.flags:
    + Define NULL variable and use it throughout the file.
    + Disable building Xorg DDX. We don't need it and it's only inflating
      build times. Older X.Org patches will need to be modified to define the
      version variable, but we can do that as we go and accept build failures
      for the time being.

  [ Mike Gabriel ]
  * Initial release:
    - patches.xorg/: Add 1.20.11 files, essentially copied and refreshed from
      1.20.7.
      This is the X.Org Xserver version shipped with Debian bullseye.
    - x2gokdriveinit.c: Only define ddxInputThreadInit() prototype for
      XORG_VERSION_CURRENT less than 1.20.7. Starting with 1.20.8, the
      prototype definition is now available in include/os.h.
    - x2gokdrivedebug.h: Introduce this new file and move all EPHYR_DBG
      stuff into there. And: disable EPHYR_WANT_DEBUG as with it, the project
      fails to build with standard Debian compiler flags."
    - patches.xorg/: Support building against xorg-server 21.1.3.
  * debian/control:
    + Fix B-Ds for building against Ubuntu trusty.
    + Add B-D mesa-common-dev. Introduced here with the X.Org Xserver 1.20.11
      patchset.
    + Add B-D: libxcvt (or 'sl' for not so recent versions of Debian/Ubuntu).
    + No alternative 'hello' B-D for libunwind-dev.

 -- X2Go Release Manager <git-admin@x2go.org>  Wed, 07 Jun 2023 21:37:44 +0200
