pimsync-0.5.11jacksonchen666
download
# Copyright 2026 JacksonChen666
# Distributed under the terms of the GNU General Public License v2
# Autogenerated by pycargoebuild 0.15.1 (patched for git.sr.ht support)
EAPI=8
CRATES="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]+wasi-snapshot-preview1
[email protected]+wasi-0.2.4
[email protected]+wasi-0.2.4
[email protected]+wasi-0.3.0-rc-2026-01-06
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
"
declare -A GIT_CRATES=(
[digest_auth]='https://git.sr.ht/~whynothugo/digest_auth_rs/archive/%commit%.tar.gz;3383b863d1d770bbab1d6690929a7f6a3e8c1a93;digest_auth_rs-%commit%'
)
RUST_MIN_VER="1.88.0"
inherit cargo shell-completion systemd
DESCRIPTION="Synchronize calendars and contacts (vdirsyncer rewrite)"
HOMEPAGE="https://pimsync.whynothugo.nl/"
SRC_URI="
https://git.sr.ht/~whynothugo/pimsync/archive/v${PV}.tar.gz -> ${P}.tar.gz
${CARGO_CRATE_URIS}
"
# SRC_URI only strictly needed for any dev/commits in between releases builds.
# also must match what upstream is using at the exact commit
#https://git.sr.ht/~whynothugo/vstorage/archive/f77520288df1a2c439bbe578289aa8c3f2c2b972.tar.gz ->
# vstorage-f77520288df1a2c439bbe578289aa8c3f2c2b972.tar.gz
#https://git.sr.ht/~whynothugo/libdav/archive/v0.10.4.tar.gz -> libdav-0.10.4.tar.gz
#https://git.sr.ht/~whynothugo/libjmap/archive/2fb17ed328d4d7692ffd64024f67e908c574c0a3.tar.gz ->
# libjmap-2fb17ed328d4d7692ffd64024f67e908c574c0a3.tar.gz
S="${WORKDIR}/${PN}-v${PV}"
# upstream asks for this, build script requires this
export PIMSYNC_VERSION="${PVR}+jacksonchen666-gentoo"
# https://pimsync.whynothugo.nl/install.html#requirements
# make is a @system dependency
DEPEND="
dev-db/sqlite
"
BDEPEND="
doc? (
app-text/mandoc
dev-python/sphinx
)
"
LICENSE="EUPL-1.2"
# Dependent crate licenses
LICENSE+=" Apache-2.0 BSD EUPL-1.2 ISC MIT MPL-2.0 Unicode-3.0 ZLIB"
SLOT="0"
KEYWORDS="~amd64"
IUSE="jmap doc lto"
# while there's no mirror for pimsync, there's probably gonna be a mirror on
# everything. crates.io is also slower than gentoo mirrors, so it's annoying
# to disable mirrors
#RESTRICT="mirror"
src_configure() {
local myfeatures=(
$(usev jmap)
)
cargo_src_configure
}
# only strictly needed for any dev/commits in between releases builds
#src_unpack() {
# # this seems to unpack everything else too, even the other .tar.gz, even
# # though that won't be used as it's unpacked into directories
# # separately. that will be used in this ebuild
# cargo_src_unpack
#
# # due to 16fe0fc in upstream pimsync making the vstorage rust dependency
# # a git submodule, the same must be emulated (or it could be reverted
# # for whatever reason, but not sure about that).
# #
# # the submodules:
# # ./vstorage
# # ./vstorage/libdav
# # ./vstorage/libjmap (optional dependency, but cargo refuses to work
# # without it)
# cd "$S"
# rmdir vstorage || die
# mv "${WORKDIR}/vstorage-"* "vstorage/" || die
#
# cd "./vstorage"
# rmdir libdav libjmap || die
# mv "${WORKDIR}/libdav-"* "libdav" || die
# mv "${WORKDIR}/libjmap-"* "libjmap" || die
#}
src_prepare() {
default
# upstream uses [patch.crates-io] to patch a dependency
#
# cargo.eclass generates
# [patch.'https://git.sr.ht/~whynothugo/digest_auth_rs/archive/%commit%.tar.gz']
# because of the specified URI in GIT_CRATES, and puts it into
# ${ECARGO_HOME}/config.toml
#
# unfortunately it seems like the patch key *has* to match for whatever
# reason, otherwise cargo will try to update patch dependencies, which
# won't work because it's in offline mode
sed -i 's~^\[patch..https://git\.sr\.ht/\~whynothugo/digest_auth_rs.*.\]$~[patch.crates-io]~g' \
"${ECARGO_HOME}/config.toml" || die
if use lto; then
sed -E -i 's/lto = .*/lto = true/' Cargo.toml || die
else
sed -E -i 's/lto = .*/lto = false/' Cargo.toml || die
fi
}
src_compile() {
cargo_src_compile
if use doc; then
emake docs
HTML_DOCS="${S}/docs/build/html/"
fi
}
src_install() {
cargo_src_install
doman pimsync.1
doman pimsync.conf.5
doman pimsync-migration.7
doman pimsync-status.7
dozshcomp contrib/_pimsync
exeinto /etc/user/init.d
newexe contrib/pimsync.openrc pimsync
systemd_douserunit "${FILESDIR}/pimsync.service"
if use doc; then
einstalldocs
fi
}
src_test() {
local CARGO_SKIP_TESTS=(
sync_vdir_to_xandikos_via_unix_socket # uses external program
)
cargo_src_test
}
# XXX: test jmap functionality
# TODO: linux-raw-sys
# TODO: inotify-sys