Removed games-util/lgogdownloader as upstream already provides our patch. Due to refusal to also merge our export script, we relegate it to another package which becomes the central piece for gog eclass

This commit is contained in:
grepwood@sucs.org 2021-11-03 03:31:34 +01:00
parent dba398b25d
commit 74181d3944
9 changed files with 49 additions and 148 deletions

View File

@ -44,14 +44,14 @@ PROPERTIES+="live"
LICENSE+="GOG_EULA"
BDEPEND+="
games-util/lgogdownloader[portage]
games-util/lgogdownloader-export-credentials
app-arch/innoextract
"
gog_sanity_check() {
portageq envvar GOG_CONFIG >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
die "Please define GOG_CONFIG in /etc/portage/make.conf as the output of export_gog_to_portage."
die "Please define GOG_CONFIG in /etc/portage/make.conf as the output of lgogdownloader-export-credentials."
fi
}

View File

@ -0,0 +1,3 @@
DIST v1.tar.gz 12802 BLAKE2B 0523782f9a802a9ffc708d7240265d603cbb24c4694ad2a0a12564a19b9652e49c3b8f6f38dfd209dc8f83ac8579b154682a1beeb9f72d731978f6143a269ee5 SHA512 a81af47124f18b30ce8eb81a31b2c743f4ead3b503b00db2ffe67f92c84c80442937c792a6c4bf9c9621d2c420f487bc9f7e96afe985257a2c6d7f2c050895a1
EBUILD lgogdownloader-export-credentials-1.ebuild 665 BLAKE2B a4ee4e23d62ab357d1c5377bc2a80b4d9d31720607c09a93432a501859625704ca4c50d144e5d99a8ea099c46841a97aa0eb597f91325212dc3c025cc5e9f702 SHA512 91130de6f4e8c1818bde3ca3781929d997ac867f87006e78c245c9ee31674b06fa2768029bfabfb1275bcffba201acd082f4d237c59c7aac2a40ee5289d936bf
MISC metadata.xml 244 BLAKE2B 1871daef7b117a255d4458fc1b0276b0ee33170ccc477c4ee08da07df9a3ba1cd5029d1b7e8ecc124508e1f490308df3aa52355f5bdbd9cc63bfcb91e17ad52b SHA512 5f6859ff6e0140b286a554cc0b306c2e78caf97ab4e1aed6d337701f2950df08d8e7442d9fcef1bcca2a6b6b4a3e2d78ace65ec39873b7e52e286c5c79b62721

View File

