123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # Copyright 1999-2016 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=6
- inherit autotools eutils linux-info
- DESCRIPTION="Live sync tool based on inotify, written in GNU C"
- HOMEPAGE="https://github.com/xaionaro/clsync http://ut.mephi.ru/oss/clsync"
- SRC_URI="https://github.com/xaionaro/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- LICENSE="GPL-3+"
- SLOT="0"
- KEYWORDS="~amd64 ~x86"
- IUSE="+caps cluster control-socket cgroups debug extra-debug
- extra-hardened gio hardened +highload-locks +inotify mhash
- namespaces seccomp"
- REQUIRED_USE="
- || ( gio inotify )
- extra-debug? ( debug )
- extra-hardened? ( hardened )
- mhash? ( cluster )
- seccomp? ( caps )
- "
- CDEPEND="
- dev-libs/glib:2
- cgroups? ( dev-libs/libcgroup )
- mhash? ( app-crypt/mhash )
- "
- DEPEND="${CDEPEND}
- virtual/pkgconfig
- "
- RDEPEND="${CDEPEND}
- ~app-doc/clsync-docs-${PV}
- "
- pkg_pretend() {
- use namespaces && CONFIG_CHECK="~NAMESPACES ~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS"
- use seccomp && CONFIG_CHECK+=" ~SECCOMP"
- check_extra_config
- }
- src_prepare() {
- eapply_user
- eautoreconf
- }
- src_configure() {
- local harden_level=0
- use hardened && harden_level=1
- use extra-hardened && harden_level=2
- local debug_level=0
- use debug && debug_level=1
- use extra-debug && debug_level=2
- econf \
- --docdir="${EPREFIX}/usr/share/doc/${PF}" \
- --disable-socket-library \
- --enable-clsync \
- --enable-debug=${debug_level} \
- --enable-paranoid=${harden_level} \
- --without-bsm \
- --without-kqueue \
- $(use_enable caps capabilities) \
- $(use_enable cluster) \
- $(use_enable control-socket socket) \
- $(use_enable highload-locks) \
- $(use_enable namespaces unshare) \
- $(use_enable seccomp) \
- $(use_with cgroups libcgroup) \
- $(use_with gio gio lib) \
- $(use_with inotify inotify native) \
- $(use_with mhash)
- }
- src_install() {
- emake DESTDIR="${D}" install
- # docs go into clsync-docs
- rm -rf "${ED}/usr/share/doc" || die
- newinitd "${FILESDIR}/${PN}.initd" "${PN}"
- newconfd "${FILESDIR}/${PN}.confd" "${PN}"
- # filter rules and sync scripts are supposed to be here
- keepdir "${EPREFIX}/etc/${PN}"
- insinto "/etc/${PN}"
- newins "${FILESDIR}/${PN}.conf" "${PN}.conf"
- }
- pkg_postinst() {
- einfo "${PN} is just a convenient way to run synchronization tools on live data,"
- einfo "it doesn't copy data itself, so you need to install software to do actual"
- einfo "data transfer. Usually net-misc/rsync is a good choise, but ${PN} is"
- einfo "is flexible enough to use any user tool, see manual page for details."
- einfo
- einfo "${PN} init script can be multiplexed, to use symlink init script to"
- einfo "othername and use conf.d/othername to configure it."
- einfo
- einfo "If you're interested in improved security, enable"
- einfo "USE=\"caps cgroups hardened namespaces seccomp\""
- }
|