remove some old forks, fix app-admin app-eselect category move for eselect scripts

This commit is contained in:
Zero_Chaos 2015-03-31 19:35:59 +00:00
parent 5a79979dcd
commit 0a0caae7cb
49 changed files with 28 additions and 3023 deletions

View file

@ -1,2 +1,2 @@
DIST rails-3.2.21.tgz 3568729 SHA256 95dcf2a848a7fd09acbb12c47e6901baeea08645c32c37e2ae04e2650cf01deb SHA512 952c799736dd2a48532a4340d97ffbbbdc2451fc509e7f86ca47c09f5c6a3f4e5cb9b87c3e803692bc8a810bc178513bbe74f3037fdf8f786c30f0c85dd26948 WHIRLPOOL a2c79df0091ea0ca6f3969a91b4d73c14f79cab9d31ec30591a640321487aedafd0318326080ad4d9be0523002eab2c3c5e9e49b2c6b0b5ef6f5dac8da0bfab5
EBUILD railties-3.2.21.ebuild 2109 SHA256 0ad8e174eeec543d86c6c43eb5d83aa15d7c649f524c263412d03a79ad789819 SHA512 5bd93ff0206eab6c681ee78412c54307ccb6be7b8ce806475ec4b4cd2db4859a9217b77dc5bc6e61d010bd4044a873027f72597306794f538644da3bc6b00403 WHIRLPOOL 05d84a1d35b117e940e569469602da3dd85aa78ed527d3bf3065d64643733662997bfd69ea00f988eef6ff131dd87f86ff478e2fb7976a83fc8027e492a21c38
EBUILD railties-3.2.21.ebuild 2111 SHA256 6a9c3630c17a2a6de4246e2873706fbeaa216d40d5dc5e959be7c4905df97691 SHA512 3d42e020bd58dd317d4e8dd061df4231a468be438a60e89c0e6242b7d170a3cd7b9c29a22553f26ba21ac8cc64b79717e1b5958c03161c0f221181d5f7679ff5 WHIRLPOOL 8b869d522505c3fdf682bcaf5456e72f174fc7642ff20eeeab7f3393d7da137f4805c8a5c08a1a72254737a709661ef2c67875557394235173b9759e9fa13508

View file

@ -32,7 +32,7 @@ RUBY_S="rails-${PV}/${PN}"
# investigation.
RESTRICT="test"
RDEPEND+=">=app-admin/eselect-rails-0.18"
RDEPEND+=">=app-eselect/eselect-rails-0.18"
ruby_add_rdepend "
~dev-ruby/activesupport-${PV}

View file

@ -1,3 +1,3 @@
DIST AMD-APP-SDK-v2.9-lnx32.tgz 100284370 SHA256 86c0ebfd6a9037385d83d43237d986614f05ba035f50fd8d45e27c0d3c465646 SHA512 c0490223e5d8880bedf076fc6d7518507d59827caa29507cb0962b3ca4670f2a3a1d083019600ce838385d3116574887739f505cfdc01f5077a00ae584854bd0 WHIRLPOOL e6655eeeb47588d999585249f335571e427528d1a25878d6f16e47d37e1b30db5e1a1e13603f934ee20d76e5a3d16445c348169c3b6b6cbb81e5dfd543a43674
DIST AMD-APP-SDK-v2.9-lnx64.tgz 149825628 SHA256 6287d3d0700e563f2086188b1b2143a0e988a12c1dc22709b9a23d28b8ae83bb SHA512 b00d92b9e2ead559aa66120697a1dc15ecbc1c880eed99c2a7ed030f6cccce7434245a94aa6149e2ce2dc287cb9443700d7dbc8b3756c7420c0f54cc008065bb WHIRLPOOL b839c042a73251c0b774d1c2f6b968c166f4b74b4828a4f12709220e2c79783833979140127ec98a19b0883d7bf49d031088aeaeeb150855907f18378d5de0a9
EBUILD ati-app-sdk-bin-2.9.ebuild 2684 SHA256 bacebaa3b834c6d71a2eebe529cbf21c7f6eb25cd262d5244bf19a0ea824a336 SHA512 80af4ce1bba23030ca8276cd26d84c65e385be6e9d00205fb969ce623127cd5936641024401823e408d6e71677ad95372920c6819345b7331c658cdc2ddfb3cd WHIRLPOOL e340b8ca25159d81fc11222a4a48a214d77e5288ee8a0fe8df6d5d3f09c3517d059bb8d841d25c966780b5ace9ae8e755f37779b655955a47d9e505aac5e7c3b
EBUILD ati-app-sdk-bin-2.9.ebuild 2686 SHA256 54363d966ea5ed10c8ab5d1f5b31f9c8631a5f2fe3047e753cf5eb74ff6bed33 SHA512 e63aeba851c5572fe849df822ae38132cdda0b796c25506fd2f1bb784a236264a05546ff2d227badb28685d9f5967f39ccff7d486e071b8a35962b911dd4fefc WHIRLPOOL 24494a722a6aa32363bf964d4060e8a7f3dba367ab92b916bc01598eb7886ced7952277a26beed0890cdca4771ea225bc11f3d31e9a7b0eeac9c2ada44229d42

View file

