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