From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4BC1A1382C5 for ; Fri, 12 Jun 2020 22:33:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 649DDE0875; Fri, 12 Jun 2020 22:33:31 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 40B0AE0875 for ; Fri, 12 Jun 2020 22:33:31 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7896634F110 for ; Fri, 12 Jun 2020 22:33:29 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E689421D for ; Fri, 12 Jun 2020 22:33:24 +0000 (UTC) From: "Samuel Bernardo" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Samuel Bernardo" Message-ID: <1592001190.2a4cf534a94309b8b9af65dadadff46a0f1e7b8a.samuelbernardo@gentoo> Subject: [gentoo-commits] repo/user/ssnb:master commit in: app-emulation/opennebula/ X-VCS-Repository: repo/user/ssnb X-VCS-Files: app-emulation/opennebula/Manifest app-emulation/opennebula/opennebula-5.10.5.ebuild X-VCS-Directories: app-emulation/opennebula/ X-VCS-Committer: samuelbernardo X-VCS-Committer-Name: Samuel Bernardo X-VCS-Revision: 2a4cf534a94309b8b9af65dadadff46a0f1e7b8a X-VCS-Branch: master Date: Fri, 12 Jun 2020 22:33:24 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: cd284d0d-a9ec-43ce-b17e-d0e1ac4566fc X-Archives-Hash: b3bfd663ad5d99fb405f26842de84252 commit: 2a4cf534a94309b8b9af65dadadff46a0f1e7b8a Author: Samuel Bernardo gmail com> AuthorDate: Fri Jun 12 22:33:10 2020 +0000 Commit: Samuel Bernardo gmail com> CommitDate: Fri Jun 12 22:33:10 2020 +0000 URL: https://gitweb.gentoo.org/repo/user/ssnb.git/commit/?id=2a4cf534 Update opennebula Signed-off-by: Samuel Bernardo gmail.com> app-emulation/opennebula/Manifest | 2 + app-emulation/opennebula/opennebula-5.10.5.ebuild | 306 ++++++++++++++++++++++ 2 files changed, 308 insertions(+) diff --git a/app-emulation/opennebula/Manifest b/app-emulation/opennebula/Manifest index d1d31f1..7ce17c1 100644 --- a/app-emulation/opennebula/Manifest +++ b/app-emulation/opennebula/Manifest @@ -61,6 +61,8 @@ AUX tmpfiles.d/opennebula-sunstone.conf 77 BLAKE2B 9988562b0e36bf74fc67af5a1777e AUX tmpfiles.d/opennebula.conf 77 BLAKE2B 9988562b0e36bf74fc67af5a1777eca18b24e0a1bcfc78735f360f1aceca4602e32f7b6cfbe3b731a13725a9cd14a4dc49b71c12bb7576a29aa00112b37cd2be SHA512 c13210255ebb0f34d464e2799858d6ac2a79afac287ead639821ef5e939b7666a960ebb1ee96bc7098a111ddd6765e72d8a5e53e0647b9a866d0826e02cbd2a1 DIST opennebula-5.10.1.tar.gz 43207580 BLAKE2B de87e839cd772bec769af4a689fed02e81fbdc6fbb35def9ad6344383dc935ebd431137cb194dd3b840965004f4e145ac63443d7034d56a9a6bb19af9030642d SHA512 861293298997c825e94228ea28f0f352db3f56dd28b654be24ca2226edd422fc54cf94665f5ae5cc17dc51d3d52081c936f249b77fc4f8198de6a1ec0006edaf DIST opennebula-5.10.4.tar.gz 5697792 BLAKE2B fde611cbe5b44ee403b57e915253c9ffba267230bf3a54cd466260615918e871aebeae6f17c246a84ef1686df176134acff272c49e6a9b69c8841bc8fab1f1b5 SHA512 c509ec4a56b7865d118ab79e08227f0a78d1d899361ea2ae2ea3c6ac6ad3ab4a2a38211a4f5b7abf35ef512674d13ffb19f97286fed63515289e4f9a602f3145 +DIST opennebula-5.10.5.tar.gz 5699952 BLAKE2B 35dce44e085342e8d2628bc060ed0644309a6e5aa8ec1898663b537eb698d66f980353cc60ab3b6496bf78b496dcd1097db2d327b54f80d87bf273ab67aeef55 SHA512 e35b9f8c8bc4f1e4424e3a8083c2c31edbe5b799df44a222bd310fdca87c4a3c6d2a3f27da75b12364bdf29883e6f641c2ad5c484e5cc07dce3ebf054681fc58 EBUILD opennebula-5.10.1.ebuild 9405 BLAKE2B fd6dfefc76da0aaadc993b7ed1593b8826fb642a92797220c9ce6226b846539900f6e7914730decfe57f79514654506e9a1aed76ebd28c1fc797d71ee5a6b2ba SHA512 360d3323e46a1253f6489c696e020ea38e260923d6b0fcb50154b0cb412b4bd3db994365a072915f5a8411032cea12dd8b87fe2f730e418d6742dd7218722a66 EBUILD opennebula-5.10.4.ebuild 9735 BLAKE2B dd7f5bf32aea6bd30f4ca75d7db123fb9ce03f1357d789fefa76a46b7a4f1a669df0d68d5239e85a40da591d7bbf993f759a02704ba468b6c04f6445401343f4 SHA512 3c54819ee10cb07fe7ea41dd0b65b8de9075ac96e34524c512cd58457071b00f7be85f3bd062a57aa4459703b29d98c2b577a97c6b03093699b99021b59cfdf5 +EBUILD opennebula-5.10.5.ebuild 9735 BLAKE2B dd7f5bf32aea6bd30f4ca75d7db123fb9ce03f1357d789fefa76a46b7a4f1a669df0d68d5239e85a40da591d7bbf993f759a02704ba468b6c04f6445401343f4 SHA512 3c54819ee10cb07fe7ea41dd0b65b8de9075ac96e34524c512cd58457071b00f7be85f3bd062a57aa4459703b29d98c2b577a97c6b03093699b99021b59cfdf5 MISC metadata.xml 931 BLAKE2B abb0ecf04eb6fc45f64c5d2d6636591c9d706fbf1902943a80f7e058443787824581219fb8457a83192e4e2b672521609449d4eef78ab677f8c093fe939034b6 SHA512 c3770f399572b16601e7eeaf4a1eb4b5eea950ad18239be8719124f60f3edd02da4c7b28b177329d70b0810ee7d8597e522dd62a1bd4c8ea1194acf0d92dfeb2 diff --git a/app-emulation/opennebula/opennebula-5.10.5.ebuild b/app-emulation/opennebula/opennebula-5.10.5.ebuild new file mode 100644 index 0000000..7d8d079 --- /dev/null +++ b/app-emulation/opennebula/opennebula-5.10.5.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=7 +USE_RUBY="ruby24 ruby25 ruby26 ruby27" +PYTHON_COMPAT=( python2_7 python3_6 ) + +inherit user eutils multilib ruby-ng systemd rpm python-r1 + +MY_P="one-release-${PV}" +P_RPM="${P}-1" + +DESCRIPTION="OpenNebula Virtual Infrastructure Engine" +HOMEPAGE="http://www.opennebula.org/" + +IUSE="qemu +mysql xen sqlite +extras systemd docker +sunstone vnc +python +doc" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +SRC_URI="https://github.com/OpenNebula/one/archive/release-${PV}.tar.gz -> ${P}.tar.gz" + +RDEPEND=">=dev-libs/xmlrpc-c-1.18.02[abyss,cxx,threads] + dev-lang/ruby + python? ( ${PYTHON_DEPS} + >=dev-python/pygobject-2.90.4:3[${PYTHON_USEDEP}] ) + extras? ( dev-libs/openssl + dev-ruby/libxml + net-misc/curl + dev-libs/libxslt + dev-libs/expat + dev-ruby/uuidtools + dev-ruby/amazon-ec2 + dev-ruby/webmock + dev-ruby/mysql + dev-ruby/mysql2 + dev-ruby/parse-cron + dev-ruby/sequel + dev-ruby/treetop + dev-ruby/xml-simple + dev-ruby/zendesk_api + dev-ruby/ffi-rzmq + dev-ruby/ffi-rzmq-core + dev-ruby/rqrcode + dev-ruby/rqrcode_core + dev-ruby/chunky_png + dev-ruby/rotp + dev-libs/log4cpp ) + mysql? ( virtual/mysql ) + dev-db/sqlite + net-misc/openssh + net-fs/nfs-utils + dev-db/mariadb + net-libs/zeromq + || ( app-cdr/cdrkit app-cdr/cdrtools ) + sqlite? ( dev-ruby/sqlite3 ) + qemu? ( app-emulation/libvirt[libvirtd,qemu] ) + xen? ( app-emulation/xen-tools )" +DEPEND="${RDEPEND} + dev-lang/ruby:2.5 + >=dev-util/scons-3.0.0 + dev-ruby/nokogiri + dev-ruby/bundler + dev-nodejs/grunt + dev-nodejs/bower + dev-nodejs/ini + dev-nodejs/braces + net-libs/nodejs[npm] + net-libs/libvncserver + app-text/ronn + dev-ruby/builder + dev-ruby/highline + dev-ruby/ipaddress:1 + docker? ( dev-go/dep )" + +# make sure no eclass is running tests +RESTRICT="test" + +S="${WORKDIR}/${MY_P}" + +ONEUSER="oneadmin" +ONEGROUP="oneadmin" + +PATCHES=( + "${FILESDIR}/patches/fix_kvm_emulator.patch" + "${FILESDIR}/patches/install.sh.patch" +) + +test_netsandbox() { + if use sunstone; then + elog "Opennebula hotfix releases needs to build sunstone without network sandbox restriction." + has network-sandbox ${FEATURES} && die "Please disable feature network-sandbox: -network-sandbox" + fi + if use docker; then + elog "Opennebula releases needs to build docker without network sandbox restriction." + has network-sandbox ${FEATURES} && die "Please disable feature network-sandbox: -network-sandbox" + fi +} + +pkg_pretend() { + test_netsandbox +} + +pkg_setup () { + test_netsandbox + enewgroup ${ONEGROUP} + enewuser ${ONEUSER} -1 /bin/bash /var/lib/one ${ONEGROUP} +} + +src_unpack() { + default +} + +src_prepare() { + # install missing source file + #cp "${FILESDIR}"/${P}/parsers/* "${S}"/src/parsers/ || die "copy parsers files failed" + + # set correct lib path + use docker && make -C src/docker_machine/src/docker_machine vendor + for f in $(grep -rlI "/usr/lib/one" .); do sed -i -e "s/\/usr\/lib\/one/\/usr\/$(get_libdir)\/one/g" $f; done || die "correct lib dir failed" + + # grunt-sass and node-sass versions + sed -i -e 's|1.2.1|2.1.0|' -e 's|3.10.1|4.13.0|' src/sunstone/public/package.json || die "sed failed" + + # As we install from the github release sources we need to build sunstone as well. + # To do that we need the npm environment set up + # https://docs.opennebula.org/5.4/integration/references/sunstone_dev.html#sunstone-dev + pushd src/sunstone/public/ >/dev/null + ./build.sh -d || die "Install required dependencies for npm and bower failed." + #export PATH=$PATH:$PWD/node_modules/.bin + #./build.sh || die "Prepare minified files failed." + popd >/dev/null + + eapply_user +} + +src_configure() { + : +} + +src_compile() { + # manual pages + if use doc; then + pushd ${S}/share/man >/dev/null + ./build.sh + popd >/dev/null + fi + + ########################################################################### + ## ## + ## It is highly recommended that you read the documentation and tweak ## + ## the PKGBUILD accordingly: ## + ## http://docs.opennebula.org/stable/integration/references/compile.html ## + ## ## + ########################################################################### + local myconf + myconf+="parsers=yes new_xmlrpc=yes " + use extras && myconf+="new_xmlrpc=yes " + use mysql && myconf+="mysql=yes " || myconf+="mysql=no " + use sunstone && myconf+="sunstone=yes " + use docker && myconf+="docker_machine=yes " + use systemd && myconf+="systemd=yes " + use vnc && myconf+="svncterm=yes " + python3 $(which scons) \ + ${myconf} \ + $(sed -r 's/.*(-j\s*|--jobs=)([0-9]+).*/-j\2/' <<< ${MAKEOPTS}) \ + || die "building ${PN} failed" +} + +src_install() { + # Prepare installation + keepdir /var/{lib,run}/${PN} || die "keepdir failed" + + dodir /usr/$(get_libdir)/one + dodir /var/log/one + dodir /var/lib/one + dodir /var/tmp/one + dodir /var/lib/one + dodir /var/lib/one/vms + dodir /usr/share/one + dodir /etc/tmpfiles.d + + # Installing Opennebula + DESTDIR="${T}" ./install.sh -u ${ONEUSER} -g ${ONEGROUP} || die "install opennebula core failed" + use extras && DESTDIR="${T}" ./install.sh -u ${ONEUSER} -g ${ONEGROUP} -c || die "install opennebula client tools failed" + use docker && DESTDIR="${T}" ./install.sh -u ${ONEUSER} -g ${ONEGROUP} -e -k || die "install docker machine failed" + + pushd "${T}" >/dev/null + # Clean files + rm -rf etc/{logrotate.d,sudoers.d} lib/ var/{lock,run} + + # setup etc + insinto /etc + doins -r etc/one + rm -rf etc/one + + insinto /etc/one + insopts -m 0640 + doins "${FILESDIR}/one_auth" + + insinto /etc/tmpfiles.d + insopts -m 0644 + doins "${FILESDIR}"/tmpfiles.d/* + + insinto /etc/logrotate.d + doins "${FILESDIR}"/logrotate/* + + insinto /etc/sudoers.d + doins "${FILESDIR}"/sudoers/* + + # set binaries executable + into /usr + dobin usr/bin/* + + cp -a usr/$(get_libdir)/one/* "${ED}"/usr/$(get_libdir)/one/ + cp -a usr/share/one/* "${ED}"/usr/share/one/ + cp -a var/lib/one/* "${ED}"/var/lib/one/ + rm -rf usr/bin usr/$(get_libdir)/one usr/share/one var/lib/one + + # add documentation + dodoc usr/share/docs/one/* + rm -rf usr/share/docs + + # install remaining files + insinto /usr/share/man + doins -r usr/share/man/man1/ + + # set correct owner + fowners -R ${ONEUSER}:${ONEGROUP} /etc/one /usr/$(get_libdir)/one /usr/share/one /var/lib/{one,opennebula} /var/log/one /var/tmp/one + + # install daemon files + if use systemd; then + systemd_dounit "${FILESDIR}"/systemd/*.service + else + doenvd "${FILESDIR}/openrc/99one" + newinitd "${FILESDIR}/openrc/opennebula.initd" opennebula + newinitd "${FILESDIR}/openrc/sunstone-server.initd" sunstone-server + newinitd "${FILESDIR}/openrc/oneflow-server.initd" oneflow-server + newconfd "${FILESDIR}/openrc/opennebula.confd" opennebula + newconfd "${FILESDIR}/openrc/sunstone-server.confd" sunstone-server + newconfd "${FILESDIR}/openrc/oneflow-server.confd" oneflow-server + fi + + popd >/dev/null + +} + +pkg_postinst() { + + #chown -R oneadmin:oneadmin ${ROOT}var/{lock,lib,log,run,tmp}/one + #chown -R oneadmin:oneadmin ${ROOT}usr/share/one + #chown -R oneadmin:oneadmin ${ROOT}etc/one + #chown -R oneadmin:oneadmin ${ROOT}usr/$(get_libdir)/one + + local onedir="${EROOT}var/lib/one" + if [ ! -d "${onedir}/.ssh" ] ; then + #einfo "Generating ssh-key..." + #umask 0027 || die "setting umask failed" + #mkdir "${onedir}/.ssh" || die "creating ssh directory failed" + #ssh-keygen -q -t rsa -N "" -f "${onedir}/.ssh/id_rsa" || die "ssh-keygen failed" + #cat > "${onedir}/.ssh/config" <> "${onedir}/.ssh/authorized_keys" || die "adding key failed" + #chown -R ${ONEUSER}:${ONEGROUP} "${onedir}/.ssh" || die "changing owner failed" + elog "Create directory ${onedir}/.ssh with umask 0027." + elog "Then generate ssh key using proper cypher algorithm (at least rsa)." + elog "Add public key to ${ONEUSER} authorized_keys:" + elog "cat ${onedir}/.ssh/id_rsa.pub >> ${onedir}/.ssh/authorized_keys" + elog "${ONEUSER} ssh config for any host with" + elog "StrictHostKeyChecking no" + elog "and" + elog "UserKnownHostsFile /dev/null" + elog "In the end set correct owner to ${ONEUSER}:" + elog "chown -R ${ONEUSER}:${ONEGROUP} ${onedir}/.ssh" + fi + + if use qemu ; then + elog "Make sure that the user ${ONEUSER} has access to the libvirt control socket" + elog " /var/run/libvirt/libvirt-sock" + elog "You can easily check this by executing the following command as ${ONEUSER} user" + elog " virsh -c qemu:///system nodeinfo" + elog "If not using using policykit in libvirt, the file you should take a look at is:" + elog " /etc/libvirt/libvirtd.conf (look for the unix_sock_*_perms parameters)" + elog "Failure to do so may lead to nodes hanging in PENDING state forever without further notice." + echo "" + elog "Should a node hang in PENDING state even with correct permissions, try the following to get more information." + elog "In /tmp/one-im execute the following command for the biggest one_im-* file:" + elog " ruby -wd one_im-???" + echo "" + elog "OpenNebula doesn't allow you to specify the disc format." + elog "Unfortunately the default in libvirt is not to guess and" + elog "it therefores assumes a 'raw' format when using qemu/kvm." + elog "Set 'allow_disk_format_probing = 0' in /etc/libvirt/qemu.conf" + elog "to work around this until OpenNebula fixes it." + fi + + elog "If you wish to use the sunstone server, please issue the command" + #elog "/usr/share/one/install_gems as oneadmin user" + elog "gem install sequel thin json rack sinatra builder treetop zendesk_api mysql parse-cron" + +} +