@ -23,7 +23,7 @@ IUSE="examples"
#check if those deps are valid, especially llvm
RDEPEND="
app-admin/eselect-opencl
app-eselect/eselect-opencl
x11-libs/libXext
x11-libs/libX11
examples? (

View file

@ -1,7 +1,7 @@
AUX gcc-4.3-atistream.patch 30743 RMD160 467fb93385172685ff054f721f1863ce398e6167 SHA1 fe8a12cb2af2287359c5b6ce458e8c1dfb33c253 SHA256 612c742447e4281972bd111312e29a36592da6b5316a3c72b5f5b2cd74576882
DIST ati-stream-sdk-v2.01-lnx64.tgz 62171129 RMD160 19e763d5aa0fe4795905c18c38aa0289d7215828 SHA1 1c34782307687c17e2f221185bd1dea3e93a9812 SHA256 588d2621ff9aae5a3a72a5c5f97c81b792c5969c56b3c9176722dc6a0a56baf2
DIST ati-stream-sdk-v2.2-lnx64.tgz 73427109 RMD160 e7e4d094241e47a68f559877d0263f65b0fc1901 SHA1 e0e4edaf280922936d1f2a0938a28a209ed0c4c9 SHA256 50e77acdb4aa7c8b0e97c49d6806b47ee3d33e22c32f4f432c26de74aeb84b18
DIST ati-stream-sdk-v2.3-lnx64.tgz 78659015 RMD160 57af36f62e590ae54cb9d43b880735979b77466c SHA1 43c94e5126563fe3fa4cb92fb6dd20f12864a86d SHA256 f92537d1fc306af0bff1441af4669bf2fa668654b12d9fb53a3a872dc8826cad
EBUILD ati-stream-sdk-bin-2.01.ebuild 1642 RMD160 3428d75548cccc24eb8d694f7ecc297764e6a300 SHA1 bb89a3f4dfe7e5335c1b31dce739417bc53a0570 SHA256 c9a1191c9a6b1eb410a170d5dba060b48e1e72b14e8e43732f80612c6df5e9e0
EBUILD ati-stream-sdk-bin-2.2.ebuild 2020 RMD160 58b997eaceeae3fa1aad45343f0a6a6efb2f7edc SHA1 754416e3084febfef7eea6fa912ac7756f7ee1e0 SHA256 46ebf1dd20c0f415b173a8693c707b2bd3cbb583703af65d1a51e04df66d9878
EBUILD ati-stream-sdk-bin-2.3.ebuild 1816 RMD160 095175ce2e4176d6671199c38176d3f5283a19a4 SHA1 a3d5664a8aba850c047a6b5f1a9525544e8ded85 SHA256 9b80d1d66fea87631101e101ac1b83a86c9a7efe637e8a5d25d8a9da0c1d70c6
AUX gcc-4.3-atistream.patch 30743 SHA256 612c742447e4281972bd111312e29a36592da6b5316a3c72b5f5b2cd74576882 SHA512 691301d0ec48496f564ac8b81a0906b0c0d4911d4351350607827f5294659be7fd8c2bd5823327effb1dbad27f819b5e3843bc967e9d177aa75a49f18ae40e36 WHIRLPOOL f40d5d398f62dcb8d753a37db8a274f819247f2a5cb203548bc0ef8581097906d44a008196bb87a775c9d46721f0c3a020afb5962492e2efc95345a210317eba
DIST ati-stream-sdk-v2.01-lnx64.tgz 62171129 SHA256 588d2621ff9aae5a3a72a5c5f97c81b792c5969c56b3c9176722dc6a0a56baf2
DIST ati-stream-sdk-v2.2-lnx64.tgz 73427109 SHA256 50e77acdb4aa7c8b0e97c49d6806b47ee3d33e22c32f4f432c26de74aeb84b18
DIST ati-stream-sdk-v2.3-lnx64.tgz 78659015 SHA256 f92537d1fc306af0bff1441af4669bf2fa668654b12d9fb53a3a872dc8826cad SHA512 eed70230ddbfc4da38998965806d69a279e05e84bee5103510f664eecbdb8d49e2326e5c2361fd593340131f05258e2ec765be10b8c82c31826709f982f3c7ec WHIRLPOOL 778bd29d1e64d56cd0bdb5c98cd811df29d90c055f3177bc3b03900fc7544e8dda2a10fd444ef41d3b91d0fc563eeba7a4629ac1d0898c52bf174b610af80fd9
EBUILD ati-stream-sdk-bin-2.01.ebuild 1642 SHA256 c9a1191c9a6b1eb410a170d5dba060b48e1e72b14e8e43732f80612c6df5e9e0 SHA512 ed8fb2be922a03a4670d93d4a207fdcdb32fd88a507fa6278089575c6858d6e8438b74905fc29dac2d66ea5fa8a53739c8354b7632e8b5a2219d80c70e8ed8b3 WHIRLPOOL a349477e6448bf634547bee8f6af2707fc352389b1adb02356bb3739c15817f15e67e92298ab644daad99b1b11bf0460c448a96dfa691a310d429bfa3b96479d
EBUILD ati-stream-sdk-bin-2.2.ebuild 2022 SHA256 df42aa7b0b89830c85401c383b509cf5222670970aadaf3a4e68dc4233b84bf3 SHA512 b31b9882dc3d408cb722743603e61ae385eaef6b795245dc90e6c56b84ac6fb9e76a3b7393b8cc0e7b7b0cd12c105274fcb1b69565816a67a1371ed118802c3b WHIRLPOOL 10cfeaf7d0695895fb37aefc6ed69b22d7d4029ae2f056b7234bef2ceb4436b2b44fa4ce041e7318a08e2ba697593bd6cf90f56e58c05c50ad59e8ce164e41f2
EBUILD ati-stream-sdk-bin-2.3.ebuild 1818 SHA256 2a78afae672e70120e5362ed99a883608e1ddca408ab62d6f0b61f6ecc6b198e SHA512 6a87805f976936c4b172734a0675074970a274c2dd87daa8a8893096d0ebc176ad85eb6847ab8a56faf1cdf4a5186ca89daa9d30e4fce4d851283a4e850ee369 WHIRLPOOL c7c5cf88e9449f9e17c71d63373a6c003d2198e9c820280b7b60e10bd771a053a8171d41b50060b4851d6f54fdb61470f2cabdd421c9570bca1be744e2b336d7

View file

@ -13,7 +13,7 @@ KEYWORDS="amd64 x86"
IUSE="livecd examples doc"
RESTRICT="strip"
RDEPEND="!livecd? ( >=x11-drivers/ati-drivers-10.1 )
app-admin/eselect-opencl
app-eselect/eselect-opencl
examples? ( media-libs/glew )"
# !x11-drivers/nvidia-drivers"

View file

@ -13,7 +13,7 @@ KEYWORDS="amd64 x86"
IUSE="livecd examples doc"
RESTRICT="strip"
RDEPEND="!livecd? ( >=x11-drivers/ati-drivers-10.11 )
app-admin/eselect-opencl
app-eselect/eselect-opencl
examples? ( media-libs/glew )"
QA_EXECSTACK="

View file

@ -12,5 +12,5 @@ AUX msfrpcd-4.4-initd 638 SHA256 4e3f18ab619a0067c7ac9a9f13d6824496cb36adf20c216
AUX msfweb.confd 273 SHA256 006040ecd27dc0279c2bea6d69365fe1f0d66f507c039ae43720662abe9f4460 SHA512 58481d69f99bec1644188ecb5f67249c3c85c12ae65d46643c3daf42b5221f8d1b025ea318ed6d11557cbc16e50acc5eaabb99162d538518265755ebcdb042ab WHIRLPOOL 1cbb5a5ff20eb90f7db6f5523bf8834cfd5aa2c98e378408e418f388993af661273257112db2ebcd950bfa9243e9f19ba4a5262fd2bccc7cc6276658f86115bb
AUX msfweb.initd 533 SHA256 4fd9668e4b467ecfa5160e2c108ac8ace71fbeaefaf829d2f7bfb566d44bb13c SHA512 ec8eb9c09191d273417174c23d2fb1a3d27939a74b010fa33ca696bcce88e9c81d6cc1e6ebff90ea97cb6d730776364de4560db1bed10516ba4a7030e7233a53 WHIRLPOOL dec6ca3cf45ac4e6cea35266df1342b4dcdb3f813dc90820603f23e9d62ee67a9633de17d747cc12d7cb9c982e8868559896c2f8c42540a5005f485045d9730a
DIST metasploit-4.11.0.tar.gz 36105268 SHA256 54817f7ed648818492f866db821dce7177adab8d1163e1d59e76695362720c55 SHA512 9462c2727a26fdfa5e626bb8bbf49229df7c736303d887c15f4dc6870d731fe4e6431a1bc2855b5f42f2f8bee5283d8559169bd2b7e8f18b86c0ff4d07f31889 WHIRLPOOL e978d6dad2a696b3b0ecd0943251493f1209d4d1d7fc23e07941bd5929cab579152c454f2afa1a7eef3c595254a68045e17c0ae3756cf2f91d3ccf5eec0169d5
EBUILD metasploit-4.11.0-r2.ebuild 11160 SHA256 d2eb3c128fdbbb28de1d235c7ff840029354859b5515a4bcfef1df6f972d150e SHA512 9e2b1fdb9d8033c96a3640bd87099f206cc3d3180d5e4920a7fde10640906ea9ef303d6b0f549502ce20f94be698e43ce88c73860efbc624aa28aa4824f9219d WHIRLPOOL d60a1b83d3441a5394e18b2c4ab4097e7569f7bb6a0b01791a238fe34bf608658132f90ab835cee73b078c12a0c50bcc79be5b8c63017e570fc8a8227495d2b5
EBUILD metasploit-9999.ebuild 11104 SHA256 60f94dbd03be7b23b4cc02bd819181a054e4a3c77decf6046a09ae8c265b1eb0 SHA512 d4b2af62e56d5e23122c6a5516089b6538d2f7c9b10db2c69b54b250f18c8d40588337f595caa074778ab4c56529571d17f920d5e0b162ac52ec35599c11d913 WHIRLPOOL 2ce9cc3b4db45e9c1293bfade717b31452d251f9a8f66d57a3f894b2df2379732ffc5e4ee9d43b564c9b74060f027df4680368bc60b2049d266e27f70a201bd7
EBUILD metasploit-4.11.0-r2.ebuild 11162 SHA256 a4204dbf24cfba2b498ea1f3ba515a41cf52c2495048668aa7a3e13e6d745c56 SHA512 9f4efe9b99977df2363d78e06bf97c25a1fb4ddf7f26e26d1276bba60a37f48cc8f7ac08ec6f6dc70f56021219be90982de68d848ff689bb99d60ff194d2e5b6 WHIRLPOOL df4a91e4c1af9db6ade13d6a46537597feb29d15250d810686c451ce1c71258d0f73d207cfa85b66644627be542355faffe2e1573dfde7f8225aa11604b361a7
EBUILD metasploit-9999.ebuild 11106 SHA256 9eb4ad70fa986120d90364e00e0fc4d4e3c4d7332b2a255efcae858429f9e6eb SHA512 8137554fd5ada7605aaa5f81147b8b7450061475dc95ca1ce8240874690fab2951079369b359dbfd8cdc1f28b27b016dec5f16d0250f2af0e6c4d4a4e7f97fee WHIRLPOOL df04fe568a046cd3809b15292600f8dc7226af6b61dca2203ceed2103b14c1352253f0dd12cf11a008649b25696f2cc9db7044279b309ad80d51b763e720cd62

View file

@ -84,7 +84,7 @@ COMMON_DEPEND="dev-db/postgresql[server]
>=app-crypt/johntheripper-1.7.9-r1[-minimal]
net-analyzer/nmap"
RDEPEND+=" ${COMMON_DEPEND}
>=app-admin/eselect-metasploit-0.14"
>=app-eselect/eselect-metasploit-0.14"
RESTRICT="strip"

View file

@ -82,7 +82,7 @@ COMMON_DEPEND="dev-db/postgresql[server]
>=app-crypt/johntheripper-1.7.9-r1[-minimal]
net-analyzer/nmap"
RDEPEND+=" ${COMMON_DEPEND}
>=app-admin/eselect-metasploit-0.16"
>=app-eselect/eselect-metasploit-0.16"
RESTRICT="strip"

View file

@ -14,7 +14,7 @@ KEYWORDS="amd64 arm x86"
IUSE="nu"
PDEPEND="
app-admin/eselect-sh
app-eselect/eselect-sh
app-arch/pixz
app-shells/zsh
app-shells/gentoo-zsh-completions

View file

@ -3,7 +3,7 @@ dev-java/icedtea-sound **
dev-java/icedtea-web **
dev-ruby/rubyntlm ~amd64
dev-ruby/rubyzip ~amd64
app-admin/eselect-rails ~arm
app-eselect/eselect-rails ~arm
dev-ruby/arel-helpers ~amd64
dev-python/DartsPyLRU ~amd64
dev-ruby/metasploit-credential ~amd64

View file

@ -8,6 +8,6 @@ dev-java/java-config amd64
=media-libs/lcms-2.5-r1 ~arm
app-admin/eselect-java amd64
app-eselect/eselect-java amd64
dev-java/swt amd64

View file

@ -1,8 +1,2 @@
app-admin/genmenu **
app-admin/eselect-metasploit
~app-admin/paxtest-0.9.9
#required by dev-java/icedtea-web-1.4.1
#app-admin/eselect-java

View file

@ -0,0 +1 @@
app-eselect/eselect-metasploit

View file

@ -1,6 +1,6 @@
#GENTOO_MIRRORS="http://192.168.1.251/portage/distfiles/ http://gentoo.osuosl.org/ ftp://mirrors.rit.edu/gentoo/ http://mirror.datapipe.net/gentoo ftp://gentoo.mirrors.pair.com/ http://91.121.125.139/gentoo-distfiles/ ftp://gentoo.mirrors.tds.net/gentoo"
ACCEPT_LICENSE="AdobeFlash-11.x NVIDIA-CUDA google-chrome Google-TOS PUEL"
ACCEPT_LICENSE="AdobeFlash-11.x NVIDIA-CUDA google-chrome Google-TOS PUEL baudline"
PORTAGE_GPG_DIR="/home/zero/.gnupg/"
PORTAGE_GPG_KEY="DD11F94A"

View file

@ -0,0 +1 @@
app-misc/geoclue geonames networkmanager

View file

@ -0,0 +1 @@
x11-misc/redshift geoclue

View file

@ -1,6 +0,0 @@
AUX README.RESCUE 137 SHA256 69bea0c755eab59b6b4d90838b8551744f0b0c8eeac170b1cd13a71ee83f9ac4 SHA512 dba0f0d6d4cd140e636cc70dfb7bdb298e2f2fb040bc07b0874cac994bdbabd26bfd9361d85a0f8b9a92a185281e4901606b9e4f563afdc8867341bbe6af1cb0 WHIRLPOOL 713fcc790442999d56e13efaf536fec9954dadeda680b3642d0358311332096ddedf8b55697bd1ca620d84f0dc7d025ff7931e086c74c1f5032be72dca2ff8f5
AUX xattr-install.patch 1795 SHA256 c9154cf81415c4c533585e3ebe0475581cf58a402ae8e22d6acb09b971cd848b SHA512 11baadb426d641be25b1355d3ef283ec26e352a7873b49e98b84164bb155050731095ba85333a0dc0e44e48c7fe2dc4b6a6d1b15a77ea3eec4410aee6a923669 WHIRLPOOL d399a3cce7fabea17c704eaed982e7ec194e455636fc4df1d64401ea723e358883b899242c5cd3c95c884afbdf41de843888075abda90c3d79a81dd03459db10
DIST portage-2.2.10.tar.bz2 878039 SHA256 f463a98062f09f41da680ba7d20621b3076de86844a04340725df7d734965fa2 SHA512 4f563a67388b2593f08833281f6da004dd6af3a7e697b89d735ab24b8b9f43e1d1e66202f8607710dcde6423672d6f97c7ad32c7f983f8491a05543e453fedae WHIRLPOOL 0f2fd79ba4117c1cf328c9e08ac35990869b0518ee8eba10453b6c957a351159de4f3c0b7e7242f8b89c2504d4403e7ed36c8c2da010fa2ec75e3f9e67858069
DIST portage-2.2.11.tar.bz2 879223 SHA256 78a9184623cb0f3bd9b1fb1eba0eca13104ed76d877e0ba3fb2d9621be16720b SHA512 c8d86441408ee74c72b62c57c5319b882df9a6f7249cd24f3bcfa21fad1d3f93e6bacd6b2d13a229416872aba642a2a6a10df4a940d5b51a51ca4cf7daa01b13 WHIRLPOOL ec73b72a3578d6b1b326550c4d66b3d3147b7f8d46c64b0640a411a74d2241d97b1b956b19a42d0a973d79bfc7d5d6629df8aa53a55415e37b9da595bc7866db
EBUILD portage-2.2.10.ebuild 19492 SHA256 6f837f5722856c66a5336f8082f874994f858947f5f3380e19b6061b72a33388 SHA512 6dbaf6215c256ac59c24cf71cca62df706830e9a9d1aa4d0df92ffa75f8031c21ffaf36886be30e0f2fcf08dc7e34c1e22f44b0cb7aa5d274ae6059d444b0000 WHIRLPOOL 452c73833add7a0b6a3bb5d33a6fa4e00815385e035b854828280557c0b2c1be9ddbf5dce949e9408df338f9fefee893694419a031fbfba25172e82a7caee7f1
EBUILD portage-2.2.11.ebuild 19299 SHA256 9c117c6ea2ed13a2e9e423bffd5966f35e82be52affc6530580a11725a6479a8 SHA512 524cc0881de60d0820bb021a24d633f16e8e454c7ed605bbfa0d57a2cc7420e605d0d1c12e9748ab797c6a558b6c21fbbcccec3368acc42bde054874364739f0 WHIRLPOOL d56ece997c3cf30700447523e5c26b2f88e268486052e99bf60f3bbd5b66f9e26719cba7e8898d9f41d5b8b0edfebdf9aa0deeb1b29b702bb52d8204aa1531af

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,41 +0,0 @@
X-Git-Url: https://git.overlays.gentoo.org/gitweb/?p=proj%2Fportage.git;a=blobdiff_plain;f=bin%2Febuild-helpers%2Fxattr%2Finstall;h=d572fe6ef6592fd971121ea94b26618b3d5dbfb8;hp=f51f621bc738d8cb4c7be6f626fefac975649bc4;hb=9089c2d755b0ecb1b340fc23dda461163f589c43;hpb=2f92c6d798f8f6133ed48fe4d0d62baff36dcb97
diff --git a/bin/ebuild-helpers/xattr/install b/bin/ebuild-helpers/xattr/install
index f51f621..d572fe6 100755
--- a/bin/ebuild-helpers/xattr/install
+++ b/bin/ebuild-helpers/xattr/install
@@ -4,9 +4,32 @@
PORTAGE_BIN_PATH=${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}
PORTAGE_PYM_PATH=${PORTAGE_PYM_PATH:-/usr/lib/portage/pym}
+INSTALL_XATTR=${EPREFIX}/usr/bin/install-xattr
# Use safe cwd, avoiding unsafe import for bug #469338.
export __PORTAGE_HELPER_CWD=${PWD}
cd "${PORTAGE_PYM_PATH}"
export __PORTAGE_HELPER_PATH=${BASH_SOURCE[0]}
-PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
- exec "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/install.py" "$@"
+
+if [[ ${PORTAGE_INSTALL_XATTR_IMPLEMENTATION} == "c" ]]; then
+ implementation="c"
+elif [[ ${PORTAGE_INSTALL_XATTR_IMPLEMENTATION} == "python" ]]; then
+ implementation="python"
+else
+ # If PORTAGE_INSTALL_XATTR_IMPLEMENTATION is unset or not set to "c" or "python"
+ # then we'll autodetect, preferring "c" but falling back on "python"
+ if [[ -x "${INSTALL_XATTR}" ]]; then
+ implementation="c"
+ else
+ implementation="python"
+ fi
+fi
+
+if [[ "${implementation}" == "c" ]]; then
+ exec "${INSTALL_XATTR}" "$@"
+elif [[ "${implementation}" == "python" ]]; then
+ PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
+ exec "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/install.py" "$@"
+else
+ echo "Unknown implementation for PORTAGE_INSTALL_XATTR_IMPLEMENTATION"
+ exit -1
+fi

View file

@ -1,581 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2.10.ebuild,v 1.2 2014/04/06 17:00:03 mgorny 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
PYTHON_COMPAT=(
pypy pypy2_0
python3_2 python3_3 python3_4
python2_6 python2_7
)
inherit eutils multilib
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 ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_ru pentoo pypy python2 python3 selinux xattr"
for _pyimpl in ${PYTHON_COMPAT[@]} ; do
IUSE+=" python_targets_${_pyimpl}"
done
unset _pyimpl
# 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] )
!pypy? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy? ( !python2? ( !python3? ( virtual/pypy:0[bzip2] ) ) )
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,}"
python_dep="${python_dep}
python_targets_pypy? ( virtual/pypy:0 )
python_targets_pypy2_0? ( virtual/pypy:2.0 )
python_targets_python2_6? ( dev-lang/python:2.6 )
python_targets_python2_7? ( dev-lang/python:2.7 )
python_targets_python3_2? ( dev-lang/python:3.2 )
python_targets_python3_3? ( dev-lang/python:3.3 )
python_targets_python3_4? ( dev-lang/python:3.4 )
"
# The pysqlite blocker is for bug #282760.
# make-3.82 is for bug #455858
DEPEND="${python_dep}
>=sys-devel/make-3.82
>=sys-apps/sed-4.0.5 sys-devel/patch
>=sys-apps/install-xattr-0.3
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
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
xattr? ( kernel_linux? (
$(for python_impl in python{2_6,2_7,3_2} pypy pypy2_0; do
echo "python_targets_${python_impl}? ( dev-python/pyxattr[python_targets_${python_impl}] )"
done) ) )
!<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/~dolsen/releases/portage"
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)"
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() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
[[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
"${PYTHON}" -c 'import xattr' 2>/dev/null
}
call_with_python_impl() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
env EPYTHON=${EPYTHON} "$@"
}
get_python_interpreter() {
[ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
local impl=$1 python
case "${impl}" in
python*)
python=${impl/_/.}
;;
pypy)
python=${impl}
;;
pypy*)
python=${impl/_/.}
python=${python/pypy/pypy-c}
;;
*)
die "Unrecognized python target: ${impl}"
esac
echo ${python}
}
get_python_sitedir() {
[ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
local impl=$1
local site_dir=usr/$(get_libdir)/${impl/_/.}/site-packages
[[ -d ${EROOT:-${ROOT}}${site_dir} ]] || \
ewarn "site-packages dir missing for ${impl}: ${EROOT:-${ROOT}}${site_dir}"
echo "/${site_dir}"
}
python_compileall() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
local d_image=${D}${d#/}
[[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
case "${EPYTHON}" in
python*)
"${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
# Note: Using -OO breaks emaint, since it requires __doc__,
# and __doc__ is None when -OO is used.
"${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
;;
pypy*)
"${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
;;
*)
die "Unrecognized EPYTHON value: ${EPYTHON}"
esac
}
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 pypy && use python3 ; then
ewarn "Both pypy and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy && use python2 ; then
ewarn "Both pypy and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy && ! 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 "${EPREFIX}"/usr/bin/python2.* ; do
x=${x#${EPREFIX}/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
# We use EPYTHON to designate the active python interpreter,
# but we only export when needed, via call_with_python_impl.
EPYTHON=python
export -n EPYTHON
if use python3; then
EPYTHON=python3
elif use python2; then
EPYTHON=python2
elif use pypy; then
EPYTHON=pypy
fi
}
src_prepare() {
use pentoo && epatch "${FILESDIR}"/xattr-install.patch
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
local set_shebang=
if use python3; then
set_shebang=python3
elif use python2; then
set_shebang=python2
elif use pypy; then
set_shebang=pypy
fi
if [[ -n ${set_shebang} ]] ; then
einfo "Converting shebangs for ${set_shebang}..."
while read -r -d $'\0' ; do
local shebang=$(head -n1 "$REPLY")
if [[ ${shebang} == "#!/usr/bin/python"* ]] ; then
sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
die "sed failed"
fi
done < <(find . -type f -print0)
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 ..."
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 < <(find . -type f -print0)
einfo "Adjusting make.globals ..."
sed -e "s|\(/usr/portage\)|${EPREFIX}\\1|" \
-e "s|^\(PORTAGE_TMPDIR=\"\)\(/var/tmp\"\)|\\1${EPREFIX}\\2|" \
-i cnf/make.globals || die "sed failed"
einfo "Adjusting repos.conf ..."
sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \
-e "s|^\\[gentoo\\]|[gentoo_prefix]|" \
-e "s|^\(location = \)\(/usr/portage\)|\\1${EPREFIX}\\2|" \
-e "s|^\(sync-uri = \).*|\\1rsync://prefix.gentooexperimental.org/gentoo-portage-prefix|" \
-i cnf/repos.conf || 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
cd "${S}/cnf" || die
if [ -f "make.conf.example.${ARCH}".diff ]; then
patch make.conf.example "make.conf.example.${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
call_with_python_impl \
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
call_with_python_impl \
emake epydoc || die
fi
}
src_test() {
# make files executable, in case they were created by patch
find bin -type f | xargs chmod +x
call_with_python_impl \
emake test || die
}
src_install() {
call_with_python_impl \
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
# Allow external portage API consumers to import portage python modules
# (this used to be done with PYTHONPATH setting in /etc/env.d).
# For each of PYTHON_TARGETS, install a tree of *.py symlinks in
# site-packages, and compile with the corresponding interpreter.
local impl files mod_dir dest_mod_dir python relative_path x
for impl in "${PYTHON_COMPAT[@]}" ; do
use "python_targets_${impl}" || continue
if use build && [[ ${ROOT} == / &&
! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
# Tolerate --nodeps at beginning of stage1 for catalyst
ewarn "skipping python_targets_${impl}, interpreter not found"
continue
fi
while read -r mod_dir ; do
cd "${ED:-${D}}usr/lib/portage/pym/${mod_dir}" || die
files=$(echo *.py)
if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
# __pycache__ directories contain no py files
continue
fi
dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
dodir "${dest_mod_dir}" || die
relative_path=../../../lib/portage/pym/${mod_dir}
x=/${mod_dir}
while [ -n "${x}" ] ; do
relative_path=../${relative_path}
x=${x%/*}
done
for x in ${files} ; do
dosym "${relative_path}/${x}" \
"${dest_mod_dir}/${x}" || die
done
done < <(cd "${ED:-${D}}"usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
cd "${S}" || die
EPYTHON=$(get_python_interpreter ${impl}) \
python_compileall "$(get_python_sitedir ${impl})"
done
# Compile /usr/lib/portage/pym with the active interpreter, since portage
# internal commands force this directory to the beginning of sys.path.
python_compileall /usr/lib/portage/pym
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "${ED:-${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
# elog dir must exist to avoid logrotate error for bug #415911.
# This code runs in preinst in order to bypass the mapping of
# portage:portage to root:root which happens after src_install.
keepdir /var/log/portage/elog
# This is allowed to fail if the user/group are invalid for prefix users.
if chown portage:portage "${ED:-${D}}"var/log/portage{,/elog} 2>/dev/null ; then
chmod g+s,ug+rwx "${ED:-${D}}"var/log/portage{,/elog}
fi
# 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:-${ROOT}}"var/lib/portage/preserved_libs_registry ] && \
has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ; } \
&& NEEDED_REBUILD_UPGRADE=true || NEEDED_REBUILD_UPGRADE=false
if has_version "<${CATEGORY}/${PN}-2.1.13" || \
{
has_version ">=${CATEGORY}/${PN}-2.2_rc0" && \
has_version "<${CATEGORY}/${PN}-2.2.0_alpha189"
} ; then
USERPRIV_UPGRADE=true
USERSYNC_UPGRADE=true
REPOS_CONF_UPGRADE=true
REPOS_CONF_SYNC=
type -P portageq >/dev/null 2>&1 && \
REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
else
USERPRIV_UPGRADE=false
USERSYNC_UPGRADE=false
REPOS_CONF_UPGRADE=false
fi
}
get_ownership() {
case ${USERLAND} in
BSD)
stat -f '%Su:%Sg' "${1}"
;;
*)
stat -c '%U:%G' "${1}"
;;
esac
}
new_config_protect() {
# Generate a ._cfg file even if the target file
# does not exist, ensuring that the user will
# notice the config change.
local basename=${1##*/}
local dirname=${1%/*}
local i=0
while true ; do
local filename=$(
echo -n "${dirname}/._cfg"
printf "%04d" ${i}
echo -n "_${basename}"
)
[[ -e ${filename} ]] || break
(( i++ ))
done
echo "${filename}"
}
pkg_postinst() {
if ${REPOS_CONF_UPGRADE} ; then
einfo "Generating repos.conf"
local repo_name=
[[ -f ${PORTDIR}/profiles/repo_name ]] && \
repo_name=$(< "${PORTDIR}/profiles/repo_name")
if [[ -z ${REPOS_CONF_SYNC} ]] ; then
REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
fi
local sync_type=
[[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
sync_type=cvs
REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
fi
cat <<-EOF > "${T}/repos.conf"
[DEFAULT]
main-repo = ${repo_name:-gentoo}
[${repo_name:-gentoo}]
location = ${PORTDIR:-${EPREFIX}/usr/portage}
sync-type = ${sync_type:-rsync}
sync-uri = ${REPOS_CONF_SYNC}
EOF
[[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
fi
# Don't install the config update if the desired repos.conf directory
# and config file exist, since users may accept it blindly and break
# their config (bug #478726).
[[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
einfo "Generating make.conf PORTDIR setting for backward compatibility"
for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
[[ -e ${dest} ]] && break
done
[[ -d ${dest} ]] && dest=${dest}/portdir.conf
rm -rf "${T}/make.conf"
[[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
cat <<-EOF >> "${T}/make.conf"
# Set PORTDIR for backward compatibility with various tools:
# gentoo-bashcomp - bug #478444
# euse - bug #474574
# euses and ufed - bug #478318
PORTDIR="${EPREFIX}/usr/portage"
EOF
mkdir -p "${dest%/*}"
mv "${T}/make.conf" "$(new_config_protect "${dest}")"
fi
fi
if ${NEEDED_REBUILD_UPGRADE} ; then
einfo "rebuilding NEEDED.ELF.2 files"
local cpv filename line newline
for cpv in "${EROOT:-${ROOT}}var/db/pkg"/*/*; do
[[ -f "${cpv}/NEEDED" && ! -f "${cpv}/NEEDED.ELF.2" ]] || continue
while read -r line; do
filename=${line% *}
newline=$(scanelf -BF "%a;%F;%S;%r;%n" "${ROOT%/}${filename}")
newline=${newline// - }
[[ ${#ROOT} -gt 1 ]] && newline=${newline/${ROOT%/}}
echo "${newline:3}" >> "${cpv}/NEEDED.ELF.2"
done < "${cpv}/NEEDED"
done
fi
local distdir=${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}
if ${USERSYNC_UPGRADE} && \
[[ -d ${PORTDIR} && -w ${PORTDIR} ]] ; then
local ownership=$(get_ownership "${PORTDIR}")
if [[ -n ${ownership} ]] ; then
einfo "Adjusting PORTDIR permissions for usersync"
find "${PORTDIR}" -path "${distdir%/}" -prune -o \
! \( -user "${ownership%:*}" -a -group "${ownership#*:}" \) \
-exec chown "${ownership}" {} +
fi
fi
# Do this last, since it could take a long time if there
# are lots of live sources, and the user may be tempted
# to kill emerge while it is running.
if ${USERPRIV_UPGRADE} && \
[[ -d ${distdir} && -w ${distdir} ]] ; then
local ownership=$(get_ownership "${distdir}")
if [[ ${ownership#*:} == portage ]] ; then
einfo "Adjusting DISTDIR permissions for userpriv"
find "${distdir}" -mindepth 1 -maxdepth 1 -type d -uid 0 \
-exec chown -R portage:portage {} +
fi
fi
}

View file

@ -1,575 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.2.11.ebuild,v 1.1 2014/08/03 16:55:08 dolsen 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
PYTHON_COMPAT=(
pypy
python3_2 python3_3 python3_4
python2_6 python2_7
)
inherit eutils multilib
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 ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
SLOT="0"
IUSE="build doc epydoc +ipc linguas_ru pypy python2 python3 selinux xattr"
for _pyimpl in ${PYTHON_COMPAT[@]} ; do
IUSE+=" python_targets_${_pyimpl}"
done
unset _pyimpl
# 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] )
!pypy? ( !python2? ( !python3? (
|| ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
) ) )
pypy? ( !python2? ( !python3? ( virtual/pypy:0[bzip2] ) ) )
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,}"
python_dep="${python_dep}
python_targets_pypy? ( virtual/pypy:0 )
python_targets_python2_6? ( dev-lang/python:2.6 )
python_targets_python2_7? ( dev-lang/python:2.7 )
python_targets_python3_2? ( dev-lang/python:3.2 )
python_targets_python3_3? ( dev-lang/python:3.3 )
python_targets_python3_4? ( dev-lang/python:3.4 )
"
# The pysqlite blocker is for bug #282760.
# make-3.82 is for bug #455858
DEPEND="${python_dep}
>=sys-devel/make-3.82
>=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
selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
xattr? ( kernel_linux? (
>=sys-apps/install-xattr-0.3
$(for python_impl in python{2_6,2_7,3_2} pypy; do
echo "python_targets_${python_impl}? ( dev-python/pyxattr[python_targets_${python_impl}] )"
done) ) )
!<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/~dolsen/releases/portage"
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)"
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() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
[[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
"${PYTHON}" -c 'import xattr' 2>/dev/null
}
call_with_python_impl() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
env EPYTHON=${EPYTHON} "$@"
}
get_python_interpreter() {
[ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
local impl=$1 python
case "${impl}" in
python*)
python=${impl/_/.}
;;
pypy)
python=${impl}
;;
*)
die "Unrecognized python target: ${impl}"
esac
echo ${python}
}
get_python_sitedir() {
[ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
local impl=$1
local site_dir=usr/$(get_libdir)/${impl/_/.}/site-packages
[[ -d ${EROOT:-${ROOT}}${site_dir} ]] || \
ewarn "site-packages dir missing for ${impl}: ${EROOT:-${ROOT}}${site_dir}"
echo "/${site_dir}"
}
python_compileall() {
[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
local d_image=${D}${d#/}
[[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
case "${EPYTHON}" in
python*)
"${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
# Note: Using -OO breaks emaint, since it requires __doc__,
# and __doc__ is None when -OO is used.
"${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
;;
pypy)
"${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
;;
*)
die "Unrecognized EPYTHON value: ${EPYTHON}"
esac
}
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 pypy && use python3 ; then
ewarn "Both pypy and python3 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python3."
fi
if use pypy && use python2 ; then
ewarn "Both pypy and python2 USE flags are enabled, but only one"
ewarn "can be in the shebangs. Using python2"
fi
if ! use pypy && ! 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 "${EPREFIX}"/usr/bin/python2.* ; do
x=${x#${EPREFIX}/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
# We use EPYTHON to designate the active python interpreter,
# but we only export when needed, via call_with_python_impl.
EPYTHON=python
export -n EPYTHON
if use python3; then
EPYTHON=python3
elif use python2; then
EPYTHON=python2
elif use pypy; then
EPYTHON=pypy
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
local set_shebang=
if use python3; then
set_shebang=python3
elif use python2; then
set_shebang=python2
elif use pypy; then
set_shebang=pypy
fi
if [[ -n ${set_shebang} ]] ; then
einfo "Converting shebangs for ${set_shebang}..."
while read -r -d $'\0' ; do
local shebang=$(head -n1 "$REPLY")
if [[ ${shebang} == "#!/usr/bin/python"* ]] ; then
sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
die "sed failed"
fi
done < <(find . -type f -print0)
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 ..."
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 < <(find . -type f -print0)
einfo "Adjusting make.globals ..."
sed -e "s|\(/usr/portage\)|${EPREFIX}\\1|" \
-e "s|^\(PORTAGE_TMPDIR=\"\)\(/var/tmp\"\)|\\1${EPREFIX}\\2|" \
-i cnf/make.globals || die "sed failed"
einfo "Adjusting repos.conf ..."
sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \
-e "s|^\\[gentoo\\]|[gentoo_prefix]|" \
-e "s|^\(location = \)\(/usr/portage\)|\\1${EPREFIX}\\2|" \
-e "s|^\(sync-uri = \).*|\\1rsync://prefix.gentooexperimental.org/gentoo-portage-prefix|" \
-i cnf/repos.conf || 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
cd "${S}/cnf" || die
if [ -f "make.conf.example.${ARCH}".diff ]; then
patch make.conf.example "make.conf.example.${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
call_with_python_impl \
emake docbook || die
fi
if use epydoc; then
einfo "Generating api docs"
call_with_python_impl \
emake epydoc || die
fi
}
src_test() {
# make files executable, in case they were created by patch
find bin -type f | xargs chmod +x
call_with_python_impl \
emake test || die
}
src_install() {
call_with_python_impl \
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
# Allow external portage API consumers to import portage python modules
# (this used to be done with PYTHONPATH setting in /etc/env.d).
# For each of PYTHON_TARGETS, install a tree of *.py symlinks in
# site-packages, and compile with the corresponding interpreter.
local impl files mod_dir dest_mod_dir python relative_path x
for impl in "${PYTHON_COMPAT[@]}" ; do
use "python_targets_${impl}" || continue
if use build && [[ ${ROOT} == / &&
! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
# Tolerate --nodeps at beginning of stage1 for catalyst
ewarn "skipping python_targets_${impl}, interpreter not found"
continue
fi
while read -r mod_dir ; do
cd "${ED:-${D}}usr/lib/portage/pym/${mod_dir}" || die
files=$(echo *.py)
if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
# __pycache__ directories contain no py files
continue
fi
dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
dodir "${dest_mod_dir}" || die
relative_path=../../../lib/portage/pym/${mod_dir}
x=/${mod_dir}
while [ -n "${x}" ] ; do
relative_path=../${relative_path}
x=${x%/*}
done
for x in ${files} ; do
dosym "${relative_path}/${x}" \
"${dest_mod_dir}/${x}" || die
done
done < <(cd "${ED:-${D}}"usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
cd "${S}" || die
EPYTHON=$(get_python_interpreter ${impl}) \
python_compileall "$(get_python_sitedir ${impl})"
done
# Compile /usr/lib/portage/pym with the active interpreter, since portage
# internal commands force this directory to the beginning of sys.path.
python_compileall /usr/lib/portage/pym
}
pkg_preinst() {
if [[ $ROOT == / ]] ; then
# Run some minimal tests as a sanity check.
local test_runner=$(find "${ED:-${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
# elog dir must exist to avoid logrotate error for bug #415911.
# This code runs in preinst in order to bypass the mapping of
# portage:portage to root:root which happens after src_install.
keepdir /var/log/portage/elog
# This is allowed to fail if the user/group are invalid for prefix users.
if chown portage:portage "${ED:-${D}}"var/log/portage{,/elog} 2>/dev/null ; then
chmod g+s,ug+rwx "${ED:-${D}}"var/log/portage{,/elog}
fi
# 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:-${ROOT}}"var/lib/portage/preserved_libs_registry ] && \
has_version ">=${CATEGORY}/${PN}-2.1.6_rc" ; } \
&& NEEDED_REBUILD_UPGRADE=true || NEEDED_REBUILD_UPGRADE=false
if has_version "<${CATEGORY}/${PN}-2.1.13" || \
{
has_version ">=${CATEGORY}/${PN}-2.2_rc0" && \
has_version "<${CATEGORY}/${PN}-2.2.0_alpha189"
} ; then
USERPRIV_UPGRADE=true
USERSYNC_UPGRADE=true
REPOS_CONF_UPGRADE=true
REPOS_CONF_SYNC=
type -P portageq >/dev/null 2>&1 && \
REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
else
USERPRIV_UPGRADE=false
USERSYNC_UPGRADE=false
REPOS_CONF_UPGRADE=false
fi
}
get_ownership() {
case ${USERLAND} in
BSD)
stat -f '%Su:%Sg' "${1}"
;;
*)
stat -c '%U:%G' "${1}"
;;
esac
}
new_config_protect() {
# Generate a ._cfg file even if the target file
# does not exist, ensuring that the user will
# notice the config change.
local basename=${1##*/}
local dirname=${1%/*}
local i=0
while true ; do
local filename=$(
echo -n "${dirname}/._cfg"
printf "%04d" ${i}
echo -n "_${basename}"
)
[[ -e ${filename} ]] || break
(( i++ ))
done
echo "${filename}"
}
pkg_postinst() {
if ${REPOS_CONF_UPGRADE} ; then
einfo "Generating repos.conf"
local repo_name=
[[ -f ${PORTDIR}/profiles/repo_name ]] && \
repo_name=$(< "${PORTDIR}/profiles/repo_name")
if [[ -z ${REPOS_CONF_SYNC} ]] ; then
REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
fi
local sync_type=
[[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
sync_type=cvs
REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
fi
cat <<-EOF > "${T}/repos.conf"
[DEFAULT]
main-repo = ${repo_name:-gentoo}
[${repo_name:-gentoo}]
location = ${PORTDIR:-${EPREFIX}/usr/portage}
sync-type = ${sync_type:-rsync}
sync-uri = ${REPOS_CONF_SYNC}
EOF
[[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
fi
# Don't install the config update if the desired repos.conf directory
# and config file exist, since users may accept it blindly and break
# their config (bug #478726).
[[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
einfo "Generating make.conf PORTDIR setting for backward compatibility"
for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
[[ -e ${dest} ]] && break
done
[[ -d ${dest} ]] && dest=${dest}/portdir.conf
rm -rf "${T}/make.conf"
[[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
cat <<-EOF >> "${T}/make.conf"
# Set PORTDIR for backward compatibility with various tools:
# gentoo-bashcomp - bug #478444
# euse - bug #474574
# euses and ufed - bug #478318
PORTDIR="${EPREFIX}/usr/portage"
EOF
mkdir -p "${dest%/*}"
mv "${T}/make.conf" "$(new_config_protect "${dest}")"
fi
fi
if ${NEEDED_REBUILD_UPGRADE} ; then
einfo "rebuilding NEEDED.ELF.2 files"
local cpv filename line newline
for cpv in "${EROOT:-${ROOT}}var/db/pkg"/*/*; do
[[ -f "${cpv}/NEEDED" && ! -f "${cpv}/NEEDED.ELF.2" ]] || continue
while read -r line; do
filename=${line% *}
newline=$(scanelf -BF "%a;%F;%S;%r;%n" "${ROOT%/}${filename}")
newline=${newline// - }
[[ ${#ROOT} -gt 1 ]] && newline=${newline/${ROOT%/}}
echo "${newline:3}" >> "${cpv}/NEEDED.ELF.2"
done < "${cpv}/NEEDED"
done
fi
local distdir=${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}
if ${USERSYNC_UPGRADE} && \
[[ -d ${PORTDIR} && -w ${PORTDIR} ]] ; then
local ownership=$(get_ownership "${PORTDIR}")
if [[ -n ${ownership} ]] ; then
einfo "Adjusting PORTDIR permissions for usersync"
find "${PORTDIR}" -path "${distdir%/}" -prune -o \
! \( -user "${ownership%:*}" -a -group "${ownership#*:}" \) \
-exec chown "${ownership}" {} +
fi
fi
# Do this last, since it could take a long time if there
# are lots of live sources, and the user may be tempted
# to kill emerge while it is running.
if ${USERPRIV_UPGRADE} && \
[[ -d ${distdir} && -w ${distdir} ]] ; then
local ownership=$(get_ownership "${distdir}")
if [[ ${ownership#*:} == portage ]] ; then
einfo "Adjusting DISTDIR permissions for userpriv"
find "${distdir}" -mindepth 1 -maxdepth 1 -type d -uid 0 \
-exec chown -R portage:portage {} +
fi
fi
}

View file

@ -1,2 +1,2 @@
EBUILD opencl-sdk-1.1-r1.ebuild 859 SHA256 b9172b9d29d5b7e3f2ce97cfa36a37d4dcabd01bf689a3d1e26ff1cc59e6c191 SHA512 5e6c43866176bb6a975508622656ee1a29af4ac3080af04c7216870b5eee245ae5e0bb35bdc1788b541966aa553529d4349a655a15007b15d79874b80dd28937 WHIRLPOOL d58f074b148914ad1a434c96f9629cc84dd6c54150c8848a139db74434a9fa8a29fd6e120b9f711769be7ab4f5201fcc9a76ef46e3ef998902937c9dd5f257b7
EBUILD opencl-sdk-1.1.ebuild 868 SHA256 84abb08935186a2c1291989d543c15bf8f2ac824e1550e9942e5170e17cd7dca SHA512 b84b3fa70e25dce9c63a649f3ea0c25f418913988851f6425a7b98f5f91d6acc9b5ed3558aa0c1cc41c448c5d2c07178ea11693c207efbc9741787fbcbbc6bd8 WHIRLPOOL 2131443daced08328df2398336eefd1a138796f1e96c0d3c5c04ad43cdd82a7e91ce377435b2685c26e5811b1e77426fe0c0b55a97b232112aadb99445aaf74f
EBUILD opencl-sdk-1.1-r1.ebuild 861 SHA256 1074b1b97ac8843a8d9ce3400cefbb6bac93aa5b7ab73c8e463dec915302df4d SHA512 6bc410ac9c7c22b7d4de7195122af1be99d7f606ab48733359085087feaba9efeeea285e24712b2f55110930f0eebce471842342d8364b0372b767de433912da WHIRLPOOL a70fabc719200a7f0bbbbba66a7d3f0c81e26e2f9db6136b015c36aaa7441a7fc46f133016ea2cee59856224812b28b914806a3ea56f06fea34d0638542d16ec
EBUILD opencl-sdk-1.1.ebuild 870 SHA256 9b285745e0d3b4bfa95298cb6494d89e91d34e4746adf90402a5be39f6f3cc0f SHA512 f945b58637d0c025c40249399f2754575d75fd8cb6f6f453baaa8d4fdb874249dfd23153bc0942749c40a2c188be336fea392d773110dc33dece1de886a52333 WHIRLPOOL 4efeb123c988fb07b0ffaf8945dff7b09fdbc1f4a8aacebeb14753d3c2d9ea9fe6235085e2ffb8eea37f416d2245bc62951221d2b9f3b3956137036d3d2aaf00

View file

@ -15,7 +15,7 @@ KEYWORDS="amd64 x86"
IUSE_VIDEO_CARDS="video_cards_intel video_cards_fglrx video_cards_nvidia "
IUSE="${IUSE_VIDEO_CARDS}"
RDEPEND="app-admin/eselect-opencl
RDEPEND="app-eselect/eselect-opencl
video_cards_intel? ( dev-util/intel-ocl-sdk )
video_cards_fglrx? ( dev-util/ati-app-sdk-bin )
video_cards_nvidia? ( >=dev-util/nvidia-cuda-sdk-3.0[opencl] )

View file

@ -15,7 +15,7 @@ KEYWORDS="amd64 x86"
IUSE_VIDEO_CARDS="video_cards_intel video_cards_fglrx video_cards_nvidia "
IUSE="${IUSE_VIDEO_CARDS}"
RDEPEND="app-admin/eselect-opencl
RDEPEND="app-eselect/eselect-opencl
video_cards_intel? ( dev-util/intel-ocl-sdk )
video_cards_fglrx? ( >=dev-util/ati-stream-sdk-bin-2.2 )
video_cards_nvidia? ( >=dev-util/nvidia-cuda-sdk-3.0[opencl] )

View file

@ -1,34 +0,0 @@
AUX 09nvidia 61 SHA256 14702d6726cc9f0ad832a3cc90059999eb956f9e3a35397cb63cfa6347b33e39 SHA512 14c47fa164bde3422b64224e3e46e0a6097599de6193b6d36eb162271d41130f0498f6aee09f5cb60fe43727bf74051f9127afa1b4af42efc28d40af2e4fa86f WHIRLPOOL 34bc9975d132da84506a61a119a5d8d8b5be35af5c1511b5e3228fa3d9f0f3b7f84821c0ab09252054d1471ac7901522309d440c82342d6dfdd2beb73f680460
AUX 50nvidia-prelink-blacklist 319 SHA256 61adce61498451898c22fb538151379438729957418eacf4f69195b3e03ec1f4 SHA512 7252b464c45669bb402859ddb2c95f4553a37027870b6aeada3e1dd58fefe7b4713d3486d301177efdcd7559dbc31ceb6078220d5c0187bdc636d817a98e1a41 WHIRLPOOL 93e14ed7c8fb5dba87295c87e1e8906afac290f63dc6ea023fa6c387ed47ff13d488b3b24c400aee42a22737856a7782925d9a3a412ddcd1984dbbd7e51579a5
AUX 95-nvidia-settings 54 SHA256 c4b293c6c2659bebcbad9cffc1e237c6908a3763599e432aba89d07bc2826ba0 SHA512 0fdaff8701598081eeb78defcd140b78f75309ace998df67569a15d0ff653aca7ad0576912bf9a619f42990e6fb35cdb79e21f8181d3cd04dea719d912da8be9 WHIRLPOOL d71fef01f8c346089ef2556ffe62c5094f89582b73500711a7f18f25424e59baa12f6b0861bd8efd9bf4c5bbf794642927ca322cee218fd2da9fc7baa50fa827
AUX NVIDIA_glx-defines.patch 437 SHA256 0007f3d962edb87da4788ce58869679c1b10f28223a6bf1c23696fede57305da SHA512 a9cbbe5d5d362db0eb92d5b9fe87f28cccb600df9b44ae2b323ed08da97c32d6a4a0553c7c82ea3777ab91a1a4bf6b74f04d89b6ec28e60565e677cc4af48351 WHIRLPOOL a826b11c86803530346a65612ebd1a12f77f6c6ba1d93af597435993086451648b825fbc245a2c5850e0680c58129924843744d7e29013d5087c3b4dd9fefb14
AUX NVIDIA_glx-glheader.patch 380 SHA256 f630e24067bf6199a64f8fe8c5d6fc158cb4b153bda65ffc3f97b36a9cb08faf SHA512 366ebbe967001f4d694e9d6ae61fbd8b57e2946bba495894936809634bb87bd6ba6b10689969977e4d0eaba6983c16fe8d78830112b5b28f01c78381a0a095d6 WHIRLPOOL 8609fcedb439299189d9d05606a290a63de8b207bab855f874faa36e892396f41159d26e505dfead89fdac9d7e61aeeb50b16877aa14ad62dc3cd617353d7d60
AUX nvidia 1510 SHA256 b193cc3f6d6f39138720a2282d9f161fc8f2e8a15bc43d183a30eb879add06c5 SHA512 4ffdf49c2634b261be122a0016b0f69d30db6fe4b4a29767cfeee2e1d60671e7e6fc5e5c3a237b351a4def64404db121cf296a0cdb6e1bbd4f8e78ab40587000 WHIRLPOOL faab4c87940e4703b2a30f284cae34bdf4ac486cb1d402b5bd91ef65c23f443c2c961ad914fbcbd5258dd5bbaeee583f189fcf5fc14f2b9925c8ccfa0fc422c7
AUX nvidia-169.07 639 SHA256 a8c4860f008d53776fda7a17b59524f271236559af688e9a2c9845cbbcba1577 SHA512 3af295c026280dc3a2b73c2cc7772254686b09cad15f1333ab0b4de8cb0ccf78e725ced2a399b10edcf8af6ba42ab1485dc0661af67461b0c3789f786357772f WHIRLPOOL 626ae3c01c879e0cfe05bd373e0b9dfd6f462dd9ef6ae94a7d60276fe2d17c57fbb20aaa4d2a186a0ffc2a860076692aac854d00a3545bc9736e7bb8d0581055
AUX nvidia-autostart.desktop 227 SHA256 850c22fad5ac5a0cf6795b47cfc34f88f151f2802fa1256d2c2422108d59400a SHA512 704b0291505e74c75b55b6d1c75f23399b2e76743093d1ad4dfdf1eafc71bba70aa4e0003b155f247fa4b861fffecf53cd72eeef04e86ba15c0c4e4af477d69a WHIRLPOOL 74e93677417c721fc06691078f813717b59d9fd8a07e00870dcfe518f904143b7af4a253595c0c226c926012ae0fe5b439f387578fc53246a0a8c0e4de00c2a0
AUX nvidia-blacklist-vga-pmu-registers-256-304.diff 1713 SHA256 674a51e77beb3e076dd29b1d9a37ee23e1498ab128490ea2efb2140e45b44fde SHA512 abf4642278a4da01cefaea4abb116a3229b21c487c0e42d388561af3032d307fee734f5acd792efd4f4dd60e6a8ec18220f2a906c4cd82e71db769248e15c157 WHIRLPOOL 0bcdbf14ca6b4c6abc59ea6ca60da2feb7ff36739574290da109055f8153caf8a0adb6d0534e5ff43d814ba1dff24f894d18811f4c89b61565d2c1f4975213f8
AUX nvidia-drivers-190.53-2.6.33.patch 2893 SHA256 68f5cdf4489fb6bc480319e4bda6e6481beb189cf37920b939b8f7bbf77aed1f SHA512 e6d4b1735c49b64f6b6f5a55273fe052913dfa775d1d3e6a76316e6d78dead566ebf4e695a30cd1e4fb25eb3e22572fcef2817fa4ea7f24dfdf5aea8b4db7ea8 WHIRLPOOL 09383431cce49789982827ee47016377623b124a7af8def45acb5c3bfb74839e09d46ca37e6331649983f4c3427a1d2f854fdd83023527addd8cadeef8327d01
AUX nvidia-drivers-313.18-builddir-config.patch 1450 SHA256 28872397c455457fc4757c5309864ef00e737b719e607cb723b5e678bedc9807 SHA512 e554b1a5f776e6078bea6e30ccb1375b30c247e9e674609d4d20fbd7250b2fe6014bf69ab9404985c91cbfb41b9803dceda5d00f735a0bdfe0e506591f60e659 WHIRLPOOL 2fe5b0cdb022b04420b31177d2a23d92cf42ee8ad5faed7bf0ff3b85815032555ba1ccba1e124609ed63d49d0c90390bb7d70c87c8b5003ff32802836ce989d2
AUX nvidia-drivers-313.18-linux-3.7+.patch 990 SHA256 1ef3c4f6016189117a1dc7c1ef4949376fd762f29d6cb07bd3016dc01b483bcd SHA512 0eb41c71b0c96314022e2a6ae7fbed15b9247de087032e78e8e623137127cdbab4c79d454c7cab00ae5e0710fe48909df607d56592813e005eb2124cc2c1374f WHIRLPOOL 496a92c9b10c1bd7f1c797f57213d5033460329377ce759f25ecd90e900bc3277abf4aabaac73a6d7bcb5c563925919638d7f1a092d7b80c34de437a87deb354
AUX nvidia-drivers-313.18-linux-3.8+.patch 461 SHA256 a22245e4a44d0aeb36a95519e80efd24416b7a927852b23dd23e514849d9e076 SHA512 07f266cb3af92ace0e2c92f2d23bf716067c83c5b9da24d8670de5a8228b998b28380f01eca84c27a6e7a8d6c296db62182b90c71e29939022b083341e21d612 WHIRLPOOL 6cb29e35bd86160a62b26b0a2976b6557c717d196407ad32f186269001dd6a3786906bced5a739385e3010ef3142a1c1ff1ea3648ccb6ffe2e5932323f03995d
AUX nvidia-drivers-pax-const.patch 833 SHA256 74ba8aa3b03e1b4a0515fd84c159eaeb7635fa1364e77544b01ff6f571f0e6d8 SHA512 6ef94db71cab2dd47273eaed1857209d03ef648d268c7645f3ca4caf6b894590e42a8e716e4354f2eed656e7d55a4c1774b1e6a4be215fbf59fc9d0b1a5762a0 WHIRLPOOL 1b2d737ee7ccee831c85bd8af9605c0633fd025bb209e6d76c13f49a5664aa490bd5b6ce48855e541fe87380cd7b723162e1965b803e1ed630f239bf4dbd0d19
AUX nvidia-drivers-pax-usercopy.patch 2350 SHA256 56980f43db38d582bc6a9bfd881973fce6e3e056b77ce4f4005bdcf79526a863 SHA512 54a1354ba008d014a608044610027b4d808120f8e77cc7d5ac855c3dcf4f487b0a4c0870ae4e727db0643cb56ee21513b803976e9a30c6838adf2f5414232804 WHIRLPOOL 78ac54bfe52cc3b6dfa28e17020991dfb7056984d667b0fefa41d23372b03e1a8e6d66c74e1dee234733d5b2b36e2c0813f507a89716ae2d8f1f6db917fdf01d
AUX nvidia-drivers-settings.desktop 193 SHA256 31c062449b8bcc8adcd3ee649d8aebf0bef502400bcbbbb46124217e1efb17a3 SHA512 fbb81d2520e9025fbffb2a8e7b3647f621ddc9d36c79d063d49e901286e8d1ea45de1274f42e33ff1aece5cebd547a42829d65b421db39d808947554b0f57453 WHIRLPOOL c797eb0ec1044ecaaa979ca5180f840d9c82c5c040dd81b2d86ca4afade9f0c006fb8951f04cc4d2b206110d38b339690386d291ff8f625a22b38178a3cd970b
AUX nvidia-smi.init 671 SHA256 5776a661b510e072d34e779c23dfc710a13d04c49acc22772d2aeb0e415820d6 SHA512 f71bcdf2fcaf4aac69056a04f3e57c9f5e4d6c210fe571704d3f9a0798cc9615cd0560840ae336744f43563528db5b9a7b67730895eff438be330b13ab863ed6 WHIRLPOOL db48549b0d2b02d2f9ca6a86f38229dae67853939ac1c2147d5066b9b8958c2e0fb8539f70ddf5c92ae6ad642bb48ea8b1119d1779c80dd66bb450240fd0b40a
AUX nvidia-udev.sh 185 SHA256 120c0af2b64fbcbd7032217a78eec8b104874c1ca68726367bce22c57944e07e SHA512 166df3a4e7c1862ca2e0f634bf5eed7aad1bdd7e55764ca42371b91a7077c59f0bc243de5616fd38dac9694159d1695d54fbd08ac89d4d3f3649c70c7db5977e WHIRLPOOL cb9995029cdb2fe1bc7fe5ae54041ee5de8da86bf5eb3616d062475e56c44d436e1e66683ecddd986fc5bca5723d88da4b1a42f65f3cd7e15636928bd21fce14
AUX nvidia.udev-rule 462 SHA256 37b152a5055a16d1947171567178e2841679ddf03dba9d48e7d30f1e3b469ac6 SHA512 96f9edaa0b46bea5fce17596f868bea5265b303d7185af6ba81527bbd7b8fdf92de9311317cbde51a29d222083d451c25ab77c3d6837cbc4072a50d9af89aa86 WHIRLPOOL 89ed95f33db7485a3a1acd91df33ecdfb7d0a249db2d7674f134fb85b35a54653d0458e478503315ce506ae5d3c8dcd4ac20420711fdbdd087ea4bd779627d13
DIST NVIDIA-FreeBSD-x86-310.32.tar.gz 32541283 SHA256 3f00f5a13dc04f51b2a1b000ad53741ac6b81bd6e70258e7b9f200daf8f52b2d SHA512 f7d6e55a11cb8c44e5ddad00326942968800b671b6695303cbb3a689f843977f09c742705b4c44d1b77d4602229d59f3a713fbf0687c104c4220da34d6e45830 WHIRLPOOL 3ae11e4e4740a83e73ba028d6066c556e848956476e7b7633b3d36c6319a9751398d6b1a9392b279c0fec28277f355c05a06d9506159060a67ec8b29116711c3
DIST NVIDIA-FreeBSD-x86-313.18.tar.gz 32592785 SHA256 515b8470dcea3e122403f5902ba6ce3d710d9ddc4d9edd581ffe85e184af989f SHA512 00f15def371cbd2c433b2cecc1f5ff455ea1b112951b3453512b88371f7fa25047e5409cdbd7e34b7c8e6d5b1691b6d662076737dcfd6239f60926a013a1de52 WHIRLPOOL d6a49d027a4cc66c05a246f84ca8360265ce98d50e1e35d4d8828f2003c472d2154eb277cecddd1eb39ecc44896795e529daa743f37174c0e1e2a84b9fa7bada
DIST NVIDIA-FreeBSD-x86-313.30.tar.gz 32591892 SHA256 1e02831fbaddf2f27808ea26352d835417f59bcf54ddb3e9c0f1d7b76dcb4666 SHA512 68cf61fabf707dfa1225011cab3749959ab29f09f611347eb9f9bd55065012d04382998e67091c4d3c1af9be21be6381aef9b6414448ee15f9a36d44448f5bf8 WHIRLPOOL 71ded70f45e880db2c2850c596cebafd004adf89f7131adaf324d1d38abbb5457a700bfa9e671bfa144515556f011df8a37fdf22b78b879f39007be6487f060a
DIST NVIDIA-FreeBSD-x86_64-310.32.tar.gz 33511666 SHA256 f0935abf74a1298471a5eb0ede56ab913e358b76935557d618915a97efda9224 SHA512 fae5fef9cfc1f49c5d2a2c0a36cebd3b1e95ce306a2ef59fe93b9536d64489bbac09d8e78d92b2cd7e66bbe7cf68b86b0431d95b84267cbe06f9c7e485cc23a8 WHIRLPOOL 3b4aa1363ef70940f7c85e5e3ce4c13c5976f774b191567f45a7944daa89d89d823710ae4441f6c5746b30578457a339f3aa9cd650c25d071662ca21f048126b
DIST NVIDIA-FreeBSD-x86_64-313.18.tar.gz 33554240 SHA256 57fbf9c85fb19a7f2fb3c6c2f50421e70309cd3360c059a2fc6efc125681ff10 SHA512 fe2c0ec88b7cb5d49905dd082d46f3a4268dea78bf4dbdc6d82b60f1ec9998d478b4332de48094af7bb7b9b51eb6885aae446998830c28555521715db7a59dbe WHIRLPOOL 95e3c577b3831bda11f0ddd8ee1fddc2f1a3138db35c78277fe99ac6c75d9dca0e9b8acf59ca31413f11775772d82bef85077355796bb6882bf9804868361b66
DIST NVIDIA-FreeBSD-x86_64-313.30.tar.gz 33557658 SHA256 192ad1bb8a0cd649e12bcccf97c5f4d2002d6695126fea81586991d9e95248d3 SHA512 79b3b47bdcbc99f724f8c424733c11f1b2653103bbe0ba9849587628611d9da08ea434c786cc7d3d891bde3dfe4068298a7377ce5b1a3484fb64ef4d28c896da WHIRLPOOL 7307d6adb04b47b8403134e7394bf9af4f90839d1fb62aa3b7b7c6d8e367392829fb249dc8d444e66158fa5b5b15cf5b6c16e1f5659a22a15c17f55eda026660
DIST NVIDIA-Linux-x86-310.32.run 38844819 SHA256 d43e56486a53fa99690c7038005797699cec54ab5e2c7cee229340118616ac8d SHA512 523745e428874445fe2df65bd111c68707b378305d7bbeea6a94b01b13a1f6233b4e27d74555f1c43457e8d49692e786eab3157c2bd3e158228316534746a2d8 WHIRLPOOL 642d64eb1e62f6e305b89712112f54e8e6f6eee9726cad0544d7caf02307e570a2418482318df18fd1de2376cbde918732d96af5400634d150d4625d40467c3c
DIST NVIDIA-Linux-x86-313.18.run 38865783 SHA256 58e5e2191890ace94849444f5d2de4c2921dfe02cd97825d81a128754ff4488f SHA512 70ec92071de3aabe77ee5304a4c2c1b7eda0e2b44860f63b05c8c004aaf748c18b40e5f7558dd6bcb99e1e394557a2c189ca462400fdde28aee408a64b8b7e27 WHIRLPOOL 3f6506e17414a78d4dc7a69e52e34d5172529d061dd8aa7b7e31066281525a0cbfefd846b2bfdb21820ed3c6a0c1348fae4e0d7d21c82d6633e284f5a0dfbd52
DIST NVIDIA-Linux-x86-313.30.run 38845860 SHA256 0a0f10979b1bca8e4a244e204b58aeb9a580924a9dd7b11b21d15abfe1ad49ad SHA512 c3b07e7186fcf5a1f3e73f4e9510dddff2a42c0202bc471a946e38e636af27b2d17206b7105a7a80179fc17ebceab6c2802ff6ddaabae9e16a930dfa1252a2db WHIRLPOOL 2d4402883a480ae3050af18f3fe1aec4110132aa4eda0ce9675f79471a526e8b90b9ebe6a0a5c76321474be6ace963520b903cf809835472649b095be757ec52
DIST NVIDIA-Linux-x86_64-310.32.run 68342787 SHA256 e5f179a62d1a0e6a877f3f89315d0a28cb7c3cbceff7df13e1a71ab189ac3616 SHA512 c0f3c6327a6fe01e84a84f92578c01367abc1b7c8435d4485bb117874ac9156800b82e7f59fd5a3caf74d3a44b067b890ce12a0dc35efde81cc6ee6388b8b4ce WHIRLPOOL 480419d3f329808e73f5ff9556f05f02d7488eec4af91444f858d0347ab331a0cc75700361ba47ea4151cc549e716ab9f980b3bfb5bbea205fc1b4d12d0b50a3
DIST NVIDIA-Linux-x86_64-313.18.run 68386461 SHA256 9aaf6ce2fb08f72b2ab4f7a2d9fc5af8216ac263fa4883deec3844f34ea7ba3a SHA512 d1017763f6cef96a443f9d7890ca940d742cd17fb8b1d926440483987e22d350a57bcce98962d6130c5e2ac697926dbb560f148f45ba7659ff3412443b53473c WHIRLPOOL 0180fff2e5e7bd9fb731fdee3c81e1b26a7962d989e998dc9fa67e4a836526e10e6de01cfc1e6650d9ff4a5cc334b5c27740df309b3dd403dfd13795c48d6f29
DIST NVIDIA-Linux-x86_64-313.30.run 68379307 SHA256 72317f2e4c459c33c764e3283deb3e1615b1852ead1f9bfad82148e120506022 SHA512 ae4439697e47eff98e06e5f77de979bdce096f95efa8bdee9c6fc939b42b5ce3b11c23d7691e974cf0f6f783eeb0fb694670636538352a0e8979f88d687f1f86 WHIRLPOOL c12a68fcc4d78f3856d87a86cef43c3632c0db1b6c5799b6482584d4d83a7cc863b9b394a501b96534175e11663c602d72f6ffa49f85461eaf4324dc61e654ff
EBUILD nvidia-drivers-310.32.ebuild 12773 SHA256 4d3c9e2045cb7a4f2bf60c222ff3bb894b10f11d36a80ebfe8abeb2c00d624b9 SHA512 d8bc2111d17b05dde2a7f4ea4ad2ab1658991d39de6803fe8bf1201586334c429428ec17d1554a433e0a305cbadead0bcc1024db18407c389d1dd7940ee05816 WHIRLPOOL 23b2992b99cfe5cfd554d9f8576567737a3e4ea799a9fc32f07ea55bffa3075adfe47a099f28fd46003d2ecd05b854c77461261b62b26255a4710bf2e77c3392
EBUILD nvidia-drivers-313.18.ebuild 13089 SHA256 dccffb4060a1debabd719e048fc2f55049fa3065555412a3c33d665b2d0913cb SHA512 a83ad87322ae7f6885900b52f237854e772c18aeb64d42906e57667535436c849eb28705e47681d733ce93d3e1c26830a1d021047c9fc23f554b4641231f4756 WHIRLPOOL 5cd3ee554171ffbb9aae760011e3315739b9a448d30f07e99783183f3246e6a5c2f430323cb6af489c6d656e38b50fd95ca82014745b255fc342f848ee5509ce
EBUILD nvidia-drivers-313.30-r1.ebuild 13075 SHA256 5953668dd10500a9adcf1d48f8477359ea4305313eed85dc7b2666b9f7dabff7 SHA512 88e1c240db4f65ae8d5a3b99092d340f5eb94e6875243bb4eb45b81f06a18d381f9dbf2c3a8b18959a6be5707f0b3da490882e44b52107455576616146d992ad WHIRLPOOL af35cd0dc93b6778ee2e77cad383cbed881a839603b8c70523c622034cebec914ddc6fd2c763f635c5c890864a80acb581b8edadeb1e31c3a65565d05375da59

View file

@ -1,2 +0,0 @@
# Has to precede X11's own libraries!
LDPATH=/opt/nvidia/lib

View file

@ -1 +0,0 @@
PRELINK_PATH_MASK="/usr/lib{,64}/tls/libnvidia-tls*:/usr/lib{,64}/libnvidia*:/usr/lib{,64}/libGL*:/usr/lib{,64}/opengl/nvidia/*:/usr/lib{,64}/OpenCL/vendors/nvidia/*:/usr/lib{,64}/xorg/modules/drivers/nvidia*:/usr/lib{,64}/libvdpau_nvidia*:/usr/lib{,64}/libXvMCNVIDIA*:/usr/lib{,64}/libcuda*:/usr/lib{,64}/libnvcuvid*"

View file

@ -1,2 +0,0 @@
#!/bin/sh
/opt/bin/nvidia-settings --load-config-only

View file

@ -1,11 +0,0 @@
diff -ur NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h
--- NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h 2002-12-09 21:26:55.000000000 +0100
+++ NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h 2003-01-30 18:20:23.000000000 +0100
@@ -39,6 +39,7 @@
typedef XID GLXPixmap;
typedef XID GLXDrawable;
typedef XID GLXPbuffer;
+typedef XID GLXPbufferSGIX;
typedef XID GLXWindow;
typedef XID GLXFBConfigID;

View file

@ -1,13 +0,0 @@
--- usr/include/GL/gl.g.orig 2004-07-17 19:56:59.789410584 +1000
+++ usr/include/GL/gl.h 2004-07-17 19:59:08.844791184 +1000
@@ -66,6 +66,10 @@
typedef double GLclampd;
typedef void GLvoid;
+/* Patching for some better defines in the global system */
+#ifndef GL_GLEXT_LEGACY
+#include <GL/glext.h>
+#endif
/*************************************************************/

View file

@ -1,40 +0,0 @@
# Nvidia drivers support
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
# To tweak the driver the following options can be used, note that
# you should be careful, as it could cause instability!! For more
# options see /usr/share/doc/PACKAGE/README
#
# To enable Side Band Adressing: NVreg_EnableAGPSBA=1
#
# To enable Fast Writes: NVreg_EnableAGPFW=1
#
# To enable both for instance, uncomment following line:
#
#options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1
# If you have a mobile chip, you may need to enable this option
# if you have hard lockups when starting X.
#
# See: Appendix I. Configuring your laptop
# In /usr/share/doc/PACKAGE/README for full details
#
# Choose the appropriate value for NVreg_Mobile from the table:
# Value Meaning
# ---------- --------------------------------------------------
# 0xFFFFFFFF let the kernel module autodetect the correct value
# 1 Dell laptops
# 2 non-Compal Toshiba laptops
# 3 all other laptops
# 4 Compal Toshiba laptops
# 5 Gateway laptops
#
#options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=3
# !!! SECURITY WARNING !!!
# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
# WHAT YOU ARE DOING.
# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1

View file

@ -1,14 +0,0 @@
# Nvidia drivers support
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
# To tweak the driver the following options can be used, note that
# you should be careful, as it could cause instability!! For more
# options see /usr/share/doc/PACKAGE/README
#
# !!! SECURITY WARNING !!!
# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
# WHAT YOU ARE DOING.
# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1

View file

@ -1,8 +0,0 @@
[Desktop Entry]
Type=Application
Name=NVIDIA X Server Settings
Comment=Configure NVIDIA X Server Settings
Exec=sh -c "/opt/bin/nvidia-settings --load-config-only"
Terminal=false
Icon=nvidia-settings
Categories=System;Settings;

View file

@ -1,25 +0,0 @@
diff -ur kernel/nv.h kernel/nv.h
--- kernel/nv.h 2012-08-02 18:19:37.000000000 -0700
+++ kernel/nv.h 2012-08-02 18:19:37.000000000 -0700
@@ -448,7 +448,20 @@
#define IS_BLACKLISTED_REG_OFFSET(nv, offset, length) \
((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
- (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x84000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x85000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x86000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x87000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x89000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0xa0000, 0x20000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x104000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x105000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x10a000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c2000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c3000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x618000, 0x2000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x627000, 0x1000, offset, length)) ||\
+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
/* duplicated from nvos.h for external builds */
#ifndef NVOS_AGP_CONFIG_DISABLE_AGP

View file

@ -1,92 +0,0 @@
Index: usr/src/nv/conftest.sh
===================================================================
--- usr/src/nv/conftest.sh
+++ usr/src/nv/conftest.sh 2010-01-06 12:10:56.000000000 +0530
@@ -32,14 +32,14 @@
# CONFIG_XEN and CONFIG_PARAVIRT are present, text_xen() treats
# the kernel as a stand-alone kernel.
#
- FILE="linux/autoconf.h"
+ FILE="generated/autoconf.h"
if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
#
# We are looking at a configured source tree; verify
# that it's not a Xen kernel.
#
- echo "#include <linux/autoconf.h>
+ echo "#include <generated/autoconf.h>
#if defined(CONFIG_XEN) && !defined(CONFIG_PARAVIRT)
#error CONFIG_XEN defined!
#endif
@@ -111,7 +111,12 @@
fi
}
-CONFTEST_PREAMBLE="#include <linux/autoconf.h>
+CONFTEST_PREAMBLE="#include <linux/version.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
+ #include <generated/autoconf.h>
+ #else
+ #include <linux/autoconf.h>
+ #endif
#if defined(CONFIG_XEN) && \
defined(CONFIG_XEN_INTERFACE_VERSION) && !defined(__XEN_INTERFACE_VERSION__)
#define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
@@ -1294,7 +1299,7 @@
echo "";
fi
fi
- exit $RET
+# exit $RET
;;
get_uname)
@@ -1316,11 +1321,11 @@
# tree or at headers shipped for a specific kernel.
# Determine the kernel version using a compile check.
#
- FILE="linux/utsrelease.h"
+ FILE="generated/utsrelease.h"
if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
echo "$CONFTEST_PREAMBLE
- #include <linux/utsrelease.h>
+ #include <generated/utsrelease.h>
int main() {
printf(\"%s\", UTS_RELEASE);
return 0;
@@ -1375,7 +1380,7 @@
#
RET=1
VERBOSE=$6
- FILE="linux/autoconf.h"
+ FILE="generated/autoconf.h"
if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
#
@@ -1429,7 +1434,7 @@
#
RET=1
VERBOSE=$6
- FILE="linux/autoconf.h"
+ FILE="generated/autoconf.h"
if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
#
Index: usr/src/nv/nvacpi.c
===================================================================
--- usr/src/nv/nvacpi.c
+++ usr/src/nv/nvacpi.c 2010-01-06 12:10:56.000000000 +0530
@@ -49,6 +49,10 @@
};
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)
+#define acpi_walk_namespace(a,b,c,d,e,f) acpi_walk_namespace(a,b,c,d,e,f,NULL)
+#endif
+
static struct acpi_driver *nv_acpi_driver;
static acpi_handle nvif_handle = NULL;
static acpi_handle dsm_handle = NULL;

View file

@ -1,42 +0,0 @@
the .config file is found in the output dir, not the source dir.
search for it in the right place to fix kernels that are built
via standard out-of-tree methods (KBUILD_OUTPUT).
--- a/kernel/conftest.sh
+++ b/kernel/conftest.sh
@@ -63,7 +63,7 @@ test_xen() {
XEN_PRESENT=0
fi
else
- CONFIG=$HEADERS/../.config
+ CONFIG=$OUTPUT/.config
if [ -f $CONFIG ]; then
if [ -z "$(grep "^CONFIG_XEN=y" $CONFIG)" ]; then
XEN_PRESENT="0"
@@ -1688,7 +1688,7 @@ case "$6" in
rm -f conftest.h
else
MAKEFILE=$HEADERS/../Makefile
- CONFIG=$HEADERS/../.config
+ CONFIG=$OUTPUT/.config
if [ -f $MAKEFILE -a -f $CONFIG ]; then
#
@@ -1857,7 +1857,7 @@ case "$6" in
rm -f conftest$$.c conftest$$.o
rm -f conftest.h
else
- CONFIG=$HEADERS/../.config
+ CONFIG=$OUTPUT/.config
if [ -f $CONFIG ]; then
if [ -z "$(grep "^CONFIG_FB_RIVA=y" $CONFIG)" ]; then
RET=0
@@ -1923,7 +1923,7 @@ case "$6" in
rm -f conftest$$.c conftest$$.o
rm -f conftest.h
else
- CONFIG=$HEADERS/../.config
+ CONFIG=$OUTPUT/.config
if [ -f $CONFIG ]; then
if [ -z "$(grep "^CONFIG_FB_NVIDIA=y" $CONFIG)" ]; then
RET=0

View file

@ -1,24 +0,0 @@
the nvidia drivers are trying to test for version 2.6.6, but fail to take into
account the first digit. so 3.7.0+ ends up failing the test.
https://bugs.gentoo.org/447566
--- a/kernel/conftest.sh
+++ b/kernel/conftest.sh
@@ -1697,13 +1697,15 @@
# kernel older than 2.6.6, that's all we require to
# build the module.
#
+ VERSION=$(grep "^VERSION =" $MAKEFILE | cut -d " " -f 3)
PATCHLEVEL=$(grep "^PATCHLEVEL =" $MAKEFILE | cut -d " " -f 3)
SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3)
- if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \
+ if [ -n "$VERSION" -a $VERSION -ge 3 ] || \
+ [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \
-a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then
SELECTED_MAKEFILE=Makefile.kbuild
RET=0
fi
fi
fi

View file

@ -1,13 +0,0 @@
http://bugs.gentoo.org/447566
--- a/kernel/conftest.sh
+++ b/kernel/conftest.sh
@@ -160,6 +160,7 @@ build_cflags() {
if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/x86/include"
+ CFLAGS="$CFLAGS -I$SOURCES/arch/x86/include/uapi"
CFLAGS="$CFLAGS -I$OUTPUT/arch/x86/include/generated"
CFLAGS="$CFLAGS -I$OUTPUT/arch/x86/include/generated/uapi"
elif [ "$ARCH" = "arm" ]; then
--

View file

@ -1,17 +0,0 @@
Binary files kernel.orig/.nv-procfs.c.swp and kernel/.nv-procfs.c.swp differ
diff -urp kernel.orig/nv-procfs.c kernel/nv-procfs.c
--- kernel.orig/nv-procfs.c 2011-07-13 03:29:30.000000000 +0200
+++ kernel/nv-procfs.c 2011-07-19 15:45:27.982993911 +0200
@@ -707,8 +707,10 @@ int nv_register_procfs(void)
* However, in preparation for this, we need to preserve
* the procfs read() and write() operations.
*/
- nv_procfs_registry_fops.read = entry->proc_fops->read;
- nv_procfs_registry_fops.write = entry->proc_fops->write;
+ pax_open_kernel();
+ *(void **)&nv_procfs_registry_fops.read = entry->proc_fops->read;
+ *(void **)&nv_procfs_registry_fops.write = entry->proc_fops->write;
+ pax_close_kernel();
entry = NV_CREATE_PROC_FILE("registry", proc_nvidia,
nv_procfs_read_registry,

View file

@ -1,54 +0,0 @@
diff -urp kernel.orig/nv.c kernel/nv.c
--- kernel.orig/nv.c 2011-09-24 02:32:09.000000000 +0200
+++ kernel/nv.c 2011-10-05 19:13:41.474242252 +0200
@@ -1105,7 +1105,7 @@ static int __init nvidia_init_module(voi
NV_SPIN_LOCK_INIT(&km_lock);
#endif
- NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t);
+ NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t, SLAB_USERCOPY);
if (nv_stack_t_cache == NULL)
{
nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
@@ -1220,7 +1220,7 @@ static int __init nvidia_init_module(voi
}
#endif
- NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t);
+ NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t, 0);
if (nv_pte_t_cache == NULL)
{
rc = -ENOMEM;
@@ -1229,7 +1229,7 @@ static int __init nvidia_init_module(voi
}
NV_KMEM_CACHE_CREATE(nvidia_p2p_page_t_cache, "nvidia_p2p_page_t",
- nvidia_p2p_page_t);
+ nvidia_p2p_page_t, 0);
if (nvidia_p2p_page_t_cache == NULL)
{
rc = -ENOMEM;
diff -urp kernel.orig/nv-linux.h kernel/nv-linux.h
--- kernel.orig/nv-linux.h 2011-09-24 02:32:09.000000000 +0200
+++ kernel/nv-linux.h 2011-10-05 19:14:42.522238996 +0200
@@ -695,16 +695,16 @@ extern nv_spinlock_t km_lock;
#if defined(NV_KMEM_CACHE_CREATE_PRESENT)
#if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 6)
-#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags) \
{ \
kmem_cache = kmem_cache_create(name, sizeof(type), \
- 0, 0, NULL, NULL); \
+ 0, flags, NULL, NULL); \
}
#elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
-#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags) \
{ \
kmem_cache = kmem_cache_create(name, sizeof(type), \
- 0, 0, NULL); \
+ 0, flags, NULL); \
}
#else
#error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"

View file

@ -1,7 +0,0 @@
[Desktop Entry]
Type=Application
Name=NVIDIA X Server Settings
Comment=Configure NVIDIA X Server Settings
Exec=/opt/bin/nvidia-settings
Icon=nvidia-drivers-settings
Categories=System;Settings;

View file

@ -1,25 +0,0 @@
#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/files/nvidia-smi.init,v 1.1 2012/07/22 21:08:43 cardoe Exp $
pidfile="/var/run/nvidia-smi.pid"
depend() {
after modules
}
start() {
ebegin "Starting NVIDIA System Management Interface"
rm -f ${pidfile}
start-stop-daemon --start --quiet --pidfile ${pidfile} \
--make-pidfile --background --exec /opt/bin/nvidia-smi -- \
-q -l 300
eend $?
}
stop() {
ebegin "Stopping NVIDIA System Management Interface"
start-stop-daemon --stop --quiet --pidfile ${pidfile}
eend $?
}

View file

@ -1,17 +0,0 @@
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Invalid args" >&2
exit 1
fi
case $1 in
add|ADD)
/opt/bin/nvidia-smi > /dev/null
;;
remove|REMOVE)
rm -f /dev/nvidia*
;;
esac
exit 0

View file

@ -1,6 +0,0 @@
ACTION=="add", DEVPATH=="/module/nvidia", SUBSYSTEM=="module", RUN+="nvidia-udev.sh $env{ACTION}"
# Previously the ACTION was "add|remove" but one user on bug #376527 had a
# problem until he recompiled udev-171-r5, which is one of the versions I
# tested with and it was fine. I'm breaking the rules out just to be safe
# so someone else doesn't have an issue
ACTION=="remove", DEVPATH=="/module/nvidia", SUBSYSTEM=="module", RUN+="nvidia-udev.sh $env{ACTION}"

View file

@ -1,442 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-310.32.ebuild,v 1.5 2013/03/02 16:07:11 cardoe Exp $
EAPI=4
inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
portability toolchain-funcs unpacker user udev
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
DESCRIPTION="NVIDIA X11 driver and GLX libraries"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
amd64-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
x86-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
LICENSE="NVIDIA"
SLOT="0"
KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +X"
RESTRICT="strip"
EMULTILIB_PKG="true"
COMMON="app-admin/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
multilib? ( app-emulation/emul-linux-x86-xlibs )
X? (
<x11-base/xorg-server-1.14.99
>=app-admin/eselect-opengl-1.0.9
)"
DEPEND="${COMMON}
kernel_linux? (
virtual/linux-sources
)"
RDEPEND="${COMMON}
acpi? ( sys-power/acpid )
tools? (
dev-libs/atk
dev-libs/glib
x11-libs/gdk-pixbuf
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/pango[X]
|| ( x11-libs/pangox-compat <x11-libs/pango-1.31[X] )
)
X? ( >=x11-libs/libvdpau-0.3-r1 )"
REQUIRED_USE="tools? ( X )"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
pkg_pretend() {
if use amd64 && has_multilib_profile && \
[ "${DEFAULT_ABI}" != "amd64" ]; then
eerror "This ebuild doesn't currently support changing your default ABI"
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
if use kernel_linux && kernel_is ge 3 7 ; then
ewarn "Gentoo supports kernel's which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
ewarn "<sys-kernel/gentoo-sources-3.7"
ewarn "<sys-kernel/vanilla-sources-3.7"
ewarn ""
ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
fi
# Since Nvidia ships 3 different series of drivers, we need to give the user
# some kind of guidance as to what version they should install. This tries
# to point the user in the right direction but can't be perfect. check
# nvidia-driver.eclass
nvidia-driver-check-warning
# Kernel features/options to check for
CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
# Now do the above checks
use kernel_linux && check_extra_config
}
pkg_setup() {
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use kernel_linux; then
linux-mod_pkg_setup
MODULE_NAMES="nvidia(video:${S}/kernel)"
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_unpack() {
if ! use kernel_FreeBSD; then
cd "${S}"
unpack_makeself
else
unpack ${A}
fi
}
src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
if kernel_is lt 2 6 9 ; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# If greater than 2.6.5 use M= instead of SUBDIR=
convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
epatch "${FILESDIR}"/nvidia-drivers-pax-const.patch
epatch "${FILESDIR}"/nvidia-drivers-pax-usercopy.patch
fi
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
linux-mod_src_compile
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if its not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
# SOVER to use
MY_SOVER="$2"
# Where to install
MY_DEST="$3"
if [[ -z "${MY_DEST}" ]]; then
MY_DEST="/usr/$(get_libdir)"
action="dolib.so"
else
exeinto ${MY_DEST}
action="doexe"
fi
# Get just the library name
libname=$(basename $1)
# Install the library with the correct SOVER
${action} ${MY_LIB}.${MY_SOVER} || \
die "failed to install ${libname}"
# If SOVER wasn't 1, then we need to create a .1 symlink
if [[ "${MY_SOVER}" != "1" ]]; then
dosym ${libname}.${MY_SOVER} \
${MY_DEST}/${libname}.1 || \
die "failed to create ${libname} symlink"
fi
# Always create the symlink from the raw lib to the .1
dosym ${libname}.1 \
${MY_DEST}/${libname} || \
die "failed to create ${libname} symlink"
}
src_install() {
if use kernel_linux; then
linux-mod_src_install
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
if [ -z "$VIDEOGROUP" ]; then
eerror "Failed to determine the video group gid."
die "Failed to determine the video group gid."
fi
# Add the aliases
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
sed -e 's:PACKAGE:'${PF}':g' \
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
"${WORKDIR}"/nvidia
insinto /etc/modprobe.d
newins "${WORKDIR}"/nvidia nvidia.conf || die
# Ensures that our device nodes are created when not using X
exeinto "$(udev_get_udevdir)"
doexe "${FILESDIR}"/nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld" || die
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko" || die
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so || die "failed to install nvidia_drv.so"
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Documentation
dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
use tools && doman "${NV_MAN}/nvidia-settings.1"
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}/nvidia-smi.1.gz"
use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig || die
fi
if use kernel_linux ; then
doexe ${NV_OBJ}/nvidia-debugdump || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-control || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-server || die
doexe ${NV_OBJ}/nvidia-smi || die
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
fi
if use tools; then
doexe ${NV_OBJ}/nvidia-settings || die
fi
exeinto /usr/bin/
doexe ${NV_OBJ}/nvidia-bug-report.sh || die
# Desktop entries for nvidia-settings
if use tools ; then
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png nvidia-drivers-settings.png
domenu "${FILESDIR}"/nvidia-drivers-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/95-nvidia-settings
fi
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
if has_multilib_profile && use multilib ; then
local OABI=${ABI}
for ABI in $(get_install_abis) ; do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
if use kernel_linux && has_multilib_profile && \
[[ ${ABI} == "x86" ]] ; then
libdir=${NV_OBJ}/32
fi
if use X; then
# The GLX libraries
donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
if use kernel_FreeBSD; then
donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
else
donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
fi
# VDPAU
donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
fi
# NVIDIA monitoring library
if use kernel_linux ; then
donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
fi
# CUDA & OpenCL
if use kernel_linux; then
donvidia ${libdir}/libcuda.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
fi
}
pkg_preinst() {
use kernel_linux && linux-mod_pkg_preinst
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
elog "You must be in the video group to use the NVIDIA device"
elog "For more info, read the docs at"
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
elog
elog "This ebuild installs a kernel module and X driver. Both must"
elog "match explicitly in their version. This means, if you restart"
elog "X, you must modprobe -r nvidia before starting it back up"
elog
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
elog
elog "To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\""
elog
elog "NVIDIA has requested that any bug reports submitted have the"
elog "output of /opt/bin/nvidia-bug-report.sh included."
elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}

View file

@ -1,449 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-313.18.ebuild,v 1.7 2013/03/02 16:07:11 cardoe Exp $
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
portability toolchain-funcs unpacker user udev
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
DESCRIPTION="NVIDIA X11 driver and GLX libraries"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
amd64-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
x86-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
LICENSE="NVIDIA"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +vanilla +X"
RESTRICT="strip"
EMULTILIB_PKG="true"
COMMON="app-admin/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
multilib? ( app-emulation/emul-linux-x86-xlibs )
X? (
<x11-base/xorg-server-1.14.99
>=app-admin/eselect-opengl-1.0.9
)"
DEPEND="${COMMON}
kernel_linux? (
virtual/linux-sources
)"
RDEPEND="${COMMON}
acpi? ( sys-power/acpid )
tools? (
dev-libs/atk
dev-libs/glib
x11-libs/gdk-pixbuf
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/pango[X]
|| ( x11-libs/pangox-compat <x11-libs/pango-1.31[X] )
)
X? ( >=x11-libs/libvdpau-0.3-r1 )"
REQUIRED_USE="tools? ( X )"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
pkg_pretend() {
if use amd64 && has_multilib_profile && \
[ "${DEFAULT_ABI}" != "amd64" ]; then
eerror "This ebuild doesn't currently support changing your default ABI"
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
if use kernel_linux && kernel_is ge 3 7 ; then
if use vanilla ; then
ewarn "Gentoo supports kernel's which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
ewarn "<sys-kernel/gentoo-sources-3.7"
ewarn "<sys-kernel/vanilla-sources-3.7"
ewarn "If you want to build anyway, disable USE=vanilla"
else
ewarn "USE=vanilla has been disabled and you are building for"
ewarn "kernel 3.7 or greater. As a result, you won't be supported"
ewarn "by NVIDIA, and you may not be supported by Gentoo."
ewarn "The risks are yours, this may work, or may kill your hardware"
fi
fi
# Since Nvidia ships 3 different series of drivers, we need to give the user
# some kind of guidance as to what version they should install. This tries
# to point the user in the right direction but can't be perfect. check
# nvidia-driver.eclass
nvidia-driver-check-warning
# Kernel features/options to check for
CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
# Now do the above checks
use kernel_linux && check_extra_config
}
pkg_setup() {
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use kernel_linux; then
linux-mod_pkg_setup
MODULE_NAMES="nvidia(video:${S}/kernel)"
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_unpack() {
if ! use kernel_FreeBSD; then
cd "${S}"
unpack_makeself
else
unpack ${A}
fi
}
src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
if kernel_is lt 2 6 9 ; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# If greater than 2.6.5 use M= instead of SUBDIR=
convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
epatch "${FILESDIR}"/nvidia-drivers-pax-const.patch
epatch "${FILESDIR}"/nvidia-drivers-pax-usercopy.patch
fi
epatch "${FILESDIR}"/${PN}-313.18-builddir-config.patch
epatch "${FILESDIR}"/${PN}-313.18-linux-3.{7,8}+.patch #447566
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
linux-mod_src_compile
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if its not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
# SOVER to use
MY_SOVER="$2"
# Where to install
MY_DEST="$3"
if [[ -z "${MY_DEST}" ]]; then
MY_DEST="/usr/$(get_libdir)"
action="dolib.so"
else
exeinto ${MY_DEST}
action="doexe"
fi
# Get just the library name
libname=$(basename $1)
# Install the library with the correct SOVER
${action} ${MY_LIB}.${MY_SOVER} || \
die "failed to install ${libname}"
# If SOVER wasn't 1, then we need to create a .1 symlink
if [[ "${MY_SOVER}" != "1" ]]; then
dosym ${libname}.${MY_SOVER} \
${MY_DEST}/${libname}.1 || \
die "failed to create ${libname} symlink"
fi
# Always create the symlink from the raw lib to the .1
dosym ${libname}.1 \
${MY_DEST}/${libname} || \
die "failed to create ${libname} symlink"
}
src_install() {
if use kernel_linux; then
linux-mod_src_install
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
if [ -z "$VIDEOGROUP" ]; then
eerror "Failed to determine the video group gid."
die "Failed to determine the video group gid."
fi
# Add the aliases
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
sed -e 's:PACKAGE:'${PF}':g' \
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
"${WORKDIR}"/nvidia
insinto /etc/modprobe.d
newins "${WORKDIR}"/nvidia nvidia.conf || die
# Ensures that our device nodes are created when not using X
exeinto "$(udev_get_udevdir)"
doexe "${FILESDIR}"/nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld" || die
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko" || die
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so || die "failed to install nvidia_drv.so"
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Documentation
dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
use tools && doman "${NV_MAN}/nvidia-settings.1"
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}/nvidia-smi.1.gz"
use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig || die
fi
if use kernel_linux ; then
doexe ${NV_OBJ}/nvidia-debugdump || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-control || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-server || die
doexe ${NV_OBJ}/nvidia-smi || die
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
fi
if use tools; then
doexe ${NV_OBJ}/nvidia-settings || die
fi
exeinto /usr/bin/
doexe ${NV_OBJ}/nvidia-bug-report.sh || die
# Desktop entries for nvidia-settings
if use tools ; then
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png nvidia-drivers-settings.png
domenu "${FILESDIR}"/nvidia-drivers-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/95-nvidia-settings
fi
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
if has_multilib_profile && use multilib ; then
local OABI=${ABI}
for ABI in $(get_install_abis) ; do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
if use kernel_linux && has_multilib_profile && \
[[ ${ABI} == "x86" ]] ; then
libdir=${NV_OBJ}/32
fi
if use X; then
# The GLX libraries
donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
if use kernel_FreeBSD; then
donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
else
donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
fi
# VDPAU
donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
fi
# NVIDIA monitoring library
if use kernel_linux ; then
donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
fi
# CUDA & OpenCL
if use kernel_linux; then
donvidia ${libdir}/libcuda.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
fi
}
pkg_preinst() {
use kernel_linux && linux-mod_pkg_preinst
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
elog "You must be in the video group to use the NVIDIA device"
elog "For more info, read the docs at"
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
elog
elog "This ebuild installs a kernel module and X driver. Both must"
elog "match explicitly in their version. This means, if you restart"
elog "X, you must modprobe -r nvidia before starting it back up"
elog
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
elog
elog "To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\""
elog
elog "NVIDIA has requested that any bug reports submitted have the"
elog "output of /opt/bin/nvidia-bug-report.sh included."
elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}

View file

@ -1,449 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-313.30.ebuild,v 1.2 2013/04/07 13:07:12 vincent Exp $
EAPI=5
inherit eutils flag-o-matic linux-info linux-mod multilib nvidia-driver \
portability toolchain-funcs unpacker user udev
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
DESCRIPTION="NVIDIA X11 driver and GLX libraries"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
amd64-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
x86-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
LICENSE="GPL-2 NVIDIA-r1"
SLOT="0"
KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools +X"
RESTRICT="bindist mirror strip"
EMULTILIB_PKG="true"
COMMON="app-admin/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
multilib? ( app-emulation/emul-linux-x86-xlibs )
X? (
<x11-base/xorg-server-1.14.99
>=app-admin/eselect-opengl-1.0.9
)"
DEPEND="${COMMON}
kernel_linux? (
virtual/linux-sources
)"
RDEPEND="${COMMON}
acpi? ( sys-power/acpid )
tools? (
dev-libs/atk
dev-libs/glib
x11-libs/gdk-pixbuf
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/pango[X]
|| ( x11-libs/pangox-compat <x11-libs/pango-1.31[X] )
)
X? ( >=x11-libs/libvdpau-0.3-r1 )"
REQUIRED_USE="tools? ( X )"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
pkg_pretend() {
if use amd64 && has_multilib_profile && \
[ "${DEFAULT_ABI}" != "amd64" ]; then
eerror "This ebuild doesn't currently support changing your default ABI"
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
if use kernel_linux && kernel_is ge 3 9 ; then
ewarn "Gentoo supports kernels which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
ewarn "<sys-kernel/gentoo-sources-3.9"
ewarn "<sys-kernel/vanilla-sources-3.9"
ewarn ""
ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
fi
# Since Nvidia ships 3 different series of drivers, we need to give the user
# some kind of guidance as to what version they should install. This tries
# to point the user in the right direction but can't be perfect. check
# nvidia-driver.eclass
nvidia-driver-check-warning
# Kernel features/options to check for
CONFIG_CHECK="~ZONE_DMA ~MTRR ~SYSVIPC ~!LOCKDEP"
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
# Now do the above checks
use kernel_linux && check_extra_config
}
pkg_setup() {
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use kernel_linux; then
linux-mod_pkg_setup
MODULE_NAMES="nvidia(video:${S}/kernel)"
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_unpack() {
if ! use kernel_FreeBSD; then
cd "${S}"
unpack_makeself
else
unpack ${A}
fi
}
src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
if kernel_is lt 2 6 9 ; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# If greater than 2.6.5 use M= instead of SUBDIR=
convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
epatch "${FILESDIR}"/nvidia-drivers-pax-const.patch
epatch "${FILESDIR}"/nvidia-drivers-pax-usercopy.patch
fi
if use kernel_linux && kernel_is lt 3 9 ; then
epatch "${FILESDIR}"/${PN}-313.18-builddir-config.patch
#3.8 is in the upstream in this version
# epatch "${FILESDIR}"/${PN}-313.18-linux-3.{7,8}+.patch #447566
epatch "${FILESDIR}"/${PN}-313.18-linux-3.7+.patch #447566
fi
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
linux-mod_src_compile
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if its not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
# SOVER to use
MY_SOVER="$2"
# Where to install
MY_DEST="$3"
if [[ -z "${MY_DEST}" ]]; then
MY_DEST="/usr/$(get_libdir)"
action="dolib.so"
else
exeinto ${MY_DEST}
action="doexe"
fi
# Get just the library name
libname=$(basename $1)
# Install the library with the correct SOVER
${action} ${MY_LIB}.${MY_SOVER} || \
die "failed to install ${libname}"
# If SOVER wasn't 1, then we need to create a .1 symlink
if [[ "${MY_SOVER}" != "1" ]]; then
dosym ${libname}.${MY_SOVER} \
${MY_DEST}/${libname}.1 || \
die "failed to create ${libname} symlink"
fi
# Always create the symlink from the raw lib to the .1
dosym ${libname}.1 \
${MY_DEST}/${libname} || \
die "failed to create ${libname} symlink"
}
src_install() {
if use kernel_linux; then
linux-mod_src_install
VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)"
if [ -z "$VIDEOGROUP" ]; then
eerror "Failed to determine the video group gid."
die "Failed to determine the video group gid."
fi
# Add the aliases
[ -f "${FILESDIR}/nvidia-169.07" ] || die "nvidia missing in FILESDIR"
sed -e 's:PACKAGE:'${PF}':g' \
-e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \
"${WORKDIR}"/nvidia
insinto /etc/modprobe.d
newins "${WORKDIR}"/nvidia nvidia.conf || die
# Ensures that our device nodes are created when not using X
exeinto "$(udev_get_udevdir)"
doexe "${FILESDIR}"/nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld" || die
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko" || die
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so ${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so ${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so ${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so || die "failed to install nvidia_drv.so"
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Documentation
dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
use tools && doman "${NV_MAN}/nvidia-settings.1"
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}/nvidia-smi.1.gz"
use X && doman "${NV_MAN}/nvidia-xconfig.1.gz"
use tools && doman "${NV_MAN}/nvidia-settings.1.gz"
doman "${NV_MAN}/nvidia-cuda-proxy-control.1.gz"
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig || die
fi
if use kernel_linux ; then
doexe ${NV_OBJ}/nvidia-debugdump || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-control || die
doexe ${NV_OBJ}/nvidia-cuda-proxy-server || die
doexe ${NV_OBJ}/nvidia-smi || die
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
fi
if use tools; then
doexe ${NV_OBJ}/nvidia-settings || die
fi
exeinto /usr/bin/
doexe ${NV_OBJ}/nvidia-bug-report.sh || die
# Desktop entries for nvidia-settings
if use tools ; then
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png nvidia-drivers-settings.png
domenu "${FILESDIR}"/nvidia-drivers-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
doexe "${FILESDIR}"/95-nvidia-settings
fi
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
if has_multilib_profile && use multilib ; then
local OABI=${ABI}
for ABI in $(get_install_abis) ; do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
if use kernel_linux && has_multilib_profile && \
[[ ${ABI} == "x86" ]] ; then
libdir=${NV_OBJ}/32
fi
if use X; then
# The GLX libraries
donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
if use kernel_FreeBSD; then
donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
else
donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
fi
# VDPAU
donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
fi
# NVIDIA monitoring library
if use kernel_linux ; then
donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
fi
# CUDA & OpenCL
if use kernel_linux; then
donvidia ${libdir}/libcuda.so ${NV_SOVER}
donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
fi
}
pkg_preinst() {
use kernel_linux && linux-mod_pkg_preinst
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
elog "You must be in the video group to use the NVIDIA device"
elog "For more info, read the docs at"
elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6"
elog
elog "This ebuild installs a kernel module and X driver. Both must"
elog "match explicitly in their version. This means, if you restart"
elog "X, you must modprobe -r nvidia before starting it back up"
elog
elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\""
elog
elog "To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\""
elog
elog "NVIDIA has requested that any bug reports submitted have the"
elog "output of /opt/bin/nvidia-bug-report.sh included."
elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}