Compare commits

...

3 Commits

10 changed files with 52 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
}

3
games-util/Manifest Normal file
View File

@ -0,0 +1,3 @@
DIST v1.tar.gz 12802 BLAKE2B 0523782f9a802a9ffc708d7240265d603cbb24c4694ad2a0a12564a19b9652e49c3b8f6f38dfd209dc8f83ac8579b154682a1beeb9f72d731978f6143a269ee5 SHA512 a81af47124f18b30ce8eb81a31b2c743f4ead3b503b00db2ffe67f92c84c80442937c792a6c4bf9c9621d2c420f487bc9f7e96afe985257a2c6d7f2c050895a1
EBUILD lgogdownloader-export-credentials-1.ebuild 679 BLAKE2B 4718af4c3764f42bd7c825ecf4f86e1a98c7b1607cd5dc961b590f05bce16e3c52e35b219724f0f38a841492e05970a32ea9e6778478ab322820d324cf393b8c SHA512 816531dbfdcf679fc7283d1aabc4da8711ae78637c6064702e194a2e0badcda3259416e5a0473389c6334a89795d5cc083bbeb8517e9368d511492e01fb4dab3
MISC metadata.xml 244 BLAKE2B 1871daef7b117a255d4458fc1b0276b0ee33170ccc477c4ee08da07df9a3ba1cd5029d1b7e8ecc124508e1f490308df3aa52355f5bdbd9cc63bfcb91e17ad52b SHA512 5f6859ff6e0140b286a554cc0b306c2e78caf97ab4e1aed6d337701f2950df08d8e7442d9fcef1bcca2a6b6b4a3e2d78ace65ec39873b7e52e286c5c79b62721

View File

@ -0,0 +1,3 @@
DIST v1.tar.gz 12802 BLAKE2B 0523782f9a802a9ffc708d7240265d603cbb24c4694ad2a0a12564a19b9652e49c3b8f6f38dfd209dc8f83ac8579b154682a1beeb9f72d731978f6143a269ee5 SHA512 a81af47124f18b30ce8eb81a31b2c743f4ead3b503b00db2ffe67f92c84c80442937c792a6c4bf9c9621d2c420f487bc9f7e96afe985257a2c6d7f2c050895a1
EBUILD lgogdownloader-export-credentials-1.ebuild 679 BLAKE2B 4718af4c3764f42bd7c825ecf4f86e1a98c7b1607cd5dc961b590f05bce16e3c52e35b219724f0f38a841492e05970a32ea9e6778478ab322820d324cf393b8c SHA512 816531dbfdcf679fc7283d1aabc4da8711ae78637c6064702e194a2e0badcda3259416e5a0473389c6334a89795d5cc083bbeb8517e9368d511492e01fb4dab3
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="GPL-3"
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-3.8
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>