@ -0,0 +1,36 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Helper script for src_prepare-overlay GOG eclass that exports credentials."
HOMEPAGE="https://github.com/grepwood/lgogdownloader-export-credentials"
LICENSE="GPLv3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
SRC_URI="
https://github.com/grepwood/${PN}/archive/refs/tags/v${PV}.tar.gz
"
RDEPEND="
app-arch/tar
app-arch/xz-utils
sys-apps/coreutils
sys-apps/sed
games-util/lgogdownloader
app-shells/bash
"
DEPEND="${RDEPEND}"
S=${WORKDIR}
src_compile() {
cp ${S}/${PN}-${PV}/${PN} ${S}
}
src_install() {
dobin ${PN}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>moog621@gmail.com</email>
<name>Michał Dec</name>
</maintainer>
</pkgmetadata>

View File

@ -1 +0,0 @@
DIST lgogdownloader-3.7.tar.gz 85653 BLAKE2B bb6fe56be291ca726b97cfb7ce83e87e855584da911839a9bc6a923c027e7ea67e83e62a5e8bb1a0c62dd053a7d6728c1e82896d19ba48a310574dc8c6a647f5 SHA512 2085b9c64008d790a28dcb9d22009340acac164db316523919dcf797255fd57a36160950fb222e82b9ee6262ef8c0e86193e2d9a4488ea2105f9f4bbe7db727b

View File

@ -1,58 +0,0 @@
--- lgogdownloader/src/downloader.cpp 2020-04-17 15:41:32.142346898 +0200
+++ lgogdownloader-portage/src/downloader.cpp 2020-04-17 17:04:49.688606206 +0200
@@ -246,6 +246,7 @@
{
std::string email;
std::string password;
+ bool headless = false;
if (!Globals::globalConfig.sEmail.empty() && !Globals::globalConfig.sPassword.empty())
{
@@ -255,24 +256,32 @@
else
{
if (!isatty(STDIN_FILENO)) {
- std::cerr << "Unable to read email and password" << std::endl;
- return 0;
- }
- std::cerr << "Email: ";
- std::getline(std::cin,email);
+ /* Attempt to read this stuff from elsewhere */
+ bool cookie_gone = !(boost::filesystem::exists(Globals::globalConfig.curlConf.sCookiePath));
+ bool tokens_gone = !(boost::filesystem::exists(Globals::globalConfig.sConfigDirectory + "/galaxy_tokens.json"));
+ std::cout << Globals::globalConfig.curlConf.sCookiePath << std::endl;
+ std::cout << (Globals::globalConfig.sConfigDirectory + "/galaxy_tokens.json") << std::endl;
+ if(cookie_gone || tokens_gone) {
+ std::cerr << "Unable to read email and password" << std::endl;
+ return 0;
+ } else headless = true;
+ } else {
+ std::cerr << "Email: ";
+ std::getline(std::cin,email);
- std::cerr << "Password: ";
- struct termios termios_old, termios_new;
- tcgetattr(STDIN_FILENO, &termios_old); // Get current terminal attributes
- termios_new = termios_old;
- termios_new.c_lflag &= ~ECHO; // Set ECHO off
- tcsetattr(STDIN_FILENO, TCSANOW, &termios_new); // Set terminal attributes
- std::getline(std::cin, password);
- tcsetattr(STDIN_FILENO, TCSANOW, &termios_old); // Restore old terminal attributes
- std::cerr << std::endl;
+ std::cerr << "Password: ";
+ struct termios termios_old, termios_new;
+ tcgetattr(STDIN_FILENO, &termios_old); // Get current terminal attributes
+ termios_new = termios_old;
+ termios_new.c_lflag &= ~ECHO; // Set ECHO off
+ tcsetattr(STDIN_FILENO, TCSANOW, &termios_new); // Set terminal attributes
+ std::getline(std::cin, password);
+ tcsetattr(STDIN_FILENO, TCSANOW, &termios_old); // Restore old terminal attributes
+ std::cerr << std::endl;
+ }
}
- if (email.empty() || password.empty())
+ if ((email.empty() || password.empty()) && !headless)
{
std::cerr << "Email and/or password empty" << std::endl;
return 0;

View File

@ -1,24 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
function stringify_dir {
tar -c "$1" | xz -z9evc 2>/dev/null | base64 | tr -d '\n' | sed 's/$/\n/'
}
pushd ~ >/dev/null
BACKUP=""
GOG_CONF_DIR=".config/lgogdownloader"
if [ -d ${GOG_CONF_DIR} ]; then
BACKUP=$(stringify_dir "${GOG_CONF_DIR}")
fi
rm -rf "${GOG_CONF_DIR}"
lgogdownloader --login
OUTPUT=$(stringify_dir "${GOG_CONF_DIR}")
rm -rf "${GOG_CONF_DIR}"
if [ "${BACKUP}" != "" ]; then
echo "${BACKUP}" | base64 -d | tar -Jxf - -C ~
fi
popd >/dev/null
echo "Your GOG_CONFIG:"
echo "${OUTPUT}"

View File

@ -1,51 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake
DESCRIPTION="Unofficial downloader for GOG content."
HOMEPAGE="https://sites.google.com/site/gogdownloader/"
SRC_URI="https://sites.google.com/site/gogdownloader/${P}.tar.gz"
LICENSE="WTFPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="gui portage"
RDEPEND=">=app-crypt/rhash-1.3.3-r2:0=
dev-cpp/htmlcxx:0=
dev-libs/boost:0=
>=dev-libs/jsoncpp-1.7:0=
dev-libs/tinyxml2:0=
>=net-misc/curl-7.32:0=[ssl]
gui? ( dev-qt/qtwebengine:5=[widgets] )
portage? ( app-shells/bash:0
sys-apps/coreutils
app-arch/xz-utils
app-arch/tar
sys-apps/sed
)"
DEPEND="${RDEPEND}"
BDEPEND="sys-apps/help2man
virtual/pkgconfig"
src_configure() {
local mycmakeargs=(
-DUSE_QT_GUI=$(usex gui)
)
if use portage; then
patch -p1 < "${FILESDIR}/0001-recycle-cookies-and-tokens.patch"
fi
cmake_src_configure
}
src_install() {
cmake_src_install
gunzip "${ED}"/usr/share/man/man1/${PN}.1.gz || die
if use portage; then
dobin "${FILESDIR}/export_gog_to_portage"
fi
}

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<use>
<flag name="portage">
Enables headless operation required for Portage integration
</flag>
<flag name="gui">
Graphical user interface
</flag>
</use>
</pkgmetadata>