diff options
-rw-r--r-- | app-crypt/mit-krb5/Manifest | 2 | ||||
-rw-r--r-- | app-crypt/mit-krb5/mit-krb5-1.14.5.ebuild | 147 | ||||
-rw-r--r-- | app-crypt/mit-krb5/mit-krb5-1.15.1.ebuild | 148 | ||||
-rw-r--r-- | app-emulation/fuse-utils/metadata.xml | 10 | ||||
-rw-r--r-- | app-emulation/fuse/metadata.xml | 10 | ||||
-rw-r--r-- | app-emulation/libspectrum/metadata.xml | 10 | ||||
-rw-r--r-- | eclass/cvs.eclass | 28 | ||||
-rw-r--r-- | eclass/flag-o-matic.eclass | 11 | ||||
-rw-r--r-- | eclass/java-ant-2.eclass | 40 | ||||
-rw-r--r-- | eclass/mysql-multilib-r1.eclass | 12 | ||||
-rw-r--r-- | eclass/perl-functions.eclass | 2 | ||||
-rw-r--r-- | eclass/python-any-r1.eclass | 26 | ||||
-rw-r--r-- | eclass/python-r1.eclass | 59 | ||||
-rw-r--r-- | eclass/python-single-r1.eclass | 56 | ||||
-rw-r--r-- | eclass/python-utils-r1.eclass | 49 | ||||
-rw-r--r-- | eclass/ruby-fakegem.eclass | 5 | ||||
-rw-r--r-- | eclass/ruby-ng.eclass | 11 | ||||
-rwxr-xr-x | eclass/tests/python-utils-r1.sh | 4 | ||||
-rw-r--r-- | eclass/toolchain-funcs.eclass | 6 | ||||
-rw-r--r-- | eclass/unpacker.eclass | 18 | ||||
-rw-r--r-- | profiles/package.mask | 65 |
21 files changed, 571 insertions, 148 deletions
diff --git a/app-crypt/mit-krb5/Manifest b/app-crypt/mit-krb5/Manifest index 21175547e902..37b1a756547d 100644 --- a/app-crypt/mit-krb5/Manifest +++ b/app-crypt/mit-krb5/Manifest @@ -1,4 +1,6 @@ DIST krb5-1.14.2.tar.gz 12264762 SHA256 6bcad7e6778d1965e4ce4af21d2efdc15b274c5ce5c69031c58e4c954cda8b27 SHA512 8e0d8203740aac78b65a62c0f79998b56dae23725763f645ae13a92dc4263d193e7334f84e278ca873d2b72d425f47cd4b68b58690d029dccce41e8a157b16f0 WHIRLPOOL 18a3729f5bfb928318f5cc28c919cbc49ee9179199ee82445922a5f2e8afbf4ed5a31f7e710877f8c12ef75f326723e7410608ce538983ce1b811e16091d72a1 DIST krb5-1.14.3.tar.gz 12279888 SHA256 cd4620d520cf0df0dd8791309912df2bb20fcba76790b9fba4e25c1da08ff2c9 SHA512 97f42bb7e0f69e337b949b451bf925f604e7ef9336c32bd4d62224a8c4a37e631f5a6fc01016bbdf268bbb60fa58712e244e00a1ab5a8bceede6a676482235aa WHIRLPOOL 30803fbd74f90c1b0e16783d36b7a648f4bf2fd8391f722589cdcbea28a7e826789fd7da3ed984f4555b18e72aa7f4e3096299f0edc7a9165c98eb078f5efe07 DIST krb5-1.14.4.tar.gz 12283989 SHA256 03a61a4280c9161771fb39019085dbe6a57aa602080515ff93b43cd6137e0b95 SHA512 5eb16b909d69143bfa8b2a7ba4c0deb74408462a5ec1241e97f37e30d29e259767be91a4533119e2c5e92d1fcbcab97038b2e45ad3361b5a61c3dc562c6d0d67 WHIRLPOOL 9a4ed044fd96fef4875ba9d281a94b5ee9d393e9f2c92c3bc65600fb447928358918389aef2d1f371e4726213b9497d63719b981a819cdacf791eb1385f5b850 +DIST krb5-1.14.5.tar.gz 12322802 SHA256 262485c15af1208b69b55bef39cd246a892b5f41adf1956055ba52884a4dc7bf SHA512 2484f9581b5e0b99cc49ba7f8770ea3a8751e756c98cc552d92ca223575eac58f6f1a9c268254ead4435d2d49b50ccf3181eb7bdbd56874c43f91bcfc2a66d3b WHIRLPOOL 638c046cf257cdb0f5b940681790ab779f103b4488413979ac3072b3117f251710a284910dbcb8806d965c3a97ea2f62965050de0e07356208b23786cebfde08 +DIST krb5-1.15.1.tar.gz 9375538 SHA256 437c8831ddd5fde2a993fef425dedb48468109bb3d3261ef838295045a89eb45 SHA512 068b4c012722d8c232049d2a617f7ee28ceeaba6be94a78439e69e37b66cfdc49085641e42cfb03b2fbb72d21517b537e437061ec4dd2bf864f31e55e05fe918 WHIRLPOOL 1415295882eccbaf550d05d4b5bcae77c3c6fde1f5354b2ffac09f73148f22a223c38d73d80eb4c0e3b7e9fd528891645e114713e11a5eaa14520cdbe6b097c6 DIST krb5-1.15.tar.gz 9327157 SHA256 fd34752774c808ab4f6f864f935c49945f5a56b62240b1ad4ab1af7b4ded127c SHA512 e71008ac3055a511ecbe6adfb9b328f0a01b33e8a73276d75b80d5db783f7bde63987c855584fb6075a6f5c88135d9871f51b2469e34ac8ee3d89b9add22d8f1 WHIRLPOOL 77572929805f2db35b46e6cf5d83058376025c7a924c1f5034ffaa18c209ecd9078c9ff5142f7848f76e6d586db8ec4c985dba32bbbe27d439c3cd8288ef59e8 diff --git a/app-crypt/mit-krb5/mit-krb5-1.14.5.ebuild b/app-crypt/mit-krb5/mit-krb5-1.14.5.ebuild new file mode 100644 index 000000000000..c4ebe7f83b23 --- /dev/null +++ b/app-crypt/mit-krb5/mit-krb5-1.14.5.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) +inherit autotools eutils flag-o-matic multilib-minimal python-any-r1 versionator + +MY_P="${P/mit-}" +P_DIR=$(get_version_component_range 1-2) +DESCRIPTION="MIT Kerberos V" +HOMEPAGE="http://web.mit.edu/kerberos/www/" +SRC_URI="http://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" + +LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="doc +keyutils libressl nls openldap +pkinit selinux +threads test xinetd" + +CDEPEND=" + !!app-crypt/heimdal + >=sys-libs/e2fsprogs-libs-1.42.9[${MULTILIB_USEDEP}] + || ( + >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}] + ) + keyutils? ( >=sys-apps/keyutils-1.5.8[${MULTILIB_USEDEP}] ) + openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] ) + pkinit? ( + !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] ) + libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] ) + ) + xinetd? ( sys-apps/xinetd ) + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-baselibs-20140508-r1 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] + )" +DEPEND="${CDEPEND} + ${PYTHON_DEPS} + virtual/yacc + doc? ( virtual/latex-base ) + test? ( + ${PYTHON_DEPS} + dev-lang/tcl:0 + dev-util/dejagnu + )" +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-kerberos )" + +S=${WORKDIR}/${MY_P}/src + +MULTILIB_CHOST_TOOLS=( + /usr/bin/krb5-config +) + +src_prepare() { + epatch "${FILESDIR}/${PN}-1.12_warn_cflags.patch" + epatch "${FILESDIR}/${PN}-config_LDFLAGS.patch" + epatch "${FILESDIR}/${PN}-1.14.2-redeclared-ttyname.patch" + epatch "${FILESDIR}/${PN}-1.14.4-disable-nls.patch" + + # Make sure we always use the system copies. + rm -rf util/{et,ss,verto} + sed -i 's:^[[:space:]]*util/verto$::' configure.in || die + + eautoreconf +} + +src_configure() { + # QA + append-flags -fno-strict-aliasing + append-flags -fno-strict-overflow + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use keyutils || export ac_cv_header_keyutils_h=no + ECONF_SOURCE=${S} \ + WARN_CFLAGS="set" \ + econf \ + $(use_with openldap ldap) \ + "$(multilib_native_use_with test tcl "${EPREFIX}/usr")" \ + $(use_enable nls) \ + $(use_enable pkinit) \ + $(use_enable threads thread-support) \ + --without-hesiod \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --enable-dns-for-realm \ + --enable-kdc-lookaside-cache \ + --with-system-verto \ + --disable-rpath +} + +multilib_src_compile() { + emake -j1 +} + +multilib_src_test() { + multilib_is_native_abi && emake -j1 check +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ + install +} + +multilib_src_install_all() { + # default database dir + keepdir /var/lib/krb5kdc + + cd .. + dodoc README + + if use doc; then + dohtml -r doc/html/* + docinto pdf + dodoc doc/pdf/*.pdf + fi + + newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind + newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc + newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd + newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind + newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc + newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd + + insinto /etc + newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example + insinto /var/lib/krb5kdc + newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example + + if use openldap ; then + insinto /etc/openldap/schema + doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}/kpropd.xinetd" kpropd + fi +} diff --git a/app-crypt/mit-krb5/mit-krb5-1.15.1.ebuild b/app-crypt/mit-krb5/mit-krb5-1.15.1.ebuild new file mode 100644 index 000000000000..43d73e446296 --- /dev/null +++ b/app-crypt/mit-krb5/mit-krb5-1.15.1.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +inherit autotools flag-o-matic multilib-minimal python-any-r1 versionator + +MY_P="${P/mit-}" +P_DIR=$(get_version_component_range 1-2) +DESCRIPTION="MIT Kerberos V" +HOMEPAGE="http://web.mit.edu/kerberos/www/" +SRC_URI="http://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" + +LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="doc +keyutils libressl nls openldap +pkinit selinux +threads test xinetd" + +CDEPEND=" + !!app-crypt/heimdal + >=sys-libs/e2fsprogs-libs-1.42.9[${MULTILIB_USEDEP}] + || ( + >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}] + ) + keyutils? ( >=sys-apps/keyutils-1.5.8[${MULTILIB_USEDEP}] ) + openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] ) + pkinit? ( + !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] ) + libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] ) + ) + xinetd? ( sys-apps/xinetd ) + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-baselibs-20140508-r1 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] + )" +DEPEND="${CDEPEND} + ${PYTHON_DEPS} + virtual/yacc + doc? ( virtual/latex-base ) + test? ( + ${PYTHON_DEPS} + dev-lang/tcl:0 + dev-util/dejagnu + )" +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-kerberos )" + +S=${WORKDIR}/${MY_P}/src + +MULTILIB_CHOST_TOOLS=( + /usr/bin/krb5-config +) + +src_prepare() { + eapply "${FILESDIR}/${PN}-1.12_warn_cflags.patch" + eapply -p2 "${FILESDIR}/${PN}-config_LDFLAGS.patch" + eapply -p0 "${FILESDIR}/${PN}-1.14.2-redeclared-ttyname.patch" + eapply "${FILESDIR}/${PN}-1.14.4-disable-nls.patch" + + # Make sure we always use the system copies. + rm -rf util/{et,ss,verto} + sed -i 's:^[[:space:]]*util/verto$::' configure.in || die + + eapply_user + eautoreconf +} + +src_configure() { + # QA + append-flags -fno-strict-aliasing + append-flags -fno-strict-overflow + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use keyutils || export ac_cv_header_keyutils_h=no + ECONF_SOURCE=${S} \ + WARN_CFLAGS="set" \ + econf \ + $(use_with openldap ldap) \ + "$(multilib_native_use_with test tcl "${EPREFIX}/usr")" \ + $(use_enable nls) \ + $(use_enable pkinit) \ + $(use_enable threads thread-support) \ + --without-hesiod \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --enable-dns-for-realm \ + --enable-kdc-lookaside-cache \ + --with-system-verto \ + --disable-rpath +} + +multilib_src_compile() { + emake -j1 +} + +multilib_src_test() { + multilib_is_native_abi && emake -j1 check +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ + install +} + +multilib_src_install_all() { + # default database dir + keepdir /var/lib/krb5kdc + + cd .. + dodoc README + + if use doc; then + dodoc -r doc/html + docinto pdf + dodoc doc/pdf/*.pdf + fi + + newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind + newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc + newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd + newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind + newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc + newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd + + insinto /etc + newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example + insinto /var/lib/krb5kdc + newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example + + if use openldap ; then + insinto /etc/openldap/schema + doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}/kpropd.xinetd" kpropd + fi +} diff --git a/app-emulation/fuse-utils/metadata.xml b/app-emulation/fuse-utils/metadata.xml index fc8525d05d23..a335d4fddda0 100644 --- a/app-emulation/fuse-utils/metadata.xml +++ b/app-emulation/fuse-utils/metadata.xml @@ -1,15 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>jmfo1982@yahoo.es</email> - <name>José Manuel Ferrer Ortiz</name> - <description>Proxied Maintainer. Please assign on bugs.</description> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers Project</name> - </maintainer> + <!-- maintainer-needed --> <use> <flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> for low-level crypto of some features, including logfiles.</flag> diff --git a/app-emulation/fuse/metadata.xml b/app-emulation/fuse/metadata.xml index 418dc2953f6c..5615225f706b 100644 --- a/app-emulation/fuse/metadata.xml +++ b/app-emulation/fuse/metadata.xml @@ -1,15 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>jmfo1982@yahoo.es</email> - <description>Proxied Maintainer. Please assign on bugs.</description> - <name>José Manuel Ferrer Ortiz</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers Project</name> - </maintainer> + <!-- maintainer-needed --> <upstream> <remote-id type="sourceforge">fuse-emulator</remote-id> </upstream> diff --git a/app-emulation/libspectrum/metadata.xml b/app-emulation/libspectrum/metadata.xml index 0a155ba9350b..7c39ec376afa 100644 --- a/app-emulation/libspectrum/metadata.xml +++ b/app-emulation/libspectrum/metadata.xml @@ -1,15 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>jmfo1982@yahoo.es</email> - <name>José Manuel Ferrer Ortiz</name> - <description>Proxied Maintainer. Please CC on bugs.</description> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers Project</name> - </maintainer> + <!-- maintainer-needed --> <longdescription> libspectrum is a library designed to make the input and output of some ZX Spectrum emulator files slightly easier. It is intended to be usable on Unix diff --git a/eclass/cvs.eclass b/eclass/cvs.eclass index 6d1adea11a4c..e2121f4724f2 100644 --- a/eclass/cvs.eclass +++ b/eclass/cvs.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: cvs.eclass @@ -352,22 +352,22 @@ cvs_fetch() { fi # Commands to run - cmdlogin="${run} ${ECVS_CVS_COMMAND} -d \"${cvsroot_pass}\" login" - cmdupdate="${run} ${ECVS_CVS_COMMAND} -d \"${cvsroot_nopass}\" update ${ECVS_UP_OPTS} ${ECVS_LOCALNAME}" - cmdcheckout="${run} ${ECVS_CVS_COMMAND} -d \"${cvsroot_nopass}\" checkout ${ECVS_CO_OPTS} ${ECVS_MODULE}" + cmdlogin=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_pass}" login ) + cmdupdate=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_nopass}" update ${ECVS_UP_OPTS} ${ECVS_LOCALNAME} ) + cmdcheckout=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_nopass}" checkout ${ECVS_CO_OPTS} ${ECVS_MODULE} ) # Execute commands cd "${ECVS_TOP_DIR}" if [[ ${ECVS_AUTH} == "pserver" ]] ; then - einfo "Running ${cmdlogin}" - eval ${cmdlogin} || die "cvs login command failed" + einfo "Running ${cmdlogin[*]}" + "${cmdlogin[@]}" || die "cvs login command failed" if [[ ${mode} == "update" ]] ; then - einfo "Running ${cmdupdate}" - eval ${cmdupdate} || die "cvs update command failed" + einfo "Running ${cmdupdate[*]}" + "${cmdupdate[@]}" || die "cvs update command failed" elif [[ ${mode} == "checkout" ]] ; then - einfo "Running ${cmdcheckout}" - eval ${cmdcheckout} || die "cvs checkout command failed" + einfo "Running ${cmdcheckout[*]}" + "${cmdcheckout[@]}" || die "cvs checkout command failed" fi elif [[ ${ECVS_AUTH} == "ext" || ${ECVS_AUTH} == "no" ]] ; then # Hack to support SSH password authentication @@ -461,11 +461,11 @@ EOF fi if [[ ${mode} == "update" ]] ; then - einfo "Running ${cmdupdate}" - eval ${cmdupdate} || die "cvs update command failed" + einfo "Running ${cmdupdate[*]}" + "${cmdupdate[@]}" || die "cvs update command failed" elif [[ ${mode} == "checkout" ]] ; then - einfo "Running ${cmdcheckout}" - eval ${cmdcheckout} || die "cvs checkout command failed" + einfo "Running ${cmdcheckout[*]}" + "${cmdcheckout[@]}" || die "cvs checkout command failed" fi # Restore environment variable values diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index 6d41ddd30f71..b2f3742b3ecf 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -116,7 +116,7 @@ _filter-var() { done new+=( "${f}" ) done - eval export ${var}=\""${new[*]}"\" + export ${var}="${new[*]}" } # @FUNCTION: filter-flags @@ -270,7 +270,7 @@ replace-flags() { [[ ${f} == ${1} ]] && f=${2} new+=( "${f}" ) done - eval export ${var}=\""${new[*]}"\" + export ${var}="${new[*]}" done return 0 @@ -295,9 +295,8 @@ replace-cpu-flags() { } _is_flagq() { - local x var - eval var=\""\${$1[*]}"\" - for x in ${var} ; do + local x var="$1[*]" + for x in ${!var} ; do [[ ${x} == $2 ]] && return 0 done return 1 @@ -411,7 +410,7 @@ strip-flags() { if [[ ${!var} != "${new[*]}" ]] ; then einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'" fi - eval export ${var}=\""${new[*]}"\" + export ${var}="${new[*]}" done set +f # re-enable pathname expansion diff --git a/eclass/java-ant-2.eclass b/eclass/java-ant-2.eclass index a72fb948eeef..b49adc3137f1 100644 --- a/eclass/java-ant-2.eclass +++ b/eclass/java-ant-2.eclass @@ -160,16 +160,12 @@ java-ant_bsfix() { find_args="${find_args} -type f ( -name ${JAVA_PKG_BSFIX_NAME// / -o -name } )" - # This voodoo is done for paths with spaces - local bsfix_these - while read line; do - [[ -z ${line} ]] && continue - bsfix_these="${bsfix_these} '${line}'" - done <<-EOF - $(find . ${find_args}) - EOF + local bsfix_these=() line + while IFS= read -r -d $'\0' line; do + bsfix_these+=( "${line}" ) + done < <(find . ${find_args} -print0) - [[ "${bsfix_these// /}" ]] && eval java-ant_bsfix_files ${bsfix_these} + [[ "${bsfix_these[@]}" ]] && java-ant_bsfix_files "${bsfix_these[@]}" popd > /dev/null || die } @@ -227,7 +223,7 @@ java-ant_bsfix_files() { eerror "Please file a bug about this on bugs.gentoo.org" die "Could not find valid -source/-target values" else - local files + local files=() for file in "${@}"; do debug-print "${FUNCNAME}: ${file}" @@ -240,7 +236,7 @@ java-ant_bsfix_files() { chmod u+w "${file}" || die "chmod u+w ${file} failed" fi - files="${files} -f '${file}'" + files+=( -f "${file}" ) done # for javadoc target and all in one pass, we need the new rewriter. @@ -254,7 +250,7 @@ java-ant_bsfix_files() { if [[ -x ${rewriter4} && ${JAVA_ANT_ENCODING} ]]; then [[ ${JAVA_ANT_REWRITE_CLASSPATH} ]] && local gcp="-g" [[ ${JAVA_ANT_ENCODING} ]] && local enc="-e ${JAVA_ANT_ENCODING}" - eval echo "cElementTree rewriter" + echo "cElementTree rewriter" debug-print "${rewriter4} extra args: ${gcp} ${enc}" ${rewriter4} ${gcp} ${enc} \ -c "${JAVA_PKG_BSFIX_SOURCE_TAGS}" source ${want_source} \ @@ -262,31 +258,31 @@ java-ant_bsfix_files() { "${@}" || die "build-xml-rewrite failed" elif [[ ! -f ${rewriter3} ]]; then debug-print "Using second generation rewriter" - eval echo "Rewriting source attributes" - eval xml-rewrite-2.py ${files} \ + echo "Rewriting source attributes" + xml-rewrite-2.py "${files[@]}" \ -c -e ${JAVA_PKG_BSFIX_SOURCE_TAGS// / -e } \ -a source -v ${want_source} || _bsfix_die "xml-rewrite2 failed: ${file}" - eval echo "Rewriting target attributes" - eval xml-rewrite-2.py ${files} \ + echo "Rewriting target attributes" + xml-rewrite-2.py "${files[@]}" \ -c -e ${JAVA_PKG_BSFIX_TARGET_TAGS// / -e } \ -a target -v ${want_target} || _bsfix_die "xml-rewrite2 failed: ${file}" - eval echo "Rewriting nowarn attributes" - eval xml-rewrite-2.py ${files} \ + echo "Rewriting nowarn attributes" + xml-rewrite-2.py "${files[@]}" \ -c -e ${JAVA_PKG_BSFIX_TARGET_TAGS// / -e } \ -a nowarn -v yes || _bsfix_die "xml-rewrite2 failed: ${file}" if [[ ${JAVA_ANT_REWRITE_CLASSPATH} ]]; then - eval echo "Adding gentoo.classpath to javac tasks" - eval xml-rewrite-2.py ${files} \ + echo "Adding gentoo.classpath to javac tasks" + xml-rewrite-2.py "${files[@]}" \ -c -e javac -e xjavac -a classpath -v \ '\${gentoo.classpath}' \ || _bsfix_die "xml-rewrite2 failed" fi else debug-print "Using third generation rewriter" - eval echo "Rewriting attributes" + echo "Rewriting attributes" local bsfix_extra_args="" # WARNING KEEP THE ORDER, ESPECIALLY FOR CHANGED ATTRIBUTES! if [[ -n ${JAVA_ANT_REWRITE_CLASSPATH} ]]; then @@ -333,7 +329,7 @@ java-ant_bsfix_files() { debug-print "bsfix_extra_args: ${bsfix_extra_args}" - eval ${rewriter3} ${files} \ + ${rewriter3} "${files[@]}" \ -c --source-element ${JAVA_PKG_BSFIX_SOURCE_TAGS// / --source-element } \ --source-attribute source --source-value ${want_source} \ --target-element ${JAVA_PKG_BSFIX_TARGET_TAGS// / --target-element } \ diff --git a/eclass/mysql-multilib-r1.eclass b/eclass/mysql-multilib-r1.eclass index f82cc101af05..c22ff72f0876 100644 --- a/eclass/mysql-multilib-r1.eclass +++ b/eclass/mysql-multilib-r1.eclass @@ -941,19 +941,19 @@ mysql-multilib-r1_pkg_config() { if [[ ${PN} == "mysql" || ${PN} == "percona-server" ]] && version_is_at_least "5.7.6" ; then # --initialize-insecure will not set root password # --initialize would set a random one in the log which we don't need as we set it ourselves - cmd="${EROOT}usr/sbin/mysqld" + cmd=( "${EROOT}usr/sbin/mysqld" ) initialize_options="--initialize-insecure '--init-file=${sqltmp}'" sqltmp="" # the initialize will take care of it else - cmd="${EROOT}usr/share/mysql/scripts/mysql_install_db" - [[ -f "${cmd}" ]] || cmd="${EROOT}usr/bin/mysql_install_db" + cmd=( "${EROOT}usr/share/mysql/scripts/mysql_install_db" ) + [[ -f "${cmd}" ]] || cmd=( "${EROOT}usr/bin/mysql_install_db" ) if [[ -r "${help_tables}" ]] ; then cat "${help_tables}" >> "${sqltmp}" fi fi - cmd="'$cmd' '--basedir=${EPREFIX}/usr' ${options} '--datadir=${ROOT}/${MY_DATADIR}' '--tmpdir=${ROOT}/${MYSQL_TMPDIR}' ${initialize_options}" - einfo "Command: $cmd" - eval $cmd \ + cmd+=( "--basedir=${EPREFIX}/usr" ${options} "--datadir=${ROOT}/${MY_DATADIR}" "--tmpdir=${ROOT}/${MYSQL_TMPDIR}" ${initialize_options} ) + einfo "Command: ${cmd[*]}" + "${cmd[@]}" \ >"${TMPDIR}"/mysql_install_db.log 2>&1 if [ $? -ne 0 ]; then grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2 diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 8b798d65ac6a..4f6872500c20 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -275,7 +275,7 @@ perl_check_env() { errored=1 # Read ENV Value - eval "value=\$$i"; + value=${!i}; # Print ENV name/value pair if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass index a1dd4282c1ef..69f7bb736d22 100644 --- a/eclass/python-any-r1.eclass +++ b/eclass/python-any-r1.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: python-any-r1.eclass @@ -57,8 +57,6 @@ fi EXPORT_FUNCTIONS pkg_setup -if [[ ! ${_PYTHON_ANY_R1} ]]; then - # @ECLASS-VARIABLE: PYTHON_COMPAT # @REQUIRED # @DESCRIPTION: @@ -148,24 +146,36 @@ if [[ ! ${_PYTHON_ANY_R1} ]]; then # @CODE _python_any_set_globals() { - local usestr i PYTHON_PKG_DEP + local usestr deps i PYTHON_PKG_DEP [[ ${PYTHON_REQ_USE} ]] && usestr="[${PYTHON_REQ_USE}]" _python_set_impls - PYTHON_DEPS= for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do python_export "${i}" PYTHON_PKG_DEP # note: need to strip '=' slot operator for || deps - PYTHON_DEPS="${PYTHON_PKG_DEP%=} ${PYTHON_DEPS}" + deps="${PYTHON_PKG_DEP%=} ${deps}" done - PYTHON_DEPS="|| ( ${PYTHON_DEPS})" - readonly PYTHON_DEPS + deps="|| ( ${deps})" + + if [[ ${PYTHON_DEPS+1} ]]; then + if [[ ${PYTHON_DEPS} != "${deps}" ]]; then + eerror "PYTHON_DEPS have changed between inherits (PYTHON_REQ_USE?)!" + eerror "Before: ${PYTHON_DEPS}" + eerror "Now : ${deps}" + die "PYTHON_DEPS integrity check failed" + fi + else + PYTHON_DEPS=${deps} + readonly PYTHON_DEPS + fi } _python_any_set_globals unset -f _python_any_set_globals +if [[ ! ${_PYTHON_ANY_R1} ]]; then + # @FUNCTION: python_gen_any_dep # @USAGE: <dependency-block> # @DESCRIPTION: diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass index 929ec8fa8f89..df57cf1e1322 100644 --- a/eclass/python-r1.eclass +++ b/eclass/python-r1.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: python-r1.eclass @@ -51,6 +51,8 @@ fi [[ ${EAPI} == [45] ]] && inherit eutils inherit multibuild python-utils-r1 +fi + # @ECLASS-VARIABLE: PYTHON_COMPAT # @REQUIRED # @DESCRIPTION: @@ -165,14 +167,13 @@ inherit multibuild python-utils-r1 # @CODE _python_set_globals() { - PYTHON_DEPS= - local i PYTHON_PKG_DEP + local deps i PYTHON_PKG_DEP _python_set_impls for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do python_export "${i}" PYTHON_PKG_DEP - PYTHON_DEPS+="python_targets_${i}? ( ${PYTHON_PKG_DEP} ) " + deps+="python_targets_${i}? ( ${PYTHON_PKG_DEP} ) " done local flags=( "${_PYTHON_SUPPORTED_IMPLS[@]/#/python_targets_}" ) @@ -186,29 +187,58 @@ _python_set_globals() { local flags_st=( "${_PYTHON_SUPPORTED_IMPLS[@]/#/-python_single_target_}" ) optflags+=,${flags_st[@]/%/(-)} - - IUSE=${flags[*]} - PYTHON_REQUIRED_USE="|| ( ${flags[*]} )" - PYTHON_USEDEP=${optflags// /,} + local requse="|| ( ${flags[*]} )" + local usedep=${optflags// /,} # 1) well, python-exec would suffice as an RDEP # but no point in making this overcomplex, BDEP doesn't hurt anyone # 2) python-exec should be built with all targets forced anyway # but if new targets were added, we may need to force a rebuild - # 3) use whichever python-exec slot installed in EAPI 5. For EAPI 4, - # just fix :2 since := deps are not supported. if [[ ${_PYTHON_WANT_PYTHON_EXEC2} == 0 ]]; then die "python-exec:0 is no longer supported, please fix your ebuild to work with python-exec:2" - elif [[ ${EAPI} != 4 ]]; then - PYTHON_DEPS+=">=dev-lang/python-exec-2:=[${PYTHON_USEDEP}]" else - PYTHON_DEPS+="dev-lang/python-exec:2[${PYTHON_USEDEP}]" + deps+=">=dev-lang/python-exec-2:=[${usedep}]" + fi + + if [[ ${PYTHON_DEPS+1} ]]; then + # IUSE is magical, so we can't really check it + # (but we verify PYTHON_COMPAT already) + + if [[ ${PYTHON_DEPS} != "${deps}" ]]; then + eerror "PYTHON_DEPS have changed between inherits (PYTHON_REQ_USE?)!" + eerror "Before: ${PYTHON_DEPS}" + eerror "Now : ${deps}" + die "PYTHON_DEPS integrity check failed" + fi + + # these two are formality -- they depend on PYTHON_COMPAT only + if [[ ${PYTHON_REQUIRED_USE} != ${requse} ]]; then + eerror "PYTHON_REQUIRED_USE have changed between inherits!" + eerror "Before: ${PYTHON_REQUIRED_USE}" + eerror "Now : ${requse}" + die "PYTHON_REQUIRED_USE integrity check failed" + fi + + if [[ ${PYTHON_USEDEP} != "${usedep}" ]]; then + eerror "PYTHON_USEDEP have changed between inherits!" + eerror "Before: ${PYTHON_USEDEP}" + eerror "Now : ${usedep}" + die "PYTHON_USEDEP integrity check failed" + fi + else + IUSE=${flags[*]} + + PYTHON_DEPS=${deps} + PYTHON_REQUIRED_USE=${requse} + PYTHON_USEDEP=${usedep} + readonly PYTHON_DEPS PYTHON_REQUIRED_USE PYTHON_USEDEP fi - readonly PYTHON_DEPS PYTHON_REQUIRED_USE PYTHON_USEDEP } _python_set_globals unset -f _python_set_globals +if [[ ! ${_PYTHON_R1} ]]; then + # @FUNCTION: _python_validate_useflags # @INTERNAL # @DESCRIPTION: @@ -476,6 +506,7 @@ _python_obtain_impls() { MULTIBUILD_VARIANTS=() + local impl for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do has "${impl}" "${PYTHON_COMPAT[@]}" && \ use "python_targets_${impl}" && MULTIBUILD_VARIANTS+=( "${impl}" ) diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass index 3b89ef57cfef..fc51c4ec2377 100644 --- a/eclass/python-single-r1.eclass +++ b/eclass/python-single-r1.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: python-single-r1.eclass @@ -56,8 +56,6 @@ fi EXPORT_FUNCTIONS pkg_setup -if [[ ! ${_PYTHON_SINGLE_R1} ]]; then - # @ECLASS-VARIABLE: PYTHON_COMPAT # @REQUIRED # @DESCRIPTION: @@ -180,7 +178,6 @@ if [[ ! ${_PYTHON_SINGLE_R1} ]]; then _python_single_set_globals() { _python_set_impls - PYTHON_DEPS= local i PYTHON_PKG_DEP local flags_mt=( "${_PYTHON_SUPPORTED_IMPLS[@]/#/python_targets_}" ) @@ -191,12 +188,13 @@ _python_single_set_globals() { IUSE="${flags_mt[*]}" + local deps requse usedep if [[ ${#_PYTHON_SUPPORTED_IMPLS[@]} -eq 1 ]]; then # There is only one supported implementation; set IUSE and other # variables without PYTHON_SINGLE_TARGET. - PYTHON_REQUIRED_USE="${flags_mt[*]}" + requse=${flags_mt[*]} python_export "${_PYTHON_SUPPORTED_IMPLS[0]}" PYTHON_PKG_DEP - PYTHON_DEPS="${flags_mt[*]}? ( ${PYTHON_PKG_DEP} ) " + deps="${flags_mt[*]}? ( ${PYTHON_PKG_DEP} ) " # Force on the python_single_target_* flag for this impl, so # that any dependencies that inherit python-single-r1 and # happen to have multiple implementations will still need @@ -205,7 +203,7 @@ _python_single_set_globals() { else # Multiple supported implementations; honor PYTHON_SINGLE_TARGET. IUSE+=" ${flags[*]}" - PYTHON_REQUIRED_USE="^^ ( ${flags[*]} )" + requse="^^ ( ${flags[*]} )" # Ensure deps honor the same python_single_target_* flag as is set # on this package. optflags+=,${flags[@]/%/(+)?} @@ -214,32 +212,58 @@ _python_single_set_globals() { # The chosen targets need to be in PYTHON_TARGETS as well. # This is in order to enforce correct dependencies on packages # supporting multiple implementations. - PYTHON_REQUIRED_USE+=" python_single_target_${i}? ( python_targets_${i} )" + requse+=" python_single_target_${i}? ( python_targets_${i} )" python_export "${i}" PYTHON_PKG_DEP - PYTHON_DEPS+="python_single_target_${i}? ( ${PYTHON_PKG_DEP} ) " + deps+="python_single_target_${i}? ( ${PYTHON_PKG_DEP} ) " done fi - PYTHON_USEDEP=${optflags// /,} + usedep=${optflags// /,} # 1) well, python-exec would suffice as an RDEP # but no point in making this overcomplex, BDEP doesn't hurt anyone # 2) python-exec should be built with all targets forced anyway # but if new targets were added, we may need to force a rebuild - # 3) use whichever python-exec slot installed in EAPI 5. For EAPI 4, - # just fix :2 since := deps are not supported. if [[ ${_PYTHON_WANT_PYTHON_EXEC2} == 0 ]]; then die "python-exec:0 is no longer supported, please fix your ebuild to work with python-exec:2" - elif [[ ${EAPI} != 4 ]]; then - PYTHON_DEPS+=">=dev-lang/python-exec-2:=[${PYTHON_USEDEP}]" else - PYTHON_DEPS+="dev-lang/python-exec:2[${PYTHON_USEDEP}]" + deps+=">=dev-lang/python-exec-2:=[${usedep}]" + fi + + if [[ ${PYTHON_DEPS+1} ]]; then + if [[ ${PYTHON_DEPS} != "${deps}" ]]; then + eerror "PYTHON_DEPS have changed between inherits (PYTHON_REQ_USE?)!" + eerror "Before: ${PYTHON_DEPS}" + eerror "Now : ${deps}" + die "PYTHON_DEPS integrity check failed" + fi + + # these two are formality -- they depend on PYTHON_COMPAT only + if [[ ${PYTHON_REQUIRED_USE} != ${requse} ]]; then + eerror "PYTHON_REQUIRED_USE have changed between inherits!" + eerror "Before: ${PYTHON_REQUIRED_USE}" + eerror "Now : ${requse}" + die "PYTHON_REQUIRED_USE integrity check failed" + fi + + if [[ ${PYTHON_USEDEP} != "${usedep}" ]]; then + eerror "PYTHON_USEDEP have changed between inherits!" + eerror "Before: ${PYTHON_USEDEP}" + eerror "Now : ${usedep}" + die "PYTHON_USEDEP integrity check failed" + fi + else + PYTHON_DEPS=${deps} + PYTHON_REQUIRED_USE=${requse} + PYTHON_USEDEP=${usedep} + readonly PYTHON_DEPS PYTHON_REQUIRED_USE PYTHON_USEDEP fi - readonly PYTHON_DEPS PYTHON_REQUIRED_USE PYTHON_USEDEP } _python_single_set_globals unset -f _python_single_set_globals +if [[ ! ${_PYTHON_SINGLE_R1} ]]; then + # @FUNCTION: python_gen_usedep # @USAGE: <pattern> [...] # @DESCRIPTION: diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 3937d066a095..c75c4678e310 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -114,22 +114,39 @@ _python_set_impls() { _python_impl_supported "${i}" done - _PYTHON_SUPPORTED_IMPLS=() - _PYTHON_UNSUPPORTED_IMPLS=() + local supp=() unsupp=() for i in "${_PYTHON_ALL_IMPLS[@]}"; do if has "${i}" "${PYTHON_COMPAT[@]}"; then - _PYTHON_SUPPORTED_IMPLS+=( "${i}" ) + supp+=( "${i}" ) else - _PYTHON_UNSUPPORTED_IMPLS+=( "${i}" ) + unsupp+=( "${i}" ) fi done - if [[ ${#_PYTHON_SUPPORTED_IMPLS[@]} -eq 0 ]]; then + if [[ ! ${supp[@]} ]]; then die "No supported implementation in PYTHON_COMPAT." fi - readonly _PYTHON_SUPPORTED_IMPLS _PYTHON_UNSUPPORTED_IMPLS + if [[ ${_PYTHON_SUPPORTED_IMPLS[@]} ]]; then + # set once already, verify integrity + if [[ ${_PYTHON_SUPPORTED_IMPLS[@]} != ${supp[@]} ]]; then + eerror "Supported impls (PYTHON_COMPAT) changed between inherits!" + eerror "Before: ${_PYTHON_SUPPORTED_IMPLS[*]}" + eerror "Now : ${supp[*]}" + die "_PYTHON_SUPPORTED_IMPLS integrity check failed" + fi + if [[ ${_PYTHON_UNSUPPORTED_IMPLS[@]} != ${unsupp[@]} ]]; then + eerror "Unsupported impls changed between inherits!" + eerror "Before: ${_PYTHON_UNSUPPORTED_IMPLS[*]}" + eerror "Now : ${unsupp[*]}" + die "_PYTHON_UNSUPPORTED_IMPLS integrity check failed" + fi + else + _PYTHON_SUPPORTED_IMPLS=( "${supp[@]}" ) + _PYTHON_UNSUPPORTED_IMPLS=( "${unsupp[@]}" ) + readonly _PYTHON_SUPPORTED_IMPLS _PYTHON_UNSUPPORTED_IMPLS + fi } # @ECLASS-VARIABLE: PYTHON @@ -984,18 +1001,18 @@ python_wrapper_setup() { _EOF_ chmod +x "${workdir}"/bin/${x} || die done + fi - # Now, set the environment. - # But note that ${workdir} may be shared with something else, - # and thus already on top of PATH. - if [[ ${PATH##:*} != ${workdir}/bin ]]; then - PATH=${workdir}/bin${PATH:+:${PATH}} - fi - if [[ ${PKG_CONFIG_PATH##:*} != ${workdir}/pkgconfig ]]; then - PKG_CONFIG_PATH=${workdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}} - fi - export PATH PKG_CONFIG_PATH + # Now, set the environment. + # But note that ${workdir} may be shared with something else, + # and thus already on top of PATH. + if [[ ${PATH##:*} != ${workdir}/bin ]]; then + PATH=${workdir}/bin${PATH:+:${PATH}} + fi + if [[ ${PKG_CONFIG_PATH##:*} != ${workdir}/pkgconfig ]]; then + PKG_CONFIG_PATH=${workdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}} fi + export PATH PKG_CONFIG_PATH } # @FUNCTION: python_is_python3 diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass index 69ab29f7fb85..b1795fa46c93 100644 --- a/eclass/ruby-fakegem.eclass +++ b/eclass/ruby-fakegem.eclass @@ -521,9 +521,8 @@ all_fakegem_install() { if [[ -d "${bindir}" ]]; then pushd "${bindir}" &>/dev/null || die - local binaries=$(eval ls ${RUBY_FAKEGEM_BINWRAP}) - for binary in $binaries; do - ruby_fakegem_binwrapper $binary + for binary in ${RUBY_FAKEGEM_BINWRAP}; do + ruby_fakegem_binwrapper "${binary}" done popd &>/dev/null || die fi diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass index 6bdc210e4faa..13b00553c0b0 100644 --- a/eclass/ruby-ng.eclass +++ b/eclass/ruby-ng.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2016 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: ruby-ng.eclass @@ -325,7 +325,14 @@ _ruby_invoke_environment() { ;; esac pushd "${WORKDIR}"/all &>/dev/null || die - sub_S=$(eval ls -d "${sub_S}" 2>/dev/null) + # use an array to trigger filename expansion + # fun fact: this expansion fails in src_unpack() but the original + # code did not have any checks for failed expansion, so we can't + # really add one now without redesigning stuff hard. + sub_S=( ${sub_S} ) + if [[ ${#sub_S[@]} -gt 1 ]]; then + die "sub_S did expand to multiple paths: ${sub_S[*]}" + fi popd &>/dev/null || die fi diff --git a/eclass/tests/python-utils-r1.sh b/eclass/tests/python-utils-r1.sh index 383c9229811f..414ad5c53d6b 100755 --- a/eclass/tests/python-utils-r1.sh +++ b/eclass/tests/python-utils-r1.sh @@ -167,8 +167,10 @@ test_is "_python_impl_supported python2_6" 1 test_is "_python_impl_supported python2_7" 0 test_is "_python_impl_supported python3_1" 1 test_is "_python_impl_supported python3_2" 1 -test_is "_python_impl_supported python3_3" 0 +test_is "_python_impl_supported python3_3" 1 test_is "_python_impl_supported python3_4" 0 +test_is "_python_impl_supported python3_5" 0 +test_is "_python_impl_supported python3_6" 0 test_is "_python_impl_supported pypy1_8" 1 test_is "_python_impl_supported pypy1_9" 1 test_is "_python_impl_supported pypy2_0" 1 diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index dec786994f2d..a0c359a950b2 100644 --- a/eclass/toolchain-funcs.eclass +++ b/eclass/toolchain-funcs.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: toolchain-funcs.eclass @@ -168,8 +168,8 @@ tc-getBUILD_PKG_CONFIG() { tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"; } tc-export() { local var for var in "$@" ; do - [[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'" - eval tc-get${var} > /dev/null + [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'" + "tc-get${var}" > /dev/null done } diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass index 8c55cc5319b8..6e9961206469 100644 --- a/eclass/unpacker.eclass +++ b/eclass/unpacker.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: unpacker.eclass @@ -218,30 +218,30 @@ unpack_makeself() { debug-print "Detected Makeself version ${ver} ... using ${skip} as offset" fi case ${exe} in - tail) exe="tail -n +${skip} '${src}'";; - dd) exe="dd ibs=${skip} skip=1 if='${src}'";; + tail) exe=( tail -n +${skip} "${src}" );; + dd) exe=( dd ibs=${skip} skip=1 if="${src}" );; *) die "makeself cant handle exe '${exe}'" esac # lets grab the first few bytes of the file to figure out what kind of archive it is local filetype tmpfile="${T}/${FUNCNAME}" - eval ${exe} 2>/dev/null | head -c 512 > "${tmpfile}" + "${exe[@]}" 2>/dev/null | head -c 512 > "${tmpfile}" filetype=$(file -b "${tmpfile}") || die case ${filetype} in *tar\ archive*) - eval ${exe} | tar --no-same-owner -xf - + "${exe[@]}" | tar --no-same-owner -xf - ;; bzip2*) - eval ${exe} | bzip2 -dc | tar --no-same-owner -xf - + "${exe[@]}" | bzip2 -dc | tar --no-same-owner -xf - ;; gzip*) - eval ${exe} | tar --no-same-owner -xzf - + "${exe[@]}" | tar --no-same-owner -xzf - ;; compress*) - eval ${exe} | gunzip | tar --no-same-owner -xf - + "${exe[@]}" | gunzip | tar --no-same-owner -xf - ;; XZ*) - eval ${exe} | unxz | tar --no-same-owner -xf - + "${exe[@]}" | unxz | tar --no-same-owner -xf - ;; *) eerror "Unknown filetype \"${filetype}\" ?" diff --git a/profiles/package.mask b/profiles/package.mask index a6a62f5fb393..efa1f80b7572 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -29,6 +29,71 @@ #--- END OF EXAMPLES --- +# Gnome Team <gnome@gentoo.org> (08 Mar 2017) +# GNOME 3.24 mask (#611270) +>=x11-themes/adwaita-icon-theme-3.23 +>=app-accessibility/at-spi2-core-2.23 +>=dev-libs/atk-2.23 +>=dev-cpp/atkmm-2.25 +>=sys-apps/baobab-3.23 +>=media-gfx/eog-3.23 +>=www-client/epiphany-3.23 +>=gnome-extra/evolution-data-server-3.23 +>=gnome-base/gdm-3.23 +>=sci-geosciences/geocode-glib-3.23 +>=dev-libs/gjs-1.47 +>=dev-libs/glib-2.51 +>=dev-cpp/glibmm-2.51 +>=x11-themes/gnome-backgrounds-2.23 +>=gnome-extra/gnome-boxes-3.23 +>=gnome-extra/gnome-calculator-3.23 +>=gnome-extra/gnome-calendar-3.23 +>=gnome-extra/gnome-clocks-3.23 +>=gnome-base/gnome-control-center-3.23 +>=gnome-base/gnome-desktop-3.23 +>=sys-apps/gnome-disk-utility-3.23 +>=gnome-extra/gnome-logs-3.23 +>=sci-geosciences/gnome-maps-3.23 +>=net-libs/gnome-online-accounts-3.23 +>=media-gfx/gnome-photos-3.23 +>=gnome-base/gnome-session-3.23 +>=gnome-base/gnome-settings-daemon-3.23 +>=gnome-base/gnome-shell-3.23 +>=gnome-extra/gnome-shell-extensions-3.23 +>=gnome-extra/gnome-software-3.23 +>=gnome-extra/gnome-system-monitor-3.23 +>=x11-terms/gnome-terminal-3.23 +>=dev-libs/gobject-introspection-1.51 +>=gnome-base/gsettings-desktop-schemas-3.23 +>=app-text/gspell-1.3 +>=net-libs/gtk-vnc-0.7 +>=x11-libs/gtksourceview-3.23 +>=gnome-base/gvfs-1.31 +>=dev-libs/libgee-0.19 +>=gnome-base/libgtop-2.35 +>=net-libs/libsoup-2.57 +>=x11-wm/mutter-3.23 +>=gnome-base/nautilus-3.23 +>=app-accessibility/orca-3.23 +>=dev-cpp/pangomm-2.41 +>=media-video/totem-3.23 +>=app-misc/tracker-1.11 +>=dev-lang/vala-0.35 +>=x11-libs/vte-0.47 +>=gnome-base/dconf-editor-3.23 +>=dev-util/devhelp-3.23 +>=mail-client/evolution-3.23 +>=dev-vcs/gitg-3.23 +>=gnome-extra/gnome-builder-3.23 +>=games-board/gnome-mines-3.23 +>=media-sound/gnome-music-3.23 +>=games-arcade/gnome-nibbles-3.23 +>=games-puzzle/hitori-3.23 +>=games-puzzle/lightsoff-3.23 +>=net-irc/polari-3.23 +>=net-misc/rygel-0.33 +>=games-puzzle/swell-foop-3.23 + # Maciej Mrozowski <reavertm@gmail.com> (08 Mar 2017) # Fails to build against simgear, with recent compilers, bug 611980 games-util/atlas |