diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-03-03 11:08:48 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-03-03 11:08:48 +0000 |
commit | 8338a1bcb23ee59d0fa81b7316fbba89b6cb0cdf (patch) | |
tree | 9cd87b32773832a0ba8380b06c731826d6587018 /sys-apps | |
parent | Mask libnetdude, netdude and naim wrt security and QA bugs 252402, 296953, 29... (diff) | |
download | gentoo-2-8338a1bcb23ee59d0fa81b7316fbba89b6cb0cdf.tar.gz gentoo-2-8338a1bcb23ee59d0fa81b7316fbba89b6cb0cdf.tar.bz2 gentoo-2-8338a1bcb23ee59d0fa81b7316fbba89b6cb0cdf.zip |
*portage-2.2_rc64 (03 Mar 2010)
03 Mar 2010; Zac Medico <zmedico@gentoo.org> portage-2.2_rc64.ebuild:
2.2_rc64 version bump. This fixes bug #299095 (repoman check for
check_license calls in EAPI 3 or later), bug #306659 (binary packages from
binhost reinstalled for no reason by portage-2.2_rc63), bug #307021 (make
repoman please fix message red), and bug #307235 (dropped dependencies
triggered in some rare cases when a package needs to be uninstalled).
*portage-2.1.8 (03 Mar 2010)
03 Mar 2010; Zac Medico <zmedico@gentoo.org> +portage-2.1.8.ebuild:
2.1.8 version bump. This fixes bug #268724 (make --unmerge suggest
--depclean for safety), bug #277902 (make quickpkg insert comment
in config file placeholders), bug #295197 (show newline when
dispatch-conf exits), bug #298141 (make /etc/portage/sets relative to
PORTAGE_CONFIGROOT), bug #298479 (don't export invalid USER variable),
bug #299095 (repoman check for check_license calls in EAPI 3 or later),
bug #302764 (fix --regen to handle nested overlays correctly), bug #302937
(handle declare -r in environment.bz2), bug #303211 (fix SIZE digest
verification failure with old binhost protocol), bug #303401 (don't
emerge.log in fetchonly mode), bug #303445 (fix mixed mask messages from
different package.mask files), bug #303519 (deprecation warning about
internal dep_getkey usage), bug #303567 (merge libc asap), bug #304793
(note in --newuse docs that --selective is implied), bug #305393 (fix
dispatch-conf to handle sdiff from diffutils-2.9), bug #307021 (make
repoman please fix message red), and bug #307235 (dropped dependencies
triggered in some rare cases when a package needs to be uninstalled). The
new --rebuilt-binaries option will replace installed packages with binary
packages that have been rebuilt. Rebuilds are detected by comparison of
BUILD_TIME package metadata. This option is enabled automatically when
using binary packages (--usepkgonly or --getbinpkgonly) together with
--update and --deep. The top-level __init__.py for the portage python
package has been split into many smaller python modules, making the
code easier to navigate and allowing small parts of the portage api to
be imported with less overhead. Bug #307597 tracks all bugs fixed since
portage-2.1.7.x.
(Portage version: 2.2_rc64/cvs/Linux i686)
Diffstat (limited to 'sys-apps')
-rw-r--r-- | sys-apps/portage/ChangeLog | 40 | ||||
-rw-r--r-- | sys-apps/portage/portage-2.1.8.ebuild | 301 | ||||
-rw-r--r-- | sys-apps/portage/portage-2.2_rc64.ebuild | 346 |
3 files changed, 686 insertions, 1 deletions
diff --git a/sys-apps/portage/ChangeLog b/sys-apps/portage/ChangeLog index 37f01f4f6fca..1f0e3eed8ce7 100644 --- a/sys-apps/portage/ChangeLog +++ b/sys-apps/portage/ChangeLog @@ -1,6 +1,44 @@ # ChangeLog for sys-apps/portage # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.683 2010/03/02 14:56:13 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.684 2010/03/03 11:08:48 zmedico Exp $ + +*portage-2.2_rc64 (03 Mar 2010) + + 03 Mar 2010; Zac Medico <zmedico@gentoo.org> portage-2.2_rc64.ebuild: + 2.2_rc64 version bump. This fixes bug #299095 (repoman check for + check_license calls in EAPI 3 or later), bug #306659 (binary packages from + binhost reinstalled for no reason by portage-2.2_rc63), bug #307021 (make + repoman please fix message red), and bug #307235 (dropped dependencies + triggered in some rare cases when a package needs to be uninstalled). + +*portage-2.1.8 (03 Mar 2010) + + 03 Mar 2010; Zac Medico <zmedico@gentoo.org> +portage-2.1.8.ebuild: + 2.1.8 version bump. This fixes bug #268724 (make --unmerge suggest + --depclean for safety), bug #277902 (make quickpkg insert comment + in config file placeholders), bug #295197 (show newline when + dispatch-conf exits), bug #298141 (make /etc/portage/sets relative to + PORTAGE_CONFIGROOT), bug #298479 (don't export invalid USER variable), + bug #299095 (repoman check for check_license calls in EAPI 3 or later), + bug #302764 (fix --regen to handle nested overlays correctly), bug #302937 + (handle declare -r in environment.bz2), bug #303211 (fix SIZE digest + verification failure with old binhost protocol), bug #303401 (don't + emerge.log in fetchonly mode), bug #303445 (fix mixed mask messages from + different package.mask files), bug #303519 (deprecation warning about + internal dep_getkey usage), bug #303567 (merge libc asap), bug #304793 + (note in --newuse docs that --selective is implied), bug #305393 (fix + dispatch-conf to handle sdiff from diffutils-2.9), bug #307021 (make + repoman please fix message red), and bug #307235 (dropped dependencies + triggered in some rare cases when a package needs to be uninstalled). The + new --rebuilt-binaries option will replace installed packages with binary + packages that have been rebuilt. Rebuilds are detected by comparison of + BUILD_TIME package metadata. This option is enabled automatically when + using binary packages (--usepkgonly or --getbinpkgonly) together with + --update and --deep. The top-level __init__.py for the portage python + package has been split into many smaller python modules, making the + code easier to navigate and allowing small parts of the portage api to + be imported with less overhead. Bug #307597 tracks all bugs fixed since + portage-2.1.7.x. 02 Mar 2010; Jeroen Roovers <jer@gentoo.org> portage-2.1.7.17.ebuild: Stable for HPPA (bug #307151). diff --git a/sys-apps/portage/portage-2.1.8.ebuild b/sys-apps/portage/portage-2.1.8.ebuild new file mode 100644 index 000000000000..3b131ff5fd12 --- /dev/null +++ b/sys-apps/portage/portage-2.1.8.ebuild @@ -0,0 +1,301 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.8.ebuild,v 1.1 2010/03/03 11:08:48 zmedico Exp $ + +# Require EAPI 2 since we now require at least python-2.6 (for python 3 +# syntax support) which also requires EAPI 2. +EAPI=2 +inherit eutils multilib python + +DESCRIPTION="Portage is the package management and distribution system for Gentoo" +HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" +PROVIDE="virtual/portage" +SLOT="0" +IUSE="build doc epydoc linguas_pl python3 selinux" + +python_dep="python3? ( =dev-lang/python-3* ) + !python3? ( || ( dev-lang/python:2.8 dev-lang/python:2.7 dev-lang/python:2.6 >=dev-lang/python-3 ) )" + +# The pysqlite blocker is for bug #282760. +DEPEND="${python_dep} + !build? ( >=sys-apps/sed-4.0.5 ) + doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 ) + epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )" +RDEPEND="${python_dep} + !build? ( >=sys-apps/sed-4.0.5 + >=app-shells/bash-3.2_p17 + >=app-admin/eselect-1.2 ) + elibc_FreeBSD? ( sys-freebsd/freebsd-bin ) + elibc_glibc? ( >=sys-apps/sandbox-1.6 ) + elibc_uclibc? ( >=sys-apps/sandbox-1.6 ) + >=app-misc/pax-utils-0.1.17 + selinux? ( sys-libs/libselinux )" +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + userland_GNU? ( >=sys-apps/coreutils-6.4 ) + )" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# rsync-2.6.4 rdep is for the --filter option #167668 + +SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives" + +prefix_src_archives() { + local x y + for x in ${@}; do + for y in ${SRC_ARCHIVES}; do + echo ${y}/${x} + done + done +} + +PV_PL="2.1.2" +PATCHVER_PL="" +TARBALL_PV=2.1.8 +SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2 + $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2) + linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2 + $(prefix_src_archives ${PN}-man-pl-${PV_PL}.tar.bz2) )" + +PATCHVER= +if [ -n "${PATCHVER}" ]; then + SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2 + $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)" +fi + +S="${WORKDIR}"/${PN}-${TARBALL_PV} +S_PL="${WORKDIR}"/${PN}-${PV_PL} + +compatible_python_is_selected() { + [[ $(/usr/bin/python -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]] +} + +pkg_setup() { + if ! use python3 && ! compatible_python_is_selected ; then + ewarn "Attempting to select a compatible default python interpreter" + local x success=0 + for x in /usr/bin/python2.* ; do + x=${x#/usr/bin/python2.} + if [[ $x -ge 6 ]] 2>/dev/null ; then + eselect python set python2.$x + if compatible_python_is_selected ; then + elog "Default python interpreter is now set to python-2.$x" + success=1 + break + fi + fi + done + if [ $success != 1 ] ; then + eerror "Unable to select a compatible default python interpreter!" + die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)." + fi + fi + + if use python3; then + python_set_active_version 3 + fi +} + +src_prepare() { + if [ -n "${PATCHVER}" ] ; then + if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then + rm "$S/bin/ebuild-helpers/portageq" \ + || die "failed to remove portageq helper symlink" + fi + epatch "${WORKDIR}/${PN}-${PATCHVER}.patch" + fi + einfo "Setting portage.VERSION to ${PVR} ..." + sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \ + die "Failed to patch portage.VERSION" + + if use python3; then + python_convert_shebangs -r 3 . + fi +} + +src_compile() { + if use doc; then + cd "${S}"/doc + touch fragment/date + make xhtml xhtml-nochunks || die "failed to make docs" + fi + + if use epydoc; then + einfo "Generating api docs" + mkdir "${WORKDIR}"/api + local my_modules epydoc_opts="" + # A name collision between the portage.dbapi class and the + # module with the same name triggers an epydoc crash unless + # portage.dbapi is excluded from introspection. + ROOT=/ has_version '>=dev-python/epydoc-3_pre0' && \ + epydoc_opts='--exclude-introspect portage\.dbapi' + my_modules="$(find "${S}/pym" -name "*.py" \ + | sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \ + -e 's:/:.:g' | sort)" || die "error listing modules" + # workaround for bug 282760 + > "$S/pym/pysqlite2.py" + PYTHONPATH=${S}/pym:${PYTHONPATH:+:}${PYTHONPATH} \ + epydoc -o "${WORKDIR}"/api \ + -qqqqq --no-frames --show-imports $epydoc_opts \ + --name "${PN}" --url "${HOMEPAGE}" \ + ${my_modules} || die "epydoc failed" + rm "$S/pym/pysqlite2.py" + fi +} + +src_test() { + PYTHONPATH=${S}/pym:${PYTHONPATH:+:}${PYTHONPATH} \ + ./pym/portage/tests/runTests || die "test(s) failed" +} + +src_install() { + local libdir=$(get_libdir) + local portage_base="/usr/${libdir}/portage" + local portage_share_config=/usr/share/portage/config + + cd "${S}"/cnf + insinto /etc + doins etc-update.conf dispatch-conf.conf || die + + dodir "${portage_share_config}" + insinto "${portage_share_config}" + doins "${S}/cnf/make.globals" || die + if [ -f "make.conf.${ARCH}".diff ]; then + patch make.conf "make.conf.${ARCH}".diff || \ + die "Failed to patch make.conf.example" + newins make.conf make.conf.example || die + else + eerror "" + eerror "Portage does not have an arch-specific configuration for this arch." + eerror "Please notify the arch maintainer about this issue. Using generic." + eerror "" + newins make.conf make.conf.example || die + fi + + dosym ..${portage_share_config}/make.globals /etc/make.globals + + insinto /etc/logrotate.d + doins "${S}"/cnf/logrotate.d/elog-save-summary || die + + # BSD and OSX need a sed wrapper so that find/xargs work properly + if use userland_GNU; then + rm "${S}"/bin/ebuild-helpers/sed || die "Failed to remove sed wrapper" + fi + + local x symlinks + + for x in $(find "$S"/bin -type d) ; do + x=${x#$S/} + exeinto $portage_base/$x || die "exeinto failed" + cd "$S"/$x || die "cd failed" + doexe $(find . -mindepth 1 -maxdepth 1 -type f ! -type l) || \ + die "doexe failed" + symlinks=$(find . -mindepth 1 -maxdepth 1 -type l) + if [ -n "$symlinks" ] ; then + cp -P $symlinks "$D$portage_base/$x" || die "cp failed" + fi + done + + for x in $(find "$S"/pym -type d) ; do + x=${x#$S/} + insinto $portage_base/$x || die "insinto failed" + cd "$S"/$x || die "cd failed" + doins *.py || die "doins failed" + symlinks=$(find . -mindepth 1 -maxdepth 1 -type l) + if [ -n "$symlinks" ] ; then + cp -P $symlinks "$D$portage_base/$x" || die "cp failed" + fi + done + + # Symlinks to directories cause up/downgrade issues and the use of these + # modules outside of portage is probably negligible. + for x in "${D}${portage_base}/pym/"{cache,elog_modules} ; do + [ ! -L "${x}" ] && continue + die "symlink to directory will cause upgrade/downgrade issues: '${x}'" + done + + exeinto ${portage_base}/pym/portage/tests + doexe "${S}"/pym/portage/tests/runTests + + doman "${S}"/man/*.[0-9] + if use linguas_pl; then + doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] + doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] + fi + + dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} + use doc && dohtml -r "${S}"/doc/* + use epydoc && dohtml -r "${WORKDIR}"/api + + dodir /usr/bin + for x in ebuild egencache emerge portageq repoman ; do + dosym ../${libdir}/portage/bin/${x} /usr/bin/${x} + done + + dodir /usr/sbin + local my_syms="archive-conf + dispatch-conf + emaint + emerge-webrsync + env-update + etc-update + fixpackages + quickpkg + regenworld" + local x + for x in ${my_syms}; do + dosym ../${libdir}/portage/bin/${x} /usr/sbin/${x} + done + dosym env-update /usr/sbin/update-env + dosym etc-update /usr/sbin/update-etc + + dodir /etc/portage + keepdir /etc/portage +} + +pkg_preinst() { + if ! use build && ! has_version dev-python/pycrypto && \ + ! has_version '>=dev-lang/python-2.6[ssl]' ; then + ewarn "If you are an ebuild developer and you plan to commit ebuilds" + ewarn "with this system then please install dev-python/pycrypto or" + ewarn "enable the ssl USE flag for >=dev-lang/python-2.6 in order" + ewarn "to enable RMD160 hash support." + ewarn "See bug #198398 for more information." + fi + if [ -f "${ROOT}/etc/make.globals" ]; then + rm "${ROOT}/etc/make.globals" + fi + + [[ -n $PORTDIR_OVERLAY ]] && has_version "<${CATEGORY}/${PN}-2.1.6.12" + REPO_LAYOUT_CONF_WARN=$? +} + +pkg_postinst() { + # Compile all source files recursively. Any orphans + # will be identified and removed in postrm. + python_mod_optimize /usr/$(get_libdir)/portage/pym + + local warning_shown=0 + if [ $REPO_LAYOUT_CONF_WARN = 0 ] ; then + ewarn + echo "If you want overlay eclasses to override eclasses from" \ + "other repos then see the portage(5) man page" \ + "for information about the new layout.conf and repos.conf" \ + "configuration files." \ + | fmt -w 75 | while read -r ; do ewarn "$REPLY" ; done + fi + if [ $warning_shown = 1 ] ; then + ewarn # for symmetry + fi + + einfo + einfo "For help with using portage please consult the Gentoo Handbook" + einfo "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3" + einfo +} + +pkg_postrm() { + python_mod_cleanup /usr/$(get_libdir)/portage/pym +} diff --git a/sys-apps/portage/portage-2.2_rc64.ebuild b/sys-apps/portage/portage-2.2_rc64.ebuild new file mode 100644 index 000000000000..feaca260cd01 --- /dev/null +++ b/sys-apps/portage/portage-2.2_rc64.ebuild @@ -0,0 +1,346 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2_rc64.ebuild,v 1.1 2010/03/03 11:08:48 zmedico Exp $ + +# Require EAPI 2 since we now require at least python-2.6 (for python 3 +# syntax support) which also requires EAPI 2. +EAPI=2 +inherit eutils multilib python + +DESCRIPTION="Portage is the package management and distribution system for Gentoo" +HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" +PROVIDE="virtual/portage" +SLOT="0" +IUSE="build doc epydoc linguas_pl python3 selinux" + +python_dep="python3? ( =dev-lang/python-3* ) + !python3? ( || ( dev-lang/python:2.8 dev-lang/python:2.7 dev-lang/python:2.6 >=dev-lang/python-3 ) )" + +# The pysqlite blocker is for bug #282760. +DEPEND="${python_dep} + !build? ( >=sys-apps/sed-4.0.5 ) + doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 ) + epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )" +# Require sandbox-2.2 for bug #288863. +RDEPEND="${python_dep} + !build? ( >=sys-apps/sed-4.0.5 + >=app-shells/bash-3.2_p17 + >=app-admin/eselect-1.2 ) + elibc_FreeBSD? ( sys-freebsd/freebsd-bin ) + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_uclibc? ( >=sys-apps/sandbox-2.2 ) + >=app-misc/pax-utils-0.1.17 + selinux? ( sys-libs/libselinux )" +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + userland_GNU? ( >=sys-apps/coreutils-6.4 ) + )" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# rsync-2.6.4 rdep is for the --filter option #167668 + +SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives" + +prefix_src_archives() { + local x y + for x in ${@}; do + for y in ${SRC_ARCHIVES}; do + echo ${y}/${x} + done + done +} + +PV_PL="2.1.2" +PATCHVER_PL="" +TARBALL_PV=2.2_rc64 +SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2 + $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2) + linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2 + $(prefix_src_archives ${PN}-man-pl-${PV_PL}.tar.bz2) )" + +PATCHVER= +if [ -n "${PATCHVER}" ]; then + SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2 + $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)" +fi + +S="${WORKDIR}"/${PN}-${TARBALL_PV} +S_PL="${WORKDIR}"/${PN}-${PV_PL} + +compatible_python_is_selected() { + [[ $(/usr/bin/python -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]] +} + +pkg_setup() { + if ! use python3 && ! compatible_python_is_selected ; then + ewarn "Attempting to select a compatible default python interpreter" + local x success=0 + for x in /usr/bin/python2.* ; do + x=${x#/usr/bin/python2.} + if [[ $x -ge 6 ]] 2>/dev/null ; then + eselect python set python2.$x + if compatible_python_is_selected ; then + elog "Default python interpreter is now set to python-2.$x" + success=1 + break + fi + fi + done + if [ $success != 1 ] ; then + eerror "Unable to select a compatible default python interpreter!" + die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)." + fi + fi + + if use python3; then + python_set_active_version 3 + fi +} + +src_prepare() { + if [ -n "${PATCHVER}" ] ; then + if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then + rm "$S/bin/ebuild-helpers/portageq" \ + || die "failed to remove portageq helper symlink" + fi + epatch "${WORKDIR}/${PN}-${PATCHVER}.patch" + fi + einfo "Setting portage.VERSION to ${PVR} ..." + sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \ + die "Failed to patch portage.VERSION" + + if use python3; then + python_convert_shebangs -r 3 . + fi +} + +src_compile() { + if use doc; then + cd "${S}"/doc + touch fragment/date + make xhtml xhtml-nochunks || die "failed to make docs" + fi + + if use epydoc; then + einfo "Generating api docs" + mkdir "${WORKDIR}"/api + local my_modules epydoc_opts="" + my_modules="$(find "${S}/pym" -name "*.py" \ + | sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \ + -e 's:/:.:g' | sort)" || die "error listing modules" + # workaround for bug 282760 + > "$S/pym/pysqlite2.py" + PYTHONPATH=${S}/pym:${PYTHONPATH:+:}${PYTHONPATH} \ + epydoc -o "${WORKDIR}"/api \ + -qqqqq --no-frames --show-imports $epydoc_opts \ + --name "${PN}" --url "${HOMEPAGE}" \ + ${my_modules} || die "epydoc failed" + rm "$S/pym/pysqlite2.py" + fi +} + +src_test() { + PYTHONPATH=${S}/pym:${PYTHONPATH:+:}${PYTHONPATH} \ + ./pym/portage/tests/runTests || die "test(s) failed" +} + +src_install() { + local libdir=$(get_libdir) + local portage_base="/usr/${libdir}/portage" + local portage_share_config=/usr/share/portage/config + + cd "${S}"/cnf + insinto /etc + doins etc-update.conf dispatch-conf.conf || die + + insinto "${portage_share_config}" + doins "${S}/cnf/"{sets.conf,make.globals} || die + if [ -f "make.conf.${ARCH}".diff ]; then + patch make.conf "make.conf.${ARCH}".diff || \ + die "Failed to patch make.conf.example" + newins make.conf make.conf.example || die + else + eerror "" + eerror "Portage does not have an arch-specific configuration for this arch." + eerror "Please notify the arch maintainer about this issue. Using generic." + eerror "" + newins make.conf make.conf.example || die + fi + + dosym ..${portage_share_config}/make.globals /etc/make.globals + + insinto /etc/logrotate.d + doins "${S}"/cnf/logrotate.d/elog-save-summary || die + + # BSD and OSX need a sed wrapper so that find/xargs work properly + if use userland_GNU; then + rm "${S}"/bin/ebuild-helpers/sed || die "Failed to remove sed wrapper" + fi + + local x symlinks + + for x in $(find "$S"/bin -type d) ; do + x=${x#$S/} + exeinto $portage_base/$x || die "exeinto failed" + cd "$S"/$x || die "cd failed" + doexe $(find . -mindepth 1 -maxdepth 1 -type f ! -type l) || \ + die "doexe failed" + symlinks=$(find . -mindepth 1 -maxdepth 1 -type l) + if [ -n "$symlinks" ] ; then + cp -P $symlinks "$D$portage_base/$x" || die "cp failed" + fi + done + + for x in $(find "$S"/pym -type d) ; do + x=${x#$S/} + insinto $portage_base/$x || die "insinto failed" + cd "$S"/$x || die "cd failed" + doins *.py || die "doins failed" + symlinks=$(find . -mindepth 1 -maxdepth 1 -type l) + if [ -n "$symlinks" ] ; then + cp -P $symlinks "$D$portage_base/$x" || die "cp failed" + fi + done + + # Symlinks to directories cause up/downgrade issues and the use of these + # modules outside of portage is probably negligible. + for x in "${D}${portage_base}/pym/"{cache,elog_modules} ; do + [ ! -L "${x}" ] && continue + die "symlink to directory will cause upgrade/downgrade issues: '${x}'" + done + + exeinto ${portage_base}/pym/portage/tests + doexe "${S}"/pym/portage/tests/runTests + + doman "${S}"/man/*.[0-9] + if use linguas_pl; then + doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] + doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] + fi + + dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} + use doc && dohtml -r "${S}"/doc/* + use epydoc && dohtml -r "${WORKDIR}"/api + + dodir /usr/bin + for x in ebuild egencache emerge portageq repoman ; do + dosym ../${libdir}/portage/bin/${x} /usr/bin/${x} + done + + dodir /usr/sbin + local my_syms="archive-conf + dispatch-conf + emaint + emerge-webrsync + env-update + etc-update + fixpackages + quickpkg + regenworld" + local x + for x in ${my_syms}; do + dosym ../${libdir}/portage/bin/${x} /usr/sbin/${x} + done + dosym env-update /usr/sbin/update-env + dosym etc-update /usr/sbin/update-etc + + dodir /etc/portage + keepdir /etc/portage +} + +pkg_preinst() { + if ! use build && ! has_version dev-python/pycrypto && \ + ! has_version '>=dev-lang/python-2.6[ssl]' ; then + ewarn "If you are an ebuild developer and you plan to commit ebuilds" + ewarn "with this system then please install dev-python/pycrypto or" + ewarn "enable the ssl USE flag for >=dev-lang/python-2.6 in order" + ewarn "to enable RMD160 hash support." + ewarn "See bug #198398 for more information." + fi + if [ -f "${ROOT}/etc/make.globals" ]; then + rm "${ROOT}/etc/make.globals" + fi + + has_version "<${CATEGORY}/${PN}-2.2_alpha" + MINOR_UPGRADE=$? + + has_version "<=${CATEGORY}/${PN}-2.2_pre5" + WORLD_MIGRATION_UPGRADE=$? + + # If portage-2.1.6 is installed and the preserved_libs_registry exists, + # assume that the NEEDED.ELF.2 files have already been generated. + has_version "<=${CATEGORY}/${PN}-2.2_pre7" && \ + ! ( [ -e "$ROOT"var/lib/portage/preserved_libs_registry ] && \ + has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ) + NEEDED_REBUILD_UPGRADE=$? + + [[ -n $PORTDIR_OVERLAY ]] && has_version "<${CATEGORY}/${PN}-2.1.6.12" + REPO_LAYOUT_CONF_WARN=$? +} + +pkg_postinst() { + # Compile all source files recursively. Any orphans + # will be identified and removed in postrm. + python_mod_optimize /usr/$(get_libdir)/portage/pym + + if [ $WORLD_MIGRATION_UPGRADE = 0 ] ; then + einfo "moving set references from the worldfile into world_sets" + cd "${ROOT}/var/lib/portage/" + grep "^@" world >> world_sets + sed -i -e '/^@/d' world + fi + + if [ $NEEDED_REBUILD_UPGRADE = 0 ] ; then + einfo "rebuilding NEEDED.ELF.2 files" + for cpv in "${ROOT}/var/db/pkg"/*/*; do + if [ -f "${cpv}/NEEDED" ]; then + rm -f "${cpv}/NEEDED.ELF.2" + while read line; do + filename=${line% *} + needed=${line#* } + needed=${needed//+/++} + needed=${needed//#/##} + needed=${needed//%/%%} + newline=$(scanelf -BF "%a;%F;%S;%r;${needed}" $filename) + newline=${newline// - } + echo "${newline:3}" >> "${cpv}/NEEDED.ELF.2" + done < "${cpv}/NEEDED" + fi + done + fi + + if [ $REPO_LAYOUT_CONF_WARN = 0 ] ; then + ewarn + echo "If you want overlay eclasses to override eclasses from" \ + "other repos then see the portage(5) man page" \ + "for information about the new layout.conf and repos.conf" \ + "configuration files." \ + | fmt -w 75 | while read -r ; do ewarn "$REPLY" ; done + ewarn + fi + + einfo + einfo "For help with using portage please consult the Gentoo Handbook" + einfo "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3" + einfo + + if [ $MINOR_UPGRADE = 0 ] ; then + elog "If you're upgrading from a pre-2.2 version of portage you might" + elog "want to remerge world (emerge -e world) to take full advantage" + elog "of some of the new features in 2.2." + elog "This is not required however for portage to function properly." + elog + fi + + if [ -z "${PV/*_rc*}" ]; then + elog "If you always want to use the latest development version of portage" + elog "please read http://www.gentoo.org/proj/en/portage/doc/testing.xml" + elog + fi +} + +pkg_postrm() { + python_mod_cleanup /usr/$(get_libdir)/portage/pym +} |