move(sys-apps/portage): Move to the coreos-overlay

until gentoo releases a new version of portage with our fixes we need to
use the coreos-overlay.
This commit is contained in:
Brandon Philips 2013-03-21 18:19:11 -07:00
parent d6c11ab1bd
commit 3c08d48c1d
13 changed files with 0 additions and 8814 deletions

View File

@ -1,210 +0,0 @@
# ChangeLog for sys-apps/portage
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.1185 2013/01/27 22:04:14 zmedico Exp $
27 Jan 2013; Zac Medico <zmedico@gentoo.org> portage-2.1.11.31.ebuild,
portage-2.1.11.50.ebuild, portage-2.2.0_alpha142.ebuild,
portage-2.2.0_alpha161.ebuild, portage-9999.ebuild:
Remove obsolete warning about RMD160 hash support.
*portage-2.2.0_alpha161 (24 Jan 2013)
24 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha161.ebuild,
-portage-2.2.0_alpha159.ebuild, -portage-2.2.0_alpha160.ebuild:
2.2.0_alpha161 version bump. This includes all of the fixes in 2.1.11.50. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.50 (24 Jan 2013)
24 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.50.ebuild,
-portage-2.1.11.48.ebuild, -portage-2.1.11.49.ebuild:
2.1.11.50 version bump. This fixes bug #453892 ('TypeError: must be char, not
unicode' exception with Python 2 when renaming files during merge), a
regression since 2.1.11.44 and 2.2.0_alpha155. Bug #445274 tracks all bugs
fixed since portage-2.1.11.31.
*portage-2.2.0_alpha160 (24 Jan 2013)
24 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha160.ebuild,
-portage-2.2.0_alpha158.ebuild:
2.2.0_alpha160 version bump. This includes all of the fixes in 2.1.11.49. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.49 (24 Jan 2013)
24 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.49.ebuild,
-portage-2.1.11.47.ebuild:
2.1.11.49 version bump. This fixes some more potential cases that are related
to bug #453400 (AttributeError triggered by slot conflict involving default
USE deps and implicit IUSE). Bug #445274 tracks all bugs fixed since
portage-2.1.11.31.
*portage-2.2.0_alpha159 (21 Jan 2013)
21 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha159.ebuild,
-portage-2.2.0_alpha155.ebuild:
2.2.0_alpha159 version bump. This includes all of the fixes in 2.1.11.48. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.48 (21 Jan 2013)
21 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.48.ebuild,
-portage-2.1.11.44.ebuild:
2.1.11.48 version bump. This fixes bug #453358 (better examples for
ACCEPT_LICENSE in make.conf man page) and bug #453400 (AttributeError
triggered by slot conflict involving default USE deps and implicit IUSE). Bug
#445274 tracks all bugs fixed since portage-2.1.11.31.
*portage-2.2.0_alpha158 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha158.ebuild,
-portage-2.2.0_alpha157.ebuild:
2.2.0_alpha158 version bump. This includes all of the fixes in 2.1.11.47. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.47 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.47.ebuild,
-portage-2.1.11.46.ebuild:
2.1.11.47 version bump. This fixes repoman 'TypeError: must be char, not
unicode' exception with Python 2 when downloading metadata.dtd (regression
since 2.1.11.44 and 2.2.0_alpha155). Bug #445274 tracks all bugs fixed since
portage-2.1.11.31.
*portage-2.2.0_alpha157 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha157.ebuild,
-portage-2.2.0_alpha156.ebuild:
2.2.0_alpha157 version bump. This includes all of the fixes in 2.1.11.46. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.46 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.46.ebuild,
-portage-2.1.11.45.ebuild:
2.1.11.46 version bump. This fixes serious bugs in repoman code from the
previous release. Bug #445274 tracks all bugs fixed since portage-2.1.11.31.
*portage-2.2.0_alpha156 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha156.ebuild,
-portage-2.2.0_alpha154.ebuild:
2.2.0_alpha156 version bump. This includes all of the fixes in 2.1.11.45. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.45 (20 Jan 2013)
20 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.45.ebuild,
-portage-2.1.11.43.ebuild:
2.1.11.45 version bump. This fixes a repoman bug which cause it handle stable
use force/mask incorrectly. Bug #445274 tracks all bugs fixed since
portage-2.1.11.31.
*portage-2.2.0_alpha155 (19 Jan 2013)
19 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha155.ebuild,
-portage-2.2.0_alpha153.ebuild:
2.2.0_alpha155 version bump. This includes all of the fixes in 2.1.11.44. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.44 (19 Jan 2013)
19 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.44.ebuild,
-portage-2.1.11.42.ebuild:
2.1.11.44 version bump. This adds support for the @security package set, which
installs GLSA security updates (like glsa-check from gentoolkit). Bug #445274
tracks all bugs fixed since portage-2.1.11.31.
*portage-2.2.0_alpha154 (16 Jan 2013)
16 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha154.ebuild,
-portage-2.2.0_alpha151.ebuild:
2.2.0_alpha154 version bump. This includes all of the fixes in 2.1.11.43. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.43 (16 Jan 2013)
16 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.43.ebuild,
-portage-2.1.11.40.ebuild:
2.1.11.43 version bump. This fixes bug #451048 (show free ram/swap in emerge
--info output). This also fixes random 'Bad file descriptor' errors for PyPy,
by avoiding file descriptor interference via dup2(). Bug #445274 tracks all
bugs fixed since portage-2.1.11.31.
*portage-2.2.0_alpha153 (15 Jan 2013)
15 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha153.ebuild,
-portage-2.2.0_alpha152.ebuild:
2.2.0_alpha153 version bump. This includes all of the fixes in 2.1.11.42. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.42 (15 Jan 2013)
15 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.42.ebuild,
-portage-2.1.11.41.ebuild:
2.1.11.42 version bump. This fixes bug #452030 (prevent duplicate test runs
with test-fail-continue) and bug #452176 (warn about deprecated /etc/make.*
files). This also fixes a random KeyError which can occur when checking binary
package digests (regression since 2.1.11.39 and 2.2.0_alpha150). Bug #445274
tracks all bugs fixed since portage-2.1.11.31.
14 Jan 2013; Zac Medico <zmedico@gentoo.org> portage-9999.ebuild:
Remove LINGUAS loop which is handled by the Makefile now.
*portage-2.2.0_alpha152 (14 Jan 2013)
14 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha152.ebuild,
-portage-2.2.0_alpha149.ebuild:
2.2.0_alpha152 version bump. This includes all of the fixes in 2.1.11.41. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.41 (14 Jan 2013)
14 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.41.ebuild,
-portage-2.1.11.38.ebuild:
2.1.11.41 version bump. This fixes bug #430488 (python3 support for selinux)
and bug #451386 (handle non-shell-script in /etc/init.d). Bug #445274 tracks
all bugs fixed since portage-2.1.11.31.
14 Jan 2013; Zac Medico <zmedico@gentoo.org> portage-9999.ebuild:
Add linguas_ru for bug #450372.
*portage-2.2.0_alpha151 (11 Jan 2013)
11 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha151.ebuild,
-portage-2.2.0_alpha150.ebuild:
2.2.0_alpha150 version bump. This includes all of the fixes in 2.1.11.40. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.40 (11 Jan 2013)
11 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.40.ebuild,
-portage-2.1.11.39.ebuild:
2.1.11.40 version bump. This fixes bug #451344 (spawn_nofetch portage
NameError, a regression in 2.1.11.39 and 2.2.0_alpha150). Bug #445274 tracks
all bugs fixed since portage-2.1.11.31.
*portage-2.2.0_alpha150 (10 Jan 2013)
10 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.2.0_alpha150.ebuild:
2.2.0_alpha150 version bump. This includes all of the fixes in 2.1.11.39. Bug
#210077 tracks all bugs fixed since portage-2.1.x.
*portage-2.1.11.39 (10 Jan 2013)
10 Jan 2013; Zac Medico <zmedico@gentoo.org> +portage-2.1.11.39.ebuild:
2.1.11.39 version bump. This fixes bug #243192 (update quickpkg man page), bug
#298298 (include packages from nested package sets in emerge --depclean
summary), bug #446610 (handle syncfs return value), bug #446662 (add
QA_CONFIGURE_OPTIONS), bug #448176 (fix emerge --keep-going to avoid dropping
packages), bug #448858 (relocation error triggered by glibc upgrade), bug
#449678 (silence repoman warning about usex for EAPI 5), bug #449708 (make
use() fatal when called with unknown flags in EAPI 5), bug #450278 (add
QA_AM_MAINTAINER_MODE), bug #450960 (mention relavant file names in autounmask
messages), and bug #451118 (fix make.conf.5 formatting of compress-index
docs). Bug #445274 tracks all bugs fixed since portage-2.1.11.31.
01 Jan 2013; Andreas K. Huettel <dilfridge@gentoo.org> +ChangeLog-2012:
Split ChangeLog.
For previous entries, please see ChangeLog-2012.

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +0,0 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX README.RESCUE 137 SHA256 69bea0c755eab59b6b4d90838b8551744f0b0c8eeac170b1cd13a71ee83f9ac4 SHA512 dba0f0d6d4cd140e636cc70dfb7bdb298e2f2fb040bc07b0874cac994bdbabd26bfd9361d85a0f8b9a92a185281e4901606b9e4f563afdc8867341bbe6af1cb0 WHIRLPOOL 713fcc790442999d56e13efaf536fec9954dadeda680b3642d0358311332096ddedf8b55697bd1ca620d84f0dc7d025ff7931e086c74c1f5032be72dca2ff8f5
DIST portage-2.1.11.31.tar.bz2 848585 SHA256 3013e9ba1fc3f87a5fedff8e5a1d2b36d6a9e06538fdebee6ab7b4cf61d273ce SHA512 12222ecb8e3f3b239c7616568475d87f2ef705b83cb72311c0d70df49c7eef1f1bb4e898afb6f17023b40077a80f9ae26129aef0a52f9f16e22140e5ea8d8522 WHIRLPOOL b3d3b0fc90476c6bd6c41a1dea17999ca21598db547c8e691fdd378e9bbacb991954f03378a033755008d7bc27d15b2505f62e6408ec914e840ead4edc0a5c9a
DIST portage-2.1.11.50.tar.bz2 895469 SHA256 39f61e4f2256cbc9f7b6e5da9d6eeb43ff16fd674d7304a7b280ff84d8835110 SHA512 4d313e62ee250b852950ebfd2bb8edf465f56d8e6b9f473b0c55b3856755ad4cb6c6875ab067ca2978c4a0cc75ad6583dc14425b5b4fcf096e72797bc5271a8c WHIRLPOOL cf0b2212eda9c78a8e57f37570dc87a0af0f11ea7b9b79938e7ac78b2196283880571e8bd000c35d665e5188500064aa5065dc7b5a2d0de21c9b8e4d54a2bfec
DIST portage-2.1.6.7.patch.bz2 50118 SHA256 5f0605b51a24d23703330b040d2f7154322284db3e0cefa7499002ff1fa733c0 SHA512 dd2acc1d436cad77cfc83c4dec79316763c1fb88d61b7702e8e47e6f31b2b9fe49e8a4cf4a947614a2acd6db2ef080ed8b4ae5fce9d9be29d7e218a0ec1576c0 WHIRLPOOL 050f923249fde7c4774a2a8a944889e4270a89b00441f1923c01ab0be38f107503e018d7ab7a7f42615e7e375f0f6c0eb3bdbf3ff4ce1ce226957238a729b1ee
DIST portage-2.1.6.7_p1.patch.bz2 4741 SHA256 ddaae2ad8c01e6477bfe22e23a4da57eb9d079a27a17a08385d56fe2c49eec30 SHA512 39058d815827b340787d813515ed4fb8c52c4fb0caa12ae70c8a9a97b9ba16c2bf4177190cb7d1c508055ce8a7aaa390ba9b31642c7d74bfb4a14d729e720617 WHIRLPOOL 8eab9574ed2e6cabac593d93f8b6ff71465c01376e7eec4cf357c336b5ed3d4f3fb3521991148ba4e34ba00c56bec5534c98311167c03866812277a8d88b0494
DIST portage-2.1.6.tar.bz2 518771 SHA256 b1c507445b3858449c861568f477e1cfab8b2326ded906b852c5193fb3839647 SHA512 d035f84601802ecaea3c0edea037a783fec743733bd40895eb5bb8a220449eb24cf1e2623cbca2e378197caba63a833d8cc54f1e49d886266307288b0adcfbdc WHIRLPOOL 25b6a6e3810f428c630ec7a6dc3cf2cfbe6bfdf276553786e1436b2630532ab442186e427bc75f249a224c5171b508a92303ce352b07be1a8a4d805c568ec10f
DIST portage-2.2.0_alpha142.tar.bz2 848765 SHA256 c2fb4499fbf747ad11a297f2ab0340f6af7958868cc72530627dd46596e88ff5 SHA512 f0fb016503d1e7998cc295c07ea83d4210075ea3d8c9421e2e9fe4256dde4138a073c60c6f11dc1dd0b3a362404810dea84ee878eec8a0c74bd43ef8e3741d2c WHIRLPOOL 34f1f5ebd2f18e52b1d441d763fda335cdbcc879aa89e36ca5a8e344567c8ab30d7a88864f97a332ba4b2a9d226eae89a41302e73ebe7eb2d33d2a9a0a3211be
DIST portage-2.2.0_alpha160.tar.bz2 895123 SHA256 25741e1a0cb2169008a20a3eda99666223694f1a046b3ed26ef43246f77acc84 SHA512 bfaf840c56d088a57211fcb6a7e78279f9980078dc0d199828a6cd663fe3801b76a0375ba4cfe00c4455fe822a40d104b3424608751d85f577824cdc03605b35 WHIRLPOOL e3c4a8f9a484e42c30319fe842807557e2953c4bf6c8849a639b6b908044f84f7283f18dd260cd3d8ce5c8ef1f037fa51b67d08c062b76f8267d76ab83f2f6d0
DIST portage-2.2.0_alpha161.patch.bz2 2850 SHA256 77e949bb0b3c6ef10839ec9ae5f29477e88211a35964b75459ec4fa363a1ced5 SHA512 656181fe02cd983e647b4dbe615718e62284cbccf118f98cb7bff02f704d4d3f7fd24d4f161eb1d34ceab3d4e3ac233743a8d1ab33312517de8498c8f3417eb7 WHIRLPOOL 3127c9347a006ac393a2ffd1ebe8c18c3363fec5ca3114a99375c9446daf5737fbdc6d9e813ce95d75851b954c40cf658f0fd81800560cc2b5c2dd6d4c75a969
DIST portage-man-pl-2.1.2.tar.bz2 53893 SHA256 960eaa7c6f3a2af44bdc665266a8e884628a562373cc477d301597ecc5ef961f SHA512 5f5c8dd1559048546633b1e7291ff8c0f5d637595f1a4c98405424b08c30c089fc9359e0214f78fbe358754f20d327794f4692b9b67639585c29b755975ee853 WHIRLPOOL 756e267b84077501d976f46fa448cda5368cd52aeca6ec43d109c81fe8e2364e0cd0f35630d68a4186c70e3b440b7c870b86ac7ef83cc0afa43e10f9f8e1f422
EBUILD portage-2.1.11.31.ebuild 9491 SHA256 9863b8e6dde0e56fa233e173681627b0829ad3a435ac1baa9f83009c0674261d SHA512 507850eeca468753feeb90c422d182491246fd6f7aae7ef1a250464d1e0cc03385258e07cbf0d3f142db2d95ea23d373739c30fc640793c10e3e9b472f5e0bb7 WHIRLPOOL aff26d5e9fdd8459ee2a217bab8c8fb2210428ad8ac5418bfcfb2c4420cf8d9a4a65f20972d678ca4986bfe88e290989c3c6477d14f8799573fb8fa7df8a9674
EBUILD portage-2.1.11.50.ebuild 9527 SHA256 f8970421a7200ee8e9df3c2614cbfd03dd5beabdff7efe9acc5e410a34a07f68 SHA512 d17f855c8fc0942f93d7a39d3e79ab092d56990c69f698337b1ab4ed8d0ea5560dd97c9f08fec2c42862b636ac6f5b5c974dbd640cb2f9ec61f6d38e354c6c0a WHIRLPOOL 6ab24d858c216a893f8ca823210e2cd011d5caa739eb4a31b982679d736d20df3b1ce2aba2264af28bcefac838bc148e61efd678b76d90d5c45265a11f26878e
EBUILD portage-2.1.6.7_p1.ebuild 8391 SHA256 aa62c9abf35aa31026863d881fcc47eab499992fa290a4aeda39435289358c94 SHA512 f5c66cf066f6096c930a25825314837b214d9c23386f62af8ee4f50b92c8878765ce81274a5335b5f45c8707849ecd3ca5dedb466af7dbbd2744cd356ab7bcbc WHIRLPOOL 6eca21d68dc0ad96d0ab6c9bb84b14dd21100cd48a7531305fa63a1276a1d90ddda33724c32d695632215da338aa91fba412b2f398d2d1ee91fd730d4678484d
EBUILD portage-2.2.0_alpha142.ebuild 11604 SHA256 43d5a0819c0c6e1eba6367e9e7dae5d9d2ea2d225b3b4d6ae411e901fd958fb6 SHA512 a6915f0247c7c2569f0375f438653be00ced292c6103c2fdbaa929b2356644d34e470303f3febe1699f5e34f0ad18159b5ac806b8f274936914f24c78f2f60be WHIRLPOOL 9794d6d300605cc03bd685e6e53254980d9213aee9b5b6302d6307652c615cedd84376fe01b06bb7440ffe6d5d72e6271bf3f87b7f0dae44686549cb76b2d77d
EBUILD portage-2.2.0_alpha161.ebuild 11629 SHA256 caa4d9b6b957cfa6a56a9222777b251b26ce5bea9a9d047184c3810ed52c4059 SHA512 55bae972b15f73486c55e05fe5ac7855e59669f8872076a07cf6996965f084e1a46d32ef2516cf83e71775c1dd40cda1a5d5f28f902f20f800a919481606fe61 WHIRLPOOL 395158708748eccaab91a7f79dbb62edf86df1035e243933964a03119790a12fa6de0575ca14455ea65a77d20b99698ced07a40cd00fee09730cc04485459e2b
EBUILD portage-9999.ebuild 10879 SHA256 b96acd02aebee2316dec2b9645ef4daa77ea8c4a494332f3f523c48f026212f1 SHA512 724873dffe51cec7439854159d0a440e1f153dcc08abdd4dec36ac1690b4d7decc7888fc6fcdf20ea0d2a53b06c6a476d69f7ce774316e26a2046d2b1e4b45ac WHIRLPOOL 0443ef6e30f230361ae1bc1ccf37e37547017e0ca764003cce60814acffbaa6c5a018cd2c70575c6f8334416d19fa60127f476749304c5b42a261a9272bf071e
MISC ChangeLog 9278 SHA256 114f5b33895b68e1000c43a2d74cd17da0e2053888ab30be7377c67237ad14f6 SHA512 95009d5680035a088f5f1f20ac6240c1020cb6884374295fe9c4f0de5a1c99fa90d938a3d4a91dd019ea33c3fc1dbac934088ed16f08d0e50aafac9e43b1bb6e WHIRLPOOL 6159c1642cd0529c149e418aff8a24eecfd66606b521a919c723de46c66d0e77d28cfef03c750ab489429ecaad71f164ee1122e12235930b14ce401fc8af3ccc
MISC ChangeLog-2012 133873 SHA256 157a7eb13d4cf2e2c94bfcb7e91f218af1ea88f5ff20c24a50546950a9839c94 SHA512 1241f4ccd7b31bdd340649417257b0e95202992feb66e0cd4d41fc2d35bf0baeac19680f34a831d2fefce0c0fec03aa6e7a191f783e59cf9b93aaf266f010a3f WHIRLPOOL b027bdba0f5ccc1b3a2dc18df92d82b473af5e55536816b7177071c1ae1a89e4d50d42c2093fa1bbe28b92a42014fbefbfc9e7daa4e6426ebecbd5bffc3d479f
MISC metadata.xml 926 SHA256 8736b6884463a876892a4fd45f6239a123c1229d2372ce47d5dff719f0eba2b9 SHA512 38d3c969b49012a94bfadecd1d48936513391a305eee5e5e55eb6c4a6b82e05b6ebf1dd6dfe6fbb5a96ba5fffc33fddcfda8d41f3d367ff4ad030859a655ef8b WHIRLPOOL 6f9afcacb628f75f84d03e812ed93b4e3613fcfc4e1180bcb0551c1c8025050ebd3b21fcdef79358aaad3606558345fcd6f914928eb62155e5b9a50bde0d3bf4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iEYEAREIAAYFAlEFpGAACgkQ/ejvha5XGaO9jwCeLeUuxo6dikEYzv1dbXeK7v03
49MAn1wp8Fi6XMI0oWoJz6t6n7P88ll5
=g6Ji
-----END PGP SIGNATURE-----

