forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Tomáš Mózes <[email protected]> Signed-off-by: Alexys Jacob <[email protected]>
- Loading branch information
1 parent
d1dc56b
commit 72ab7e8
Showing
2 changed files
with
208 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST glusterfs-4.1.8.tar.gz 7835272 BLAKE2B 2546b9c0fe38989df71b8f72b193ce42c499621dcaaa4c5e3deeacfba68179f2280fc699cebeb87486171442152fa8b56b42a0d17465b739769eb227c82307d7 SHA512 950cd2fd774e3eb00f1ec06d54566736b6fbe8d1aed54477a19d9b2727eff8a70ef7ac32815cc7e01d45b5d357fc01af786e16c451f6ad314d472e61ba04ce85 | ||
DIST glusterfs-6.5.tar.gz 7536238 BLAKE2B 35c58da9e8564bda1f34b095f14316148cae2b5ff1820d22ae945a06d34ac57aea968e5914af3f5831250fd591a103fe4022e160bb96d491a7c915b5b68c54e7 SHA512 b7356de07e8126aea80b0489b9ac39ce0d10ea324fe38d05ff5740765e886f80fc7e6bdda9d4db1371d7b955b055cb76ea29e918e759a575db331a6436bad90f | ||
DIST glusterfs-6.7.tar.gz 7565257 BLAKE2B bb38383cad0cbf890b89dd75f7b260d21b381aed6da0bf7cf7b3335941d8e195fe5ff60a1c882df941daeb8ad627fddd1a44223c62d71e2388fd85a7ea46a386 SHA512 64d576c91e5accdb3547dc7216d854e96512c9035ddb87dc4018930f2b0a008ad929cd80ae89a340fca7a8d36e2106a30797d7b08768477b1415db95123e07d4 | ||
DIST glusterfs-7.2.tar.gz 7630773 BLAKE2B abceafd06ca8f5de1c84708a1a3ec4453c5d536d8811b773fa6f5dd02d6e3d450c329bc4d0fa32d970ff57e82a1fe3aa48ec9c3a7d3d5ca5817a91e8930b1b6e SHA512 fd1059222c4d30fa5c4011083c3c53af44433180ae124c884a774628051d31d95386bef71d4d25ed2b0c5dd8d9a6936601e8e37d963b34d291cb88ea45e31ff2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,207 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python3_{6,7,8} ) | ||
|
||
inherit autotools elisp-common python-single-r1 systemd user | ||
|
||
if [[ ${PV#9999} != ${PV} ]]; then | ||
inherit git-r3 | ||
EGIT_REPO_URI="https://github.com/gluster/glusterfs.git" | ||
else | ||
SRC_URI="https://download.gluster.org/pub/gluster/${PN}/$(ver_cut 1)/${PV}/${P}.tar.gz" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" | ||
fi | ||
|
||
DESCRIPTION="GlusterFS is a powerful network/cluster filesystem" | ||
HOMEPAGE="https://www.gluster.org/" | ||
|
||
LICENSE="|| ( GPL-2 LGPL-3+ )" | ||
SLOT="0" | ||
IUSE="debug emacs +fuse +georeplication infiniband ipv6 libressl +libtirpc rsyslog static-libs +syslog test vim-syntax +xml" | ||
|
||
REQUIRED_USE="georeplication? ( ${PYTHON_REQUIRED_USE} ) | ||
ipv6? ( libtirpc )" | ||
|
||
# the tests must be run as root | ||
RESTRICT="test" | ||
|
||
# sys-apps/util-linux is required for libuuid | ||
RDEPEND="!elibc_glibc? ( sys-libs/argp-standalone ) | ||
emacs? ( >=app-editors/emacs-23.1:* ) | ||
fuse? ( >=sys-fs/fuse-2.7.0:0 ) | ||
georeplication? ( ${PYTHON_DEPS} ) | ||
infiniband? ( sys-fabric/libibverbs:* sys-fabric/librdmacm:* ) | ||
libtirpc? ( net-libs/libtirpc:= ) | ||
!libtirpc? ( elibc_glibc? ( sys-libs/glibc[rpc(-)] ) ) | ||
xml? ( dev-libs/libxml2 ) | ||
sys-libs/readline:= | ||
dev-libs/libaio | ||
!libressl? ( dev-libs/openssl:=[-bindist] ) | ||
libressl? ( dev-libs/libressl:= ) | ||
dev-libs/userspace-rcu:= | ||
net-libs/rpcsvc-proto | ||
sys-apps/util-linux" | ||
DEPEND="${RDEPEND} | ||
virtual/acl | ||
virtual/pkgconfig | ||
sys-devel/bison | ||
sys-devel/flex | ||
test? ( >=dev-util/cmocka-1.0.1 | ||
app-benchmarks/dbench | ||
dev-vcs/git | ||
net-fs/nfs-utils | ||
virtual/perl-Test-Harness | ||
dev-libs/yajl | ||
sys-fs/xfsprogs | ||
sys-apps/attr )" | ||
|
||
SITEFILE="50${PN}-mode-gentoo.el" | ||
|
||
DOCS=( AUTHORS ChangeLog NEWS README.md THANKS ) | ||
|
||
# Maintainer notes: | ||
# * The build system will always configure & build argp-standalone but it'll never use it | ||
# if the argp.h header is found in the system. Which should be the case with | ||
# glibc or if argp-standalone is installed. | ||
|
||
pkg_setup() { | ||
python_setup "python3*" | ||
python-single-r1_pkg_setup | ||
|
||
# Needed for statedumps | ||
# https://github.com/gluster/glusterfs/commit/0e50c4b3ea734456c14e2d7a578463999bd332c3 | ||
enewgroup gluster | ||
enewuser gluster -1 -1 "${EPREFIX}"/var/run/gluster gluster | ||
} | ||
|
||
src_prepare() { | ||
default | ||
|
||
# build rpc-transport and xlators only once as shared libs | ||
find rpc/rpc-transport xlators -name Makefile.am | | ||
xargs sed -i 's|.*$(top_srcdir).*\.sym|\0 -shared|' || die | ||
|
||
# fix execution permissions | ||
chmod +x libglusterfs/src/gen-defaults.py || die | ||
|
||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
econf \ | ||
--disable-dependency-tracking \ | ||
--disable-silent-rules \ | ||
--disable-fusermount \ | ||
$(use_enable debug) \ | ||
$(use_enable fuse fuse-client) \ | ||
$(use_enable georeplication) \ | ||
$(use_enable infiniband ibverbs) \ | ||
$(use_enable static-libs static) \ | ||
$(use_enable syslog) \ | ||
$(use_enable test cmocka) \ | ||
$(use_enable xml xml-output) \ | ||
$(use libtirpc || echo --without-libtirpc) \ | ||
$(use ipv6 && echo --with-ipv6-default) \ | ||
--with-tmpfilesdir="${EPREFIX}"/etc/tmpfiles.d \ | ||
--docdir="${EPREFIX}"/usr/share/doc/${PF} \ | ||
--localstatedir="${EPREFIX}"/var | ||
} | ||
|
||
src_compile() { | ||
default | ||
use emacs && elisp-compile extras/glusterfs-mode.el | ||
} | ||
|
||
src_install() { | ||
default | ||
|
||
rm \ | ||
"${ED}"/etc/glusterfs/glusterfs-{georep-,}logrotate \ | ||
"${ED}"/etc/glusterfs/gluster-rsyslog-*.conf \ | ||
"${ED}"/usr/share/doc/${PF}/glusterfs{-mode.el,.vim} || die "removing false files failed" | ||
|
||
insinto /etc/logrotate.d | ||
newins "${FILESDIR}"/glusterfs.logrotate glusterfs | ||
|
||
if use rsyslog ; then | ||
insinto /etc/rsyslog.d | ||
newins extras/gluster-rsyslog-7.2.conf 60-gluster.conf | ||
fi | ||
|
||
if use emacs ; then | ||
elisp-install ${PN} extras/glusterfs-mode.el* | ||
elisp-site-file-install "${FILESDIR}/${SITEFILE}" | ||
fi | ||
|
||
if use vim-syntax ; then | ||
insinto /usr/share/vim/vimfiles/ftdetect; doins "${FILESDIR}"/${PN}.vim | ||
insinto /usr/share/vim/vimfiles/syntax; doins extras/${PN}.vim | ||
fi | ||
|
||
# insert some other tools which might be useful | ||
insinto /usr/share/glusterfs/scripts | ||
doins \ | ||
extras/backend-{cleanup,xattr-sanitize}.sh \ | ||
extras/clear_xattrs.sh \ | ||
extras/migrate-unify-to-distribute.sh | ||
|
||
# correct permissions on installed scripts | ||
# fperms 0755 /usr/share/glusterfs/scripts/*.sh | ||
chmod 0755 "${ED}"/usr/share/glusterfs/scripts/*.sh || die | ||
|
||
if use georeplication ; then | ||
# move the gsync-sync-gfid tool to a binary path | ||
# and set a symlink to be compliant with all other distros | ||
mv "${ED}"/usr/{share/glusterfs/scripts/gsync-sync-gfid,libexec/glusterfs/} || die | ||
dosym ../../../libexec/glusterfs/gsync-sync-gfid /usr/share/glusterfs/scripts/gsync-sync-gfid | ||
fi | ||
|
||
newinitd "${FILESDIR}/${PN}-r1.initd" glusterfsd | ||
newinitd "${FILESDIR}/glusterd-r3.initd" glusterd | ||
newconfd "${FILESDIR}/${PN}.confd" glusterfsd | ||
|
||
keepdir /var/log/${PN} | ||
keepdir /var/lib/glusterd/{events,glusterfind/.keys} | ||
|
||
# QA | ||
rm -r "${ED}/var/run/" || die | ||
if ! use static-libs; then | ||
find "${D}" -type f -name '*.la' -delete || die | ||
fi | ||
} | ||
|
||
src_test() { | ||
./run-tests.sh || die | ||
} | ||
|
||
pkg_postinst() { | ||
elog "Starting with ${PN}-3.1.0, you can use the glusterd daemon to configure your" | ||
elog "volumes dynamically. To do so, simply use the gluster CLI after running:" | ||
elog " /etc/init.d/glusterd start" | ||
echo | ||
elog "For static configurations, the glusterfsd startup script can be multiplexed." | ||
elog "The default startup script uses /etc/conf.d/glusterfsd to configure the" | ||
elog "separate service. To create additional instances of the glusterfsd service" | ||
elog "simply create a symlink to the glusterfsd startup script." | ||
echo | ||
elog "Example:" | ||
elog " # ln -s glusterfsd /etc/init.d/glusterfsd2" | ||
elog " # ${EDITOR} /etc/glusterfs/glusterfsd2.vol" | ||
elog "You can now treat glusterfsd2 like any other service" | ||
echo | ||
ewarn "You need to use a ntp client to keep the clocks synchronized across all" | ||
ewarn "of your servers. Setup a NTP synchronizing service before attempting to" | ||
ewarn "run GlusterFS." | ||
echo | ||
elog "If you are upgrading from a previous version of ${PN}, please read:" | ||
elog " http://docs.gluster.org/en/latest/Upgrade-Guide/upgrade_to_$(ver_cut '1-2')/" | ||
|
||
use emacs && elisp-site-regen | ||
} | ||
|
||
pkg_postrm() { | ||
use emacs && elisp-site-regen | ||
} |