View Raw Ebuild
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
M_PN=OneDriveGUI
DISTUTILS_USE_PEP517=no
PYTHON_COMPAT=(python3_{10..13})
DESCRIPTION="A simple GUI for OneDrive Linux client, with multi-account support."
HOMEPAGE="https://github.com/bpozdena/OneDriveGUI"
LICENSE="GPL-3"
SLOT="0"
inherit desktop distutils-r1 xdg-utils
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/bpozdena/${M_PN}.git"
inherit git-r3
else
SRC_URI="https://github.com/bpozdena/${M_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
S="${WORKDIR}/${M_PN}-${PV}"
fi
RESTRICT=test
RDEPEND=">=net-misc/onedrive-2.5.6
dev-python/requests[${PYTHON_USEDEP}]
dev-python/pyside[gui(+),webengine(+),widgets(+),${PYTHON_USEDEP}]
"
python_install() {
python_moduleinto "${M_PN}"
# Slightly inefficient as it duplicates the resource folder across
# python implementations but the project relies on those files being
# placed relative to the code.
python_domodule src/*
# The main file has to live alongside the ui module so make a
# separate script as the entry point.
#
# There is no main function and its implementation in the code is
# non-trivial so make a shell script.
local main_file="$(python_get_sitedir)/${M_PN}/${M_PN}.py"
python_newexe - "${M_PN}" <<-EOF
#!/bin/sh
exec "${EPREFIX}/usr/bin/${EPYTHON}" "${main_file}" "\${@}"
EOF
}
python_install_all() {
doicon src/resources/images/"${M_PN}.png"
make_desktop_entry "${M_PN}" "${M_PN}" "${M_PN}" \
"Network;FileTransfer;Monitor" \
"StartupNotify=true\nTerminal=false"
distutils-r1_python_install_all
}
pkg_postinst() {
xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
xdg_desktop_database_update
xdg_icon_cache_update
}