summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-23 07:52:03 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-23 07:52:03 +0000
commit10e5a5e18f7b2d9699611b3863065633f5cddda9 (patch)
tree14b350d82e36d6d114305403147b9eb4897e8275 /sys-apps
parentStable for HPPA (bug #230848). (diff)
downloadgentoo-2-10e5a5e18f7b2d9699611b3863065633f5cddda9.tar.gz
gentoo-2-10e5a5e18f7b2d9699611b3863065633f5cddda9.tar.bz2
gentoo-2-10e5a5e18f7b2d9699611b3863065633f5cddda9.zip
2.2_rc2 bump. This fixes bugs #12768 (--keep-going), #147516 (--jobs),
displayed twice), #228977 (tight loop when merging glibc), #230053 (depclean lib awareness), #230245 (repoman does svn list in wrong dir), distlocks with --fetchonly), #230579 (exception triggered by empty preserved libs registry), #231358 (exception triggered by conditional in LICENSE), #231382 (mysterious exception raised from getconfig), and since 2.1.5.x. Remove old 2.1.5.5 ebuild. (Portage version: 2.2_rc2/cvs/Linux 2.6.25-0619-x86-64 i686)
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/portage/ChangeLog18
-rw-r--r--sys-apps/portage/portage-2.2_rc2.ebuild (renamed from sys-apps/portage/portage-2.1.5.5.ebuild)209
2 files changed, 126 insertions, 101 deletions
diff --git a/sys-apps/portage/ChangeLog b/sys-apps/portage/ChangeLog
index be9962234d93..391afebd6622 100644
--- a/sys-apps/portage/ChangeLog
+++ b/sys-apps/portage/ChangeLog
@@ -1,6 +1,22 @@
# ChangeLog for sys-apps/portage
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.531 2008/06/28 18:01:55 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.532 2008/07/23 07:52:03 zmedico Exp $
+
+*portage-2.2_rc2 (23 Jul 2008)
+
+ 23 Jul 2008; Zac Medico <zmedico@gentoo.org> +portage-2.2_rc2.ebuild:
+ 2.2_rc2 bump. This fixes bugs #12768 (--keep-going), #147516 (--jobs),
+ #226307 (problem unmerging slots that don't belong to a package set),
+ #228489 (restore repoman ci), #228595 (bogus repo_name warning),
+ #228935 (build log check for 'command not found'), #228939 (merge list
+ displayed twice), #228977 (tight loop when merging glibc), #230053
+ (depclean lib awareness), #230245 (repoman does svn list in wrong dir),
+ #230249 (poor repoman performance in svn repos), #230469 (non-blocking
+ distlocks with --fetchonly), #230579 (exception triggered by empty
+ preserved libs registry), #231358 (exception triggered by conditional
+ in LICENSE), #231382 (mysterious exception raised from getconfig), and
+ #231464 (dropped elog messages). Bug #210077 tracks all bugs fixed
+ since 2.1.5.x.
28 Jun 2008; Mike Frysinger <vapier@gentoo.org> portage-2.2_rc1.ebuild:
Force newer pax-utils #229213 by Andrey Kislyuk.
diff --git a/sys-apps/portage/portage-2.1.5.5.ebuild b/sys-apps/portage/portage-2.2_rc2.ebuild
index d8bde0722123..7aa9bb1dd6c9 100644
--- a/sys-apps/portage/portage-2.1.5.5.ebuild
+++ b/sys-apps/portage/portage-2.2_rc2.ebuild
@@ -1,8 +1,8 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.5.5.ebuild,v 1.2 2008/06/16 08:51:53 zmedico Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2_rc2.ebuild,v 1.1 2008/07/23 07:52:03 zmedico Exp $
-inherit eutils multilib
+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"
@@ -12,22 +12,20 @@ PROVIDE="virtual/portage"
SLOT="0"
IUSE="build doc epydoc selinux linguas_pl"
-# Need >=python-2.5 for float mtime support. This dep
-# can revert to python-2.4 when bug #223417 is fixed.
-#python_dep=">=dev-lang/python-2.4"
-python_dep=">=dev-lang/python-2.5"
+python_dep=">=dev-lang/python-2.4"
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 )"
+ epydoc? ( =dev-python/epydoc-2* )"
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
- >=app-shells/bash-3.2_p17 )
+ >=app-shells/bash-3.2_p17
+ >=app-admin/eselect-news-20071201 )
elibc_FreeBSD? ( sys-freebsd/freebsd-bin )
elibc_glibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
elibc_uclibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
- >=app-misc/pax-utils-0.1.13
+ >=app-misc/pax-utils-0.1.17
selinux? ( >=dev-python/python-selinux-2.16 )"
PDEPEND="
!build? (
@@ -37,35 +35,39 @@ PDEPEND="
)"
# 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.5"
+TARBALL_PV="2.2_rc1"
SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2
- ${SRC_ARCHIVES}/${PN}-${TARBALL_PV}.tar.bz2
+ $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2)
linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2
- ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}.tar.bz2 )"
+ $(prefix_src_archives ${PN}-man-pl-${PV_PL}.tar.bz2) )"
-PATCHVER="${PV}"
+PATCHVER="2.2_rc2"
if [ -n "${PATCHVER}" ]; then
SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
- ${SRC_ARCHIVES}/${PN}-${PATCHVER}.patch.bz2"
-fi
-
-if [ -n "${PATCHVER_PL}" ]; then
- SRC_URI="${SRC_URI} linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2
- ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2 )"
+ $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
fi
S="${WORKDIR}"/${PN}-${TARBALL_PV}
S_PL="${WORKDIR}"/${PN}-${PV_PL}
-portage_docs() {
- elog ""
- elog "For help with using portage please consult the Gentoo Handbook"
- elog "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
- elog ""
+pkg_setup() {
+ MINOR_UPGRADE=$(has_version '>=sys-apps/portage-2.2_alpha' && echo true)
+ WORLD_MIGRATION_UPGRADE=$(has_version '<=sys-apps/portage-2.2_pre5' && echo true)
+ NEEDED_REBUILD_UPGRADE=$(has_version '<=sys-apps/portage-2.2_pre7' && echo true)
}
src_unpack() {
@@ -76,22 +78,15 @@ src_unpack() {
epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
fi
einfo "Setting portage.VERSION to ${PVR} ..."
- sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage.py || \
+ sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
- eend 0
- if [ -n "${PATCHVER_PL}" ]; then
- use linguas_pl && \
- epatch "${WORKDIR}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch"
- fi
}
src_compile() {
- cd "${S}"/src
if use doc; then
cd "${S}"/doc
touch fragment/date
- sed -i "s/svn-trunk/${PVR}/" fragment/version
make xhtml xhtml-nochunks || die "failed to make docs"
fi
@@ -101,7 +96,7 @@ src_compile() {
local my_modules
my_modules="$(find "${S}/pym" -name "*.py" \
| sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \
- -e 's:/:.:g')" || die "error listing modules"
+ -e 's:/:.:g' | sort)" || die "error listing modules"
PYTHONPATH="${S}/pym:${PYTHONPATH}" epydoc -o "${WORKDIR}"/api \
-qqqqq --no-frames --show-imports \
--name "${PN}" --url "${HOMEPAGE}" \
@@ -110,16 +105,22 @@ src_compile() {
}
src_test() {
- ./tests/runTests || \
+ ./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 make.globals
+ doins etc-update.conf dispatch-conf.conf
+
+ dodir "${portage_share_config}"
+ insinto "${portage_share_config}"
+ doins "${S}/cnf/"{sets.conf,make.globals}
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
@@ -132,40 +133,54 @@ src_install() {
newins make.conf make.conf.example
fi
+ dosym ..${portage_share_config}/make.globals /etc/make.globals
+
insinto /etc/logrotate.d
doins "${S}"/cnf/logrotate.d/elog-save-summary
dodir ${portage_base}/bin
exeinto ${portage_base}/bin
+
# BSD and OSX need a sed wrapper so that find/xargs work properly
if use userland_GNU; then
rm "${S}"/bin/sed || die "Failed to remove sed wrapper"
fi
+
cd "${S}"/bin
doexe *
dosym newins ${portage_base}/bin/donewins
- local mydir
- for mydir in pym pym/cache pym/elog_modules; do
+ local symlinks
+ for mydir in $(find "${S}"/pym -type d | sed -e "s:^${S}/::") ; do
dodir ${portage_base}/${mydir}
insinto ${portage_base}/${mydir}
cd "${S}"/${mydir}
doins *.py
+ symlinks=$(find . -mindepth 1 -maxdepth 1 -type l)
+ [ -n "${symlinks}" ] && cp -P ${symlinks} "${D}${portage_base}/${mydir}"
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
- dodoc "${S}"/NEWS
- dodoc "${S}"/RELEASE-NOTES
- use doc && dohtml "${S}"/doc/*.html
+
+ dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES}
+ use doc && dohtml -r "${S}"/doc/*
use epydoc && dohtml -r "${WORKDIR}"/api
dodir /usr/bin
- local x
for x in ebuild emerge portageq repoman xpak; do
dosym ../${libdir}/portage/bin/${x} /usr/bin/${x}
done
@@ -189,81 +204,75 @@ src_install() {
dodir /etc/portage
keepdir /etc/portage
-
- echo PYTHONPATH=\"${portage_base}/pym\" > "${WORKDIR}"/05portage.envd
- doenvd "${WORKDIR}"/05portage.envd
}
pkg_preinst() {
if ! use build && ! has_version dev-python/pycrypto && \
has_version '>=dev-lang/python-2.5' ; then
if ! built_with_use '>=dev-lang/python-2.5' ssl ; then
- echo "If you are a Gentoo developer and you plan to" \
- "commit ebuilds with this system then please install" \
- "pycrypto or enable python's ssl USE flag in order" \
- "to enable RMD160 hash support. See bug #198398 for" \
- "more information." | \
- fmt -w 70 | while read line ; do ewarn "${line}" ; done
+ 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.5 in order"
+ ewarn "to enable RMD160 hash support."
+ ewarn "See bug #198398 for more information."
fi
fi
- local portage_base="/usr/$(get_libdir)/portage"
- if has livecvsportage ${FEATURES} && [ "${ROOT}" = "/" ]; then
- rm -rf "${D}"/${portage_base}/pym/*
- rm -rf "${D}"/${portage_base}/bin/*
+ if [ -f "${ROOT}/etc/make.globals" ]; then
+ rm "${ROOT}/etc/make.globals"
fi
}
pkg_postinst() {
- local x
+ # Compile all source files recursively. Any orphans
+ # will be identified and removed in postrm.
+ python_mod_optimize /usr/$(get_libdir)/portage/pym
- if [ ! -f "${ROOT}/var/lib/portage/world" ] &&
- [ -f "${ROOT}"/var/cache/edb/world ] &&
- [ ! -h "${ROOT}"/var/cache/edb/world ]; then
- mv "${ROOT}"/var/cache/edb/world "${ROOT}"/var/lib/portage/world
- ln -s ../../lib/portage/world /var/cache/edb/world
+ if [ -n "${WORLD_MIGRATION_UPGRADE}" ]; 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
- for x in "${ROOT}"/etc/._cfg????_make.globals; do
- # Overwrite the globals file automatically.
- [ -e "${x}" ] && mv -f "${x}" "${ROOT}etc/make.globals"
- done
-
- # Compile all source files recursively. Any orphans
- # will be identified and removed in postrm.
- compile_all_python_bytecodes "${ROOT}usr/$(get_libdir)/portage/pym"
-
- echo "The metadata-transfer feature is now disabled" \
- "by default. This disables the \"Updating Portage cache\"" \
- "routine that used to run at the tail end of each" \
- "\`emerge --sync\` operation. If you use something" \
- "like the sqlite module and want to keep all metadata" \
- "in that format alone (useful for querying), enable" \
- "FEATURES=\"metadata-transfer\" in make.conf. You should" \
- "also enable FEATURES=\"metadata-transfer\" if you have" \
- "any eclasses from PORTDIR_OVERLAY that override eclasses" \
- "from PORTDIR (in this case, you may have disabled" \
- "a relevant warning message by setting" \
- "PORTAGE_ECLASS_WARNING_ENABLE=\"0\" in make.conf)." \
- | fmt -w 75 | while read x ; do elog "$x" ; done
-
- portage_docs
-}
+ if [ -n "${NEEDED_REBUILD_UPGRADE}" ]; 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
-pkg_postrm() {
- remove_orphan_python_bytecodes "${ROOT}usr/$(get_libdir)/portage/pym"
-}
+ elog
+ elog "For help with using portage please consult the Gentoo Handbook"
+ elog "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
+ elog
+
+ if [ -z "${MINOR_UPGRADE}" ]; 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
-compile_all_python_bytecodes() {
- python -c "from compileall import compile_dir; compile_dir('${1}', quiet=True)"
- python -O -c "from compileall import compile_dir; compile_dir('${1}', quiet=True)"
+ if [ -z "${PV/*_pre*}" ]; 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
}
-remove_orphan_python_bytecodes() {
- [[ -d ${1} ]] || return
- find "${1}" -name '*.py[co]' -print0 | \
- while read -d $'\0' f ; do
- src_py=${f%[co]}
- [[ -f ${src_py} ]] && continue
- rm -f "${src_py}"[co]
- done
+pkg_postrm() {
+ python_mod_cleanup /usr/$(get_libdir)/portage/pym
}