Install this version:
emerge -a =app-backup/duplicity-3.2.0.1
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =app-backup/duplicity-3.2.0.1
Or alternatively:
emerge --autounmask-write -a =app-backup/duplicity-3.2.0.1
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{12..14} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_EXT=1
inherit distutils-r1
DESCRIPTION="Secure backup system using GnuPG to encrypt data"
HOMEPAGE="https://duplicity.gitlab.io/"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.com/duplicity/duplicity.git/"
inherit git-r3
else
SRC_URI="https://gitlab.com/duplicity/duplicity/-/archive/rel.${PV}/${PN}-rel.${PV}.tar.bz2"
S="${WORKDIR}"/${PN}-rel.${PV}
KEYWORDS="~amd64 ~arm64 ~x86 ~x64-macos"
fi
LICENSE="GPL-3"
SLOT="0"
IUSE="s3 test"
DEPEND="
app-alternatives/gpg
net-libs/librsync:=
dev-python/fasteners[${PYTHON_USEDEP}]
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/python-gnupg[${PYTHON_USEDEP}]
"
RDEPEND="
${DEPEND}
dev-python/paramiko[${PYTHON_USEDEP}]
s3? ( dev-python/boto3[${PYTHON_USEDEP}] )
"
BDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/setuptools-gettext[${PYTHON_USEDEP}]
dev-python/setuptools-scm[${PYTHON_USEDEP}]
sys-devel/gettext
test? (
|| ( app-arch/par2cmdline app-arch/par2cmdline-turbo )
)
"
EPYTEST_DESELECT=(
# boto3
testing/unit/test_cli_main.py::CommandlineTest::test_intermixed_args
)
PATCHES=(
"${FILESDIR}"/${PN}-3.2.0.1-fix-docs-cmd.patch
"${FILESDIR}"/${PN}-3.0.5-dont-repeat-standard-paths.patch
)
EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
distutils_enable_tests pytest
python_prepare_all() {
# Linting tests (black, pylint, etc); not relevant for us
rm testing/test_code.py || die
distutils-r1_python_prepare_all
}
python_test() {
# The default portage tempdir is too long for AF_UNIX sockets
local -x TMPDIR DOCKER_GNUPGHOME
TMPDIR="$(mktemp -d --tmpdir=/tmp ${PF}-XXX || die)"
# testing/__init__.py doesn't respect GNUPGHOME
DOCKER_GNUPGHOME="${TMPDIR}/gnupg"
cp -ar "${S}"/testing/gnupg "${DOCKER_GNUPGHOME}"/ || die
epytest
}
pkg_postinst() {
# TODO: optfeature
elog "Duplicity has many optional dependencies to support various backends."
elog "Currently it's up to you to install them as necessary."
}
Manage flags for this package:
euse -i <flag> -p app-backup/duplicity |
euse -E <flag> -p app-backup/duplicity |
euse -D <flag> -p app-backup/duplicity
app-alternatives/gpg net-libs/librsync:= dev-python/fasteners[] dev-python/pexpect[] dev-python/python-gnupg[]
app-alternatives/gpg net-libs/librsync:= dev-python/fasteners[] dev-python/pexpect[] dev-python/python-gnupg[] dev-python/paramiko[] s3? ( dev-python/boto3[] )
dev-python/setuptools[] dev-python/setuptools-gettext[] dev-python/setuptools-scm[] sys-devel/gettext test? ( || ( app-arch/par2cmdline app-arch/par2cmdline-turbo ) )
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | duplicity-rel.3.2.0.1.tar.bz2 | 1043352 bytes | https://gitlab.com/duplicity/duplicity/-/archive/rel.3.2.0.1/duplicity-rel.3.2.0.1.tar.bz2 |