From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sys-cluster/util-vserver/Manifest | 6 + sys-cluster/util-vserver/files/bash_completion | 300 +++++++++++++++++++++ sys-cluster/util-vserver/metadata.xml | 25 ++ .../util-vserver-0.30.216_pre3120.ebuild | 109 ++++++++ 4 files changed, 440 insertions(+) create mode 100644 sys-cluster/util-vserver/Manifest create mode 100644 sys-cluster/util-vserver/files/bash_completion create mode 100644 sys-cluster/util-vserver/metadata.xml create mode 100644 sys-cluster/util-vserver/util-vserver-0.30.216_pre3120.ebuild (limited to 'sys-cluster/util-vserver') diff --git a/sys-cluster/util-vserver/Manifest b/sys-cluster/util-vserver/Manifest new file mode 100644 index 000000000000..c5ddec8f02df --- /dev/null +++ b/sys-cluster/util-vserver/Manifest @@ -0,0 +1,6 @@ +AUX bash_completion 7568 SHA256 2232166a5aed9857a7a5c30adfdd4ea944e0608a29fad05f229b8cef2d61795d SHA512 b9e5745775121107da14540103bbf4943692a514cf3cd69b71c999a5e0eb1c81253b6ac4ca635cdb6e64cd1f1c1204dfecd4a6f83cbe7d5448625c53f80ed3bb WHIRLPOOL a17cc603408cf178c0d8299e6f36133715f6ec6c5a21c7440dca49338dde2280d24bb26852a21326ab2b62ac787ed84d06d0baf3097c0188f2448fbf055e79ab +DIST util-vserver-0.30.216-pre3120.tar.gz 990833 SHA256 00df201b3f103a9f5663734b5931abe2e575ff1dabeb7c8035c1ba21c7f4b6d2 SHA512 eca7680a8b06fecd678b4dad5824c92b53d872b3e7ec9cc275425437fb7fcfb3991f58770096f20d8274e37927a39b64ed9db082ef806e76d0c603b2cd64ef32 WHIRLPOOL 4f2191a339786d2d911a3bf31051972c993f95621824d7dfc11d30755070bfab3da2eb4d85ac80139e022c44aaf2313fe0042991a91ae828b12217cadfd6a331 +EBUILD util-vserver-0.30.216_pre3120.ebuild 2636 SHA256 c7bc346985fe12ba62c38ce1f943cb8cbacc2f6dcfb1c5d0f5c2d51cc972bfd5 SHA512 7a2be4456a29ee7abb0b0b612624c5e642f50789cf430edea9146e412e6b14324de90c2cc52c44a0313b9365017876910f545e9db8cb87647b3328684d04ff0e WHIRLPOOL 283291d3fba9436f0e295ac4f89b17c48d09187294ac11101baae0261efbc30edfec84d22791553377d17dc1999809338a65ca0f871d05063bcd959b5b265aed +MISC ChangeLog 4101 SHA256 8dfd2b9b8d315e05fd9fbd212fed5b288d0707a25e89f732f5b196f37e145abe SHA512 74f863d4dde2c5b6bc7b3780a31d968d120b0e0aa9ea40da4cacd6fd6160f0c0ade506738392c3f6d78e47ebb25f27ea2cf4f8073560064454d06903cd5e3d53 WHIRLPOOL 289a430351b6ce292b9a2980cc8e72e8953c21897a44f31c9ed9741305e99d501e2f5aacc161c1cb554043e7805dbb6f9c949348c4b70bf812753f7c29c0a9d8 +MISC ChangeLog-2015 24548 SHA256 93b43b7f26553db1247ac1f183304e27436a238f858bce9e79117f76299c130a SHA512 d238343c79442c0a909e7256af1e19e00bdfae43b85feae3426e5fc2792963604ac3eaed155ccc9ddc22259075cbb7a97157a99370a931467642749d8e1c3d57 WHIRLPOOL 12befea47c8f7ab9478de392728fc57c6720d3eee55a0aad7ff6ba4e45277bf842a7bb48e584bf739d5106ec4533e85ff89149cfca92a939cadf20e1142f61ae +MISC metadata.xml 873 SHA256 98e77b863f7f07ab9725d931b5028e5948c036fbb350db4ba7850cbfead96535 SHA512 1f1a943e7fd63dc53cde611ec0b359ac89bccc8dbd7538152bea9a88f938ff240faea693f66e40d77348070cd895797dba132e9e91f333a967ee4097f32e17ea WHIRLPOOL ea4e48b9feb89a49819fcecbd6af827dfaa756e95d18e6c51dc8be1fc8d5b876a971a5cff8479038705025dfa063d6d320f8972b592e6e48987f0bd2da6831d0 diff --git a/sys-cluster/util-vserver/files/bash_completion b/sys-cluster/util-vserver/files/bash_completion new file mode 100644 index 000000000000..73a9fef89f85 --- /dev/null +++ b/sys-cluster/util-vserver/files/bash_completion @@ -0,0 +1,300 @@ +# Completion for the vserver command. Source this file (or on some systems +# add it to ~/.bash_completion and start a new shell) and bash's completion +# mechanism will know all about vserver's options! +# +# Copyright (C) Thomas Champagne +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# The latest version of this software can be obtained here: +# +# http://linux-vserver.org/Vserver+Completion +# +# version 0.4.0 + +have vserver-info && { +: ${UTIL_VSERVER_VARS:=$(vserver-info - SYSINFO |grep prefix: | awk '{ print $2}')/lib/util-vserver/util-vserver-vars} + +test -e "$UTIL_VSERVER_VARS" && { + +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + +_vserver() { + local cur cmds cmdOpts cmdMethodOpts helpCmds names names_pipe func i j method + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # find available vServers: + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]} | sed 's/ /|/g'` + + # available commands + cmds='start stop restart condrestart suexec exec enter chkconfig \ + running status unify pkg apt-get apt-config apt-cache \ + rpm pkgmgmt delete' + + # options (long and short name) + cmdOpts='--help --version --debug --defaulttty -s --sync -v \ + --verbose --silent --' + + cmdMethodOpts='-m -n --context --confdir --lockfile \ + --hostname --netdev --netbcast --netmask \ + --netprefix --interface --cpuset \ + --cpusetcpus --cpusetmems --cpusetvirt \ + --initstyle --flags --help --' + + # if the previous option is a single option + helpCmds='--help|--version' + if [[ ${COMP_WORDS[1]} == @($helpCmds) ]] ; then + return 0 + fi + + # lookup the vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + #a vserver has been found + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + # Show the vserver command without build + case "${COMP_WORDS[i+1]}" in + start) + COMPREPLY=( $( compgen -W "--rescue --rescue-cmd" -- $cur ) ) + ;; + # No completion for apt-config + stop|restart|condrestart|enter|running|status|apt-config|delete) + ;; + suexec) + # I don't know how to do + COMPREPLY=( $( compgen -W -- $cur ) ) + ;; + exec) + #I don't know how to do + COMPREPLY=( $( compgen -W "" -- $cur ) ) + ;; + unify) + COMPREPLY=( $( compgen -W "-R" -- $cur ) ) + ;; + apt-get|apt-cache) + func=${COMP_WORDS[i+1]} + COMP_WORDS=( ${COMP_WORDS[@]:$((i+1))} ) + COMP_CWORD=$((COMP_CWORD-i-1)) + declare -f _${func//-/_} > /dev/null && _${func//-/_} + ;; + *) + COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) + ;; + esac + return 0 + else + #no vserver name found + prev=${COMP_WORDS[COMP_CWORD-1]} + + #search the new name of vserver + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} == !(vserver|-*) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + j=$i + i=${#COMP_WORDS[@]} + for (( ; j < ${#COMP_WORDS[@]}-1; j++ )) ; do + if [[ ${COMP_WORDS[j]} == "--" ]]; then + # method's parameter + case "$method" in + legacy|copy) + ;; + apt-rpm) + COMPREPLY=( $( compgen -W "-d" -- $cur ) ) + ;; + yum) + COMPREPLY=( $( compgen -W "-d" -- $cur ) ) + ;; + rpm) + COMPREPLY=( $( compgen -W "-d --empty --force --nodeps" -- $cur ) ) + ;; + skeleton) + ;; + debootstrap) + COMPREPLY=( $( compgen -W "-d -m -s --" -- $cur ) ) + ;; + *) + ;; + esac + return 0 + break + fi + + if [[ ${COMP_WORDS[j]} == @(build|-m) ]]; then + i=$j + if (( $j+1 < ${#COMP_WORDS[@]}-1 )) ; then + method=${COMP_WORDS[j+1]} + fi + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + case $prev in + --help) + ;; + -n|--context|--confdir|--lockfile|--hostname|--netdev|--netbcast|--netmask|--netprefix|--interface|--cpuset|--cpusetcpus|--cpusetmems|--cpusetvirt|--initstyle|--flags) + COMPREPLY=( $( compgen -W "" -- $cur ) ) + ;; + -m) + COMPREPLY=( $( compgen -W "legacy copy apt-rpm yum rpm skeleton debootstrap" -- $cur ) ) + ;; + *) + COMPREPLY=( $( compgen -W "$cmdMethodOpts" -- $cur ) ) + ;; + esac + else + COMPREPLY=( $( compgen -W "build" -- $cur ) ) + fi + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + + return 0 + fi + + return 0 +} + +complete -F _vserver vserver + +_vapt_rpm_yum() +{ + local cur cmds cmdOpts helpCmds names func i + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # options (long and short name) + cmdOpts='--help --version --quiet -q --all' + + # if the previous option is a single option + helpCmds='--help|--version' + + if [[ "${COMP_WORDS[1]}" == "@($helpCmds)" ]] ; then + return 0 + fi + + # search -- + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} = "--" ]] ; then + # found it! + break + fi + done + + # find available vServers + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]}" --all" | sed 's/ /|/g'` + + if (( $i < ${#COMP_WORDS[@]}-1 )) && (( $i < $COMP_CWORD )) ; then + func=${COMP_WORDS[0]:1} + COMP_WORDS=( $func ${COMP_WORDS[@]:$((i+1))} ) + COMP_CWORD=$((COMP_CWORD-i)) + declare -f _${func//-/_} > /dev/null && _${func//-/_} + else + # search vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + if [[ "${COMP_WORDS[i]}" = "--all" ]] ; then + cmdOpts='--' + COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) + else + cmdOpts='--' + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + fi + + return 0 +} + +_vserver_copy() +{ + local cur prev cmdOpts helpCmds confCmds names names_pipe i + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # find available vServers + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]} | sed 's/ /|/g'` + + # options (long and short name) + cmdOpts='--help -h --version -V --verbose -v --quiet -q \ + --vsroot -r --rsh -R --stopstart -s \ + --domain -d --ip -i' + + # if the previous option is a single option + helpCmds='--help|-h|--version|-V' + + if [[ ${COMP_WORDS[1]} == @($helpCmds) ]] ; then + return 0 + fi + + confCmds='--ip|-i|--domain|-d' + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $prev == @($confCmds) ]] ; then + return 0 + fi + + # search a vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + return 0 + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + + return 0 +} + +complete -F _vapt_rpm_yum vapt-get +complete -F _vapt_rpm_yum vrpm +complete -F _vapt_rpm_yum vyum +complete -F _vserver_copy vserver-copy + +} +} diff --git a/sys-cluster/util-vserver/metadata.xml b/sys-cluster/util-vserver/metadata.xml new file mode 100644 index 000000000000..a5775a67d746 --- /dev/null +++ b/sys-cluster/util-vserver/metadata.xml @@ -0,0 +1,25 @@ + + + + + monsieurp@gentoo.org + Patrice Clement + + + ccx@volny.cz + Jan Pobrislo + Proxied Maintainer + + + proxy-maint@gentoo.org + Proxy Maintainers + + + util-vserver is a Linux virtual server utility framework, + allowing an administrator to set up multiple, isolated + virtual servers. It can be used to run various services + securely separated, without requiring special configuration. + Virtual servers are unable to interact with each other, or + the main server. + + diff --git a/sys-cluster/util-vserver/util-vserver-0.30.216_pre3120.ebuild b/sys-cluster/util-vserver/util-vserver-0.30.216_pre3120.ebuild new file mode 100644 index 000000000000..135626f3308f --- /dev/null +++ b/sys-cluster/util-vserver/util-vserver-0.30.216_pre3120.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils bash-completion-r1 + +MY_P="${P/_/-}" + +DESCRIPTION="Linux-VServer admin utilities" +HOMEPAGE="http://www.nongnu.org/util-vserver/" +SRC_URI="http://people.linux-vserver.org/~dhozac/t/uv-testing/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~sparc x86" + +CDEPEND=" + dev-libs/beecrypt + net-firewall/iptables + net-misc/vconfig + sys-apps/iproute2" + +DEPEND=" + ${CDEPEND} + >dev-libs/dietlibc-0.33" + +RDEPEND=" + ${CDEPEND}" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if [[ -z "${VDIRBASE}" ]]; then + einfo + einfo "You can change the default vserver base directory (/vservers)" + einfo "by setting the VDIRBASE environment variable." + fi + + : ${VDIRBASE:=/vservers} + + einfo + einfo "Using \"${VDIRBASE}\" as vserver base directory" + einfo +} + +src_test() { + # do not use $D from portage by accident (#297982) + sed -i -e 's/^\$D //' "${S}"/src/testsuite/vunify-test.sh || die + + default +} + +src_configure() { + local myeconf=( + --with-vrootdir="${VDIRBASE}" + --with-initscripts=gentoo + --localstatedir=/var + ) + + econf "${myeconf[@]}" +} + +src_compile() { + emake -j1 || die "emake failed!" +} + +src_install() { + make DESTDIR="${D}" install install-distribution \ + || die "make install failed!" + + # keep dirs + keepdir /var/cache/vservers + keepdir "${VDIRBASE}" + keepdir "${VDIRBASE}"/.pkg + + # bash-completion + newbashcomp "${FILESDIR}"/bash_completion ${PN} + + dodoc README ChangeLog NEWS AUTHORS THANKS util-vserver.spec +} + +pkg_postinst() { + # Create VDIRBASE in postinst, so it is (a) not unmerged and (b) also + # present when merging. + + mkdir -p "${VDIRBASE}" || die + if ! setattr --barrier "${VDIRBASE}"; then + ewarn "Filesystem on ${VDIRBASE} does not support chroot barriers." + ewarn "Chroot barrier is additional security measure that is used" + ewarn "when two vservers or the host system share the same filesystem." + ewarn "If you intend to use separate filesystem for every vserver" + ewarn "you can safely ignore this warning." + ewarn "To manually apply a barrier use: setattr --barrier ${VDIRBASE}" + ewarn "For details see: http://linux-vserver.org/Secure_chroot_Barrier" + fi + + rm /etc/vservers/.defaults/vdirbase || die + ln -sf "${VDIRBASE}" /etc/vservers/.defaults/vdirbase || die + + elog + elog "You have to run the vprocunhide command after every reboot" + elog "in order to setup /proc permissions correctly for vserver" + elog "use. An init script has been installed by this package." + elog "To use it you should add it to a runlevel:" + elog + elog " rc-update add vprocunhide default" + elog +} -- cgit v1.2.3