View File

@ -1,2 +0,0 @@
Please see http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml
for a recovery guide for a broken portage installation.

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<upstream>
<bugs-to>mailto:dev-portage@gentoo.org</bugs-to>
<changelog>http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=blob_plain;f=RELEASE-NOTES</changelog>
<doc>http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3</doc>
</upstream>
<maintainer><email>dev-portage@gentoo.org</email></maintainer>
<use>
<flag name="epydoc">Build html API documentation with epydoc.</flag>
<flag name="ipc">Use inter-process communication between portage and running ebuilds.</flag>
<flag name="less">Pull in sys-apps/less as default pager for etc-update.</flag>
<flag name="pypy2_0">Use pypy-c2.0 as Python interpreter.</flag>
<flag name="python2">Use python2 as Python interpreter.</flag>
<flag name="python3">Use python3 as Python interpreter.</flag>
</use>
</pkgmetadata>

View File

@ -1,331 +0,0 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.10.3.ebuild,v 1.1 2011/06/14 00:42:00 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"
SLOT="0"
IUSE="build doc epydoc +ipc +less linguas_pl python2 python3 selinux"
PROVIDE="virtual/portage"
python_dep="python3? ( =dev-lang/python-3* )
!python2? ( !python3? (
build? ( || ( dev-lang/python:2.7 dev-lang/python:2.6 ) )
!build? ( || ( dev-lang/python:2.7 dev-lang/python:2.6 >=dev-lang/python-3 ) )
) )
python2? ( !python3? ( || ( dev-lang/python:2.7 dev-lang/python:2.6 ) ) )"
# 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-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17"
PDEPEND="
!build? (
less? ( sys-apps/less )
>=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
# NOTE: FEATURES=install-sources requires debugedit and rsync
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=$PV
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=
[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
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() {
# Bug #359731 - Die early if get_libdir fails.
[[ -z $(get_libdir) ]] && \
die "get_libdir returned an empty string"
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
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
epatch "${FILESDIR}"/${PVR}.patch
einfo "Setting portage.VERSION to ${PVR} ..."
sed -e "s/^VERSION=.*/VERSION=\"${PVR}\"/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${PVR}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${PVR}/" -i man/* || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
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() {
# make files executable, in case they were created by patch
find bin -type f | xargs chmod +x
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/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 files
cd "$S" || die "cd failed"
for x in $(find bin -type d) ; do
exeinto $portage_base/$x || die "exeinto failed"
cd "$S"/$x || die "cd failed"
files=$(find . -mindepth 1 -maxdepth 1 -type f ! -type l)
if [ -n "$files" ] ; then
doexe $files || die "doexe failed"
fi
symlinks=$(find . -mindepth 1 -maxdepth 1 -type l)
if [ -n "$symlinks" ] ; then
cp -P $symlinks "$D$portage_base/$x" || die "cp failed"
fi
done
cd "$S" || die "cd failed"
for x in $(find pym/* -type d) ; do
insinto $portage_base/$x || die "insinto failed"
cd "$S"/$x || die "cd failed"
# __pycache__ directories contain no py files
[[ "*.py" != $(echo *.py) ]] || continue
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 quickpkg 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
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
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
}
pkg_postrm() {
python_mod_cleanup /usr/$(get_libdir)/portage/pym
}

View File

@ -1,278 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.11.31.ebuild,v 1.12 2013/01/27 22:04:14 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 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"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_pl pypy2_0 python2 python3 selinux xattr"
# Import of the io module in python-2.6 raises ImportError for the
# thread module if threading is disabled.
python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
!pypy2_0? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
python_dep="${python_dep_ssl//\[ssl\]}"
python_dep="${python_dep//,ssl}"
python_dep="${python_dep//ssl,}"
# The pysqlite blocker is for bug #282760.
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
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.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
# For compgen, require bash[readline] (bug #445576).
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
|| ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-3.2_p17 ) )
>=app-admin/eselect-1.2
|| ( ${python_dep_ssl} dev-python/python-mhash )
)
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
xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17
!<app-admin/logrotate-3.8.0"
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
# NOTE: FEATURES=installsources requires debugedit and rsync
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=$PV
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=
[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
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 ]]
}
current_python_has_xattr() {
[[ $(/usr/bin/python -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
/usr/bin/python -c 'import xattr' 2>/dev/null
}
pkg_setup() {
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python3 ; then
ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python2 ; then
ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy2_0 && ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
elif use pypy2_0; then
python_set_active_version 2.7-pypy-2.0
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 -e "s/^VERSION=.*/VERSION=\"${PVR}\"/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${PVR}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${PVR}/" -i man/* || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use xattr && use kernel_linux ; then
einfo "Adding FEATURES=xattr to make.globals ..."
echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
elif use pypy2_0; then
einfo "Converting shebangs for pypy-c2.0..."
python_convert_shebangs -r 2.7-pypy-2.0 .
fi
cd "${S}/cnf" || die
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
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 ""
fi
}
src_compile() {
if use doc; then
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
emake epydoc || die
fi
}
src_test() {
emake test || die
}
src_install() {
emake DESTDIR="${D}" \
sysconfdir="/etc" \
prefix="/usr" \
install || die
# Extended set config is currently disabled in portage-2.1.x.
rm -rf "${D}/usr/share/portage/config/sets" || die
# Use dodoc for compression, since the Makefile doesn't do that.
dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
if use linguas_pl; then
doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] || die
doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] || die
fi
# Set PYTHONPATH for portage API consumers. This way we don't have
# to rely on patched python having the correct path, since it has
# been known to incorrectly add /usr/libx32/portage/pym to sys.path.
echo "PYTHONPATH=\"/usr/lib/portage/pym\"" > \
"${T}/05portage" || die
doenvd "${T}/05portage" || die
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "$D" -name runTests)
if [[ -n $test_runner && -x $test_runner ]] ; then
einfo "Running preinst sanity tests..."
"$test_runner" || die "preinst sanity tests failed"
fi
fi
if use xattr && ! current_python_has_xattr ; then
ewarn "For optimal performance in xattr handling, install"
ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
ewarn "enable USE=python3 for $CATEGORY/$PN."
fi
if [[ -d ${ROOT}var/log/portage && \
$(ls -ld "${ROOT}var/log/portage") != *" portage portage "* ]] && \
has_version '<sys-apps/portage-2.1.10.11' ; then
# Initialize permissions for bug #378451 and bug #377177, since older
# portage does not create /var/log/portage with the desired default
# permissions.
einfo "Applying portage group permission to ${ROOT}var/log/portage for bug #378451"
chown portage:portage "${ROOT}var/log/portage"
chmod g+ws "${ROOT}var/log/portage"
fi
if has_version '<sys-apps/portage-2.1.10.61' ; then
ewarn "FEATURES=config-protect-if-modified is now enabled by default."
ewarn "This causes the CONFIG_PROTECT behavior to be skipped for"
ewarn "files that have not been modified since they were installed."
fi
}
pkg_postinst() {
# Compile all source files recursively. Any orphans
# will be identified and removed in postrm.
python_mod_optimize /usr/lib/portage/pym
}
pkg_postrm() {
python_mod_cleanup /usr/lib/portage/pym
}

View File

@ -1,278 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.11.50.ebuild,v 1.2 2013/01/27 22:04:14 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 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"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_pl linguas_ru pypy2_0 python2 python3 selinux xattr"
# Import of the io module in python-2.6 raises ImportError for the
# thread module if threading is disabled.
python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
!pypy2_0? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
python_dep="${python_dep_ssl//\[ssl\]}"
python_dep="${python_dep//,ssl}"
python_dep="${python_dep//ssl,}"
# The pysqlite blocker is for bug #282760.
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
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.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
# For compgen, require bash[readline] (bug #445576).
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
|| ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-3.2_p17 ) )
>=app-admin/eselect-1.2
|| ( ${python_dep_ssl} dev-python/python-mhash )
)
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
xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17
!<app-admin/logrotate-3.8.0"
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
# NOTE: FEATURES=installsources requires debugedit and rsync
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=$PV
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=
[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
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 ]]
}
current_python_has_xattr() {
[[ $(/usr/bin/python -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
/usr/bin/python -c 'import xattr' 2>/dev/null
}
pkg_setup() {
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python3 ; then
ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python2 ; then
ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy2_0 && ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
elif use pypy2_0; then
python_set_active_version 2.7-pypy-2.0
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 -e "s/^VERSION=.*/VERSION=\"${PVR}\"/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${PVR}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${PVR}/" -i $(find man -type f) || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use xattr && use kernel_linux ; then
einfo "Adding FEATURES=xattr to make.globals ..."
echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
elif use pypy2_0; then
einfo "Converting shebangs for pypy-c2.0..."
python_convert_shebangs -r 2.7-pypy-2.0 .
fi
cd "${S}/cnf" || die
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
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 ""
fi
}
src_compile() {
if use doc; then
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
emake epydoc || die
fi
}
src_test() {
emake test || die
}
src_install() {
emake DESTDIR="${D}" \
sysconfdir="/etc" \
prefix="/usr" \
install || die
# Extended set config is currently disabled in portage-2.1.x.
rm -rf "${D}/usr/share/portage/config/sets" || die
# Use dodoc for compression, since the Makefile doesn't do that.
dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
if use linguas_pl; then
doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] || die
doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] || die
fi
# Set PYTHONPATH for portage API consumers. This way we don't have
# to rely on patched python having the correct path, since it has
# been known to incorrectly add /usr/libx32/portage/pym to sys.path.
echo "PYTHONPATH=\"/usr/lib/portage/pym\"" > \
"${T}/05portage" || die
doenvd "${T}/05portage" || die
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "$D" -name runTests)
if [[ -n $test_runner && -x $test_runner ]] ; then
einfo "Running preinst sanity tests..."
"$test_runner" || die "preinst sanity tests failed"
fi
fi
if use xattr && ! current_python_has_xattr ; then
ewarn "For optimal performance in xattr handling, install"
ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
ewarn "enable USE=python3 for $CATEGORY/$PN."
fi
if [[ -d ${ROOT}var/log/portage && \
$(ls -ld "${ROOT}var/log/portage") != *" portage portage "* ]] && \
has_version '<sys-apps/portage-2.1.10.11' ; then
# Initialize permissions for bug #378451 and bug #377177, since older
# portage does not create /var/log/portage with the desired default
# permissions.
einfo "Applying portage group permission to ${ROOT}var/log/portage for bug #378451"
chown portage:portage "${ROOT}var/log/portage"
chmod g+ws "${ROOT}var/log/portage"
fi
if has_version '<sys-apps/portage-2.1.10.61' ; then
ewarn "FEATURES=config-protect-if-modified is now enabled by default."
ewarn "This causes the CONFIG_PROTECT behavior to be skipped for"
ewarn "files that have not been modified since they were installed."
fi
}
pkg_postinst() {
# Compile all source files recursively. Any orphans
# will be identified and removed in postrm.
python_mod_optimize /usr/lib/portage/pym
}
pkg_postrm() {
python_mod_cleanup /usr/lib/portage/pym
}

