View Raw Ebuild
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# py3.14 tests fail for tests/test_api_base.py::TestCreateCopy::test
PYTHON_COMPAT=( python3_{11..13} )
DISTUTILS_USE_PEP517=hatchling
inherit distutils-r1 optfeature
DESCRIPTION="The better dd for embedded projects, based on block maps"
HOMEPAGE="https://github.com/yoctoproject/bmaptool"
SRC_URI="
https://github.com/yoctoproject/bmaptool/archive/refs/tags/v${PV}.tar.gz
-> ${P}.tar.gz
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
# pyproject.tom'l isnt the ultimate truth for dependencies.
# Check the Debian control file and rpm spec for a better idea.
RDEPEND="
app-arch/tar
"
BDEPEND="
test? (
app-arch/bzip2
app-arch/gzip
app-arch/lz4
app-arch/lzop
app-arch/pbzip2
app-arch/pigz
app-arch/unzip
app-arch/xz-utils
app-arch/zstd
dev-python/gpgmepy[${PYTHON_USEDEP}]
dev-python/six[${PYTHON_USEDEP}]
)
"
DOCS=( CHANGELOG.md README.md )
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_prepare_all() {
distutils-r1_python_prepare_all
# Use reference implementation where alternative implementation would already be preferred
sed -e '/decompressor =/ { s/"gzip"/"gzip-reference"/; s/"bzip2"/"bzip2-reference"/ }' \
-i src/bmaptool/TransRead.py || die
}
src_install() {
distutils-r1_src_install
doman docs/man1/bmaptool.1
}
pkg_postinst() {
optfeature "ssh:// support" virtual/ssh
optfeature "password-based SSH authentication" net-misc/sshpass
optfeature_header "Support for on-the-fly decompression:"
optfeature "'.gz', '.gzip', '.tar.gz' and '.tgz'" app-arch/gzip app-arch/pigz
optfeature "'.bz2', 'tar.bz2', '.tbz2', '.tbz', and '.tb2'" app-arch/bzip2 app-arch/pbzip2
optfeature "'.xz', '.tar.xz', '.txz'" app-arch/xz-utils
optfeature "'.lzo', 'tar.lzo', '.tzo'" app-arch/lzop
optfeature "'.lz4', 'tar.lz4', '.tlz4'" app-arch/lz4
optfeature "'.zst', 'tar.zst', '.tzst'" app-arch/zstd
optfeature "'.zip'" app-arch/unzip
}