Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-apps/portage: portage-2.2_rc33.ebuild ChangeLog portage-2.1.6.13.ebuild
Date: Sun, 03 May 2009 22:14:34
Message-Id: E1M0jRU-0002fC-PQ@stork.gentoo.org
1 zmedico 09/05/03 21:41:48
2
3 Modified: ChangeLog
4 Added: portage-2.2_rc33.ebuild portage-2.1.6.13.ebuild
5 Log:
6 *portage-2.2_rc33 (03 May 2009)
7
8 03 May 2009; Zac Medico <zmedico@g.o> +portage-2.2_rc33.ebuild:
9 2.2_rc33 bump. This includes all of the same fixes as 2.1.6.13.
10 Bug #210077 tracks all bugs fixed in the 2.2 branch.
11
12 *portage-2.1.6.13 (03 May 2009)
13
14 03 May 2009; Zac Medico <zmedico@g.o> +portage-2.1.6.13.ebuild:
15 2.1.6.13 bump. This fixes bug #268398 (document econf automatic die)
16 and bug #267104 (handle insufficient space interaction with userfetch).
17 Bug #268228 tracks all bugs fixed since 2.1.6.11.
18 (Portage version: 2.1.6.13/cvs/Linux i686)
19
20 Revision Changes Path
21 1.605 sys-apps/portage/ChangeLog
22
23 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?rev=1.605&view=markup
24 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?rev=1.605&content-type=text/plain
25 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?r1=1.604&r2=1.605
26
27 Index: ChangeLog
28 ===================================================================
29 RCS file: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v
30 retrieving revision 1.604
31 retrieving revision 1.605
32 diff -u -r1.604 -r1.605
33 --- ChangeLog 2 May 2009 02:22:07 -0000 1.604
34 +++ ChangeLog 3 May 2009 21:41:48 -0000 1.605
35 @@ -1,6 +1,19 @@
36 # ChangeLog for sys-apps/portage
37 # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
38 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.604 2009/05/02 02:22:07 zmedico Exp $
39 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.605 2009/05/03 21:41:48 zmedico Exp $
40 +
41 +*portage-2.2_rc33 (03 May 2009)
42 +
43 + 03 May 2009; Zac Medico <zmedico@g.o> +portage-2.2_rc33.ebuild:
44 + 2.2_rc33 bump. This includes all of the same fixes as 2.1.6.13.
45 + Bug #210077 tracks all bugs fixed in the 2.2 branch.
46 +
47 +*portage-2.1.6.13 (03 May 2009)
48 +
49 + 03 May 2009; Zac Medico <zmedico@g.o> +portage-2.1.6.13.ebuild:
50 + 2.1.6.13 bump. This fixes bug #268398 (document econf automatic die)
51 + and bug #267104 (handle insufficient space interaction with userfetch).
52 + Bug #268228 tracks all bugs fixed since 2.1.6.11.
53
54 *portage-2.2_rc32 (02 May 2009)
55 02 May 2009; Zac Medico <zmedico@g.o> +portage-2.2_rc32.ebuild:
56
57
58
59 1.1 sys-apps/portage/portage-2.2_rc33.ebuild
60
61 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.2_rc33.ebuild?rev=1.1&view=markup
62 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.2_rc33.ebuild?rev=1.1&content-type=text/plain
63
64 Index: portage-2.2_rc33.ebuild
65 ===================================================================
66 # Copyright 1999-2009 Gentoo Foundation
67 # Distributed under the terms of the GNU General Public License v2
68 # $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2_rc33.ebuild,v 1.1 2009/05/03 21:41:48 zmedico Exp $
69
70 inherit eutils multilib python
71
72 DESCRIPTION="Portage is the package management and distribution system for Gentoo"
73 HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
74 LICENSE="GPL-2"
75 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
76 PROVIDE="virtual/portage"
77 SLOT="0"
78 IUSE="build doc epydoc selinux linguas_pl"
79
80 python_dep=">=dev-lang/python-2.4"
81
82 DEPEND="${python_dep}
83 !build? ( >=sys-apps/sed-4.0.5 )
84 doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
85 epydoc? ( >=dev-python/epydoc-2.0 )"
86 RDEPEND="${python_dep}
87 !build? ( >=sys-apps/sed-4.0.5
88 >=app-shells/bash-3.2_p17
89 >=app-admin/eselect-news-20071201 )
90 elibc_FreeBSD? ( sys-freebsd/freebsd-bin )
91 elibc_glibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
92 elibc_uclibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
93 >=app-misc/pax-utils-0.1.17
94 selinux? ( >=dev-python/python-selinux-2.16 )"
95 PDEPEND="
96 !build? (
97 >=net-misc/rsync-2.6.4
98 userland_GNU? ( >=sys-apps/coreutils-6.4 )
99 || ( >=dev-lang/python-2.5 >=dev-python/pycrypto-2.0.1-r6 )
100 )"
101 # coreutils-6.4 rdep is for date format in emerge-webrsync #164532
102 # rsync-2.6.4 rdep is for the --filter option #167668
103
104 SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives"
105
106 prefix_src_archives() {
107 local x y
108 for x in ${@}; do
109 for y in ${SRC_ARCHIVES}; do
110 echo ${y}/${x}
111 done
112 done
113 }
114
115 PV_PL="2.1.2"
116 PATCHVER_PL=""
117 TARBALL_PV="2.2_rc15"
118 SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2
119 $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2)
120 linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2
121 $(prefix_src_archives ${PN}-man-pl-${PV_PL}.tar.bz2) )"
122
123 PATCHVER=$PV
124 if [ -n "${PATCHVER}" ]; then
125 SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
126 $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
127 fi
128
129 S="${WORKDIR}"/${PN}-${TARBALL_PV}
130 S_PL="${WORKDIR}"/${PN}-${PV_PL}
131
132 src_unpack() {
133 unpack ${A}
134 cd "${S}"
135 if [ -n "${PATCHVER}" ]; then
136 cd "${S}"
137 epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
138 fi
139 einfo "Setting portage.VERSION to ${PVR} ..."
140 sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \
141 die "Failed to patch portage.VERSION"
142 }
143
144 src_compile() {
145
146 if use doc; then
147 cd "${S}"/doc
148 touch fragment/date
149 make xhtml xhtml-nochunks || die "failed to make docs"
150 fi
151
152 if use epydoc; then
153 einfo "Generating api docs"
154 mkdir "${WORKDIR}"/api
155 local my_modules epydoc_opts=""
156 # A name collision between the portage.dbapi class and the
157 # module with the same name triggers an epydoc crash unless
158 # portage.dbapi is excluded from introspection.
159 ROOT=/ has_version '>=dev-python/epydoc-3_pre0' && \
160 epydoc_opts='--exclude-introspect portage\.dbapi'
161 my_modules="$(find "${S}/pym" -name "*.py" \
162 | sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \
163 -e 's:/:.:g' | sort)" || die "error listing modules"
164 PYTHONPATH="${S}/pym:${PYTHONPATH}" epydoc -o "${WORKDIR}"/api \
165 -qqqqq --no-frames --show-imports $epydoc_opts \
166 --name "${PN}" --url "${HOMEPAGE}" \
167 ${my_modules} || die "epydoc failed"
168 fi
169 }
170
171 src_test() {
172 ./pym/portage/tests/runTests || \
173 die "test(s) failed"
174 }
175
176 src_install() {
177 local libdir=$(get_libdir)
178 local portage_base="/usr/${libdir}/portage"
179 local portage_share_config=/usr/share/portage/config
180
181 cd "${S}"/cnf
182 insinto /etc
183 doins etc-update.conf dispatch-conf.conf
184
185 dodir "${portage_share_config}"
186 insinto "${portage_share_config}"
187 doins "${S}/cnf/"{sets.conf,make.globals}
188 if [ -f "make.conf.${ARCH}".diff ]; then
189 patch make.conf "make.conf.${ARCH}".diff || \
190 die "Failed to patch make.conf.example"
191 newins make.conf make.conf.example
192 else
193 eerror ""
194 eerror "Portage does not have an arch-specific configuration for this arch."
195 eerror "Please notify the arch maintainer about this issue. Using generic."
196 eerror ""
197 newins make.conf make.conf.example
198 fi
199
200 dosym ..${portage_share_config}/make.globals /etc/make.globals
201
202 insinto /etc/logrotate.d
203 doins "${S}"/cnf/logrotate.d/elog-save-summary
204
205 dodir ${portage_base}/bin
206 exeinto ${portage_base}/bin
207
208 # BSD and OSX need a sed wrapper so that find/xargs work properly
209 if use userland_GNU; then
210 rm "${S}"/bin/ebuild-helpers/sed || die "Failed to remove sed wrapper"
211 fi
212
213 cd "${S}"/bin || die "cd failed"
214 doexe $(find . -maxdepth 1 -type f) || die "doexe failed"
215
216 local symlinks
217 dodir ${portage_base}/bin/ebuild-helpers/3 || die "dodir failed"
218 exeinto ${portage_base}/bin/ebuild-helpers || die "exeinto failed"
219 cd "${S}"/bin/ebuild-helpers || die "cd failed"
220 doexe $(find . -type f ! -type l) || die "doexe failed"
221 symlinks=$(find . -type l)
222 if [ -n "$symlinks" ] ; then
223 cp -P $symlinks "${D}${portage_base}/bin/ebuild-helpers/" || \
224 die "cp failed"
225 fi
226 exeinto ${portage_base}/bin/ebuild-helpers/3 || die "exeinto failed"
227 doexe 3/dodoc
228
229 # These symlinks will be included in the next tarball.
230 # Until then, create them manually.
231 dosym ../portageq ${portage_base}/bin/ebuild-helpers/portageq || \
232 die "dosym failed"
233 local x
234 for x in eerror einfo ewarn eqawarn ; do
235 dosym elog ${portage_base}/bin/ebuild-helpers/$x || die "dosym failed"
236 done
237 for x in dohard dosed ; do
238 dosym ../../banned-helper ${portage_base}/bin/ebuild-helpers/3/$x \
239 || die "dosym failed"
240 done
241
242 for mydir in $(find "${S}"/pym -type d | sed -e "s:^${S}/::") ; do
243 dodir ${portage_base}/${mydir}
244 insinto ${portage_base}/${mydir}
245 cd "${S}"/${mydir}
246 doins *.py
247 symlinks=$(find . -mindepth 1 -maxdepth 1 -type l)
248 [ -n "${symlinks}" ] && cp -P ${symlinks} "${D}${portage_base}/${mydir}"
249 done
250
251 # Symlinks to directories cause up/downgrade issues and the use of these
252 # modules outside of portage is probably negligible.
253 for x in "${D}${portage_base}/pym/"{cache,elog_modules} ; do
254 [ ! -L "${x}" ] && continue
255 die "symlink to directory will cause upgrade/downgrade issues: '${x}'"
256 done
257
258 exeinto ${portage_base}/pym/portage/tests
259 doexe "${S}"/pym/portage/tests/runTests
260
261 doman "${S}"/man/*.[0-9]
262 if use linguas_pl; then
263 doman -i18n=pl "${S_PL}"/man/pl/*.[0-9]
264 doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9]
265 fi
266
267 dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES}
268 use doc && dohtml -r "${S}"/doc/*
269 use epydoc && dohtml -r "${WORKDIR}"/api
270
271 dodir /usr/bin
272 for x in ebuild egencache emerge portageq repoman xpak; do
273 dosym ../${libdir}/portage/bin/${x} /usr/bin/${x}
274 done
275
276 dodir /usr/sbin
277 local my_syms="archive-conf
278 dispatch-conf
279 emaint
280 emerge-webrsync
281 env-update
282 etc-update
283 fixpackages
284 quickpkg
285 regenworld"
286 local x
287 for x in ${my_syms}; do
288 dosym ../${libdir}/portage/bin/${x} /usr/sbin/${x}
289 done
290 dosym env-update /usr/sbin/update-env
291 dosym etc-update /usr/sbin/update-etc
292
293 dodir /etc/portage
294 keepdir /etc/portage
295 }
296
297 pkg_preinst() {
298 if ! use build && ! has_version dev-python/pycrypto && \
299 has_version '>=dev-lang/python-2.5' ; then
300 if ! built_with_use '>=dev-lang/python-2.5' ssl ; then
301 ewarn "If you are an ebuild developer and you plan to commit ebuilds"
302 ewarn "with this system then please install dev-python/pycrypto or"
303 ewarn "enable the ssl USE flag for >=dev-lang/python-2.5 in order"
304 ewarn "to enable RMD160 hash support."
305 ewarn "See bug #198398 for more information."
306 fi
307 fi
308 if [ -f "${ROOT}/etc/make.globals" ]; then
309 rm "${ROOT}/etc/make.globals"
310 fi
311
312 has_version ">=${CATEGORY}/${PN}-2.2_alpha"
313 MINOR_UPGRADE=$?
314
315 has_version "<=${CATEGORY}/${PN}-2.2_pre5"
316 WORLD_MIGRATION_UPGRADE=$?
317
318 # If portage-2.1.6 is installed and the preserved_libs_registry exists,
319 # assume that the NEEDED.ELF.2 files have already been generated.
320 has_version "<=${CATEGORY}/${PN}-2.2_pre7" && \
321 ! ( [ -e "$ROOT"var/lib/portage/preserved_libs_registry ] && \
322 has_version ">=${CATEGORY}/${PN}-2.1.6_rc" )
323 NEEDED_REBUILD_UPGRADE=$?
324
325 has_version "<${CATEGORY}/${PN}-2.2_alpha"
326 ADD_SYSTEM_TO_WORLD=$?
327
328 if [ $ADD_SYSTEM_TO_WORLD != 0 -a "$ROOT" != / ] && \
329 ! has_version "${CATEGORY}/${PN}" ; then
330 # building stage 1
331 ADD_SYSTEM_TO_WORLD=0
332 fi
333
334 [[ -n $PORTDIR_OVERLAY ]] && has_version "<${CATEGORY}/${PN}-2.1.6.12"
335 REPO_LAYOUT_CONF_WARN=$?
336 }
337
338 pkg_postinst() {
339 # Compile all source files recursively. Any orphans
340 # will be identified and removed in postrm.
341 python_mod_optimize /usr/$(get_libdir)/portage/pym
342
343 if [ $ADD_SYSTEM_TO_WORLD = 0 ] && \
344 [ ! -e "$ROOT"var/lib/portage/world_sets ] ; then
345 einfo "adding @system to world_sets for backward compatibility"
346 echo @system > "$ROOT"var/lib/portage/world_sets
347 fi
348
349 if [ $WORLD_MIGRATION_UPGRADE = 0 ] ; then
350 einfo "moving set references from the worldfile into world_sets"
351 cd "${ROOT}/var/lib/portage/"
352 grep "^@" world >> world_sets
353 sed -i -e '/^@/d' world
354 fi
355
356 if [ $NEEDED_REBUILD_UPGRADE = 0 ] ; then
357 einfo "rebuilding NEEDED.ELF.2 files"
358 for cpv in "${ROOT}/var/db/pkg"/*/*; do
359 if [ -f "${cpv}/NEEDED" ]; then
360 rm -f "${cpv}/NEEDED.ELF.2"
361 while read line; do
362 filename=${line% *}
363 needed=${line#* }
364 needed=${needed//+/++}
365 needed=${needed//#/##}
366 needed=${needed//%/%%}
367 newline=$(scanelf -BF "%a;%F;%S;%r;${needed}" $filename)
368 newline=${newline// - }
369 echo "${newline:3}" >> "${cpv}/NEEDED.ELF.2"
370 done < "${cpv}/NEEDED"
371 fi
372 done
373 fi
374
375 if [ $REPO_LAYOUT_CONF_WARN = 0 ] ; then
376 ewarn
377 echo "If you want overlay eclasses to override eclasses from" \
378 "other repos then see the portage(5) man page" \
379 "for information about the new layout.conf and repos.conf" \
380 "configuration files." \
381 | fmt -w 75 | while read -r ; do ewarn "$REPLY" ; done
382 ewarn
383 fi
384
385 einfo
386 einfo "For help with using portage please consult the Gentoo Handbook"
387 einfo "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
388 einfo
389
390 if [ $MINOR_UPGRADE = 0 ] ; then
391 elog "If you're upgrading from a pre-2.2 version of portage you might"
392 elog "want to remerge world (emerge -e world) to take full advantage"
393 elog "of some of the new features in 2.2."
394 elog "This is not required however for portage to function properly."
395 elog
396 fi
397
398 if [ -z "${PV/*_pre*}" ]; then
399 elog "If you always want to use the latest development version of portage"
400 elog "please read http://www.gentoo.org/proj/en/portage/doc/testing.xml"
401 elog
402 fi
403 }
404
405 pkg_postrm() {
406 python_mod_cleanup /usr/$(get_libdir)/portage/pym
407 }
408
409
410
411 1.1 sys-apps/portage/portage-2.1.6.13.ebuild
412
413 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.1.6.13.ebuild?rev=1.1&view=markup
414 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.1.6.13.ebuild?rev=1.1&content-type=text/plain
415
416 Index: portage-2.1.6.13.ebuild
417 ===================================================================
418 # Copyright 1999-2009 Gentoo Foundation
419 # Distributed under the terms of the GNU General Public License v2
420 # $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.6.13.ebuild,v 1.1 2009/05/03 21:41:48 zmedico Exp $
421
422 inherit eutils multilib python
423
424 DESCRIPTION="Portage is the package management and distribution system for Gentoo"
425 HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
426 LICENSE="GPL-2"
427 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
428 PROVIDE="virtual/portage"
429 SLOT="0"
430 IUSE="build doc epydoc selinux linguas_pl"
431
432 python_dep=">=dev-lang/python-2.4"
433
434 DEPEND="${python_dep}
435 !build? ( >=sys-apps/sed-4.0.5 )
436 doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
437 epydoc? ( >=dev-python/epydoc-2.0 )"
438 RDEPEND="${python_dep}
439 !build? ( >=sys-apps/sed-4.0.5
440 >=app-shells/bash-3.2_p17
441 >=app-admin/eselect-news-20071201 )
442 elibc_FreeBSD? ( sys-freebsd/freebsd-bin )
443 elibc_glibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
444 elibc_uclibc? ( >=sys-apps/sandbox-1.2.17 !mips? ( >=sys-apps/sandbox-1.2.18.1-r2 ) )
445 >=app-misc/pax-utils-0.1.17
446 selinux? ( >=dev-python/python-selinux-2.16 )"
447 PDEPEND="
448 !build? (
449 >=net-misc/rsync-2.6.4
450 userland_GNU? ( >=sys-apps/coreutils-6.4 )
451 || ( >=dev-lang/python-2.5 >=dev-python/pycrypto-2.0.1-r6 )
452 )"
453 # coreutils-6.4 rdep is for date format in emerge-webrsync #164532
454 # rsync-2.6.4 rdep is for the --filter option #167668
455
456 SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives"
457
458 prefix_src_archives() {
459 local x y
460 for x in ${@}; do
461 for y in ${SRC_ARCHIVES}; do
462 echo ${y}/${x}
463 done
464 done
465 }
466
467 PV_PL="2.1.2"
468 PATCHVER_PL=""
469 TARBALL_PV=2.1.6
470 SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2
471 $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2)
472 linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2
473 $(prefix_src_archives ${PN}-man-pl-${PV_PL}.tar.bz2) )"
474
475 PATCHVER=$PV
476 if [ -n "${PATCHVER}" ]; then
477 SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
478 $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
479 fi
480
481 S="${WORKDIR}"/${PN}-${TARBALL_PV}
482 S_PL="${WORKDIR}"/${PN}-${PV_PL}
483
484 src_unpack() {
485 unpack ${A}
486 cd "${S}"
487 if [ -n "${PATCHVER}" ]; then
488 cd "${S}"
489 epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
490 fi
491 einfo "Setting portage.VERSION to ${PVR} ..."
492 sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \
493 die "Failed to patch portage.VERSION"
494 }
495
496 src_compile() {
497
498 if use doc; then
499 cd "${S}"/doc
500 touch fragment/date
501 make xhtml xhtml-nochunks || die "failed to make docs"
502 fi
503
504 if use epydoc; then
505 einfo "Generating api docs"
506 mkdir "${WORKDIR}"/api
507 local my_modules epydoc_opts=""
508 # A name collision between the portage.dbapi class and the
509 # module with the same name triggers an epydoc crash unless
510 # portage.dbapi is excluded from introspection.
511 ROOT=/ has_version '>=dev-python/epydoc-3_pre0' && \
512 epydoc_opts='--exclude-introspect portage\.dbapi'
513 my_modules="$(find "${S}/pym" -name "*.py" \
514 | sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \
515 -e 's:/:.:g' | sort)" || die "error listing modules"
516 PYTHONPATH="${S}/pym:${PYTHONPATH}" epydoc -o "${WORKDIR}"/api \
517 -qqqqq --no-frames --show-imports $epydoc_opts \
518 --name "${PN}" --url "${HOMEPAGE}" \
519 ${my_modules} || die "epydoc failed"
520 fi
521 }
522
523 src_test() {
524 ./pym/portage/tests/runTests || \
525 die "test(s) failed"
526 }
527
528 src_install() {
529 local libdir=$(get_libdir)
530 local portage_base="/usr/${libdir}/portage"
531 local portage_share_config=/usr/share/portage/config
532
533 cd "${S}"/cnf
534 insinto /etc
535 doins etc-update.conf dispatch-conf.conf
536
537 dodir "${portage_share_config}"
538 insinto "${portage_share_config}"
539 doins "${S}/cnf/"make.globals
540 if [ -f "make.conf.${ARCH}".diff ]; then
541 patch make.conf "make.conf.${ARCH}".diff || \
542 die "Failed to patch make.conf.example"
543 newins make.conf make.conf.example
544 else
545 eerror ""
546 eerror "Portage does not have an arch-specific configuration for this arch."
547 eerror "Please notify the arch maintainer about this issue. Using generic."
548 eerror ""
549 newins make.conf make.conf.example
550 fi
551
552 dosym ..${portage_share_config}/make.globals /etc/make.globals
553
554 insinto /etc/logrotate.d
555 doins "${S}"/cnf/logrotate.d/elog-save-summary
556
557 dodir ${portage_base}/bin
558 exeinto ${portage_base}/bin
559
560 # BSD and OSX need a sed wrapper so that find/xargs work properly
561 if use userland_GNU; then
562 rm "${S}"/bin/ebuild-helpers/sed || die "Failed to remove sed wrapper"
563 fi
564
565 cd "${S}"/bin || die "cd failed"
566 doexe $(find . -maxdepth 1 -type f) || die "doexe failed"
567
568 local symlinks
569 dodir ${portage_base}/bin/ebuild-helpers || die "dodir failed"
570 exeinto ${portage_base}/bin/ebuild-helpers || die "exeinto failed"
571 cd "${S}"/bin/ebuild-helpers || die "cd failed"
572 doexe $(find . -type f ! -type l) || die "doexe failed"
573 symlinks=$(find . -type l)
574 if [ -n "$symlinks" ] ; then
575 cp -P $symlinks "${D}${portage_base}/bin/ebuild-helpers/" || \
576 die "cp failed"
577 fi
578
579 # These symlinks will be included in the next tarball.
580 # Until then, create them manually.
581 dosym ../portageq ${portage_base}/bin/ebuild-helpers/portageq || \
582 die "dosym failed"
583 local x
584 for x in eerror einfo ewarn eqawarn ; do
585 dosym elog ${portage_base}/bin/ebuild-helpers/$x || die "dosym failed"
586 done
587
588 for mydir in $(find "${S}"/pym -type d | sed -e "s:^${S}/::") ; do
589 dodir ${portage_base}/${mydir}
590 insinto ${portage_base}/${mydir}
591 cd "${S}"/${mydir}
592 doins *.py
593 symlinks=$(find . -mindepth 1 -maxdepth 1 -type l)
594 [ -n "${symlinks}" ] && cp -P ${symlinks} "${D}${portage_base}/${mydir}"
595 done
596
597 # Symlinks to directories cause up/downgrade issues and the use of these
598 # modules outside of portage is probably negligible.
599 for x in "${D}${portage_base}/pym/"{cache,elog_modules} ; do
600 [ ! -L "${x}" ] && continue
601 die "symlink to directory will cause upgrade/downgrade issues: '${x}'"
602 done
603
604 exeinto ${portage_base}/pym/portage/tests
605 doexe "${S}"/pym/portage/tests/runTests
606
607 doman "${S}"/man/*.[0-9]
608 if use linguas_pl; then
609 doman -i18n=pl "${S_PL}"/man/pl/*.[0-9]
610 doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9]
611 fi
612
613 dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES}
614 use doc && dohtml -r "${S}"/doc/*
615 use epydoc && dohtml -r "${WORKDIR}"/api
616
617 dodir /usr/bin
618 for x in ebuild egencache emerge portageq repoman xpak; do
619 dosym ../${libdir}/portage/bin/${x} /usr/bin/${x}
620 done
621
622 dodir /usr/sbin
623 local my_syms="archive-conf
624 dispatch-conf
625 emaint
626 emerge-webrsync
627 env-update
628 etc-update
629 fixpackages
630 quickpkg
631 regenworld"
632 local x
633 for x in ${my_syms}; do
634 dosym ../${libdir}/portage/bin/${x} /usr/sbin/${x}
635 done
636 dosym env-update /usr/sbin/update-env
637 dosym etc-update /usr/sbin/update-etc
638
639 dodir /etc/portage
640 keepdir /etc/portage
641 }
642
643 pkg_preinst() {
644 if ! use build && ! has_version dev-python/pycrypto && \
645 has_version '>=dev-lang/python-2.5' ; then
646 if ! built_with_use '>=dev-lang/python-2.5' ssl ; then
647 ewarn "If you are an ebuild developer and you plan to commit ebuilds"
648 ewarn "with this system then please install dev-python/pycrypto or"
649 ewarn "enable the ssl USE flag for >=dev-lang/python-2.5 in order"
650 ewarn "to enable RMD160 hash support."
651 ewarn "See bug #198398 for more information."
652 fi
653 fi
654 if [ -f "${ROOT}/etc/make.globals" ]; then
655 rm "${ROOT}/etc/make.globals"
656 fi
657 has_version ">=${CATEGORY}/${PN}-2.2_pre"
658 DOWNGRADE_FROM_2_2=$?
659 has_version "<${CATEGORY}/${PN}-2.1.6_pre"
660 UPGRADE_FROM_2_1=$?
661
662 [[ -n $PORTDIR_OVERLAY ]] && has_version "<${CATEGORY}/${PN}-2.1.6.12"
663 REPO_LAYOUT_CONF_WARN=$?
664 }
665
666 pkg_postinst() {
667 # Compile all source files recursively. Any orphans
668 # will be identified and removed in postrm.
669 python_mod_optimize /usr/$(get_libdir)/portage/pym
670
671 einfo
672 einfo "For help with using portage please consult the Gentoo Handbook"
673 einfo "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
674 einfo
675
676 local warning_shown=0
677 if [ $REPO_LAYOUT_CONF_WARN = 0 ] ; then
678 ewarn
679 echo "If you want overlay eclasses to override eclasses from" \
680 "other repos then see the portage(5) man page" \
681 "for information about the new layout.conf and repos.conf" \
682 "configuration files." \
683 | fmt -w 75 | while read -r ; do ewarn "$REPLY" ; done
684 warning_shown=1
685 fi
686 if [ $DOWNGRADE_FROM_2_2 = 0 ] ; then
687 ewarn
688 echo "Since you have downgraded from portage-2.2, do not forget to" \
689 "use revdep-rebuild when appropriate, since the @preserved-rebuild" \
690 "package set is only supported with portage-2.2." | fmt -w 70 | \
691 while read -r ; do ewarn "$REPLY" ; done
692 warning_shown=1
693 fi
694 if [ $UPGRADE_FROM_2_1 = 0 ] ; then
695 ewarn
696 echo "In portage-2.1.6, the default behavior has changed for" \
697 "\`emerge world\` and \`emerge system\` commands. These commands" \
698 "will reinstall all packages from the given set unless an option" \
699 "such as --noreplace, --update, or --newuse is specified." \
700 | fmt -w 70 | while read -r ; do ewarn "$REPLY" ; done
701 ewarn
702 echo "File collision protection is now enabled by default via" \
703 "make.globals with FEATURES=protect-owned. If you want to" \
704 "disable collision protection completely (not recommended), then" \
705 "you need to ensure that neither protect-owned nor collision-protect" \
706 "are enabled." | fmt -w 70 | while read -r ; do ewarn "$REPLY" ; done
707 ewarn
708 echo "If you have overridden FETCHCOMMAND or RESUMECOMMAND variables," \
709 "for compatibility with EAPI 2, you must ensure that these variables" \
710 "are written such that the downloaded file will be placed at" \
711 "\\\"\\\${DISTDIR}/\\\${FILE}\\\". Refer to make.conf(5) for" \
712 "information about FETCHCOMMAND and RESUMECOMMAND." | \
713 fmt -w 70 | while read -r ; do ewarn "$REPLY" ; done
714 warning_shown=1
715 fi
716 if [ $warning_shown = 1 ] ; then
717 ewarn # for symmetry
718 fi
719 }
720
721 pkg_postrm() {
722 python_mod_cleanup /usr/$(get_libdir)/portage/pym
723 }