View File

@ -1,263 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.6.7_p1.ebuild,v 1.5 2013/01/05 01:19:27 zmedico Exp $
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"
SLOT="0"
IUSE="build doc epydoc less selinux linguas_pl"
python_dep=">=dev-lang/python-2.4 <dev-lang/python-3"
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
epydoc? ( >=dev-python/epydoc-2.0 )"
# the debugedit blocker is for bug #289967
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.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.17
selinux? ( >=dev-python/python-selinux-2.16 )
!>=dev-util/debugedit-4.4.6-r2"
PDEPEND="
!build? (
less? ( sys-apps/less )
>=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
# NOTE: FEATURES=installsources requires debugedit and rsync
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.6
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) )"
for PATCHVER in 2.1.6.7 ${PV} ; do
SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
$(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
done
S="${WORKDIR}"/${PN}-${TARBALL_PV}
S_PL="${WORKDIR}"/${PN}-${PV_PL}
pkg_setup() {
# Bug #359731 - Die early if get_libdir fails.
[[ -z $(get_libdir) ]] && \
die "get_libdir returned an empty string"
}
src_unpack() {
unpack ${A}
cd "${S}"
for PATCHVER in 2.1.6.7 ${PV} ; do
epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
done
einfo "Setting portage.VERSION to ${PVR} ..."
sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
}
src_compile() {
if use doc; then
cd "${S}"/doc
touch fragment/date
# Workaround for bug #272063, remove in 2.1.6.14.
sed 's:^XMLTO_FLAGS =:XMLTO_FLAGS = --skip-validation:' -i Makefile
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}" 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() {
./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
dodir "${portage_share_config}"
insinto "${portage_share_config}"
doins "${S}/cnf/"make.globals
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
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
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 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,NEWS,RELEASE-NOTES}
use doc && dohtml -r "${S}"/doc/*
use epydoc && dohtml -r "${WORKDIR}"/api
dodir /usr/bin
for x in ebuild emerge portageq repoman xpak; do
dosym ../${libdir}/portage/bin/${x} /usr/bin/${x}
done
dodir /usr/sbin
local x
for x in archive-conf dispatch-conf emaint emerge-webrsync env-update \
etc-update fixpackages quickpkg regenworld ; 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 [ -f "${ROOT}/etc/make.globals" ]; then
rm "${ROOT}/etc/make.globals"
fi
has_version ">=${CATEGORY}/${PN}-2.2_pre"
DOWNGRADE_FROM_2_2=$?
has_version "<${CATEGORY}/${PN}-2.1.6_pre"
UPGRADE_FROM_2_1=$?
}
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 [ $DOWNGRADE_FROM_2_2 = 0 ] ; then
ewarn
echo "Since you have downgraded from portage-2.2, do not forget to" \
"use revdep-rebuild when appropriate, since the @preserved-rebuild" \
"package set is only supported with portage-2.2." | fmt -w 70 | \
while read ; do ewarn "$REPLY" ; done
warning_shown=1
fi
if [ $UPGRADE_FROM_2_1 = 0 ] ; then
ewarn
echo "In portage-2.1.6, the default behavior has changed for" \
"\`emerge world\` and \`emerge system\` commands. These commands" \
"will reinstall all packages from the given set unless an option" \
"such as --noreplace, --update, or --newuse is specified." \
| fmt -w 70 | while read ; do ewarn "$REPLY" ; done
ewarn
echo "File collision protection is now enabled by default via" \
"make.globals with FEATURES=protect-owned. If you want to" \
"disable collision protection completely (not recommended), then" \
"you need to ensure that neither protect-owned nor collision-protect" \
"are enabled." | fmt -w 70 | while read ; do ewarn "$REPLY" ; done
ewarn
echo "If you have overridden FETCHCOMMAND or RESUMECOMMAND variables," \
"for compatibility with EAPI 2, you must ensure that these variables" \
"are written such that the downloaded file will be placed at" \
"\"\${DISTDIR}/\${FILE}\". Refer to make.conf(5) for" \
"information about FETCHCOMMAND and RESUMECOMMAND." | \
fmt -w 70 | while read ; do ewarn "$REPLY" ; done
warning_shown=1
fi
if [ $warning_shown = 1 ] ; then
ewarn # for symmetry
fi
}
pkg_postrm() {
python_mod_cleanup /usr/$(get_libdir)/portage/pym
}

View File

@ -1,332 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2.0_alpha142.ebuild,v 1.6 2013/01/27 22:04:14 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=3
inherit eutils 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="~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_pl pypy2_0 python2 python3 selinux xattr"
# Import of the io module in python-2.6 raises ImportError for the
# thread module if threading is disabled.
python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
!pypy2_0? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
python_dep="${python_dep_ssl//\[ssl\]}"
python_dep="${python_dep//,ssl}"
python_dep="${python_dep//ssl,}"
# The pysqlite blocker is for bug #282760.
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
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.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
# For compgen, require bash[readline] (bug #445576).
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
|| ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-3.2_p17 ) )
>=app-admin/eselect-1.2
|| ( ${python_dep_ssl} dev-python/python-mhash )
)
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
xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17
!<app-admin/logrotate-3.8.0"
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
# NOTE: FEATURES=installsources requires debugedit and rsync
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.0_alpha142
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=
[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
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() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
}
current_python_has_xattr() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
"${EPREFIX}/usr/bin/python" -c 'import xattr' 2>/dev/null
}
pkg_setup() {
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python3 ; then
ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python2 ; then
ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy2_0 && ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
elif use pypy2_0; then
python_set_active_version 2.7-pypy-2.0
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 -e "s/^VERSION=.*/VERSION=\"${PVR}\"/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${PVR}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${PVR}/" -i man/* || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use xattr && use kernel_linux ; then
einfo "Adding FEATURES=xattr to make.globals ..."
echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
elif use pypy2_0; then
einfo "Converting shebangs for pypy-c2.0..."
python_convert_shebangs -r 2.7-pypy-2.0 .
fi
if [[ -n ${EPREFIX} ]] ; then
einfo "Setting portage.const.EPREFIX ..."
sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
-i pym/portage/const.py || \
die "Failed to patch portage.const.EPREFIX"
einfo "Prefixing shebangs ..."
find . -type f -print0 | \
while read -r -d $'\0' ; do
local shebang=$(head -n1 "$REPLY")
if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
die "sed failed"
fi
done
einfo "Adjusting make.globals ..."
sed -e 's|^SYNC=.*|SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"|' \
-e "s|^\(PORTDIR=\)\(/usr/portage\)|\\1\"${EPREFIX}\\2\"|" \
-e "s|^\(PORTAGE_TMPDIR=\)\(/var/tmp\)|\\1\"${EPREFIX}\\2\"|" \
-i cnf/make.globals || die "sed failed"
einfo "Adding FEATURES=force-prefix to make.globals ..."
echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
echo -e '\nFEATURES="${FEATURES} preserve-libs"' >> cnf/make.globals \
|| die "failed to append to make.globals"
cd "${S}/cnf" || die
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
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 ""
fi
}
src_compile() {
if use doc; then
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
emake epydoc || die
fi
}
src_test() {
# make files executable, in case they were created by patch
find bin -type f | xargs chmod +x
emake test || die
}
src_install() {
emake DESTDIR="${D}" \
sysconfdir="${EPREFIX}/etc" \
prefix="${EPREFIX}/usr" \
install || die
# Use dodoc for compression, since the Makefile doesn't do that.
dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
if use linguas_pl; then
doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] || die
doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] || die
fi
# Set PYTHONPATH for portage API consumers. This way we don't have
# to rely on patched python having the correct path, since it has
# been known to incorrectly add /usr/libx32/portage/pym to sys.path.
echo "PYTHONPATH=\"${EPREFIX}/usr/lib/portage/pym\"" > \
"${T}/05portage" || die
doenvd "${T}/05portage" || die
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "$ED" -name runTests)
if [[ -n $test_runner && -x $test_runner ]] ; then
einfo "Running preinst sanity tests..."
"$test_runner" || die "preinst sanity tests failed"
fi
fi
if use xattr && ! current_python_has_xattr ; then
ewarn "For optimal performance in xattr handling, install"
ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
ewarn "enable USE=python3 for $CATEGORY/$PN."
fi
has_version "<=${CATEGORY}/${PN}-2.2_pre5" \
&& WORLD_MIGRATION_UPGRADE=true || WORLD_MIGRATION_UPGRADE=false
# 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 "${EROOT}"var/lib/portage/preserved_libs_registry ] && \
has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ) \
&& NEEDED_REBUILD_UPGRADE=true || NEEDED_REBUILD_UPGRADE=false
}
pkg_postinst() {
# Compile all source files recursively. Any orphans
# will be identified and removed in postrm.
python_mod_optimize /usr/lib/portage/pym
if $WORLD_MIGRATION_UPGRADE && \
grep -q "^@" "${EROOT}/var/lib/portage/world"; then
einfo "moving set references from the worldfile into world_sets"
cd "${EROOT}/var/lib/portage/"
grep "^@" world >> world_sets
sed -i -e '/^@/d' world
fi
if $NEEDED_REBUILD_UPGRADE ; then
einfo "rebuilding NEEDED.ELF.2 files"
for cpv in "${EROOT}/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() {
python_mod_cleanup /usr/lib/portage/pym
}

View File

@ -1,332 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2.0_alpha161.ebuild,v 1.2 2013/01/27 22:04:14 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=3
inherit eutils 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="~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_pl linguas_ru pypy2_0 python2 python3 selinux xattr"
# Import of the io module in python-2.6 raises ImportError for the
# thread module if threading is disabled.
python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
!pypy2_0? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
python_dep="${python_dep_ssl//\[ssl\]}"
python_dep="${python_dep//,ssl}"
python_dep="${python_dep//ssl,}"
# The pysqlite blocker is for bug #282760.
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
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.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
# For compgen, require bash[readline] (bug #445576).
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
|| ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-3.2_p17 ) )
>=app-admin/eselect-1.2
|| ( ${python_dep_ssl} dev-python/python-mhash )
)
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
xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17
!<app-admin/logrotate-3.8.0"
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
# NOTE: FEATURES=installsources requires debugedit and rsync
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.0_alpha160
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=
[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
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() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
}
current_python_has_xattr() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
"${EPREFIX}/usr/bin/python" -c 'import xattr' 2>/dev/null
}
pkg_setup() {
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python3 ; then
ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python2 ; then
ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy2_0 && ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
elif use pypy2_0; then
python_set_active_version 2.7-pypy-2.0
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 -e "s/^VERSION=.*/VERSION=\"${PVR}\"/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${PVR}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${PVR}/" -i $(find man -type f) || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use xattr && use kernel_linux ; then
einfo "Adding FEATURES=xattr to make.globals ..."
echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
elif use pypy2_0; then
einfo "Converting shebangs for pypy-c2.0..."
python_convert_shebangs -r 2.7-pypy-2.0 .
fi
if [[ -n ${EPREFIX} ]] ; then
einfo "Setting portage.const.EPREFIX ..."
sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
-i pym/portage/const.py || \
die "Failed to patch portage.const.EPREFIX"
einfo "Prefixing shebangs ..."
find . -type f -print0 | \
while read -r -d $'\0' ; do
local shebang=$(head -n1 "$REPLY")
if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
die "sed failed"
fi
done
einfo "Adjusting make.globals ..."
sed -e 's|^SYNC=.*|SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"|' \
-e "s|^\(PORTDIR=\)\(/usr/portage\)|\\1\"${EPREFIX}\\2\"|" \
-e "s|^\(PORTAGE_TMPDIR=\)\(/var/tmp\)|\\1\"${EPREFIX}\\2\"|" \
-i cnf/make.globals || die "sed failed"
einfo "Adding FEATURES=force-prefix to make.globals ..."
echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
echo -e '\nFEATURES="${FEATURES} preserve-libs"' >> cnf/make.globals \
|| die "failed to append to make.globals"
cd "${S}/cnf" || die
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
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 ""
fi
}
src_compile() {
if use doc; then
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
emake epydoc || die
fi
}
src_test() {
# make files executable, in case they were created by patch
find bin -type f | xargs chmod +x
emake test || die
}
src_install() {
emake DESTDIR="${D}" \
sysconfdir="${EPREFIX}/etc" \
prefix="${EPREFIX}/usr" \
install || die
# Use dodoc for compression, since the Makefile doesn't do that.
dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
if use linguas_pl; then
doman -i18n=pl "${S_PL}"/man/pl/*.[0-9] || die
doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9] || die
fi
# Set PYTHONPATH for portage API consumers. This way we don't have
# to rely on patched python having the correct path, since it has
# been known to incorrectly add /usr/libx32/portage/pym to sys.path.
echo "PYTHONPATH=\"${EPREFIX}/usr/lib/portage/pym\"" > \
"${T}/05portage" || die
doenvd "${T}/05portage" || die
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "$ED" -name runTests)
if [[ -n $test_runner && -x $test_runner ]] ; then
einfo "Running preinst sanity tests..."
"$test_runner" || die "preinst sanity tests failed"
fi
fi
if use xattr && ! current_python_has_xattr ; then
ewarn "For optimal performance in xattr handling, install"
ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
ewarn "enable USE=python3 for $CATEGORY/$PN."
fi
has_version "<=${CATEGORY}/${PN}-2.2_pre5" \
&& WORLD_MIGRATION_UPGRADE=true || WORLD_MIGRATION_UPGRADE=false
# 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 "${EROOT}"var/lib/portage/preserved_libs_registry ] && \
has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ) \
&& NEEDED_REBUILD_UPGRADE=true || NEEDED_REBUILD_UPGRADE=false
}
pkg_postinst() {
# Compile all source files recursively. Any orphans
# will be identified and removed in postrm.
python_mod_optimize /usr/lib/portage/pym
if $WORLD_MIGRATION_UPGRADE && \
grep -q "^@" "${EROOT}/var/lib/portage/world"; then
einfo "moving set references from the worldfile into world_sets"
cd "${EROOT}/var/lib/portage/"
grep "^@" world >> world_sets
sed -i -e '/^@/d' world
fi
if $NEEDED_REBUILD_UPGRADE ; then
einfo "rebuilding NEEDED.ELF.2 files"
for cpv in "${EROOT}/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() {
python_mod_cleanup /usr/lib/portage/pym
}

View File

@ -1,311 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-9999.ebuild,v 1.67 2013/01/27 22:04:14 zmedico Exp $
EAPI=3
inherit git-2 eutils 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=""
SLOT="0"
IUSE="build doc epydoc +ipc linguas_ru pypy2_0 python2 python3 selinux xattr"
# Import of the io module in python-2.6 raises ImportError for the
# thread module if threading is disabled.
python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
!pypy2_0? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
python_dep="${python_dep_ssl//\[ssl\]}"
python_dep="${python_dep//,ssl}"
python_dep="${python_dep//ssl,}"
# The pysqlite blocker is for bug #282760.
DEPEND="${python_dep}
>=sys-apps/sed-4.0.5 sys-devel/patch
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.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
# For compgen, require bash[readline] (bug #445576).
RDEPEND="${python_dep}
!build? ( >=sys-apps/sed-4.0.5
|| ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-3.2_p17 ) )
>=app-admin/eselect-1.2
|| ( ${python_dep_ssl} dev-python/python-mhash )
)
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
xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
!<app-shells/bash-3.2_p17
!<app-admin/logrotate-3.8.0"
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
# NOTE: FEATURES=installsources requires debugedit and rsync
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
}
EGIT_REPO_URI="git://git.overlays.gentoo.org/proj/portage.git"
S="${WORKDIR}"/${PN}
compatible_python_is_selected() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
}
current_python_has_xattr() {
[[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
"${EPREFIX}/usr/bin/python" -c 'import xattr' 2>/dev/null
}
pkg_setup() {
if use python2 && use python3 ; then
ewarn "Both python2 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python3 ; then
ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy2_0 && use python2 ; then
ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy2_0 && ! use python2 && ! 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
elif use python2; then
python_set_active_version 2
elif use pypy2_0; then
python_set_active_version 2.7-pypy-2.0
fi
}
src_prepare() {
epatch_user
einfo "Producing ChangeLog from Git history..."
pushd "${S}/.git" >/dev/null || die
git log ebcf8975b37a8aae9735eb491a9b4cb63549bd5d^.. \
> "${S}"/ChangeLog || die
popd >/dev/null || die
local _version=$(cd "${S}/.git" && git describe --tags | sed -e 's|-\([0-9]\+\)-.\+$|_p\1|')
_version=${_version:1}
einfo "Setting portage.VERSION to ${_version} ..."
sed -e "s/^VERSION=.*/VERSION='${_version}'/" -i pym/portage/__init__.py || \
die "Failed to patch portage.VERSION"
sed -e "1s/VERSION/${_version}/" -i doc/fragment/version || \
die "Failed to patch VERSION in doc/fragment/version"
sed -e "1s/VERSION/${_version}/" -i $(find man -type f) || \
die "Failed to patch VERSION in man page headers"
if ! use ipc ; then
einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py"
fi
if use xattr && use kernel_linux ; then
einfo "Adding FEATURES=xattr to make.globals ..."
echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
if use python3; then
einfo "Converting shebangs for python3..."
python_convert_shebangs -r 3 .
elif use python2; then
einfo "Converting shebangs for python2..."
python_convert_shebangs -r 2 .
elif use pypy2_0; then
einfo "Converting shebangs for pypy-c2.0..."
python_convert_shebangs -r 2.7-pypy-2.0 .
fi
if [[ -n ${EPREFIX} ]] ; then
einfo "Setting portage.const.EPREFIX ..."
sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
-i pym/portage/const.py || \
die "Failed to patch portage.const.EPREFIX"
einfo "Prefixing shebangs ..."
find . -type f -print0 | \
while read -r -d $'\0' ; do
local shebang=$(head -n1 "$REPLY")
if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
die "sed failed"
fi
done
einfo "Adjusting make.globals ..."
sed -e 's|^SYNC=.*|SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"|' \
-e "s|^\(PORTDIR=\)\(/usr/portage\)|\\1\"${EPREFIX}\\2\"|" \
-e "s|^\(PORTAGE_TMPDIR=\)\(/var/tmp\)|\\1\"${EPREFIX}\\2\"|" \
-i cnf/make.globals || die "sed failed"
einfo "Adding FEATURES=force-prefix to make.globals ..."
echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
|| die "failed to append to make.globals"
fi
echo -e '\nFEATURES="${FEATURES} preserve-libs"' >> cnf/make.globals \
|| die "failed to append to make.globals"
cd "${S}/cnf" || die
if [ -f "make.conf.${ARCH}".diff ]; then
patch make.conf "make.conf.${ARCH}".diff || \
die "Failed to patch make.conf.example"
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 ""
fi
}
src_compile() {
if use doc; then
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
emake epydoc || die
fi
}
src_test() {
./runtests.sh || die "tests failed"
}
src_install() {
emake DESTDIR="${D}" \
sysconfdir="${EPREFIX}/etc" \
prefix="${EPREFIX}/usr" \
install || die
# Use dodoc for compression, since the Makefile doesn't do that.
dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
# Set PYTHONPATH for portage API consumers. This way we don't have
# to rely on patched python having the correct path, since it has
# been known to incorrectly add /usr/libx32/portage/pym to sys.path.
echo "PYTHONPATH=\"${EPREFIX}/usr/lib/portage/pym\"" > \
"${T}/05portage" || die
doenvd "${T}/05portage"
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "${ED}" -name runTests)
if [[ -n $test_runner && -x $test_runner ]] ; then
einfo "Running preinst sanity tests..."
"$test_runner" || die "preinst sanity tests failed"
fi
fi
if use xattr && ! current_python_has_xattr ; then
ewarn "For optimal performance in xattr handling, install"
ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
ewarn "enable USE=python3 for $CATEGORY/$PN."
fi
has_version "<=${CATEGORY}/${PN}-2.2_pre5" \
&& WORLD_MIGRATION_UPGRADE=true || WORLD_MIGRATION_UPGRADE=false
# 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 "${EROOT}"var/lib/portage/preserved_libs_registry ] && \
has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ) \
&& NEEDED_REBUILD_UPGRADE=true || NEEDED_REBUILD_UPGRADE=false
}
pkg_postinst() {
# Compile all source files recursively. Any orphans
# will be identified and removed in postrm.
python_mod_optimize /usr/lib/portage/pym
if $WORLD_MIGRATION_UPGRADE && \
grep -q "^@" "${EROOT}/var/lib/portage/world"; then
einfo "moving set references from the worldfile into world_sets"
cd "${EROOT}/var/lib/portage/"
grep "^@" world >> world_sets
sed -i -e '/^@/d' world
fi
if $NEEDED_REBUILD_UPGRADE ; then
einfo "rebuilding NEEDED.ELF.2 files"
for cpv in "${EROOT}/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() {
python_mod_cleanup /usr/lib/portage/pym
}