--- /dev/null
--- /dev/null
++lgogdownloader (3.9-2+deb12u1) bookworm; urgency=medium
++
++ * Apply upstream fixes for parsing Galaxy URLs. Closes: #1085527.
++
++ -- Stephen Kitt <skitt@debian.org> Sun, 20 Oct 2024 21:39:20 +0200
++
++lgogdownloader (3.9-2) unstable; urgency=medium
++
++ * qtwebengine5-dev is now available on mips64el, use it there. Thanks
++ to Adrian Bunk for the patch!
++ * Standards-Version 4.6.2, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 27 Feb 2023 08:42:04 +0100
++
++lgogdownloader (3.9-1) unstable; urgency=medium
++
++ * New upstream release.
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 23 Feb 2022 14:11:23 +0100
++
++lgogdownloader (3.8-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Drop the explicit --as-needed, it’s now implied.
++ * Switch to debhelper compatibility level 13.
++ * Standards-Version 4.6.0, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Fri, 03 Sep 2021 18:24:23 +0200
++
++lgogdownloader (3.7-1) unstable; urgency=medium
++
++ * New upstream release.
++
++ -- Stephen Kitt <skitt@debian.org> Fri, 10 Apr 2020 22:03:33 +0200
++
++lgogdownloader (3.6-1) unstable; urgency=medium
++
++ * New upstream release. libatomic is handled upstream, removing the need
++ for add-libatomic.patch.
++ * Standards-Version 4.5.0, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 16 Mar 2020 23:08:22 +0100
++
++lgogdownloader (3.5-2) unstable; urgency=medium
++
++ * Only build with Qt on architectures with Qt5WebEngineWidgets.
++ * Link with libatomic; this should fix the build on architectures such
++ as mipsel which need explicit -latomic.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 16 Jul 2019 13:56:08 +0200
++
++lgogdownloader (3.5-1) unstable; urgency=medium
++
++ * New upstream release, with a graphical login interface.
++ * Switch to debhelper compatibility level 12.
++ * Standards-Version 4.4.0, no change required.
++ * Only link libraries which are directly required.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 15 Jul 2019 21:24:05 +0200
++
++lgogdownloader (3.4-2) unstable; urgency=medium
++
++ * Ensure the build is reproducible: avoid storing git information, and
++ the build architecture.
++ * Refresh manpage-whatis.patch.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 18 Dec 2018 09:20:55 +0100
++
++lgogdownloader (3.4-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Standards-Version 4.2.1, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 18 Sep 2018 13:18:32 +0200
++
++lgogdownloader (3.3-2) unstable; urgency=medium
++
++ * Migrate to Salsa.
++ * Standards-Version 4.1.4, no further change required.
++ * Switch to debhelper compatibility level 11.
++
++ -- Stephen Kitt <skitt@debian.org> Sun, 06 May 2018 14:22:19 +0200
++
++lgogdownloader (3.3-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Clean up whitespace in debian/rules.
++ * Update debian/copyright.
++ * Standards-Version 4.1.1, no further change required.
++ * Enable building without fakeroot.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 07 Nov 2017 23:05:20 +0100
++
++lgogdownloader (3.2-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Update watch file.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 19 Jun 2017 08:56:54 +0200
++
++lgogdownloader (3.1-2) unstable; urgency=medium
++
++ [ Simon McVittie ]
++ * Team upload
++ * Backport patch from 3.2 fixing the ability to list games if a game
++ has {'updates': null} (Closes: #857691)
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 05 Apr 2017 19:27:13 +0200
++
++lgogdownloader (3.1-1) unstable; urgency=medium
++
++ * New upstream release.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 16 Jan 2017 19:35:28 +0100
++
++lgogdownloader (3.0-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Now that libjsoncpp-dev is fixed, drop the explicit dependency on
++ libjsoncpp1.
++ * Switch to debhelper compatibility level 10.
++ * Clarify the description regarding DFSG-free games on GOG.com.
++
++ -- Stephen Kitt <skitt@debian.org> Thu, 24 Nov 2016 22:06:40 +0100
++
++lgogdownloader (2.28-1) unstable; urgency=medium
++
++ * New upstream release, merging jsoncpp-1.7.1.patch.
++ * Standards-Version 3.9.8, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 09 May 2016 23:35:51 +0200
++
++lgogdownloader (2.27-2) unstable; urgency=medium
++
++ * Apply upstream patch to build with libjsoncpp 1.7.1 and later. Closes:
++ #820064, #820315.
++
++ -- Stephen Kitt <skitt@debian.org> Fri, 08 Apr 2016 13:46:48 +0200
++
++lgogdownloader (2.27-1) unstable; urgency=medium
++
++ * New upstream release, with a new cmake-based build obsoleting all the
++ existing patches apart from manpage-whatis.patch.
++
++ -- Stephen Kitt <skitt@debian.org> Fri, 18 Mar 2016 12:56:19 +0100
++
++lgogdownloader (2.26-2) unstable; urgency=medium
++
++ * Switch to https: VCS URIs (see #810378).
++ * Apply upstream's fix for crashes after login (thanks to Phil Morrell
++ for pointing it out!).
++ * Standards-Version 3.9.7, no change required.
++ * Enable full hardening.
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 24 Feb 2016 20:23:37 +0100
++
++lgogdownloader (2.26-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Drop unattended-login.patch, merged upstream.
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 14 Oct 2015 18:25:27 +0200
++
++lgogdownloader (2.25-2) unstable; urgency=medium
++
++ * Handle unattended login attempts. Closes: #798740.
++
++ -- Stephen Kitt <skitt@debian.org> Sun, 13 Sep 2015 19:41:13 +0200
++
++lgogdownloader (2.25-1) unstable; urgency=medium
++
++ * New upstream release.
++
++ -- Stephen Kitt <skitt@debian.org> Mon, 07 Sep 2015 22:40:29 +0200
++
++lgogdownloader (2.24-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Refresh manpage-whatis.patch.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 14 Jul 2015 14:02:39 +0200
++
++lgogdownloader (2.23-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Refresh patch.
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 20 May 2015 07:18:47 +0200
++
++lgogdownloader (2.21-2) unstable; urgency=medium
++
++ * Upload to unstable.
++
++ -- Stephen Kitt <skitt@debian.org> Sun, 10 May 2015 21:45:26 +0200
++
++lgogdownloader (2.21-1) experimental; urgency=medium
++ * New upstream release.
++
++ -- Stephen Kitt <skitt@debian.org> Fri, 10 Apr 2015 21:24:56 +0200
++
++lgogdownloader (2.20-1) experimental; urgency=medium
++
++ * New upstream release, uploaded to experimental for the Jessie freeze.
++
++ -- Stephen Kitt <skitt@debian.org> Thu, 11 Dec 2014 00:16:28 +0100
++
++lgogdownloader (2.19-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Standards-Version 3.9.6, no change required.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 21 Oct 2014 20:31:24 +0200
++
++lgogdownloader (2.18-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Refresh patches, and drop help-without-home.patch (merged upstream).
++ * Add pointers to the git repository on Alioth.
++ * Make sure CPPFLAGS are taken into account.
++
++ -- Stephen Kitt <skitt@debian.org> Tue, 23 Sep 2014 17:18:17 +0200
++
++lgogdownloader (2.17-2) unstable; urgency=medium
++
++ * Avoid touching $HOME if --help or --version are specified on the
++ command-line. Closes: #761217.
++
++ -- Stephen Kitt <skitt@debian.org> Thu, 11 Sep 2014 23:17:00 +0200
++
++lgogdownloader (2.17-1) unstable; urgency=low
++
++ * Initial release. Closes: #761130.
++
++ -- Stephen Kitt <skitt@debian.org> Wed, 10 Sep 2014 23:26:18 +0200
--- /dev/null
--- /dev/null
++Source: lgogdownloader
++Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
++Uploaders: Stephen Kitt <skitt@debian.org>
++Section: web
++Priority: optional
++Build-Depends: cmake,
++ debhelper-compat (= 13),
++ help2man,
++ libboost-date-time-dev,
++ libboost-filesystem-dev,
++ libboost-iostreams-dev,
++ libboost-program-options-dev,
++ libboost-regex-dev,
++ libboost-system-dev,
++ libcurl4-gnutls-dev,
++ libhtmlcxx-dev,
++ libjsoncpp-dev (>= 1.7.1),
++ librhash-dev,
++ libtinyxml2-dev,
++ ninja-build,
++ pkg-config,
++ qtwebengine5-dev [amd64 arm64 armhf i386 mips64el mipsel],
++ zlib1g-dev
++Standards-Version: 4.6.2
++Rules-Requires-Root: no
++Vcs-Browser: https://salsa.debian.org/games-team/lgogdownloader
++Vcs-Git: https://salsa.debian.org/games-team/lgogdownloader.git
++Homepage: https://sites.google.com/site/gogdownloader/
++
++Package: lgogdownloader
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends},
++ ${shlibs:Depends}
++Description: downloader for GOG.com files
++ lgogdownloader is a client for the GOG.com download API, allowing
++ simple downloads and updates of games and other files from GOG.com.
++ .
++ This package is only useful if you own games on GOG.com. There are a
++ few free-as-in-beer games available for Linux, but the DFSG-free
++ games available on GOG.com are not provided for Linux and are
++ available in Debian anyway (lure-of-the-temptress,
++ beneath-a-steel-sky, flight-of-the-amazon-queen).
--- /dev/null
--- /dev/null
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: lgogdownloader
++Source: https://sites.google.com/site/gogdownloader/
++
++Files: *
++Copyright: none declared
++License: WTFPL-2
++
++Files: debian/*
++Copyright: 2014-2023 Stephen Kitt
++License: WTFPL-2
++
++License: WTFPL-2
++ This program is free software. It comes without any warranty, to the
++ extent permitted by applicable law. You can redistribute it and/or
++ modify it under the terms of the Do What The Fuck You Want To Public
++ License, Version 2, as published by Sam Hocevar. See
++ http://www.wtfpl.net/ for more details.
++ .
++ The full text of the license is provided in the COPYING file and
++ reproduced here:
++ .
++ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
++ Version 2, December 2004
++ .
++ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
++ .
++ Everyone is permitted to copy and distribute verbatim or modified
++ copies of this license document, and changing it is allowed as long
++ as the name is changed.
++ .
++ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++ .
++ 0. You just DO WHAT THE FUCK YOU WANT TO.
++ .
--- /dev/null
--- /dev/null
++# Configuration file for git-buildpackage and friends
++
++[DEFAULT]
++pristine-tar = True
--- /dev/null
--- /dev/null
++commit 52b8bdc8fa0028bcb875c6a723c6e04deeecbcb8
++Author: Sude <lgogdownloader@gmail.com>
++Date: Thu Aug 22 18:13:44 2024 +0300
++
++ Fix galaxyAPI::getPathFromDownlinkUrl with Fastly CDN urls
++
++ Fastly CDN urls don't contain query strings
++
++diff --git a/src/galaxyapi.cpp b/src/galaxyapi.cpp
++index 56d5745..7699d69 100644
++--- a/src/galaxyapi.cpp
+++++ b/src/galaxyapi.cpp
++@@ -567,6 +567,11 @@ std::string galaxyAPI::getPathFromDownlinkUrl(const std::string& downlink_url, c
++ else
++ filename_end_pos = downlink_url_unescaped.find_first_of("?");
++
+++ // Downlink doesn't contain "?path=" or "?"
+++ // Set end pos to length
+++ if (filename_end_pos == std::string::npos)
+++ filename_end_pos = downlink_url_unescaped.length();
+++
++ if (downlink_url_unescaped.find("/" + gamename + "/") != std::string::npos)
++ {
++ path.assign(downlink_url_unescaped.begin()+downlink_url_unescaped.find("/" + gamename + "/"), downlink_url_unescaped.begin()+filename_end_pos);
--- /dev/null
--- /dev/null
++commit 6556dc6a82b4e3d64ef1a7940736be3a7b2ac956
++Author: Sude <lgogdownloader@gmail.com>
++Date: Thu Aug 22 21:50:23 2024 +0300
++
++ Add more checks to galaxyAPI::getPathFromDownlinkUrl
++
++diff --git a/src/galaxyapi.cpp b/src/galaxyapi.cpp
++index 7699d69..716ebdd 100644
++--- a/src/galaxyapi.cpp
+++++ b/src/galaxyapi.cpp
++@@ -547,40 +547,51 @@ std::string galaxyAPI::getPathFromDownlinkUrl(const std::string& downlink_url, c
++ {
++ std::string path;
++ std::string downlink_url_unescaped = (std::string)curl_easy_unescape(curlhandle, downlink_url.c_str(), downlink_url.size(), NULL);
+++ size_t filename_start_pos = 0;
++
++- // GOG has changed the url formatting few times between 2 different formats.
++- // Try to get proper file name in both cases.
++- size_t filename_end_pos;
++- if (downlink_url_unescaped.find("?path=") != std::string::npos)
+++ // If url ends in "/" then remove it
+++ if (downlink_url_unescaped.back() == '/')
+++ downlink_url_unescaped.assign(downlink_url_unescaped.begin(), downlink_url_unescaped.end()-1);
+++
+++ // Assume that filename starts after last "/" in url
+++ if (downlink_url_unescaped.find_last_of("/") != std::string::npos)
+++ filename_start_pos = downlink_url_unescaped.find_last_of("/") + 1;
+++
+++ // Url contains "/gamename/"
+++ if (downlink_url_unescaped.find("/" + gamename + "/") != std::string::npos)
+++ filename_start_pos = downlink_url_unescaped.find("/" + gamename + "/");
+++
+++ // Assume that filename ends at the end of url
+++ size_t filename_end_pos = downlink_url_unescaped.length();
+++
+++ // Check to see if url has any query strings
+++ if (downlink_url_unescaped.find("?") != std::string::npos)
++ {
++- size_t token_pos = downlink_url_unescaped.find("&token=");
++- size_t access_token_pos = downlink_url_unescaped.find("&access_token=");
++- if ((token_pos != std::string::npos) && (access_token_pos != std::string::npos))
++- {
++- filename_end_pos = std::min(token_pos, access_token_pos);
++- }
++- else
+++ // Assume that filename ends at first "?"
+++ filename_end_pos = downlink_url_unescaped.find_first_of("?");
+++
+++ // Check for "?path="
+++ if (downlink_url_unescaped.find("?path=") != std::string::npos)
++ {
++- filename_end_pos = downlink_url_unescaped.find_first_of("&");
+++ size_t token_pos = downlink_url_unescaped.find("&token=");
+++ size_t access_token_pos = downlink_url_unescaped.find("&access_token=");
+++ if ((token_pos != std::string::npos) && (access_token_pos != std::string::npos))
+++ {
+++ filename_end_pos = std::min(token_pos, access_token_pos);
+++ }
+++ else
+++ {
+++ if (downlink_url_unescaped.find_first_of("&") != std::string::npos)
+++ filename_end_pos = downlink_url_unescaped.find_first_of("&");
+++ }
++ }
++ }
++- else
++- filename_end_pos = downlink_url_unescaped.find_first_of("?");
++
++- // Downlink doesn't contain "?path=" or "?"
++- // Set end pos to length
++- if (filename_end_pos == std::string::npos)
++- filename_end_pos = downlink_url_unescaped.length();
+++ path.assign(downlink_url_unescaped.begin()+filename_start_pos, downlink_url_unescaped.begin()+filename_end_pos);
++
++- if (downlink_url_unescaped.find("/" + gamename + "/") != std::string::npos)
++- {
++- path.assign(downlink_url_unescaped.begin()+downlink_url_unescaped.find("/" + gamename + "/"), downlink_url_unescaped.begin()+filename_end_pos);
++- }
++- else
++- {
++- path.assign(downlink_url_unescaped.begin()+downlink_url_unescaped.find_last_of("/")+1, downlink_url_unescaped.begin()+filename_end_pos);
+++ // Make sure that path contains "/gamename/"
+++ if (path.find("/" + gamename + "/") == std::string::npos)
++ path = "/" + gamename + "/" + path;
++- }
++
++ // Workaround for filename issue caused by different (currently unknown) url formatting scheme
++ // https://github.com/Sude-/lgogdownloader/issues/126
--- /dev/null
--- /dev/null
++Description: Provide meaningful whatis entry
++Author: Stephen Kitt <skitt@debian.org>
++
++--- a/man/CMakeLists.txt
+++++ b/man/CMakeLists.txt
++@@ -11,7 +11,7 @@
++ set(MAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1.gz")
++ add_custom_command(
++ OUTPUT ${MAN_FILE}
++- COMMAND ${HELP2MAN} -N -i ${H2M_FILE} -o ${MAN_PAGE} "\"${PROJECT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}\""
+++ COMMAND ${HELP2MAN} -N -i ${H2M_FILE} -n "downloader for GOG.com games and other files" -o ${MAN_PAGE} "\"${PROJECT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}\""
++ COMMAND ${GZIP} -f -9 ${MAN_PAGE}
++ MAIN_DEPENDENCY ${H2M_FILE}
++ COMMENT "Building man page"
--- /dev/null
--- /dev/null
++Description: Avoid storing non-reproducible information
++Author: Stephen Kitt <skitt@debian.org>
++
++This drops git information as well as the build architecture (from the
++user agent). The former varies depending on the availability of git
++tools, the latter varies depending on the build host.
++
++--- a/CMakeLists.txt
+++++ b/CMakeLists.txt
++@@ -69,46 +69,9 @@
++ endif(USE_QT_GUI)
++
++
++-set(GIT_CHECKOUT FALSE)
++-if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
++- if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
++- find_package(Git)
++- if(GIT_FOUND)
++- set(GIT_CHECKOUT TRUE)
++- else(GIT_FOUND)
++- message(WARNING "Git executable not found")
++- endif(GIT_FOUND)
++- else(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
++- message(STATUS "Shallow Git clone detected, not attempting to retrieve version info")
++- endif(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
++-endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
++-
++-if(GIT_CHECKOUT)
++- execute_process(COMMAND ${GIT_EXECUTABLE} diff --shortstat
++- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++- OUTPUT_VARIABLE GIT_SHORTSTAT
++- OUTPUT_STRIP_TRAILING_WHITESPACE
++- )
++- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
++- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++- OUTPUT_VARIABLE GIT_REV_PARSE
++- OUTPUT_STRIP_TRAILING_WHITESPACE
++- )
++- if(GIT_SHORTSTAT)
++- set(GIT_DIRTY ON)
++- endif(GIT_SHORTSTAT)
++-
++- if(GIT_DIRTY)
++- set(PROJECT_VERSION_MINOR ${PROJECT_VERSION_MINOR}M)
++- endif(GIT_DIRTY)
++-
++- set(PROJECT_VERSION_PATCH ${GIT_REV_PARSE})
++- set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
++-endif(GIT_CHECKOUT)
++-
++ set(VERSION_NUMBER ${PROJECT_VERSION})
++ set(VERSION_STRING "LGOGDownloader ${VERSION_NUMBER}")
++-set(DEFAULT_USER_AGENT "LGOGDownloader/${VERSION_NUMBER} (${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR})")
+++set(DEFAULT_USER_AGENT "LGOGDownloader/${VERSION_NUMBER}")
++
++ add_definitions(-D_FILE_OFFSET_BITS=64 -DVERSION_NUMBER="${VERSION_NUMBER}" -DVERSION_STRING="${VERSION_STRING}" -DDEFAULT_USER_AGENT="${DEFAULT_USER_AGENT}")
++
--- /dev/null
--- /dev/null
++manpage-whatis.patch
++reproducible.patch
++galaxy-urls-1.patch
++galaxy-urls-2.patch
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++#DH_VERBOSE = 1
++
++export DEB_BUILD_MAINT_OPTIONS = hardening=+all
++
++include /usr/share/dpkg/architecture.mk
++
++%:
++ dh $@ --buildsystem=cmake+ninja
++
++QT5WEWCFG = /usr/lib/$(DEB_HOST_MULTIARCH)/cmake/Qt5WebEngineWidgets/Qt5WebEngineWidgetsConfig.cmake
++
++override_dh_auto_configure:
++# Only build with Qt on architectures with Qt5WebEngineWidgets
++ifeq ($(QT5WEWCFG), $(wildcard $(QT5WEWCFG)))
++ dh_auto_configure -- -DUSE_QT_GUI=ON
++else
++ dh_auto_configure
++endif
++
++# There are no tests, and ninja test breaks the build
++override_dh_auto_test:
--- /dev/null
--- /dev/null
++3.0 (quilt)
++
--- /dev/null
--- /dev/null
++version=4
++opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%lgogdownloader-$1.tar.gz%" \
++ https://github.com/Sude-/lgogdownloader/tags \
++ (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate